Почему mssql использует столько памяти и занимает так много времени? - PullRequest
0 голосов
/ 15 мая 2019

Я работал с пакетом mssql npm, используя nodejs, и заметил, что производительность намного ниже, чем при выполнении того же запроса в SSMS.

Примером этого является простой запрос select * from contacts.В данной таблице около 38000 строк и 14 столбцов.Выполнение этого запроса приводит к резкому увеличению использования памяти процессом узла примерно до 2 ГБ и занимает более тридцати секунд, что в итоге приводит к ошибке кучи.Тот же запрос в 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);

Ожидаемые результаты: Низкое использование памяти ибыстрое время возврата запроса

Фактические результаты: высокое использование памяти и длительное время запроса

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...