Тот же запрос, различные планы выполнения

Я пытаюсь найти решение для проблемы, которая сводит меня с ума...

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

Базы данных, куда запрос работает, являются точно тем же, и SQL Server имеют также ту же конфигурацию.

Любые новые идеи очень ценились бы.

Спасибо, A.


Я просто понял, сервер QA выполняет SP3, и в производстве SP2. Это могло оказать какое-либо влияние на эту проблему?

8
задан Bill the Lizard 13 October 2011 в 01:25
поделиться

4 ответа

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

2
ответ дан 5 December 2019 в 23:13
поделиться

Я думаю, это может быть связано с объемом присутствующих данных. Однажды с нами такое случилось, когда запрос буквально летал на QA-сервере, но был невероятно медленным в продакшене. Поломав голову, мы выяснили, что на QA-сервере было 15 тысяч строк, а на продакшене - 1,5 миллиона.

HTH

2
ответ дан 5 December 2019 в 23:13
поделиться

Отключить параллельное выполнение запросов в производственной среде :)

0
ответ дан 5 December 2019 в 23:13
поделиться

Если план выполнения был таким же, а один был медленным, это была бы загрузка базы данных, оборудование, блокировка / блокировка и т. Д.

Однако, если планы выполнения различаются, между двумя базами данных что-то различается. Актуальна ли статистика в обоих случаях, имеют ли одни и те же схемы, одинаковые индексы, одинаковое количество строк, одинаковое распределение PK и значений индекса и т. Д. Откуда взялись данные QA, случайные данные или это восстановление из производственной среды?

1
ответ дан 5 December 2019 в 23:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: