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