mirror of
https://github.com/postgres/postgres.git
synced 2025-07-31 22:04:40 +03:00
Update Brazilian FAQ.
Euler Taveira de Oliveira
This commit is contained in:
@ -10,7 +10,7 @@
|
|||||||
alink="#0000ff">
|
alink="#0000ff">
|
||||||
<H1>Perguntas Frequentes (FAQ) sobre PostgreSQL</H1>
|
<H1>Perguntas Frequentes (FAQ) sobre PostgreSQL</H1>
|
||||||
|
|
||||||
<P>Última atualização: Sáb Out 14 19:08:19 EDT 2006</P>
|
<P>Última atualização: Qui Set 27 02:14:24 EDT 2007</P>
|
||||||
|
|
||||||
<P>Mantenedor atual: Bruce Momjian (<A href=
|
<P>Mantenedor atual: Bruce Momjian (<A href=
|
||||||
"mailto:bruce@momjian.us">bruce@momjian.us</A>)
|
"mailto:bruce@momjian.us">bruce@momjian.us</A>)
|
||||||
@ -43,6 +43,7 @@
|
|||||||
<A href="#item1.11">1.11</A>) Como eu posso aprender <SMALL>SQL</SMALL>?<BR>
|
<A href="#item1.11">1.11</A>) Como eu posso aprender <SMALL>SQL</SMALL>?<BR>
|
||||||
<A href="#item1.12">1.12</A>) Como posso submeter uma correção (patch) ou me juntar a equipe de desenvolvimento?<BR>
|
<A href="#item1.12">1.12</A>) Como posso submeter uma correção (patch) ou me juntar a equipe de desenvolvimento?<BR>
|
||||||
<A href="#item1.13">1.13</A>) Como é o PostgreSQL comparado a outros <SMALL>SGBD</SMALL>s?<BR>
|
<A href="#item1.13">1.13</A>) Como é o PostgreSQL comparado a outros <SMALL>SGBD</SMALL>s?<BR>
|
||||||
|
<A href="#item1.14">1.14</A>) O PostgreSQL gerenciar<61> as mudanças de horário devido ao horário de verão em vários países?<BR>
|
||||||
|
|
||||||
|
|
||||||
<H2 align="center">Perguntas sobre Clientes</H2>
|
<H2 align="center">Perguntas sobre Clientes</H2>
|
||||||
@ -57,7 +58,7 @@
|
|||||||
<A href="#item3.3">3.3</A>) Como eu ajusto o servidor de banco de dados para obter uma performance melhor?<BR>
|
<A href="#item3.3">3.3</A>) Como eu ajusto o servidor de banco de dados para obter uma performance melhor?<BR>
|
||||||
<A href="#item3.4">3.4</A>) Quais características de depuração estão disponíveis?<BR>
|
<A href="#item3.4">3.4</A>) Quais características de depuração estão disponíveis?<BR>
|
||||||
<A href="#item3.5">3.5</A>) Por que eu recebo <I>"Sorry, too many clients"</I> quando eu tento conectar?<BR>
|
<A href="#item3.5">3.5</A>) Por que eu recebo <I>"Sorry, too many clients"</I> quando eu tento conectar?<BR>
|
||||||
<A href="#item3.6">3.6</A>) Qual é o processo de atualização do PostgreSQL?</H3>
|
<A href="#item3.6">3.6</A>) Qual é o processo de atualização do PostgreSQL?<BR>
|
||||||
<A href="#item3.7">3.7</A>) Que tipo de hardware eu devo usar?<BR>
|
<A href="#item3.7">3.7</A>) Que tipo de hardware eu devo usar?<BR>
|
||||||
|
|
||||||
|
|
||||||
@ -70,7 +71,7 @@
|
|||||||
<A href="#item4.6">4.6</A>) Por que minhas consultas estão lentas? Por que elas não estão utilizando meus índices?<BR>
|
<A href="#item4.6">4.6</A>) Por que minhas consultas estão lentas? Por que elas não estão utilizando meus índices?<BR>
|
||||||
<A href="#item4.7">4.7</A>) Como eu vejo como o otimizador de consultas está avaliando minha consulta?<BR>
|
<A href="#item4.7">4.7</A>) Como eu vejo como o otimizador de consultas está avaliando minha consulta?<BR>
|
||||||
<A href="#item4.8">4.8</A>) Como eu faço buscas com expressões regulares e buscas com expressões regulares sem diferenciar mauúsculas de minúsculas? Como eu utilizo um índice para buscas sem distinguir maiúsculas de minúsculas?<BR>
|
<A href="#item4.8">4.8</A>) Como eu faço buscas com expressões regulares e buscas com expressões regulares sem diferenciar mauúsculas de minúsculas? Como eu utilizo um índice para buscas sem distinguir maiúsculas de minúsculas?<BR>
|
||||||
<A href="#item4.9">4.9</A>) Em uma consulta, como eu detecto se um campo é <SMALL>NULL</SMALL>? Como eu posso ordenar por um campo que é <SMALL>NULL</SMALL> ou não?<BR>
|
<A href="#item4.9">4.9</A>) Em uma consulta, como eu detecto se um campo é <SMALL>NULL</SMALL>? Como eu posso concatenar possíveis <SMALL>NULL</SMALL>s? Como eu posso ordenar por um campo que é <SMALL>NULL</SMALL> ou não?<BR>
|
||||||
<A href="#item4.10">4.10</A>) Qual é a diferença entre os vários tipos de dado de caracteres?<BR>
|
<A href="#item4.10">4.10</A>) Qual é a diferença entre os vários tipos de dado de caracteres?<BR>
|
||||||
<A href="#item4.11.1">4.11.1</A>) Como eu crio um campo serial/auto incremento?<BR>
|
<A href="#item4.11.1">4.11.1</A>) Como eu crio um campo serial/auto incremento?<BR>
|
||||||
<A href="#item4.11.2">4.11.2</A>) Como eu consigo o valor de um campo
|
<A href="#item4.11.2">4.11.2</A>) Como eu consigo o valor de um campo
|
||||||
@ -88,7 +89,7 @@
|
|||||||
does not exist" ao acessar tabelas temporárias em funções PL/PgSQL?<BR>
|
does not exist" ao acessar tabelas temporárias em funções PL/PgSQL?<BR>
|
||||||
<A href="#item4.20">4.20</A>) Quais soluções de replicação estão disponíveis?<BR>
|
<A href="#item4.20">4.20</A>) Quais soluções de replicação estão disponíveis?<BR>
|
||||||
<A href="#item4.21">4.21</A>) Por que os nomes de minhas tabelas e colunas não
|
<A href="#item4.21">4.21</A>) Por que os nomes de minhas tabelas e colunas não
|
||||||
são reconhecidos em minha consulta?<BR>
|
são reconhecidos em minha consulta? Por que as maiúsculas não são preservadas?<BR>
|
||||||
|
|
||||||
|
|
||||||
<HR>
|
<HR>
|
||||||
@ -97,10 +98,9 @@
|
|||||||
|
|
||||||
<H3 id="item1.1">1.1) O que é PostgreSQL? Como ele é pronunciado?</H3>
|
<H3 id="item1.1">1.1) O que é PostgreSQL? Como ele é pronunciado?</H3>
|
||||||
|
|
||||||
<P>PostgreSQL é pronunciado <I>Post-Gres-Q-L</I>, e é, às vezes, referido apenas como
|
<P>PostgreSQL é pronunciado <I>Post-Gres-Q-L</I>, mas também pode ser referido apenas como <I>Postgres</I> principalmente em conversações.
|
||||||
<I>Postgres</I>. Um arquivo de áudio está disponível em
|
(Para os curiosos que querem saber como se diz "PostgreSQL", um
|
||||||
<a href="http://www.postgresql.org/files/postgresql.mp3">formato MP3</a> para
|
<a href="http://www.postgresql.org/files/postgresql.mp3">arquivo de áudio</a> está disponível).</P>
|
||||||
aqueles que gostariam de ouvir a pronúncia.</P>
|
|
||||||
|
|
||||||
<P>O PostgreSQL é um sistema de banco de dados objeto-relacional que tem as
|
<P>O PostgreSQL é um sistema de banco de dados objeto-relacional que tem as
|
||||||
características de sistemas de bancos de dados comerciais tradicionais com
|
características de sistemas de bancos de dados comerciais tradicionais com
|
||||||
@ -125,7 +125,7 @@
|
|||||||
você precisa é se inscrever nas listas de discussão e participar das
|
você precisa é se inscrever nas listas de discussão e participar das
|
||||||
discussões. Veja a <a href="http://www.postgresql.org/docs/faqs.FAQ_DEV.html">
|
discussões. Veja a <a href="http://www.postgresql.org/docs/faqs.FAQ_DEV.html">
|
||||||
FAQ do desenvolvedor</A> para obter informações como se envolver com o
|
FAQ do desenvolvedor</A> para obter informações como se envolver com o
|
||||||
desenvolvimento do PostgreSQL.</P>
|
desenvolvimento do Postgres.</P>
|
||||||
|
|
||||||
<H3 id="item1.3">1.3) Qual é a licença do PostgreSQL?</H3>
|
<H3 id="item1.3">1.3) Qual é a licença do PostgreSQL?</H3>
|
||||||
|
|
||||||
@ -169,7 +169,7 @@
|
|||||||
baseados no NT tais como Win200 SP4, WinXP e Win2003. Um instalador pré-empacotado está
|
baseados no NT tais como Win200 SP4, WinXP e Win2003. Um instalador pré-empacotado está
|
||||||
disponível em <a href= "http://pgfoundry.org/projects/pginstaller">
|
disponível em <a href= "http://pgfoundry.org/projects/pginstaller">
|
||||||
http://pgfoundry.org/projects/pginstaller</a>. Versões do Windows baseadas no MS-DOS
|
http://pgfoundry.org/projects/pginstaller</a>. Versões do Windows baseadas no MS-DOS
|
||||||
(Win95, Win98, WinMe) podem executar o PostgreSQL utilizando o Cygwin.</P>
|
(Win95, Win98, WinMe) podem executar o Postgres utilizando o Cygwin.</P>
|
||||||
|
|
||||||
<p>Há também uma versão para o Novell Netware 6 em
|
<p>Há também uma versão para o Novell Netware 6 em
|
||||||
<a href="http://forge.novell.com">http://forge.novell.com</a>
|
<a href="http://forge.novell.com">http://forge.novell.com</a>
|
||||||
@ -181,13 +181,13 @@
|
|||||||
|
|
||||||
<P>Via navegador web, utilize <a href="http://www.postgresql.org/ftp/">
|
<P>Via navegador web, utilize <a href="http://www.postgresql.org/ftp/">
|
||||||
http://www.postgresql.org/ftp/</a> e via ftp, utilize
|
http://www.postgresql.org/ftp/</a> e via ftp, utilize
|
||||||
<A href="ftp://ftp.PostgreSQL.org/pub/">
|
<A href="ftp://ftp.postgresql.org/pub/">
|
||||||
ftp://ftp.PostgreSQL.org/pub/</A>.</P>
|
ftp://ftp.postgresql.org/pub/</A>.</P>
|
||||||
|
|
||||||
|
|
||||||
<H3 id="item1.6">1.6) Qual é a última versão?</H3>
|
<H3 id="item1.6">1.6) Qual é a última versão?</H3>
|
||||||
|
|
||||||
<P>A última versão do PostgreSQL é a versão 8.1.5.</P>
|
<P>A última versão do PostgreSQL é a versão 8.2.5.</P>
|
||||||
|
|
||||||
<P>Nós planejamos lançar versões novas a cada ano com versões
|
<P>Nós planejamos lançar versões novas a cada ano com versões
|
||||||
corretivas em alguns meses.</P>
|
corretivas em alguns meses.</P>
|
||||||
@ -211,8 +211,8 @@
|
|||||||
<P>Visite o formulário que reporta bugs do PostgreSQL em <A href=
|
<P>Visite o formulário que reporta bugs do PostgreSQL em <A href=
|
||||||
"http://www.postgresql.org/support/submitbug">http://www.postgresql.org/support/submitbug</A>.</P>
|
"http://www.postgresql.org/support/submitbug">http://www.postgresql.org/support/submitbug</A>.</P>
|
||||||
<P>Verifique também o nosso ftp <A href=
|
<P>Verifique também o nosso ftp <A href=
|
||||||
"ftp://ftp.PostgreSQL.org/pub">ftp://ftp.PostgreSQL.org/pub</A> para
|
"ftp://ftp.postgresql.org/pub">ftp://ftp.postgresql.org/pub</A> para
|
||||||
ver se há uma versão mais recente do PostgreSQL.</P>
|
ver se há uma versão mais recente do Postgres.</P>
|
||||||
|
|
||||||
<P>Bugs submetidos utilizando o formulário ou informado a qualquer
|
<P>Bugs submetidos utilizando o formulário ou informado a qualquer
|
||||||
lista de discussão do PostgreSQL tipicamente gera uma das seguintes
|
lista de discussão do PostgreSQL tipicamente gera uma das seguintes
|
||||||
@ -220,7 +220,7 @@
|
|||||||
<ul>
|
<ul>
|
||||||
<li>Não é um bug e o porquê</li>
|
<li>Não é um bug e o porquê</li>
|
||||||
<li>É um bug conhecido e já está na lista de
|
<li>É um bug conhecido e já está na lista de
|
||||||
<A href="http://www.postgresql.org/docs/faqs.TODO.html">AFAZERES (TODO)</A></li>
|
<A href="http://www.postgresql.org/docs/faqs.TODO.html">AFAZERES</A></li>
|
||||||
<li>O bug foi corrigido na versão atual</li>
|
<li>O bug foi corrigido na versão atual</li>
|
||||||
<li>O bug foi corrigido mas não foi empacotado em um versão oficial</li>
|
<li>O bug foi corrigido mas não foi empacotado em um versão oficial</li>
|
||||||
<li>Um pedido foi feito para obter informações detalhadas:
|
<li>Um pedido foi feito para obter informações detalhadas:
|
||||||
@ -236,7 +236,7 @@
|
|||||||
<ul>
|
<ul>
|
||||||
<li>Uma correção é criada e será incluída na próxima versão</li>
|
<li>Uma correção é criada e será incluída na próxima versão</li>
|
||||||
<li>O bug não pode ser corrigido imediatamente e é adicionado
|
<li>O bug não pode ser corrigido imediatamente e é adicionado
|
||||||
a lista de <A href="http://www.postgresql.org/docs/faqs.TODO.html">AFAZERES (TODO)</A></li>
|
a lista de <A href="http://www.postgresql.org/docs/faqs.TODO.html">AFAZERES</A></li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
@ -245,13 +245,13 @@
|
|||||||
ou funcionalidades ausentes?</H3>
|
ou funcionalidades ausentes?</H3>
|
||||||
|
|
||||||
<P>O PostgreSQL suporta um subconjunto extendido do <SMALL>SQL:2003</SMALL>.
|
<P>O PostgreSQL suporta um subconjunto extendido do <SMALL>SQL:2003</SMALL>.
|
||||||
Veja nossa lista de <A href="http://www.postgresql.org/docs/faqs.TODO.html">AFAZERES (TODO)</A>
|
Veja nossa lista de <A href="http://www.postgresql.org/docs/faqs.TODO.html">AFAZERES</A>
|
||||||
que contém bugs conhecidos, funcionalidades ausentes e planos futuros.</P>
|
que contém bugs conhecidos, funcionalidades ausentes e planos futuros.</P>
|
||||||
|
|
||||||
<P>Uma solicitação de funcionalidade geralmente resulta em uma das
|
<P>Uma solicitação de funcionalidade geralmente resulta em uma das
|
||||||
seguintes respostas:</P>
|
seguintes respostas:</P>
|
||||||
<ul>
|
<ul>
|
||||||
<li>A funcionalidade já está na lista de <A href="http://www.postgresql.org/docs/faqs.TODO.html">AFAZERES (TODO)</A></li>
|
<li>A funcionalidade já está na lista de <A href="http://www.postgresql.org/docs/faqs.TODO.html">AFAZERES</A></li>
|
||||||
<li>A funcionalidade não é desejável porque:
|
<li>A funcionalidade não é desejável porque:
|
||||||
<ul>
|
<ul>
|
||||||
<li>Ela duplica uma funcionalidade existente que já segue o
|
<li>Ela duplica uma funcionalidade existente que já segue o
|
||||||
@ -262,16 +262,16 @@
|
|||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
<li>A nova funcionalidade é adicionada a lista de
|
<li>A nova funcionalidade é adicionada a lista de
|
||||||
<A href="http://www.postgresql.org/docs/faqs.TODO.html">AFAZERES (TODO)</A></li>
|
<A href="http://www.postgresql.org/docs/faqs.TODO.html">AFAZERES</A></li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<P>O PostgreSQL não utiliza sistema de acompanhamento de bugs porque
|
<P>O PostgreSQL não utiliza sistema de acompanhamento de bugs porque
|
||||||
nós achamos mais eficiente responder diretamente o e-mail e manter a
|
nós achamos mais eficiente responder diretamente o e-mail e manter a
|
||||||
lista de <A href="http://www.postgresql.org/docs/faqs.TODO.html">AFAZERES (TODO)</A>
|
lista de <A href="http://www.postgresql.org/docs/faqs.TODO.html">AFAZERES</A>
|
||||||
atualizada. Na prática, bugs não duram muito no programa; e bugs que afetam
|
atualizada. Na prática, bugs não duram muito no programa; e bugs que afetam
|
||||||
uma grande quantidade de usuários são corrigidos rapidamente. O único lugar
|
uma grande quantidade de usuários são corrigidos rapidamente. O único lugar
|
||||||
para encontrar todas as mudanças, melhorias e correções em uma versão do
|
para encontrar todas as mudanças, melhorias e correções em uma versão do
|
||||||
PostgreSQL é ler as mensagens de log do
|
Postgres é ler as mensagens de log do
|
||||||
<a href="http://www.postgresql.org/developer/sourcecode/">CVS</a>. Até mesmo
|
<a href="http://www.postgresql.org/developer/sourcecode/">CVS</a>. Até mesmo
|
||||||
as notas de lançamento não listam todas as mudanças feitas no programa.</P>
|
as notas de lançamento não listam todas as mudanças feitas no programa.</P>
|
||||||
|
|
||||||
@ -280,7 +280,7 @@
|
|||||||
<P>O PostgreSQL inclui vasta documentação, incluindo um manual extenso,
|
<P>O PostgreSQL inclui vasta documentação, incluindo um manual extenso,
|
||||||
páginas de manuais (man pages) e alguns exemplos teste. Veja o diretório
|
páginas de manuais (man pages) e alguns exemplos teste. Veja o diretório
|
||||||
<I>/doc</I>. Você também pode pesquisar os manuais online em <A href=
|
<I>/doc</I>. Você também pode pesquisar os manuais online em <A href=
|
||||||
"http://www.PostgreSQL.org/docs">http://www.PostgreSQL.org/docs</A>.
|
"http://www.postgresql.org/docs">http://www.postgresql.org/docs</A>.
|
||||||
</P>
|
</P>
|
||||||
|
|
||||||
<P>Há dois livros sobre PostgreSQL disponíveis online em <A href=
|
<P>Há dois livros sobre PostgreSQL disponíveis online em <A href=
|
||||||
@ -290,7 +290,8 @@
|
|||||||
Há uma lista de livros sobre PostgreSQL disponíveis para compra. Um dos mais
|
Há uma lista de livros sobre PostgreSQL disponíveis para compra. Um dos mais
|
||||||
populares é o do Korry Douglas. Uma lista de análise sobre os livros pode ser
|
populares é o do Korry Douglas. Uma lista de análise sobre os livros pode ser
|
||||||
encontrada em <A href=
|
encontrada em <A href=
|
||||||
"http://techdocs.postgresql.org/techdocs/bookreviews.php">http://techdocs.PostgreSQL.org/techdocs/bookreviews.php</A>.
|
"http://techdocs.postgresql.org/techdocs/bookreviews.php">http://techdocs.postgresql.org/techdocs/bookreviews.php</A>.
|
||||||
|
Há também uma coleção de artigos técnicos sbore PostgreSQL em <A href="http://techdocs.postgresql.org/">http://techdocs.postgresql.org/</A>.</P>
|
||||||
|
|
||||||
<P>O programa cliente de linha de comando <I>psql</I> tem alguns comandos \d para
|
<P>O programa cliente de linha de comando <I>psql</I> tem alguns comandos \d para
|
||||||
mostrar informações sobre tipos, operadores, funções, agregações, etc. - utilize \?
|
mostrar informações sobre tipos, operadores, funções, agregações, etc. - utilize \?
|
||||||
@ -352,7 +353,7 @@
|
|||||||
|
|
||||||
<DT><B>Suporte</B></DT>
|
<DT><B>Suporte</B></DT>
|
||||||
|
|
||||||
<DD>Nossas listas de discussão fornecem contato com um grupo de desenvolvedores e usuários para ajudar a resolver muitos problemas encontrados. Enquanto nós não podemos garantir o conserto, <SMALL>SGBD</SMALL>s comerciais nem sempre fornecem também. Com acesso direto aos desenvolvedores, a comunidade de usuários, manuais e o código fonte faz com que o suporte do PostgreSQL seja superior ao de outros <SMALL>SGBD</SMALL>s. Há suporte comercial por incidente disponíveis para aqueles que precisam de um. (Veja <A href="#item1.7">seção 1.7 da FAQ</A>.)<BR>
|
<DD>Nossas listas de discussão fornecem contato com um grupo de desenvolvedores e usuários para ajudar a resolver muitos problemas encontrados. Enquanto nós não podemos garantir o conserto, <SMALL>SGBD</SMALL>s comerciais nem sempre fornecem também. Com acesso direto aos desenvolvedores, a comunidade de usuários, manuais e o código fonte faz com que o suporte do PostgreSQL seja superior ao de outros <SMALL>SGBD</SMALL>s. Há suporte comercial por incidente disponíveis para aqueles que precisam de um. (Veja <A href="#item1.7">seção 1.7 da FAQ</A>).<BR>
|
||||||
<BR>
|
<BR>
|
||||||
</DD>
|
</DD>
|
||||||
|
|
||||||
@ -363,6 +364,10 @@
|
|||||||
</DD>
|
</DD>
|
||||||
</DL>
|
</DL>
|
||||||
|
|
||||||
|
<H3 id="item1.14">1.14) O PostgreSQL gerenciará mudanças no horário devido ao horário de verão em vários países?</H3>
|
||||||
|
|
||||||
|
<P>Mudanças no horário de verão dos USA foram incluídas nas versões 8.0 .[4+] do PostgreSQL e em todas as versões grandes, i.e. 8.1. Mudanças no Canadá e Austrália Oeste foram incluídas na 8.0.[10+], 8.1.[6+] e em todas as versões grandes subsequentes. Versões do PostgreSQL anteriores a 8.0 utilizam o banco de dados de zona horária do sistema operacional para informações sobre horário de verão.</P>
|
||||||
|
|
||||||
<HR>
|
<HR>
|
||||||
|
|
||||||
<H2 align="center">Perguntas sobre Clientes</H2>
|
<H2 align="center">Perguntas sobre Clientes</H2>
|
||||||
@ -482,15 +487,12 @@
|
|||||||
|
|
||||||
<H3 id="item3.6">3.6) Qual é o processo de atualização do PostgreSQL?</H3>
|
<H3 id="item3.6">3.6) Qual é o processo de atualização do PostgreSQL?</H3>
|
||||||
|
|
||||||
<P>O time do PostgreSQL faz somente pequenas mudanças entre versões corretivas, então atualizar da versão 7.4.8 para 7.4.9 não requer uma exportação e uma importação; basta para o servidor de banco de dados, instalar os binários atualizados e reiniciar o servidor.</P>
|
<P>Veja <a
|
||||||
|
href="http://www.postgresql.org/support/versioning">http://www.postgresql.org/support/versioning</a>
|
||||||
<P>Todos os usuários devem atualizar para as versões corretivas mais recentes
|
para discuss<73>o geral sobre atualiza<7A><61>es e <a href=
|
||||||
assim que elas estiverem disponíveis. Enquanto cada atualização tem algum risco,
|
"http://www.postgresql.org/docs/current/static/install-upgrading.html">
|
||||||
versões corretivas do PostgreSQL são projetadas para corrigir somente bugs comuns
|
http://www.postgresql.org/docs/current/static/install-upgrading.html</a>
|
||||||
com um risco mínimo. A comunidade considera <i>não</i> atualizar mais
|
para instruções específicas.</P>
|
||||||
perigoso do que atualizar.</P>
|
|
||||||
|
|
||||||
<P>Versões novas (i.e. da 7.3 para 7.4) geralmente muda-se o formato interno das tabelas de sistema e dos arquivo de dados. Essas mudanças geralmente são complexas, então nós não mantemos compatibilidade para os arquivos de dados. Uma exportação/importação de um banco de dados é necessária para atualizações entre versões.</P>
|
|
||||||
|
|
||||||
<H3 id="item3.7">3.7) Que tipo de hardware eu devo usar?</H3>
|
<H3 id="item3.7">3.7) Que tipo de hardware eu devo usar?</H3>
|
||||||
|
|
||||||
@ -589,29 +591,29 @@
|
|||||||
melhor garantida por um índice de uma função de um hash MD5 de uma coluna longa, e
|
melhor garantida por um índice de uma função de um hash MD5 de uma coluna longa, e
|
||||||
indexação de texto longo permite a busca de palavras dentro da coluna.</P>
|
indexação de texto longo permite a busca de palavras dentro da coluna.</P>
|
||||||
|
|
||||||
<H3 name="item4.5">4.5) Quanto espaço em disco é necessário para armazenar dados de um arquivo texto?</H3>
|
<H3 id="item4.5">4.5) Quanto espaço em disco é necessário para armazenar dados de um arquivo texto?</H3>
|
||||||
|
|
||||||
<P>Um banco de dados PostgreSQL irá requerer até cinco vezes a quantidade de espaço requerida para armazenar dados em um arquivo texto.</P>
|
<P>Um banco de dados PostgreSQL irá requerer até cinco vezes a quantidade de espaço requerida para armazenar dados em um arquivo texto.</P>
|
||||||
|
|
||||||
<P>Como um exemplo, considere um arquivo com 100.000 linhas contendo um inteiro e uma descrição em cada linha. Suponha que o tamanho médio da descrição é de vinte bytes. O arquivo terá 2,8 MB. O tamanho do arquivo do banco de dados PostgreSQL que contém esses dados pode ser estimado em 5,6 MB:</P>
|
<P>Como um exemplo, considere um arquivo com 100.000 linhas contendo um inteiro e uma descrição em cada linha. Suponha que o tamanho médio da descrição é de vinte bytes. O arquivo terá 2,8 MB. O tamanho do arquivo do banco de dados PostgreSQL que contém esses dados pode ser estimado em 5,2 MB:</P>
|
||||||
<PRE>
|
<PRE>
|
||||||
28 bytes: cada cabeçalho de registro (aproximadamente)
|
24 bytes: cada cabeçalho de registro (aproximadamente)
|
||||||
24 bytes: um campo int e um campo texto
|
24 bytes: um campo int e um campo texto
|
||||||
+ 4 bytes: ponteiro na página para a tupla
|
+ 4 bytes: ponteiro na página para a tupla
|
||||||
-------------------------------------------
|
-------------------------------------------
|
||||||
56 bytes por registro
|
52 bytes por registro
|
||||||
|
|
||||||
O tamanho de uma página de dados no PostgreSQL é 8192 bytes (8 KB), então:
|
O tamanho de uma página de dados no Postgres é 8192 bytes (8 KB), então:
|
||||||
|
|
||||||
8192 bytes por página
|
8192 bytes por página
|
||||||
------------------------ = 146 registros por página do banco de dados (arredondado para baixo)
|
------------------------ = 158 registros por página do banco de dados (arredondado para baixo)
|
||||||
56 bytes por registro
|
52 bytes por registro
|
||||||
|
|
||||||
100000 registros de dados
|
100000 registros de dados
|
||||||
---------------------------- = 685 páginas do banco de dados (arredondado para cima)
|
---------------------------- = 633 páginas do banco de dados (arredondado para cima)
|
||||||
146 registros por página
|
158 registros por página
|
||||||
|
|
||||||
685 páginas do banco de dados * 8192 bytes por página = 5.611.520 bytes (5,6 MB)
|
633 páginas do banco de dados * 8192 bytes por página = 5.185.536 bytes (5,2 MB)
|
||||||
</PRE>
|
</PRE>
|
||||||
|
|
||||||
<P>Índices não requerem muito espaço, mas contém
|
<P>Índices não requerem muito espaço, mas contém
|
||||||
@ -704,7 +706,7 @@
|
|||||||
Para forçar uma letra maiúscula ou minúscula a ser armazenada na coluna, utilize
|
Para forçar uma letra maiúscula ou minúscula a ser armazenada na coluna, utilize
|
||||||
uma restrição <SMALL>CHECK</SMALL> ou um gatilho.</P>
|
uma restrição <SMALL>CHECK</SMALL> ou um gatilho.</P>
|
||||||
|
|
||||||
<H3 id="item4.9">4.9) Em uma consulta, como eu detecto se um campo é <SMALL>NULL</SMALL>? Como eu posso ordenar por um campo que é <SMALL>NULL</SMALL> ou não?</H3>
|
<H3 id="item4.9">4.9) Em uma consulta, como eu detecto se um campo é <SMALL>NULL</SMALL>? Como eu posso concatenar possíveis <SMALL>NULL</SMALL>s? Como eu posso ordenar por um campo que é <SMALL>NULL</SMALL> ou não?</H3>
|
||||||
|
|
||||||
<P>Você testa a coluna com <SMALL>IS NULL</SMALL> e <SMALL>IS
|
<P>Você testa a coluna com <SMALL>IS NULL</SMALL> e <SMALL>IS
|
||||||
NOT NULL</SMALL>, como a seguir:</P>
|
NOT NULL</SMALL>, como a seguir:</P>
|
||||||
@ -715,6 +717,12 @@
|
|||||||
WHERE col IS NULL;
|
WHERE col IS NULL;
|
||||||
</PRE>
|
</PRE>
|
||||||
|
|
||||||
|
<P>Para concatenar com possíveis <SMALL>NULL</SMALL>s, utilize <I>COALESCE()</I>, assim:</P>
|
||||||
|
<PRE>
|
||||||
|
SELECT COALESCE(col1, '') || COALESCE(col2, '')
|
||||||
|
FROM tab
|
||||||
|
</PRE>
|
||||||
|
|
||||||
<P>Para ordenar pelo status <SMALL>NULL</SMALL>, utilize os modificadores
|
<P>Para ordenar pelo status <SMALL>NULL</SMALL>, utilize os modificadores
|
||||||
<SMALL>IS NULL</SMALL> e <SMALL>IS NOT NULL</SMALL> na sua cláusula
|
<SMALL>IS NULL</SMALL> e <SMALL>IS NOT NULL</SMALL> na sua cláusula
|
||||||
<SMALL>ORDER BY</SMALL>. Coisas que são <I>verdadeiro</I> serão ordenadas acima
|
<SMALL>ORDER BY</SMALL>. Coisas que são <I>verdadeiro</I> serão ordenadas acima
|
||||||
@ -802,7 +810,7 @@ comprimento</TD></TR>
|
|||||||
novo_id = execute("SELECT currval('pessoa_id_seq')");
|
novo_id = execute("SELECT currval('pessoa_id_seq')");
|
||||||
</PRE>
|
</PRE>
|
||||||
|
|
||||||
<H3 name="4.11.3">4.11.3) <I>currval()</I> não lida com condição de corrida com outros usuários?</H3>
|
<H3 id="item4.11.3">4.11.3) <I>currval()</I> não lida com condição de corrida com outros usuários?</H3>
|
||||||
|
|
||||||
<P>Não. <I>currval()</I> retorna o valor atual atribuido pela sua sessão, e não por todas as sessões.</P>
|
<P>Não. <I>currval()</I> retorna o valor atual atribuido pela sua sessão, e não por todas as sessões.</P>
|
||||||
|
|
||||||
@ -810,13 +818,12 @@ comprimento</TD></TR>
|
|||||||
|
|
||||||
<P>Para melhorar a concorrência, valores da sequência são atribuídos a transações correntes e não são travados até que a transação seja finalizada. Isso causa intervalos na numeração por causa de transações abortadas.</P>
|
<P>Para melhorar a concorrência, valores da sequência são atribuídos a transações correntes e não são travados até que a transação seja finalizada. Isso causa intervalos na numeração por causa de transações abortadas.</P>
|
||||||
|
|
||||||
<H3 id="4.16">4.16) O que é um <SMALL>OID</SMALL>? O que é um <SMALL>CTID</SMALL>?</H3>
|
<H3 id="item4.12">4.12) O que é um <SMALL>OID</SMALL>? O que é um <SMALL>CTID</SMALL>?</H3>
|
||||||
|
|
||||||
<P>Cada registro que é criado no PostgreSQL recebe um <SMALL>OID</SMALL> único
|
<P>Se uma tabela é criada com <SMALL>WITH OIDS</SMALL>, cada registro recebe um <SMALL>OID</SMALL> único.
|
||||||
a menos que seja criado com <SMALL>WITHOUT OIDS</SMALL>.
|
|
||||||
O<SMALL>ID</SMALL>s são automaticamente atribuídos como inteiros de 4 bytes
|
O<SMALL>ID</SMALL>s são automaticamente atribuídos como inteiros de 4 bytes
|
||||||
que são únicos ao longo de toda instalação. Contudo, eles são limitados em
|
que são únicos ao longo de toda instalação. Contudo, eles são limitados em
|
||||||
4 bilhões, e então os O<SMALL>ID</SMALL>s começam a ser duplicados. O PostgreSQL
|
4 bilhões e, então, os O<SMALL>ID</SMALL>s começam a ser duplicados. O PostgreSQL
|
||||||
utiliza <SMALL>OID</SMALL>s para ligar as tabelas do sistema.</P>
|
utiliza <SMALL>OID</SMALL>s para ligar as tabelas do sistema.</P>
|
||||||
|
|
||||||
<P>Para numerar registros nas tabelas do usuários, é melhor utilizar
|
<P>Para numerar registros nas tabelas do usuários, é melhor utilizar
|
||||||
@ -852,7 +859,7 @@ comprimento</TD></TR>
|
|||||||
CREATE TABLE teste (x int, modtime timestamp DEFAULT CURRENT_TIMESTAMP );
|
CREATE TABLE teste (x int, modtime timestamp DEFAULT CURRENT_TIMESTAMP );
|
||||||
</PRE>
|
</PRE>
|
||||||
|
|
||||||
<H3 id="item4.23">4.23) Como eu faço uma junção externa (outer join)?</H3>
|
<H3 id="item4.16">4.16) Como eu faço uma junção externa (outer join)?</H3>
|
||||||
|
|
||||||
<P>PostgreSQL suporta junções externas utilizando a sintaxe padrão do SQL. Aqui temos dois exemplos:</P>
|
<P>PostgreSQL suporta junções externas utilizando a sintaxe padrão do SQL. Aqui temos dois exemplos:</P>
|
||||||
<PRE>
|
<PRE>
|
||||||
@ -874,7 +881,7 @@ comprimento</TD></TR>
|
|||||||
A palavra <SMALL>OUTER</SMALL> é opcional e é assumida nas
|
A palavra <SMALL>OUTER</SMALL> é opcional e é assumida nas
|
||||||
junções <SMALL>LEFT</SMALL>, <SMALL>RIGHT</SMALL> e <SMALL>FULL</SMALL>.
|
junções <SMALL>LEFT</SMALL>, <SMALL>RIGHT</SMALL> e <SMALL>FULL</SMALL>.
|
||||||
Junções ordinárias são chamadas junções
|
Junções ordinárias são chamadas junções
|
||||||
naturais (<SMALL>INNER</SMALL>).</P>
|
internas (<SMALL>INNER</SMALL>).</P>
|
||||||
|
|
||||||
<H3 id="item4.17">4.17) Como eu faço consultas utilizando múltiplos bancos de dados?</H3>
|
<H3 id="item4.17">4.17) Como eu faço consultas utilizando múltiplos bancos de dados?</H3>
|
||||||
|
|
||||||
@ -891,8 +898,8 @@ comprimento</TD></TR>
|
|||||||
<H3 id="item4.18">4.18) Como eu retorno múltiplos registros ou colunas de uma função?</H3>
|
<H3 id="item4.18">4.18) Como eu retorno múltiplos registros ou colunas de uma função?</H3>
|
||||||
|
|
||||||
<P>É fácil utilizando funções que retornam conjunto,
|
<P>É fácil utilizando funções que retornam conjunto,
|
||||||
<a href="http://techdocs.postgresql.org/guides/SetReturningFunctions">
|
<a href="http://www.postgresql.org/docs/techdocs.17">
|
||||||
http://techdocs.postgresql.org/guides/SetReturningFunctions</a>.</P>
|
http://www.postgresql.org/docs/techdocs.17</a>.</P>
|
||||||
|
|
||||||
<H3 id="item4.19">4.19) Por que eu obtenho erros "relation with OID ######
|
<H3 id="item4.19">4.19) Por que eu obtenho erros "relation with OID ######
|
||||||
does not exist" ao acessar tabelas temporárias em funções PL/PgSQL?</H3>
|
does not exist" ao acessar tabelas temporárias em funções PL/PgSQL?</H3>
|
||||||
@ -912,22 +919,22 @@ comprimento</TD></TR>
|
|||||||
<P>Replicação com múltiplos mestres permite que consultas leitura/escrita sejam
|
<P>Replicação com múltiplos mestres permite que consultas leitura/escrita sejam
|
||||||
enviadas para múltiplos computadores replicadores. Esta capacidade também tem
|
enviadas para múltiplos computadores replicadores. Esta capacidade também tem
|
||||||
um sério impacto na performance por causa da necessidade de sincronizar as mudanças
|
um sério impacto na performance por causa da necessidade de sincronizar as mudanças
|
||||||
entre os servidores. <A href="http://pgfoundry.org/projects/pgcluster/">Pgcluster</a>
|
entre os servidores. <A href="http://pgfoundry.org/projects/pgcluster/">PGCluster</a>
|
||||||
é a solução mais popular disponível livremente para PostgreSQL.</P>
|
é a solução mais popular disponível livremente para PostgreSQL.</P>
|
||||||
|
|
||||||
<P>Há também soluções de replicação comerciais e baseadas em hardware disponíveis
|
<P>Há também soluções de replicação comerciais e baseadas em hardware disponíveis
|
||||||
que suportam uma variedade de modelos de replicação.</P>
|
que suportam uma variedade de modelos de replicação.</P>
|
||||||
|
|
||||||
<H3 id="item4.21">4.21) Por que os nomes de minhas tabelas e colunas não
|
<H3 id="item4.21">4.21) Por que os nomes de minhas tabelas e colunas não
|
||||||
são reconhecidos em minha consulta?</H3>
|
são reconhecidos em minha consulta? Por que as maiúsculas não são preservadas?</H3>
|
||||||
|
|
||||||
<P>O caso mais comum é o uso de aspas ao redor dos nomes da tabela ou coluna
|
<P>A causa mais comum de nomes desconhecidos é o uso de aspas ao redor dos nomes da tabela ou coluna
|
||||||
durante a criação da tabela. Ao utilizar aspas, nomes de tabela e coluna
|
durante a criação da tabela. Ao utilizar aspas, nomes de tabela e coluna
|
||||||
(chamados de identificadores) são armazenados <a
|
(chamados de identificadores) são armazenados <a
|
||||||
href="http://www.postgresql.org/docs/8.0/static/sql-syntax.html#SQL-SYNTAX-IDENTIFIERS">
|
href="http://www.postgresql.org/docs/current/static/sql-syntax.html#SQL-SYNTAX-IDENTIFIERS">
|
||||||
como especificado</a>, significando que você deve utilizar aspas quando se
|
como especificado</a>, significando que você deve utilizar aspas quando se
|
||||||
referir aos nomes na consulta. Algumas interfaces, como pgAdmin,
|
referir aos nomes na consulta. Algumas interfaces, como pgAdmin,
|
||||||
automaticamente coloca aspas nos identificadores durante a criação da tabela.
|
automaticamente colocam aspas nos identificadores durante a criação da tabela.
|
||||||
Então, para identificadores serem reconhecidos, você deve:
|
Então, para identificadores serem reconhecidos, você deve:
|
||||||
<UL>
|
<UL>
|
||||||
<LI>Evitar colocar aspas no identificador ao criar tabelas</LI>
|
<LI>Evitar colocar aspas no identificador ao criar tabelas</LI>
|
||||||
|
Reference in New Issue
Block a user