Я пытаюсь найти решение для проблемы, которая сводит меня с ума...
У меня есть запрос, который работает очень быстро в Сервере QA, но это очень медленно в производстве. Я понял, что у них есть различные планы выполнения..., таким образом, я имею перекомпиляцию попытки, чистя кэш для планов выполнения, обновляю статистику, проверьте тип сопоставления..., но я все еще не могу найти то, что продолжается...
Базы данных, куда запрос работает, являются точно тем же, и SQL Server имеют также ту же конфигурацию.
Любые новые идеи очень ценились бы.
Спасибо, A.
Я просто понял, сервер QA выполняет SP3, и в производстве SP2. Это могло оказать какое-либо влияние на эту проблему?
Возможно ли, что на рабочем сервере размер базы данных больше? План может быть другим, потому что он основан на статистике содержащихся в нем данных.
Я думаю, это может быть связано с объемом присутствующих данных. Однажды с нами такое случилось, когда запрос буквально летал на QA-сервере, но был невероятно медленным в продакшене. Поломав голову, мы выяснили, что на QA-сервере было 15 тысяч строк, а на продакшене - 1,5 миллиона.
HTH
Отключить параллельное выполнение запросов в производственной среде :)
Если план выполнения был таким же, а один был медленным, это была бы загрузка базы данных, оборудование, блокировка / блокировка и т. Д.
Однако, если планы выполнения различаются, между двумя базами данных что-то различается. Актуальна ли статистика в обоих случаях, имеют ли одни и те же схемы, одинаковые индексы, одинаковое количество строк, одинаковое распределение PK и значений индекса и т. Д. Откуда взялись данные QA, случайные данные или это восстановление из производственной среды?