Производительность SQL Server 2017 - запрос параметров - PullRequest
0 голосов
/ 07 мая 2019

У меня установлен SQL Server Express 2017 (RTM) 14.0.1000.169 на маломощном сервере W2019 в AWS. Он имеет 2 ГБ оперативной памяти и 2,40 ГГц процессор. (T2.small).

У меня была такая же настройка на других машинах AWS с меньшей мощностью, чем у этой, и у них, похоже, нет этой проблемы. Но эти машины будут иметь SQL Server 2014 и Windows 2008R2.

Проблема в том, что когда я выполняю конкретные запросы, они занимают огромное количество времени. В моих приложениях у меня есть подпрограмма, которая прослушивает параметры для вызываемой хранимой процедуры, так что .NET может предоставлять параметры по мере необходимости, без необходимости кодировать каждую отдельную процедуру отдельно.

Для этого я запускаю

[sys].[sp_procedure_params_100_managed] @procedure_name=@PRC

но эта процедура на этой новой машине занимает до 30 секунд.

Итак, я вручную создал что-то более простое, чтобы посмотреть, могу ли я просмотреть какие-либо проблемы с планом выполнения, но он все еще работает очень медленно:

select o.name, prm.*
from sys.parameters prm
inner join sys.objects o on prm.object_id=o.object_id
where o.type='P'
    and o.name='prc_THEPROCNAME'

Для ясности, во всей базе данных есть только 30 хранимых процедур. Но приведенный выше запрос занимает 2860 мс для запуска в SSMS и показывает 1285 операций чтения.

Когда я запускаю это на своей маленькой машине win10 с SQL Server Express 2014, это занимает 12 мс с 568 чтениями в аналогичной (но большей) базе данных.

Так что мой вопрос таков: что за проблема с этой средой? Является ли t2.small слишком слабым для Win2019? SQL Server 2017 имеет гораздо больше накладных расходов, чем SQL Server 2014? Или возможно, что у меня есть неправильная конфигурация где-то в моей настройке SQL Server?

1 Ответ

0 голосов
/ 08 мая 2019

Я использую SQL Server на очень похожей платформе AWS (t2.small) и у меня нет проблем с производительностью по вашему запросу (<1 с). Вы не упомянули, страдают ли другие запросы проблемами с производительностью, но это было бы полезно. Тогда я отвечу, что t2.small не обладает достаточной мощностью, и весьма маловероятно, что SQL '17 будет иметь большую сложность, чем SQL '14 при выполнении этого запроса. </p>

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