он используется
2) в таблице в 1.3 млн записей, вакуум сделан
3) такой запрос идет 4 секунды
select curDate::date, sum(sc.amount) from contracts_cpv sc, generate_series(fromDate,toDate,'1 day'::interval) curDate where "cpvCode"='30190000-7' group by curDate;
вот его план:
Finalize GroupAggregate (cost=490706.06..490758.73 rows=200 width=44)
Group Key: curdate.curdate
-> Gather Merge (cost=490706.06..490752.73 rows=400 width=40)
Workers Planned: 2
-> Sort (cost=489706.03..489706.53 rows=200 width=40)
Sort Key: curdate.curdate
-> Partial HashAggregate (cost=489695.89..489698.39 rows=200 width=40)
Group Key: curdate.curdate
-> Nested Loop (cost=0.43..391927.14 rows=19553750 width=14)
-> Parallel Index Only Scan using "contracts_cpv_cpvCode_fromdate_todate_amount_idx" on contracts_cpv sc (cost=0.43..847.13 rows=19554 width=14)
Index Cond: ("cpvCode" = '30190000-7'::text)
-> Function Scan on generate_series curdate (cost=0.01..10.01 rows=1000 width=8)
можно его как-то улучшить? подозреваю, что Nested Loop это не оч хорошо тут
А план с реальностью по количеству строк совпадает?
Обсуждают сегодня