Caro André:

  Muito obrigado, é isso mesmo, mas qual é o nome dessa estrutura no Postgree? 
Onde a mesma está documentada, para que eu possa verificar se este cachê é 
compartilhado, assim como suas variáveis de configuração?







________________________________
De: Andre Fernandes <fernandes.an...@gmail.com>
Para: Comunidade PostgreSQL Brasileira <pgbr-geral@listas.postgresql.org.br>
Enviadas: Quinta-feira, 15 de Abril de 2010 14:41:59
Assunto: Re: [pgbr-geral] Res: Res: PostgreSQL x Firebird




Em 15 de abril de 2010 14:32, MARCIO CASTRO <marciomouracas...@yahoo.com.br> 
escreveu:

Caro Leonardo:
>
>  A Micro$oft vendia o FoxPro como um "banco de dados relacional", e sabemos 
> que este não o era.
>>  Para mim, não adianta dizer que uma determinada ferramenta é "robusta e 
>> confiável", sem explicar o porquê - isto é uma linguagem de vendedor, e não 
>> uma linguagem técnica.
>
>  Em http://www.postgresql.org/docs/8.4/static/planner-optimizer.html, há uma 
> nota com o seguinte:
>
>"In some situations, examining each possible way in which a query      
>can be executed would take an excessive amount of time and memory      
>space."
>
>  Portanto, quero saber se o PostgreSQL tem ou não alguma estrutura de memória 
> onde os planos de execução ficam armazenados, podendo ser reutilizados 
> (compartilhados) por outras sessões.
>
>  Entendido?
>>  
>  
>
Boa tarde. 
Sei que perguntaste para o Leonardo, que na realidade deve ter um conhecimento 
bem superior ao meu sobre a parte interna do banco postgreSQL, contudo eu me 
arrisco a tentar responder.
Quando falas em estrutura de memória onde os planos de execução ficam 
armazenado, acho que sei o que estás perguntando, mas não tenho certeza. O 
postgreSQL, assim como muitos bancos de dados, ao executar uma query armazena a 
mesma em um "cache", assim ao ser chamada a mesma query, ele não precisa passar 
por todas as etapas para execução de uma query (parse, etc...) e assim executa 
a mesma mais rapidamente. É comum dizermos que a consulta ficou no "cache", por 
isso a segunda chamada foi mais rápida. 
Quanto tempo temos isso guardado é um parâmetro que pode ser configurado.
Era essa a tua dúvida?

Atenciosamente,
 

>
>
________________________________
De: Leonardo Cezar <lhce...@gmail.com>
>
>Para: Comunidade PostgreSQL Brasileira <pgbr-geral@listas.postgresql.org.br>
>Enviadas: Quinta-feira, 15 de Abril de 2010 11:35:40
>
>Assunto: Re: [pgbr-geral] Res: PostgreSQL x Firebird
>
>
>2010/4/14 MARCIO CASTRO <marciomouracas...@yahoo.com.br>:
>> Senhores:
>>
>>   Mas aí entramos novamente na velha disputa do "o meu time é melhor do que
>>> o seu", ou "a minha Honda é mais rápida do que a sua Yamaha", e ninguém
>> explica o "PORQUÊ".
>
>Até onde pude acompanhar a trilha, o Roberto deu uma explicação
>resumida porém precisa sobre as finalidades de um servidor e do outro.
>
>>   Portanto, e a fim de elevar o tópico de forma a que todos aprendamos,
>> pergunto se o PostgreSQL, no seu processo de parse, bind e execute, compila
>> a instrução (query), e guarda o código em alguma área para ser reutilizado,
>>> independentemente da sessão ou usuário conectado?
>
>Acho que aqui virou "salada".
>
>Como pode um processo de análise (/parser/) estar atrelado a uma
>execução
> (/execute/) se eles existem em contexto diferente?
>
>Me explico: No momento em que você *prepara* explicitamente uma
>instrução (prepare) ou cursor, a condição que define o tipo de retorno
>binário ou texto puro está na cláusula DECLARE e/ou poderia ser criada
>>na mensagem BIND no lado do cliente em mensagens utilizando o
>protocolo estendido de cosultas (extended query protocol). Mas isso
>apenas para dados.
>
>
>No entanto, se estamos falando sobre o processo interno de análise
>>léxica da consulta, o planejador é itneligente o suficiente para
>reutilizar árvores de consultas previamente análisadas e compiladss e
>não fazer a reescrita a não ser para obter dados estatísticos do
>catálogo, o que ocorre num segundo momento (aka Processo de
>>Transformação da árvore de consulta) e não na fase de análise.
>
>>   Tem um colega que jura que não, mas o mesmo não me forneceu as fontes
> para
>> consultar o assunto. Numa "googada" rápida utilizando "postgre frequently
>> used execution plans parse tree", eu não conseguí encontrar a resposta, ou
>> não soube procurar, portanto, ficarei muito grato aqueles que puderem me
>>> ajudar. Pode ser um artigo, uma página de algum manual, ou um diagrama
>> detalhando as estruturas do banco.
>
>Existe farta documentação sobre este tema:
>
>Comece por [1] (Architeture of a Database System, Michael
>>Stonebracker; etal), depois aconselho o fundamental sobre arquitetura
>de banco de dados [2] (Database Management Systems, Raghu
>Ramakhrisnan; etal) e em seguida a extensa documentação sobre o
>protocolo de mensagens [4] e o mecanismo de análise e execução de
>>consultas[3].
>
>1) 
>http://www.amazon.com/Architecture-Database-System-Foundations-Databases/dp/1601980787
>>2) http://pages.cs.wisc.edu/~dbbook/
>3) http://www.postgresql.org/docs/8.4/static/overview.html
>>4) http://www.postgresql.org/docs/8.4/static/protocol-flow.html
>
>Bom estudo!
>
>-Leo
>-- 
>Leonardo Cezar
>http://www.aslid.org.br
>http://postgreslogia.wordpress.com
>_______________________________________________
>pgbr-geral mailing list
>pgbr-geral@listas.postgresql.org.br
>https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
>>
>
>
>       
>_______________________________________________
>>pgbr-geral mailing list
>pgbr-geral@listas.postgresql.org.br
>https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
>


-- 
André de Camargo Fernandes


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

Responder a