2010/4/15 MARCIO CASTRO <[email protected]>:
> Cara, não é buffer de dados; é plano de execução mesmo. Outros bancos tem
> uma área própria de cache para os planos de execução, e tais são
> compartilhados.
>
> No Oracle, esta estrutura se chama Library Cache, e podemos ver o que está
> contido no mesmo via query:

Hmm.. No Oracle Library Cache possui uma área compartilhada e uma
reservada para controlar uma parte mais genérica da consulta e os bind
que são a parte mais específica (mutáveis) da sua consulta.

O Library Cache, assim como uma instrução preparada (prepared
statement) irá consumir parte do seu Buffer (Pool) compartilhado de
maneira circular (LRU) em especial quando voce tem informação muito
variada que irá gerar muita atualização dos buffers privados. Então
pergunto: O que é melhor, especificar SGA para dados ou para cache de
instruções?

> Imaginei que teríamos uma estrutura similar no Postgree, e queria entender
> commo funciona.

O nome do banco é PostgreSQL ou simplesmente postgres e não é
permitida a grafia de outra forma.

Considerando que Library Cache não  consegue compartilhar /bind/ entre
sessões (por motivos óbivios), eu acredito que /prepared statements/
no PostgreSQL seriam o recurso mais equivalente a tal funcionalidade
além do próprio /cache/ de sessão do Parser.

Outra coisa, o tempo de análise (arser) e verificação de
permissões(ACLs) no Oracle é alto, portanto, nada mais justo do que
manter esses dados em memória. Quer tirar a prova? Analise a
quantidade de PINs que uma simples consulta marca nos buffers.

Abraço!

-Leo
-- 
Leonardo Cezar
http://www.aslid.org.br
http://postgreslogia.wordpress.com
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a