Anda harus memaafkan kenaifan saya karena saya bukan DBA tetapi pemahaman saya adalah bahwa seiring waktu statistik dari perubahan database dan prosedur yang disimpan harus dikompilasi ulang untuk menjaga rencana kueri tetap up to date dengan statistik terbaru.
Dengan asumsi saya memiliki prosedur tersimpan dalam database saya yang dikompilasi ulang terhadap statistik terbaru pada beberapa interval reguler, apa implikasi dari menyelaraskan prosedur tersimpan dalam kode dan membungkusnya dalam sebuah sp_executesql
pernyataan? Apakah saya kehilangan penyegaran dari rencana kueri yang dulu terjadi sebagai bagian dari kompilasi ulang prosedur?
Jika ada hal lain (selain izin) yang perlu saya pertimbangkan sebelum saya melakukan perubahan ini maka saya akan menghargai wawasan Anda.
Saya membaca ini di MSDN:
Kemampuan pengoptimal permintaan SQL Server untuk mencocokkan string Transact-SQL baru dengan rencana eksekusi yang ada terhambat oleh nilai parameter yang terus berubah dalam teks string, terutama dalam pernyataan Transact-SQL yang kompleks.
Jadi dengan asumsi prosedur tersimpan yang saya coba in-line dan bungkus sp_executesql
memang mengandung beberapa parameter, apakah ini mengatakan bahwa meskipun rencana eksekusi saya di-cache, saya mempersulit SQL Server untuk menemukan dan menggunakannya kembali?
sumber