Назад | Перейти на главную страницу

Хранимая процедура, требующая больше времени для выполнения (Sql Server 2005)

У меня реализована хранимая процедура, и вызов этой хранимой процедуры с веб-страницы занимает более 300 мс, но когда пишете скрипт на веб-странице и вызываете URL-адрес, он выполняется за 50 мс

Какие шаги необходимы, чтобы сократить время выполнения сохраненной процедуры. Почему sp занимает больше времени, чем сценарий db на странице

Хранимые процедуры компилируются и сохраняются в кэше процедур при первом выполнении - с использованием параметров, которые были предоставлены в то время.

Таким образом, кэшированный план выполнения может быть неоптимальным для набора параметров, с которыми вы сейчас тестируете. Попробуйте dbcc freeproccache и снова протестируем.

Если это сработает, вы можете рассмотреть возможность добавления подсказки WITH RECOMPILE к хранимой процедуре для принудительной перекомпиляции при каждом выполнении.

План запроса - это ваше окно «под капотом», чтобы увидеть подход SQL Server к выполнению ваших запросов (включая хранимые процедуры). Посмотрите, что за план запроса делает и оптимизирует соответствующим образом, используя индексы и обновляя статистику.

Вы также можете использовать SQL Server Profiler для оптимизации запросов. Запустите трассировку с помощью шаблона «Воспроизведение», затем загрузите трассировку в помощник по настройке ядра СУБД. Это даст (и может реализовать) предложения относительно метаданных базы данных, которые позволят SQL Server работать наилучшим образом.