|
Почему планировщик сильно ошибается в оценке JOIN?
|
|||
---|---|---|---|
#18+
Делаем джойн по двум таблицам. План такой Код: plaintext 1. 2.
В одной таблице планировщик ожидает 3 записи, в другой 2, а в джойне ему мерещится уже 1691 (!?). Откуда это число? Разве максимально возможно число записей в джойне не 3*2? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.08.2017, 18:26 |
|
Почему планировщик сильно ошибается в оценке JOIN?
|
|||
---|---|---|---|
#18+
Dany305Делаем джойн по двум таблицам. План такой Код: plaintext 1. 2.
В одной таблице планировщик ожидает 3 записи, в другой 2, а в джойне ему мерещится уже 1691 (!?). Откуда это число? Разве максимально возможно число записей в джойне не 3*2? Вы настолько обрезанный кусок плана дали что понять ничего нельзя. -- Maxim Boguk лучшая поддержка PostgreSQL: dataegret.ru ... |
|||
:
Нравится:
Не нравится:
|
|||
30.08.2017, 18:31 |
|
Почему планировщик сильно ошибается в оценке JOIN?
|
|||
---|---|---|---|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7.
... |
|||
:
Нравится:
Не нравится:
|
|||
30.08.2017, 18:41 |
|
Почему планировщик сильно ошибается в оценке JOIN?
|
|||
---|---|---|---|
#18+
Dany305, а как выглядит запрос и какая версия базы? используются ли какие-то экстеншны нестандартные? ... |
|||
:
Нравится:
Не нравится:
|
|||
31.08.2017, 06:55 |
|
Почему планировщик сильно ошибается в оценке JOIN?
|
|||
---|---|---|---|
#18+
AlexiusDany305, а как выглядит запрос и какая версия базы? используются ли какие-то экстеншны нестандартные? Код: plsql 1. 2. 3. 4. 5. 6.
PostgreSQL 9.5.7 нестандартных экстеншенов нет ... |
|||
:
Нравится:
Не нравится:
|
|||
31.08.2017, 15:22 |
|
Почему планировщик сильно ошибается в оценке JOIN?
|
|||
---|---|---|---|
#18+
Dany305, 1691 -- чай простое, надо в коде искать битым текстом. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.08.2017, 17:00 |
|
Почему планировщик сильно ошибается в оценке JOIN?
|
|||
---|---|---|---|
#18+
Dany305, хм, а точно план выше он от этого запроса и приведен без сокращений? primary key у вас по каким полям в обоих таблицах? ... |
|||
:
Нравится:
Не нравится:
|
|||
31.08.2017, 17:12 |
|
Почему планировщик сильно ошибается в оценке JOIN?
|
|||
---|---|---|---|
#18+
и если сделать точно такой же запрос, но явно указать партиции, какой план получается? ... |
|||
:
Нравится:
Не нравится:
|
|||
31.08.2017, 17:18 |
|
Почему планировщик сильно ошибается в оценке JOIN?
|
|||
---|---|---|---|
#18+
AlexiusDany305, хм, а точно план выше он от этого запроса и приведен без сокращений? primary key у вас по каким полям в обоих таблицах? query_id pk в query bar_id pk в bar Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
Alexiusи если сделать точно такой же запрос, но явно указать партиции, какой план получается? если явно задавать партиции, то все хорошо)) Код: plaintext 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
31.08.2017, 18:27 |
|
Почему планировщик сильно ошибается в оценке JOIN?
|
|||
---|---|---|---|
#18+
Dany305, я думаю, оно на оппенд болт ложыд, а берет из статистики предка потолочную оценку. рыбу заворачивали, какабычна. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.08.2017, 19:38 |
|
Почему планировщик сильно ошибается в оценке JOIN?
|
|||
---|---|---|---|
#18+
Dany305, а сколько у вас всего партиций по каждой таблице? fk по bar_id между партициями разных таблиц нет? как у вас в исходном плане получилось Код: sql 1.
4 строки при выборке по pk? было другое условие в запросе, не query_id = x? если сделать analyze queries; analyze bar; оценка не становится лучше? ... |
|||
:
Нравится:
Не нравится:
|
|||
31.08.2017, 20:35 |
|
|
start [/forum/topic.php?fid=53&msg=39513685&tid=1996249]: |
0ms |
get settings: |
10ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
41ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
others: | 15ms |
total: | 139ms |
0 / 0 |