Perguntas Frequentes (FAQ) sobre PostgreSQL
- Última atualização: Sex Jun 4 00:09:16 EDT 2004
+ Última atualização: Ter Ago 31 23:28:02 EDT 2004
Mantenedor atual: Bruce Momjian (pgman@candle.pha.pa.us)
3.9) O que está no diretório pgsql_tmp?
3.10) O que eu preciso fazer para exportar e importar durante a
atualização de versões do PostgreSQL?
+ 3.11) Que tipo de hardware eu devo usar?
Perguntas Operacionais
1.4) Quais portabilidades não-Unix estão disponíveis?
- Cliente
-
- É possível compilar a biblioteca libpq, o psql e outras interfaces e
- aplicações clientes para executar em plataformas MS Windows. Neste
- caso, o cliente está sendo executado no MS Windows e comunica via
- TCP/IP com um servidor executando em uma das plataformas Unix
- suportadas. O arquivo win32.mak está presente na distribuição para que
- seja possível compilar a biblioteca libpq e o psql para Win32. O
- PostgreSQL também se comunica com clientes ODBC.
-
- Servidor
-
- O Servidor de banco de dados pode ser executado em Windows NT e Win2k
- utilizando o Cygwin, uma biblioteca de portabilidade Unix/NT da
- Cygnus. Veja pgsql/doc/FAQ_MSWIN na distribuição ou a FAQ do MS
- Windows em http://www.PostgreSQL.org/docs/faqs/text/FAQ_MSWIN.
-
- Um porte nativo para MS Win NT/2000/XP está sendo desenvolvido. Para
- maiores detalhes sobre o status do PostgreSQL no Windows veja
- http://techdocs.postgresql.org/guides/Windows e
- http://momjian.postgresql.org/main/writings/pgsql/win32.html.
+ 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.
Há também um porte para Novell Netware 6 em http://forge.novell.com.
1.7) Qual é a última versão?
- A última versão do PostgreSQL é a versão 7.4.2.
+ A última versão do PostgreSQL é a versão 7.4.5.
Nós planejamos lançar versões novas a cada seis ou oito meses.
3.5) Como eu controlo conexões de outras máquinas?
Por padrão, o PostgreSQL só permite conexões da máquina local
- utilizando soquetes de domínio Unix. Outras máquinas não poderão
- conectar-se a menos que você habilite tcpip_sockets no
- postgresql.conf, e habilite a autenticação por máquina modificando o
- arquivo $PGDATA/pg_hba.conf. Isso irá permitir conexões TCP/IP.
+ utilizando soquetes de domínio Unix ou conexões TCP/IP. Outras
+ máquinas não poderão conectar-se a menos que você modifique
+ listen_addresses no postgresql.conf, e habilite a autenticação por
+ máquina modificando o arquivo $PGDATA/pg_hba.conf.
3.6) Como eu ajusto o servidor de banco de dados para obter uma performance
melhor?
Em versões onde o formato em disco não muda, o script pg_upgrade pode
ser utilizado para atualizar sem precisar de um dump/restore. As notas
da versão mencionam se pg_upgrade está disponível para a versão.
+
+ 3.11) Que tipo de hardware eu devo usar?
+
+ Por causa do hardware de PC ser em sua maioria compatível, pessoas
+ tendem a acreditar que todos os hardwares de PC são de mesma
+ qualidade. Não é verdade. ECC RAM, SCSI e placas mãe de qualidade são
+ mais confiáveis e têm uma melhor performance do que hardwares mais
+ baratos. O PostgreSQL executará em quase todo hardware, mas se a
+ confiabilidade e a performance forem importantes é prudente pesquisar
+ sobre as opções de hardware. Nossas listas de discussão podem ser
+ usadas para discutir opções de hardware e dilemas.
_________________________________________________________________
Perguntas Operacionais
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 6.4 MB:
- 36 bytes: cada cabeçalho de registro (aproximadamente)
+ 32 bytes: cada cabeçalho de registro (aproximadamente)
24 bytes: um campo int e um campo texto
+ 4 bytes: ponteiro na página para a tupla
-------------------------------------------
- 64 bytes por registro
+ 60 bytes por registro
O tamanho de uma página de dados no PostgreSQL é 8192 bytes (8 KB), então:
8192 bytes por página
- ------------------------ = 128 registros por página do banco de dados (ar
+ ------------------------ = 136 registros por página do banco de dados (ar
redondado para baixo)
- 64 bytes por registro
+ 60 bytes por registro
100000 registros de dados
- ---------------------------- = 782 páginas do banco de dados (arredondado
+ ---------------------------- = 735 páginas do banco de dados (arredondado
para cima)
128 registros por página
-782 páginas do banco de dados * 8192 bytes por página = 6,406,144 bytes (6.4
-MB)
+735 páginas do banco de dados * 8192 bytes por página = 6,021,120 bytes (6 MB
+)
Índices não requerem muito espaço, mas contém dados que foram
indexados, então eles podem ocupar algum espaço.
funcionais, que são descritos na seção 4.12.
* A localidade padrão C deve ser utilizada durante o initdb.
+ 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
+ coluna do índice. Isto é particularmente verdadeiro para índices de
+ coluna int2, int8 e numeric.
+
4.9) Como eu vejo como o otimizador de consulta está avaliando a minha
consulta?
alink="#0000ff">
<H1>Perguntas Frequentes (FAQ) sobre PostgreSQL</H1>
- <P>Última atualização: Sex Jun 4 00:09:16 EDT 2004</P>
+ <P>Última atualização: Ter Ago 31 23:28:02 EDT 2004</P>
<P>Mantenedor atual: Bruce Momjian (<A href=
"mailto:pgman@candle.pha.pa.us">pgman@candle.pha.pa.us</A>)<BR>
<A href="#3.8">3.8</A>) Por que eu recebo <I>"Sorry, too many clients"</I> quando eu tento conectar?<BR>
<A href="#3.9">3.9</A>) O que está no diretório <I>pgsql_tmp</I>?<BR>
<A href="#3.10">3.10</A>) O que eu preciso fazer para exportar e importar durante a atualização de versões do PostgreSQL?<BR>
+ <A href="#3.11">3.11</A>) Que tipo de hardware eu devo usar?<BR>
<H2 align="center">Perguntas Operacionais</H2>
<H4><A name="1.4">1.4</A>) Quais portabilidades não-Unix estão disponíveis?</H4>
- <P><STRONG>Cliente</STRONG></P>
-
- <P>É possível compilar a biblioteca <I>libpq</I>, o psql e outras interfaces e aplicações clientes para executar em plataformas MS Windows. Neste caso, o cliente está sendo executado no MS Windows e comunica via TCP/IP com um servidor executando em uma das plataformas Unix suportadas. O arquivo <I>win32.mak</I> está presente na distribuição para que seja possível compilar a biblioteca <I>libpq</I> e o <I>psql</I> para Win32. O PostgreSQL também se comunica com clientes <SMALL>ODBC</SMALL>.</P>
-
- <P><STRONG>Servidor</STRONG></P>
-
- <P>O Servidor de banco de dados pode ser executado em Windows NT e Win2k utilizando o Cygwin, uma biblioteca de portabilidade Unix/NT da Cygnus. Veja <I>pgsql/doc/FAQ_MSWIN</I> na distribuição ou a FAQ do MS Windows em <A href="http://www.PostgreSQL.org/docs/faqs/text/FAQ_MSWIN">http://www.PostgreSQL.org/docs/faqs/text/FAQ_MSWIN</A>.</P>
-
- <P>Um porte nativo para MS Win NT/2000/XP está sendo desenvolvido. Para maiores detalhes sobre o status do PostgreSQL no Windows veja <A href="http://techdocs.postgresql.org/guides/Windows">http://techdocs.postgresql.org/guides/Windows</A> e <A href="http://momjian.postgresql.org/main/writings/pgsql/win32.html">http://momjian.postgresql.org/main/writings/pgsql/win32.html</A>.</P>
+ <P>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 <a href=
+ "http://pgfoundry.org/projects/pginstaller">
+ http://pgfoundry.org/projects/pginstaller</a>.
<P>Há também um porte para Novell Netware 6 em
<A href="http://forge.novell.com">http://forge.novell.com</A>.</P>
<H4><A name="1.7">1.7</A>) Qual é a última versão?</H4>
- <P>A última versão do PostgreSQL é a versão 7.4.2.</P>
+ <P>A última versão do PostgreSQL é a versão 7.4.5.</P>
<P>Nós planejamos lançar versões novas a cada seis ou oito meses.</P>
<H4><A name="3.5">3.5</A>) Como eu controlo conexões de outras máquinas?</H4>
- <P>Por padrão, o PostgreSQL só permite conexões da máquina local utilizando soquetes de domínio Unix. Outras máquinas não poderão conectar-se a menos que você habilite tcpip_sockets no postgresql.conf, <B>e</B> habilite a autenticação por máquina modificando o arquivo <I>$PGDATA/pg_hba.conf</I>. Isso irá permitir conexões TCP/IP.</P>
+ <P>Por padrão, o PostgreSQL só permite conexões da máquina local utilizando soquetes de domínio Unix ou conexões TCP/IP. Outras máquinas não poderão conectar-se a menos que você modifique listen_addresses no postgresql.conf, <B>e</B> habilite a autenticação por máquina modificando o arquivo <I>$PGDATA/pg_hba.conf</I>.</P>
<H4><A name="3.6">3.6</A>) Como eu ajusto o servidor de banco de dados para obter uma performance melhor?</H4>
<P>Em versões onde o formato em disco não muda, o script <I>pg_upgrade</I> pode ser utilizado para atualizar sem precisar de um dump/restore. As notas da versão mencionam se <I>pg_upgrade</I> está disponível para a versão.</P>
+ <H4><A name="3.11">3.11</A>) Que tipo de hardware eu devo usar?</H4>
+
+ <P>Por causa do hardware de PC ser em sua maioria compatível, pessoas tendem a acreditar que todos os hardwares de PC são de mesma qualidade. Não é verdade. ECC RAM, SCSI e placas mãe de qualidade são mais confiáveis e têm uma melhor performance do que hardwares mais baratos. O PostgreSQL executará em quase todo hardware, mas se a confiabilidade e a performance forem importantes é prudente pesquisar sobre as opções de hardware. Nossas listas de discussão podem ser usadas para discutir opções de hardware e dilemas.</P>
+
<HR>
<H2 align="center">Perguntas Operacionais</H2>
<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 6.4 MB:</P>
<PRE>
- 36 bytes: cada cabeçalho de registro (aproximadamente)
+ 32 bytes: cada cabeçalho de registro (aproximadamente)
24 bytes: um campo int e um campo texto
+ 4 bytes: ponteiro na página para a tupla
-------------------------------------------
- 64 bytes por registro
+ 60 bytes por registro
O tamanho de uma página de dados no PostgreSQL é 8192 bytes (8 KB), então:
8192 bytes por página
- ------------------------ = 128 registros por página do banco de dados (arredondado para baixo)
- 64 bytes por registro
+ ------------------------ = 136 registros por página do banco de dados (arredondado para baixo)
+ 60 bytes por registro
100000 registros de dados
- ---------------------------- = 782 páginas do banco de dados (arredondado para cima)
+ ---------------------------- = 735 páginas do banco de dados (arredondado para cima)
128 registros por página
-782 páginas do banco de dados * 8192 bytes por página = 6,406,144 bytes (6.4 MB)
+735 páginas do banco de dados * 8192 bytes por página = 6,021,120 bytes (6 MB)
</PRE>
<P>Índices não requerem muito espaço, mas contém dados que foram indexados, então eles podem ocupar algum espaço.</P>
</UL>
<P>
+ <P>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 coluna do índice. Isto é particularmente verdadeiro para índices de coluna int2, int8 e numeric.</P>
+
<H4><A name="4.9">4.9</A>) Como eu vejo como o otimizador de consulta está avaliando a minha consulta?</H4>
<P>Veja o comando <SMALL>EXPLAIN</SMALL> no manual.</P>