Pessoal,
Estou tentando usar uma estrategia de particionamento, porem, nao estou
obtendo exito.
postgresql 9.1
tenho uma tabela que quero particionar em 10 tabelas -> tabela0, tabela1,
tabela2,... e tabela9.
a ideia é usar um range por "mod"
a coluna seria um inteiro com o id do cliente.
Criei o check das tabelas filhos assim
tabela0
"cliente_historico0_clihclioid_check" CHECK ((clihclioid % 10) = 0)
tabela1
"cliente_historico1_clihclioid_check" CHECK ((clihclioid % 10) = 1)
tabela2
"cliente_historico2_clihclioid_check" CHECK ((clihclioid % 10) = 2)
....
A gravacao esta OK, porem, nao esta surtindo efeito no "SELECT"
EX:
desenvolvimento=# EXPLAIN SELECT * from cliente_historico where
clihclioid=61312 ;
QUERY PLAN
-------------------------------------------------------------------------------------------------------------------------
Result (cost=0.00..162.61 rows=30 width=96)
-> Append (cost=0.00..162.61 rows=30 width=96)
-> Index Scan using cliente_historico_clihclioid_idx on
cliente_historico (cost=0.00..11.09 rows=2 width=141)
Index Cond: (clihclioid = 61312)
-> Bitmap Heap Scan on cliente_historico0 cliente_historico
(cost=4.27..11.38 rows=3 width=93)
Recheck Cond: (clihclioid = 61312)
-> Bitmap Index Scan on cliente_historico0_clihclioid_idx
(cost=0.00..4.27 rows=3 width=0)
Index Cond: (clihclioid = 61312)
-> Bitmap Heap Scan on cliente_historico1 cliente_historico
(cost=4.27..11.38 rows=3 width=93)
Recheck Cond: (clihclioid = 61312)
-> Bitmap Index Scan on cliente_historico1_clihclioid_idx
(cost=0.00..4.27 rows=3 width=0)
Index Cond: (clihclioid = 61312)
-> Seq Scan on cliente_historico2 cliente_historico
(cost=0.00..1.01 rows=1 width=94)
Filter: (clihclioid = 61312)
-> Seq Scan on cliente_historico3 cliente_historico
(cost=0.00..18.25 rows=3 width=93)
Filter: (clihclioid = 61312)
-> Seq Scan on cliente_historico4 cliente_historico
(cost=0.00..18.25 rows=3 width=93)
Filter: (clihclioid = 61312)
-> Seq Scan on cliente_historico5 cliente_historico
(cost=0.00..18.25 rows=3 width=93)
Filter: (clihclioid = 61312)
-> Seq Scan on cliente_historico6 cliente_historico
(cost=0.00..18.25 rows=3 width=93)
Filter: (clihclioid = 61312)
-> Seq Scan on cliente_historico7 cliente_historico
(cost=0.00..18.25 rows=3 width=93)
Filter: (clihclioid = 61312)
-> Seq Scan on cliente_historico8 cliente_historico
(cost=0.00..18.25 rows=3 width=93)
Filter: (clihclioid = 61312)
-> Seq Scan on cliente_historico9 cliente_historico
(cost=0.00..18.25 rows=3 width=93)
Filter: (clihclioid = 6131
Esta me parecendo que isso na da certo para esse tipo de criterio, alguem
poderia me ajudar?
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral