繁体   English   中英

Node.js mssql模块很慢

[英]Node.js mssql module is very slow

我正在尝试提高使用SQL Server作为其数据库的Node.js REST API的性能。 此API可能非常慢(例如1.5秒响应时间)。

在深入研究代码之后,我发现JavaScript代码本身非常快(运行时间不到1毫秒)但是减慢一切的速度是通过mssql模块执行的sql查询。

即使是"SELECT [id] from [users]"这样简单的查询,当“用户”表只包含5行时,也需要大约1到2秒的时间才能完成! 这个问题似乎发生在mssql模块中,因为当我在SSMS或python(pymssql)上运行相同的查询时,它们几乎可以立即完成。

有没有人知道这个或可以使用的替代模块的解决方案? (欢迎任何其他建议)

这是我用来进行查询的代码:

const config = {...}

var sql = require('mssql');
var date;

sql.connect(config)
.then(pool => {
    date = Date.now();
    return pool.request()
    .query('select [id] from [users]');
})
.then(result => {
    console.dir('This query took ' + (Date.now() - date) + 'ms to return ' + result.recordset.length + ' rows!');
})
.catch(err => {
   console.log(err);
})

sql.on('error', err => {
    console.log(err);
})

输出是:

'This query took 1287ms to return 5 rows!'

找到了解决方案! config对象可以具有pool.min属性,该属性指定必须保持活动状态的最小连接数。

我不知道这个属性,并且认为模块默认保持连接活动,现在我添加了pool.min = 5,一切都运行得更好,问题解决了!

希望这可以帮助一些人

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM