Я переписываю хранимую процедуру на работе, в первую очередь, чтобы она не выполняла грязное чтение и не внесла каких-либо существенных структурных изменений. Тем не менее, при запуске новой версии против текущей версии я обнаружил, что новая версия работает почти вдвое дольше в базе данных dev, которая не слишком активна!
Следуя советам с этого сайта:
http://www.sql -server-performance.com / статьи / в / optimizing_sp_recompiles_p1.aspx
Я использовал профилировщик, чтобы увидеть, что происходит, и, к моему удивлению, для новой версии есть много «Cache Remove», но для текущей версии их нет!
Может кто-нибудь сказать мне, что вызывает сброс кэша?
У меня есть все определения временных таблиц и создание индексов заранее (хотя в учебнике сказано, что построение признаков после INSERT обычно лучше, я экспериментировал с этим подходом и обнаружил, что sproc действительно работает медленнее); и я не вносил никаких изменений схемы ни в какие ссылочные объекты.
Спасибо