|
|
|
3.0: hash join не применяется, если в левой или правой частях условия нет полей *таблиц* ?
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. Оптимизатор перед тем, как решить, как соединять, "подглядывает" внутрь источников и если видит, что в одной из частей соединения нет "настоящих полей", отказывается от HJ. Это так и было задумано ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2014, 02:15 |
|
||
|
3.0: hash join не применяется, если в левой или правой частях условия нет полей *таблиц* ?
|
|||
|---|---|---|---|
|
#18+
И еще. Как его вообще заставить применить HJ, когда соединяем по rdb$db_key ? Код: plaintext 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2014, 02:23 |
|
||
|
3.0: hash join не применяется, если в левой или правой частях условия нет полей *таблиц* ?
|
|||
|---|---|---|---|
|
#18+
Таблоид, в трекер занеси ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2014, 11:44 |
|
||
|
3.0: hash join не применяется, если в левой или правой частях условия нет полей *таблиц* ?
|
|||
|---|---|---|---|
|
#18+
для dbkey точно недоработка. А вот для первых примеров я не уверен. В отличие от NLJ, HJ/MJ вычисляют условие соединения несколько раз. При твоем любимом rand может получиться так, что джойн никогда не вернет ни одной записи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2014, 12:12 |
|
||
|
3.0: hash join не применяется, если в левой или правой частях условия нет полей *таблиц* ?
|
|||
|---|---|---|---|
|
#18+
dimitr, Вопрос не совсем в тему, но таки спрошу, потому как и HJ не помогает. Есть inner join 2-х таблиц. В поле соединения много null-ов. Для простоты можно рассмотреть джойн таблицы самой с собой, где данных 10% по сравнению с null-ами. Если соединять без условий, то запрос работает долго. Если на первую таблицу дать not null, то значительно быстрее. Получается много стрельбы холостыми? Если переписать через вложенный for select то получается тоже самое. Планируются ли оптимизации в этом ключе? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2014, 12:33 |
|
||
|
3.0: hash join не применяется, если в левой или правой частях условия нет полей *таблиц* ?
|
|||
|---|---|---|---|
|
#18+
dimitrдля dbkey точно недоработка. А вот для первых примеров я не уверен. В отличие от NLJ, HJ/MJ вычисляют условие соединения несколько раз. При твоем любимом rand может получиться так, что джойн никогда не вернет ни одной записи.В трекер добавил, CORE-4528 А что касается rand(), то всё также грустно и при наличии констант (и отсутствии ссылок на поля таблиц): Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2014, 13:10 |
|
||
|
3.0: hash join не применяется, если в левой или правой частях условия нет полей *таблиц* ?
|
|||
|---|---|---|---|
|
#18+
afgm, давай конкретику - сколько в секундах и в фетчах "долго" и сколько "значительно быстрее". Поле связи индексировано? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2014, 15:38 |
|
||
|
3.0: hash join не применяется, если в левой или правой частях условия нет полей *таблиц* ?
|
|||
|---|---|---|---|
|
#18+
dimitrдавай конкретику - сколько в секундах и в фетчах "долго" и сколько "значительно быстрее". Поле связи индексировано? Код: sql 1. 2. 15s 538ms Код: plaintext 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. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. Код: sql 1. 2. 3. 265ms Код: plaintext 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. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2014, 16:01 |
|
||
|
3.0: hash join не применяется, если в левой или правой частях условия нет полей *таблиц* ?
|
|||
|---|---|---|---|
|
#18+
afgm, хороший пример, спасибо. Можно попробовать оптимизировать, заноси в трекер. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2014, 17:09 |
|
||
|
|

start [/forum/topic.php?fid=40&msg=38728210&tid=1563376]: |
0ms |
get settings: |
7ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
170ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
58ms |
get tp. blocked users: |
2ms |
| others: | 209ms |
| total: | 483ms |

| 0 / 0 |
