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

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

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

2 ответа

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

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

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

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

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

Другие вопросы по тегам