2

SQLプロファイラーの「SP:CacheHit」イベントについて理解を深めたいと思います。

ストアドプロシージャの実行に対して「SP:CacheHit」イベントが表示されるたびに、データベースにヒットが発生していないと想定しても安全ですか。私が尋ねる理由は、現在、テーブル内の4000行からランダムなレコードを1つ選択するクエリ(Entity Framework / LINQを使用)があるためです。

SQL Serverは実際にテーブルから4000レコードのデータをキャッシュしたので、後続のクエリはデータベースにヒットしませんか?

一連のイベントは次のとおりです。

  1. RPC:開始
  2. SP:CacheHit
  3. SP:StmtStarting
  4. SP:StmtCompleted->ここに読み取り数と行数が表示されます
  5. RPC:Completed->ここに読み取り数と行数が表示されます

私の理解をいくらか明確にするこの有用な記事を見つけましたが、私の仲間の専門家の1人からの確認は素晴らしいでしょう。

4

1 に答える 1

3

これは、SP自体が実行プランのキャッシュで見つかったことを意味します。これは、SPを再コンパイルする必要がないことを意味します。

3行目以降は、例では、データベース自体がクエリを完了するために問い合わせられていることを示しています。

于 2012-08-13T11:23:29.227 に答える