Rumah >pangkalan data >tutorial mysql >Bilakah OPTION (COMPILE) Membuat Pertanyaan SQL Lebih Cepat?
Pengenalan
PILIHAN (COMPILE SEMULA ) klausa dalam SQL Server sentiasa dianggap sebagai operasi yang mahal, namun kemasukannya dalam pertanyaan tertentu boleh membawa kepada peningkatan prestasi yang ketara. Paradoks ini telah membingungkan ramai pembangun, yang membawa kepada persoalan tentang mekanisme asas dan keadaan di mana OPTION (COMPILE) benar-benar berfaedah.
Persoalannya
Seorang pembangun ditemui situasi anomali di mana menambahkan OPTION (RECOMPILE) pada pertanyaan secara drastik mengurangkan masa pelaksanaannya dari lebih lima minit hingga setengah saat. Tingkah laku ini berterusan tanpa mengira sama ada pertanyaan telah dilaksanakan daripada Penganalisis Pertanyaan atau melalui aplikasi C# menggunakan SqlCommand.ExecuteReader(). Panggilan pertanyaan sentiasa menggunakan parameter yang sama untuk menghapuskan sebarang kebimbangan tentang penghidu parameter sub-optimum.
Penjelasan
Bertentangan dengan andaian bahawa OPTION (RECOMPILE) sentiasa operasi yang mahal, ia boleh memberi manfaat dalam senario tertentu. Satu penjelasan biasa ialah keperluan untuk membina semula pelan pelaksanaan apabila data atau parameter asas berubah dengan ketara.
Apabila SQL Server mencipta prosedur tersimpan (atau sebarang pertanyaan berparameter), ia menyimpan cache pelan pelaksanaan yang paling cekap berdasarkan data dan parameter awal. Walau bagaimanapun, pelaksanaan berikutnya dengan data atau parameter yang berbeza mungkin tidak lagi sejajar dengan rancangan pelaksanaan cache. Dalam kes sedemikian, menyusun semula pelan pelaksanaan menggunakan OPTION (RECOMPILE) memaksa SQL Server mengoptimumkannya untuk keadaan semasa, yang berpotensi membawa kepada prestasi yang lebih baik.
Dalam kes khusus yang dibentangkan, pembangun harus mempertimbangkan untuk membina semula pelaksanaan pertanyaan merancang dan mengemas kini statistik menggunakan sp_updatestats. Proses ini memastikan bahawa pelan pelaksanaan cache adalah berdasarkan maklumat terkini, mengurangkan keperluan untuk penyusunan semula dengan setiap pelaksanaan.
Pengambilan Utama
Atas ialah kandungan terperinci Bilakah OPTION (COMPILE) Membuat Pertanyaan SQL Lebih Cepat?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!