Olá pessoal
Estou no momento codificando uma ferramenta para automatização da
criação de índices.
Eu sei que tem algumas contrib do postgresql que fazem  isso, mas  é
para um projeto academico, etc.

Eu sei que quando uma tabela é "pequena"mesmo tendo um índice nela, o
otimizador optara  por carregar ela inteira na RAM (ou cache?) e
aplicar os filtros em memoria semicondutora que é mais rápida que um
hdd, até ai tudo bem.

Mas teria como saber um valor  (nem que for aproximado) de tamanho de
tabela, em que seria interessante criar um índice (considerando o
tamanho da ram como referencia)?

Por exemplo se um Servidor de SGBD tem 8 GB de RAM, e uma tabela tem 9
GB também de tamanho, com certeza compensará criar um índice, (isso
considerando que seria retornado somente até 2% dos registros devido
aos filtros do where).

Mas contando que NÃO é só o SGBD que utiliza a Memoria, e que também
existira  outras queries rodando utilizando memória, quanto de tamanho
que uma tabela teria que ter, para um SGBD achar interessante utilizar
um indice ao inves da tabela ser carregada inteira para a RAM?
Considerando um servidor de 8 GB, se a tabela tiver 1 GB, 2 GB, 4 GB,
quanto seria o tamanho mínimo para o otimizador utilizar um indice.

Será que a concorrência no SGBD afetara muito essa conta?

Abraços
Neto
_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a