|
ここでは、.NET オブジェクトとメソッドを選択して使用するときに、システムのパフォーマンスを最適化する方法を説明します。
ストアド プロシージャを呼び出す場合は、リテラル引数ではなく、常に、引数マーカーのパラメーター マーカーを使用します。
Command オブジェクトの CommandText プロパティにストアド プロシージャ名を設定する場合、そのリテラル引数を CommandText へ物理的にコーディングしないでください。たとえば、次のようなリテラル引数は使いません。
ADO.NET データ プロバイダーでは、データベース サーバーのストアド プロシージャを呼び出すことができますが、その際プロシージャをその他の SQL クエリとして実行します。ストアド プロシージャを SQL クエリとして実行すると、データベース サーバーがステートメントを解析し、引数の型を検証し、引数を正しいデータ型に変換します。
次の例で、アプリケーション プログラマは getCustName の引数を整数 12345 であると見なすでしょう。
しかし、SQL は常に文字列としてデータベース サーバーに送信されます。データベース サーバーが SQL クエリを解析し、引数値を分離しても結果はまだ文字列です。データベース サーバーで文字列 "12345" を整数値 12345 に変換する必要があります。パラメーター マーカーを使用することで文字列変換の必要がなくなるので、データベース サーバーでの処理量を減らすことができます。
|