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