Rumah >pangkalan data >tutorial mysql >Mengapakah Fungsi Agregat Bertingkap dengan Gelendong Subungkapan Biasa Menghasilkan Bacaan Logik Sebegitu Tinggi?

Mengapakah Fungsi Agregat Bertingkap dengan Gelendong Subungkapan Biasa Menghasilkan Bacaan Logik Sebegitu Tinggi?

Patricia Arquette
Patricia Arquetteasal
2024-12-29 21:52:10317semak imbas

Why Do Windowed Aggregate Functions with Common Subexpression Spools Result in Such High Logical Reads?

Mengapakah Bacaan Logik Sangat Tinggi untuk Fungsi Agregat Bertingkap dengan Gelendong Subungkapan Biasa?

Anda perasan bahawa dalam rancangan pelaksanaan dengan subungkapan biasa gelendong, bacaan logik yang dilaporkan untuk jadual besar adalah jauh lebih tinggi daripada jangkaan. Penyiasatan mendedahkan formula yang nampaknya benar: Worktable logical reads = 1 NumberOfRows 2 NumberOfGroups 4.

Memahami Formula

Logik tinggi bacaan timbul daripada cara unik jadual kerja mengendalikan bacaan. Bacaan logik dalam konteks ini merujuk kepada bilangan baris yang dibaca, bukan halaman cincang. Ini bermakna bahawa untuk setiap baris yang diproses, jadual kerja mendaftarkan satu bacaan logik.

Pecahan Bacaan Logik

  • 1: Permulaan baca untuk memproses baris pertama.
  • NumberOfRows * 2: Setiap baris dibaca dua kali semasa dua hantaran kili sekunder.
  • NumberOfGroups * 4: Kili utama mengeluarkan empat baris bagi setiap kumpulan: satu untuk memulakan kumpulan, satu untuk menamatkan kumpulan, dan dua untuk memegang agregat nilai.

Percubaan Replikasi dengan Bacaan Logik Rendah

Percubaan anda untuk meniru proses dengan jadual timbunan menunjukkan hanya 11 bacaan logik kerana:

  • Kurang Baris: Jadual ujian anda hanya mempunyai 5 baris berbanding jadual #Orders yang lebih besar.
  • Tiada Gelung Bersarang: Pertanyaan anda menggunakan OUTER APPLY dan bukannya gelung bersarang, yang menghilangkan keperluan untuk baris tiruan.

Kesimpulan

Formula yang anda temui adalah benar kerana ia menggambarkan dengan tepat bilangan baris yang dibaca oleh jadual kerja. Bacaan logik yang lebih tinggi adalah disebabkan oleh kaedah pengiraan berasaskan baris, bukan ketidakcekapan. Pelan gelung bersarang yang digunakan dalam pertanyaan asal anda menguatkan lagi kiraan ini.

Atas ialah kandungan terperinci Mengapakah Fungsi Agregat Bertingkap dengan Gelendong Subungkapan Biasa Menghasilkan Bacaan Logik Sebegitu Tinggi?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn