Memahami Prestasi SQL(*)
Pertimbangkan pertanyaan yang melaksanakan operasi kiraan pada jadual dengan lebih 20 juta baris. Masa pelaksanaan berbeza dengan ketara bergantung pada ungkapan kiraan, dengan kelewatan yang ketara untuk ungkapan yang memerlukan perbandingan (cth., count(*) = 1).
Punca Pelaksanaan Lambat
Penjelasan untuk perbezaan prestasi ini terletak pada teknik pengoptimuman yang digunakan oleh SQL Server. Untuk pertanyaan pertama (count() = 0), pelayan mengoptimumkannya untuk menyemak kehadiran mana-mana baris (wujud(pilih daripada BookChapters)) dan bukannya mengiranya.
Dalam Sebaliknya, untuk pertanyaan lain (count() = 1 atau count() > 1), SQL Server menggunakan indeks bukan berkelompok untuk mengira baris. Walau bagaimanapun, memandangkan jadual dalam kes ini tidak mempunyai sebarang indeks bukan berkelompok, pelayan mesti mengimbas keseluruhan jadual, menghasilkan masa pelaksanaan yang banyak.
Peningkatan Prestasi
Kepada meningkatkan prestasi kiraan(*) pertanyaan:
Kaedah Alternatif untuk Kiraan Baris Pantas
Atas ialah kandungan terperinci Mengapakah COUNT(*) Sangat Lambat dalam SQL Server, dan Bagaimana Saya Boleh Mempercepatkannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!