Производительность SQL Server и отсутствие предиката соединения связаны? - PullRequest
0 голосов
/ 23 октября 2019

Я собираюсь сходить с ума с этой проблемой. Я работаю на 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

Вот план выполнения, который я получаю на быстром сервере:execution plan fast server

Вот план выполнения, который я получаю на медленном сервере: execution plan slow server

Вот подробности предупреждений: warnings details

Я не могу понятьпочему такая разница. Любая идея?

PS: если я уберу последнюю строку и "и", это очень быстро.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...