
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
18.02.2015, 17:33
|
|||
|---|---|---|---|
|
|||
увеличение записей после Materialize |
|||
|
#18+
Всем привет! PostgreSQL 9.2.4 on x86_64-unknown-linux-gnu, compiled by gcc (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3, 64-bit Запрос: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. план: Код: sql 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. вопрос по части Код: sql 1. 2. 3. 4. Видим, что прочитали 8 строк, после Materialize видим 16. Как ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
18.02.2015, 18:17
|
|||
|---|---|---|---|
увеличение записей после Materialize |
|||
|
#18+
Gold_, Это потому, что используется Merge Join. Если у нас есть дублирующиеся значения, то это приведет к тому, что соответствующие записи будут возвращены повторно пр результатам связки. `EXPLAIN (analyze)` в каждом узле рапортует фактически возвращенное кол-во записей, соответственно если одна и та же запись возвращалась несколько раз, общее значение увеличится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
19.02.2015, 13:41
|
|||
|---|---|---|---|
|
|||
увеличение записей после Materialize |
|||
|
#18+
vyegorovGold_, Это потому, что используется Merge Join. Если у нас есть дублирующиеся значения, то это приведет к тому, что соответствующие записи будут возвращены повторно пр результатам связки. `EXPLAIN (analyze)` в каждом узле рапортует фактически возвращенное кол-во записей, соответственно если одна и та же запись возвращалась несколько раз, общее значение увеличится. Честно говоря, не понял. Код: sql 1. pk_otahotel - это PRIMARY KEY Запрос вернет 10 записей для одного o.id Вы могли бы перефразировать свой ответ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
19.02.2015, 15:15
|
|||
|---|---|---|---|
увеличение записей после Materialize |
|||
|
#18+
Gold_, Я попытался смоделировать ситуацию. У меня 9.4.1-win64. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. Этот `EXPLAIN` показывает, что: Код: plaintext 1. Т.е. не смотря на то, что нижний узел вернул 55 записей, сортировка отдала 64. Этот эффект возникает из-за дублирующихся значений, т.е. по “десяточкам” надо пройтись 2 раза. Merge Join Rescan называется. Надеюсь, что пояснил. Сам лучше стал понимать :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
19.02.2015, 16:22
|
|||
|---|---|---|---|
|
|||
увеличение записей после Materialize |
|||
|
#18+
vyegorov, а покажите целиком EXPLAIN Вашего теста ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
19.02.2015, 16:29
|
|||
|---|---|---|---|
увеличение записей после Materialize |
|||
|
#18+
Gold_, Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=53&mobile=1&tid=1998159]: |
0ms |
get settings: |
7ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
22ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
| others: | 214ms |
| total: | 314ms |

| 0 / 0 |
