gpt4 book ai didi

sql - SQL Server 2005 查询的性能

转载 作者:行者123 更新时间:2023-12-03 02:33:43 26 4
gpt4 key购买 nike

-------------------- 这需要 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
<小时/>

为什么执行时间不同?我想使用顶部的查询。我可以做些什么来优化它吗?

提前致谢!/克里斯蒂安

最佳答案

OPTION (RECOMPILE)添加到查询末尾。

SQL Server 不会“嗅探”变量的值,因此您将得到一个基于猜测统计数据的计划,而不是针对实际变量值量身定制的计划。

关于sql - SQL Server 2005 查询的性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7860652/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com