cari
Rumahpangkalan datatutorial mysqlMengapa Fungsi Agregat Bertingkap Menyebabkan Bacaan Logik Sebegitu Tinggi dalam Pelayan SQL?

Why Do Windowed Aggregate Functions Cause Such High Logical Reads in SQL Server?

Mengapa Bacaan Logik Tinggi untuk Fungsi Agregat Bertingkap?

Apabila menggunakan kili subungkapan biasa dalam pelan pelaksanaan, bacaan logik cenderung meningkat dengan ketara untuk meja yang lebih besar. Selepas mencuba dan memerhati pelan pelaksanaan, didapati bahawa formula berikut nampaknya benar:

Bacaan logik jadual kerja = 1 NumberOfRows 2 NumberOfGroups 4

Walau bagaimanapun, sebab asas formula ini masih tidak jelas. Artikel ini bertujuan untuk membongkar misteri di sebalik pengiraan bacaan logik ini.

Memahami Perlaksanaan Fungsi Agregat Bertingkap

Penyalur segmen pada permulaan rancangan menambahkan bendera pada baris menunjukkan permulaan setiap partition baru. Kili segmen utama kemudiannya mengambil baris satu demi satu dan memasukkannya ke dalam jadual kerja tempdb. Apabila menemui bendera kumpulan baharu, kili mengembalikan satu baris ke input atas pengendali gelung bersarang.

Ini mencetuskan agregat strim ke atas baris jadual kerja, mengira purata. Purata yang dikira kemudiannya digabungkan dengan baris jadual kerja, dan jadual kerja dipotong sebagai persediaan untuk kumpulan seterusnya. Kili segmen menjana baris tiruan untuk memproses kumpulan akhir.

Pengiraan Bacaan Logik untuk Meja Kerja

Menurut pemahaman kami, meja kerja ialah timbunan (atau kili indeks jika dinyatakan sebaliknya dalam pelan). Dalam contoh yang diberikan, bertentangan dengan jangkaan hanya 11 bacaan logik diperlukan. Penjelasan untuk perbezaan ini adalah seperti berikut:

  • Sisipan baris ke dalam akaun jadual kerja untuk satu bacaan logik setiap satu, menghasilkan 3 bacaan logik.
  • Mengira purata melibatkan satu bacaan logik, menjadikan jumlah 4 bacaan.
  • Membalikan baris dengan lajur purata melibatkan empat logik berbunyi.
  • Memangkas jadual kerja tidak menimbulkan bacaan logik.

Ini menjadikan jumlah bacaan logik kepada 4 x 3 = 12, mengetepikan sisipan baris keempat yang mencetuskan bacaan logik hanya dalam asal senario.

Kesimpulan

Kunci untuk memahami formula ini terletak pada percanggahan antara pengiraan bacaan logik untuk meja kerja dan jadual kili biasa. Untuk jadual kerja, setiap bacaan baris dikira sebagai satu bacaan logik, manakala untuk jadual kili, setiap halaman cincang dikira.

Formula sejajar dengan pelaksanaan yang diperhatikan: dua kili sekunder dibaca dua kali (2 COUNT ()), manakala kili utama memancarkan (COUNT(DISTINCT CustomerID) 1) baris seperti yang dijelaskan dalam entri blog disebut dalam maklumat tambahan. Yang tambahan adalah disebabkan oleh baris tambahan yang dikeluarkan untuk menunjukkan berakhirnya kumpulan terakhir.

Atas ialah kandungan terperinci Mengapa Fungsi Agregat Bertingkap Menyebabkan Bacaan Logik Sebegitu Tinggi dalam Pelayan SQL?. 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
Cara menggunakan fungsi MySQL untuk pemprosesan dan pengiraan dataCara menggunakan fungsi MySQL untuk pemprosesan dan pengiraan dataApr 29, 2025 pm 04:21 PM

Fungsi MySQL boleh digunakan untuk pemprosesan dan pengiraan data. 1. Penggunaan asas termasuk pemprosesan rentetan, pengiraan tarikh dan operasi matematik. 2. Penggunaan lanjutan melibatkan menggabungkan pelbagai fungsi untuk melaksanakan operasi kompleks. 3. Pengoptimuman prestasi memerlukan mengelakkan penggunaan fungsi dalam klausa WHERE dan menggunakan GroupBy dan jadual sementara.

Cara yang cekap untuk memasukkan data memasukkan data dalam mysqlCara yang cekap untuk memasukkan data memasukkan data dalam mysqlApr 29, 2025 pm 04:18 PM

Kaedah yang cekap untuk memasukkan data dalam MySQL termasuk: 1. Menggunakan sintaks Insertinto ... Sintaks, 2. Menggunakan perintah LoadDatainFile, 3. Menggunakan pemprosesan transaksi, 4. Laraskan saiz batch, 5. Lumpuhkan pengindeks

Langkah -langkah untuk menambah dan memadam medan ke jadual mysqlLangkah -langkah untuk menambah dan memadam medan ke jadual mysqlApr 29, 2025 pm 04:15 PM

