2014-10-02 8:00 GMT-03:00 Wiliam Balan <[email protected]>:
>
> Desculpe mas o termo "Hash Cluster" inseri incorretamente. O que preciso
> não seria indice clusterizado não e sim tabelas clusterizada, mas não 1
> tabela isolada, e sim várias juntas fisicamente. Vou explicar o que preciso
> através desse cenário.
>
> Tabela DEPT :
> DEPTO NOME_DEPTO
> 10 Contabil
> 20 Financeiro
>
> Tabela EMP :
> COD_DEPTO ID NOME SALARIO
> 10 1 FULANO 100,00
> 10 2 BELTRANO 200,00
> 20 3 CICLANO 300,00
> 20 4 TEOBALDO 400,00
> 20 5 MARIAZINHA 500,00
>
>
> Se essas duas tabelas são clusterizadas, fisicamente nos blocos os dados
> ficariam assim:
>
> bloco 1: 10 Departamento 1 FULANO 100,00 2 BELTRANO 200,00
>
> bloco 2: 20 departamento 3 CICLANO 300,00 4 TEOBALDO 400,00 5
> MARIAZINHA 500,00
>
> ...
>
> Precisava saber se no PostgreSQL daria para implementar isso, e como?
Ah. Agora entendi. É que você comentou como se fosse algo existente no
PostgreSQL e fiquei confuso.
Bem, a resposta simples é não. Não existe implementado isso no PostgreSQL.
O que vejo que pode ser feito é armazenar tudo numa única tabela e colocar
os dados duplicados num array de um tipo composto ou até mesmo um json. O
array composto seria mais ou menos assim:
CREATE TYPE item_pedido_t AS (cod_produto integer, valor numeric);
CREATE TABLE pedido(cod_pedido serial, itens item_pedido_t[]);
Só vejo vantagem caso absolutamente SEMPRE você traga todos os registros,
até mesmo agregações (tipo soma do total de pedidos) vão ser penalizados
caso faça isso. E além disso você perde o uso de chaves estrangeiras (de e
para elementos desse array). Talvez tenha alguma vantagem se você fizer uma
visão materializada (MV de fato ou tabela que haja como MV) com esses
dados, mas meça bem se de fato é bom, de cara me parece muito trabalho para
pouco (algum?) resultado.
Atenciosamente,
--
Matheus de Oliveira
Analista de Banco de Dados
Dextra Sistemas - MPS.Br nível F!
www.dextra.com.br/postgres
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral