В этом сообщении блога Кимберли Л. Трипп описывает лучший способ создания многоцелевой хранимой процедуры. Лучший способ, как она упоминает, - использовать option(recompile)
, когда оператор нестабилен, чтобы план выполнения не помещался в кеш, и sp_executesql
, когда мы знаем, что оператор стабильный и это зависит от типа переданного столбца. к утверждению.
Мой вопрос заключается в том, как мы узнаем, стабильно ли утверждение на основе столбца?
1) Если мой оператор стабильный, когда я указываю столбец будет ли он стабильным, если я укажу этот столбец рядом с другими столбцами?
2) Если столбец является очень избирательным (их значения разные, мы можем узнать это из вектора плотности с низким значением AllDensity colmun) означает ли это автоматически, что оператор, имеющий этот столбец, является стабильным?