Назад | Перейти на главную страницу

Что может привести к тому, что запрос, запускаемый из SSMS в локальном поле, будет выполняться медленнее, чем из удаленного окна

Когда я запускаю простой запрос, такой как «Выбрать столбец1, столбец2 из таблицы A», из SSMS, работающего на моем производственном сервере SQL Server, результаты кажутся очень долгими (> 45 минут). Если я запускаю тот же запрос из SSMS моей системы разработки, подключающейся к производственному серверу SQL, результаты возвращаются в течение нескольких секунд (<60 секунд).

Одна вещь, которую я замечаю: если система была просто перезагружена, производительность немного хороша. Трудно определить время, так как у меня он очень быстро начинал медленно работать после перезагрузки, но в лучшем случае он работал хорошо в течение 20 минут, а затем начал действовать. Кроме того, простой перезапуск службы SQL не решает проблему и не обеспечивает временного повышения производительности.

Спецификации для сервера: Windows Server 2003, Enterprise Edition, SP2 4 X Intel Xeon 3,6 ГГц - 6 ГБ системной памяти Active / Active Cluster SQL Server 2005 SP2 (9.0.3239)

сколько строк вы возвращаете?

возможно (но маловероятно), что когда вы возвращаете результаты на сервер, вы испытываете нехватку ресурсов на сервере из-за необходимости отображать все результаты в SSMS.

В SSMS на сервере перейдите в Инструменты-> Параметры-> Результаты запроса-> SQL Server-> Результаты в сетку. Отметьте опцию отменить результаты после выполнения

Затем откройте новое окно запроса, нажмите CTRL + D (чтобы обеспечить вывод результатов в сетку) и снова запустите запрос. Это все еще занимает 45 минут?

45 минут против 60 секунд? Это ... необычно. Я видел 45-минутные запросы раньше, но никогда не видел ничего более простого, чем «выбрать col1 из таблицы». Даже за 60 секунд должны быть получены сотни тысяч записей за это время.

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

Можете ли вы перейти к свойствам удаленного сервера и выбрать узел «Подключение». Отмечены ли какие-либо из параметров подключения по умолчанию?

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

Возможно, вы захотите запустить UPDATE STATISTICS для таблиц в запросе.

Я заметил то же самое, похоже, проблема с SSMS ....

этот оператор, запускаемый из кода, выполняется за 5 секунд ..

ALTER TABLE xxx ADD XID_New BIGINT NOT NULL ОГРАНИЧЕНИЕ DF_xxx ПО УМОЛЧАНИЮ 0

тот же оператор, запускаемый из SSMS, выполняется в течение 7 минут.

ALTER TABLE xxx ADD XID_New BIGINT NOT NULL ОГРАНИЧЕНИЕ DF_xxx ПО УМОЛЧАНИЮ 0

тот же компьютер, та же БД, тот же код, один запуск из проекта С #, другой запуск из SSMS, должна быть ошибка или проблема с SSMS