Вам доведеться пробачити мою наївність, оскільки я не DBA, але я розумію, що з часом статистика зміни бази даних і збережена процедура повинні бути перекомпільовані, щоб тримати план запитів в курсі останніх статистичних даних.
Якщо припустити, що у моїй базі даних є збережена процедура, яка перекомпільована проти останніх статистичних даних на певному регулярному інтервалі, які наслідки є вбудовування збереженої процедури в код та загортання її у sp_executesql
виписку? Чи втрачаю я оновлення плану запитів, який раніше відбувався в рамках перекомпіляції процедури?
Якщо є щось інше (окрім дозволів), що мені потрібно розглянути, перш ніж вносити цю зміну, то я буду вдячний за вашу думку.
Я читав це на MSDN:
Можливість оптимізатора запитів SQL Server співставляти нову рядок Transact-SQL з існуючим планом виконання заважає постійно змінюються значенням параметрів у тексті рядка, особливо у складних операторах Transact-SQL.
Отже, якщо припустити, що збережена процедура, яку я намагаюся встроїти і завершити sp_executesql
, дійсно містить деякі параметри, чи це говорить про те, що, хоча мій план виконання є кешованим, я ускладнюю його пошук і повторне використання SQL Server?