Rumah >pangkalan data >tutorial mysql >Bagaimanakah Kesan Menghidu Parameter Mempengaruhi Prestasi Prosedur Tersimpan, dan Bagaimana Ia Boleh Dikurangkan?

Bagaimanakah Kesan Menghidu Parameter Mempengaruhi Prestasi Prosedur Tersimpan, dan Bagaimana Ia Boleh Dikurangkan?

DDD
DDDasal
2024-12-22 22:11:15728semak imbas

How Does Parameter Sniffing Impact Stored Procedure Performance, and How Can It Be Mitigated?

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!

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