У меня есть запрос, который выполняется «быстро» на производстве, но очень медленно (1 час) на тестовых серверах.
Спрашивается следующий запрос:
select z.PrimaryKeyColumn
FROM [table1] z
inner join Table2 p on p.PrimaryKeyColumn=z.PrimaryKeyColumn
left outer join table3 pz on z.PrimaryKeyColumn==Rtrim(rtrim(pz.column2)+LTRIM(pz.column3))
Я проанализировал план выполнения запроса и понял, что на производстве он использует хеш-соответствие, а на тесте он использует цикл для первого соединения, отсюда и медлительность,Я перестроил индексы и обновил статистику, но результат тот же.
Кроме того, на сервере TEST, где результаты медленные, я скопировал / продублировал таблицу Table2 с индексами и данными, и когда я это используюВ таком случае запрос выполняется быстро, как на рабочем сервере ...
Это планы выполнения запроса:
ТЕСТ-сервер:
ПРОИЗВОДСТВЕННЫЙ сервер: