Rumah >pangkalan data >tutorial mysql >Bagaimanakah Kesan Menghidu Parameter Mempengaruhi Prestasi Prosedur Tersimpan, dan Bagaimana Ia Boleh Dikurangkan?
Kesan Penghidu Parameter pada Prestasi Prosedur Tersimpan
Prosedur tersimpan yang memanfaatkan parameter tarikh (@MyDate) menunjukkan percanggahan prestasi yang ketara berdasarkan nilai awal parameter semasa penyusunan. Apabila @MyDate diluluskan sebagai NULL pada mulanya, pelaksanaan prosedur berikutnya mengalami prestasi yang lemah, tanpa mengira nilai input sebenar. Walau bagaimanapun, memulakan @MyDate dengan tarikh atau tarikh semasa semasa penyusunan memastikan prestasi optimum untuk semua seruan berikutnya.
Tingkah laku ini boleh dikaitkan dengan mekanisme menghidu parameter SQL Server, yang menilai nilai parameter pertanyaan semasa disimpan penyusunan prosedur. Dalam kes ini, apabila @MyDate pada mulanya NULL, pengoptimum menjana pelan pelaksanaan yang tidak cekap yang berterusan walaupun @MyDate mengandungi nilai bukan NULL kemudian.
Untuk menyelesaikan isu ini, lumpuhkan penghidu parameter dengan menggunakan salinan parameter @MyDate (@MyDate_Copy). Ini memastikan bahawa Pelayan SQL mengoptimumkan pelan pertanyaan berdasarkan nilai semasa @MyDate pada masa jalan, menghapuskan kesan nilai parameter awal.
Dalam SQL Server 2005, sniffing parameter diketahui menunjukkan pepijat yang teruk, membawa kepada kesesakan prestasi dan juga ketidaklengkapan pertanyaan. Oleh itu, adalah disyorkan untuk menutup parameter prosedur tersimpan untuk mengelakkan isu ini. SQL Server 2008 menyediakan klausa OPTIMIZE FOR UNKNOWN, yang boleh digunakan untuk menangani kebimbangan prestasi berkaitan menghidu parameter.
Atas ialah kandungan terperinci Bagaimanakah Kesan Menghidu Parameter Mempengaruhi Prestasi Prosedur Tersimpan, dan Bagaimana Ia Boleh Dikurangkan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!