Хранимая процедура требует больше времени для выполнения (Sql Server 2005)
У меня реализована хранимая процедура, и вызов этого хранимого процесса с веб-страницы занимает более 300 мс, но когда пишете скрипт на веб-странице и вызываете URL, он выполняется за 50 мс
Какие шаги необходимы для сокращения времени выполнения хранимой процедуры. Почему sp занимает больше времени, чем скрипт db на странице
2 ответа
Хранимые процедуры компилируются и сохраняются в кеше процедур, когда они выполняются в первый раз - с использованием параметров, которые были предоставлены в то время.
Таким образом, кэшированный план выполнения может быть не оптимальным для набора параметров, с которыми вы сейчас тестируете. Попробуйте dbcc freeproccache
и проверить снова.
Если это работает, то вы можете рассмотреть возможность добавления подсказки WITH RECOMPILE к хранимой процедуре для принудительной перекомпиляции при каждом выполнении.
План запросов - это ваше окно "под капотом", чтобы увидеть подход SQL Server к выполнению ваших запросов (включая хранимые процедуры). Посмотрите, что делает план запроса, и оптимизируйте его, используя индексы и обновляя статистику.
Вы также можете использовать SQL Server Profiler для оптимизации запросов. Запустите трассировку, используя шаблон "Воспроизведение", затем введите трассировку в помощник по настройке ядра СУБД. Это даст (и может реализовать) предложения относительно метаданных базы данных, которые позволят SQL Server работать в лучшем виде.