Я собираюсь сходить с ума с этой проблемой. Я работаю на 3 серверах. Я использовал одни и те же базы данных везде, благодаря опциям резервного копирования и восстановления. Проблема в том, что на одном сервере длительность запроса очень велика (8 минут), а на двух других (менее 1 секунды). План выполнения запроса также отличается, и я действительно не знаю, почему.
Вот запрос, который я тестирую:
SELECT * FROM TRACK_TEMP2.dbo.[c96a83ff-3cdb-4a03-b118-df3eff591c27]
WHERE
TRACK_TEMP2.dbo.[c96a83ff-3cdb-4a03-b118-df3eff591c27].[Gg]
NOT IN (
SELECT [TTop_FullPath] FROM [TH].[dbo].[VTopicCompatibility]
WHERE TTop_Type=(
SELECT TTop_Name FROM [TH].[dbo].[TTopic]
WHERE TTOP_PK_ID= 1237936 )
)
AND
NOT TRACK_TEMP2.dbo.[c96a83ff-3cdb-4a03-b118-df3eff591c27].[Gg] IS NULL
Вот план выполнения, который я получаю на быстром сервере:
Вот план выполнения, который я получаю на медленном сервере:
Вот подробности предупреждений:
Я не могу понятьпочему такая разница. Любая идея?
PS: если я уберу последнюю строку и "и", это очень быстро.