Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
27.08.2012, 10:11
|
|||
---|---|---|---|
|
|||
Поменять план запроса |
|||
#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 ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=41&tablet=1&tid=1583483]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
47ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
33ms |
get tp. blocked users: |
2ms |
others: | 15ms |
total: | 137ms |
0 / 0 |