细化解析:教你轻松掌握自动参数的设置

来源:岁月联盟 编辑:zhuzhu 时间:2007-10-19

在 Microsoft® SQL Server™ 2000 中,在 Transact-SQL 语句中使用参数或参数标记,将提高关系引擎将新的 SQL 语句与现有的未用执行计划进行匹配的能力。如果执行不带参数的 SQL 语句,SQL Server 2000 在内部参数化语句,以提高将该语句与现有执行计划相匹配的可能性。

请看下面的语句:

SELECT * FROM Northwind.dbo.Products WHERE CategoryID = 1

可以将该语句最后的值 1 指定为一个参数。关系引擎为这个批处理生成一个执行计划,如同已经指定了一个参数替代值 1。这种自动参数化使 SQL Server 2000 能识别出下面两个语句生成的执行计划在本质上相同,并对第二个语句重新使用第一个计划:

SELECT * FROM Northwind.dbo.Products WHERE CategoryID = 1SELECT * FROM Northwind.dbo.Products WHERE CategoryID = 4
    

处理复杂的 SQL 语句时,关系引擎可能很难确定可以自动参数化哪些表达式。若要提高关系引擎将复杂的 SQL 语句与现有的未用执行计划相匹配的能力,请使用 sp_executesql 或参数标记显式指定参数。 (责任编辑:卢兆林)