ホームページ > データベース > mysql チュートリアル > ウィンドウ集計クエリで高い論理読み取り値が表示されるのはなぜですか?

ウィンドウ集計クエリで高い論理読み取り値が表示されるのはなぜですか?

Linda Hamilton
リリース: 2024-12-24 04:15:11
オリジナル
194 人が閲覧しました

Why Are My Windowed Aggregate Queries Showing High Logical Reads?

共通部分式スプールを使用したウィンドウ集計関数の実行計画での論理読み取り数が多い

実行プランでは、大きなテーブルに対して報告される論理読み取り数が多いことがよく観察されます共通の部分式スプールを利用します。ワークテーブルの論理読み取りの式は次のとおりです。

Worktable Logical Reads = 1 + NumberOfRows * 2 + NumberOfGroups * 4
ログイン後にコピー

説明

従来のスプール テーブルとは異なり、ワークテーブルは読み取り行ごとに論理読み取りをカウントするため、論理読み取りカウントが増大します。これは、ワークテーブルがサーバーの内部にあり、ハッシュされたページ カウントは分析にとって価値が低いと考えられるためです。

式は次のように分解されます:

  1. 1x 論理読み取り: ワークテーブルが作成され、初期化されます。
  2. あたり 2 回の論理読み取り行: プライマリ スプールは各行を 2 回読み取ります。1 回目はワークテーブルに挿入し、もう 1 回目は集計のためにワークテーブルから読み取ります。セカンダリ スプールも各行を 2 回読み取ります。
  3. グループあたり 4x 論理読み取り: プライマリ スプールは、各新しいパーティションの開始を示す行を出力し、最終処理するダミー行を出力します。最終グループの処理。これらの追加の行は 4 倍のカウントを表します。

追加の洞察

Paul White 氏は、ブログ投稿で、数式が実行計画と一致していると説明しています。ここで、2 つの 2 次スプールが 2 回完全に読み取られ、1 次スプールが (グループ数 1) 行を出力します。追加の行は、最終グループの終了を示すためにプライマリ スプールによって出力されます。

結論

ワークテーブルの論理読み取りの式は、インフレートされた論理読み取りを理解するための便利なツールです。共通の部分式スプールを使用した実行プランで観察された読み取り数。ワークテーブルが論理読み取りを異なる方法でカウントすることを認識することで、読み取り統計を解釈し、計画の効率を評価することが容易になります。

以上がウィンドウ集計クエリで高い論理読み取り値が表示されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート