Хранимая процедура требует времени на выполнение - PullRequest
1 голос
/ 18 октября 2010

Я давно ломаю голову над этим вопросом.Я сохранил процедуру в MS SQl, и когда я пытаюсь выполнить эту процедуру, предоставляя все параметры в SQL-запросе, выполнение занимает много времени, но когда я пытаюсь напрямую выполнить запрос, который есть в SP, он выполняется в кратчайшие сроки.Это также влияет на производительность моего приложения, поскольку мы используем хранимые процедуры для извлечения данных с БД-сервера.

Пожалуйста, помогите.

С уважением,

Викрам

1 Ответ

3 голосов
/ 18 октября 2010

Похоже, параметр нюхает.

Вот хорошее объяснение: Я чувствую запах параметра!

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

Вы можете пометить процедуру перекомпиляции вручную, используя sp_recompile или использовать опцию With Recompile в своем определении, чтобы она компилировалась при каждом запуске.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...