実行計画を構築するために 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+''' と比較して、これが実際にどのようにパフォーマンスを向上させるのでしょうか?