PostgreSQL, beneficios: Replicação Nativa, alta disponibilidade, suporte a base ultra pesada e multi-processamento (SMP), pontos negativos, necessário alguém pageando ele sempre, além de alguém qualificado para configuração e tunning do mesmo.

Firebird, beneficios: Suporte baixo, exige pouca máquina e facil manutenção e instalação, pontos negativos, não possui replicação nativa e nem suporte SMP ainda, previsto somente para as proximas versões.


Assim avaliamos ambos os bancos, no geral ambos são mais que excelentes, com performance muito parecidas.




Em 15/04/2010 15:03, Leonardo Ribeiro escreveu:
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/
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



__________ Information from ESET NOD32 Antivirus, version of virus signature database 5031 (20100415) __________

The message was checked by ESET NOD32 Antivirus.

http://www.eset.com

  

_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a