2017-07-20 29 views
2

私はEntityFrameworkLINQ to SQLのバックグラウンドを持っています。基本クエリをパラメータ化する必要があります

パフォーマンスの向上にdapperを使用することを考えています。

Dapperは、実行されるすべてのクエリに関する情報をキャッシュします。これにより、オブジェクトを素早く実体化し、パラメータを素早く処理できます。現在の実装は、この情報をConcurrentDictionaryオブジェクトにキャッシュします。格納するオブジェクトは決してフラッシュされません。パラメータを使用せずにSQL文字列を生成する場合、メモリの問題が発生する可能性があります。辞書をLRU Cacheに変換することがあります。

すべてのクエリをパラメータ化する必要がありますか。 パラメタを持たないクエリでも。

Select Id,Boo FROM dbo.FOO 

答えて

2

ので、あなたのクエリに変化させるために何もない、ない、あなたはそれをパラメータ化する必要はありません。

警告は、Select Id,Boo FROM dbo.FOO where Bar=3Select Id,Boo FROM dbo.FOO where Bar=4、そしてSelect Id,Boo FROM dbo.FOO where Bar=5を書くならば、3つのクエリがキャッシュされることを伝えるためにそこにあります。そして、あなたがBarと一致するものを変え続けると、さらに多くのコピーが作成されます。

関連する問題