sql-server – 这个查询是否等同于SQL Server 2008的OPTIMIZE FO
我正在维护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解决方案的优化优化功能吗?还是我错过了什么? (权威链接,答案或测试结果不胜感激). 更多信息: 更多信息2: 这是一个技术问题,而不是解决问题的问题.我考虑了很多其他选择,并解决了这个问题.所以这个问题的唯一目的是帮助我有一些信心,这两种方法是等价的. 解决方法我最近几次使用该解决方案,以避免在SQL 2005上进行参数嗅探,在我看来,我似乎在SQL 2008上做了与OPTIMIZE FOR UNKNOWN相同的事情.它解决了我们有一些更大的存储过程有很多问题只要挂在通过某些参数.(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |