4

非常に非効率的な実行プランを作成しているDataContextオブジェクトによって呼び出されているクエリがあります。「OPTION(RECOMPILE)」クエリヒントをクエリに追加したいのですが、このクエリヒントをDataContextオブジェクトのクエリに追加する方法がわかりません。

クエリをキャプチャするためにSQLトレースを実行しました。手動で実行したところ、クエリに「OPTION(RECOMPILE)」を追加することで、実行時間が1秒に短縮され、約4分かかりました。クエリには、多くの変数、いくつかのテーブル値関数、およびテーブル値関数が埋め込まれたビューが含まれています。すべての入力変数は数値です。2つの実行間のクエリプランは非常に異なっていました。

不十分な実行計画を回避するためにコードを最適化する手助けは必要ありません。このルートに行く必要がある場合は、自分でこれを行うことができます。私が知る必要があるのは、OPTION(RECOMPILE)クエリヒントをLinqクエリに追加する方法があるかどうかだけです。私はコードを投稿するつもりはありません、それは私の質問とは無関係です。

再コンパイルクエリのヒントを追加できる場合は、その方法を教えてください。不可能な場合は、そのことを示すドキュメントへのリンクを提供していただければ幸いです。

rdbmsとしてSQLServer2012を使用しています。

4

1 に答える 1

1

ヒントが将来追加されることを要求する EF に対して問題があります - http://entityframework.codeplex.com/workitem/261

運が良ければ、EF 6 に入るでしょう。

于 2013-02-19T22:54:35.747 に答える