共通部分式スプールを使用したウィンドウ集計関数の実行計画での論理読み取り数が多い
実行プランでは、大きなテーブルに対して報告される論理読み取り数が多いことがよく観察されます共通の部分式スプールを利用します。ワークテーブルの論理読み取りの式は次のとおりです。
Worktable Logical Reads = 1 + NumberOfRows * 2 + NumberOfGroups * 4
説明
従来のスプール テーブルとは異なり、ワークテーブルは読み取り行ごとに論理読み取りをカウントするため、論理読み取りカウントが増大します。これは、ワークテーブルがサーバーの内部にあり、ハッシュされたページ カウントは分析にとって価値が低いと考えられるためです。
式は次のように分解されます:
追加の洞察
Paul White 氏は、ブログ投稿で、数式が実行計画と一致していると説明しています。ここで、2 つの 2 次スプールが 2 回完全に読み取られ、1 次スプールが (グループ数 1) 行を出力します。追加の行は、最終グループの終了を示すためにプライマリ スプールによって出力されます。
結論
ワークテーブルの論理読み取りの式は、インフレートされた論理読み取りを理解するための便利なツールです。共通の部分式スプールを使用した実行プランで観察された読み取り数。ワークテーブルが論理読み取りを異なる方法でカウントすることを認識することで、読み取り統計を解釈し、計画の効率を評価することが容易になります。
以上がウィンドウ集計クエリで高い論理読み取り値が表示されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。