2012-06-28 7 views
0

У меня есть 2 хранимых процедуры (sp1 и sp2) в SQL Server 2005 с тем же скриптом sql (без разницы вообще, кроме имени).SQL Server 2005 - оптимизация хранимых процедур

Когда я пытаюсь выполнить sp1, он возвращает более 3000 строк в результате в 0-1 сек. Но когда я запустил sp2, он вернет эти 3000 строк за 10 секунд.

Хотелось бы знать, есть ли какой-либо инструмент/команда/все, что может настроить определенную хранимую процедуру для оптимальной оптимизации?

Спасибо.

+0

Вы выполняете работы в той же базе данных? Или разные? Похоже, что это две отдельные базы данных, а вторая база данных, например, устаревшая статистика или что-то в этом роде. –

+0

Его же база данных! – Yogesh

ответ

0

SQL Server сохраняет «планы» о том, как выполнять код.

Если хранимая процедура выполняется против небольшого подмножества данных, она будет оптимизирована для небольшого набора данных. Для большого набора данных верно обратное.

Theres a nice OPTIMIZE FOR feature in 2008, но в 2005 году вы застряли в WITH RECOMPILE. Это означает, что он будет перекомпилирован каждый раз, когда он запускается, что в некоторых случаях является наиболее оптимальным!

+0

Спасибо за информацию. запуская эти 2 procs на Sql Server 2005. – Yogesh

Смежные вопросы