Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Разница в скорости выборки в SP и запросе. SQLEXPRESS 2012  [new]
RodionD
Member

Откуда:
Сообщений: 209
Понадобилось сделать выборку с передачей параметров, написал ХП запустил - как-то долго.
Внутри ХП c помощью IF ... ELSE IF выбирается нужный запрос.
Создал запрос с самым "тяжелым" вариантом, задекларировал параметры, оставил 1 IF который всегда выполняется.
Запустил профайлер получил что-то вроде такого:
ХП - Reads: 1 437 037, Duration, ms: 18 442
Запрос - Reads: 189 785, Duration, ms: 1 326
Пробовал перенести ХП в табличную функцию, результат примерно такой же, как и ХП.
Откуда такая разница?
3 апр 14, 12:17    [15826363]     Ответить | Цитировать Сообщить модератору
 Re: Разница в скорости выборки в SP и запросе. SQLEXPRESS 2012  [new]
Knyazev Alexey
Member

Откуда: Екб -> Мск
Сообщений: 10233
Блог
https://www.sql.ru/articles/mssql/2005/070704techniqueforensuringplanstabilityinsqlserver2000.shtml
3 апр 14, 12:58    [15826675]     Ответить | Цитировать Сообщить модератору
 Re: Разница в скорости выборки в SP и запросе. SQLEXPRESS 2012  [new]
RodionD
Member

Откуда:
Сообщений: 209
Knyazev Alexey,

Отличный пост, прочитал, спс за ссылку.
Но он к моему случаю не относится, как мне кажется. Параметр который я передаю всего лишь выбирает нужный запрос.
А проблема, похоже, в LIKE, которые в запросе используються. Если из этого запроса в СП убрать WHERE (... LIKE @likeparam), то выполнение идет на порядок быстрее! Но опять же, не совсем ясно почему созданный запрос с этим LIKE работает быстро?
3 апр 14, 13:27    [15826847]     Ответить | Цитировать Сообщить модератору
 Re: Разница в скорости выборки в SP и запросе. SQLEXPRESS 2012  [new]
Glory
Member

Откуда:
Сообщений: 104751
RodionD
Но он к моему случаю не относится, как мне кажется.

Вы сделали этот вывод на основании сравнения планов выполнения ?
3 апр 14, 13:29    [15826860]     Ответить | Цитировать Сообщить модератору
 Re: Разница в скорости выборки в SP и запросе. SQLEXPRESS 2012  [new]
RodionD
Member

Откуда:
Сообщений: 209
Glory,

Да, план выполнения предложил мне создать несколько индексов. Создал. Стало значительно лучше.
Так же появилась одна странность. Планы выполнения запроса и ХП практически одинаковы, а вот план выполнения табличной функции, аналогичной ХП, состоит всего из пары пунктов, хотя условия, и запросы абсолютно одинаковы.
3 апр 14, 14:04    [15827134]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить