Sql server SQL Server性能和无连接谓词问题是否关联?

Sql server SQL Server性能和无连接谓词问题是否关联?,sql-server,performance,sql-execution-plan,Sql Server,Performance,Sql Execution Plan,这个问题我会发疯的。 我在3台服务器上工作。由于备份和恢复选项,我在任何地方都使用相同的数据库。 问题在于,在一台服务器上,查询持续时间非常长(8分钟),而在另外两台服务器上(不到1秒)。查询执行计划也不同,我真的不知道为什么 以下是我测试的查询: SELECT * FROM TRACK_TEMP2.dbo.[c96a83ff-3cdb-4a03-b118-df3eff591c27] WHERE TRACK_TEMP2.dbo.[c96a83ff-3cdb-4a03-b118-df3eff5

这个问题我会发疯的。 我在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
以下是我在fast服务器上得到的执行计划:

以下是我在慢速服务器上得到的执行计划:

以下是有关警告的详细信息:

我不明白为什么会有这样的差别。有什么想法吗


PS:如果我删除最后一行和“and”,速度会非常快。

你能尝试更改
而不跟踪_TEMP2.dbo。[c96a83ff-3cdb-4a03-b118-df3eff591c27]。[Gg]为NULL
并跟踪_TEMP2.dbo。[c96a83ff-3cdb-4a03-b118-df3eff591c27]不为NULL
。。可能会或可能不会产生影响?由于不同的配置(并行度阈值)、旧的统计数据或缓存的坏工厂,它们可能是不同的计划最后一个条件是不必要的(但希望SQL Server能够自行解决)。不为NULL不会更改计划的任何内容,持续时间也不需要最后一个条件!为什么是“无连接谓词”?