Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
27.01.2020, 20:04
|
|||
---|---|---|---|
Как зафиксировать соединение в плане |
|||
#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:08
|
|||
---|---|---|---|
Как зафиксировать соединение в плане |
|||
#18+
план при option (HASH JOIN) ... |
|||
:
Нравится:
Не нравится:
|
|||
|
27.01.2020, 20:10
|
|||
---|---|---|---|
Как зафиксировать соединение в плане |
|||
#18+
Slava_Nik, а если написать не хинт запроса в конце, а хинт соединения в нужном месте? (LEFT OUTER HASH JOIN) ... |
|||
:
Нравится:
Не нравится:
|
|||
|
28.01.2020, 11:06
|
|||
---|---|---|---|
|
|||
Как зафиксировать соединение в плане |
|||
#18+
Slava_Nik, пишите не через опцию, а через join (см справку). ... |
|||
:
Нравится:
Не нравится:
|
|||
|
28.01.2020, 14:51
|
|||
---|---|---|---|
Как зафиксировать соединение в плане |
|||
#18+
если я пишу LEFT OUTER HASH JOIN, то план так же не оптимальный , он делает две hash таблицы, как указано в моем втором сообщении, Немного ошибся в описание, но LEFT OUTER HASH JOIN сразу пробовал. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
28.01.2020, 15:00
|
|||
---|---|---|---|
Как зафиксировать соединение в плане |
|||
#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, 16:12
|
|||
---|---|---|---|
Как зафиксировать соединение в плане |
|||
#18+
Slava_Nik, посмотрите в сторону Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
28.01.2020, 16:48
|
|||
---|---|---|---|
Как зафиксировать соединение в плане |
|||
#18+
я так же делал, уже упоминал, создается вторая HASH таблица Aggregate, скорость запроса падает Про план guide sp_create_plan_guide знаю, но хочется его зафиксить хинтами ... |
|||
:
Нравится:
Не нравится:
|
|||
|
28.01.2020, 17:01
|
|||
---|---|---|---|
Как зафиксировать соединение в плане |
|||
#18+
Slava_Nik HASH таблица Aggregate Не нравится hash - укажите option (order group). Получите сортировку + Stream Aggregate. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
28.01.2020, 17:14
|
|||
---|---|---|---|
Как зафиксировать соединение в плане |
|||
#18+
invm, спасибо, вроде лучше, но все равно не как хороший вариант. Сортировка идет до HASH , и соответсвенно данных больше и ресурсов больше , как сортировку опубликовать после HASH ... |
|||
:
Нравится:
Не нравится:
|
|||
|
28.01.2020, 17:16
|
|||
---|---|---|---|
Как зафиксировать соединение в плане |
|||
#18+
Slava_Nik, план таков ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=46&mobile=1&tid=1686590]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
39ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
42ms |
get tp. blocked users: |
2ms |
others: | 16ms |
total: | 143ms |
0 / 0 |