1

LINQ To Entities によって作成された複雑な SQL クエリがあります。

  • 実行計画が SQL Server にキャッシュされていない場合、8 秒かかります。
  • 実行計画が SQL Server にキャッシュされると、2 秒かかります。

EF または SQL Server で実行プラン キャッシュをプレウォーミングする方法はありますか?

ありがとう

4

1 に答える 1

3

いいえ。

パフォーマンスの問題があり、測定を行ってボトルネックを調査することにより、パフォーマンスの問題として対処します。優れた待機とキューの方法論に従ってください。「SQL Server がクエリを実行する方法について」を読んで、クエリの実行時に何が起こるかを理解してください。

いくつかの問題を分離する必要があります。

  • あなたが述べているように、それはコールドプランキャッシュですか、それともコールドデータキャッシュですか(可能性が高い)?
  • コールド プラン キャッシュの場合、コンパイルは本当に 6 秒続きますか? 私はこれを買いません。
  • コールド データ キャッシュの場合、クエリが 6 秒分の IO を発行するのはなぜですか?
  • ウォーム キャッシュを使用しても、クエリの実行に 2 秒かかります。なんで?テーブルをエンドツーエンドでスキャンしますか? インデックスが不足していますか?(ヒント: はい、そうです)。

Waits and Queues ペーパーを読むと、これらの質問に答える方法がわかります。

症状ではなく、原因に対処してください。

于 2013-09-05T08:55:00.027 に答える