Di MySQL, tambah medan menggunakan alterTabletable_nameaddcolumnnew_columnvarchar (255) afterexisting_column, memadam medan menggunakan altertabletable_namedropcolumncolumn_to_drop. Apabila menambah medan, anda perlu menentukan lokasi untuk mengoptimumkan prestasi pertanyaan dan struktur data; Sebelum memadam medan, anda perlu mengesahkan bahawa operasi itu tidak dapat dipulihkan; Mengubah struktur jadual menggunakan DDL dalam talian, data sandaran, persekitaran ujian, dan tempoh masa beban rendah adalah pengoptimuman prestasi dan amalan terbaik.

Cara Menganalisis Pelan Pelaksanaan Pertanyaan MySQLCara Menganalisis Pelan Pelaksanaan Pertanyaan MySQLApr 29, 2025 pm 04:12 PM

Gunakan perintah Jelaskan untuk menganalisis pelan pelaksanaan pertanyaan MySQL. 1. Perintah Jelaskan memaparkan pelan pelaksanaan pertanyaan untuk membantu mencari kesesakan prestasi. 2. Pelan pelaksanaan termasuk medan seperti ID, Select_Type, Jadual, Jenis, Kemungkinan_Keys, Key, Key_Len, Ref, Rows dan Extra. 3. Menurut pelan pelaksanaan, anda boleh mengoptimumkan pertanyaan dengan menambahkan indeks, mengelakkan imbasan meja penuh, mengoptimumkan operasi gabungan, dan menggunakan indeks overlay.

Cara menggunakan subquery MySQL untuk meningkatkan kecekapan pertanyaanCara menggunakan subquery MySQL untuk meningkatkan kecekapan pertanyaanApr 29, 2025 pm 04:09 PM

Subqueries boleh meningkatkan kecekapan pertanyaan MySQL. 1) Subquery memudahkan logik pertanyaan kompleks, seperti penapisan data dan mengira nilai agregat. 2) Pengoptimal MySQL boleh menukar subqueries untuk menyertai operasi untuk meningkatkan prestasi. 3) Menggunakan wujud dan bukannya boleh mengelakkan pelbagai baris yang mengembalikan kesilapan. 4) Strategi pengoptimuman termasuk mengelakkan subqueries yang berkaitan, menggunakan wujud, pengoptimuman indeks, dan mengelakkan bersarang subquery.

Cara mengkonfigurasi set aksara dan peraturan pengumpulan mysqlCara mengkonfigurasi set aksara dan peraturan pengumpulan mysqlApr 29, 2025 pm 04:06 PM

Kaedah untuk mengkonfigurasi set aksara dan kolasi dalam MySQL termasuk: 1. Menetapkan set aksara dan kolasi di peringkat pelayan: setNames'utf8 '; Setcharactersetutf8; SetCollation_Connection = 'UTF8_GENERAL_CI'; 2. Buat pangkalan data yang menggunakan set aksara tertentu dan kolasi: createdataTabaseexample_dbcharactersetutf8collateutf8_general_ci; 3. Nyatakan set aksara dan kolasi semasa membuat jadual: createTableExample_table (idint

Cara menyahpasang mysql dan fail sisa bersihCara menyahpasang mysql dan fail sisa bersihApr 29, 2025 pm 04:03 PM

Untuk selamat dan teliti menyahpasang MySQL dan membersihkan semua fail sisa, ikuti langkah -langkah berikut: 1. Hentikan perkhidmatan MySQL; 2. Nyahpasang pakej MySQL; 3. Fail konfigurasi bersih dan direktori data; 4. Sahkan bahawa pemotongan adalah menyeluruh.

Cara menamakan semula pangkalan data di mysqlCara menamakan semula pangkalan data di mysqlApr 29, 2025 pm 04:00 PM

Menamakan semula pangkalan data dalam MySQL memerlukan kaedah tidak langsung. Langkah -langkah adalah seperti berikut: 1. Buat pangkalan data baru; 2. Gunakan mysqldump untuk mengeksport pangkalan data lama; 3. Import data ke dalam pangkalan data baru; 4. Padam pangkalan data lama.

See all articles

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Penyesuai Pelayan SAP NetWeaver untuk Eclipse

Penyesuai Pelayan SAP NetWeaver untuk Eclipse

Integrasikan Eclipse dengan pelayan aplikasi SAP NetWeaver.

Muat turun versi mac editor Atom

Muat turun versi mac editor Atom

Editor sumber terbuka yang paling popular

SecLists

SecLists

SecLists ialah rakan penguji keselamatan muktamad. Ia ialah koleksi pelbagai jenis senarai yang kerap digunakan semasa penilaian keselamatan, semuanya di satu tempat. SecLists membantu menjadikan ujian keselamatan lebih cekap dan produktif dengan menyediakan semua senarai yang mungkin diperlukan oleh penguji keselamatan dengan mudah. Jenis senarai termasuk nama pengguna, kata laluan, URL, muatan kabur, corak data sensitif, cangkerang web dan banyak lagi. Penguji hanya boleh menarik repositori ini ke mesin ujian baharu dan dia akan mempunyai akses kepada setiap jenis senarai yang dia perlukan.

SublimeText3 Linux versi baharu

SublimeText3 Linux versi baharu

SublimeText3 Linux versi terkini