使用SQL Server 2008 R2,以下选择在3秒内使用IN和20分钟在NOT IN中工作。在SQL Server 2012上执行相同的选择,IN和NOT IN都需要3秒钟。有没有人有过这种情况发生过,如果有的话,是否有不同的查询可以减少这种延迟?SQL查询选择,执行超时
背景:总MessageIndentifier记录是9000〜。 IN
返回〜1400,NOT IN
返回〜7600。我正在使用SQL Server 2008 R2。
SELECT
AA.[MessageIdentifier]
FROM
(SELECT
CAST(AD.[Contract Number] AS VARCHAR) + '.' +
CAST(AD.[Installation ID] AS VARCHAR) + '.'+
CAST(AD.[System ID] AS VARCHAR) AS MessageIdentifier
FROM
CDCS_FAMS.dbo.SiteParamBaseTable AD) AS AA
WHERE
AA.[MessageIdentifier] IN (SELECT DISTINCT AB.[MessageIdentifier]
FROM
(SELECT cast(AC.[Contract Number] as varchar) + '.' + cast(AC.[Installation ID] as varchar) + '.'+ cast(AC.[System ID] as varchar) AS MessageIdentifier
FROM CDCS_FAMS.dbo.SiteParamBaseTable AC) AS AB,
CDCS_FAMS.dbo.EventTable as DA
WHERE
(DA.[Message] LIKE '%ISO MODE:%'
OR DA.[Message] LIKE '%TEST MODE:%')
AND DA.[Message] LIKE '%Alarm%'
AND DA.[Event time] > DATEADD(DAY,-10, GETDATE())
AND DA.[Message] LIKE '%' + AB.[MessageIdentifier] + '%')
您的帮助将不胜感激。
尝试使用存在而不是IN /不在 –