|
push predicate to subquery with aggregate
|
|||
---|---|---|---|
#18+
привет. пытаюсь разобраться с постгресом, воюю с запросом.. я правильно понимаю, что протолкнуть условие в подзапрос с агрегацией тупо невозможно? Код: plsql 1. 2. 3. 4.
есть индекс на b.id, условие a.col возвращает 1 строку, что видно и в плане, но индекс хоть убей не используется. если форсировать nested loops, один хрен подзапрос сканируется полностью, лишь затем идёт соединение. подскажите плиз, я что-то не понимаю, или постгрес этого не умеет? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.09.2017, 18:06 |
|
push predicate to subquery with aggregate
|
|||
---|---|---|---|
#18+
bdsm_sqlпривет. пытаюсь разобраться с постгресом, воюю с запросом.. я правильно понимаю, что протолкнуть условие в подзапрос с агрегацией тупо невозможно? Код: plsql 1. 2. 3. 4.
есть индекс на b.id, условие a.col возвращает 1 строку, что видно и в плане, но индекс хоть убей не используется. если форсировать nested loops, один хрен подзапрос сканируется полностью, лишь затем идёт соединение. подскажите плиз, я что-то не понимаю, или постгрес этого не умеет? Не умеет. Используйте LATERAL JOIN и вносите условие внутрь аггрегата явно. -- Maxim Boguk лучшая поддержка PostgreSQL: dataegret.ru ... |
|||
:
Нравится:
Не нравится:
|
|||
27.09.2017, 18:08 |
|
push predicate to subquery with aggregate
|
|||
---|---|---|---|
#18+
bdsm_sql, Используйте lateral join (если версия pg актуальная, конечно) Впрочем одно значение можно и коррелирующим запросом в select вытянуть. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.09.2017, 18:09 |
|
|
start [/forum/topic.php?fid=53&fpage=66&tid=1996210]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
37ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
others: | 16ms |
total: | 146ms |
0 / 0 |