MsSQL   发布时间:2022-05-16  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了sql-server – 这个查询是否等同于SQL Server 2008的OPTIMIZE FOR UNKNOWN?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在维护sql Server 2005的存储过程,我希望我可以在2008年使用一个新功能,允许查询提示:“OPTIMIZE FOR UNKNowN”

似乎以下查询(为sql Server 2005编写)估计了相同数量的行(即选择性),就像OPTION(OPTIMIZE FOR UNKNowN)被指定一样:

CREATE PROCEDURE SwartTest(@productid int)
AS  
DECLARE @newproductid INT
SET @newproductid = @productid

SELECT ProductID 
FROM SALEs.SALEsOrderDetail 
WHERE ProductID = @newproductid

此查询通过声明和设置新变量来避免参数嗅探.这是真的一个sql Server 2005解决方案的优化优化功能吗?还是我错过了什么? (权威链接,答案或测试结果不胜感激).

更多信息:
对sql Server 2008的快速测试告诉我,此查询中的估计行数实际上与指定了OPTIMIZE FOR UNKNowN的相同. sql Server 2005上的行为是否相同?我想我记得一旦没有更多的信息,sql Server优化引擎必须猜测参数的选​​择性(通常在10%的不等式谓词).我仍然在寻找关于sql 2005行为的确定信息.我不太确定信息存在,但…

更多信息2:
要清楚的是,这个问题是要求比较UNKNowN查询提示和我描述的参数掩码技术.

这是一个技术问题,而不是解决问题的问题.我虑了很多其他选择,并解决了这个问题.所以这个问题的唯一目的是帮助我有一些信心,这两种方法是等价的.

解决方法

我最近几次使用该解决方案,以避免在sql 2005上进行参数嗅探,在我看来,我似乎在sql 2008上做了与OPTIMIZE FOR UNKNowN相同的事情.它解决了我们有一些更大的存储过程有很多问题只要挂在通过某些参数.

大佬总结

以上是大佬教程为你收集整理的sql-server – 这个查询是否等同于SQL Server 2008的OPTIMIZE FOR UNKNOWN?全部内容,希望文章能够帮你解决sql-server – 这个查询是否等同于SQL Server 2008的OPTIMIZE FOR UNKNOWN?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: