为什么mssql使用那么多的内存并花费那么长时间?

时间:2019-05-15 11:41:44

标签: javascript node.js sql-server

我一直在使用nodejs处理mssql npm软件包,并且发现性能比在SSMS中运行相同的查询要慢得多。

一个简单的查询select * from contacts。在给定的表中,大约有38000行和14列。运行此查询将导致节点进程的内存使用量激增至2GB左右,并花费三十多秒钟,最终因堆错误而崩溃。 SSMS中的同一查询需要两秒钟,并且内存使用率仍然很低。

我试图了解两者之间的区别。我知道SSMS是一个完整的软件产品,但是,我希望两者之间具有类似的性能。

任何人都会获得的任何见解,下面是我为测试查询时间而创建的示例代码。

我尝试使用流方法,结果与从数据库中检索结果的npm软件包页面上列出的其他方法相同。

var express         = require('express');
const mssql         = require('mssql');

var app             = express();

const config = {
    user: 'XXX',
    password: 'XXX',
    server: 'XXX',
    database: 'XXX',
    pool: {
      max: 10,
      min: 5,
      idleTimeoutMillis: 30000
    }
}

var query = 'SELECT * FROM contacts'

app.get('/query', async function () {
  var connection = await mssql.connect(config);
      var result = await mssql.query(query)
      await mssql.close()
      console.log(result)
});

app.listen(process.env.PORT || 6000);

预期结果:内存使用率低,查询返回时间快

实际结果:高内存使用率和长查询时间

0 个答案:

没有答案