2010年11月08日

LINQ to SQL 番外編 - コンパイル済みクエリ

   このエントリーをはてなブックマークに追加 Clip to Evernote
パラメータだけが異なる同じクエリを何回も実行することはよくありますが、その ような場合、
クエリをコンパイルしてから、そのクエリを実行することでパフォー マンスを向上させることができます。

まず、以下のような、CompiledQuery.Compileを使い、デリゲート型のフィールド を定義します。
Compile メソッドは、入力パラメータを変更するだけで、
その後、何度も実行で きるキャッシュ可能なデリゲート型を返します。

この例では、nameがクエリのパラメータになります。
ProductByNameにはコンパイル済みクエリが格納されます。このコンパイル済みク エリを使うには、

のように書きます。
ここでは、パラメータは、nameひとつだけでしたが、もちろん、複数のパラメータ を渡すこともできます。

以下のようにラムダ式と var を使って書くこともできます。
デリゲートをいちいち定義するのも面倒なので、この書き方が良いかなと思ったり しましたが、
実際には、このコンパイル済みクエリは、何度も再利用することで効 果が得られますので、
上のようにローカル変数にして使うことは、あまり無いかなと思 います。


 

この記事へのトラックバックURL

http://trackback.blogsys.jp/livedoor/gushwell/52088155