|
Разное время выполнения запроса в зависимости от способа запуска. Почему?
|
|||
---|---|---|---|
#18+
Добрый день. Уже не в первый раз сталкиваюсь с ситуацией, когда запрос, запущенный просто из IDE, например, из той же SSMS, отрабатывает в десятки, а бывает и в сотни раз быстрее, чем он же, но обернутый в процедуру. Самый частый пример, который я встречал (хоть их было и совсем не много) - это когда идет "цепочка" джойнов, вместо "веера" джойнов. Ну, то есть, допустим, есть некие таблицы (A,B,C,D), в каждой из которой есть ID клиента и при необходимости связать эти таблицы в join, мы должны связывать по этому ID. Так вот, вышеописанное поведение мне встречалось, если запрос построен следующим образом: Код: sql 1. 2. 3. 4.
Если поменять на вот такой запрос, то адовые тормоза при запросе обернутом в процедуру пропадали Код: sql 1. 2. 3. 4.
Я понимаю, что оба запроса вполне имеют право на существование, в зависимости от того, что мы хотим получить в итоге, но в тех запросах такое исправление было допустимо. К сожалению, встречал я такие вещи хоть и недавно, но сейчас уже не найду тот пример, поэтому по конкретике подсказать не смогу. Может кто сможет рассказать о "физике процесса", т.е. почему происходит именно так? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.06.2020, 08:21 |
|
Разное время выполнения запроса в зависимости от способа запуска. Почему?
|
|||
---|---|---|---|
#18+
Всем спасибо, вопрос снят. Разместив вопрос полез посмотреть вопросы от других пользователей и через один от моего нашел практически такой-же вопрос, где в ответах указали ссылку http://www.queryprocessor.ru/fast-in-ssms-slow-in-app-part1 Засел читать. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.06.2020, 08:25 |
|
|
start [/forum/topic.php?fid=46&msg=39970731&tid=1685972]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
206ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
37ms |
get tp. blocked users: |
1ms |
others: | 277ms |
total: | 560ms |
0 / 0 |