summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBruce Momjian2005-01-15 22:14:08 +0000
committerBruce Momjian2005-01-15 22:14:08 +0000
commit3f6c9d490af50c95964eb0f99baedd474e0e7c8c (patch)
treeaf63dc747ea4e9dfb9f380d999c2a217eb6d7465
parent7a5b0475821e335b96787f53d29a75aecb510a04 (diff)
Update Brazilian FAQ.
Euler Taveira de Oliveira
-rw-r--r--doc/FAQ_brazilian150
-rw-r--r--doc/src/FAQ/FAQ_brazilian.html84
2 files changed, 134 insertions, 100 deletions
diff --git a/doc/FAQ_brazilian b/doc/FAQ_brazilian
index 617c73a2b4..a44ed10c20 100644
--- a/doc/FAQ_brazilian
+++ b/doc/FAQ_brazilian
@@ -1,18 +1,19 @@
Perguntas Frequentes (FAQ) sobre PostgreSQL
- �ltima atualiza��o: Sat Nov 20 17:28:23 EDT 2004
+ �ltima atualiza��o: Dom Jan 9 14:44:04 EDT 2005
Mantenedor atual: Bruce Momjian ([email protected])
Traduzido por: Euler Taveira de Oliveira ([email protected])
A vers�o mais recente desse documento pode ser vista em
- http://www.PostgreSQL.org/docs/faqs/FAQ.html (EN).
- http://www.PostgreSQL.org/docs/faqs/FAQ_brazilian.html (pt_BR).
+ http://www.postgresql.org/files/documentation/faqs/FAQ.html (EN).
+ http://www.postgresql.org/files/documentation/faqs/FAQ_brazilian.html
+ (pt_BR).
Perguntas sobre plataformas espec�ficas s�o respondidas em
- http://www.PostgreSQL.org/docs/index.html.
+ http://www.postgresql.org/docs/faq/.
_________________________________________________________________
Perguntas Gerais
@@ -92,8 +93,8 @@
4.14) Qual � a diferen�a entre os v�rios tipos de dados de caracteres?
4.15.1) Como eu crio um campo serial/auto incremento?
4.15.2) Como eu consigo o valor de um campo SERIAL?
- 4.15.3) currval() e nextval() n�o lidam com condi��o de corrida com
- outros usu�rios?
+ 4.15.3) currval() n�o lida com condi��o de corrida com outros
+ usu�rios?
4.15.4) Por que os n�meros da minha sequ�ncia n�o s�o reutilizados
quando uma transa��o � abortada? Por que h� intervalos nos n�meros da
minha sequ�ncia/coluna SERIAL?
@@ -128,9 +129,7 @@
1.1) O que � PostgreSQL? Como ele � pronunciado?
- PostgreSQL � pronunciado Post-Gres-Qui-El. Um arquivo de �udio est�
- dispon�vel em http://www.postgresql.org/postgresql.mp3 para aqueles
- que gostariam de ouvir a pron�ncia.
+ PostgreSQL � pronunciado Post-Gres-Q-L.
PostgreSQL � um melhoramento do sistema de ger�ncia de banco de dados
POSTGRES (e tamb�m �, �s vezes, chamado simplesmente de "Postgres"),
@@ -147,7 +146,7 @@
ao grupo). O grupo � respons�vel por todo o desenvolvimento do
PostgreSQL. � um projeto da comunidade e n�o � controlado por nenhuma
empresa. Para se juntar ao grupo, veja a FAQ do desenvolvedor em
- http://www.PostgreSQL.org/docs/faqs/FAQ_DEV.html
+ http://www.postgresql.org/files/documentation/faqs/FAQ_DEV.html
Os autores do PostgreSQL 1.01 foram Andrew Yu e Jolly Chen. Muitos
outros contribuiram para portar, testar, depurar e melhorar o c�digo.
@@ -166,7 +165,7 @@
PostgreSQL Sistema de Ger�ncia de Banco de Dados
- Portions copyright (c) 1996-2004, PostgreSQL Global Development Group
+ Portions Copyright (c) 1996-2005, PostgreSQL Global Development Group
Portions Copyright (c) 1994-6 Regents of the University of California
Permiss�o de uso, c�pia, modifica��o e distribui��o desse software e
@@ -204,9 +203,14 @@
Iniciando com a vers�o 8.0, o PostgreSQL agora pode ser executado
nativamente nos sistemas operacionais Microsoft Windows baseados no NT
tais como Win2000, WinXP e Win2003. Um instalador est� dispon�vel em
- http://pgfoundry.org/projects/pginstaller.
+ http://pgfoundry.org/projects/pginstaller Vers�es do Windows baseados
+ no MSDOS (Win95, Win98, WinMe) podem executar o PostgreSQL utilizando
+ o Cygwin.
- H� tamb�m um porte para Novell Netware 6 em http://forge.novell.com.
+ H� tamb�m um porte para Novell Netware 6 em http://forge.novell.com e
+ uma vers�o para OS/2 (eComStation) em
+ http://hobbes.nmsu.edu/cgi-bin/h-search?sh=1&button=Search&key=postgre
+ SQL&stype=all&sort=type&dir=%2F.
1.5) Onde eu posso conseguir o PostgreSQL?
@@ -251,16 +255,19 @@
http://www.PostgreSQL.org
- H� tamb�m um canal de IRC na Freenode e EFNet, canal PostgreSQL. Voc�
- pode utilizar o comando Unix irc -c '#PostgreSQL' "$USER"
- irc.phoenix.net. ou irc -c '#PostgreSQL' "$USER" irc.freenode.net.
+ O principal canal de IRC � o #postgresql na Freenode
+ (irc.freenode.net). Para se conectar voc� pode utilizar o comando Unix
+ irc -c '#postgresql' "$USER" irc.freenode.net ou utilizar qualquer
+ outro cliente de IRC. Um canal hisp�nico (#postgresql-es) e um franc�s
+ (#postgresqlfr) tamb�m existem na mesma rede. H� tamb�m um canal
+ PostgreSQL na EFNet.
Uma lista de empresas que prestam suporte comercial est� dispon�vel em
http://techdocs.postgresql.org/companies.php.
1.7) Qual � a �ltima vers�o?
- A �ltima vers�o do PostgreSQL � a vers�o 7.4.5.
+ A �ltima vers�o do PostgreSQL � a vers�o 7.4.6.
N�s planejamos lan�ar vers�es novas a cada seis ou oito meses.
@@ -278,8 +285,9 @@
cole��o de artigos t�cnicos sobre PostgreSQL em
http://techdocs.PostgreSQL.org/.
- psql tem alguns comandos \d para mostrar informa��o sobre tipos,
- operadores, fun��es, agrega��es, etc.
+ O programa cliente de linha de comando psql tem alguns comandos \d
+ para mostrar informa��o sobre tipos, operadores, fun��es, agrega��es,
+ etc. Use \? para mostrar os comandos dispon�veis.
Nosso web site cont�m ainda mais documenta��o.
@@ -327,9 +335,8 @@
1.13) Como eu informo a exist�ncia de um bug?
- Por favor visite a p�gina da ferramenta que reporta bugs em
- http://www.PostgreSQL.org/bugs/bugs.php, que ir� lher dar as
- instru��es e dire��es de como submeter um bug.
+ Visite o formul�rio que reporta bugs do PostgreSQL em
+ http://www.postgresql.org/support/submitbug.
Verifique tamb�m o nosso ftp ftp://ftp.PostgreSQL.org/pub para ver se
h� uma vers�o mais recente do PostgreSQL ou patches.
@@ -349,23 +356,17 @@
travamentos (locks).
Performance
- PostgreSQL tem a performance similar a outros bancos de dados
- comerciais e de c�digo livre. Ele � mais r�pido em algumas
- coisas, mais lento em outras. Comparado ao MySQL ou sistemas de
- bancos de dados "leves", n�s somos mais r�pidos com m�ltiplos
- usu�rios, consultas complexas e carga de consultas de
+ A performance do PostgreSQL � compar�vel a outros bancos de
+ dados comerciais e de c�digo livre. Ele � mais r�pido em
+ algumas coisas, mais lento em outras. Comparado ao MySQL ou
+ sistemas de bancos de dados "leves", n�s somos mais r�pidos com
+ m�ltiplos usu�rios, consultas complexas e carga de consultas de
leitura/escrita. MySQL � mais r�pido para consultas simples com
SELECT feitas por poucos usu�rios. � claro que o MySQL n�o tem
muitas das caracter�sticas mencionadas na se��o Caracter�sticas
acima. N�s desenvolvemos buscando confiabilidade e
caracter�sticas, e n�s continuamos a melhorar a performance a
- cada vers�o. H� uma p�gina interessante comparando o PostgreSQL
- com o MySQL em
- http://openacs.org/philosophy/why-not-mysql.html. MySQL � uma
- empresa que distribui seu produto via c�digo livre, e requer
- uma licen�a comercial para software de c�digo fechado, e n�o
- uma comunidade de desenvolvimento de c�digo livre como o
- PostgreSQL.
+ cada vers�o.
Confiabilidade
N�s sabemos que um SGBD deve ser confi�vel ou ele � in�til. N�s
@@ -413,10 +414,10 @@
para apoiar o projeto PostgreSQL e n�o financia nenhuma empresa
espec�fica. Se voc� preferir, voc� pode enviar um cheque para o
endere�o de contato.
- _________________________________________________________________
Se voc� tiver uma hist�ria de sucesso sobre o PostgreSQL, envie-a para
- nosso website em http://advocacy.postgresql.org.
+ nossa lista advocacy em [email protected].
+ _________________________________________________________________
Perguntas sobre Clientes
@@ -451,12 +452,12 @@
2.3) O PostgreSQL tem interfaces gr�ficas para iteragir com o usu�rio?
Sim, h� v�rias interfaces gr�ficas para PostgreSQL dispon�veis. Entre
- elas o PgAccess http://www.pgaccess.org), PgAdmin III
- (http://www.pgadmin.org, RHDB Admin (http://sources.redhat.com/rhdb/ )
- e o Rekall ( http://www.thekompany.com/products/rekall/,
- propriet�ria). H� tamb�m o PhpPgAdmin (
- http://phppgadmin.sourceforge.net/ ), uma interface web para
- PostgreSQL.
+ elas o PgAccess http://www.pgaccess.org), pgAdmin III
+ (http://www.pgadmin.org, RHDB Admin (http://sources.redhat.com/rhdb/
+ ), TORA (http://www.globecom.net/tora/, parcialmente comercial) e o
+ Rekall ( http://www.thekompany.com/products/rekall/, propriet�ria). H�
+ tamb�m o PhpPgAdmin ( http://phppgadmin.sourceforge.net/ ), uma
+ interface web para PostgreSQL.
Veja http://techdocs.postgresql.org/guides/GUITools para uma lista
mais detalhada.
@@ -500,9 +501,10 @@
kernel. A quantidade exata que voc� precisa vai depender da
arquitetura e de quantos buffers e processos do servidor voc�
configurou para o postmaster. Muitos sistemas, com o n�mero padr�o de
- buffers e processos, precisam de aproximadamente 1 MB. Veja o Guia do
- Administrador do PostgreSQL para mais informa��o sobre mem�ria
- compartilhada e sem�foros.
+ buffers e processos, precisam de aproximadamente 1 MB. Veja a se��o
+ PostgreSQL Administrator's Guide/Server Run-time Environment/Managing
+ Kernel Resources para mais informa��o sobre mem�ria compartilhada e
+ sem�foros.
3.4) Quando eu tento iniciar o postmaster, eu recebo erros
IpcSemaphoreCreate. Por que?
@@ -546,21 +548,22 @@
remover e criar �ndices novamente quando estiver fazendo muitas
mudan�as nos dados.
- H� v�rias op��es de ajuste. Voc� pode desabilitar o fsync() iniciando
- o postmaster com a op��o -o -F. Isso ir� impedir que fsync()s enviem
- os dados para disco ap�s cada transa��o.
+ H� v�rias op��es de ajuste em Administration Guide/Server Run-time
+ Environment/Run-time Configuration. Voc� pode desabilitar o fsync()
+ utilizando a op��o fsync. Isso ir� impedir que fsync()s enviem os
+ dados para disco ap�s cada transa��o.
- Voc� tamb�m pode utilizar a op��o -B do postmaster para aumentar o
- n�mero de buffers de mem�ria compartilhada utilizados pelos processos
- do servidor. Se voc� definiu este par�metro com um valor muito alto, o
+ Voc� pode utilizar a op��o shared_buffers para aumentar o n�mero de
+ buffers de mem�ria compartilhada utilizados pelos processos do
+ servidor. Se voc� definiu este par�metro com um valor muito alto, o
postmaster pode n�o iniciar porque voc� excedeu o limite de espa�o de
mem�ria compartilhada do kernel. Cada buffer � de 8K e o padr�o � de
- 64 buffers.
+ 1000 buffers.
- Voc� tamb�m pode utilizar a op��o -S do backend para aumentar a m�xima
- quantidade de mem�ria utilizada pelo processo servidor para ordena��es
- tempor�rias. O valor de -S � medido em kilobytes e o padr�o � de 512
- (ou seja 512K).
+ Voc� tamb�m pode utilizar a op��o sort_mem (no PostgreSQL 8.0:
+ work_mem) para aumentar a m�xima quantidade de mem�ria utilizada pelo
+ processo servidor para cada ordena��o tempor�ria. O valor padr�o �
+ 1024 (ou seja 1MB).
Voc� tamb�m pode utilizar o comando CLUSTER para agrupar dados em
tabelas para combinar um �ndice. Veja o manual sobre CLUSTER para mais
@@ -598,8 +601,24 @@
ambiente id�ntico e problemas de itera��o com o n�cleo/travamento n�o
podem ser reproduzidos.
- O programa postgres possue as op��es -s, -A, e -t que podem ser muito
- �teis para depura��o e medidas de performance.
+ Se o postmaster est� sendo executado, inicie o psql em uma janela, e
+ ent�o encontre o PID do processo postgres utilizado pelo psql
+ utilizando
+SELECT pg_backend_pid()
+
+ . Utilize um depurador para anexar ao PID do postgres. Voc� pode
+ definir pontos de parada (breakpoints) no depurador e digitar
+ consultas no psql. Se voc� est� depurando a inicializa��o do postgres,
+ voc� pode definir PGOPTIONS="-W n" e ent�o iniciar o psql. Isto
+ retardar� a inicializa��o por n segundos ent�o voc� pode anexar o
+ depurador ao processo, definir quaisquer pontos de parada e continuar
+ pela sequ�ncia de inicializa��o.
+
+ H� v�rias vari�veis de configura��o do servidor
+log_*
+
+ que habilitam a exibi��o de estat�sticas que podem ser muito �teis
+ para depura��o e medidas de performance.
Voc� tamb�m pode compilar com perfil para ver que fun��es est�o
demandando tempo de execu��o. Os arquivo de perfil do n�cleo (backend)
@@ -852,7 +871,13 @@ para cima)
* Buscas que n�o diferenciam mai�sculas de min�sculas tais como
ILIKE e ~* n�o utilizam �ndices. Ao inv�s, utilize �ndices
funcionais, que s�o descritos na se��o 4.12.
- * A localidade padr�o C deve ser utilizada durante o initdb.
+ * A localidade padr�o C deve ser utilizada durante o initdb porque
+ n�o � poss�vel saber o pr�ximo/maior caracter em uma localidade
+ que n�o seja a C. Voc� pode criar um �ndice especial
+text_pattern_ops
+ para tais casos que funcionam somente para indexa��o utilizando
+LIKE
+ .
Em vers�es anteriores a 8.0, �ndices frequentemente n�o podiam ser
usados a menos que os tipos de dados correspodessem aos tipos da
@@ -999,11 +1024,10 @@ te safe)
Finalmente, voc� poderia utilizar o OID retornado da senten�a INSERT
para obter o valor padr�o, embora este seja a abordagem menos
port�vel, pois o valor do oid n�o ultrapassa 4 bilh�es. Em Perl,
- utilizando DBI com o m�dulo DBD::Pg de Edmund Mergl, o valor do oid
- est� dispon�vel via $sth->{pg_oid_status} depois de $sth->execute().
+ utilizando DBI com o m�dulo DBD::Pg, o valor do oid est� dispon�vel
+ via $sth->{pg_oid_status} depois de $sth->execute().
- 4.15.3) currval() e nextval() n�o lidam com condi��o de corrida com outros
- usu�rios?
+ 4.15.3) currval() n�o lida com condi��o de corrida com outros usu�rios?
N�o. currval() retorna o valor atual atribuido pelo seu n�cleo
(backend), e n�o por todos os usu�rios.
diff --git a/doc/src/FAQ/FAQ_brazilian.html b/doc/src/FAQ/FAQ_brazilian.html
index 33a64c7662..a07ffbdf9c 100644
--- a/doc/src/FAQ/FAQ_brazilian.html
+++ b/doc/src/FAQ/FAQ_brazilian.html
@@ -10,7 +10,7 @@
alink="#0000ff">
<H1>Perguntas Frequentes (FAQ) sobre PostgreSQL</H1>
- <P>&Uacute;ltima atualiza&ccedil;&atilde;o: Sat Nov 20 17:28:23 EDT 2004</P>
+ <P>&Uacute;ltima atualiza&ccedil;&atilde;o: Dom Jan 9 14:44:04 EDT 2005</P>
<P>Mantenedor atual: Bruce Momjian (<A href=
@@ -20,12 +20,13 @@
<P>A vers&atilde;o mais recente desse documento pode ser vista em <A href=
- "http://www.PostgreSQL.org/docs/faqs/FAQ.html">http://www.PostgreSQL.org/docs/faqs/FAQ.html</A> (EN).<BR>
- <A href="http://www.postgresql.org/docs/faqs/FAQ_brazilian.html">http://www.PostgreSQL.org/docs/faqs/FAQ_brazilian.html</A>
- (pt_BR).</P>
+ "http://www.postgresql.org/files/documentation/faqs/FAQ.html">
+ http://www.postgresql.org/files/documentation/faqs/FAQ.html</A> (EN).<BR>
+ <A href="http://www.postgresql.org/files/documentation/faqs/FAQ_brazilian.html">
+ http://www.postgresql.org/files/documentation/faqs/FAQ_brazilian.html</A> (pt_BR).</P>
<P>Perguntas sobre plataformas espec&iacute;ficas s&atilde;o respondidas em <A href=
- "http://www.PostgreSQL.org/docs/index.html">http://www.PostgreSQL.org/docs/index.html</A>.</P>
+ "http://www.postgresql.org/docs/faq/">http://www.postgresql.org/docs/faq/</A>.</P>
<HR>
<H2 align="center">Perguntas Gerais</H2>
@@ -88,8 +89,7 @@
<A href="#4.15.1">4.15.1</A>) Como eu crio um campo serial/auto incremento?<BR>
<A href="#4.15.2">4.15.2</A>) Como eu consigo o valor de um campo
<SMALL>SERIAL</SMALL>?<BR>
- <A href="#4.15.3">4.15.3</A>) <I>currval()</I> e
- <I>nextval()</I> n&atilde;o lidam com condi&ccedil;&atilde;o de corrida com outros usu&aacute;rios?<BR>
+ <A href="#4.15.3">4.15.3</A>) <I>currval()</I> n&atilde;o lida com condi&ccedil;&atilde;o de corrida com outros usu&aacute;rios?<BR>
<A href="#4.15.4">4.15.4</A>) Por que os n&uacute;meros da minha sequ&ecirc;ncia n&atilde;o s&atilde;o reutilizados quando uma transa&ccedil;&atilde;o &eacute; abortada? Por que h&aacute; intervalos nos n&uacute;meros da minha sequ&ecirc;ncia/coluna SERIAL?<BR>
<A href="#4.16">4.16</A>) O que &eacute; um <SMALL>OID</SMALL>? O que &eacute; um <SMALL>TID</SMALL>?<BR>
<A href="#4.17">4.17</A>) Qual &eacute; o significado de alguns termos utilizados no PostgreSQL?<BR>
@@ -102,7 +102,7 @@
<A href="#4.24">4.24</A>) Como eu fa&ccedil;o consultas utilizando m&uacute;ltiplos bancos de dados?<BR>
<A href="#4.25">4.25</A>) Como eu retorno m&uacute;ltiplos registros ou colunas de uma fun&ccedil;&atilde;o?<BR>
<A href="#4.26">4.26</A>) Por que eu n&atilde;o posso confiar na cria&ccedil;&atilde;o/remo&ccedil;&atilde;o de tabelas tempor&aacute;rias em fun&ccedil;&otilde;es PL/PgSQL?<BR>
- <A href="#4.28">4.27</A>) Que op&ccedil;&otilde;es para encripta&ccedil;&atilde;o est&atilde;o dispon&iacute;veis?<BR>
+ <A href="#4.27">4.27</A>) Que op&ccedil;&otilde;es para encripta&ccedil;&atilde;o est&atilde;o dispon&iacute;veis?<BR>
<H2 align="center">Extendendo o PostgreSQL</H2>
@@ -118,9 +118,7 @@
<H4><A name="1.1">1.1</A>) O que &eacute; PostgreSQL? Como ele &eacute; pronunciado?</H4>
- <P>PostgreSQL &eacute; pronunciado <I>Post-Gres-Qui-El</I>. Um arquivo de &aacute;udio est&aacute;
- dispon&iacute;vel em http://www.postgresql.org/postgresql.mp3 para aqueles que gostariam
- de ouvir a pron&uacute;ncia.</P>
+ <P>PostgreSQL &eacute; pronunciado <I>Post-Gres-Q-L</I>.</P>
<P>PostgreSQL &eacute; um melhoramento do sistema de ger&ecirc;ncia
de banco de dados POSTGRES (e tamb&eacute;m &eacute;, &agrave;s vezes, chamado simplesmente de "Postgres"),
@@ -140,8 +138,8 @@
por todo o desenvolvimento do PostgreSQL. &Eacute; um projeto da
comunidade e n&atilde;o &eacute; controlado por nenhuma empresa.
Para se juntar ao grupo, veja a FAQ do desenvolvedor em
- <A href="http://www.PostgreSQL.org/docs/faqs/FAQ_DEV.html">
- http://www.PostgreSQL.org/docs/faqs/FAQ_DEV.html</A></P>
+ <A href="http://www.postgresql.org/files/documentation/faqs/FAQ_DEV.html">
+ http://www.postgresql.org/files/documentation/faqs/FAQ_DEV.html</A></P>
<P>Os autores do PostgreSQL 1.01 foram Andrew Yu e Jolly Chen.
Muitos outros contribuiram para portar, testar, depurar e
@@ -204,10 +202,14 @@
baseados no NT tais como Win2000, WinXP e Win2003. Um instalador
est&aacute; dispon&iacute;vel em <a href=
"http://pgfoundry.org/projects/pginstaller">
- http://pgfoundry.org/projects/pginstaller</a>.
+ http://pgfoundry.org/projects/pginstaller</a> Vers�es do Windows
+ baseados no MSDOS (Win95, Win98, WinMe) podem executar o PostgreSQL utilizando o Cygwin.
<P>H&aacute; tamb&eacute;m um porte para Novell Netware 6 em
- <A href="http://forge.novell.com">http://forge.novell.com</A>.</P>
+ <A href="http://forge.novell.com">http://forge.novell.com</A>
+ e uma vers�o para OS/2 (eComStation) em <a href=
+ "http://hobbes.nmsu.edu/cgi-bin/h-search?sh=1&button=Search&key=postgreSQL&stype=all&sort=type&dir=%2F">
+ http://hobbes.nmsu.edu/cgi-bin/h-search?sh=1&button=Search&key=postgreSQL&stype=all&sort=type&dir=%2F</a>.</P>
<H4><A name="1.5">1.5</A>) Onde eu posso conseguir o PostgreSQL?</H4>
@@ -254,14 +256,14 @@ H&aacute; tamb&eacute;m uma lista de discuss&atilde;o dos desenvolvedores dispon
<A href="http://www.PostgreSQL.org">http://www.PostgreSQL.org</A>
</BLOCKQUOTE>
- <P>H&aacute; tamb&eacute;m um canal de IRC na Freenode e EFNet, canal <I>PostgreSQL</I>. Voc&ecirc; pode utilizar o comando Unix <code>irc -c '#PostgreSQL' "$USER" irc.phoenix.net.</code> ou <code>irc -c '#PostgreSQL' "$USER" irc.freenode.net.</code></P>
+ <P>O principal canal de IRC &eacute; o <I>#postgresql</I> na Freenode (<I>irc.freenode.net</I>). Para se conectar voc&ecirc; pode utilizar o comando Unix <code>irc -c '#postgresql' "$USER" irc.freenode.net</code> ou utilizar qualquer outro cliente de IRC. Um canal hisp&acirc;nico (<I>#postgresql-es</I>) e um franc&ecirc;s (<I>#postgresqlfr</I>) tamb&eacute;m existem na mesma rede. H&aacute; tamb&eacute;m um canal PostgreSQL na EFNet.</P>
<P>Uma lista de empresas que prestam suporte comercial est&aacute; dispon&iacute;vel em <A href=
"http://techdocs.postgresql.org/companies.php">http://techdocs.postgresql.org/companies.php</A>.</P>
<H4><A name="1.7">1.7</A>) Qual &eacute; a &uacute;ltima vers&atilde;o?</H4>
- <P>A &uacute;ltima vers&atilde;o do PostgreSQL &eacute; a vers&atilde;o 7.4.5.</P>
+ <P>A &uacute;ltima vers&atilde;o do PostgreSQL &eacute; a vers&atilde;o 7.4.6.</P>
<P>N&oacute;s planejamos lan&ccedil;ar vers&otilde;es novas a cada seis ou oito meses.</P>
@@ -280,7 +282,7 @@ H&aacute; tamb&eacute;m uma lista de discuss&atilde;o dos desenvolvedores dispon
href=
"http://techdocs.PostgreSQL.org/">http://techdocs.PostgreSQL.org/</A>.</P>
- <P><I>psql</I> tem alguns comandos \d para mostrar informa&ccedil;&atilde;o sobre tipos, operadores, fun&ccedil;&otilde;es, agrega&ccedil;&otilde;es, etc.</P>
+ <P>O programa cliente de linha de comando <I>psql</I> tem alguns comandos \d para mostrar informa&ccedil;&atilde;o sobre tipos, operadores, fun&ccedil;&otilde;es, agrega&ccedil;&otilde;es, etc. Use \? para mostrar os comandos dispon&iacute;veis.</P>
<P>Nosso web site cont&eacute;m ainda mais documenta&ccedil;&atilde;o.</P>
@@ -324,9 +326,8 @@ H&aacute; tamb&eacute;m uma lista de discuss&atilde;o dos desenvolvedores dispon
<H4><A name="1.13">1.13</A>) Como eu informo a exist&ecirc;ncia de um bug?</H4>
- <P>Por favor visite a p&aacute;gina da ferramenta que reporta bugs em <A href=
- "http://www.PostgreSQL.org/bugs/bugs.php">http://www.PostgreSQL.org/bugs/bugs.php</A>,
- que ir&aacute; lher dar as instru&ccedil;&otilde;es e dire&ccedil;&otilde;es de como submeter um bug.</P>
+ <P>Visite o formul&aacute;rio que reporta bugs do PostgreSQL em <A href=
+ "http://www.postgresql.org/support/submitbug">http://www.postgresql.org/support/submitbug</A>.</P>
<P>Verifique tamb&eacute;m o nosso ftp <A href=
"ftp://ftp.PostgreSQL.org/pub">ftp://ftp.PostgreSQL.org/pub</A> para
@@ -345,7 +346,7 @@ H&aacute; tamb&eacute;m uma lista de discuss&atilde;o dos desenvolvedores dispon
<DT><B>Performance</B></DT>
- <DD>PostgreSQL tem a performance similar a outros bancos de dados comerciais e de c&oacute;digo livre. Ele &eacute; mais r&aacute;pido em algumas coisas, mais lento em outras. Comparado ao MySQL ou sistemas de bancos de dados "leves", n&oacute;s somos mais r&aacute;pidos com m&uacute;ltiplos usu&aacute;rios, consultas complexas e carga de consultas de leitura/escrita. MySQL &eacute; mais r&aacute;pido para consultas simples com SELECT feitas por poucos usu&aacute;rios. &Eacute; claro que o MySQL n&atilde;o tem muitas das caracter&iacute;sticas mencionadas na se&ccedil;&atilde;o <I>Caracter&iacute;sticas</I> acima. N&oacute;s desenvolvemos buscando confiabilidade e caracter&iacute;sticas, e n&oacute;s continuamos a melhorar a performance a cada vers&atilde;o. H&aacute; uma p&aacute;gina interessante comparando o PostgreSQL com o MySQL em <A href="http://openacs.org/philosophy/why-not-mysql.html">http://openacs.org/philosophy/why-not-mysql.html</A>. MySQL &eacute; uma empresa que distribui seu produto via c&oacute;digo livre, e requer uma licen&ccedil;a comercial para software de c&oacute;digo fechado, e n&atilde;o uma comunidade de desenvolvimento de c&oacute;digo livre como o PostgreSQL.<BR>
+ <DD>A performance do PostgreSQL &eacute; compar&aacute;vel a outros bancos de dados comerciais e de c&oacute;digo livre. Ele &eacute; mais r&aacute;pido em algumas coisas, mais lento em outras. Comparado ao MySQL ou sistemas de bancos de dados "leves", n&oacute;s somos mais r&aacute;pidos com m&uacute;ltiplos usu&aacute;rios, consultas complexas e carga de consultas de leitura/escrita. MySQL &eacute; mais r&aacute;pido para consultas simples com SELECT feitas por poucos usu&aacute;rios. &Eacute; claro que o MySQL n&atilde;o tem muitas das caracter&iacute;sticas mencionadas na se&ccedil;&atilde;o <I>Caracter&iacute;sticas</I> acima. N&oacute;s desenvolvemos buscando confiabilidade e caracter&iacute;sticas, e n&oacute;s continuamos a melhorar a performance a cada vers&atilde;o.<BR>
<BR>
</DD>
@@ -375,9 +376,10 @@ H&aacute; tamb&eacute;m uma lista de discuss&atilde;o dos desenvolvedores dispon
<P>Infra-estrutura de qualidade &eacute; muito importante em um projeto de c&oacute;digo aberto. Ela previne descontinuidades que podem facilmente descontinuar o andamento do projeto.</P>
<P>&Eacute; claro, que a infra-estrutura n&atilde;o &eacute; barata. H&aacute; v&aacute;rios custos iniciais e mensais que s&atilde;o necess&aacute;rios para mant&eacute;-la. Se voc&ecirc; ou sua empresa tem dinheiro que pode ser doado para ajudar a financiar esse esfor&ccedil;o, acesse <A href="http://store.pgsql.com/shopping/">http://store.pgsql.com/shopping/</A> e fa&ccedil;a uma doa&ccedil;&atilde;o.</P>
<P>Embora a p&aacute;gina mencione PostgreSQL, Inc, a "contribui&ccedil;&atilde;o" &eacute; somente para apoiar o projeto PostgreSQL e n&atilde;o financia nenhuma empresa espec&iacute;fica. Se voc&ecirc; preferir, voc&ecirc; pode enviar um cheque para o endere&ccedil;o de contato.</P>
- <HR>
- <P>Se voc&ecirc; tiver uma hist&oacute;ria de sucesso sobre o PostgreSQL, envie-a para nosso website em <A href="http://advocacy.postgresql.org">http://advocacy.postgresql.org</A>.</P>
+ <P>Se voc&ecirc; tiver uma hist&oacute;ria de sucesso sobre o PostgreSQL, envie-a para nossa lista <i>advocacy</i> em <a href="mailto:[email protected]">[email protected]</a>.</P>
+
+ <HR>
<H2 align="center">Perguntas sobre Clientes</H2>
@@ -403,10 +405,11 @@ H&aacute; tamb&eacute;m uma lista de discuss&atilde;o dos desenvolvedores dispon
<P>Sim, h&aacute; v&aacute;rias interfaces gr&aacute;ficas para PostgreSQL dispon&iacute;veis.
Entre elas o PgAccess <A href="http://www.pgaccess.org">
- http://www.pgaccess.org</A>), PgAdmin III (<A
+ http://www.pgaccess.org</A>), pgAdmin III (<A
href="http://www.pgadmin.org">http://www.pgadmin.org</A>, RHDB Admin (<A
href="http://sources.redhat.com/rhdb/">http://sources.redhat.com/rhdb/
- </A>) e o Rekall (<A href="http://www.thekompany.com/products/rekall/">
+ </A>), TORA (<a href="http://www.globecom.net/tora/">http://www.globecom.net/tora/</a>,
+ parcialmente comercial) e o Rekall (<A href="http://www.thekompany.com/products/rekall/">
http://www.thekompany.com/products/rekall/</A>, propriet&aacute;ria). H&aacute;
tamb&eacute;m o PhpPgAdmin (<A href="http://phppgadmin.sourceforge.net/">
http://phppgadmin.sourceforge.net/ </A>), uma interface web para
@@ -451,7 +454,7 @@ H&aacute; tamb&eacute;m uma lista de discuss&atilde;o dos desenvolvedores dispon
<H4><A name="3.3">3.3</A>) Quando eu tento iniciar o <I>postmaster</I>, eu recebo erros <I>IpcMemoryCreate</I>. Por que?</H4>
- <P>Voc&ecirc; n&atilde;o configurou a mem&oacute;ria compartilhada corretamente no seu kernel ou voc&ecirc; precisa aumentar a mem&oacute;ria compartilhada dispon&iacute;vel no seu kernel. A quantidade exata que voc&ecirc; precisa vai depender da arquitetura e de quantos buffers e processos do servidor voc&ecirc; configurou para o <I>postmaster</I>. Muitos sistemas, com o n&uacute;mero padr&atilde;o de buffers e processos, precisam de aproximadamente 1 MB. Veja o <A href="http://www.PostgreSQL.org/docs/view.php?version=current&amp;idoc=1&amp;file=kernel-resources.html">Guia do Administrador do PostgreSQL</A> para mais informa&ccedil;&atilde;o sobre mem&oacute;ria compartilhada e sem&aacute;foros.</P>
+ <P>Voc&ecirc; n&atilde;o configurou a mem&oacute;ria compartilhada corretamente no seu kernel ou voc&ecirc; precisa aumentar a mem&oacute;ria compartilhada dispon&iacute;vel no seu kernel. A quantidade exata que voc&ecirc; precisa vai depender da arquitetura e de quantos buffers e processos do servidor voc&ecirc; configurou para o <I>postmaster</I>. Muitos sistemas, com o n&uacute;mero padr&atilde;o de buffers e processos, precisam de aproximadamente 1 MB. Veja a se&ccedil;&atilde;o <A href="http://www.postgresql.org/docs/current/static/kernel-resources.html">PostgreSQL Administrator's Guide/Server Run-time Environment/Managing Kernel Resources</A> para mais informa&ccedil;&atilde;o sobre mem&oacute;ria compartilhada e sem&aacute;foros.</P>
<H4><A name="3.4">3.4</A>) Quando eu tento iniciar o <I>postmaster</I>, eu recebo erros <I>IpcSemaphoreCreate</I>. Por que?</H4>
@@ -471,11 +474,11 @@ H&aacute; tamb&eacute;m uma lista de discuss&atilde;o dos desenvolvedores dispon
<P>Se voc&ecirc; est&aacute; fazendo muitos <SMALL>INSERTs</SMALL>, considere faz&ecirc;-los em lote utilizando o comando <SMALL>COPY</SMALL>. Isso &eacute; mais r&aacute;pido do que <SMALL>INSERTs</SMALL> individuais. Segundo, senten&ccedil;as que n&atilde;o est&atilde;o em um bloco de transa&ccedil;&atilde;o <SMALL>BEGIN WORK/COMMIT</SMALL> s&atilde;o consideradas com se estivessem em sua pr&oacute;pria transa&ccedil;&atilde;o. Considere executar v&aacute;rias senten&ccedil;as em um mesmo bloco de transa&ccedil;&atilde;o. Isso reduz a quantidade de transa&ccedil;&otilde;es. Tamb&eacute;m, considere remover e criar &iacute;ndices novamente quando estiver fazendo muitas mudan&ccedil;as nos dados.</P>
- <P>H&aacute; v&aacute;rias op&ccedil;&otilde;es de ajuste. Voc&ecirc; pode desabilitar o <I>fsync()</I> iniciando o <I>postmaster</I> com a op&ccedil;&atilde;o <I>-o -F</I>. Isso ir&aacute; impedir que <I>fsync()</I>s enviem os dados para disco ap&oacute;s cada transa&ccedil;&atilde;o.</P>
+ <P>H&aacute; v&aacute;rias op&ccedil;&otilde;es de ajuste em <a href="http://www.postgresql.org/docs/current/static/runtime.html">Administration Guide/Server Run-time Environment/Run-time Configuration</a>. Voc&ecirc; pode desabilitar o <I>fsync()</I> utilizando a op&ccedil;&atilde;o <i>fsync</i>. Isso ir&aacute; impedir que <I>fsync()</I>s enviem os dados para disco ap&oacute;s cada transa&ccedil;&atilde;o.</P>
- <P>Voc&ecirc; tamb&eacute;m pode utilizar a op&ccedil;&atilde;o <I>-B</I> do <I>postmaster</I> para aumentar o n&uacute;mero de buffers de mem&oacute;ria compartilhada utilizados pelos processos do servidor. Se voc&ecirc; definiu este par&acirc;metro com um valor muito alto, o <I>postmaster</I> pode n&atilde;o iniciar porque voc&ecirc; excedeu o limite de espa&ccedil;o de mem&oacute;ria compartilhada do kernel. Cada buffer &eacute; de 8K e o padr&atilde;o &eacute; de 64 buffers.</P>
+ <P>Voc&ecirc; pode utilizar a op&ccedil;&atilde;o <I>shared_buffers</I> para aumentar o n&uacute;mero de buffers de mem&oacute;ria compartilhada utilizados pelos processos do servidor. Se voc&ecirc; definiu este par&acirc;metro com um valor muito alto, o <I>postmaster</I> pode n&atilde;o iniciar porque voc&ecirc; excedeu o limite de espa&ccedil;o de mem&oacute;ria compartilhada do kernel. Cada buffer &eacute; de 8K e o padr&atilde;o &eacute; de 1000 buffers.</P>
- <P>Voc&ecirc; tamb&eacute;m pode utilizar a op&ccedil;&atilde;o <I>-S</I> do backend para aumentar a m&aacute;xima quantidade de mem&oacute;ria utilizada pelo processo servidor para ordena&ccedil;&otilde;es tempor&aacute;rias. O valor de <I>-S</I> &eacute; medido em kilobytes e o padr&atilde;o &eacute; de 512 (ou seja 512K).</P>
+ <P>Voc&ecirc; tamb&eacute;m pode utilizar a op&ccedil;&atilde;o <I>sort_mem</I> (no PostgreSQL 8.0: <I>work_mem</I>) para aumentar a m&aacute;xima quantidade de mem&oacute;ria utilizada pelo processo servidor para cada ordena&ccedil;&atilde;o tempor&aacute;ria. O valor padr&atilde;o &eacute; 1024 (ou seja 1MB).</P>
<P>Voc&ecirc; tamb&eacute;m pode utilizar o comando <SMALL>CLUSTER</SMALL> para agrupar dados em tabelas para combinar um &iacute;ndice. Veja o manual sobre <SMALL>CLUSTER</SMALL> para mais informa&ccedil;&atilde;o.</P>
@@ -496,7 +499,9 @@ H&aacute; tamb&eacute;m uma lista de discuss&atilde;o dos desenvolvedores dispon
<P>Se o <I>postmaster</I> n&atilde;o est&aacute; sendo executado, voc&ecirc; pode executar o n&uacute;cleo do <I>postgres</I> a partir da linha de comando, e digitar a sua senten&ccedil;a <SMALL>SQL</SMALL> diretamente. Isso &eacute; recomendado <B>somente</B> para fins de depura&ccedil;&atilde;o. Note que uma nova linha termina a consulta, e n&atilde;o um ponto-e-v&iacute;rgula. Se voc&ecirc; compilou com s&iacute;mbolos de depura&ccedil;&atilde;o, voc&ecirc; pode utilizar um depurador para ver o que est&aacute; acontecendo. Como o n&uacute;cleo (backend) n&atilde;o foi iniciado a partir do <I>postmaster</I>, ele n&atilde;o est&aacute; executando em um ambiente id&ecirc;ntico e problemas de itera&ccedil;&atilde;o com o n&uacute;cleo/travamento n&atilde;o podem ser reproduzidos.</P>
-<P>O programa <I>postgres</I> possue as op&ccedil;&otilde;es <I>-s, -A</I>, e <I>-t</I> que podem ser muito &uacute;teis para depura&ccedil;&atilde;o e medidas de performance.</P>
+<P>Se o <i>postmaster</i> est&aacute; sendo executado, inicie o <i>psql</i> em uma janela, e ent&atilde;o encontre o <small>PID</small> do processo <i>postgres</i> utilizado pelo <i>psql</i> utilizando <pre>SELECT pg_backend_pid()</pre>. Utilize um depurador para anexar ao <small>PID</small> do <i>postgres</i>. Voc&ecirc; pode definir pontos de parada (<i>breakpoints</i>) no depurador e digitar consultas no <i>psql</i>. Se voc&ecirc; est&aacute; depurando a inicializa&ccedil;&atilde;o do <i>postgres</i>, voc&ecirc; pode definir PGOPTIONS="-W n" e ent&atilde;o iniciar o <i>psql</i>. Isto retardar&aacute; a inicializa&ccedil;&atilde;o por <i>n</i> segundos ent&atilde;o voc&ecirc; pode anexar o depurador ao processo, definir quaisquer pontos de parada e continuar pela sequ&ecirc;ncia de inicializa&ccedil;&atilde;o.</p>
+
+<P>H&aacute; v&aacute;rias vari&aacute;veis de configura&ccedil;&atilde;o do servidor <pre>log_*</pre> que habilitam a exibi&ccedil;&atilde;o de estat&iacute;sticas que podem ser muito &uacute;teis para depura&ccedil;&atilde;o e medidas de performance.</P>
<P>Voc&ecirc; tamb&eacute;m pode compilar com perfil para ver que fun&ccedil;&otilde;es est&atilde;o demandando tempo de execu&ccedil;&atilde;o. Os arquivo de perfil do n&uacute;cleo (backend) ser&atilde;o colocados no diret&oacute;rio <I>pgsql/data/base/dbname</I>. O arquivo de perfil do cliente ser&aacute; colocado no diret&oacute;rio atual do cliente. O Linux requer uma compila&ccedil;&atilde;o com <I>-DLINUX_PROFILE</I> para cria&ccedil;&atilde;o dos perfis.</P>
@@ -629,7 +634,8 @@ N&uacute;mero m&aacute;ximo de &iacute;ndices em uma tabela? ilimitado
<P>Veja tamb&eacute;m o arquivo <I>pgsql/src/tutorial/syscat.source</I>. Ele ilustra muitos <SMALL>SELECT</SMALL>s necess&aacute;rios para obter informa&ccedil;&atilde;o das tabelas do sistema de banco de dados.</P>
<H4><A name="4.8">4.8</A>) Minhas consultas est&atilde;o lentas ou n&atilde;o est&atilde;o utilizando &iacute;ndices. Por que?</H4>
- &Iacute;ndices n&atilde;o s&atilde;o automaticamente utilizados por toda consulta. &Iacute;ndices s&oacute; s&atilde;o
+
+ <p>&Iacute;ndices n&atilde;o s&atilde;o automaticamente utilizados por toda consulta. &Iacute;ndices s&oacute; s&atilde;o
utilizados se uma tabela &eacute; maior do que o tamanho m&iacute;nimo e uma consulta
seleciona somente uma porcentagem pequena de registros de uma tabela. Isto porque
o acesso rand&ocirc;mico ao disco causado por uma busca por &iacute;ndice pode ser
@@ -678,7 +684,11 @@ N&uacute;mero m&aacute;ximo de &iacute;ndices em uma tabela? ilimitado
<I>~*</I> n&atilde;o utilizam &iacute;ndices. Ao inv&eacute;s, utilize &iacute;ndices
funcionais, que s&atilde;o descritos na se&ccedil;&atilde;o <A href="#4.12">4.12</A>.</LI>
<LI>A localidade padr&atilde;o <I>C</I> deve ser utilizada durante o
- <I>initdb</I>.</LI>
+ <i>initdb</i> porque n&atilde;o &eacute; poss&iacute;vel saber o pr&oacute;ximo/maior caracter
+ em uma localidade que n&atilde;o seja a C. Voc&ecirc; pode criar um &iacute;ndice
+ especial <PRE>text_pattern_ops</PRE> para tais casos que funcionam somente para
+ indexa&ccedil;&atilde;o utilizando <PRE>LIKE</PRE>.
+ </LI>
</UL>
<P>
@@ -797,15 +807,15 @@ Veja a p&aacute;gina sobre <I>create_sequence</I> no manual para mais informa&cc
novo_id = execute("SELECT currval('pessoa_id_seq')");
</PRE>
- Finalmente, voc&ecirc; poderia utilizar o <A href="#4.16"><SMALL>OID</SMALL></A>
+ <p>Finalmente, voc&ecirc; poderia utilizar o <A href="#4.16"><SMALL>OID</SMALL></A>
retornado da senten&ccedil;a <SMALL>INSERT</SMALL> para obter o valor padr&atilde;o,
embora este seja a abordagem menos port&aacute;vel,
pois o valor do oid n&atilde;o ultrapassa 4 bilh&otilde;es.
- Em Perl, utilizando DBI com o m&oacute;dulo DBD::Pg de Edmund Mergl, o valor
+ Em Perl, utilizando DBI com o m&oacute;dulo DBD::Pg, o valor
do oid est&aacute; dispon&iacute;vel via <I>$sth-&gt;{pg_oid_status}</I> depois de
- <I>$sth-&gt;execute()</I>.
+ <I>$sth-&gt;execute()</I>.</p>
- <H4><A name="4.15.3">4.15.3</A>) <I>currval()</I> e <I>nextval()</I> n&atilde;o lidam com condi&ccedil;&atilde;o de corrida com outros usu&aacute;rios?</H4>
+ <H4><A name="4.15.3">4.15.3</A>) <I>currval()</I> n&atilde;o lida com condi&ccedil;&atilde;o de corrida com outros usu&aacute;rios?</H4>
<P>N&atilde;o. <I>currval()</I> retorna o valor atual atribuido pelo seu n&uacute;cleo (backend), e n&atilde;o por todos os usu&aacute;rios.</P>