|
Поменять план запроса
|
|||
---|---|---|---|
#18+
Добрый день! Есть такой запрос Код: plsql 1. 2. 3.
План такой Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
Main_tab примерно 4млн записей (это признаки) blockrest примерно 2тысячи (это остатки) blockrest я специально добавил, для ускорения выборки данных. Так вот если убрать все условия WHERE, то запрос с inner join выполняется мгновенно. С условиями сначала начинает выполнять WHERE и только потом join. И весь смысл таблицы с остатками теряется. Думал оберну select c join и в нем уже выберу по условиям Код: plsql 1. 2. 3.
План не изменился совершенно Как заставить postgres сначала выполнить inner join. Index scan по main_tab все равно работает медленнее, чем seq scan по выборке inner join. Я конечно понимаю что планировщик - вещь в себе и ему лучше знать как выполнить запрос. Но все таки... Как заставить сначала сделать объединение, а потом отбор? --- PostgreSQL 8.2.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2012, 10:11 |
|
|
start [/forum/topic.php?fid=41&fpage=53&tid=1583483]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
35ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
34ms |
get tp. blocked users: |
2ms |
others: | 14ms |
total: | 131ms |
0 / 0 |