Olá pessoal

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

Na clusterização não tem o armazenamento duplicado para as chaves.

Outro ponto, que seria uma desvantagem da clusterização seria os comando
DML.Quando temos INSERTs na tabela, o SGBD não pode simplesmente fazer como
faz normalmente e jogar os dados no primeiro espaço em branco do primeiro
bloco que ver pela frente, ele TEM que analisar a chave e colocar o dados
sendo inserido no bloco exato a que pertence. Caso não tenha espaço então o
SGBD terá que mover dados pra outros blocos para poder inserir um NOVO dado
na sequência exata aonde a chave está

Essa solução é somente para tabelas que são acessadas juntas e que não
sofram quase nunca DML.

Parece ruim para ambientes OLTP, mas para Datawarehouse seria interessante,
pois as cargas de dados não são diárias e não se tem UPDATES.

Precisava saber se no PostgreSQL daria para implementar isso, e como?

[]'s Wiliam



Em 1 de outubro de 2014 13:58, Matheus de Oliveira <
[email protected]> escreveu:

>
> 2014-10-01 13:32 GMT-03:00 Wiliam Balan <[email protected]>:
>
>> Sei que daria para criar essas tabelas em Cluster para melhorar a
>> performance, pois os dados ficariam fisicamente ordenadas pelas duas
>> tabelas juntas, além de economizar espaço por precisar de manter somente
>> uma coluna, caso seja a chave (primária e estrangeira na outra tabela).
>>
>> Sei que tem como criar um Hash Cluster, mas teria outra opção de criar
>> essas tabelas em Cluster, digo outro tipo de cluster exceto Hash cluster?
>>
>
>
> Olá Wiliam,
>
> Acho que seria melhor você explicar melhor os termos que está usando.
> Primeiro, não conheço nada relacionado à "Hash Cluster" no PostgreSQL. E
> quando você fala de Cluster, se refere à tabelas clusterizadas (a.k.a
> Indexed Organized Tables ou Clustered Indexes)? Ao comando CLUSTER [1]?
>
> [1] http://www.postgresql.org/docs/current/static/sql-cluster.html
>
> 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
>
>
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a