SQL Хранитованная процедура Оптимизация выполнения: параметры и его воздействие
. Это происходит, когда двигатель базы данных собирает план выполнения хранимой процедуры на основе значений входных параметров, предоставленных во время компиляции. @Mydate datetime = null КАК Если @mydate is null set @mydate = current_timestamp - Сделайте что-нибудь, используя @mydate
в этом сценарии, если @mydate передается как нулевая во время первоначальной компиляции, база данных оптимизирует план выполнения для этого значения. Однако последующие призывы к процедуре с другими входными значениями могут привести к плохой производительности, даже если эти значения также являются NULL.
CREATE PROCEDURE MyProc @MyDate DATETIME = NULL AS IF @MyDate IS NULL SET @MyDate = CURRENT_TIMESTAMP -- Do Something using @MyDateвоздействие параметра Sniffing
Sniffing Параметр может иметь несколько негативных последствий:
Плохое планы выполнения:
Двигатель может генерировать неэффективные планы выполнения, которые не являются оптимальными для обработанных данных, приводя к медленному выполнению Query. Неправильнопонимание вопроса
, основная проблема в SQL Server 2005 является известной проблемой с обходом параметров в определенных уровнях патчей. В SQL Server 2008 о оптимизации для неизвестного пункта можно использовать для решения таких проблем.
дополнительные соображения
для дальнейшего повышения производительности при использовании хранимых процедур с параметрами ввода, это рекомендуется:
CREATE PROCEDURE MyProc @MyDate DATETIME = NULL AS IF @MyDate IS NULL SET @MyDate = CURRENT_TIMESTAMP -- Do Something using @MyDate. эффективно.
избегайте использования нулевых значений в качестве входных параметров, так как они могут вызвать непреднамеренные проблемы оптимизации.
контролировать производительность хранимых процедур и регулярно регулировать планы выполнения.]
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3