-------------------- 这需要 4 秒来执行(有 2000 000 行)为什么?---------------- -----
DECLARE @AccountId INT
DECLARE @Max INT
DECLARE @MailingListId INT
SET @AccountId = 6730
SET @Max = 2000
SET @MailingListId = 82924
SELECT TOP (@Max) anp_Subscriber.Id , Name, Email
FROM anp_Subscription WITH(NOLOCK)
INNER JOIN anp_Subscriber WITH(NOLOCK)
ON anp_Subscriber.Id = anp_Subscription.SubscriberId
WHERE [MailingListId] = @MailingListId
AND Name LIKE '%joe%'
AND [AccountID] = @AccountId
--------------------- 执行时间不到 1 秒(有 2000 000 行)---------------- --------
SELECT TOP 2000 anp_Subscriber.Id ,Name, Email
FROM anp_Subscription WITH(NOLOCK)
INNER JOIN anp_Subscriber WITH(NOLOCK)
ON anp_Subscriber.Id = anp_Subscription.SubscriberId
WHERE [MailingListId] = 82924
AND Name LIKE '%joe%'
AND [AccountID] = 6730
为什么执行时间不同?我想使用顶部的查询。我可以做些什么来优化它吗?
提前致谢! /基督教
Add OPTION (RECOMPILE)
到查询的末尾。
SQL Server 不会“嗅探”变量的值,因此您将得到一个基于猜测统计数据的计划,而不是针对实际变量值量身定制的计划。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)