Marcio Costa, eu não sei responder sua pergunta, não sou um expert no
assunto Bando de Dados. Eu utilizo PostgreSQL já a algum tempo, mas sou
desenvolvedor e meus conhecimentos são tanto quanto limitados quando o
assunto passa a ser algo "mais avançado".

Eu iniciei o tópico, justamente por não saber muitos detalhes de
arquitetura, estrutura e afins, mas como o projeto que estou iniciando me
foi proposto o Firebird eu sugeri o PostgreSQL, mas para realmente usá-lo
teria que exibir dados concretos dos benefícios desse último em relação ao
outro.

Já pesquisei na Web como alguns colegas sugeriram, até mesmo antes de postar
mas queria apenas obter um feedback da lista onde sei que tem pessoas com
bastante conhecimento.

Sendo assim nobre amigo, não sei responder seu questionamento.

Att



2010/4/15 Andre Fernandes <[email protected]>

>
>
> Em 15 de abril de 2010 14:32, MARCIO CASTRO <
> [email protected]> 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 <[email protected]>
>>
>> *Para:* Comunidade PostgreSQL Brasileira <
>> [email protected]>
>> *Enviadas:* Quinta-feira, 15 de Abril de 2010 11:35:40
>>
>> *Assunto:* Re: [pgbr-geral] Res: PostgreSQL x Firebird
>>
>> 2010/4/14 MARCIO CASTRO <[email protected]>:
>> > 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/<http://pages.cs.wisc.edu/%7Edbbook/>
>> 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
>> [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
>>
>>
>
>
> --
> André de Camargo Fernandes
>
>
>
> _______________________________________________
> pgbr-geral mailing list
> [email protected]
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
>


-- 
[]'s
Leonardo

Linux User #488650
Ubuntu User #27045
Mais sobre o Ubuntu em português: http://www.ubuntu-br.org/comece
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a