ストアド プロシージャ実行における CommandType.StoredProcedure と CommandType.Text
CommandType.StoredProcedure を使用して C# でストアド プロシージャを実行すると、次のような質問が表示されます。必要? CommandType.Text を使用する場合に比べて利点はありますか?この記事では、両方の方法の利点を調査します。
デフォルトのパラメータ化
ブログ調査によると、CommandType.Text が使用される場合、SQL Server は sp_executesql 内のステートメントを自動的にパラメータ化します。対照的に、CommandType.StoredProcedure はプロシージャを明示的にパラメータ化し、データベースのワークロードを軽減し、パフォーマンスを向上させます。
テストと結果
SQL Server Profiler を使用して、ストアド プロシージャをテストしました。両方の CommandType バリエーションで呼び出されます。どちらの場合も、RPC 呼び出しが生成されました。
CommandType.Text
exec sp_executesql N'dbo.Test',N'@Text1 nvarchar(5),@Text2 nvarchar(5)',@Text1=N'Text1',@Text2=N'Text2'
CommandType.StoredProcedure
exec dbo.Test @Text1=N'Text1',@Text2=N'Text2'
結論
したがって、最高のパフォーマンスとパラメーターの柔軟性を得るには、C# でストアド プロシージャを実行するときに CommandType.StoredProcedure を使用します。
以上がCommandType.StoredProcedure と CommandType.Text: C# でのストアド プロシージャの実行にはどちらが適していますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。