|
Объясните, плиз, на пальцах в чём отличие nested loops от hash join?
|
|||
---|---|---|---|
#18+
Объясните, плиз, на пальцах в чём отличие nested loops от hash join? Если можно, пожалуйста попроще, ибо тупой)) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2021, 10:38 |
|
Объясните, плиз, на пальцах в чём отличие nested loops от hash join?
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2021, 10:43 |
|
Объясните, плиз, на пальцах в чём отличие nested loops от hash join?
|
|||
---|---|---|---|
#18+
Не надо неокрепшие умы к Бурлесону приучать. https://docs.oracle.com/en/database/oracle/oracle-database/21/tgsql/joins.html#GUID-BD96F1B4-76D4-43DF-98B6-D07F46838C4A ... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2021, 11:15 |
|
Объясните, плиз, на пальцах в чём отличие nested loops от hash join?
|
|||
---|---|---|---|
#18+
Yuri Kazakoff на пальцах ну если совсем на пальцах, то примерно так (псевдокод на питоне): Код: plsql 1.
Код: python 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2021, 10:49 |
|
Объясните, плиз, на пальцах в чём отличие nested loops от hash join?
|
|||
---|---|---|---|
#18+
кит северных морей, неверная аналогия даже в случае крайнего упрощения: 1. Основное отличие NL в том, что он передает параметр из ведущей таблицы в функцию получения из ведомой; в Cost Based Oracle Fundamentals Льюис более удачный пример привел: Код: plsql 1. 2. 3. 4. 5.
2. В варианте HJ, не показано, почему он собственно называется Hash join. Поэтому я бы чуток переделал примеры: Код: python 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
Названия inner/outer тоже не очень удачно выбраны: “OUTER” AND “INNER” TABLES “OUTER” AND “INNER” TABLES The terms outer and inner are really only appropriate to nested loop joins. When talking about hash joins, you ought to refer to the build table and probe table; and for merge joins, the terms first table and second table are sufficient. However, you will find that the 10053 trace file always uses the terms outer and inner to identify the first and second tables respectively in a join operation. I will revisit this point in the relevant chapters. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2021, 16:08 |
|
Объясните, плиз, на пальцах в чём отличие nested loops от hash join?
|
|||
---|---|---|---|
#18+
xtender, я думаю что фундаментальное отличие заключается в том, что в случае с NL вы получаете m * n итераций циклов за счет их вложенности, а в случае с HJ вы получаете m + n, но с дополнительными расходами по памяти на хэш-таблицу. я намеренно максимально упростил пример, чтобы продемонстрировать этот tradeoff. вы говорите всё правильно, конечно, но мне кажется, что это уже больше про основы реализации. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2021, 17:18 |
|
Объясните, плиз, на пальцах в чём отличие nested loops от hash join?
|
|||
---|---|---|---|
#18+
при NL поиск идет по индексу при HJ по full table scan перелопачивается вся таблица я намеренно максимально упростил пример, чтобы продемонстрировать этот tradeoff. ( C ) p.s. Вообще тема похожа на попытку вбросить что-то на вентилятор ибо Имя Yuri Kazakoff Статус Зарегистрированный участник Зарегистрирован: 13 ноября 2004 , 14:13 ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2021, 17:29 |
|
Объясните, плиз, на пальцах в чём отличие nested loops от hash join?
|
|||
---|---|---|---|
#18+
Leonid Kudryavtsev p.s. Вообще тема похожа на попытку вбросить что-то на вентилятор ибо Имя Yuri Kazakoff Статус Зарегистрированный участник Зарегистрирован: 13 ноября 2004 , 14:13 он же написал, что тупой. всё нормально. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2021, 17:38 |
|
Объясните, плиз, на пальцах в чём отличие nested loops от hash join?
|
|||
---|---|---|---|
#18+
Leonid Kudryavtsev при NL поиск идет по индексу максимально упростил пример Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21.
..... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2021, 17:51 |
|
Объясните, плиз, на пальцах в чём отличие nested loops от hash join?
|
|||
---|---|---|---|
#18+
кит северных морей в случае с NL вы получаете m * n итераций циклов за счет их вложенности, а в случае с HJ вы получаете m + n ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2021, 18:00 |
|
Объясните, плиз, на пальцах в чём отличие nested loops от hash join?
|
|||
---|---|---|---|
#18+
Yuri Kazakoff Объясните, плиз, на пальцах в чём отличие nested loops от hash join? Если можно, пожалуйста попроще, ибо тупой)) Тут Оракл попытался объяснить на иховом. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2021, 18:17 |
|
Объясните, плиз, на пальцах в чём отличие nested loops от hash join?
|
|||
---|---|---|---|
#18+
xtender это как это? А лукап в хэш-таблицу? согласен. на каждом шаге n будет один лукап. ну, пусть будет m + 2n операций. xtender Вообще это не про циклы, а про количество и характер операций чтения, т.е именно доступ к данным каждый шаг цикла - это какая-то операция доступа к данным с определенной стоимостью. я не вижу здесь противоречия. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2021, 21:51 |
|
Объясните, плиз, на пальцах в чём отличие nested loops от hash join?
|
|||
---|---|---|---|
#18+
кит северных морей один лукап Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27.
например, тут по #6 будет построена хэш-таблица из 100 строк с одним и тем же ключом, и для каждой строки из #8 будет цикл-перебор по 100 строкам в хэш-таблице, т.к. ключ у них одинаковый. Однако, происходить это будет внутри самой функции HJ. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2021, 02:33 |
|
|
start [/forum/topic.php?fid=52&fpage=27&tid=1880487]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
29ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
61ms |
get tp. blocked users: |
1ms |
others: | 10ms |
total: | 141ms |
0 / 0 |