|
Как зафиксировать соединение в плане
|
|||
---|---|---|---|
#18+
есть примерно такой запрос: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9.
Хороший план соединяет через HASH query_result с результатом подзапроса, но иногда он слетает , в итоге идет Nested Loops, Как мне его зафиксировать? Если пишу LEFT OUTER JOIN , то два раза создает хеш. результат не очень хороший, если пишу OPTION(HASH JOIN) , то он делает HASH JOIN для всех соединение, в том числе и в подзапросе, что не надо. Приложил файлик, красным выделен плохой план ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2020, 20:04 |
|
Как зафиксировать соединение в плане
|
|||
---|---|---|---|
#18+
план при option (HASH JOIN) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2020, 20:08 |
|
Как зафиксировать соединение в плане
|
|||
---|---|---|---|
#18+
Slava_Nik, а если написать не хинт запроса в конце, а хинт соединения в нужном месте? (LEFT OUTER HASH JOIN) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2020, 20:10 |
|
Как зафиксировать соединение в плане
|
|||
---|---|---|---|
#18+
Slava_Nik, пишите не через опцию, а через join (см справку). ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2020, 11:06 |
|
Как зафиксировать соединение в плане
|
|||
---|---|---|---|
#18+
если я пишу LEFT OUTER HASH JOIN, то план так же не оптимальный , он делает две hash таблицы, как указано в моем втором сообщении, Немного ошибся в описание, но LEFT OUTER HASH JOIN сразу пробовал. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2020, 14:51 |
|
Как зафиксировать соединение в плане
|
|||
---|---|---|---|
#18+
Slava_Nik если я пишу LEFT OUTER HASH JOIN, то план так же не оптимальный , он делает две hash таблицы, как указано в моем втором сообщении, ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2020, 15:00 |
|
Как зафиксировать соединение в плане
|
|||
---|---|---|---|
#18+
Slava_Nik, Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9.
... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2020, 15:00 |
|
Как зафиксировать соединение в плане
|
|||
---|---|---|---|
#18+
Slava_Nik, посмотрите в сторону Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2020, 16:12 |
|
Как зафиксировать соединение в плане
|
|||
---|---|---|---|
#18+
я так же делал, уже упоминал, создается вторая HASH таблица Aggregate, скорость запроса падает Про план guide sp_create_plan_guide знаю, но хочется его зафиксить хинтами ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2020, 16:48 |
|
Как зафиксировать соединение в плане
|
|||
---|---|---|---|
#18+
Slava_Nik HASH таблица Aggregate Не нравится hash - укажите option (order group). Получите сортировку + Stream Aggregate. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2020, 17:01 |
|
Как зафиксировать соединение в плане
|
|||
---|---|---|---|
#18+
invm, спасибо, вроде лучше, но все равно не как хороший вариант. Сортировка идет до HASH , и соответсвенно данных больше и ресурсов больше , как сортировку опубликовать после HASH ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2020, 17:14 |
|
Как зафиксировать соединение в плане
|
|||
---|---|---|---|
#18+
Slava_Nik, план таков ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2020, 17:16 |
|
|
start [/forum/topic.php?fid=46&fpage=71&tid=1686590]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
27ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
49ms |
get tp. blocked users: |
2ms |
others: | 12ms |
total: | 132ms |
0 / 0 |