Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
UNION ALL убивает производительность?
|
|||
|---|---|---|---|
|
#18+
Добрый день. SQL SERVER 14.0.3162.1 Уровень совместимости БД SQL Server 2017 (140) Запрос состоит из 2-х одинаковых частей (такой вариант выбран для быстрого воспроизведения) объединенных через UNION ALL, а сама часть состоит из полного соединения 2-х индексированных таблиц, одна из которых имеет уникальные записи (в итоге многие ко многим=false). Приблизительный вид такой: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. Если выполнить только одну часть, без объединения, то FULL JOIN будет выполняется через слияние, что вполне ожидаемо, но когда выполняется объединение (UNION ALL) частей, то план радикально меняется и использует в частях для FULL JOIN хеширование с выносом в tempdb. Зачем и почему так происходит не совсем понятно, ведь созданы идеальные условия для соединения, чего ему не хватает? PS: приложил сам текст запроса, план целиком и план одной части. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2019, 15:00 |
|
||
|
UNION ALL убивает производительность?
|
|||
|---|---|---|---|
|
#18+
denacid, StatementOptmEarlyAbortReason="TimeOut" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2019, 15:15 |
|
||
|
UNION ALL убивает производительность?
|
|||
|---|---|---|---|
|
#18+
denacid, Для интересу попробуйте с OPTION(QUERYTRACEON 8780) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2019, 15:16 |
|
||
|
UNION ALL убивает производительность?
|
|||
|---|---|---|---|
|
#18+
TaPaKdenacid, Для интересу попробуйте с OPTION(QUERYTRACEON 8780) Мда, план стал нормальным ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2019, 15:42 |
|
||
|
UNION ALL убивает производительность?
|
|||
|---|---|---|---|
|
#18+
Не использую флаги есть пути обхода, чтобы такие запросы работали корректно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2019, 15:47 |
|
||
|
UNION ALL убивает производительность?
|
|||
|---|---|---|---|
|
#18+
denacidНе использую флаги есть пути обхода, чтобы такие запросы работали корректно? Религия? Суеверия? Не пишите "такие" интересные запросы что склт не способен переварить. Прибейте merge join ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2019, 15:50 |
|
||
|
UNION ALL убивает производительность?
|
|||
|---|---|---|---|
|
#18+
TaPaKdenacidНе использую флаги есть пути обхода, чтобы такие запросы работали корректно? Религия? Суеверия? Не пишите "такие" интересные запросы что склт не способен переварить. Прибейте merge join Не думал что такой простой запрос будет для скуля неподъемным) пишу как 1С позволяет, была бы возможность уже давно бы merge join написал ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2019, 15:55 |
|
||
|
UNION ALL убивает производительность?
|
|||
|---|---|---|---|
|
#18+
denacidTaPaKпропущено... Религия? Суеверия? Не пишите "такие" интересные запросы что склт не способен переварить. Прибейте merge join Не думал что такой простой запрос будет для скуля неподъемным) пишу как 1С позволяет, была бы возможность уже давно бы merge join написал два full join? да тут один писать сто раз подумаешь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2019, 16:09 |
|
||
|
UNION ALL убивает производительность?
|
|||
|---|---|---|---|
|
#18+
TaPaK, Меня FULL JOIN особо не пугает, когда для него нормально подготовлены таблицы и индексы. Переделал на LEFT JOIN - получил такой же результат. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2019, 16:18 |
|
||
|
UNION ALL убивает производительность?
|
|||
|---|---|---|---|
|
#18+
А какого-то хинта типа "выполнять unian all по очереди, в не умничать" не появилось? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2019, 16:45 |
|
||
|
UNION ALL убивает производительность?
|
|||
|---|---|---|---|
|
#18+
mnbvcxА какого-то хинта типа "выполнять unian all по очереди, в не умничать" не появилось? Поумничайте, как по вашему должно выглядеть "по очереди" и не при этом не как это делает engine ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2019, 16:50 |
|
||
|
UNION ALL убивает производительность?
|
|||
|---|---|---|---|
|
#18+
хотя зачем мне это, живите с этим сами ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2019, 16:52 |
|
||
|
UNION ALL убивает производительность?
|
|||
|---|---|---|---|
|
#18+
TaPaKmnbvcxА какого-то хинта типа "выполнять unian all по очереди, в не умничать" не появилось? Поумничайте, как по вашему должно выглядеть "по очереди" и не при этом не как это делает engine Я свою тему имел в виду Проблема с UNION ALL Где есть insert into ... select union all я переписываю ч-з последовательность инсертов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2019, 17:11 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=39866452&tid=1687239]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
138ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
| others: | 234ms |
| total: | 455ms |

| 0 / 0 |
