ホームページ > データベース > mysql チュートリアル > CommandType.StoredProcedure と CommandType.Text: C# でのストアド プロシージャの実行にはどちらが適していますか?

CommandType.StoredProcedure と CommandType.Text: C# でのストアド プロシージャの実行にはどちらが適していますか?

Susan Sarandon
リリース: 2025-01-01 07:01:09
オリジナル
360 人が閲覧しました

CommandType.StoredProcedure or CommandType.Text: Which is Better for Stored Procedure Execution in C#?

ストアド プロシージャ実行における 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'
ログイン後にコピー
  • テキスト呼び出しは sp_executesql 呼び出しで囲まれています。
  • パラメータは宣言されていますが、 call.

CommandType.StoredProcedure

exec dbo.Test @Text1=N'Text1',@Text2=N'Text2'
ログイン後にコピー
  • 追加のラッピングやパラメーター宣言はありません

結論

  • CommandType.StoredProcedure は、明示的なパラメータ化によりわずかに高速です。
  • CommandType.Text では、任意のデフォルトのパラメータを除き、文字パラメータ名を呼び出しに含める必要があります。

したがって、最高のパフォーマンスとパラメーターの柔軟性を得るには、C# でストアド プロシージャを実行するときに CommandType.StoredProcedure を使用します。

以上がCommandType.StoredProcedure と CommandType.Text: C# でのストアド プロシージャの実行にはどちらが適していますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート