Hi, what you proposed seems correct to me. I don't know how to list indexes from a partitionned index. You can check if your indexes are valid using: select i.relname as indexname,i.relkind, t.relname as tablename, t.relkind, idx.indisvalid from pg_class i join pg_index idx on idx.indexrelid = i.oid join pg_class t on t.oid = idx.indrelid where t.relname like 'test%' to be really sure, try EXPLAIN with statements that should use those indexes like postgres=# explain select * from test_part where date_key >0; QUERY PLAN --------------------------------------------------------------------------------------- Append (cost=6.53..43.80 rows=614 width=60) -> Bitmap Heap Scan on test_201908 (cost=6.53..20.37 rows=307 width=60) Recheck Cond: (date_key > '0'::numeric) -> Bitmap Index Scan on test_201908_pkey (cost=0.00..6.45 rows=307 width=0) Index Cond: (date_key > '0'::numeric) -> Bitmap Heap Scan on test_201909 (cost=6.53..20.37 rows=307 width=60) Recheck Cond: (date_key > '0'::numeric) -> Bitmap Index Scan on test_201909_pkey (cost=0.00..6.45 rows=307 width=0) Index Cond: (date_key > '0'::numeric) (9 rows) or postgres=# explain select * from test_part where metric >0; QUERY PLAN --------------------------------------------------------------------------------------------- Append (cost=6.53..43.80 rows=614 width=60) -> Bitmap Heap Scan on test_201908 (cost=6.53..20.37 rows=307 width=60) Recheck Cond: (metric > '0'::numeric) -> Bitmap Index Scan on test_idx1_201908 (cost=0.00..6.45 rows=307 width=0) Index Cond: (metric > '0'::numeric) -> Bitmap Heap Scan on test_201909 (cost=6.53..20.37 rows=307 width=60) Recheck Cond: (metric > '0'::numeric) -> Bitmap Index Scan on test_201909_metric_idx (cost=0.00..6.45 rows=307 width=0) Index Cond: (metric > '0'::numeric) (9 rows) Regards PAscal -- Sent from: https://www.postgresql-archive.org/PostgreSQL-general-f1843780.html