我想知道在 SQL 查询上使用绑定参数来构建执行计划。
在许多情况下,开发人员编写动态 SQL 查询并将适当的值放入查询中。
在阅读本文时,http://use-the-index-luke.com/sql/where-clause/bind-parameters我觉得使用绑定参数会因为使用相同的执行计划而提高性能。
这是在 SP 中构造的动态查询中的绑定参数示例。
CREATE Procedure GetEmployee
AS
(
@eName NVARCHAR(100),
@eDept NVARCHAR(50)
)
BEGIN
Declare @sql NVarchar(MAX)
DECLARE @params NVARCHAR(MAX)
SELECT @params = N'@name nvarchar(100), ' +
N'@dept nvarchar(50) '
SET @sql='Select EmpId, Name from Employee where Name=@name AND Department=@dept'
sp_executesql @sql, @params, @eName, @eDept
END
与 WHERE Name='''+@eName+''' 相比,这如何真正提高性能?