mirror of
https://github.com/postgres/postgres.git
synced 2025-06-23 14:01:44 +03:00
Remove translated FAQs
The English FAQ has been moved to the wiki, so the translated versions should have been removed at that point as well. The FAQ_MINGW.html should have been removed when the platform FAQs were integrated into the documentation (or earlier). applied to both 8.4 and 8.5
This commit is contained in:
@ -1,922 +0,0 @@
|
||||
|
||||
Perguntas Frequentes (FAQ) sobre PostgreSQL
|
||||
|
||||
<20>ltima atualiza<7A><61>o: Sex Nov 16 10:53:50 EST 2007
|
||||
|
||||
Mantenedor atual: Bruce Momjian (bruce@momjian.us)
|
||||
|
||||
Traduzido por: Euler Taveira de Oliveira (euler@timbira.com)
|
||||
|
||||
A vers<72>o mais recente desse documento pode ser vista em
|
||||
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<65>ficas s<>o respondidas em
|
||||
http://www.postgresql.org/docs/faq/.
|
||||
_________________________________________________________________
|
||||
|
||||
Perguntas Gerais
|
||||
|
||||
1.1) O que <20> PostgreSQL? Como ele <20> pronunciado? O que <20> Postgres?
|
||||
1.2) Quem controla o PostgreSQL?
|
||||
1.3) Qual <20> a licen<65>a do PostgreSQL?
|
||||
1.4) Quais plataformas o PostgreSQL pode ser executado?
|
||||
1.5) Onde eu posso conseguir o PostgreSQL?
|
||||
1.6) Qual <20> a <20>ltima vers<72>o?
|
||||
1.7) Onde eu posso conseguir suporte?
|
||||
1.8) Como eu posso submeter um relato de um bug?
|
||||
1.9) Como eu posso saber quais s<>o os bugs conhecidos ou
|
||||
caracter<65>sticas ausentes?
|
||||
1.10) Que documenta<74><61>o est<73> dispon<6F>vel?
|
||||
1.11) Como eu posso aprender SQL?
|
||||
1.12) Como posso submeter uma corre<72><65>o (patch) ou me juntar a equipe
|
||||
de desenvolvimento?
|
||||
1.13) Como <20> o PostgreSQL comparado a outros SGBDs?
|
||||
1.14) O PostgreSQL gerenciar<61> as mudan<61>as de hor<6F>rio devido ao hor<6F>rio
|
||||
de ver<65>o em v<>rios pa<70>ses?
|
||||
|
||||
Perguntas sobre Clientes
|
||||
|
||||
2.1) Quais interfaces est<73>o dispon<6F>veis para PostgreSQL?
|
||||
2.2) Quais ferramentas est<73>o dispon<6F>veis para utilizar o PostgreSQL
|
||||
com p<>ginas Web?
|
||||
2.3) O PostgreSQL tem interfaces gr<67>ficas para interagir com usu<73>rio?
|
||||
|
||||
Perguntas Administrativas
|
||||
|
||||
3.1) Como eu instalo o PostgreSQL em um local diferente de
|
||||
/usr/local/pgsql?
|
||||
3.2) Como eu controlo conex<65>es de outras m<>quinas?
|
||||
3.3) Como eu ajusto o servidor de banco de dados para obter uma
|
||||
performance melhor?
|
||||
3.4) Quais caracter<65>sticas de depura<72><61>o est<73>o dispon<6F>veis?
|
||||
3.5) Por que eu recebo "Sorry, too many clients" quando eu tento
|
||||
conectar?
|
||||
3.6) Qual <20> o processo de atualiza<7A><61>o do PostgreSQL?
|
||||
3.7) Que tipo de hardware eu devo usar?
|
||||
|
||||
Perguntas Operacionais
|
||||
|
||||
4.1) Como eu fa<66>o um SELECT somente dos primeiros registros de uma
|
||||
consulta? Um registro rand<6E>mico?
|
||||
4.2) Como eu descubro quais tabelas, <20>ndices, bancos de dados e
|
||||
usu<73>rios est<73>o definidos? Como eu vejo as consultas utilizadas pelo
|
||||
psql para mostr<74>-los?
|
||||
4.3) Como voc<6F> muda o tipo de dado de uma coluna?
|
||||
4.4) Qual <20> o tamanho m<>ximo de um registro, uma tabela e um banco de
|
||||
dados?
|
||||
4.5) Quanto espa<70>o em disco <20> necess<73>rio para armazenar dados de um
|
||||
arquivo texto?
|
||||
4.6) Por que minhas consultas est<73>o lentas? Por que elas n<>o est<73>o
|
||||
utilizando meus <20>ndices?
|
||||
4.7) Como eu vejo como o otimizador de consultas est<73> avaliando minha
|
||||
consulta?
|
||||
4.8) Como eu fa<66>o buscas com express<73>es regulares e buscas com
|
||||
express<73>es regulares sem diferenciar mau<61>sculas de min<69>sculas? Como eu
|
||||
utilizo um <20>ndice para buscas sem distinguir mai<61>sculas de min<69>sculas?
|
||||
4.9) Em uma consulta, como eu detecto se um campo <20> NULL? Como eu
|
||||
posso concatenar poss<73>veis NULLs? Como eu posso ordenar por um campo
|
||||
que <20> NULL ou n<>o?
|
||||
4.10) Qual <20> a diferen<65>a entre os v<>rios tipos de dado de caracteres?
|
||||
4.11.1) Como eu crio um campo serial/auto incremento?
|
||||
4.11.2) Como eu consigo o valor de um campo SERIAL?
|
||||
4.11.3) currval() n<>o lida com condi<64><69>o de corrida com outros
|
||||
usu<73>rios?
|
||||
4.11.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
|
||||
minha sequ<71>ncia/coluna SERIAL?
|
||||
4.12) O que <20> um OID? O que <20> um CTID?
|
||||
4.13) Por que eu recebo o erro "ERROR: Memory exhausted in
|
||||
AllocSetAlloc()"?
|
||||
4.14) Como eu informo qual vers<72>o do PostgreSQL eu estou utilizando?
|
||||
4.15) Como eu crio uma coluna que conter<65> por padr<64>o a hora atual?
|
||||
4.16) Como eu fa<66>o uma jun<75><6E>o externa (outer join)?
|
||||
4.17) Como eu fa<66>o consultas utilizando m<>ltiplos bancos de dados?
|
||||
4.18) Como eu retorno m<>ltiplos registros ou colunas de uma fun<75><6E>o?
|
||||
4.19) Por que eu obtenho erros "relation with OID ###### does not
|
||||
exist" ao acessar tabelas tempor<6F>rias em fun<75><6E>es PL/PgSQL?
|
||||
4.20) Quais solu<6C><75>es de replica<63><61>o est<73>o dispon<6F>veis?
|
||||
4.21) Por que os nomes de minhas tabelas e colunas n<>o s<>o
|
||||
reconhecidos em minha consulta? Por que as mai<61>sculas n<>o s<>o
|
||||
preservadas?
|
||||
_________________________________________________________________
|
||||
|
||||
Perguntas Gerais
|
||||
|
||||
1.1) O que <20> PostgreSQL? Como ele <20> pronunciado? O que <20> Postgres?
|
||||
|
||||
PostgreSQL <20> pronunciado Post-Gres-Q-L. (Para os curiosos que querem
|
||||
saber como se diz "PostgreSQL", um arquivo de <20>udio est<73> dispon<6F>vel).
|
||||
|
||||
O PostgreSQL <20> um sistema de banco de dados objeto-relacional que tem
|
||||
as caracter<65>sticas de sistemas de bancos de dados comerciais
|
||||
tradicionais com melhoramentos encontrados nos sistemas SGBDs de
|
||||
pr<70>xima gera<72><61>o. PostgreSQL <20> livre e o c<>digo-fonte completo est<73>
|
||||
dispon<6F>vel.
|
||||
|
||||
O desenvolvimento do PostgreSQL <20> feito por um grupo de
|
||||
desenvolvedores volunt<6E>rios (na sua maioria) espalhados pelo mundo e
|
||||
que se comunicam via Internet. <20> um projeto da comunidade e n<>o <20>
|
||||
controlado por nenhuma empresa. Para se envolver, veja a FAQ do
|
||||
desenvolvedor em http://www.postgresql.org/docs/faqs.FAQ_DEV.html
|
||||
|
||||
Postgres <20> um apelido para o PostgreSQL amplamente utilizado. Era o
|
||||
nome original do projeto em Berkeley e dentre os outros apelidos <20> o
|
||||
preferido. Se voc<6F> acha 'PostgreSQL' dif<69>cil de pronunciar, diga
|
||||
apenas 'Postgres'.
|
||||
|
||||
1.2) Quem controla o PostgreSQL?
|
||||
|
||||
Se voc<6F> est<73> procurando por um mantenedor, comit<69> central ou empresa
|
||||
controladora do PostgreSQL, desista --- n<>o h<> um(a). N<>s temos um
|
||||
comit<69> core e committers CVS, mas estes grupos s<>o mais para quest<73>es
|
||||
administrativas do que controle. O projeto <20> direcionado pela
|
||||
comunidade de desenvolvedores e usu<73>rios, que qualquer um pode se
|
||||
juntar. Tudo o que voc<6F> precisa <20> se inscrever nas listas de discuss<73>o
|
||||
e participar das discuss<73>es. Veja a FAQ do desenvolvedor para obter
|
||||
informa<6D><61>es como se envolver com o desenvolvimento do PostgreSQL.
|
||||
|
||||
1.3) Qual <20> a licen<65>a do PostgreSQL?
|
||||
|
||||
O PostgreSQL <20> distribu<62>do sob a licen<65>a BSD cl<63>ssica. Basicamente,
|
||||
ela permite que usu<73>rios fa<66>am qualquer coisa com o c<>digo, incluindo
|
||||
revender os bin<69>rios sem o c<>digo-fonte. A <20>nica restri<72><69>o <20> que voc<6F>
|
||||
n<>o nos responsabilize legalmente por problemas com o programa de
|
||||
computador. H<> tamb<6D>m a exig<69>ncia de que esta licen<65>a apare<72>a em todas
|
||||
as c<>pias do programa de computador. Aqui est<73> a licen<65>a BSD que
|
||||
usamos atualmente:
|
||||
|
||||
PostgreSQL est<73> sujeito a seguinte licen<65>a:
|
||||
|
||||
PostgreSQL Data Base Management System
|
||||
|
||||
Portions Copyright (c) 1996-2009, PostgreSQL Global Development Group
|
||||
Portions Copyright (c) 1994-1996 Regents of the University of
|
||||
California
|
||||
|
||||
Permission to use, copy, modify, and distribute this software and its
|
||||
documentation for any purpose, without fee, and without a written
|
||||
agreement is hereby granted, provided that the above copyright notice
|
||||
and this paragraph and the following two paragraphs appear in all
|
||||
copies.
|
||||
|
||||
IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY
|
||||
FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES,
|
||||
INCLUDING LOST PROFITS, ARISING OUT OF THE USE OF THIS SOFTWARE AND
|
||||
ITS DOCUMENTATION, EVEN IF THE UNIVERSITY OF CALIFORNIA HAS BEEN
|
||||
ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES,
|
||||
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE
|
||||
PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE UNIVERSITY OF
|
||||
CALIFORNIA HAS NO OBLIGATIONS TO PROVIDE MAINTENANCE, SUPPORT,
|
||||
UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
|
||||
|
||||
1.4) Quais plataformas o PostgreSQL pode ser executado?
|
||||
|
||||
Em geral, qualquer plataforma moderna compat<61>vel com Unix deve ser
|
||||
capaz de executar o PostgreSQL. As plataformas que foram testadas
|
||||
antes do lan<61>amento de uma vers<72>o s<>o listadas nas instru<72><75>es de
|
||||
instala<6C><61>o.
|
||||
|
||||
O PostgreSQL tamb<6D>m executa nativamente nos sistemas operacionais
|
||||
Microsoft Windows baseados no NT tais como Win200 SP4, WinXP e
|
||||
Win2003. Um instalador pr<70>-empacotado est<73> dispon<6F>vel em
|
||||
http://pgfoundry.org/projects/pginstaller. Vers<72>es do Windows baseadas
|
||||
no MS-DOS (Win95, Win98, WinMe) podem executar o PostgreSQL utilizando
|
||||
o Cygwin.
|
||||
|
||||
H<> tamb<6D>m uma vers<72>o para o 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?
|
||||
|
||||
Via navegador web, utilize http://www.postgresql.org/ftp/ e via ftp,
|
||||
utilize ftp://ftp.postgresql.org/pub/.
|
||||
|
||||
1.6) Qual <20> a <20>ltima vers<72>o?
|
||||
|
||||
A <20>ltima vers<72>o do PostgreSQL <20> a vers<72>o 8.2.5.
|
||||
|
||||
N<>s planejamos lan<61>ar vers<72>es novas a cada ano com vers<72>es corretivas
|
||||
em alguns meses.
|
||||
|
||||
1.7) Onde eu posso conseguir suporte?
|
||||
|
||||
A comunidade do PostgreSQL fornece assist<73>ncia a muitos de seus
|
||||
usu<73>rios via e-mail. O principal s<>tio web para inscri<72><69>o nas listas
|
||||
de e-mail <20> http://www.postgresql.org/community/lists/. As listas
|
||||
general e bugs s<>o um bom lugar para in<69>cio.
|
||||
|
||||
O principal canal de IRC <20> o #postgresql na Freenode
|
||||
(irc.freenode.net). Para se conectar voc<6F> pode utilizar o comando Unix
|
||||
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
|
||||
http://www.postgresql.org/support/professional_support.
|
||||
|
||||
1.8) Como eu informo a exist<73>ncia de um bug?
|
||||
|
||||
Visite o formul<75>rio que reporta bugs do PostgreSQL em
|
||||
http://www.postgresql.org/support/submitbug.
|
||||
|
||||
Verifique tamb<6D>m o nosso ftp ftp://ftp.postgresql.org/pub para ver se
|
||||
h<> uma vers<72>o mais recente do PostgreSQL.
|
||||
|
||||
Bugs submetidos utilizando o formul<75>rio ou informado a qualquer lista
|
||||
de discuss<73>o do PostgreSQL tipicamente gera uma das seguintes
|
||||
respostas:
|
||||
* N<>o <20> um bug e o porqu<71>
|
||||
* <20> um bug conhecido e j<> est<73> na lista de AFAZERES
|
||||
* O bug foi corrigido na vers<72>o atual
|
||||
* O bug foi corrigido mas n<>o foi empacotado em um vers<72>o oficial
|
||||
* Um pedido foi feito para obter informa<6D><61>es detalhadas:
|
||||
+ Sistema Operacional
|
||||
+ Vers<72>o do PostgreSQL
|
||||
+ Exemplo de teste que reproduz o bug
|
||||
+ Informa<6D><61>es sobre depura<72><61>o
|
||||
+ Sa<53>da reconstituidora de vest<73>gios (backtrace) do depurador
|
||||
* O bug <20> novo. O seguinte pode ocorrer:
|
||||
+ Uma corre<72><65>o <20> criada e ser<65> inclu<6C>da na pr<70>xima vers<72>o
|
||||
+ O bug n<>o pode ser corrigido imediatamente e <20> adicionado a
|
||||
lista de AFAZERES
|
||||
|
||||
1.9) Como eu posso saber quais s<>o os bugs conhecidos ou funcionalidades
|
||||
ausentes?
|
||||
|
||||
O PostgreSQL suporta um subconjunto extendido do SQL:2003. Veja nossa
|
||||
lista de AFAZERES que cont<6E>m bugs conhecidos, funcionalidades ausentes
|
||||
e planos futuros.
|
||||
|
||||
Uma solicita<74><61>o de funcionalidade geralmente resulta em uma das
|
||||
seguintes respostas:
|
||||
* A funcionalidade j<> est<73> na lista de AFAZERES
|
||||
* A funcionalidade n<>o <20> desej<65>vel porque:
|
||||
+ Ela duplica uma funcionalidade existente que j<> segue o
|
||||
padr<64>o SQL
|
||||
+ A funcionalidade aumentar<61> a complexidade do c<>digo mas
|
||||
adicionar<61> pouco benef<65>cio
|
||||
+ A funcionalidade ser<65> insegura ou n<>o-confi<66>vel
|
||||
* A nova funcionalidade <20> adicionada a lista de AFAZERES
|
||||
|
||||
O PostgreSQL n<>o utiliza sistema de acompanhamento de bugs porque n<>s
|
||||
achamos mais eficiente responder diretamente o e-mail e manter a lista
|
||||
de AFAZERES atualizada. Na pr<70>tica, bugs n<>o duram muito no programa;
|
||||
e bugs que afetam uma grande quantidade de usu<73>rios s<>o corrigidos
|
||||
rapidamente. O <20>nico lugar para encontrar todas as mudan<61>as, melhorias
|
||||
e corre<72><65>es em uma vers<72>o do PostgreSQL <20> ler as mensagens de log do
|
||||
CVS. At<41> mesmo as notas de lan<61>amento n<>o listam todas as mudan<61>as
|
||||
feitas no programa.
|
||||
|
||||
1.10) Que documenta<74><61>o est<73> dispon<6F>vel?
|
||||
|
||||
O PostgreSQL inclui vasta documenta<74><61>o, incluindo um manual extenso,
|
||||
p<>ginas de manuais (man pages) e alguns exemplos teste. Veja o
|
||||
diret<65>rio /doc. Voc<6F> tamb<6D>m pode pesquisar os manuais online em
|
||||
http://www.postgresql.org/docs.
|
||||
|
||||
H<> dois livros sobre PostgreSQL dispon<6F>veis online em
|
||||
http://www.postgresql.org/docs/books/awbook.html e
|
||||
http://www.commandprompt.com/ppbook/. H<> uma lista de livros sobre
|
||||
PostgreSQL dispon<6F>veis para compra. Um dos mais populares <20> o do Korry
|
||||
Douglas. Uma lista de an<61>lise sobre os livros pode ser encontrada em
|
||||
http://www.postgresql.org/docs/books/. H<> tamb<6D>m uma cole<6C><65>o de
|
||||
artigos t<>cnicos sbore PostgreSQL em
|
||||
http://www.postgresql.org/docs/techdocs/.
|
||||
|
||||
O programa cliente de linha de comando psql tem alguns comandos \d
|
||||
para mostrar informa<6D><61>es sobre tipos, operadores, fun<75><6E>es, agrega<67><61>es,
|
||||
etc. - utilize \? para mostrar os comandos dispon<6F>veis.
|
||||
|
||||
Nosso s<>tio web cont<6E>m ainda mais documenta<74><61>o.
|
||||
|
||||
1.11) Como eu posso aprender SQL?
|
||||
|
||||
Primeiro, considere os livros espec<65>ficos sobre PostgreSQL mencionados
|
||||
acima. Muitos de nossos usu<73>rios gostam do The Practical SQL Handbook,
|
||||
Bowman, Judith S., et al., Addison-Wesley. Outros do The Complete
|
||||
Reference SQL, Groff et al., McGraw-Hill.
|
||||
|
||||
H<> tamb<6D>m bons tutoriais dispon<6F>veis online:
|
||||
* http://www.intermedia.net/support/sql/sqltut.shtm
|
||||
* http://sqlcourse.com
|
||||
* http://www.w3schools.com/sql/default.asp
|
||||
* http://mysite.verizon.net/Graeme_Birchall/id1.html
|
||||
|
||||
1.12) Como posso submeter uma corre<72><65>o (patch) ou me juntar a equipe de
|
||||
desenvolvimento?
|
||||
|
||||
Veja a FAQ do Desenvolvedor.
|
||||
|
||||
1.13) Como <20> o PostgreSQL comparado a outros SGBDs?
|
||||
|
||||
H<> v<>rias maneiras de se medir um software: funcionalidades,
|
||||
performance, confiabilidade, suporte e pre<72>o.
|
||||
|
||||
Funcionalidades
|
||||
PostgreSQL tem muitas caracter<65>sticas presentes em muitos SGBDs
|
||||
comerciais como transa<73><61>es, subconsultas, gatilhos, vis<69>es,
|
||||
integridade referencial de chave estrangeira e bloqueio (lock)
|
||||
sofisticado. N<>s temos algumas funcionalidades que eles n<>o
|
||||
tem, como tipos definidos pelo usu<73>rio, heran<61>a, regras e
|
||||
controle de concorr<72>ncia de m<>ltiplas vers<72>es para reduzir
|
||||
bloqueios (locks).
|
||||
|
||||
Performance
|
||||
A performance do PostgreSQL <20> compar<61>vel a outros bancos de
|
||||
dados comerciais e de c<>digo livre. Ele <20> mais r<>pido em
|
||||
algumas coisas, mais lento em outras. Nossa performance <20>
|
||||
geralmente +/- 10% comparada a de outros bancos de dados.
|
||||
|
||||
Confiabilidade
|
||||
N<>s sabemos que um SGBD deve ser confi<66>vel ou ele <20> in<69>til. N<>s
|
||||
empenhamos em lan<61>ar vers<72>es bem testadas, de c<>digo est<73>vel e
|
||||
que tenha o m<>nimo de bugs. Cada vers<72>o tem no m<>nimo um m<>s de
|
||||
teste em vers<72>o beta, e nosso hist<73>rico de vers<72>es mostra que
|
||||
n<>s podemos fornecer vers<72>es est<73>veis e s<>lidas que est<73>o
|
||||
prontas para uso em produ<64><75>o. N<>s acreditamos que somos
|
||||
comparados a nosso favor com outros sistemas de bancos de dados
|
||||
nessa <20>rea.
|
||||
|
||||
Suporte
|
||||
Nossas listas de discuss<73>o fornecem contato com um grupo de
|
||||
desenvolvedores e usu<73>rios para ajudar a resolver muitos
|
||||
problemas encontrados. Enquanto n<>s n<>o podemos garantir o
|
||||
conserto, SGBDs comerciais nem sempre fornecem tamb<6D>m. Com
|
||||
acesso direto aos desenvolvedores, a comunidade de usu<73>rios,
|
||||
manuais e o c<>digo fonte faz com que o suporte do PostgreSQL
|
||||
seja superior ao de outros SGBDs. H<> suporte comercial por
|
||||
incidente dispon<6F>veis para aqueles que precisam de um. (Veja
|
||||
se<73><65>o 1.7 da FAQ).
|
||||
|
||||
Pre<72>o
|
||||
N<>s somos livres para uso dele tanto comercial quanto n<>o
|
||||
comercial. Voc<6F> pode adicionar nosso c<>digo ao seu produto sem
|
||||
limita<74><61>es, exceto aquelas descritas na nossa licen<65>a BSD
|
||||
mencionada acima.
|
||||
|
||||
1.14) O PostgreSQL gerenciar<61> mudan<61>as no hor<6F>rio devido ao hor<6F>rio de ver<65>o
|
||||
em v<>rios pa<70>ses?
|
||||
|
||||
Mudan<61>as no hor<6F>rio de ver<65>o dos USA foram inclu<6C>das nas vers<72>es 8.0
|
||||
.[4+] do PostgreSQL e em todas as vers<72>es grandes, i.e. 8.1. Mudan<61>as
|
||||
no Canad<61> e Austr<74>lia Oeste foram inclu<6C>das na 8.0.[10+], 8.1.[6+] e
|
||||
em todas as vers<72>es grandes subsequentes. Vers<72>es do PostgreSQL
|
||||
anteriores a 8.0 utilizam o banco de dados de zona hor<6F>ria do sistema
|
||||
operacional para informa<6D><61>es sobre hor<6F>rio de ver<65>o.
|
||||
_________________________________________________________________
|
||||
|
||||
Perguntas sobre Clientes
|
||||
|
||||
2.1) Quais interfaces est<73>o dispon<6F>veis para PostgreSQL?
|
||||
|
||||
A instala<6C><61>o do PostgreSQL inclui somente as interfaces C e C
|
||||
embutida. Todas as outras interfaces s<>o projetos independentes que
|
||||
podem ser obtidos separadamente; sendo separados permitem que eles
|
||||
tenham suas pr<70>prias datas de lan<61>amento e time de desenvolvedores.
|
||||
|
||||
Algumas linguagens de programa<6D><61>o como PHP incluem uma interface para
|
||||
PostgreSQL. Interfaces para linguagens como Perl, TCL, Python e muitas
|
||||
outras est<73>o dispon<6F>veis em http://www.pgfoundry.org.
|
||||
|
||||
2.2) Quais ferramentas est<73>o dispon<6F>veis para utilizar o PostgreSQL com
|
||||
p<>ginas Web?
|
||||
|
||||
Uma boa introdu<64><75>o para p<>ginas web que utilizam bancos de dados pode
|
||||
ser vista em: http://www.webreview.com
|
||||
|
||||
Para integra<72><61>o na Web, PHP (http://www.php.net) <20> uma excelente
|
||||
interface.
|
||||
|
||||
Para casos complexos, muitos usam a Interface Perl e DBD::Pg com
|
||||
CGI.pm ou mod_perl.
|
||||
|
||||
2.3) O PostgreSQL tem interfaces gr<67>ficas para iteragir com o usu<73>rio?
|
||||
|
||||
H<> um vasto n<>mero de Ferramentas Gr<47>ficas (GUI), que est<73>o
|
||||
dispon<6F>veis para o PostgreSQL, comerciais e de desenvolvedores de
|
||||
c<>digo aberto. Uma lista detalhada pode ser encontrada em Documenta<74><61>o
|
||||
da Comunidade PostgreSQL
|
||||
_________________________________________________________________
|
||||
|
||||
Perguntas Administrativas
|
||||
|
||||
3.1) Como eu instalo o PostgreSQL em um local diferente de /usr/local/pgsql?
|
||||
|
||||
Especifique a op<6F><70>o --prefix quando executar o configure.
|
||||
|
||||
3.2) Como eu controlo conex<65>es de outras m<>quinas?
|
||||
|
||||
Por padr<64>o, o PostgreSQL s<> permite conex<65>es da m<>quina local
|
||||
utilizando soquetes de dom<6F>nio Unix ou conex<65>es TCP/IP. Outras
|
||||
m<>quinas n<>o poder<65>o conectar-se a menos que voc<6F> modifique
|
||||
listen_addresses no postgresql.conf, habilite a autentica<63><61>o por
|
||||
m<>quina modificando o arquivo $PGDATA/pg_hba.conf e reinicie o
|
||||
servidor PostgreSQL.
|
||||
|
||||
3.3) Como eu ajusto o servidor de banco de dados para obter uma performance
|
||||
melhor?
|
||||
|
||||
H<> tr<74>s grandes <20>reas para melhorar a performance em potencial:
|
||||
|
||||
Mudan<61>a de Consultas
|
||||
Isto involve modificar consultas para obter melhor performance:
|
||||
|
||||
+ Cria<69><61>o de <20>ndices, incluir express<73>es e <20>ndices parciais
|
||||
+ Utiliza<7A><61>o o COPY ao inv<6E>s de m<>ltiplos comandos INSERTs
|
||||
+ Agrupamento de m<>ltiplos comandos em uma <20>nica transa<73><61>o para
|
||||
diminuir a despesa com efetiva<76><61>es (commit)
|
||||
+ Utiliza<7A><61>o do CLUSTER quando recuperar v<>rios registros de um
|
||||
<20>ndice
|
||||
+ Utiliza<7A><61>o do LIMIT para retornar um subconjunto da sa<73>da da
|
||||
consulta
|
||||
+ Utiliza<7A><61>o de Consultas preparadas
|
||||
+ Utiliza<7A><61>o de ANALYZE para manter as estat<61>sticas do
|
||||
otimizador corretas
|
||||
+ Utiliza<7A><61>o regular do VACUUM ou pg_autovacuum
|
||||
+ Remo<6D><6F>o de <20>ndices durante grande mudan<61>a de dados
|
||||
|
||||
Configura<72><61>o do Servidor
|
||||
Um grande n<>mero de configura<72><61>es que afetam a performance.
|
||||
Para obter detalhes adicionais, veja Administration
|
||||
Guide/Server Run-time Environment/Run-time Configuration para
|
||||
listagem completa, e para coment<6E>rios veja
|
||||
http://www.varlena.com/varlena/GeneralBits/Tidbits/annotated_co
|
||||
nf_e.html e
|
||||
http://www.varlena.com/varlena/GeneralBits/Tidbits/perf.html.
|
||||
|
||||
Sele<6C><65>o do Hardware
|
||||
O efeito do hardware na performance <20> detalhado em
|
||||
http://www.powerpostgresql.com/PerfList/ e
|
||||
http://momjian.us/main/writings/pgsql/hw_performance/index.html
|
||||
.
|
||||
|
||||
3.4) Quais caracter<65>sticas de depura<72><61>o est<73>o dispon<6F>veis?
|
||||
|
||||
H<> muitas vari<72>veis de configura<72><61>o do servidor log_* que habilitam a
|
||||
exibi<62><69>o de consultas e estat<61>sticas que podem ser muito <20>teis para
|
||||
depura<72><61>o e medidas de performance.
|
||||
|
||||
3.5) Por que eu recebo "Sorry, too many clients" quando eu tento conectar?
|
||||
|
||||
Voc<6F> atingiu o limite padr<64>o de 100 sess<73>es. Voc<6F> precisa aumentar o
|
||||
limite do servidor PostgreSQL, que diz quantos processos servidor
|
||||
concorrentes ele pode iniciar, alterando o valor max_connections no
|
||||
postgresql.conf e reiniciando o postmaster.
|
||||
|
||||
3.6) Qual <20> o processo de atualiza<7A><61>o do PostgreSQL?
|
||||
|
||||
Veja http://www.postgresql.org/support/versioning para discuss<73>o geral
|
||||
sobre atualiza<7A><61>es e
|
||||
http://www.postgresql.org/docs/current/static/install-upgrading.html
|
||||
para instru<72><75>es espec<65>ficas.
|
||||
|
||||
3.7) Que tipo de hardware eu devo usar?
|
||||
|
||||
Por causa do hardware de PC ser em sua maioria compat<61>vel, pessoas
|
||||
tendem a acreditar que todos os hardwares de PC s<>o de mesma
|
||||
qualidade. N<>o <20> verdade. ECC RAM, SCSI e placas m<>e de qualidade s<>o
|
||||
mais confi<66>veis e t<>m uma melhor performance do que hardwares mais
|
||||
baratos. O PostgreSQL executar<61> em quase todo hardware, mas se a
|
||||
confiabilidade e a performance forem importantes <20> prudente pesquisar
|
||||
sobre as op<6F><70>es de hardware. Nossas listas de discuss<73>o podem ser
|
||||
usadas para discutir op<6F><70>es de hardware e dilemas.
|
||||
_________________________________________________________________
|
||||
|
||||
Perguntas Operacionais
|
||||
|
||||
4.1) Como eu fa<66>o um SELECT somente dos primeiros registros de uma consulta?
|
||||
Um registro rand<6E>mico?
|
||||
|
||||
Para obter somente alguns registros, se voc<6F> sabe o n<>mero de
|
||||
registros necess<73>rios ao executar o SELECT utilize o LIMIT. Se um
|
||||
<20>ndice corresponde no ORDER BY <20> poss<73>vel que a consulta toda n<>o
|
||||
tenha que ser executada. Se voc<6F> n<>o sabe o n<>mero de registros ao
|
||||
executar o SELECT, utilize um cursor e o FETCH.
|
||||
|
||||
Para obter um registro rand<6E>mico, utilize:
|
||||
SELECT col
|
||||
FROM tab
|
||||
ORDER BY random()
|
||||
LIMIT 1;
|
||||
|
||||
4.2) Como eu descubro quais tabelas, <20>ndices, bancos de dados e usu<73>rios
|
||||
est<73>o definidos? Como eu vejo as consultas utilizadas pelo psql para
|
||||
mostr<74>-los?
|
||||
|
||||
Utilize o comando \dt para ver tabelas no psql. Para obter uma lista
|
||||
completa dos comandos no psql voc<6F> pode utilizar \?. Alternativamente,
|
||||
voc<6F> pode ler o c<>digo-fonte do psql no arquivo
|
||||
pgsql/src/bin/psql/describe.c, ele cont<6E>m os comandos SQL que geram a
|
||||
sa<73>da para os comandos de contrabarra do psql. Voc<6F> tamb<6D>m pode
|
||||
iniciar o psql com a op<6F><70>o -E para que as consultas utilizadas para
|
||||
executar os comandos que voc<6F> informou seja exibida. O PostgreSQL
|
||||
tamb<6D>m fornece uma inteface compat<61>vel com SQL do INFORMATION SCHEMA
|
||||
que voc<6F> pode consultar para obter informa<6D><61>o sobre o banco de dados.
|
||||
|
||||
H<> tamb<6D>m tabelas do sistema que come<6D>am com pg_ que os descrevem
|
||||
tamb<6D>m.
|
||||
|
||||
Utilizando o psql -l listar<61> todos os bancos de dados.
|
||||
|
||||
Veja tamb<6D>m o arquivo pgsql/src/tutorial/syscat.source. Ele ilustra
|
||||
muitos dos comandos SELECTs necess<73>rios para obter informa<6D><61>o das
|
||||
tabelas de sistema do banco de dados.
|
||||
|
||||
4.3) Como voc<6F> muda o tipo de dado de uma coluna?
|
||||
|
||||
Mudar o tipo de dado de uma coluna pode ser feito facilmente na vers<72>o
|
||||
8.0 ou superior com ALTER TABLE ALTER COLUMN TYPE.
|
||||
|
||||
Em vers<72>es anteriores, fa<66>a isso:
|
||||
BEGIN;
|
||||
ALTER TABLE tab ADD COLUMN col_nova novo_tipo_dado;
|
||||
UPDATE tab SET col_nova = CAST(col_antiga AS novo_tipo_dado);
|
||||
ALTER TABLE tab DROP COLUMN col_antiga;
|
||||
COMMIT;
|
||||
|
||||
Voc<6F> pode ent<6E>o querer fazer um VACUUM FULL tab para recuperar o
|
||||
espa<70>o em disco utilizado pelos registros expirados.
|
||||
|
||||
4.4) Qual <20> o tamanho m<>ximo de um registro, uma tabela e um banco de dados?
|
||||
|
||||
Estes s<>o os limites:
|
||||
|
||||
Tamanho m<>ximo de um banco de dados? ilimitado (existem bancos de
|
||||
dados de 32 TB)
|
||||
Tamanho m<>ximo de uma tabela? 32 TB
|
||||
Tamanho m<>ximo de um registro? 400 GB
|
||||
Tamanho m<>ximo de um campo? 1 GB
|
||||
N<>mero m<>ximo de registros em uma tabela? ilimitado
|
||||
N<>mero m<>ximo de colunas em uma tabela? 250-1600 dependendo dos tipos
|
||||
das colunas
|
||||
N<>mero m<>ximo de <20>ndices em uma tabela? ilimitado
|
||||
|
||||
<20> claro, que eles n<>o s<>o ilimitados, mas limitados ao espa<70>o em disco
|
||||
dispon<6F>vel e espa<70>o em mem<65>ria/swap. A Performance ser<65> penalizada
|
||||
quando estes valores se tornarem grandes.
|
||||
|
||||
O tamanho m<>ximo de uma tabela com 32 TB n<>o requer suporte a arquivos
|
||||
grandes do sistema operacional. Tabelas grandes s<>o armazenadas como
|
||||
m<>ltiplos arquivos de 1 GB ent<6E>o o limite do sistema de arquivos n<>o <20>
|
||||
importante.
|
||||
|
||||
O tamanho m<>ximo de uma tabela, o tamanho de um registro e o n<>mero
|
||||
m<>ximo de colunas podem ser quadruplicados aumentando-se o tamanho
|
||||
padr<64>o do bloco para 32k. O tamanho m<>ximo de uma tabela pode tamb<6D>m
|
||||
ser aumentado utilizando particionamento de tabela.
|
||||
|
||||
Uma limita<74><61>o <20> que <20>ndices n<>o podem ser criados em colunas maiores
|
||||
do que 2.000 caracteres. Felizmente, tais <20>ndices s<>o raramente
|
||||
necess<73>rios. Unicidade <20> melhor garantida por um <20>ndice de uma fun<75><6E>o
|
||||
de um hash MD5 de uma coluna longa, e indexa<78><61>o de texto longo permite
|
||||
a busca de palavras dentro da coluna.
|
||||
|
||||
4.5) Quanto espa<70>o em disco <20> necess<73>rio para armazenar dados de um arquivo
|
||||
texto?
|
||||
|
||||
Um banco de dados PostgreSQL ir<69> requerer at<61> cinco vezes a quantidade
|
||||
de espa<70>o requerida para armazenar dados em um arquivo texto.
|
||||
|
||||
Como um exemplo, considere um arquivo com 100.000 linhas contendo um
|
||||
inteiro e uma descri<72><69>o em cada linha. Suponha que o tamanho m<>dio da
|
||||
descri<72><69>o <20> de vinte bytes. O arquivo ter<65> 2,8 MB. O tamanho do
|
||||
arquivo do banco de dados PostgreSQL que cont<6E>m esses dados pode ser
|
||||
estimado em 5,2 MB:
|
||||
24 bytes: cada cabe<62>alho de registro (aproximadamente)
|
||||
24 bytes: um campo int e um campo texto
|
||||
+ 4 bytes: ponteiro na p<>gina para a tupla
|
||||
-------------------------------------------
|
||||
52 bytes por registro
|
||||
|
||||
O tamanho de uma p<>gina de dados no PostgreSQL <20> 8192 bytes (8 KB), ent<6E>o:
|
||||
|
||||
8192 bytes por p<>gina
|
||||
------------------------ = 158 registros por p<>gina do banco de dados (arredondado para baixo)
|
||||
52 bytes por registro
|
||||
|
||||
100000 registros de dados
|
||||
---------------------------- = 633 p<>ginas do banco de dados (arredondadopara cima)
|
||||
158 registros por p<>gina
|
||||
|
||||
633 p<>ginas do banco de dados * 8192 bytes por p<>gina = 5.185.536 bytes (5,2MB)
|
||||
|
||||
<20>ndices n<>o requerem muito espa<70>o, mas cont<6E>m dados que foram
|
||||
indexados, ent<6E>o eles podem ocupar algum espa<70>o.
|
||||
|
||||
NULLs s<>o armazenados como bitmaps, ent<6E>o eles utilizam muito pouco
|
||||
espa<70>o.
|
||||
|
||||
4.6) Por que minhas consultas est<73>o lentas? Por que elas n<>o est<73>o utilizando
|
||||
meus <20>ndices?
|
||||
|
||||
<20>ndices n<>o s<>o utilizados por toda consulta. <20>ndices s<>o utilizados
|
||||
somente se a tabela <20> maior do que um tamanho m<>nimo, e a consulta
|
||||
seleciona somente uma pequena porcentagem dos registros da tabela.
|
||||
Isto porque o acesso rand<6E>mico ao disco causado pela busca indexada
|
||||
pode ser mais lento do que uma leitura ao longo da tabela ou busca
|
||||
sequencial.
|
||||
|
||||
Para determinar se um <20>ndice deveria ser utilizado, o PostgreSQL deve
|
||||
ter estat<61>sticas sobre a tabela. Estas estat<61>sticas s<>o coletadas
|
||||
utilizando o VACUUM ANALYZE ou simplesmente o ANALYZE. Utilizando
|
||||
estat<61>sticas, o otimizador sbae quantos registros est<73>o na tabela, e
|
||||
pode melhor determinar se <20>ndices deveriam ser utilizados.
|
||||
Estat<61>sticas tamb<6D>m s<>o <20>teis para determinar a ordem de jun<75><6E>o <20>tima
|
||||
e m<>todos de jun<75><6E>o. Cole<6C><65>o de estat<61>sticas deveriam ser feitas
|
||||
periodicamente a medida que o conte<74>do da tabela muda.
|
||||
|
||||
<20>ndices n<>o s<>o normalmente utilizados para ORDER BY ou para fazer
|
||||
jun<75><6E>es. Uma busca sequencial seguido por uma ordena<6E><61>o expl<70>cita <20>
|
||||
geralmente mais r<>pida do que uma busca indexada em uma tabela grande.
|
||||
Contudo, LIMIT combinado com ORDER BY frequentemente utilizar<61> <20>ndice
|
||||
porque somente uma pequena por<6F><72>o da tabela ser<65> retornada.
|
||||
|
||||
Se voc<6F> acredita que o otimizador est<73> incorreto ao escolher uma busca
|
||||
sequencial, utilize SET enable_seqscan TO 'off' e execute a consulta
|
||||
novamente para ver se uma busca indexada <20> realmente mais r<>pida.
|
||||
|
||||
Ao utilizar operadores curinga tais como LIKE ou ~, <20>ndices podem ser
|
||||
utilizados somente em algumas condi<64><69>es:
|
||||
* O in<69>cio da cadeia de caracteres da busca deve ser iniciar com uma
|
||||
cadeia de caracteres, i.e.
|
||||
+ modelos LIKE n<>o devem iniciar com %.
|
||||
+ modelos ~ (express<73>es regulares) devem iniciar com ^.
|
||||
* A cadeia de caracteres utilizada na busca n<>o pode iniciar com a
|
||||
classe de caracteres e.g. [a-e].
|
||||
* Busca que n<>o diferenciam mai<61>sculas de min<69>sculas tais como ILIKE
|
||||
e ~* n<>o utilizam <20>ndices. Em vez disso, utilize <20>ndice de
|
||||
express<73>o, que <20> descrito na se<73><65>o 4.8.
|
||||
* O idioma padr<64>o C deve ser usando durante o initdb porque n<>o <20>
|
||||
poss<73>vel saber o pr<70>ximo caracter em idiomas que n<>o sejam o C.
|
||||
Voc<6F> pode criar um <20>ndice especial text_pattern_ops para tais
|
||||
casos que funcionam somente para indexa<78><61>o com LIKE. Tamb<6D>m <20>
|
||||
poss<73>vel utilizar indexa<78><61>o de busca textual para buscas por
|
||||
palavras.
|
||||
|
||||
Em vers<72>es anteriores a 8.0, <20>ndices frequentemente n<>o podem ser
|
||||
utilizados a menos que os tipos de dados correspondam aos tipos de
|
||||
coluna do <20>ndice. Isto era particularmente verdadeiro para <20>ndices de
|
||||
coluna int2, int8 e numeric.
|
||||
|
||||
4.7) Como eu vejo como o otimizador de consulta est<73> avaliando a minha
|
||||
consulta?
|
||||
|
||||
Veja o comando EXPLAIN no manual.
|
||||
|
||||
4.8) Como eu fa<66>o buscas com express<73>es regulares e buscas com express<73>es
|
||||
regulares sem diferenciar mai<61>sculas de min<69>sculas? Como eu utilizo um <20>ndice
|
||||
para buscas que n<>o diferenciam mai<61>sculas de min<69>sculas?
|
||||
|
||||
O operador ~ faz avalia<69><61>o de express<73>es regulares, e ~* faz avalia<69><61>o
|
||||
n<>o sens<6E>vel a mai<61>sculas de express<73>es regulares. A variante n<>o
|
||||
sens<6E>vel a mai<61>sculas do LIKE <20> chamada de ILIKE.
|
||||
|
||||
Compara<72><61>es de igualdade n<>o sens<6E>veis a mai<61>sculas s<>o normalmente
|
||||
expressadas como:
|
||||
SELECT *
|
||||
FROM tab
|
||||
WHERE lower(col) = 'abc';
|
||||
|
||||
Isso n<>o ir<69> utilizar o <20>ndice padr<64>o. Contudo, se voc<6F> criar um
|
||||
<20>ndice de express<73>o, ele ser<65> utilizado:
|
||||
CREATE INDEX tabindex ON tab (lower(col));
|
||||
|
||||
Se o <20>ndice acima <20> criado como UNIQUE, embora a coluna possa
|
||||
armazenar caracteres mai<61>sculos e min<69>sculos, ele n<>o pode ter valores
|
||||
id<69>nticos que diferem apenas em letras mai<61>sculas e min<69>sculas. Para
|
||||
for<6F>ar uma letra mai<61>scula ou min<69>scula a ser armazenada na coluna,
|
||||
utilize uma restri<72><69>o CHECK ou um gatilho.
|
||||
|
||||
4.9) Em uma consulta, como eu detecto se um campo <20> NULL? Como eu posso
|
||||
concatenar poss<73>veis NULLs? Como eu posso ordenar por um campo que <20> NULL ou
|
||||
n<>o?
|
||||
|
||||
Voc<6F> testa a coluna com IS NULL e IS NOT NULL, como a seguir:
|
||||
SELECT *
|
||||
FROM tab
|
||||
WHERE col IS NULL;
|
||||
|
||||
Para concatenar com poss<73>veis NULLs, utilize COALESCE(), assim:
|
||||
SELECT COALESCE(col1, '') || COALESCE(col2, '')
|
||||
FROM tab
|
||||
|
||||
Para ordenar pelo status NULL, utilize os modificadores IS NULL e IS
|
||||
NOT NULL na sua cl<63>usula ORDER BY. Coisas que s<>o verdadeiro ser<65>o
|
||||
ordenadas acima das coisas que s<>o falso, ent<6E>o a consulta a seguir
|
||||
ir<69> colocar entradas NULL no in<69>cio da lista de resultados:
|
||||
SELECT *
|
||||
FROM tab
|
||||
ORDER BY (col IS NOT NULL)
|
||||
|
||||
4.10) Qual <20> a diferen<65>a entre os v<>rios tipos de dado de caracteres?
|
||||
|
||||
Tipo Nome Interno Observa<76><61>o
|
||||
VARCHAR(n) varchar tamanho especifica o tamanho m<>ximo, sem
|
||||
preenchimento
|
||||
CHAR(n) bpchar preenchimento em branco para comprimento fixo
|
||||
espec<65>fico
|
||||
TEXT text nenhum limite superior espec<65>fico no comprimento
|
||||
BYTEA bytea vetor de bytes de comprimento vari<72>vel (seguro a byte
|
||||
nulo)
|
||||
"char" char um caracter
|
||||
|
||||
Voc<6F> ver<65> o nome interno quando examinar o cat<61>logo do sistema e em
|
||||
algumas mensagens de erro.
|
||||
|
||||
Os primeiros quatro tipos acima s<>o do tipo "varlena" (i.e., os
|
||||
primeiros quatro bytes no disco s<>o o comprimento seguido pelos
|
||||
dados). Consequentemente o espa<70>o atual utilizado <20> ligeiramente maior
|
||||
do que o tamanho declarado. Contudo, valores longos s<>o tamb<6D>m
|
||||
sujeitos a compress<73>o, ent<6E>o o espa<70>o em disco pode tamb<6D>m ser bem
|
||||
menor do que o esperado.
|
||||
VARCHAR(n) <20> melhor quando est<73> armazenando cadeias de caracteres de
|
||||
comprimento vari<72>vel e h<> um limite de tamanho desta cadeia. TEXT <20>
|
||||
para cadeias de caracteres de comprimento ilimitado, com o m<>ximo de
|
||||
um gigabyte.
|
||||
|
||||
CHAR(n) <20> para armazenar cadeias de caracteres que s<>o todas do mesmo
|
||||
tamanho. CHAR(n) preenche com espa<70>os em branco at<61> o tamanho
|
||||
especificado, enquanto o VARCHAR(n) armazena somente os caracteres
|
||||
fornecidos. BYTEA <20> para armazenar dados bin<69>rios, particularmente
|
||||
valores que incluem bytes NULL. Todos os tipos descritos aqui tem
|
||||
caracter<65>sticas de performance similares.
|
||||
|
||||
4.11.1) Como eu crio um campo serial/auto incremento?
|
||||
|
||||
PostgreSQL suporta o tipo de dados SERIAL. Ele cria automaticamente
|
||||
uma sequ<71>ncia. Por exemplo:
|
||||
CREATE TABLE pessoa (
|
||||
id SERIAL,
|
||||
nome TEXT
|
||||
);
|
||||
|
||||
<20> automaticamente traduzido em:
|
||||
CREATE SEQUENCE pessoa_id_seq;
|
||||
CREATE TABLE pessoa (
|
||||
id INT4 NOT NULL DEFAULT nextval('pessoa_id_seq'),
|
||||
nome TEXT
|
||||
);
|
||||
|
||||
Sequ<71>ncias automaticamente criadas s<>o nomeadas como
|
||||
<tabela>_<colunaserial>_seq, onde tabela e colunaserial s<>o os nomes
|
||||
da tabela e da coluna serial, respectivamente. Veja a p<>gina sobre
|
||||
create_sequence no manual para obter informa<6D><61>es adicionais sobre
|
||||
sequ<71>ncias.
|
||||
|
||||
4.11.2) Como eu consigo o valor de um campo SERIAL?
|
||||
|
||||
A maneira mais simples de obter o pr<70>ximo valor SERIAL de uma
|
||||
sequ<71>ncia <20> com RETURNING. Utilizando o exemplo da tabela em 4.11.1,
|
||||
ele ficaria assim:
|
||||
INSERT INTO pessoa (nome) VALUES ('Blaise Pascal') RETURNING id;
|
||||
|
||||
Voc<6F> tamb<6D>m pode chamar nextval() e utilizar o valor no INSERT ou
|
||||
chamar currval() ap<61>s o INSERT.
|
||||
|
||||
4.11.3) currval() n<>o lida com condi<64><69>o de corrida com outros usu<73>rios?
|
||||
|
||||
N<>o. currval() retorna o valor atual atribuido pela sua sess<73>o, e n<>o
|
||||
por todas as sess<73>es.
|
||||
|
||||
4.11.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 minha
|
||||
sequ<71>ncia/coluna SERIAL?
|
||||
|
||||
Para melhorar a concorr<72>ncia, valores da sequ<71>ncia s<>o atribu<62>dos a
|
||||
transa<73><61>es correntes e n<>o s<>o travados at<61> que a transa<73><61>o seja
|
||||
finalizada. Isso causa intervalos na numera<72><61>o por causa de transa<73><61>es
|
||||
abortadas.
|
||||
|
||||
4.12) O que <20> um OID? O que <20> um CTID?
|
||||
|
||||
Se uma tabela <20> criada com WITH OIDS, cada registro recebe um OID
|
||||
<20>nico. OIDs s<>o automaticamente atribu<62>dos como inteiros de 4 bytes
|
||||
que s<>o <20>nicos ao longo de toda instala<6C><61>o. Contudo, eles s<>o
|
||||
limitados em 4 bilh<6C>es e, ent<6E>o, os OIDs come<6D>am a ser duplicados. O
|
||||
PostgreSQL utiliza OIDs para ligar as tabelas do sistema.
|
||||
|
||||
Para numerar registros nas tabelas do usu<73>rios, <20> melhor utilizar
|
||||
SERIAL ao inv<6E>s de OIDs porque sequ<71>ncias SERIAL s<>o <20>nicas somente em
|
||||
uma tabela; e s<>o menos prop<6F>cias a atingir o limite. SERIAL8 est<73>
|
||||
dispon<6F>vel para armazenar valores de sequ<71>ncias com oito bytes.
|
||||
|
||||
CTIDs s<>o utilizados para identificar registros f<>sicos espec<65>ficos
|
||||
com valores de block e deslocamento. CTIDs mudam ap<61>s registros serem
|
||||
modificados ou recarregados. Eles s<>o utilizados por <20>ndices para
|
||||
apontar registros f<>sicos.
|
||||
|
||||
4.13) Por que eu recebo o erro "ERROR: Memory exhausted in AllocSetAlloc()"?
|
||||
|
||||
Voc<6F> provavelmente est<73> sem mem<65>ria virtual no seu sistema, ou o seu
|
||||
n<>cleo (kernel) tem um limite baixo para certos recursos. Tente isto
|
||||
antes de iniciar o servidor PostgreSQL:
|
||||
ulimit -d 262144
|
||||
limit datasize 256m
|
||||
|
||||
Dependendo da sua shell, somente um desses comando ter<65> sucesso, mas
|
||||
ele definir<69> o segmento de dados do seu processo com um limite maior e
|
||||
talvez permita que a consulta seja feita. Este comando <20> aplicado ao
|
||||
processo atual e todos os subprocessos criados depois do comando ser
|
||||
executado. Se voc<6F> tiver problemas com o cliente SQL porque o processo
|
||||
servidor retornou muitos dados, tente-o antes de iniciar o cliente.
|
||||
|
||||
4.14) Como eu informo qual vers<72>o do PostgreSQL eu estou utilizando?
|
||||
|
||||
No psql, digite SELECT version();
|
||||
|
||||
4.15) Como eu crio uma coluna que conter<65> por padr<64>o a hora atual?
|
||||
|
||||
Utilize CURRENT_TIMESTAMP:
|
||||
CREATE TABLE teste (x int, modtime timestamp DEFAULT CURRENT_TIMESTAMP);
|
||||
|
||||
4.16) Como eu fa<66>o uma jun<75><6E>o externa (outer join)?
|
||||
|
||||
PostgreSQL suporta jun<75><6E>es externas utilizando a sintaxe padr<64>o do
|
||||
SQL. Aqui temos dois exemplos:
|
||||
SELECT *
|
||||
FROM t1 LEFT OUTER JOIN t2 ON (t1.col = t2.col);
|
||||
|
||||
or
|
||||
SELECT *
|
||||
FROM t1 LEFT OUTER JOIN t2 USING (col);
|
||||
|
||||
Essas duas consultas ind<6E>nticas juntam t1.col com t2.col, e tamb<6D>m
|
||||
retornam qualquer registro que n<>o foi juntado em t1 (aqueles que n<>o
|
||||
combinaram com t2). Uma jun<75><6E>o a direita RIGHT adicionaria registros
|
||||
que n<>o foram juntados da tabela t2. Uma jun<75><6E>o completa (FULL)
|
||||
retornaria os registros combinados mais todos os registros n<>o
|
||||
combinados de t1 e t2. A palavra OUTER <20> opcional e <20> assumida nas
|
||||
jun<75><6E>es LEFT, RIGHT e FULL. Jun<75><6E>es ordin<69>rias s<>o chamadas jun<75><6E>es
|
||||
internas (INNER).
|
||||
|
||||
4.17) Como eu fa<66>o consultas utilizando m<>ltiplos bancos de dados?
|
||||
|
||||
N<>o h<> outra maneira de consultar um banco de dados caso ele n<>o seja
|
||||
o atual. Porque o PostgreSQL carrega cat<61>logos do sistema espec<65>ficos
|
||||
do banco de dados, <20> incerto como uma consulta em banco de dados
|
||||
distintos pode se comportar.
|
||||
|
||||
contrib/dblink permite consultas em bancos de dados distintos
|
||||
utilizando chamadas de fun<75><6E>es. <20> claro, que um cliente pode fazer
|
||||
conex<65>es simult<6C>neas em bancos de dados diferentes e juntar os
|
||||
resultados no cliente.
|
||||
|
||||
4.18) Como eu retorno m<>ltiplos registros ou colunas de uma fun<75><6E>o?
|
||||
|
||||
<20> f<>cil utilizando fun<75><6E>es que retornam conjunto,
|
||||
http://www.postgresql.org/docs/techdocs.17.
|
||||
|
||||
4.19) Por que eu obtenho erros "relation with OID ###### does not exist" ao
|
||||
acessar tabelas tempor<6F>rias em fun<75><6E>es PL/PgSQL?
|
||||
|
||||
Em vers<72>es do PostgreSQL < 8.3, PL/PgSQL armazena o conte<74>do da
|
||||
fun<75><6E>o, e o efeito indesejado <20> que se uma fun<75><6E>o PL/PgSQL acessa uma
|
||||
tabela tempor<6F>ria, e aquela tabela <20> removida e criada novamente, e a
|
||||
fun<75><6E>o <20> chamada novamente, a fun<75><6E>o ir<69> falhar porque o conte<74>do
|
||||
armazenado da fun<75><6E>o ainda apontar<61> para a tabela tempor<6F>ria antiga. A
|
||||
solu<6C><75>o <20> utilizar o EXECUTE para acesso a tabelas tempor<6F>rias no
|
||||
PL/PgSQL. Isto ir<69> fazer com que a consulta seja avaliada toda vez.
|
||||
|
||||
Este problema n<>o ocorre no PostgreSQL 8.3 ou superior.
|
||||
|
||||
4.20) Quais solu<6C><75>es de replica<63><61>o est<73>o dispon<6F>veis?
|
||||
|
||||
Embora "replica<63><61>o" seja um termo simples, h<> v<>rias tecnologias para
|
||||
fazer replica<63><61>o, com vantagens e desvantagens para cada um.
|
||||
|
||||
Replica<63><61>o mestre/escravo permite que um mestre receba consultas de
|
||||
leitura e escrita, enquanto os escravos s<> podem aceitar
|
||||
leitura/consultas SELECT. A solu<6C><75>o mais popular de replica<63><61>o
|
||||
mestre-escravo para PostgreSQL dispon<6F>vel livremente <20> Slony-I.
|
||||
|
||||
Replica<63><61>o com m<>ltiplos mestres permite que consultas leitura/escrita
|
||||
sejam enviadas para m<>ltiplos computadores replicadores. Esta
|
||||
capacidade tamb<6D>m tem um s<>rio impacto na performance por causa da
|
||||
necessidade de sincronizar as mudan<61>as entre os servidores. PGCluster
|
||||
<20> a solu<6C><75>o mais popular dispon<6F>vel livremente para PostgreSQL.
|
||||
|
||||
H<> tamb<6D>m solu<6C><75>es de replica<63><61>o comerciais e baseadas em hardware
|
||||
dispon<6F>veis que suportam uma variedade de modelos de replica<63><61>o.
|
||||
|
||||
4.21) Por que os nomes de minhas tabelas e colunas n<>o s<>o reconhecidos em
|
||||
minha consulta? Por que as mai<61>sculas n<>o s<>o preservadas?
|
||||
|
||||
A causa mais comum de nomes desconhecidos <20> o uso de aspas ao redor
|
||||
dos nomes da tabela ou coluna durante a cria<69><61>o da tabela. Ao utilizar
|
||||
aspas, nomes de tabela e coluna (chamados de identificadores) s<>o
|
||||
armazenados como especificado, significando que voc<6F> deve utilizar
|
||||
aspas quando se referir aos nomes na consulta. Algumas interfaces,
|
||||
como pgAdmin, automaticamente colocam aspas nos identificadores
|
||||
durante a cria<69><61>o da tabela. Ent<6E>o, para identificadores serem
|
||||
reconhecidos, voc<6F> deve:
|
||||
* Evitar colocar aspas no identificador ao criar tabelas
|
||||
* Utilizar somente caracteres min<69>sculos em identificadores
|
||||
* Colocar aspas em identificadores ao referenci<63>-los nas consultas
|
@ -1,801 +0,0 @@
|
||||
|
||||
PostgreSQL 常<><E5B8B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>FAQ<41><51>
|
||||
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>2007 年 1 <20> 30 <20><> <20><><EFBFBD><EFBFBD> 17:37:01 EST
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>2007 年 2 <20> 1 <20><> <20><><EFBFBD> 12:55:04 CST
|
||||
|
||||
<20><><EFBFBD>维<EFBFBD><E7BBB4>人<EFBFBD><E4BABA><EFBFBD>Bruce Momjian (pgman@candle.pha.pa.us)
|
||||
<20><><EFBFBD><EFBFBD>维<EFBFBD><E7BBB4>人<EFBFBD><E4BABA><EFBFBD>Daojing.Zhou<6F><75>doudou586@gmail.com<6F><6D>
|
||||
|
||||
<20><><EFBFBD>档<EFBFBD><E6A1A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>以<EFBFBD><E4BBA5>
|
||||
http://www.postgresql.org/files/documentation/faqs/FAQ.html<6D><6C><EFBFBD><EFBFBD>
|
||||
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD>系<EFBFBD><E7B3BB>平<EFBFBD><E5B9B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>http://www.postgresql.org/docs/faq/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<20><><EFBFBD>
|
||||
_________________________________________________________________
|
||||
|
||||
常<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
1.1)PostgreSQL <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>该<EFBFBD><E8AFA5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
1.2)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>管<EFBFBD>PostgreSQL <20><>
|
||||
1.3)PostgreSQL<51><4C><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
1.4)PostgreSQL<51><4C>以<EFBFBD><E4BBA5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>系<EFBFBD><E7B3BB>平<EFBFBD><E5B9B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
1.5)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>PostgreSQL<51><4C>
|
||||
1.6)<29><><EFBFBD><EFBFBD><EFBFBD>PostgreSQL <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
1.7)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>对PostgreSQL <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
1.8)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>交<EFBFBD><E4BAA4>个BUG<55><47><EFBFBD><EFBFBD><EFBFBD>
|
||||
1.9)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>解已<E8A7A3><E5B7B2><EFBFBD> BUG <20><>缺<EFBFBD><E7BCBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
1.10)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>档<EFBFBD><E6A1A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
1.11)<29><><EFBFBD>该<EFBFBD><E8AFA5> <20><><EFBFBD><EFBFBD><EFBFBD> SQL <20><>
|
||||
1.12)<29><><EFBFBD><EFBFBD><EFBFBD>交补<E4BAA4><E8A1A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
1.13)PostgreSQL <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>系<EFBFBD><E7B3BB><EFBFBD><EFBFBD>起<EFBFBD><E8B5B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
1.14)PostgreSQL <20><>以<EFBFBD><E4BBA5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>个<EFBFBD><E4B8AA>家<EFBFBD><E5AEB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>客<EFBFBD><EFBFBD>端<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
2.1)<29>们<EFBFBD><E4BBAC>以<EFBFBD><E4BBA5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>PostgreSQL <20>交<EFBFBD><E4BAA4><EFBFBD>
|
||||
2.2)<29><><EFBFBD><EFBFBD><EFBFBD>工<EFBFBD><E5B7A5><EFBFBD><EFBFBD>以<EFBFBD>PostgreSQL <20><><EFBFBD><EFBFBD> Web 页<><E9A1B5><EFBFBD><EFBFBD>
|
||||
2.3)PostgreSQL <20><><EFBFBD><EFBFBD><EFBFBD>形<EFBFBD><E5BDA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
系<EFBFBD><EFBFBD>管<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
3.1)<29><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>PostgreSQL <20><><EFBFBD><EFBFBD> /usr/local/pgsql 以<><E4BBA5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
3.2)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
3.3)<29><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>以<EFBFBD><E4BBA5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>好<EFBFBD><E5A5BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
3.4)PostgreSQL <20><><EFBFBD>以<EFBFBD><E4BBA5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
3.5)为<><E4B8BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Sorry, too many clients<74> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
3.6)PostgreSQL<51><4C>级<EFBFBD><E7BAA7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>容<EFBFBD><E5AEB9>
|
||||
3.7)(使<><E4BDBF>PostgreSQL)<29><><EFBFBD><EFBFBD>使<EFBFBD><E4BDBF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>计<EFBFBD><E8AEA1><EFBFBD><EFBFBD>硬件 <20><>
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
4.1) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>个<EFBFBD><E4B8AA>询<EFBFBD><E8AFA2><EFBFBD><EFBFBD>头<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
4.2)
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>表<EFBFBD>索<EFBFBD><E7B4A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>以<EFBFBD><E4BBA5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>psql<71><6C><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>询<EFBFBD>令并<E4BBA4><E5B9B6><EFBFBD>
|
||||
<20><><EFBFBD><EFBFBD>们<EFBFBD><E4BBAC>
|
||||
4.3) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>个<EFBFBD>段<EFBFBD><E6AEB5><EFBFBD><EFBFBD><EFBFBD>类<EFBFBD><E7B1BB><EFBFBD>
|
||||
4.4) <20><><EFBFBD>记<EFBFBD><E8AEB0><EFBFBD><EFBFBD><EFBFBD>个表<E4B8AA><E8A1A8><EFBFBD><EFBFBD>个<EFBFBD><E4B8AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>大<EFBFBD><E5A4A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
4.5) <20><><EFBFBD><EFBFBD><EFBFBD>个<EFBFBD><E4B8AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>件<EFBFBD><E4BBB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>空<EFBFBD><E7A9BA><EFBFBD><EFBFBD>
|
||||
4.6) 为<><E4B8BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>询<EFBFBD><E8AFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>为<EFBFBD><E4B8BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>询没<E8AFA2><E6B2A1><EFBFBD><EFBFBD><EFBFBD>索<EFBFBD><E7B4A2><EFBFBD><EFBFBD>
|
||||
4.7) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>询<EFBFBD><E8AFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>估<EFBFBD><E4BCB0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>询<EFBFBD><E8AFA2><EFBFBD>
|
||||
4.8) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>表达<E8A1A8><E8BEBE><EFBFBD>索<EFBFBD>大<EFBFBD><E5A4A7><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
<20><>表达<E8A1A8><E8BEBE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>索<EFBFBD><E7B4A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>大<EFBFBD><E5A4A7><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
4.9) <20><><EFBFBD><EFBFBD>个<EFBFBD><E4B8AA>询<EFBFBD><E8AFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>个<EFBFBD>段<EFBFBD><E6AEB5><EFBFBD><EFBFBD>为
|
||||
NULL<4C><4C><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>确<EFBFBD><E7A1AE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>论<EFBFBD><E8AEBA>段<EFBFBD><E6AEB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>NULL<4C><4C><EFBFBD><EFBFBD>
|
||||
4.10) <20><><EFBFBD><EFBFBD>符类<E7ACA6><E7B1BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
4.11.1) <20><><EFBFBD> <20><>建<EFBFBD><E5BBBA>个<EFBFBD><E4B8AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>段<EFBFBD><E6AEB5>
|
||||
4.11.2) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>个<EFBFBD><E4B8AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
4.11.3) <20><><EFBFBD>使<EFBFBD><E4BDBF> currval() <20><>导<EFBFBD><E5AFBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
4.11.4) 为<><E4B8BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>常<EFBFBD><E5B8B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>为<EFBFBD><E4B8BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>段<EFBFBD><E6AEB5><EFBFBD><EFBFBD>中
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
4.12) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> OID<49><44><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> CTID <20><>
|
||||
4.13) 为<><E4B8BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>误信<E8AFAF><E4BFA1><EFBFBD>ERROR: Memory exhausted in
|
||||
AllocSetAlloc()<29><><EFBFBD>
|
||||
4.14) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> PostgreSQL <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
4.15) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>建<EFBFBD><E5BBBA>个缺<E4B8AA><E7BCBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>段<EFBFBD><E6AEB5>
|
||||
4.16) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>outer join<69><6E><EFBFBD><EFBFBD>询<EFBFBD><E8AFA2>
|
||||
4.17) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>个<EFBFBD><E4B8AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>询<EFBFBD><E8AFA2>
|
||||
4.18) <20><><EFBFBD><EFBFBD>让<EFBFBD><E8AEA9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
4.19) 为<><E4B8BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>使<EFBFBD><E4BDBF>PL/PgSQL<51><4C><EFBFBD><EFBFBD><EFBFBD><EFBFBD>临<EFBFBD><E4B8B4>表<EFBFBD><E8A1A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>误信<E8AFAF><E4BFA1><EFBFBD>relation
|
||||
with OID ##### does not exist<73><74><EFBFBD>
|
||||
4.20) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
4.21) 为<><E4B8BA><EFBFBD><EFBFBD>询<EFBFBD><E8AFA2><EFBFBD><EFBFBD><EFBFBD>示<EFBFBD>表<EFBFBD><E8A1A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>询<EFBFBD><E8AFA2><EFBFBD><EFBFBD>中
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>为<EFBFBD><E4B8BA>大<EFBFBD><E5A4A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
_________________________________________________________________
|
||||
|
||||
常<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
1.1)PostgreSQL <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>该<EFBFBD><E8AFA5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
PostgreSQL 读<><E8AFBB> Post-Gres-Q-L<><4C><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>称为Postgres
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>人<EFBFBD><E4BABA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>载声<E8BDBD><E5A3B0><EFBFBD>件<EFBFBD><E4BBB6> MP3 <20> <20><><EFBFBD> <20>
|
||||
|
||||
PostgreSQL
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>系<EFBFBD><E7B3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>系<EFBFBD><E7B3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>系<EFBFBD><E7B3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD>代 DBMS 系<><E7B3BB><EFBFBD>使<EFBFBD><E4BDBF><EFBFBD><EFBFBD><EFBFBD>强<EFBFBD><E5BCBA><EFBFBD><EFBFBD><EFBFBD>PostgreSQL
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>费<EFBFBD><E8B4B9><EFBFBD>并<EFBFBD><E5B9B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>代<EFBFBD> <20><><EFBFBD><EFBFBD>以<EFBFBD><E4BBA5><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
PostgreSQL
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>主<EFBFBD><E4B8BB>为<EFBFBD><E4B8BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>们<EFBFBD><E4BBAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>并<EFBFBD><E5B9B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>系<EFBFBD><E7B3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>个社<E4B8AA>
|
||||
<20><><EFBFBD><EFBFBD>项<EFBFBD><E9A1B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>被任<E8A2AB><E4BBBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>请<EFBFBD><E8AFB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>人<EFBFBD>常<EFBFBD><E5B8B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>FAQ<41><51>
|
||||
http://www.postgresql.org/files/documentation/faqs/FAQ_DEV.html
|
||||
|
||||
1.2) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>PostgreSQL <20><>
|
||||
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD> <20><>寻<EFBFBD><E5AFBB>PostgreSQL<51><4C><EFBFBD><EFBFBD>人<EFBFBD><E4BABA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>中
|
||||
央<><E5A4AE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>---<2D> 为<><E4B8BA>个<EFBFBD><E4B8AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>们<EFBFBD>确<EFBFBD><E7A1AE><EFBFBD>个
|
||||
<20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>CVS管<53><E7AEA1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>工<EFBFBD><E5B7A5><EFBFBD><EFBFBD><EFBFBD>设<EFBFBD><E8AEBE>主<EFBFBD><E4B8BB><EFBFBD><EFBFBD>为<EFBFBD><E4B8BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>管<EFBFBD>工<EFBFBD><E5B7A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<20>对PostgreSQL<51><4C><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>PostgreSQL项<4C><E9A1B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>任<EFBFBD><E4BBBB>人<EFBFBD>
|
||||
<20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>人<EFBFBD>社<EFBFBD><E7A4BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>就<EFBFBD><E5B0B1>订<EFBFBD><E8AEA2><EFBFBD>件<EFBFBD>表<EFBFBD><E8A1A8><EFBFBD><EFBFBD><EFBFBD>讨论
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>PostgreSQL<51><4C><EFBFBD><EFBFBD>详<EFBFBD><E8AFA6> <20><><EFBFBD>人<EFBFBD>常<EFBFBD><E5B8B8><EFBFBD><EFBFBD> (Developer's FAQ)
|
||||
<20><><EFBFBD>信<EFBFBD><E4BFA1><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
1.3)PostgreSQL<51><4C><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?
|
||||
|
||||
PostgreSQL<51><4C><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>BSD<53><44><EFBFBD><EFBFBD><EFBFBD><EFBFBD>许<EFBFBD><E8AEB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>使<EFBFBD><E4BDBF>PostgreSQL<51><4C><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<20><>以<EFBFBD><E4BBA5><EFBFBD>PostgreSQL<51><4C><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>代<EFBFBD> <20><><EFBFBD><EFBFBD>以<EFBFBD><E4BBA5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>就<EFBFBD><E5B0B1><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> 软件<E8BDAF><E4BBB6><EFBFBD>
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>们追<E4BBAC><E8BFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>责任<E8B4A3><E4BBBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>就<EFBFBD><E5B0B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>软件<E8BDAF><E4BBB6><EFBFBD><EFBFBD>中
|
||||
须<><E9A1BB><EFBFBD>以<EFBFBD><E4BBA5><EFBFBD><EFBFBD>声<EFBFBD><E5A3B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD>就<EFBFBD><E5B0B1><EFBFBD>们<EFBFBD>使<EFBFBD><E4BDBF><EFBFBD>BSD<53><44>声<EFBFBD><E5A3B0>容<EFBFBD><E5AEB9>
|
||||
|
||||
PostgreSQL<51><4C><EFBFBD><EFBFBD><EFBFBD><EFBFBD>管<EFBFBD>系<EFBFBD><E7B3BB>
|
||||
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>c<EFBFBD><63>1996-2005<30><35>PostgreSQL <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>c<EFBFBD><63>1994-1996
|
||||
<20> <20><>大<EFBFBD><E5A4A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
<20><>Portions copyright (c) 1996-2005,PostgreSQL Global Development Group
|
||||
Portions Copyright (c) 1994-6 Regents of the University of
|
||||
California<69><61>
|
||||
|
||||
<20>许为任<E4B8BA><E4BBBB><EFBFBD><EFBFBD><EFBFBD>使<EFBFBD><E4BDBF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>修<EFBFBD><E4BFAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>个软件<E8BDAF><E4BBB6><EFBFBD><EFBFBD><EFBFBD>档<EFBFBD><E6A1A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>任<EFBFBD><E4BBBB>费<EFBFBD>
|
||||
<20><><EFBFBD> 并<><E5B9B6><EFBFBD> 须<><E9A1BB>署<EFBFBD> <20><>
|
||||
<20><>产<EFBFBD><E4BAA7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>声<EFBFBD><E5A3B0><EFBFBD><EFBFBD>段以<E6AEB5><E4BBA5><EFBFBD><EFBFBD><EFBFBD>两段<E4B8A4><E6AEB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
<20><>Permission to use, copy, modify, and distribute this software and
|
||||
its documentation for any purpose, without fee, and without a written
|
||||
agreement is hereby granted, provided that the above copyright notice
|
||||
and this paragraph and the following two paragraphs appear in all
|
||||
copies.<2E><>
|
||||
|
||||
<20><>任<EFBFBD><E4BBBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>大<EFBFBD><E5A4A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 使<><E4BDBF><EFBFBD><EFBFBD>
|
||||
<20>软件<E8BDAF><E4BBB6><EFBFBD><EFBFBD>档<EFBFBD>导<EFBFBD><E5AFBC><EFBFBD>对任<E5AFB9><E4BBBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>人<EFBFBD><E4BABA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>伴<EFBFBD><E4BCB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>失<EFBFBD>责任<E8B4A3><E4BBBB><EFBFBD><EFBFBD>使<EFBFBD> <20><>大<EFBFBD><E5A4A7>
|
||||
<20>已<EFBFBD><E5B7B2>建议<E5BBBA><E8AEAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>失<EFBFBD><E5A4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
<20><>IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY
|
||||
PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL
|
||||
DAMAGES, INCLUDING LOST PROFITS, ARISING OUT OF THE USE OF THIS
|
||||
SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE UNIVERSITY OF CALIFORNIA
|
||||
HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.<2E><>
|
||||
|
||||
<20> <20><>大<EFBFBD><E5A4A7><EFBFBD>确<EFBFBD><E7A1AE><EFBFBD><EFBFBD>任<EFBFBD><E4BBBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>份软件<E8BDAF><E4BBB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><>大<EFBFBD><E5A4A7>
|
||||
<20>没<EFBFBD>责任<E8B4A3><E4BBBB><EFBFBD>维<EFBFBD><E7BBB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>强<EFBFBD><E5BCBA>修<EFBFBD><E4BFAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
<20><>THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES,
|
||||
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE
|
||||
PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE UNIVERSITY OF
|
||||
CALIFORNIA HAS NO OBLIGATIONS TO PROVIDE MAINTENANCE, SUPPORT,
|
||||
UPDATES, ENHANCEMENTS, OR MODIFICATIONS.<2E><>
|
||||
|
||||
1.4)PostgreSQL <20><>以<EFBFBD><E4BBA5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>系<EFBFBD><E7B3BB>平<EFBFBD><E5B9B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
<20><><EFBFBD><EFBFBD>说<EFBFBD><E8AFB4><EFBFBD><EFBFBD>任<EFBFBD><E4BBBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>对 UNIX <20><>容<EFBFBD><E5AEB9><EFBFBD><EFBFBD>系<EFBFBD><E7B3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>PostgreSQL
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>确<EFBFBD><E7A1AE><EFBFBD><EFBFBD><EFBFBD>平<EFBFBD><E5B9B3><EFBFBD>
|
||||
|
||||
PostgreSQl<51><6C><EFBFBD><EFBFBD>以<EFBFBD><E4BBA5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>微软Windows-NT<4E><54><EFBFBD><EFBFBD>系<EFBFBD><E7B3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Win2000
|
||||
SP4<50><34>WinXP <20> Win2003<30><33>已<EFBFBD><E5B7B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
http://pgfoundry.org/projects/pginstaller<65><72>载<EFBFBD><E8BDBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>MSDOS<4F>Windows<77><73><EFBFBD><EFBFBD><EFBFBD>
|
||||
<20><><EFBFBD> <20><>Win95<39><35>Win98<39><38>WinMe<4D><65><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Cygwin模<6E><E6A8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>PostgreSQL<51>
|
||||
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>个为Novell Netware 6<><36><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
http://forge.novell.com<6F><6D><EFBFBD><EFBFBD><EFBFBD>为OS/2(eComStation)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
http://hobbes.nmsu.edu/cgi-bin/h-search?sh=1&button=Search&key=postgre
|
||||
SQL&stype=all&sort=type&dir=%2F <20><>载<EFBFBD>
|
||||
|
||||
1.5) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>PostgreSQL<51><4C>
|
||||
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>http://www.postgresql.org/ftp/<2F><>载<EFBFBD><E8BDBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>FTP<54><50><EFBFBD><EFBFBD>
|
||||
ftp://ftp.PostgreSQL.org/pub/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>载<EFBFBD>
|
||||
|
||||
1.6) <20><><EFBFBD><EFBFBD><EFBFBD>PostgreSQL<51><4C><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
PostgreSQL <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 8.2.1 <20>
|
||||
|
||||
<20>们计<E4BBAC><E8AEA1><EFBFBD>年<EFBFBD><E5B9B4><EFBFBD><EFBFBD><EFBFBD>个主<E4B8AA><E4B8BB><EFBFBD>级<EFBFBD><E7BAA7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 个<><E4B8AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>个<EFBFBD><E4B8AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
1.7) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>对PostgreSQL<51><4C><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
PostgreSQL社<4C><E7A4BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>件<EFBFBD>表为<E8A1A8><E4B8BA>大<EFBFBD><E5A4A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>帮<EFBFBD><E5B8AE><EFBFBD><EFBFBD>订<EFBFBD><E8AEA2><EFBFBD>件<EFBFBD>表<EFBFBD>主
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
http://www.postgresql.org/community/lists/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>General <20>
|
||||
Bug<75><67>件<EFBFBD>表<EFBFBD><E8A1A8><EFBFBD><EFBFBD>个<EFBFBD><E4B8AA>好<EFBFBD><E5A5BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
主<><E4B8BB><EFBFBD>IRC<52><43><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>FreeNode(irc.freenode.net)<29>#postgresql<71><6C>为<EFBFBD><E4B8BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>以使<E4BBA5><E4BDBF>UNIX<49><58><EFBFBD><EFBFBD>irc<72><63><EFBFBD><EFBFBD><EFBFBD>令<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> irc -c '#postgresql'
|
||||
"$USER" irc.freenode.net <20><><EFBFBD><EFBFBD>使<EFBFBD><E4BDBF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>IRC客<43><E5AEA2>端<EFBFBD><E7ABAF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<20><><EFBFBD><EFBFBD>个PostgreSQL<51>西<EFBFBD><E8A5BF><EFBFBD><EFBFBD><EFBFBD>(#postgersql-es)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
(#postgresql-fr)<29><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>EFNET<45><54><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>个PostgreSQL<51>交<EFBFBD><E4BAA4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>表<EFBFBD><E8A1A8><EFBFBD><EFBFBD>http://techdocs.postgresql.org/companies.php<68><70>
|
||||
<20><><EFBFBD>
|
||||
|
||||
1.8) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>交<EFBFBD><E4BAA4>个BUG<55><47><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
<20><>访<EFBFBD><E8AEBF>
|
||||
http://www.postgresql.org/support/submitbug<75><67>填<EFBFBD>Bug<75><67><EFBFBD><EFBFBD>表<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD>访<EFBFBD><E8AEBF>ftp<74><70><EFBFBD><EFBFBD>ftp://ftp.PostgreSQL.org/pub/
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>PostgreSQL<51><4C><EFBFBD><EFBFBD>补<EFBFBD><E8A1A5><EFBFBD>
|
||||
|
||||
<20><><EFBFBD>使<EFBFBD><E4BDBF>Bug<75>交表<E4BAA4> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>PostgreSQL<51><4C>件<EFBFBD>表<EFBFBD>Bug<75>常<EFBFBD><E5B8B8><EFBFBD>以<EFBFBD><E4BBA5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<20>
|
||||
* <20><>交<EFBFBD>容<EFBFBD><E5AEB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>个Bug<75><67><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Bug<75><67><EFBFBD> <20>
|
||||
* <20><>交<EFBFBD>容<EFBFBD><E5AEB9><EFBFBD><EFBFBD>个已<E4B8AA><E5B7B2><EFBFBD>Bug并<67><E5B9B6>已<EFBFBD><E5B7B2><EFBFBD> <20><>TODO<44><4F><EFBFBD><EFBFBD><EFBFBD>任<EFBFBD><E4BBBB><EFBFBD>表<EFBFBD>
|
||||
* <20><>交<EFBFBD>Bug已<67><E5B7B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>被修<E8A2AB><E4BFAE><EFBFBD>
|
||||
* <20><>交<EFBFBD>Bug已修<E5B7B2><E4BFAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>补<EFBFBD><E8A1A5><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>软件<E8BDAF><E4BBB6>
|
||||
* 请<><E8AFB7><EFBFBD>交<EFBFBD><E4BAA4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>详<EFBFBD><E8AFA6><EFBFBD>信<EFBFBD><E4BFA1><EFBFBD><EFBFBD>
|
||||
+ <20><><EFBFBD>系<EFBFBD><E7B3BB>
|
||||
+ PostgreSQL<51><4C><EFBFBD>
|
||||
+ <20><><EFBFBD><EFBFBD><EFBFBD>Bug<75><67><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
+ <20><><EFBFBD><EFBFBD>信<EFBFBD><E4BFA1>
|
||||
+ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>踪<EFBFBD><E8B8AA><EFBFBD><EFBFBD>
|
||||
* <20><>交<EFBFBD>容<EFBFBD><E5AEB9><EFBFBD><EFBFBD>个<EFBFBD><E4B8AA>Bug<75><67><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>以<EFBFBD><E4BBA5>工<EFBFBD><E5B7A5><EFBFBD><EFBFBD>
|
||||
+ <20>建<EFBFBD><E5BBBA>个<EFBFBD><E4B8AA>补<EFBFBD><E8A1A5>并<EFBFBD><E5B9B6><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>个主<E4B8AA><E4B8BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
+ <20><>Bug<75><67><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>修<EFBFBD><E4BFAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>被<EFBFBD> <20><>TODO<44><4F><EFBFBD><EFBFBD><EFBFBD>任<EFBFBD><E4BBBB><EFBFBD>表<EFBFBD>
|
||||
|
||||
1.9) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>解已<E8A7A3><E5B7B2><EFBFBD> BUG <20><>缺<EFBFBD><E7BCBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
PostgreSQL <20><><EFBFBD><EFBFBD><EFBFBD>个<EFBFBD><E4B8AA><EFBFBD><EFBFBD><EFBFBD> SQL:2003 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>们<EFBFBD>TODO
|
||||
<20>表<EFBFBD><E8A1A8><EFBFBD><EFBFBD>解已<E8A7A3><E5B7B2>Bug<75>表<EFBFBD><E8A1A8>缺<EFBFBD><E7BCBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>计<EFBFBD><E8AEA1>
|
||||
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>请<EFBFBD>常<EFBFBD><E5B8B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>以<EFBFBD><E4BBA5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
* 该<><E8AFA5><EFBFBD>已<EFBFBD> <20><>TODO<44><4F><EFBFBD><EFBFBD><EFBFBD>任<EFBFBD><E4BBBB><EFBFBD>表<EFBFBD>
|
||||
* 该<><E8AFA5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>须<EFBFBD><E9A1BB><EFBFBD><EFBFBD> 为<><E4B8BA>
|
||||
+ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>符<EFBFBD>SQL<51> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
+ 该<><E8AFA5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>大大<E5A4A7><E5A4A7><EFBFBD> 代<> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>带<EFBFBD><E5B8A6><EFBFBD>好<EFBFBD><E5A5BD><EFBFBD><EFBFBD>微<EFBFBD><E5BEAE>足<EFBFBD><E8B6B3><EFBFBD>
|
||||
+ 该<><E8AFA5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>
|
||||
* 该<><E8AFA5><EFBFBD><EFBFBD><EFBFBD>被<EFBFBD> <20><>TODO<44><4F><EFBFBD><EFBFBD><EFBFBD>任<EFBFBD><E4BBBB><EFBFBD>表<EFBFBD>
|
||||
|
||||
PostgreSQL<51><4C>使<EFBFBD><E4BDBF>Bug<75><67>踪系<E8B8AA><E7B3BB><EFBFBD><EFBFBD><EFBFBD> 为<>们<EFBFBD><E4BBAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>件<EFBFBD>表中
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>以<EFBFBD><E4BBA5><EFBFBD><EFBFBD><EFBFBD>TODO任<4F><E4BBBB><EFBFBD>表<EFBFBD><E8A1A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>工<EFBFBD><E5B7A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<20><><EFBFBD>Bug<75><67><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>们<EFBFBD>软件<E8BDAF><E4BBB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
对影<E5AFB9><E5BDB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Bug<75><67><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>快<EFBFBD><E5BFAB>被修<E8A2AB><E4BFAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>修<EFBFBD><E4BFAE>
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>CVS<56><53><EFBFBD><EFBFBD><EFBFBD>信<EFBFBD><E4BFA1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>使<EFBFBD><E4BDBF><EFBFBD><EFBFBD>软件<E8BDAF><E4BBB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>信<EFBFBD><E4BFA1>中
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>软件<E8BDAF><E4BBB6><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
1.10) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>档<EFBFBD><E6A1A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
PostgreSQL<51><4C><EFBFBD>大<EFBFBD><E5A4A7><EFBFBD>档<EFBFBD><E6A1A3>主<EFBFBD><E4B8BB><EFBFBD>详<EFBFBD><E8AFA6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>页<EFBFBD><E9A1B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> /doc
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>注<EFBFBD><E6B3A8><EFBFBD><EFBFBD>为 $PGHOME/doc<6F><63><EFBFBD>
|
||||
<20><> <20><><EFBFBD><EFBFBD>以<EFBFBD><E4BBA5>线<EFBFBD><E7BABF><EFBFBD><EFBFBD>PostgreSQL<51><4C><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>http://www.PostgreSQL.org/d
|
||||
ocs<63>
|
||||
|
||||
<20>两<EFBFBD><E4B8A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>PostgreSQL<51>书<EFBFBD><E4B9A6>线<EFBFBD><E7BABF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
http://www.PostgreSQL.org/docs/awbook.html <20>
|
||||
http://www.commandprompt.com/ppbook/ <20> <20><><EFBFBD>大<EFBFBD><E5A4A7>PostgreSQL书<4C><E4B9A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>购
|
||||
买<><E4B9B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>为<EFBFBD><E4B8BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Korry Douglas<61><73><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
http://techdocs.PostgreSQL.org/techdocs/bookreviews.php<68><70>
|
||||
<20><><EFBFBD>大<EFBFBD><E5A4A7><EFBFBD><EFBFBD>PostgreSQL书<4C><E4B9A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>
|
||||
http://techdocs.PostgreSQL.org/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>PostgreSQL<51>大<EFBFBD><E5A4A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>
|
||||
|
||||
客<><E5AEA2>端<EFBFBD><E7ABAF><EFBFBD>令<EFBFBD><E4BBA4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>psql<71><6C><EFBFBD><EFBFBD><EFBFBD>以 \d
|
||||
<20><>头<EFBFBD><E5A4B4><EFBFBD>令<EFBFBD><E4BBA4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>示<EFBFBD><E7A4BA><EFBFBD><EFBFBD>类<EFBFBD><E7B1BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>符<EFBFBD><E7ACA6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>信<EFBFBD><E4BFA1><EFBFBD><EFBFBD>使<EFBFBD><E4BDBF> \?
|
||||
<20><>以<EFBFBD><E4BBA5>示<EFBFBD><E7A4BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>令<EFBFBD>
|
||||
|
||||
<20>们<EFBFBD> web <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>档<EFBFBD>
|
||||
|
||||
1.11) <20><><EFBFBD>该<EFBFBD><E8AFA5> <20><><EFBFBD><EFBFBD><EFBFBD> SQL <20><>
|
||||
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>述<EFBFBD><E8BFB0><EFBFBD><EFBFBD><EFBFBD><EFBFBD>PostgreSQL<51><4C><EFBFBD><EFBFBD><EFBFBD>书<EFBFBD><E4B9A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Teach Yourself SQL in
|
||||
21 Days, Second Edition<6F><6E><EFBFBD><EFBFBD>详<EFBFBD><E8AFA6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
http://members.tripod.com/er4ebus/sql/index.htm<74><6D>
|
||||
<20>们<EFBFBD>许<EFBFBD><E8AEB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>欢The Practical SQL Handbook<6F><6B> Bowman, Judith S.
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD>Addison-Wesley<65><79><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>欢 The Complete Reference SQL,
|
||||
Groff <20><><EFBFBD><EFBFBD><EFBFBD>McGraw-Hill<6C><6C><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>好<EFBFBD><E5A5BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>们<EFBFBD><E4BBAC>
|
||||
* http://www.intermedia.net/support/sql/sqltut.shtm
|
||||
* http://sqlcourse.com.
|
||||
* http://www.w3schools.com/sql/default.asp
|
||||
* http://mysite.verizon.net/Graeme_Birchall/id1.html
|
||||
|
||||
1.12)<29><><EFBFBD><EFBFBD><EFBFBD>交补<E4BAA4><E8A1A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
详<><E8AFA6> <20><><EFBFBD>人<EFBFBD>常<EFBFBD><E5B8B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Developer's FAQ) <20>
|
||||
|
||||
1.13)PostgreSQL<51><4C><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>系<EFBFBD><E7B3BB><EFBFBD><EFBFBD>起<EFBFBD><E8B5B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
<20><>价软件<E8BDAF>好<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>价<EFBFBD> <20><>
|
||||
|
||||
<20><><EFBFBD>
|
||||
PostgreSQL <20><><EFBFBD>大<EFBFBD><E5A4A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<20><>询<EFBFBD><E8AFA2>触<EFBFBD><E8A7A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<20>们<EFBFBD><E4BBAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>们没<E4BBAC><E6B2A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>类<EFBFBD><E7B1BB><EFBFBD>继<EFBFBD><E7BBA7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>并<EFBFBD>
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD>以<EFBFBD><E4BBA5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
<20><><EFBFBD><EFBFBD>
|
||||
PostgreSQL<51><4C><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>类似<E7B1BB><E4BCBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>对<EFBFBD><E5AFB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>快
|
||||
<20><>对<EFBFBD><E5AFB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>们<EFBFBD><E4BBAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>常<EFBFBD><E5B8B8>
|
||||
+/- 10%<25><><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
<20><><EFBFBD> <20><>
|
||||
<20>们<EFBFBD><E4BBAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>须<EFBFBD><E9A1BB><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>就<EFBFBD><E5B0B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>没<EFBFBD><E6B2A1><EFBFBD>们<EFBFBD><E4BBAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<20><><EFBFBD><EFBFBD>认<EFBFBD><E8AEA4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>缺<EFBFBD><E7BCBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>稳<EFBFBD><E7A8B3>代<EFBFBD> <20><><EFBFBD>个<EFBFBD><E4B8AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>个<EFBFBD><E4B8AA> beta
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>并<EFBFBD><E5B9B6><EFBFBD>们<EFBFBD><E4BBAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>示<EFBFBD>们<EFBFBD><E4BBAC>以<EFBFBD><E4BBA5><EFBFBD>稳<EFBFBD><E7A8B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<20><>产使<E4BAA7><E4BDBF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>们<EFBFBD><E4BBAC>信<EFBFBD><E4BFA1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>们<EFBFBD><E4BBAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>软件<E8BDAF><E4BBB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
<20><><EFBFBD>
|
||||
<20>们<EFBFBD><E4BBAC><EFBFBD>件<EFBFBD>表<EFBFBD><E8A1A8><EFBFBD><EFBFBD><EFBFBD>个<EFBFBD>常大<E5B8B8><E5A4A7><EFBFBD><EFBFBD>人<EFBFBD><E4BABA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>以帮<E4BBA5><E5B8AE>解<EFBFBD><E8A7A3><EFBFBD>碰<EFBFBD>
|
||||
<20><>任<EFBFBD><E4BBBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>们<EFBFBD><E4BBAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>解<EFBFBD><E8A7A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>软
|
||||
件<><E4BBB6>并<EFBFBD><E5B9B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>解<EFBFBD><E8A7A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>人<EFBFBD><E4BABA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>群<EFBFBD><E7BEA4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>触使PostgreSQL<51><4C><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>好<EFBFBD><E5A5BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>以<EFBFBD><E4BBA5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>人<EFBFBD><E4BABA><EFBFBD>
|
||||
<20><>1.7 <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
价<> <20>
|
||||
<20>们对任<E5AFB9><E4BBBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>费<EFBFBD><E8B4B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<20><> <20><>以<EFBFBD><E4BBA5><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>产<EFBFBD><E4BAA7><EFBFBD> <20><><EFBFBD>们<EFBFBD>代<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>们<EFBFBD><E4BBAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<20>声<EFBFBD><E5A3B0>声<EFBFBD><E5A3B0> BSD<53><44><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>容<EFBFBD>
|
||||
|
||||
1.14) PostgreSQL<51><4C>以<EFBFBD><E4BBA5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>个<EFBFBD><E4B8AA>家<EFBFBD><E5AEB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?
|
||||
|
||||
PostgreSQL 8.0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>使<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>系<EFBFBD><EFBFBD>中
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>信<EFBFBD><E4BFA1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>8.0<EFBFBD><EFBFBD>以<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>PostgreSQL<EFBFBD><EFBFBD><EFBFBD><EFBFBD>身<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<20><><EFBFBD>信<EFBFBD><E4BFA1><EFBFBD>
|
||||
_________________________________________________________________
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>客<EFBFBD><EFBFBD>端<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
2.1) <20>们<EFBFBD><E4BBAC>以<EFBFBD><E4BBA5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>PostgreSQL<51>交<EFBFBD><E4BAA4><EFBFBD>
|
||||
|
||||
PostgreSQL(缺<><E7BCBA><EFBFBD><EFBFBD>)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>C<EFBFBD><43><EFBFBD><EFBFBD><EFBFBD><EFBFBD>C<EFBFBD><43><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>项<EFBFBD><E9A1B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD>载<EFBFBD><E8BDBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>项<EFBFBD><E9A1B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>好<EFBFBD><E5A5BD>
|
||||
<20><><EFBFBD><EFBFBD>们<EFBFBD><E4BBAC>以<EFBFBD><E4BBA5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>计<EFBFBD><E8AEA1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>语
|
||||
<20><><EFBFBD><EFBFBD>PHP<48><50><EFBFBD>访<EFBFBD><E8AEBF>PostgreSQL<51><4C><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Perl<72>TCL<43>Python以<6E><E4BBA5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
http://gborg.postgresql.org<72><67><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Drivers/Interfaces<65><73><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
并<><E5B9B6><EFBFBD><EFBFBD><EFBFBD>Internet<65><74>容<EFBFBD><E5AEB9>索<EFBFBD><E7B4A2><EFBFBD>
|
||||
|
||||
2.2) <20><><EFBFBD><EFBFBD><EFBFBD>工<EFBFBD><E5B7A5><EFBFBD><EFBFBD>以<EFBFBD>PostgreSQL<51><4C><EFBFBD><EFBFBD> Web 页<><E9A1B5><EFBFBD><EFBFBD>
|
||||
|
||||
<20><>个<EFBFBD><E4B8AA><EFBFBD><EFBFBD>以<EFBFBD><E4BBA5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>为<EFBFBD><E4B8BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>http://www.webreview.com<6F>
|
||||
|
||||
对<><E5AFB9> Web <20><><EFBFBD><EFBFBD>PHP <20><><EFBFBD><EFBFBD>个<EFBFBD>好<EFBFBD><E5A5BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>http://www.php.net/<2F>
|
||||
|
||||
对<><E5AFB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>任<EFBFBD><E4BBBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>人<EFBFBD><E4BABA><EFBFBD> Perl <20><><EFBFBD><EFBFBD><EFBFBD> 使<><E4BDBF>CGI.pm<70>DBD::Pg <20> mod_perl <20>
|
||||
|
||||
2.3)PostgreSQL<51><4C><EFBFBD><EFBFBD><EFBFBD>形<EFBFBD><E5BDA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>人<EFBFBD><E4BABA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>PostgreSQL<51>GUI<55><49>形工<E5BDA2><E5B7A5>软件<E8BDAF><E4BBB6><EFBFBD><EFBFBD>
|
||||
PostgreSQL社<4C><E7A4BE><EFBFBD>档<EFBFBD><E6A1A3><EFBFBD>个详<E4B8AA><E8AFA6><EFBFBD><EFBFBD>表<EFBFBD>
|
||||
_________________________________________________________________
|
||||
|
||||
系<EFBFBD><EFBFBD>管<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
3.1)<29><><EFBFBD> <20><><EFBFBD><EFBFBD>PostgreSQL<51><4C><EFBFBD><EFBFBD> /usr/local/pgsql 以<><E4BBA5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> configure <20><><EFBFBD> <20><> --prefix <20>项<EFBFBD>
|
||||
|
||||
3.2) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
缺<><E7BCBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>PostgreSQL<51><4C><EFBFBD>许<EFBFBD><E8AEB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> unix <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>TCP/IP<49><50><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<20><> <20><><EFBFBD><EFBFBD><EFBFBD>修<EFBFBD><E4BFAE><EFBFBD><EFBFBD><EFBFBD>置<EFBFBD>件postgresql.conf中
|
||||
<20>listen_addresses<65><73><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>置<EFBFBD>件$PGDATA/pg_hba.conf<6E><66><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> host-based
|
||||
<20><><EFBFBD>身份认<E4BBBD><E8AEA4><EFBFBD><EFBFBD>并<EFBFBD><E5B9B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>PostgreSQL<51><4C><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>PostgreSQL
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
3.3) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>以<EFBFBD><E4BBA5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>好<EFBFBD><E5A5BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
<20><><EFBFBD>个主<E4B8AA><E4B8BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>以<EFBFBD><E4BBA5>PostgreSQL<51><4C><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
<20><>询<EFBFBD><E8AFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<20><>主<EFBFBD><E4B8BB><EFBFBD><EFBFBD><EFBFBD>修<EFBFBD><E4BFAE><EFBFBD><EFBFBD>询<EFBFBD><E8AFA2><EFBFBD><EFBFBD>以<EFBFBD><E4BBA5><EFBFBD><EFBFBD><EFBFBD>好<EFBFBD><E5A5BD><EFBFBD><EFBFBD><EFBFBD>:
|
||||
|
||||
+ <20>建索<E5BBBA><E7B4A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>表达<E8A1A8><E8BEBE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>索<EFBFBD><E7B4A2><EFBFBD><EFBFBD>
|
||||
+ 使<><E4BDBF>COPY<50><59><EFBFBD><EFBFBD>代<EFBFBD><E4BBA3><EFBFBD><EFBFBD>个Insert<72><74><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
+ <20><><EFBFBD><EFBFBD>个SQL<51><4C><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>个<EFBFBD><E4B8AA><EFBFBD><EFBFBD>以<EFBFBD><E4BBA5><EFBFBD><EFBFBD>交<EFBFBD><E4BAA4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
+ <20><><EFBFBD><EFBFBD>个索<E4B8AA><E7B4A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>记<EFBFBD><E8AEB0><EFBFBD><EFBFBD>使<EFBFBD><E4BDBF>CLUSTER<45><52>
|
||||
+ <20><><EFBFBD><EFBFBD>个<EFBFBD><E4B8AA>询<EFBFBD><E8AFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>记<EFBFBD><E8AEB0><EFBFBD><EFBFBD>使<EFBFBD><E4BDBF>LIMIT<49><54>
|
||||
+ 使<><E4BDBF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>询<EFBFBD><E8AFA2>Prepared Query)<29><>
|
||||
+ 使<><E4BDBF>ANALYZE以<45><E4BBA5><EFBFBD>精确<E7B2BE><E7A1AE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>计<EFBFBD><E8AEA1>
|
||||
+ <20><><EFBFBD>使<EFBFBD><E4BDBF> VACUUM <20> pg_autovacuum
|
||||
+ <20><><EFBFBD><EFBFBD>大<EFBFBD><E5A4A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>索<EFBFBD><E7B4A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>建索<E5BBBA><E7B4A2><EFBFBD><EFBFBD>
|
||||
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>置
|
||||
<20>置<EFBFBD>件postgres.conf中
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD>设置<E8AEBE><E7BDAE><EFBFBD><EFBFBD>影<EFBFBD><E5BDB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>表<EFBFBD><E8A1A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
管<><E7AEA1><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>置<EFBFBD><E7BDAE>
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>解<EFBFBD><E8A7A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>http://www.varlena.com/varlena/GeneralBits/Tid
|
||||
bits/annotated_conf_e.html <20>
|
||||
http://www.varlena.com/varlena/GeneralBits/Tidbits/perf.html<6D>
|
||||
|
||||
硬件<E7A1AC><E4BBB6><EFBFBD><EFBFBD>
|
||||
计<><E8AEA1><EFBFBD><EFBFBD>硬件对<E4BBB6><E5AFB9><EFBFBD><EFBFBD><EFBFBD>影<EFBFBD><E5BDB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
http://candle.pha.pa.us/main/writings/pgsql/hw_performance/inde
|
||||
x.html <20> http://www.powerpostgresql.com/PerfList/<2F>
|
||||
|
||||
3.4)PostgreSQL<51><4C><EFBFBD>以<EFBFBD><E4BBA5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
PostgreSQL <20><><EFBFBD><EFBFBD><EFBFBD>类似 log_*
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>置<EFBFBD><E7BDAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>询<EFBFBD><E8AFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>计<EFBFBD><E8AEA1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>工<EFBFBD><E5B7A5>对<EFBFBD><E5AFB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<20><><EFBFBD><EFBFBD>
|
||||
|
||||
3.5) 为<><E4B8BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Sorry, too many
|
||||
clients<74><73>已<EFBFBD>太<EFBFBD><E5A4AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
<20><>表示<E8A1A8><E7A4BA> 已达<E5B7B2><E8BEBE>缺<EFBFBD>100个并<E4B8AA><E5B9B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>修<EFBFBD><E4BFAE>postgres
|
||||
ql.conf<6E>件<EFBFBD><E4BBB6><EFBFBD>max_connections<6E><73><EFBFBD><EFBFBD>
|
||||
<20><><EFBFBD> postmaster<65><72><EFBFBD><EFBFBD>并<EFBFBD><E5B9B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>修<EFBFBD><E4BFAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>postmaster<65>
|
||||
|
||||
3.6)PostgreSQL<51><4C>级<EFBFBD><E7BAA7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>容 <20><>
|
||||
|
||||
PostgreSQL <20><><EFBFBD><EFBFBD><EFBFBD>对<EFBFBD><E5AFB9>次<EFBFBD><E6ACA1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>级主<E7BAA7><E4B8BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Bug修<67><E4BFAE>工<EFBFBD><E5B7A5><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
7.4.8 <20>级<EFBFBD><E7BAA7> 7.4.9 <20><><EFBFBD><EFBFBD><EFBFBD> dump <20> restore<72><65><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>软件<E8BDAF><E4BBB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
<20><>PostgreSQL<51><4C><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>该<EFBFBD><E8AFA5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>使<EFBFBD><E4BDBF><EFBFBD>主<EFBFBD><E4B8BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>尽快<E5B0BD><E5BFAB>
|
||||
<20><><EFBFBD>尽管<E5B0BD><E7AEA1>次<EFBFBD>级<EFBFBD><E7BAA7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>PostgreSQL<51><4C><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>设计<E8AEBE><E8AEA1><EFBFBD><EFBFBD><EFBFBD>
|
||||
<20><><EFBFBD><EFBFBD>
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD>Bug<75><67><EFBFBD>代<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>以<EFBFBD><E4BBA5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>PostgreSQL社<4C><E7A4BE>认为<E8AEA4><E4B8BA><EFBFBD><EFBFBD><EFBFBD>
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>级<EFBFBD><E7BAA7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>级<EFBFBD><E7BAA7>
|
||||
|
||||
主<><E4B8BB><EFBFBD><EFBFBD><EFBFBD>级<EFBFBD><E7BAA7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 7.3 <20><> 7.4<EFBFBD><EFBFBD><EFBFBD>常<EFBFBD><EFBFBD>修<EFBFBD><EFBFBD>系<EFBFBD><EFBFBD>表<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>表<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>们<EFBFBD><E4BBAC>维<EFBFBD><E7BBB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>件<EFBFBD><E4BBB6><EFBFBD><EFBFBD><EFBFBD>容<EFBFBD><E5AEB9><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>中
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>导<EFBFBD><E5AFBC><EFBFBD><EFBFBD>dump<6D><70>/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>中
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>导<EFBFBD><E5AFBC><EFBFBD><EFBFBD>reload<61><64>对主<E5AFB9><E4B8BB><EFBFBD><EFBFBD><EFBFBD>级<EFBFBD><E7BAA7><EFBFBD><EFBFBD>须<EFBFBD><E9A1BB>
|
||||
|
||||
3.7)(使<><E4BDBF>PostgreSQL)<29><><EFBFBD><EFBFBD>使<EFBFBD><E4BDBF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>计<EFBFBD><E8AEA1><EFBFBD><EFBFBD>硬件 <20><>
|
||||
|
||||
<20><><EFBFBD><EFBFBD>计<EFBFBD><E8AEA1><EFBFBD><EFBFBD>硬件大<E4BBB6><E5A4A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>容<EFBFBD><E5AEB9><EFBFBD>人们<E4BABA><E4BBAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>信<EFBFBD><E4BFA1>计<EFBFBD><E8AEA1><EFBFBD><EFBFBD>硬件<E7A1AC>
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ECC RAM<41><4D>带<EFBFBD><E5B8A6><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>SCSI
|
||||
<20><>硬<EFBFBD><E7A1AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>质<EFBFBD>主<EFBFBD><E4B8BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>便<EFBFBD><E4BEBF>货<EFBFBD><E8B4A7><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>好<EFBFBD><E5A5BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>PostgreSQL
|
||||
<20> <20><><EFBFBD><EFBFBD>以<EFBFBD><E4BBA5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>任<EFBFBD><E4BBBB>硬件<E7A1AC><E4BBB6><EFBFBD><EFBFBD>
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>对<EFBFBD><E5AFB9> <20>系<EFBFBD><E7B3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 就<><E5B0B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 究<><E7A9B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>硬件<E7A1AC><E4BBB6>
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>们<EFBFBD><E4BBAC><EFBFBD>件<EFBFBD>表<EFBFBD><E8A1A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 硬件<E7A1AC>置<EFBFBD><E7BDAE><EFBFBD>价<EFBFBD><E4BBB7><EFBFBD>讨论<E8AEA8>
|
||||
_________________________________________________________________
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
4.1) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>个<EFBFBD><E4B8AA>询<EFBFBD><E8AFA2><EFBFBD><EFBFBD>头<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>并<EFBFBD><E5B9B6><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>询中
|
||||
<20><><EFBFBD>确<EFBFBD><E7A1AE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>以使<E4BBA5><E4BDBF>LIMIT<49><54><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>个索<E4B8AA><E7B4A2><EFBFBD><EFBFBD> ORDER BY中
|
||||
<20><><EFBFBD>件<EFBFBD><E4BBB6><EFBFBD><EFBFBD><EFBFBD>PostgreSQL <20><><EFBFBD><EFBFBD>就<EFBFBD><E5B0B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>头<EFBFBD> <20><>记<EFBFBD><E8AEB0><EFBFBD><EFBFBD>
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>对<EFBFBD><E5AFB9>个<EFBFBD><E4B8AA>询<EFBFBD><E8AFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>询<EFBFBD><E8AFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>确<EFBFBD>
|
||||
<20>记<EFBFBD><E8AEB0><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>使<EFBFBD><E4BDBF>游<EFBFBD> (cursor)<29>FETCH<43><48><EFBFBD><EFBFBD>
|
||||
|
||||
<20><>使<EFBFBD><E4BDBF>以<EFBFBD><E4BBA5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>记<EFBFBD><E8AEB0><EFBFBD><EFBFBD><EFBFBD>
|
||||
SELECT cols
|
||||
FROM tab
|
||||
ORDER BY random()
|
||||
LIMIT 1 ;
|
||||
|
||||
4.2)
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>表<EFBFBD>索<EFBFBD><E7B4A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>以<EFBFBD><E4BBA5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>psql<71><6C><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>询<EFBFBD>令并<E4BBA4><E5B9B6>示<EFBFBD><E7A4BA>们
|
||||
<20><>
|
||||
|
||||
<20><>psql<71><6C>使<EFBFBD><E4BDBF> \dt <20><>令<EFBFBD><E4BBA4><EFBFBD><EFBFBD>示<EFBFBD><E7A4BA><EFBFBD><EFBFBD>表<EFBFBD><E8A1A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>解psql中
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>令<EFBFBD>表<EFBFBD><E8A1A8>使<EFBFBD><E4BDBF>\? <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>以<EFBFBD>读 psql <20><><EFBFBD>代<EFBFBD>
|
||||
<20>件pgsql/src/bin/psql/describe.c<><63><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>为<EFBFBD><E4B8BA>psql<71><6C><EFBFBD> <20><>令<EFBFBD><E4BBA4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> SQL
|
||||
<20><>令<EFBFBD><E4BBA4><EFBFBD> <20><><EFBFBD><EFBFBD>以带 -E <20>项<EFBFBD><E9A1B9><EFBFBD><EFBFBD> psql<71><6C> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>psql中
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>令<EFBFBD><E4BBA4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>使<EFBFBD><E4BDBF><EFBFBD>SQL<51><4C>询语
|
||||
<20><><EFBFBD>PostgreSQL<51><4C><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>个<EFBFBD><E4B8AA>容SQL<51>INFORMATION SCHEMA<4D><41><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<20><> <20><>以<EFBFBD><E4BBA5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>信<EFBFBD><E4BFA1><EFBFBD>
|
||||
|
||||
<20><>系<EFBFBD><E7B3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>以pg_ <20>头<EFBFBD>系<EFBFBD><E7B3BB>表<EFBFBD><E8A1A8><EFBFBD>述<EFBFBD><E8BFB0>表<EFBFBD><E8A1A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
使<><E4BDBF> psql -l <20>令<EFBFBD><E4BBA4>以<EFBFBD><E4BBA5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
<20><><EFBFBD><EFBFBD>以<EFBFBD><E4BBA5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
pgsql/src/tutorial/syscat.source<63>件<EFBFBD><E4BBB6><EFBFBD><EFBFBD><EFBFBD>举<EFBFBD><E4B8BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>系<EFBFBD><E7B3BB>表<EFBFBD><E8A1A8>
|
||||
<20><><EFBFBD>信<EFBFBD><E4BFA1><EFBFBD>SELECT<43><54><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
4.3) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>个<EFBFBD>段<EFBFBD><E6AEB5><EFBFBD><EFBFBD><EFBFBD>类<EFBFBD><E7B1BB><EFBFBD>
|
||||
|
||||
<20><>8.0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>个<EFBFBD>段<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>类<EFBFBD><EFBFBD><EFBFBD>容<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>使<EFBFBD><EFBFBD> ALTER TABLE ALTER
|
||||
COLUMN TYPE <20>
|
||||
|
||||
<20><>以<EFBFBD><E4BBA5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>以<EFBFBD><E4BBA5><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
BEGIN;
|
||||
ALTER TABLE tab ADD COLUMN new_col new_data_type;
|
||||
UPDATE tab SET new_col = CAST(old_col AS new_data_type);
|
||||
ALTER TABLE tab DROP COLUMN old_col;
|
||||
COMMIT;
|
||||
|
||||
<20><> <20><><EFBFBD><EFBFBD><EFBFBD>以使<E4BBA5><E4BDBF>VACUUM FULL tab <20>令<EFBFBD><E4BBA4>使系<E4BDBF><E7B3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>空<EFBFBD><E7A9BA><EFBFBD>
|
||||
|
||||
4.4) <20><><EFBFBD>记<EFBFBD><E8AEB0><EFBFBD><EFBFBD><EFBFBD>个表<E4B8AA><E8A1A8><EFBFBD>个<EFBFBD><E4B8AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>大<EFBFBD><E5A4A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
<20>个<EFBFBD><E4B8AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>大尺寸<E5B0BA><E5AFB8> <20> <20><><EFBFBD><EFBFBD><EFBFBD>已<EFBFBD><E5B7B2><EFBFBD><EFBFBD> 32TB <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<20>个表<E4B8AA><E8A1A8>大尺寸<E5B0BA><E5AFB8> 32 TB
|
||||
<20><><EFBFBD><EFBFBD>记<EFBFBD><E8AEB0><EFBFBD><EFBFBD>大尺寸<E5B0BA><E5AFB8> 1.6 TB
|
||||
<20><>个<EFBFBD>段<EFBFBD><E6AEB5>大尺寸? 1 GB
|
||||
<20><>个表<E4B8AA><E8A1A8>大<EFBFBD><E5A4A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD>
|
||||
<20><>个表<E4B8AA><E8A1A8>大<EFBFBD><E5A4A7><EFBFBD><EFBFBD><EFBFBD> 250-1600 <20><><EFBFBD><EFBFBD><EFBFBD>类<EFBFBD><E7B1BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<20><>个表<E4B8AA><E8A1A8><EFBFBD>大索<E5A4A7><E7B4A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD>
|
||||
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>没<EFBFBD><E6B2A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>空<EFBFBD><E7A9BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/交<><E4BAA4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>约<EFBFBD>
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>述<EFBFBD><E8BFB0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>常<EFBFBD><E5B8B8>大<EFBFBD><E5A4A7><EFBFBD><EFBFBD>系<EFBFBD><E7B3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>大影<E5A4A7><E5BDB1>
|
||||
|
||||
<20>表<EFBFBD><E8A1A8>大大<E5A4A7><E5A4A7> 32 TB
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>系<EFBFBD><E7B3BB>对<EFBFBD>个<EFBFBD>件<EFBFBD><E4BBB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>大<EFBFBD><E5A4A7><EFBFBD><EFBFBD><EFBFBD>大表<E5A4A7><E8A1A8><EFBFBD><EFBFBD>个 1 GB <20><>件<EFBFBD><E4BBB6>
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>件系<E4BBB6><E7B3BB>大<EFBFBD><E5A4A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
<20><><EFBFBD>缺<EFBFBD><E7BCBA><EFBFBD>大<EFBFBD><E5A4A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 32K <20><><EFBFBD>大<EFBFBD><E5A4A7>表大<E8A1A8><E5A4A7><EFBFBD><EFBFBD>大<EFBFBD><E5A4A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>以<EFBFBD><E4BBA5><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
<20><><EFBFBD>个<EFBFBD><E4B8AA><EFBFBD>就<EFBFBD><E5B0B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>对大<E5AFB9><E5A4A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>2000<30><30>
|
||||
<20><><EFBFBD><EFBFBD>建索<E5BBBA><E7B4A2><EFBFBD>幸<EFBFBD><E5B9B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>索<EFBFBD><E7B4A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>对<EFBFBD><E5AFB9><EFBFBD><EFBFBD>
|
||||
<20><><EFBFBD><EFBFBD>容<EFBFBD><E5AEB9><EFBFBD><EFBFBD>MD5<44><35><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>索<EFBFBD><E7B4A2><EFBFBD><EFBFBD>对<EFBFBD><E5AFB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
并<><E5B9B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>索<EFBFBD>许对<E8AEB8><E5AFB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>索<EFBFBD>
|
||||
|
||||
4.5) <20><><EFBFBD><EFBFBD><EFBFBD>个<EFBFBD><E4B8AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>件<EFBFBD><E4BBB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>空<EFBFBD><E7A9BA><EFBFBD><EFBFBD>
|
||||
|
||||
<20><>个 Postgres <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<20><><EFBFBD><EFBFBD>个<EFBFBD><E4B8AA><EFBFBD><EFBFBD>件<EFBFBD><E4BBB6><EFBFBD><EFBFBD> <20><><EFBFBD>空<EFBFBD><E7A9BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>个<EFBFBD><E4B8AA><EFBFBD><EFBFBD>件<EFBFBD><E4BBB6>身大<E8BAAB><E5A4A7>5<EFBFBD><35><EFBFBD><EFBFBD>
|
||||
<20>空<EFBFBD><E7A9BA><EFBFBD>
|
||||
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>设<EFBFBD><E8AEBE><EFBFBD>个 100,000 <20><><EFBFBD><EFBFBD>件<EFBFBD><E4BBB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>个<EFBFBD><E4B8AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>个<EFBFBD><E4B8AA><EFBFBD><EFBFBD>述<EFBFBD>
|
||||
<20>设<EFBFBD><E8AEBE><EFBFBD>串<EFBFBD>平<EFBFBD><E5B9B3><EFBFBD>度为20<32><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>件<EFBFBD> <20><> 2.8 MB<4D><42><EFBFBD>
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>PostgreSQL<51><4C><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>件大约<E5A4A7><E7BAA6> 6.4 MB:
|
||||
28 <20><>: <20><><EFBFBD><EFBFBD><EFBFBD>头<EFBFBD><E5A4B4>大约<E5A4A7><E7BAA6><EFBFBD><EFBFBD>
|
||||
24 <20><>: <20><>个<EFBFBD><E4B8AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>段<EFBFBD><E6AEB5><EFBFBD>个<EFBFBD><E4B8AA><EFBFBD><EFBFBD><EFBFBD>段
|
||||
+ 4 <20><>: 页<><E9A1B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
----------------------------------------
|
||||
56 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
PostgreSQL <20><><EFBFBD><EFBFBD>页<EFBFBD>大<EFBFBD><E5A4A7><EFBFBD><EFBFBD> 8192 <20><> (8 KB)<29><><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
8192 <20><><EFBFBD><EFBFBD>页
|
||||
------------------- = 146 <20><>/<2F><><EFBFBD><EFBFBD>页<EFBFBD><E9A1B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
56 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
100000 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
-------------------- = 685 <20><><EFBFBD><EFBFBD>页<EFBFBD><E9A1B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
146 <20><>/<2F><><EFBFBD><EFBFBD>页
|
||||
|
||||
685 <20><><EFBFBD><EFBFBD>页 * 8192 <20><>/页 = 5,611,520 <20><><EFBFBD><EFBFBD>5.6 MB<4D><42>
|
||||
|
||||
索<><E7B4A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>确<EFBFBD><E7A1AE><EFBFBD><EFBFBD><EFBFBD>被索<E8A2AB><E7B4A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>
|
||||
<20><><EFBFBD>们<EFBFBD><E4BBAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>大<EFBFBD>
|
||||
|
||||
空<><E7A9BA>NULL<4C><4C><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>空<EFBFBD><E7A9BA><EFBFBD>
|
||||
|
||||
4.6) 为<><E4B8BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>询<EFBFBD><E8AFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>为<EFBFBD><E4B8BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>询没<E8AFA2><E6B2A1><EFBFBD><EFBFBD><EFBFBD>索<EFBFBD><E7B4A2><EFBFBD><EFBFBD>
|
||||
|
||||
并<><E5B9B6><EFBFBD>个<EFBFBD><E4B8AA>询<EFBFBD><E8AFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>使<EFBFBD><E4BDBF>索<EFBFBD><E7B4A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>表<EFBFBD>大<EFBFBD><E5A4A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>个<EFBFBD><E4B8AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>并<EFBFBD><E5B9B6><EFBFBD><EFBFBD>
|
||||
询<><E8AFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>表<EFBFBD><E8A1A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>记<EFBFBD><E8AEB0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>索<EFBFBD><E7B4A2><EFBFBD>
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD> 为索<E4B8BA><E7B4A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>起<EFBFBD><E8B5B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>读<EFBFBD>表<EFBFBD><E8A1A8>顺<EFBFBD><E9A1BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
为<><E4B8BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<20><><EFBFBD><EFBFBD>使<EFBFBD><E4BDBF>索<EFBFBD><E7B4A2><EFBFBD><EFBFBD>PostgreSQL<51><4C>须<EFBFBD><E9A1BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>表<EFBFBD><E8A1A8><EFBFBD>计<EFBFBD><E8AEA1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>计<EFBFBD><E8AEA1><EFBFBD><EFBFBD>以使<E4BBA5>
|
||||
<20> VACUUM ANALYZE<5A><45><EFBFBD> ANALYZE <20><><EFBFBD><EFBFBD><EFBFBD> 使<><E4BDBF><EFBFBD><EFBFBD>计<EFBFBD><E8AEA1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>表中
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>就<EFBFBD><E5B0B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>好<EFBFBD><E5A5BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>索<EFBFBD><E7B4A2><EFBFBD>
|
||||
<20><>计<EFBFBD><E8AEA1>对确<E5AFB9><E7A1AE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>顺<EFBFBD><E9A1BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>表<EFBFBD><E8A1A8>容<EFBFBD><E5AEB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<20><><EFBFBD><EFBFBD>计<EFBFBD><E8AEA1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
索<><E7B4A2><EFBFBD>常<EFBFBD><E5B8B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ORDER BY
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>对<EFBFBD><E5AFB9>个大表<E5A4A7><E8A1A8><EFBFBD>次顺<E6ACA1><E9A1BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>次<EFBFBD><E6ACA1><EFBFBD><EFBFBD>常<EFBFBD><E5B8B8>索<EFBFBD><E7B4A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>快<EFBFBD><E5BFAB><EFBFBD>
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> LIMIT <20> ORDER BY
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>起使<E8B5B7><E4BDBF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>常<EFBFBD><E5B8B8><EFBFBD><EFBFBD>使<EFBFBD><E4BDBF>索<EFBFBD><E7B4A2><EFBFBD><EFBFBD><EFBFBD> 为<><E4B8BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>表中
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>记<EFBFBD><E8AEB0><EFBFBD>
|
||||
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD> 确信PostgreSQL<51><4C><EFBFBD><EFBFBD><EFBFBD><EFBFBD>使<EFBFBD><E4BDBF>顺<EFBFBD><E9A1BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>确<EFBFBD><E7A1AE><EFBFBD><EFBFBD><EFBFBD> <20><>以使<E4BBA5><E4BDBF>SET
|
||||
enable_seqscan TO 'off'<27>令<EFBFBD><E4BBA4><EFBFBD><EFBFBD><EFBFBD>顺<EFBFBD><E9A1BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<20><><EFBFBD><EFBFBD>次<EFBFBD><E6ACA1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>询<EFBFBD><E8AFA2><EFBFBD><EFBFBD> 就<><E5B0B1>以<EFBFBD><E4BBA5><EFBFBD>使<EFBFBD><E4BDBF><EFBFBD><EFBFBD>个索<E4B8AA><E7B4A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>确<EFBFBD><E7A1AE><EFBFBD><EFBFBD>快<EFBFBD><E5BFAB><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
<20><>使<EFBFBD><E4BDBF><EFBFBD><EFBFBD>符<EFBFBD><E7ACA6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> LIKE <20> ~ <20><><EFBFBD><EFBFBD>索<EFBFBD><E7B4A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>使<EFBFBD><E4BDBF><EFBFBD><EFBFBD>
|
||||
* <20>符串<E7ACA6><E4B8B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>须<EFBFBD><E9A1BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>符串<E7ACA6><E4B8B2><EFBFBD><EFBFBD>就<EFBFBD><E5B0B1>说<EFBFBD><E8AFB4>
|
||||
+ LIKE 模<><E6A8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>以 % <20>头<EFBFBD>
|
||||
+ ~ <20><><EFBFBD><EFBFBD><EFBFBD>表达<E8A1A8><E8BEBE><EFBFBD><EFBFBD>模<EFBFBD><E6A8A1><EFBFBD><EFBFBD>须以 ^ <20>头<EFBFBD>
|
||||
* <20>符串<E7ACA6><E4B8B2><EFBFBD><EFBFBD>以<EFBFBD><E4BBA5><EFBFBD><EFBFBD><EFBFBD>个<EFBFBD>符<EFBFBD>模<EFBFBD><E6A8A1>类<EFBFBD>头<EFBFBD><E5A4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD> [a-e]<5D>
|
||||
* 大<><E5A4A7><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ILIKE <20> ~* <20><><EFBFBD>使<EFBFBD><E4BDBF>索<EFBFBD><E7B4A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>以<EFBFBD><E4BBA5> 4.8
|
||||
<20><>述<EFBFBD>表达<E8A1A8><E8BEBE>索<EFBFBD><E7B4A2><EFBFBD>
|
||||
* <20><><EFBFBD> initdb <20><><EFBFBD><EFBFBD>须<EFBFBD><E9A1BB><EFBFBD>缺<EFBFBD><E7BCBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>设置 C
|
||||
locale<6C><65><EFBFBD> 为系<E4B8BA><E7B3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>C locale<6C><65><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>个<EFBFBD>大<EFBFBD>符<EFBFBD><E7ACA6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>以<EFBFBD>建<EFBFBD><E5BBBA>个<EFBFBD><E4B8AA><EFBFBD><EFBFBD><EFBFBD>text_pattern_ops索<73><E7B4A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>LIKE
|
||||
<20>索<EFBFBD><E7B4A2><EFBFBD>
|
||||
|
||||
<20><>8.0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>中
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>询<EFBFBD><E8AFA2><EFBFBD><EFBFBD><EFBFBD>类<EFBFBD><E7B1BB>索<EFBFBD><E7B4A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>类<EFBFBD><E7B1BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>索<EFBFBD><E7B4A2><EFBFBD><EFBFBD>常<EFBFBD><E5B8B8><EFBFBD><EFBFBD>被<EFBFBD><E8A2AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD>对int2,int8<74><38><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>索<EFBFBD><E7B4A2><EFBFBD>
|
||||
|
||||
4.7) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>询<EFBFBD><E8AFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>估<EFBFBD><E4BCB0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>询<EFBFBD><E8AFA2>
|
||||
|
||||
<20><> EXPLAIN <20><>页<EFBFBD>
|
||||
|
||||
4.8) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>表达<E8A1A8><E8BEBE><EFBFBD>索<EFBFBD>大<EFBFBD><E5A4A7><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
<20><>表达<E8A1A8><E8BEBE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>索<EFBFBD><E7B4A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>大<EFBFBD><E5A4A7><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
<20><><EFBFBD>符 ~ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>表达<E8A1A8><E8BEBE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ~* <20><><EFBFBD>大<EFBFBD><E5A4A7><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
<20><>表达<E8A1A8><E8BEBE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>大<EFBFBD><E5A4A7><EFBFBD><EFBFBD> <20><><EFBFBD> LIKE <20><><EFBFBD><EFBFBD>为 ILIKE<4B>
|
||||
|
||||
大<><E5A4A7><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>常<EFBFBD><E5B8B8><EFBFBD><EFBFBD>
|
||||
SELECT *
|
||||
FROM tab
|
||||
WHERE lower(col) = 'abc';
|
||||
|
||||
<20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>使<EFBFBD><E4BDBF><EFBFBD> <20><>索<EFBFBD><E7B4A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>以<EFBFBD>建<EFBFBD><E5BBBA>个<EFBFBD><E4B8AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>使<EFBFBD><E4BDBF><EFBFBD>表达<E8A1A8><E8BEBE><EFBFBD>
|
||||
<20><><EFBFBD><EFBFBD>:
|
||||
CREATE INDEX tabindex ON tab (lower(col));
|
||||
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD>述索<E8BFB0><E7B4A2><EFBFBD><EFBFBD><EFBFBD>建<EFBFBD><E5BBBA><EFBFBD> <20><>UNIQUE约<45><E7BAA6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>索<EFBFBD><E7B4A2><EFBFBD>段<EFBFBD><E6AEB5>身<EFBFBD>容<EFBFBD><E5AEB9>以<EFBFBD><E4BBA5>
|
||||
<20><>大<EFBFBD><E5A4A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>容<EFBFBD><E5AEB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>UNIQUE约<45><E7BAA6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>容<EFBFBD><E5AEB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>大<EFBFBD><E5A4A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>为<EFBFBD><E4B8BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>以使<E4BBA5><E4BDBF>CHECK约<4B><E7BAA6><EFBFBD>件<EFBFBD><E4BBB6><EFBFBD>触<EFBFBD><E8A7A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
4.9) <20><><EFBFBD><EFBFBD>个<EFBFBD><E4B8AA>询<EFBFBD><E8AFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>个<EFBFBD>段<EFBFBD><E6AEB5><EFBFBD><EFBFBD>为 NULL <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>确<EFBFBD><E7A1AE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>论<EFBFBD><E8AEBA><EFBFBD>
|
||||
段<><E6AEB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD> NULL <20><><EFBFBD><EFBFBD>
|
||||
|
||||
<20><> IS NULL <20> IS NOT NULL <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>个<EFBFBD>段<EFBFBD><E6AEB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
SELECT *
|
||||
FROM tab
|
||||
WHERE col IS NULL;
|
||||
|
||||
为<><E4B8BA><EFBFBD><EFBFBD>对<EFBFBD><E5AFB9> NULL<4C>段<EFBFBD><E6AEB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ORDER BY <20><>件<EFBFBD><E4BBB6>使<EFBFBD><E4BDBF> IS NULL<4C> IS NOT
|
||||
NULL 修饰符<E9A5B0><E7ACA6><EFBFBD><EFBFBD>件为<E4BBB6> true <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>件为<E4BBB6>false <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
就<><E5B0B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD> NULL <20>记<EFBFBD><E8AEB0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
SELECT *
|
||||
FROM tab
|
||||
ORDER BY (col IS NOT NULL)
|
||||
|
||||
4.10) <20><><EFBFBD><EFBFBD>符类<E7ACA6><E7B1BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
类<> <20><><EFBFBD><EFBFBD>称 说<>
|
||||
VARCHAR(n) varchar <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>大<EFBFBD><E5A4A7>度<EFBFBD><E5BAA6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
符串<E7ACA6><E4B8B2><EFBFBD><EFBFBD>足<EFBFBD><E8B6B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>度<EFBFBD><E5BAA6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>补<EFBFBD><E8A1A5>
|
||||
CHAR(n) bpchar <20><><EFBFBD><EFBFBD><EFBFBD>符串<E7ACA6><E4B8B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>足<EFBFBD><E8B6B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>度<EFBFBD><E5BAA6><EFBFBD><EFBFBD>以空<E4BBA5> <20>补<EFBFBD><E8A1A5>
|
||||
TEXT text 没<><E6B2A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>大<EFBFBD><E5A4A7>度<EFBFBD><E5BAA6><EFBFBD><EFBFBD><EFBFBD>
|
||||
BYTEA bytea <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>使<EFBFBD><E4BDBF>NULL<4C>符<EFBFBD><E7ACA6><EFBFBD><EFBFBD><EFBFBD>许<EFBFBD><E8AEB8><EFBFBD>
|
||||
"char" char <20>个<EFBFBD>符
|
||||
|
||||
<20><>系<EFBFBD><E7B3BB>表<EFBFBD><E8A1A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>误信<E8AFAF><E4BFA1><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>称<EFBFBD>
|
||||
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>类<EFBFBD><E7B1BB><EFBFBD>"varlena"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>类<EFBFBD><E7B1BB><EFBFBD><EFBFBD><EFBFBD>就<EFBFBD><E5B0B1>说<EFBFBD><E8AFB4><EFBFBD><EFBFBD>头<EFBFBD><E5A4B4>个<EFBFBD><E4B8AA>
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD>度<EFBFBD><E5BAA6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>空<EFBFBD><E7A9BA><EFBFBD><EFBFBD>声<EFBFBD><E5A3B0>大<EFBFBD><E5A4A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>类<EFBFBD><E7B1BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>以被<E4BBA5>缩<EFBFBD><E7BCA9><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>
|
||||
<20><><EFBFBD><EFBFBD>空<EFBFBD><E7A9BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
VARCHAR(n) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>大<EFBFBD><E5A4A7>度<EFBFBD><E5BAA6><EFBFBD><EFBFBD><EFBFBD>符串<E7ACA6><E4B8B2><EFBFBD>好<EFBFBD><E5A5BD> TEXT <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<20><><EFBFBD>大<EFBFBD><E5A4A7>达 1G左<47><E5B7A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>度<EFBFBD><E5BAA6>符串<E7ACA6>
|
||||
|
||||
CHAR(n) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>度<EFBFBD><E5BAA6><EFBFBD><EFBFBD><EFBFBD>符串<E7ACA6> CHAR(n)<29><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
段<><E6AEB5>度以空<E4BBA5> <20>补足<E8A1A5><E8B6B3><EFBFBD><EFBFBD>足<EFBFBD><E8B6B3>段<EFBFBD>容<EFBFBD><E5AEB9><EFBFBD><EFBFBD> <20> VARCHAR(n) <20><><EFBFBD><EFBFBD>
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>容<EFBFBD> BYTEA <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>尤<EFBFBD><E5B0A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> NULL <20><>
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>类<EFBFBD><E7B1BB><EFBFBD><EFBFBD>差<EFBFBD><E5B7AE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
4.11.1) <20><><EFBFBD> <20><>建<EFBFBD><E5BBBA>个<EFBFBD><E4B8AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>段<EFBFBD><E6AEB5>
|
||||
|
||||
PostgreSQL <20><><EFBFBD> SERIAL <20><><EFBFBD><EFBFBD>类<EFBFBD><E7B1BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
段<><E6AEB5><EFBFBD><EFBFBD>为SERIAL<41><4C><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>建<EFBFBD><E5BBBA>个<EFBFBD><E4B8AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
CREATE TABLE person (
|
||||
id SERIAL,
|
||||
name TEXT
|
||||
);
|
||||
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>转<EFBFBD><E8BDAC>为以<E4B8BA><E4BBA5>SQL<51><4C><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
CREATE SEQUENCE person_id_seq;
|
||||
CREATE TABLE person (
|
||||
id INT4 NOT NULL DEFAULT nextval('person_id_seq'),
|
||||
name TEXT
|
||||
);
|
||||
|
||||
<20><> create_sequence <20><>页<EFBFBD><E9A1B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>信<EFBFBD><E4BFA1><EFBFBD>
|
||||
|
||||
4.11.2) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>个<EFBFBD><E4B8AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> nextval() <20><><EFBFBD><EFBFBD><EFBFBD>对象<E5AFB9><E8B1A1><EFBFBD>索<EFBFBD><E7B4A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>个 SERIAL
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>精确<E7B2BE><E7A1AE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>使<EFBFBD><E4BDBF> 4.11.1 <20><><EFBFBD><EFBFBD>表<EFBFBD><E8A1A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>伪<EFBFBD> <20><><EFBFBD> <20><>述<EFBFBD><E8BFB0>
|
||||
new_id = execute("SELECT nextval('person_id_seq')");
|
||||
execute("INSERT INTO person (id, name) VALUES (new_id, 'Blaise Pascal')");
|
||||
|
||||
<20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>询<EFBFBD><E8AFA2>使<EFBFBD><E4BDBF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> new_id <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>为<EFBFBD><E4B8BA><EFBFBD> person
|
||||
表<><E8A1A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 注<><E6B3A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>建<EFBFBD> SEQUENCE 对象<E5AFB9><E8B1A1>称<EFBFBD><E7A7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<table>_<serialcolumn>_seq<65><71> <20><><EFBFBD> table <20> serialcolumn
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>表<EFBFBD><E8A1A8>称<EFBFBD><E7A7B0><EFBFBD> <20> SERIAL <20>段<EFBFBD><E6AEB5>称<EFBFBD>
|
||||
|
||||
类似<E7B1BB><E4BCBC><EFBFBD><EFBFBD><EFBFBD> SERIAL 对象缺<E8B1A1><E7BCBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>以<EFBFBD><E4BBA5><EFBFBD><EFBFBD><EFBFBD><EFBFBD> currval() <20><>索<EFBFBD><E7B4A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
SERIAL <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
execute("INSERT INTO person (name) VALUES ('Blaise Pascal')");
|
||||
new_id = execute("SELECT currval('person_id_seq')");
|
||||
|
||||
4.11.3) <20><><EFBFBD>使<EFBFBD><E4BDBF> currval() <20><>导<EFBFBD><E5AFBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD>currval() <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>次<EFBFBD><E6ACA1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
4.11.4) 为<><E4B8BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>常<EFBFBD><E5B8B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>为<EFBFBD><E4B8BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>段<EFBFBD><E6AEB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<20><><EFBFBD><EFBFBD>
|
||||
|
||||
为<><E4B8BA><EFBFBD><EFBFBD><EFBFBD>并<EFBFBD><E5B9B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>并<EFBFBD><E5B9B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>就<EFBFBD><E5B0B1>导<EFBFBD><E5AFBC><EFBFBD><EFBFBD>常中
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
4.12) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> OID <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> CTID <20><>
|
||||
|
||||
PostgreSQL
|
||||
<20><>建<EFBFBD><E5BBBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>记<EFBFBD><E8AEB0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>个<EFBFBD><E4B8AA><EFBFBD><EFBFBD><EFBFBD>OID<49><44><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>建表<E5BBBA><E8A1A8>使<EFBFBD><E4BDBF>WITHOUT
|
||||
OIDS<44>项<EFBFBD> OID<49>建<EFBFBD><E5BBBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>个4<E4B8AA><34><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> OID
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>PostgreSQL<51><4C><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>40亿<30><E4BABF><EFBFBD><EFBFBD>溢<EFBFBD><E6BAA2><EFBFBD><EFBFBD> OID<49><44>
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>PostgreSQL <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>系<EFBFBD><E7B3BB>表<EFBFBD>使<EFBFBD><E4BDBF> OID <20><>表<EFBFBD><E8A1A8><EFBFBD><EFBFBD>建<EFBFBD><E5BBBA><EFBFBD>系<EFBFBD>
|
||||
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>表<EFBFBD><E8A1A8><EFBFBD><EFBFBD><EFBFBD>好<EFBFBD><E5A5BD>使<EFBFBD><E4BDBF>SERIAl<41><6C>代<EFBFBD><E4BBA3>OID
|
||||
<20> 为SERIAL<41><4C><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>个表中
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>就<EFBFBD><E5B0B1>以<EFBFBD><E4BBA5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>溢<EFBFBD><E6BAA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>就<EFBFBD>常<EFBFBD><E5B8B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
SERIAL8<4C><38><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>8<EFBFBD><38><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
CTID <20><><EFBFBD><EFBFBD><EFBFBD> <20><>带<EFBFBD><E5B8A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>移<EFBFBD><E7A7BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> CTID
|
||||
<20><>记<EFBFBD><E8AEB0>被<EFBFBD><E8A2AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>载<EFBFBD><E8BDBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>索<EFBFBD><E7B4A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>使<EFBFBD><E4BDBF><EFBFBD><EFBFBD>们<EFBFBD><E4BBAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
4.13) 为<><E4B8BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>误信<E8AFAF><E4BFA1><EFBFBD>ERROR: Memory exhausted in AllocSetAlloc()<29><><EFBFBD>
|
||||
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>系<EFBFBD><E7B3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>对<EFBFBD><E5AFB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
postmaster <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>令<EFBFBD><E4BBA4>
|
||||
ulimit -d 262144
|
||||
limit datasize 256m
|
||||
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>
|
||||
shell<6C><6C><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>令<EFBFBD><E4BBA4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>段<EFBFBD><E6AEB5><EFBFBD>设<EFBFBD><E8AEBE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<20> <20><><EFBFBD>许<EFBFBD><E8AEB8>让<EFBFBD><E8AEA9>询<EFBFBD><E8AFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>令<EFBFBD><E4BBA4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>以<EFBFBD><E4BBA5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>令<EFBFBD><E4BBA4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>SQL客<4C><E5AEA2>端<EFBFBD><E7ABAF><EFBFBD> 为<><E4B8BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>太<EFBFBD><E5A4AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>请<EFBFBD><E8AFB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
客<><E5AEA2>端<EFBFBD><E7ABAF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>述<EFBFBD><E8BFB0>令<EFBFBD>
|
||||
|
||||
4.14) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>PostgreSQL<51><4C><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
<20><> psql <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> SELECT version();<3B>令<EFBFBD>
|
||||
|
||||
4.15) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>建<EFBFBD><E5BBBA>个缺<E4B8AA><E7BCBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>段<EFBFBD><E6AEB5>
|
||||
|
||||
使<><E4BDBF> CURRENT_TIMESTAMP<4D><50>
|
||||
CREATE TABLE test (x int, modtime TIMESTAMP DEFAULT CURRENT_TIMESTAMP );
|
||||
|
||||
4.16) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> outer join <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
PostgreSQL <20><><EFBFBD><EFBFBD> <20><> SQL <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>两个<E4B8A4><E4B8AA><EFBFBD><EFBFBD><EFBFBD>
|
||||
SELECT *
|
||||
FROM t1 LEFT OUTER JOIN t2 ON (t1.col = t2.col);
|
||||
|
||||
<20><><EFBFBD>
|
||||
SELECT *
|
||||
FROM t1 LEFT OUTER JOIN t2 USING (col);
|
||||
|
||||
<20><>两个<E4B8A4>价<EFBFBD><E4BBB7><EFBFBD>询<EFBFBD><E8AFA2> t1.col <20> t2.col <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>并<EFBFBD><E5B9B6><EFBFBD><EFBFBD><EFBFBD> t1 中
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> t2 <20><>没<EFBFBD><E6B2A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>[<5B><>]<5D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>RIGHT OUTER
|
||||
JOIN<49><4E><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> t2 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>FULL OUTER JOIN<49><4E><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> t1 <20> t2
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> OUTER <20><>左[<5B><>]<5D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>[<5B><>]<5D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>[<5B><>]<5D><><EFBFBD><EFBFBD>中
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>被称为<E7A7B0><E4B8BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>INNER JOIN<49><4E><EFBFBD>
|
||||
|
||||
4.17) <20><><EFBFBD><EFBFBD>使<EFBFBD><E4BDBF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>个<EFBFBD><E4B8AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>询<EFBFBD><E8AFA2>
|
||||
|
||||
没<><E6B2A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>询<EFBFBD><E8AFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<20> 为PostgreSQL<51><4C><EFBFBD> 载<><E8BDBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>系<EFBFBD><E7B3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>系<EFBFBD><E7B3BB>表<EFBFBD><E8A1A8><EFBFBD><EFBFBD><EFBFBD> <20><>
|
||||
<20>跨<EFBFBD><E8B7A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>询<EFBFBD><E8AFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
<20><> <20><><EFBFBD><EFBFBD>模<EFBFBD>contrib/dblink<6E>许<EFBFBD><E8AEB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>跨<EFBFBD><E8B7A8><EFBFBD><EFBFBD>询<EFBFBD><E8AFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>以
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>询<EFBFBD><E8AFA2><EFBFBD><EFBFBD><EFBFBD>客<EFBFBD><E5AEA2>端<EFBFBD>并<EFBFBD><E5B9B6><EFBFBD><EFBFBD>
|
||||
|
||||
4.18) <20><><EFBFBD><EFBFBD>让<EFBFBD><E8AEA9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>记<EFBFBD><E8AEB0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>容<EFBFBD>使<EFBFBD><E4BDBF><EFBFBD><EFBFBD><EFBFBD>详<EFBFBD><E8AFA6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
http://techdocs.postgresql.org/guides/SetReturningFunctions
|
||||
|
||||
4.19) 为<><E4B8BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>使<EFBFBD><E4BDBF>PL/PgSQL<51><4C><EFBFBD><EFBFBD><EFBFBD><EFBFBD>临<EFBFBD><E4B8B4>表<EFBFBD><E8A1A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>误信<E8AFAF><E4BFA1><EFBFBD>relation with
|
||||
OID ##### does not exist<73><74><EFBFBD>
|
||||
|
||||
PL/PgSQL<51><4C><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>容<EFBFBD><E5AEB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>带<EFBFBD><E5B8A6><EFBFBD><EFBFBD><EFBFBD>个<EFBFBD><E4B8AA>好<EFBFBD><E5A5BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>个
|
||||
PL/PgSQL
|
||||
<20><><EFBFBD><EFBFBD>访<EFBFBD><E8AEBF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>个临<E4B8AA><E4B8B4>表<EFBFBD><E8A1A8><EFBFBD><EFBFBD><EFBFBD>该表被<E8A1A8> <20><>并<EFBFBD>建<EFBFBD><E5BBBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>次<EFBFBD><E6ACA1><EFBFBD><EFBFBD>该<EFBFBD><E8AFA5><EFBFBD><EFBFBD><EFBFBD>
|
||||
<20>失败<E5A4B1><E8B4A5> <20> 为<><E4B8BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>容<EFBFBD><E5AEB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>临<EFBFBD><E4B8B4>表<EFBFBD>解<EFBFBD><E8A7A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> PL/PgSQL
|
||||
<20><><EFBFBD><EFBFBD>EXECUTE
|
||||
对临<E5AFB9><E4B8B4>表<EFBFBD><E8A1A8><EFBFBD><EFBFBD>访<EFBFBD><E8AEBF><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>询<EFBFBD><E8AFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>被<EFBFBD><E8A2AB><EFBFBD>解<EFBFBD><E8A7A3>
|
||||
|
||||
4.20) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>个<EFBFBD><E4B8AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>好<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>缺<EFBFBD><E7BCBA><EFBFBD><EFBFBD>
|
||||
|
||||
主/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>许<EFBFBD><E8AEB8>个主<E4B8AA><E4B8BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>读/<2F><><EFBFBD><EFBFBD>请<EFBFBD><E8AFB7><EFBFBD><EFBFBD><EFBFBD>个<EFBFBD><E4B8AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<20><>/SELECT<43><54>询<EFBFBD><E8AFA2><EFBFBD>请<EFBFBD><E8AFB7> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>费<EFBFBD>主/<2F><>PostgreSQL<51><4C><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
Slony-I <20>
|
||||
|
||||
<20><>个主<E4B8AA><E4B8BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>许<EFBFBD><E8AEB8>读/<2F><><EFBFBD><EFBFBD>请<EFBFBD><E8AFB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>计<EFBFBD><E8AEA1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>带<EFBFBD><E5B8A6><EFBFBD><EFBFBD>严<EFBFBD><E4B8A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>失<EFBFBD><E5A4B1>Pgcluster<65><72><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 中
|
||||
<20>好<EFBFBD><E5A5BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>以<EFBFBD>费<EFBFBD><E8B4B9>载<EFBFBD>
|
||||
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>费<EFBFBD><E8B4B9><EFBFBD><EFBFBD><EFBFBD>硬件<E7A1AC><E4BBB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>述<EFBFBD><E8BFB0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>模<EFBFBD><E6A8A1>
|
||||
|
||||
4.21) 为<><E4B8BA><EFBFBD><EFBFBD>询<EFBFBD><E8AFA2><EFBFBD><EFBFBD><EFBFBD>示<EFBFBD>表<EFBFBD><E8A1A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>询<EFBFBD><E8AFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>为<EFBFBD><E4B8BA>大<EFBFBD><E5A4A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
<20>常<EFBFBD><E5B8B8><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>建表<E5BBBA><E8A1A8>对表<E5AFB9><E8A1A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>使<EFBFBD><E4BDBF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>使<EFBFBD><E4BDBF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>称为<E7A7B0> <20><>符<EFBFBD><E7ACA6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 大<><E5A4A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>询<EFBFBD><E8AFA2>表<EFBFBD><E8A1A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>使<EFBFBD><E4BDBF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>工<EFBFBD><E5B7A5>软件<E8BDAF><E4BBB6><EFBFBD>pgAdmin<69><6E><EFBFBD><EFBFBD>
|
||||
<20><><EFBFBD><EFBFBD>建表<E5BBBA><E8A1A8>令<EFBFBD><E4BBA4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>个<EFBFBD> <20><>符<EFBFBD><E7ACA6><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><>
|
||||
<20><><EFBFBD>为<EFBFBD><E4B8BA><EFBFBD> <20><>符<EFBFBD><E7ACA6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>该<EFBFBD><E8AFA5>
|
||||
* <20><><EFBFBD>建表<E5BBBA><E8A1A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>符使<E7ACA6><E4BDBF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>起<EFBFBD><E8B5B7><EFBFBD>
|
||||
* <20><><EFBFBD> <20><>符<EFBFBD><E7ACA6><EFBFBD><EFBFBD>使<EFBFBD><E4BDBF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
* <20><>为<EFBFBD><E4B8BA><EFBFBD><EFBFBD>已<EFBFBD><E5B7B2><EFBFBD><EFBFBD><EFBFBD> <20><>符<EFBFBD><E7ACA6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>询<EFBFBD><E8AFA2>使<EFBFBD><E4BDBF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>符<EFBFBD><E7ACA6>起<EFBFBD><E8B5B7><EFBFBD>
|
@ -1,793 +0,0 @@
|
||||
|
||||
PostgreSQL 常<><E5B8B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>FAQ<41><51>
|
||||
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>2007 年 2 <20> 8 <20><> <20><><EFBFBD><EFBFBD> 22:43:13 EST
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>2007 年 2 <20> 12 <20><> <20><><EFBFBD><EFBFBD> 12:00:04 CST
|
||||
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>人<EFBFBD><E4BABA><EFBFBD><EFBFBD>Bruce Momjian (pgman@candle.pha.pa.us)
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>人<EFBFBD><E4BABA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(ChaoYi, Kuo)<29><>kuo.chaoyi@gmail.com<6F><6D>
|
||||
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>以<EFBFBD><E4BBA5>
|
||||
http://www.postgresql.org/files/documentation/faqs/FAQ.html <20><><EFBFBD><EFBFBD>
|
||||
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD>系統平<E7B5B1><E5B9B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> http://www.postgresql.org/docs/faq/
|
||||
裡<><E8A3A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
_________________________________________________________________
|
||||
|
||||
常<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
1.1)PostgreSQL <20><><EFBFBD><EFBFBD>麼<EFBFBD><E9BABC>該<EFBFBD>麼<EFBFBD><E9BABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
1.2)誰<><E8AAB0><EFBFBD><EFBFBD><EFBFBD>管<EFBFBD>PostgreSQL <20><>
|
||||
1.3)PostgreSQL<51><4C><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>麼<EFBFBD><E9BABC>
|
||||
1.4)PostgreSQL<51><4C>以<EFBFBD><E4BBA5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>系統平<E7B5B1><E5B9B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
1.5)<29><><EFBFBD><EFBFBD><EFBFBD>裡<EFBFBD><E8A3A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>PostgreSQL<51><4C>
|
||||
1.6)<29><><EFBFBD><EFBFBD><EFBFBD> PostgreSQL <20><><EFBFBD><EFBFBD>麼<EFBFBD><E9BABC>
|
||||
1.7)<29><><EFBFBD><EFBFBD><EFBFBD>裡<EFBFBD><E8A3A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> PostgreSQL <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
1.8)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>交<EFBFBD><E4BAA4><EFBFBD> BUG <20> <20><><EFBFBD><EFBFBD>
|
||||
1.9)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>解已<E8A7A3><E5B7B2><EFBFBD> BUG <20><><EFBFBD>缺<EFBFBD><E7BCBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
1.10)<29><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
1.11)<29><>該<EFBFBD>樣<EFBFBD><E6A8A3><EFBFBD><EFBFBD> SQL <20><>
|
||||
1.12)<29><><EFBFBD><EFBFBD><EFBFBD>交<EFBFBD><E4BAA4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
1.13)PostgreSQL <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>庫系統<E7B3BB><E7B5B1>起<EFBFBD><E8B5B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
1.14)PostgreSQL <20><>以<EFBFBD><E4BBA5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>家<EFBFBD><E5AEB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>客<EFBFBD><EFBFBD>端<EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
2.1)<29><><EFBFBD><EFBFBD>以<EFBFBD><E4BBA5><EFBFBD><EFBFBD>麼<EFBFBD><E9BABC><EFBFBD><EFBFBD><EFBFBD> PostgreSQL <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
2.2)<29><><EFBFBD>麼工<E9BABC><E5B7A5><EFBFBD><EFBFBD>以<EFBFBD> PostgreSQL <20><><EFBFBD><EFBFBD> Web <20> <20><><EFBFBD><EFBFBD>
|
||||
2.3)PostgreSQL <20><><EFBFBD>形<EFBFBD><E5BDA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(GUI)<29><><EFBFBD>
|
||||
|
||||
系統管<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
3.1)<29><>樣<EFBFBD><E6A8A3><EFBFBD><EFBFBD> PostgreSQL <20><><EFBFBD><EFBFBD> /usr/local/pgsql 以<><E4BBA5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
3.2)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
3.3)<29><>樣調<E6A8A3><E8AABF><EFBFBD><EFBFBD><EFBFBD>庫伺<E5BAAB><E4BCBA><EFBFBD>以<EFBFBD><E4BBA5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>好<EFBFBD><E5A5BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
3.4)PostgreSQL 裡<><E8A3A1>以<EFBFBD><E4BBA5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>麼樣<E9BABC>調試<E8AABF><E8A9A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
3.5)<29><><EFBFBD><EFBFBD>麼<EFBFBD><E9BABC>試<EFBFBD><E8A9A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Sorry, too many clients<74> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
3.6)PostgreSQL <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>容<EFBFBD><E5AEB9>
|
||||
3.7)(使<><E4BDBF> PostgreSQL )<29><><EFBFBD><EFBFBD>使<EFBFBD><E4BDBF><EFBFBD><EFBFBD>麼<EFBFBD><E9BABC><EFBFBD><EFBFBD>硬<EFBFBD><E7A1AC><EFBFBD><EFBFBD>
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
4.1) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>詢<EFBFBD><E8A9A2><EFBFBD><EFBFBD><EFBFBD> 幾<><E5B9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
4.2) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>表<EFBFBD>索<EFBFBD><E7B4A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>庫以<E5BAAB><E4BBA5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>義<EFBFBD><E7BEA9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> psql
|
||||
裡<><E8A3A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>詢<EFBFBD>令並顯示<E9A1AF><E7A4BA><EFBFBD><EFBFBD><EFBFBD>
|
||||
4.3) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
4.4) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>表<EFBFBD><E8A1A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>庫<EFBFBD><E5BAAB>大<EFBFBD><E5A4A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
4.5) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>件裡<E4BBB6><E8A3A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>空<EFBFBD><E7A9BA><EFBFBD>
|
||||
4.6) <20><><EFBFBD><EFBFBD>麼<EFBFBD><E9BABC><EFBFBD><EFBFBD>詢<EFBFBD><E8A9A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>麼<EFBFBD><E9BABC><EFBFBD><EFBFBD><EFBFBD>詢<EFBFBD><E8A9A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>索<EFBFBD><E7B4A2><EFBFBD><EFBFBD>
|
||||
4.7) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>詢<EFBFBD><E8A9A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>樣<EFBFBD><E6A8A3>估<EFBFBD><E4BCB0><EFBFBD><EFBFBD><EFBFBD><EFBFBD>詢<EFBFBD><E8A9A2><EFBFBD>
|
||||
4.8) <20><>樣<EFBFBD><E6A8A3><EFBFBD><EFBFBD>表<EFBFBD><E8A1A8><EFBFBD><EFBFBD>索<EFBFBD>大<EFBFBD><E5A4A7>寫<EFBFBD><E5AFAB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<20><>表<EFBFBD><E8A1A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>樣<EFBFBD><E6A8A3><EFBFBD><EFBFBD>索<EFBFBD><E7B4A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>大<EFBFBD><E5A4A7>寫<EFBFBD><E5AFAB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
4.9) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>詢裡<E8A9A2><E8A3A1><EFBFBD><EFBFBD>樣檢測<E6AAA2><E6B8AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
NULL<4C><4C><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>確<EFBFBD><E7A2BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>NULL<4C><4C><EFBFBD><EFBFBD>
|
||||
4.10) <20>種<EFBFBD>符<EFBFBD><E7ACA6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>麼<EFBFBD><E9BABC><EFBFBD><EFBFBD><EFBFBD>
|
||||
4.11.1) <20><>樣<EFBFBD><E6A8A3>建<EFBFBD><E5BBBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
4.11.2) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
4.11.3) <20><>使<EFBFBD><E4BDBF> currval() <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
4.11.4) <20><><EFBFBD><EFBFBD>麼<EFBFBD><E9BABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>常<EFBFBD><E5B8B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>麼<EFBFBD><E9BABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>中
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
4.12) <20><>麼<EFBFBD><E9BABC> OID<49><44><EFBFBD><EFBFBD>麼<EFBFBD><E9BABC> CTID <20><>
|
||||
4.13) <20><><EFBFBD><EFBFBD>麼<EFBFBD><E9BABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>誤<EFBFBD><E8AAA4><EFBFBD><EFBFBD><EFBFBD>ERROR: Memory exhausted in
|
||||
AllocSetAlloc()<29><><EFBFBD>
|
||||
4.14) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> PostgreSQL <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
4.15) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>建<EFBFBD><E5BBBA><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
4.16) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>outer join<69><6E><EFBFBD><EFBFBD>詢<EFBFBD><E8A9A2>
|
||||
4.17) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>庫<EFBFBD><E5BAAB><EFBFBD>詢<EFBFBD><E8A9A2>
|
||||
4.18) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
4.19) <20><><EFBFBD><EFBFBD>麼<EFBFBD><E9BABC><EFBFBD>使<EFBFBD><E4BDBF> PL/PgSQL <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>表<EFBFBD><E8A1A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>誤<EFBFBD><E8AAA4><EFBFBD><EFBFBD><EFBFBD>relation
|
||||
with OID ##### does not exist<73><74><EFBFBD>
|
||||
4.20) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>寫(replication)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
4.21) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>詢<EFBFBD><E8A9A2><EFBFBD>顯示<E9A1AF>表<EFBFBD><E8A1A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>詢<EFBFBD><E8A9A2><EFBFBD><EFBFBD>中
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>大寫<E5A4A7><E5AFAB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
_________________________________________________________________
|
||||
|
||||
常<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
1.1) PostgreSQL <20><><EFBFBD><EFBFBD>麼<EFBFBD><E9BABC>該<EFBFBD>麼<EFBFBD><E9BABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
PostgreSQL <20><><EFBFBD><EFBFBD> Post-Gres-Q-L<><4C><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>簡稱<E7B0A1><E7A8B1>Postgres
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>人<EFBFBD><E4BABA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>裡<EFBFBD><E8A3A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>件<EFBFBD><E4BBB6> MP3 <20> <20><><EFBFBD> <20>
|
||||
|
||||
PostgreSQL <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>庫系統<E7B3BB><E7B5B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>統<EFBFBD>業
|
||||
<20><><EFBFBD>庫系統<E7B3BB><E7B5B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>代 DBMS
|
||||
系統<E7B3BB>使<EFBFBD><E4BDBF><EFBFBD><EFBFBD><EFBFBD>強<EFBFBD><E5BCB7><EFBFBD><EFBFBD><EFBFBD>PostgreSQL
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>費<EFBFBD><E8B2BB><EFBFBD>並<EFBFBD><E4B8A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>代碼<E4BBA3><E7A2BC><EFBFBD><EFBFBD>以<EFBFBD><E4BBA5><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
PostgreSQL
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>主<EFBFBD><E4B8BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>並<EFBFBD><E4B8A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>網<EFBFBD><E7B6B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>繫<EFBFBD><E7B9AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>社<EFBFBD><E7A4BE><EFBFBD><EFBFBD><EFBFBD>
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>被任<E8A2AB><E4BBBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>人<EFBFBD><E4BABA>常<EFBFBD><E5B8B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>FAQ<41><51>
|
||||
http://www.postgresql.org/files/documentation/faqs/FAQ_DEV.html
|
||||
|
||||
1.2) 誰<><E8AAB0><EFBFBD><EFBFBD> PostgreSQL <20><>
|
||||
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>PostgreSQL<51><4C><EFBFBD>人<EFBFBD><E4BABA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>麼中
|
||||
央<><E5A4AE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>麼<EFBFBD>屬<EFBFBD><E5B1AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>---<2D> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>確<EFBFBD><E7A2BA><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>CVS管<53><E7AEA1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>工<EFBFBD><E5B7A5><EFBFBD><EFBFBD><EFBFBD>設
|
||||
<20><>主<EFBFBD><E4B8BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>管<EFBFBD>工<EFBFBD><E5B7A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>PostgreSQL<51><4C><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>PostgreSQL<51>
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>任<EFBFBD><E4BBBB>人<EFBFBD>
|
||||
<20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>人<EFBFBD><E4BABA>社<EFBFBD><E7A4BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>就<EFBFBD><E5B0B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>件<EFBFBD>表<EFBFBD><E8A1A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>PostgreSQL<51><4C><EFBFBD><EFBFBD>詳<EFBFBD><E8A9B3> <20><><EFBFBD>人<EFBFBD><E4BABA>常<EFBFBD><E5B8B8><EFBFBD> (Developer's FAQ) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
1.3) PostgreSQL <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>麼?
|
||||
|
||||
PostgreSQL<51><4C><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> BSD <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>許<EFBFBD><E8A8B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>使<EFBFBD><E4BDBF>
|
||||
PostgreSQL<51><4C><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>以<EFBFBD><E4BBA5><EFBFBD><EFBFBD> PostgreSQL
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>代碼<E4BBA3><E7A2BC><EFBFBD><EFBFBD>以<EFBFBD><E4BBA5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>就<EFBFBD><E5B0B1><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>身<EFBFBD><E8BAAB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>追訴<E8BFBD><E8A8B4><EFBFBD><EFBFBD>
|
||||
責任<E8B2AC><E4BBBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>就<EFBFBD><E5B0B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>以<EFBFBD><E4BBA5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<20><><EFBFBD><EFBFBD>就<EFBFBD><E5B0B1><EFBFBD><EFBFBD><EFBFBD>使<EFBFBD><E4BDBF><EFBFBD>BSD<53><44><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>容<EFBFBD><E5AEB9>
|
||||
|
||||
PostgreSQL <20><><EFBFBD>庫管<E5BAAB>系統
|
||||
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>c<EFBFBD><63>1996-2005<30><35>PostgreSQL <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>c<EFBFBD><63>1994-1996
|
||||
<20> <20><>大<EFBFBD><E5A4A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
<20><>Portions copyright (c) 1996-2005,PostgreSQL Global Development Group
|
||||
Portions Copyright (c) 1994-6 Regents of the University of
|
||||
California<69><61>
|
||||
|
||||
<20>許<EFBFBD><E8A8B1>任<EFBFBD><E4BBBB><EFBFBD><EFBFBD><EFBFBD>使<EFBFBD><E4BDBF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>修<EFBFBD><E4BFAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>任<EFBFBD><E4BBBB>費<EFBFBD><E8B2BB><EFBFBD><EFBFBD>
|
||||
並<><E4B8A6><EFBFBD><EFBFBD><EFBFBD> 簽署<E7B0BD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>段以<E6AEB5><E4BBA5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>段<EFBFBD><E6AEB5><EFBFBD>
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
<20><>Permission to use, copy, modify, and distribute this software and
|
||||
its documentation for any purpose, without fee, and without a written
|
||||
agreement is hereby granted, provided that the above copyright notice
|
||||
and this paragraph and the following two paragraphs appear in all
|
||||
copies.<2E><>
|
||||
|
||||
<20><>任<EFBFBD><E4BBBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>大<EFBFBD><E5A4A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 使<><E4BDBF><EFBFBD><EFBFBD>
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>任<EFBFBD><E4BBBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>人<EFBFBD><E4BABA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>伴<EFBFBD><E4BCB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>失<EFBFBD>責任<E8B2AC><E4BBBB><EFBFBD><EFBFBD>使<EFBFBD> <20><>大<EFBFBD><E5A4A7>
|
||||
<20>已<EFBFBD><E5B7B2>建<EFBFBD><E5BBBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>失<EFBFBD><E5A4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
<20><>IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY
|
||||
PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL
|
||||
DAMAGES, INCLUDING LOST PROFITS, ARISING OUT OF THE USE OF THIS
|
||||
SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE UNIVERSITY OF CALIFORNIA
|
||||
HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.<2E><>
|
||||
|
||||
<20> <20><>大<EFBFBD><E5A4A7><EFBFBD>確<EFBFBD><E7A2BA><EFBFBD><EFBFBD>任<EFBFBD><E4BBBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<20>裡<EFBFBD><E8A3A1><EFBFBD><EFBFBD><EFBFBD>份<EFBFBD><E4BBBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><>大<EFBFBD><E5A4A7><EFBFBD><EFBFBD><EFBFBD>責任<E8B2AC><E4BBBB><EFBFBD>維
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>強<EFBFBD><E5BCB7>修<EFBFBD><E4BFAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
<20><>THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES,
|
||||
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE
|
||||
PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE UNIVERSITY OF
|
||||
CALIFORNIA HAS NO OBLIGATIONS TO PROVIDE MAINTENANCE, SUPPORT,
|
||||
UPDATES, ENHANCEMENTS, OR MODIFICATIONS.<2E><>
|
||||
|
||||
1.4) PostgreSQL <20><>以<EFBFBD><E4BBA5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>系統平<E7B5B1><E5B9B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
<20><><EFBFBD><EFBFBD>說<EFBFBD><E8AAAA><EFBFBD><EFBFBD>任<EFBFBD><E4BBBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> UNIX <20><>容<EFBFBD><E5AEB9><EFBFBD><EFBFBD><EFBFBD>系統<E7B3BB><E7B5B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> PostgreSQL
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>裡<EFBFBD><E8A3A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>確測試<E6B8AC>平<EFBFBD><E5B9B3><EFBFBD>
|
||||
|
||||
PostgreSQL <20><><EFBFBD><EFBFBD>以<EFBFBD><E4BBA5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>微<EFBFBD><E5BEAE> Windows-NT <20><><EFBFBD><EFBFBD><EFBFBD>系統<E7B3BB><E7B5B1><EFBFBD><EFBFBD>
|
||||
Win2000 SP4<50><34>WinXP <20> Win2003<30><33>已製<E5B7B2><E8A3BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
http://pgfoundry.org/projects/pginstaller<65><72><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>MSDOS<4F>Windows<77><73>業
|
||||
系統 <20><>Win95<39><35>Win98<39><38>WinMe<4D><65><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Cygwin模<6E><E6A8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>PostgreSQL<51>
|
||||
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Novell Netware 6 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> http://forge.novell.com
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>OS/2(eComStation)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
http://hobbes.nmsu.edu/cgi-bin/h-search?sh=1&button=Search&key=postgre
|
||||
SQL&stype=all&sort=type&dir=%2F <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
1.5) <20><><EFBFBD><EFBFBD><EFBFBD>裡<EFBFBD><E8A3A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD> PostgreSQL<51><4C>
|
||||
|
||||
<20><><EFBFBD>覽<EFBFBD><E8A6BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> http://www.postgresql.org/ftp/ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>FTP<54><50><EFBFBD><EFBFBD>
|
||||
ftp://ftp.PostgreSQL.org/pub/ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
1.6) <20><><EFBFBD><EFBFBD><EFBFBD> PostgreSQL <20><><EFBFBD><EFBFBD>麼<EFBFBD><E9BABC>
|
||||
|
||||
PostgreSQL <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 8.2.3 <20>
|
||||
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>年<EFBFBD><E5B9B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>主<EFBFBD><E4B8BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>幾<EFBFBD><E5B9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
1.7) <20><><EFBFBD><EFBFBD><EFBFBD>裡<EFBFBD><E8A3A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> PostgreSQL <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
PostgreSQL社<4C><E7A4BE><EFBFBD><EFBFBD><EFBFBD>件<EFBFBD>表<EFBFBD><E8A1A8><EFBFBD><EFBFBD>大<EFBFBD><E5A4A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>幫<EFBFBD><E5B9AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>件<EFBFBD>表<EFBFBD>主<EFBFBD><E4B8BB><EFBFBD>
|
||||
<20><><EFBFBD>
|
||||
http://www.postgresql.org/community/lists/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>General <20>
|
||||
Bug<75><67>件<EFBFBD>表<EFBFBD><E8A1A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>好<EFBFBD><E5A5BD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
主<><E4B8BB><EFBFBD>IRC<52> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>FreeNode(irc.freenode.net)<29>#postgresql<71><6C><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>以使<E4BBA5><E4BDBF> UNIX <20><><EFBFBD><EFBFBD> irc<72><63><EFBFBD><EFBFBD><EFBFBD>令<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> irc -c '#postgresql'
|
||||
"$USER" irc.freenode.net <20><><EFBFBD><EFBFBD>使<EFBFBD><E4BDBF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>IRC客<43><E5AEA2>端<EFBFBD><E7ABAF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>網絡<E7B6B2><E7B5A1><EFBFBD><EFBFBD><EFBFBD>
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD> PostgreSQL <20>西<EFBFBD><E8A5BF><EFBFBD> <20><>(#postgersql-es)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>
|
||||
(#postgresql-fr)<29><>樣<EFBFBD><E6A8A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD> EFNET <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> PostgreSQL <20>交<EFBFBD><E4BAA4><EFBFBD> <20><><EFBFBD>
|
||||
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>表<EFBFBD><E8A1A8><EFBFBD><EFBFBD> http://techdocs.postgresql.org/companies.php
|
||||
<20>覽<EFBFBD>
|
||||
|
||||
1.8) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>交<EFBFBD><E4BAA4><EFBFBD> BUG <20> <20><><EFBFBD><EFBFBD>
|
||||
|
||||
<20><>訪<EFBFBD> http://www.postgresql.org/support/submitbug<75><67>填寫 Bug
|
||||
<20><><EFBFBD> <20>表<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>樣<EFBFBD><E6A8A3><EFBFBD><EFBFBD>訪<EFBFBD> ftp <20><><EFBFBD><EFBFBD> ftp://ftp.PostgreSQL.org/pub/
|
||||
檢<><E6AAA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>PostgreSQL <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
<20><>使<EFBFBD><E4BDBF> Bug <20>交表<E4BAA4> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> PostgreSQL <20><>件<EFBFBD>表<EFBFBD> Bug
|
||||
<20>常<EFBFBD><E5B8B8>以<EFBFBD><E4BBA5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
* <20><>交<EFBFBD><E4BAA4>容<EFBFBD><E5AEB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Bug <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Bug <20><><EFBFBD> <20>
|
||||
* <20><>交<EFBFBD><E4BAA4>容<EFBFBD><E5AEB9><EFBFBD><EFBFBD><EFBFBD>已<EFBFBD><E5B7B2><EFBFBD> Bug 並<><E4B8A6>已<EFBFBD><E5B7B2><EFBFBD> <20><> TODO <20><><EFBFBD><EFBFBD>任<EFBFBD><E4BBBB>表<EFBFBD>
|
||||
* <20><>交<EFBFBD> Bug 已<><E5B7B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>被修<E8A2AB><E4BFAE><EFBFBD>
|
||||
* <20><>交<EFBFBD> Bug 已修<E5B7B2><E4BFAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
* <20><><EFBFBD><EFBFBD><EFBFBD>交<EFBFBD><E4BAA4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>詳細<E8A9B3><E7B4B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
+ <20><><EFBFBD><EFBFBD>系統
|
||||
+ PostgreSQL <20><><EFBFBD>
|
||||
+ <20><><EFBFBD><EFBFBD><EFBFBD> Bug <20>測試<E6B8AC><E8A9A6><EFBFBD><EFBFBD>
|
||||
+ 調試<E8AABF><E8A9A6><EFBFBD><EFBFBD>
|
||||
+ 調試<E8AABF><E8A9A6>蹤輸<E8B9A4><E8BCB8>
|
||||
* <20><>交<EFBFBD><E4BAA4>容<EFBFBD><E5AEB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Bug<75><67><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>以<EFBFBD><E4BBA5>工<EFBFBD><E5B7A5><EFBFBD><EFBFBD>
|
||||
+ <20><>建<EFBFBD><E5BBBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>並<EFBFBD><E4B8A6><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>主<EFBFBD><E4B8BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
+ <20><> Bug <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>修<EFBFBD><E4BFAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>被<EFBFBD> <20><> TODO <20><><EFBFBD><EFBFBD>任<EFBFBD><E4BBBB>表<EFBFBD>
|
||||
|
||||
1.9) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>解已<E8A7A3><E5B7B2><EFBFBD> BUG <20><><EFBFBD>缺<EFBFBD><E7BCBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
PostgreSQL <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> SQL:2003 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> TODO <20>表<EFBFBD><E8A1A8><EFBFBD>解已<E8A7A3><E5B7B2> Bug
|
||||
<20>表<EFBFBD><E8A1A8><EFBFBD>缺<EFBFBD><E7BCBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>常<EFBFBD><E5B8B8><EFBFBD><EFBFBD><EFBFBD>以<EFBFBD><E4BBA5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
* 該<><E8A9B2><EFBFBD>已<EFBFBD> <20><> TODO <20><><EFBFBD><EFBFBD>任<EFBFBD><E4BBBB>表<EFBFBD>
|
||||
* 該<><E8A9B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
+ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>符<EFBFBD> SQL <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
+ 該<><E8A9B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>大大<E5A4A7><E5A4A7><EFBFBD> 代碼<E4BBA3><E7A2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>帶<EFBFBD><E5B8B6><EFBFBD>好<EFBFBD><E5A5BD><EFBFBD>微<EFBFBD><E5BEAE>足<EFBFBD><E8B6B3><EFBFBD>
|
||||
+ 該<><E8A9B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>
|
||||
* 該<><E8A9B2><EFBFBD><EFBFBD><EFBFBD>被<EFBFBD> <20><> TODO <20><><EFBFBD><EFBFBD>任<EFBFBD><E4BBBB>表<EFBFBD>
|
||||
|
||||
PostgreSQL <20><>使<EFBFBD><E4BDBF> Bug <20><>蹤系統<E7B3BB><E7B5B1><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>件<EFBFBD>表中
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>以<EFBFBD><E4BBA5><EFBFBD><EFBFBD> TODO
|
||||
任<><E4BBBB>表總<E8A1A8><E7B8BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>工<EFBFBD><E5B7A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>實<EFBFBD><E5AFA6><EFBFBD><EFBFBD>Bug<75><67><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>中
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>影<EFBFBD><E5BDB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Bug<75><67>總<EFBFBD><E7B8BD><EFBFBD><EFBFBD>快<EFBFBD>被修<E8A2AB><E4BFAE>
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>修<EFBFBD><E4BFAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> CVS
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>使<EFBFBD><E4BDBF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
1.10) <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
PostgreSQL <20><><EFBFBD>大<EFBFBD><E5A4A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>主<EFBFBD><E4B8BB><EFBFBD>詳細<E8A9B3><E7B4B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>測試<E6B8AC><E8A9A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
/doc <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>註<EFBFBD><E8A8BB><EFBFBD><EFBFBD><EFBFBD> $PGHOME/doc<6F><63><EFBFBD> <20><> <20><><EFBFBD>以<EFBFBD><E4BBA5><EFBFBD><EFBFBD><EFBFBD>覽 PostgreSQL
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>網<EFBFBD><E7B6B2><EFBFBD><EFBFBD><EFBFBD>http://www.PostgreSQL.org/docs<63>
|
||||
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>PostgreSQL<51><4C><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
http://www.postgresql.org/docs/books/awbook.html <20>
|
||||
http://www.commandprompt.com/ppbook/ <20> <20><><EFBFBD>大<EFBFBD><E5A4A7> PostgreSQL
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>購買<E8B3BC><E8B2B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Korry Douglas 編寫<E7B7A8><E5AFAB><EFBFBD><EFBFBD>
|
||||
http://techdocs.PostgreSQL.org/techdocs/bookreviews.php<68><70> <20><><EFBFBD>大<EFBFBD><E5A4A7><EFBFBD>
|
||||
PostgreSQL <20><><EFBFBD><EFBFBD><EFBFBD>簡<EFBFBD><E7B0A1><EFBFBD> <20><> http://techdocs.PostgreSQL.org/ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
PostgreSQL <20>大<EFBFBD><E5A4A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>
|
||||
|
||||
客<><E5AEA2>端<EFBFBD><E7ABAF><EFBFBD>令<EFBFBD><E4BBA4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>psql<71><6C><EFBFBD><EFBFBD><EFBFBD>以 \d <20><> <20>
|
||||
<20><><EFBFBD>令<EFBFBD><E4BBA4><EFBFBD><EFBFBD>顯示<E9A1AF><E7A4BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>符<EFBFBD><E7ACA6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>使<EFBFBD><E4BDBF> \?
|
||||
<20><>以顯示<E9A1AF><E7A4BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>令<EFBFBD>
|
||||
|
||||
<20><><EFBFBD> web <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
1.11) <20><>該<EFBFBD>樣<EFBFBD><E6A8A3><EFBFBD><EFBFBD> SQL <20><>
|
||||
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>述<EFBFBD><E8BFB0><EFBFBD><EFBFBD><EFBFBD>PostgreSQL<51><4C><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Teach Yourself SQL in
|
||||
21 Days, Second Edition<6F><6E><EFBFBD><EFBFBD>詳細<E8A9B3><E7B4B0>紹<EFBFBD>網<EFBFBD><E7B6B2><EFBFBD>
|
||||
http://members.tripod.com/er4ebus/sql/index.htm<74><6D> <20><><EFBFBD>許<EFBFBD><E8A8B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>The
|
||||
Practical SQL Handbook<6F><6B> Bowman, Judith S.
|
||||
編寫<E7B7A8><E5AFAB>Addison-Wesley<65><79><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> The Complete Reference SQL,
|
||||
Groff 編寫<E7B7A8><E5AFAB>McGraw-Hill <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD>網<EFBFBD><E7B6B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>好<EFBFBD><E5A5BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
* http://www.intermedia.net/support/sql/sqltut.shtm
|
||||
* http://sqlcourse.com.
|
||||
* http://www.w3schools.com/sql/default.asp
|
||||
* http://mysite.verizon.net/Graeme_Birchall/id1.html
|
||||
|
||||
1.12)<29><><EFBFBD><EFBFBD><EFBFBD>交<EFBFBD><E4BAA4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
詳<><E8A9B3> <20><><EFBFBD>人<EFBFBD><E4BABA>常<EFBFBD><E5B8B8><EFBFBD><EFBFBD><EFBFBD> (Developer's FAQ) <20>
|
||||
|
||||
1.13) PostgreSQL <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>庫系統<E7B3BB><E7B5B1>起<EFBFBD><E8B5B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>好幾種<E5B9BE><E7A8AE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>
|
||||
|
||||
<20><><EFBFBD>
|
||||
PostgreSQL <20><>大<EFBFBD><E5A4A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>庫<EFBFBD><E5BAAB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<20><>詢<EFBFBD><E8A9A2>觸<EFBFBD><E8A7B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>義<EFBFBD><E7BEA9><EFBFBD><EFBFBD><EFBFBD>繼<EFBFBD><E7B9BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>並<EFBFBD><E4B8A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
<20><><EFBFBD><EFBFBD>
|
||||
PostgreSQL<51><4C><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>庫<EFBFBD><E5BAAB><EFBFBD><EFBFBD><EFBFBD>似<EFBFBD><E4BCBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>快<EFBFBD><E5BFAB><EFBFBD><EFBFBD>
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>庫<EFBFBD><E5BAAB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>常<EFBFBD><E5B8B8> +/-
|
||||
10%<25><><EFBFBD><EFBFBD>
|
||||
|
||||
<20><><EFBFBD> <20><>
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>庫<EFBFBD><E5BAAB><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>就<EFBFBD><E5B0B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<20>測試<E6B8AC><E8A9A6><EFBFBD>缺<EFBFBD><E7BCBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>穩<EFBFBD><E7A9A9>代碼<E4BBA3><E7A2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> beta
|
||||
測試<E6B8AC><E8A9A6><EFBFBD><EFBFBD>並<EFBFBD><E4B8A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<20><><EFBFBD>顯示<E9A1AF><E7A4BA><EFBFBD><EFBFBD>以<EFBFBD><E4BBA5><EFBFBD>穩<EFBFBD><E7A9A9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>使<EFBFBD><E4BDBF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>信<EFBFBD><E4BFA1><EFBFBD>
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>庫<EFBFBD><E5BAAB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
<20><><EFBFBD>
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD>件<EFBFBD>表<EFBFBD><E8A1A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>常大<E5B8B8><E5A4A7><EFBFBD><EFBFBD>人<EFBFBD><E4BABA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>以幫<E4BBA5><E5B9AB>解決<E8A7A3>碰<EFBFBD><E7A2B0><EFBFBD>
|
||||
任<><E4BBBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
總<><E7B8BD><EFBFBD><EFBFBD>解決<E8A7A3><E6B1BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>庫<EFBFBD><E5BAAB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>並<EFBFBD><E4B8A6><EFBFBD><EFBFBD>總<EFBFBD><E7B8BD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
<20>決<EFBFBD><E6B1BA><EFBFBD><EFBFBD><EFBFBD>
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>人<EFBFBD><E4BABA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>群<EFBFBD><E7BEA4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>觸使PostgreSQL<51><4C><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<20>庫<EFBFBD><E5BAAB><EFBFBD>好<EFBFBD><E5A5BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>業
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>以給<E4BBA5><E7B5A6><EFBFBD>給<EFBFBD><E7B5A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>人<EFBFBD><E4BABA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1.7 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
<20><><EFBFBD> <20>
|
||||
<20><><EFBFBD><EFBFBD>任<EFBFBD><E4BBBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>費<EFBFBD><E8B2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<20><> <20><>以<EFBFBD><E4BBA5><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>裡<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>代碼<E4BBA3><E7A2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<20><><EFBFBD>裡<EFBFBD><E8A3A1><EFBFBD><EFBFBD> BSD<53><44><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>容<EFBFBD>
|
||||
|
||||
1.14) PostgreSQL <20><>以<EFBFBD><E4BBA5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>家<EFBFBD><E5AEB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?
|
||||
|
||||
PostgreSQL 8.0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>使<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>系統<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>庫<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
8.0 <20><>以<EFBFBD><E4BBA5><EFBFBD><EFBFBD><EFBFBD><EFBFBD> PostgreSQL <20><><EFBFBD>身<EFBFBD><E8BAAB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
_________________________________________________________________
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>客<EFBFBD><EFBFBD>端<EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
2.1) <20><><EFBFBD><EFBFBD>以<EFBFBD><E4BBA5><EFBFBD><EFBFBD>麼<EFBFBD><E9BABC><EFBFBD><EFBFBD><EFBFBD> PostgreSQL <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
PostgreSQL (<28> <20><><EFBFBD><EFBFBD><EFBFBD>)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> C <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> C
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>好<EFBFBD>
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>以<EFBFBD><E4BBA5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
<20><><EFBFBD><EFBFBD>編<EFBFBD><E7B7A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> PHP <20><><EFBFBD>訪<EFBFBD> PostgreSQL <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Perl<72>TCL<43>Python
|
||||
以<><E4BBA5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> http://gborg.postgresql.org 網<><E7B6B2><EFBFBD><EFBFBD><EFBFBD>
|
||||
Drivers/Interfaces <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 並<><E4B8A6><EFBFBD><EFBFBD> Internet <20><>容<EFBFBD><E5AEB9>索<EFBFBD><E7B4A2><EFBFBD>
|
||||
|
||||
2.2) <20><><EFBFBD>麼工<E9BABC><E5B7A5><EFBFBD><EFBFBD>以<EFBFBD> PostgreSQL <20><><EFBFBD><EFBFBD> Web <20> <20><><EFBFBD><EFBFBD>
|
||||
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD>紹以<E7B4B9><E4BBA5><EFBFBD>庫<EFBFBD><E5BAAB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>http://www.webreview.com<6F>
|
||||
|
||||
<20><><EFBFBD><EFBFBD> Web <20><><EFBFBD><EFBFBD>PHP <20><><EFBFBD><EFBFBD><EFBFBD>極好<E6A5B5><E5A5BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> http://www.php.net/<2F>
|
||||
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>任<EFBFBD><E4BBBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>人<EFBFBD><E4BABA><EFBFBD><EFBFBD> Perl <20><><EFBFBD><EFBFBD><EFBFBD> 使<><E4BDBF> CGI.pm <20> DBD::Pg <20> mod_perl
|
||||
<20>
|
||||
|
||||
2.3)PostgreSQL <20><><EFBFBD>形<EFBFBD><E5BDA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>人<EFBFBD><E4BABA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> PostgreSQL<51>GUI <20>形工<E5BDA2><E5B7A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
PostgreSQL社<4C><E7A4BE><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>詳細<E8A9B3><E7B4B0>表<EFBFBD>
|
||||
_________________________________________________________________
|
||||
|
||||
系統管<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
3.1)<29><>樣<EFBFBD><E6A8A3><EFBFBD> PostgreSQL <20><><EFBFBD><EFBFBD> /usr/local/pgsql 以<><E4BBA5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD> configure <20><> <20><> --prefix <20><><EFBFBD> <20>
|
||||
|
||||
3.2) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
<20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>PostgreSQL <20><><EFBFBD>許<EFBFBD><E8A8B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> unix <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> TCP/IP
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>修<EFBFBD><E4BFAE><EFBFBD><EFBFBD><EFBFBD>置<EFBFBD>件 postgresql.conf <20><><EFBFBD>
|
||||
listen_addresses<65><73><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>置<EFBFBD>件 $PGDATA/pg_hba.conf <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> host-based <20><><EFBFBD>身份<E8BAAB><E4BBBD><EFBFBD><EFBFBD><EFBFBD>並<EFBFBD><E4B8A6><EFBFBD><EFBFBD><EFBFBD>
|
||||
PostgreSQL<51><4C><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> PostgreSQL 伺<><E4BCBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
3.3) <20><>樣調<E6A8A3><E8AABF><EFBFBD><EFBFBD><EFBFBD>庫<EFBFBD><E5BAAB><EFBFBD>以<EFBFBD><E4BBA5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>好<EFBFBD><E5A5BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
<20><><EFBFBD><EFBFBD>主<EFBFBD><E4B8BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>以<EFBFBD><E4BBA5> PostgreSQL <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
<20><>詢<EFBFBD><E8A9A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<20>主<EFBFBD><E4B8BB><EFBFBD><EFBFBD><EFBFBD>修<EFBFBD><E4BFAE><EFBFBD><EFBFBD>詢<EFBFBD><E8A9A2><EFBFBD><EFBFBD>以<EFBFBD><E4BBA5><EFBFBD><EFBFBD><EFBFBD>好<EFBFBD><E5A5BD><EFBFBD><EFBFBD><EFBFBD>:
|
||||
|
||||
+ <20><>建索<E5BBBA><E7B4A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>表<EFBFBD><E8A1A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>索<EFBFBD><E7B4A2><EFBFBD><EFBFBD>
|
||||
+ 使<><E4BDBF> COPY <20><><EFBFBD><EFBFBD>代<EFBFBD><E4BBA3><EFBFBD><EFBFBD><EFBFBD> Insert <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
+ <20><><EFBFBD><EFBFBD><EFBFBD>SQL<51><4C><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>以<EFBFBD><E4BBA5><EFBFBD><EFBFBD><EFBFBD>交<EFBFBD><E4BAA4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
+ <20><><EFBFBD><EFBFBD><EFBFBD>索<EFBFBD><E7B4A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>使<EFBFBD><E4BDBF> CLUSTER<45><52>
|
||||
+ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>詢<EFBFBD><E8A9A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>使<EFBFBD><E4BDBF> LIMIT<49><54>
|
||||
+ 使<><E4BDBF><EFBFBD> 編<><E7B7A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>詢<EFBFBD><E8A9A2>Prepared Query)<29><>
|
||||
+ 使<><E4BDBF> ANALYZE 以<><E4BBA5><EFBFBD>精確<E7B2BE><E7A2BA><EFBFBD><EFBFBD>統<EFBFBD><E7B5B1><EFBFBD><EFBFBD>
|
||||
+ <20><><EFBFBD>使<EFBFBD><E4BDBF> VACUUM <20> pg_autovacuum
|
||||
+ <20><><EFBFBD><EFBFBD>大<EFBFBD><E5A4A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>索<EFBFBD><E7B4A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>建索<E5BBBA><E7B4A2><EFBFBD><EFBFBD>
|
||||
|
||||
伺<><E4BCBA><EFBFBD><EFBFBD><EFBFBD>置
|
||||
<20>置<EFBFBD>件 postgres.conf <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>設
|
||||
置<><E7BDAE><EFBFBD>影<EFBFBD><E5BDB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>表<EFBFBD><E8A1A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
管<><E7AEA1><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD>庫伺<E5BAAB><E4BCBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD>庫伺<E5BAAB><E4BCBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>置<EFBFBD><E7BDAE>
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>解<EFBFBD><E8A7A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>http://www.varlena.com/varlena/GeneralBits/Tidb
|
||||
its/annotated_conf_e.html <20>
|
||||
http://www.varlena.com/varlena/GeneralBits/Tidbits/perf.html<6D>
|
||||
|
||||
硬<><E7A1AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<20><><EFBFBD><EFBFBD>硬<EFBFBD><E7A1AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>影<EFBFBD><E5BDB1><EFBFBD><EFBFBD><EFBFBD>覽
|
||||
http://candle.pha.pa.us/main/writings/pgsql/hw_performance/inde
|
||||
x.html <20> http://www.powerpostgresql.com/PerfList/<2F>
|
||||
|
||||
3.4)PostgreSQL 裡<><E8A3A1>以<EFBFBD><E4BBA5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>麼樣<E9BABC>調試<E8AABF><E8A9A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
PostgreSQL <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>似 log_*
|
||||
<20>伺<EFBFBD><E4BCBA><EFBFBD><EFBFBD>置<EFBFBD><E7BDAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>詢<EFBFBD><E8A9A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>統<EFBFBD><E7B5B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>工<EFBFBD><E5B7A5><EFBFBD><EFBFBD>調試<E8AABF><E8A9A6><EFBFBD><EFBFBD><EFBFBD>測試<E6B8AC>
|
||||
<20><>幫<EFBFBD><E5B9AB><EFBFBD>
|
||||
|
||||
3.5) <20><><EFBFBD><EFBFBD>麼<EFBFBD><E9BABC>試<EFBFBD><E8A9A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Sorry, too many
|
||||
clients<74><73>已<EFBFBD>太<EFBFBD><E5A4AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
<20>表示<E8A1A8><E7A4BA> 已<><E5B7B2><EFBFBD><EFBFBD> <20><> 100 <20>並<EFBFBD><E4B8A6>(<28><><EFBFBD>)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>修<EFBFBD><E4BFAE>
|
||||
postgresql.conf <20>件<EFBFBD><E4BBB6><EFBFBD> max_connections <20><><EFBFBD><EFBFBD> <20><><EFBFBD> postmaster
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD>併<EFBFBD><E4BDB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>修<EFBFBD><E4BFAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> postmaster<65>
|
||||
|
||||
3.6)PostgreSQL <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>容 <20><>
|
||||
|
||||
PostgreSQL <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>次<EFBFBD><E6ACA1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>主<EFBFBD><E4B8BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Bug 修<><E4BFAE>工<EFBFBD><E5B7A5><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
7.4.8 <20><><EFBFBD><EFBFBD><EFBFBD> 7.4.9 <20><><EFBFBD><EFBFBD><EFBFBD> dump <20> restore<72><65><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<20><><EFBFBD><EFBFBD>庫伺<E5BAAB><E4BCBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>伺<EFBFBD><E4BCBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
<20><>PostgreSQL<51><4C><EFBFBD><EFBFBD><EFBFBD><EFBFBD>該<EFBFBD><E8A9B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>使<EFBFBD><E4BDBF><EFBFBD>主<EFBFBD><E4B8BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>快<EFBFBD><E5BFAB><EFBFBD>
|
||||
<20><>管<EFBFBD><E7AEA1>次<EFBFBD><E6ACA1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>風<EFBFBD><E9A2A8><EFBFBD><EFBFBD>PostgreSQL<51><4C><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>修<EFBFBD><E4BFAE>
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD> Bug
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>碼<EFBFBD><E7A2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>以風<E4BBA5><E9A2A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>PostgreSQL社<4C><E7A4BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
風<><E9A2A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
主<><E4B8BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 7.3 <20><> 7.4<EFBFBD><EFBFBD><EFBFBD>常<EFBFBD>修<EFBFBD><EFBFBD>系統表<EFBFBD><EFBFBD><EFBFBD><EFBFBD>表<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>件<EFBFBD><E4BBB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>容<EFBFBD><E5AEB9><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>中
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>dump<6D><70>/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>中
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>reload<61><64><EFBFBD><EFBFBD>主<EFBFBD><E4B8BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>
|
||||
|
||||
3.7)(使<><E4BDBF> PostgreSQL )<29><><EFBFBD><EFBFBD>使<EFBFBD><E4BDBF><EFBFBD><EFBFBD>麼<EFBFBD><E9BABC><EFBFBD><EFBFBD>硬<EFBFBD><E7A1AC> <20><>
|
||||
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>硬<EFBFBD><E7A1AC>大<EFBFBD><E5A4A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>容<EFBFBD><E5AEB9><EFBFBD>人<EFBFBD>總<EFBFBD><E7B8BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>信<EFBFBD><E4BFA1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>硬<EFBFBD><E7A1AC>質<EFBFBD><E8B3AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD>實<EFBFBD><E5AFA6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ECC RAM<41><4D>帶<EFBFBD><E5B8B6><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>SCSI
|
||||
<20><>硬<EFBFBD><E7A1AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>質<EFBFBD>主<EFBFBD><E4B8BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>便<EFBFBD><E4BEBF>貨<EFBFBD><E8B2A8><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>好<EFBFBD><E5A5BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
PostgreSQL 幾<><E5B9BE><EFBFBD><EFBFBD>以<EFBFBD><E4BBA5><EFBFBD><EFBFBD><EFBFBD>任<EFBFBD><E4BBBB>硬<EFBFBD><E7A1AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>系統<E7B3BB><E7B5B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 就<><E5B0B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 究<><E7A9B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>硬<EFBFBD><E7A1AC><EFBFBD><EFBFBD><EFBFBD>
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>件<EFBFBD>表<EFBFBD><E8A1A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 硬<><E7A1AC><EFBFBD>置<EFBFBD><E7BDAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
_________________________________________________________________
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
4.1) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>詢<EFBFBD><E8A9A2><EFBFBD><EFBFBD><EFBFBD> 幾<><E5B9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>幾<EFBFBD><E5B9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>並<EFBFBD><E4B8A6><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>詢中
|
||||
<20><><EFBFBD>確<EFBFBD><E7A2BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>以使<E4BBA5><E4BDBF> LIMIT <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>索<EFBFBD><E7B4A2><EFBFBD> ORDER BY 中
|
||||
<20><><EFBFBD>件<EFBFBD><E4BBB6><EFBFBD><EFBFBD><EFBFBD>PostgreSQL <20><><EFBFBD><EFBFBD>就<EFBFBD><E5B0B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 幾<><E5B9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>詢<EFBFBD><E8A9A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>詢<EFBFBD><E8A9A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>確<EFBFBD><E7A2BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<20><><EFBFBD> <20><>使<EFBFBD><E4BDBF>游<EFBFBD><E6B8B8>(cursor)<29>FETCH<43><48><EFBFBD><EFBFBD>
|
||||
|
||||
<20><>使<EFBFBD><E4BDBF>以<EFBFBD><E4BBA5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
SELECT cols
|
||||
FROM tab
|
||||
ORDER BY random()
|
||||
LIMIT 1 ;
|
||||
|
||||
4.2)
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>表<EFBFBD>索<EFBFBD><E7B4A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>庫以<E5BAAB><E4BBA5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>義<EFBFBD><E7BEA9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>psql裡<6C><E8A3A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>詢<EFBFBD>令並顯示<E9A1AF>
|
||||
<20><><EFBFBD><EFBFBD>
|
||||
|
||||
<20><>psql<71><6C>使<EFBFBD><E4BDBF> \dt <20><>令<EFBFBD><E4BBA4>顯示<E9A1AF><E7A4BA><EFBFBD>表<EFBFBD><E8A1A8><EFBFBD>義<EFBFBD><E7BEA9><EFBFBD><EFBFBD><EFBFBD>解 psql 中
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>令<EFBFBD>表<EFBFBD><E8A1A8>使<EFBFBD><E4BDBF> \? <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>以<EFBFBD><E4BBA5><EFBFBD><EFBFBD> psql <20><><EFBFBD>代碼 <20>件
|
||||
pgsql/src/bin/psql/describe.c<><63><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> psql <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>令<EFBFBD>輸<EFBFBD><E8BCB8><EFBFBD><EFBFBD><EFBFBD> SQL
|
||||
<20><>令<EFBFBD><E4BBA4><EFBFBD> <20><><EFBFBD>以帶 -E <20><><EFBFBD> <20><> psql<71><6C> <20>樣<EFBFBD><E6A8A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> psql 中
|
||||
<20>給<EFBFBD><E7B5A6><EFBFBD><EFBFBD><EFBFBD>令<EFBFBD><E4BBA4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>實<EFBFBD>使<EFBFBD><E4BDBF><EFBFBD> SQL
|
||||
<20><>詢<EFBFBD><E8A9A2><EFBFBD><EFBFBD><EFBFBD>PostgreSQL<51><4C><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>容 SQL<51> INFORMATION SCHEMA <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<20><> <20><>以<EFBFBD><E4BBA5><EFBFBD>裡<EFBFBD><E8A3A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>庫<EFBFBD><E5BAAB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
<20><>系統<E7B3BB><E7B5B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>以 pg_ <20><> <20>系統表<E7B5B1><E8A1A8><EFBFBD>述<EFBFBD><E8BFB0>表<EFBFBD><E8A1A8><EFBFBD>義<EFBFBD>
|
||||
|
||||
使<><E4BDBF> psql -l <20>令<EFBFBD><E4BBA4>以<EFBFBD><E4BBA5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>庫<EFBFBD>
|
||||
|
||||
<20><><EFBFBD><EFBFBD>以<EFBFBD>覽<EFBFBD><E8A6BD><EFBFBD><EFBFBD> pgsql/src/tutorial/syscat.source
|
||||
<20>件<EFBFBD><E4BBB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>庫系統表<E7B5B1><E8A1A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>SELECT<43><54><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
4.3) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
<20><>8.0<EFBFBD><EFBFBD><EFBFBD>裡<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>容<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>使<EFBFBD><EFBFBD> ALTER TABLE ALTER COLUMN
|
||||
TYPE <20>
|
||||
|
||||
<20><>以<EFBFBD><E4BBA5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>以<EFBFBD>樣<EFBFBD><E6A8A3><EFBFBD>
|
||||
BEGIN;
|
||||
ALTER TABLE tab ADD COLUMN new_col new_data_type;
|
||||
UPDATE tab SET new_col = CAST(old_col AS new_data_type);
|
||||
ALTER TABLE tab DROP COLUMN old_col;
|
||||
COMMIT;
|
||||
|
||||
<20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>以使<E4BBA5><E4BDBF> VACUUM FULL tab <20>令<EFBFBD><E4BBA4>使系統<E7B3BB><E7B5B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>空<EFBFBD><E7A9BA>
|
||||
|
||||
4.4) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>表<EFBFBD><E8A1A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>庫<EFBFBD><E5BAAB>大<EFBFBD><E5A4A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>庫<EFBFBD>大尺寸<E5B0BA><E5AFB8> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>已<EFBFBD><E5B7B2><EFBFBD><EFBFBD> 32TB <20><><EFBFBD><EFBFBD>庫<EFBFBD><E5BAAB>
|
||||
<20><><EFBFBD>表<EFBFBD><E8A1A8>大尺寸<E5B0BA><E5AFB8> 32 TB
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>大尺寸<E5B0BA><E5AFB8> 1.6 TB
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>大尺寸? 1 GB
|
||||
<20><><EFBFBD>表裡<E8A1A8>大<EFBFBD><E5A4A7><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
<20><><EFBFBD>表裡<E8A1A8>大<EFBFBD><E5A4A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 250-1600 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<20><><EFBFBD>表裡<E8A1A8><E8A3A1>大索<E5A4A7><E7B4A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>實<EFBFBD><E5AFA6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>空<EFBFBD><E7A9BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/交<><E4BAA4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<20><>實<EFBFBD><E5AFA6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>述<EFBFBD><E8BFB0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>常<EFBFBD><E5B8B8>大<EFBFBD><E5A4A7><EFBFBD>系統<E7B3BB><E7B5B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>大影<E5A4A7><E5BDB1><EFBFBD>
|
||||
|
||||
<20><>表<EFBFBD><E8A1A8>大大<E5A4A7><E5A4A7> 32 TB <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>業
|
||||
系統<E7B3BB><E7B5B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>件<EFBFBD><E4BBB6><EFBFBD><EFBFBD>麼大<E9BABC><E5A4A7><EFBFBD><EFBFBD><EFBFBD>大表<E5A4A7><E8A1A8><EFBFBD><EFBFBD><EFBFBD> 1 GB <20><>件<EFBFBD><E4BBB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>
|
||||
<20><>件系統大<E7B5B1><E5A4A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
<20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>大<EFBFBD><E5A4A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 32K <20><><EFBFBD>大<EFBFBD><E5A4A7><EFBFBD>表大<E8A1A8><E5A4A7><EFBFBD><EFBFBD>大<EFBFBD><E5A4A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>以<EFBFBD><E4BBA5><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>就<EFBFBD><E5B0B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>大<EFBFBD><E5A4A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>2000<30><30>
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>建索<E5BBBA><E7B4A2><EFBFBD>幸<EFBFBD><E5B9B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>樣<EFBFBD>索<EFBFBD><E7B4A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>容<EFBFBD><E5AEB9><EFBFBD><EFBFBD>MD5<44><35><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>索<EFBFBD><E7B4A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
並<><E4B8A6><EFBFBD><EFBFBD><EFBFBD>檢索<E6AAA2>許<EFBFBD><E8A8B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>索<EFBFBD>
|
||||
|
||||
4.5) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>件裡<E4BBB6><E8A3A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>空<EFBFBD><E7A9BA><EFBFBD>
|
||||
|
||||
<20><><EFBFBD> Postgres <20><><EFBFBD>庫<EFBFBD><E5BAAB><EFBFBD><EFBFBD>
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>件<EFBFBD><E4BBB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>空<EFBFBD><E7A9BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>件<EFBFBD><E4BBB6>身大<E8BAAB><E5A4A7>5<EFBFBD><35><EFBFBD><EFBFBD><EFBFBD><EFBFBD>空<EFBFBD>
|
||||
<20>
|
||||
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 100,000 <20><><EFBFBD><EFBFBD>件<EFBFBD><E4BBB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>述<EFBFBD> <20>設
|
||||
<20><><EFBFBD>串<EFBFBD>平<EFBFBD><E5B9B3><EFBFBD>度<EFBFBD><E5BAA6>20<32><30><EFBFBD><EFBFBD><EFBFBD>(Byte)<29><><EFBFBD><EFBFBD><EFBFBD>件<EFBFBD><E4BBB6><EFBFBD><EFBFBD> 2.8 MB<4D><42><EFBFBD>
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>PostgreSQL<51><4C><EFBFBD>庫<EFBFBD>件大<E4BBB6><E5A4A7><EFBFBD><EFBFBD> 5.2 MB:
|
||||
24 <20><><EFBFBD><EFBFBD>: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>大<EFBFBD><E5A4A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
24 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
+ 4 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
----------------------------------------
|
||||
52 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
PostgreSQL <20><><EFBFBD><EFBFBD> <20>大<EFBFBD><E5A4A7><EFBFBD><EFBFBD> 8192 <20><><EFBFBD><EFBFBD><EFBFBD> (8 KB)<29><><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
8192 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
------------------- = 158 <20><>/<2F><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
52 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
100000 <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
-------------------- = 633 <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
146 <20><>/<2F><><EFBFBD><EFBFBD>
|
||||
|
||||
633 <20><><EFBFBD><EFBFBD> * 8192 <20><><EFBFBD>/<2F> = 5,185,536 <20><><EFBFBD><EFBFBD><EFBFBD>5.2 MB<4D><42>
|
||||
|
||||
索<><E7B4A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>麼<EFBFBD><E9BABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>確實<E7A2BA><E5AFA6><EFBFBD>被索<E8A2AB><E7B4A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>大<EFBFBD>
|
||||
|
||||
空<><E7A9BA> NULL <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>空<EFBFBD><E7A9BA>
|
||||
|
||||
4.6) <20><><EFBFBD><EFBFBD>麼<EFBFBD><E9BABC><EFBFBD><EFBFBD>詢<EFBFBD><E8A9A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>麼<EFBFBD><E9BABC><EFBFBD><EFBFBD><EFBFBD>詢<EFBFBD><E8A9A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>索<EFBFBD><E7B4A2><EFBFBD><EFBFBD>
|
||||
|
||||
並<><E4B8A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>詢<EFBFBD><E8A9A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>使<EFBFBD><E4BDBF>索<EFBFBD><E7B4A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>表<EFBFBD>大<EFBFBD><E5A4A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>並<EFBFBD><E4B8A6><EFBFBD><EFBFBD>詢<EFBFBD><E8A9A2><EFBFBD><EFBFBD>
|
||||
<20><><EFBFBD>表<EFBFBD><E8A1A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>索<EFBFBD><E7B4A2><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>索<EFBFBD><E7B4A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>起<EFBFBD><E8B5B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>表<EFBFBD><E8A1A8><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>使<EFBFBD><E4BDBF>索<EFBFBD><E7B4A2><EFBFBD><EFBFBD>PostgreSQL
|
||||
<20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>表<EFBFBD>統<EFBFBD><E7B5B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>統<EFBFBD><E7B5B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>以使<E4BBA5><E4BDBF> VACUUM ANALYZE<5A><45><EFBFBD> ANALYZE
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD> 使<><E4BDBF>統<EFBFBD><E7B5B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>表中
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>就<EFBFBD><E5B0B1><EFBFBD><EFBFBD> <20><>好<EFBFBD><E5A5BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>索<EFBFBD><E7B4A2><EFBFBD>
|
||||
統<><E7B5B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>確<EFBFBD><E7A2BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>表<EFBFBD><E8A1A8><EFBFBD>容<EFBFBD><E5AEB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<20>統<EFBFBD><E7B5B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
索<><E7B4A2><EFBFBD>常<EFBFBD><E5B8B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ORDER BY
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>大表<E5A4A7><E8A1A8><EFBFBD>次<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>次<EFBFBD><E6ACA1><EFBFBD><EFBFBD>常<EFBFBD><E5B8B8>索<EFBFBD><E7B4A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>快<EFBFBD><E5BFAB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<20><> LIMIT <20> ORDER BY
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>起使<E8B5B7><E4BDBF><EFBFBD>話<EFBFBD><E8A9B1><EFBFBD>常<EFBFBD><E5B8B8><EFBFBD>使<EFBFBD><E4BDBF>索<EFBFBD><E7B4A2><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>表<EFBFBD><E8A1A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD> 確信PostgreSQL<51><4C><EFBFBD><EFBFBD><EFBFBD><EFBFBD>使<EFBFBD><E4BDBF><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>確<EFBFBD><E7A2BA><EFBFBD><EFBFBD><EFBFBD> <20><>以使<E4BBA5><E4BDBF>SET
|
||||
enable_seqscan TO 'off'<27>令<EFBFBD><E4BBA4><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD>次<EFBFBD><E6ACA1><EFBFBD><EFBFBD><EFBFBD>詢<EFBFBD><E8A9A2><EFBFBD><EFBFBD> 就<><E5B0B1>以<EFBFBD><E4BBA5><EFBFBD>使<EFBFBD><E4BDBF><EFBFBD><EFBFBD><EFBFBD>索<EFBFBD><E7B4A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>確實<E7A2BA><E5AFA6>快<EFBFBD><E5BFAB><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
<20><>使<EFBFBD><E4BDBF><EFBFBD><EFBFBD>符<EFBFBD><E7ACA6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> LIKE <20> ~ <20><><EFBFBD>索<EFBFBD><E7B4A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>使<EFBFBD><E4BDBF><EFBFBD><EFBFBD>
|
||||
* <20>符串<E7ACA6><E4B8B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>符串<E7ACA6><E4B8B2><EFBFBD><EFBFBD>就<EFBFBD><E5B0B1>說<EFBFBD><E8AAAA>
|
||||
+ LIKE 模<><E6A8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>以 % <20><> <20>
|
||||
+ ~ <20><><EFBFBD><EFBFBD><EFBFBD>表<EFBFBD><E8A1A8><EFBFBD><EFBFBD><EFBFBD>模<EFBFBD><E6A8A1><EFBFBD><EFBFBD><EFBFBD> 以 ^ <20><> <20>
|
||||
* <20>符串<E7ACA6><E4B8B2><EFBFBD><EFBFBD>以<EFBFBD><E4BBA5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>符<EFBFBD>模<EFBFBD><E6A8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> [a-e]<5D>
|
||||
* 大<><E5A4A7>寫<EFBFBD><E5AFAB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ILIKE <20> ~* <20><><EFBFBD>使<EFBFBD><E4BDBF>索<EFBFBD><E7B4A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>以<EFBFBD><E4BBA5> 4.8
|
||||
<20><><EFBFBD>述<EFBFBD>表<EFBFBD><E8A1A8><EFBFBD>索<EFBFBD><E7B4A2><EFBFBD>
|
||||
* <20><><EFBFBD> initdb <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>置 C
|
||||
locale<6C><65><EFBFBD> <20><>系統<E7B3BB><E7B5B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> C locale <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>大<EFBFBD>符<EFBFBD><E7ACA6><EFBFBD><EFBFBD>麼<EFBFBD>
|
||||
<20><><EFBFBD>種<EFBFBD><E7A8AE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>以<EFBFBD><E4BBA5>建<EFBFBD><E5BBBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> text_pattern_ops 索<><E7B4A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
LIKE <20>索<EFBFBD><E7B4A2><EFBFBD>
|
||||
|
||||
<20><> 8.0 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>中
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>詢<EFBFBD><E8A9A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>索<EFBFBD><E7B4A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>索<EFBFBD><E7B4A2><EFBFBD><EFBFBD>常<EFBFBD><E5B8B8><EFBFBD><EFBFBD>被<EFBFBD><E8A2AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<20><><EFBFBD> int2, int8 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>索<EFBFBD><E7B4A2><EFBFBD>
|
||||
|
||||
4.7) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>詢<EFBFBD><E8A9A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>樣<EFBFBD><E6A8A3>估<EFBFBD><E4BCB0><EFBFBD><EFBFBD><EFBFBD><EFBFBD>詢<EFBFBD><E8A9A2>
|
||||
|
||||
<20><> EXPLAIN <20><><EFBFBD> <20>
|
||||
|
||||
4.8) <20><>樣<EFBFBD><E6A8A3><EFBFBD><EFBFBD>表<EFBFBD><E8A1A8><EFBFBD><EFBFBD>索<EFBFBD>大<EFBFBD><E5A4A7>寫<EFBFBD><E5AFAB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<20><>表<EFBFBD><E8A1A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>樣<EFBFBD><E6A8A3><EFBFBD><EFBFBD>索<EFBFBD><E7B4A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>大<EFBFBD><E5A4A7>寫<EFBFBD><E5AFAB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
<20><><EFBFBD>符 ~ <20><><EFBFBD><EFBFBD><EFBFBD>表<EFBFBD><E8A1A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ~* <20><>大<EFBFBD><E5A4A7>寫<EFBFBD><E5AFAB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>表<EFBFBD><E8A1A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>大<EFBFBD><E5A4A7>寫<EFBFBD><E5AFAB><EFBFBD><EFBFBD>
|
||||
LIKE <20><>種<EFBFBD><E7A8AE><EFBFBD> ILIKE<4B>
|
||||
|
||||
大<><E5A4A7>寫<EFBFBD><E5AFAB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>常寫<E5B8B8><E5AFAB><EFBFBD>
|
||||
SELECT *
|
||||
FROM tab
|
||||
WHERE lower(col) = 'abc';
|
||||
|
||||
<20>樣<EFBFBD><E6A8A3><EFBFBD><EFBFBD><EFBFBD>使<EFBFBD><E4BDBF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>索<EFBFBD><E7B4A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>以<EFBFBD><E4BBA5>建<EFBFBD><E5BBBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>種<EFBFBD><E7A8AE><EFBFBD><EFBFBD><EFBFBD>使<EFBFBD><E4BDBF><EFBFBD>表<EFBFBD><E8A1A8><EFBFBD>索<EFBFBD><E7B4A2>
|
||||
:
|
||||
CREATE INDEX tabindex ON tab (lower(col));
|
||||
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD>述索<E8BFB0><E7B4A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>建<EFBFBD><E5BBBA> <20><> UNIQUE <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>索<EFBFBD><E7B4A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>身<EFBFBD><E8BAAB>容<EFBFBD><E5AEB9>以<EFBFBD><E4BBA5>
|
||||
<20><>大<EFBFBD><E5A4A7>寫<EFBFBD><E5AFAB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>容<EFBFBD><E5AEB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> UNIQUE
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>容<EFBFBD><E5AEB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>大<EFBFBD><E5A4A7>寫<EFBFBD><E5AFAB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>種<EFBFBD><E7A8AE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>以使<E4BBA5><E4BDBF> CHECK <20><><EFBFBD><EFBFBD><EFBFBD>件<EFBFBD><E4BBB6><EFBFBD>觸<EFBFBD><E8A7B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
4.9) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>詢裡<E8A9A2><E8A3A1><EFBFBD><EFBFBD>樣檢測<E6AAA2><E6B8AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> NULL
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>確<EFBFBD><E7A2BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> NULL <20><><EFBFBD><EFBFBD>
|
||||
|
||||
<20><> IS NULL <20> IS NOT NULL 測試<E6B8AC><E8A9A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
SELECT *
|
||||
FROM tab
|
||||
WHERE col IS NULL;
|
||||
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> NULL <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ORDER BY <20><>件<EFBFBD><E4BBB6>使<EFBFBD><E4BDBF> IS NULL <20> IS NOT
|
||||
NULL 修飾符<E9A3BE><E7ACA6><EFBFBD><EFBFBD>件<EFBFBD><E4BBB6><EFBFBD> true <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>件<EFBFBD><E4BBB6><EFBFBD> false <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
就<><E5B0B1><EFBFBD><EFBFBD><EFBFBD> NULL <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
SELECT *
|
||||
FROM tab
|
||||
ORDER BY (col IS NOT NULL)
|
||||
|
||||
4.10) <20>種<EFBFBD>符<EFBFBD><E7ACA6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>麼<EFBFBD><E9BABC><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
<20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>稱 說<>
|
||||
VARCHAR(n) varchar <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>大<EFBFBD><E5A4A7>度<EFBFBD><E5BAA6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
符串<E7ACA6><E4B8B2><EFBFBD><EFBFBD>足<EFBFBD><E8B6B3>義<EFBFBD><E7BEA9>度<EFBFBD><E5BAA6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
CHAR(n) bpchar <20><><EFBFBD><EFBFBD><EFBFBD>符串<E7ACA6><E4B8B2>實<EFBFBD><E5AFA6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>足<EFBFBD><E8B6B3>義<EFBFBD><E7BEA9>度<EFBFBD><E5BAA6><EFBFBD>以空<E4BBA5> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
TEXT text <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>大<EFBFBD><E5A4A7>度<EFBFBD><E5BAA6><EFBFBD><EFBFBD><EFBFBD>
|
||||
BYTEA bytea <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>使<EFBFBD><E4BDBF>NULL<4C>符<EFBFBD><E7ACA6><EFBFBD><EFBFBD><EFBFBD>許<EFBFBD><E8A8B1><EFBFBD>
|
||||
"char" char <20><><EFBFBD><EFBFBD>符
|
||||
|
||||
<20><>系統表<E7B5B1><E8A1A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>誤<EFBFBD><E8AAA4><EFBFBD><EFBFBD>裡<EFBFBD><E8A3A1> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>稱<EFBFBD>
|
||||
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>種<EFBFBD><E7A8AE><EFBFBD><EFBFBD><EFBFBD> "varlena"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>就<EFBFBD><E5B0B1>說<EFBFBD><E8AAAA><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>度<EFBFBD><E5BAA6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>實<EFBFBD><E5AFA6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>空<EFBFBD><E7A9BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>大<EFBFBD><E5A4A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>義<EFBFBD><E7BEA9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>以被<E4BBA5><E8A2AB>縮<EFBFBD><E7B8AE><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD>空<EFBFBD><E7A9BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
VARCHAR(n) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>大<EFBFBD><E5A4A7>度<EFBFBD><E5BAA6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>符串<E7ACA6><E4B8B2><EFBFBD>好<EFBFBD><E5A5BD> TEXT <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<20><><EFBFBD>大<EFBFBD><E5A4A7><EFBFBD> 1G 左<><E5B7A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>義<EFBFBD><E7BEA9><EFBFBD><EFBFBD><EFBFBD>度<EFBFBD><E5BAA6>符串<E7ACA6>
|
||||
|
||||
CHAR(n) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>度<EFBFBD><E5BAA6><EFBFBD><EFBFBD><EFBFBD>符串<E7ACA6>
|
||||
CHAR(n)<29><> <20><><EFBFBD>給<EFBFBD><E7B5A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>度以空<E4BBA5> <20><><EFBFBD>足<EFBFBD><E8B6B3><EFBFBD><EFBFBD>足<EFBFBD><E8B6B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>容<EFBFBD><E5AEB9><EFBFBD><EFBFBD> <20>
|
||||
VARCHAR(n) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>給<EFBFBD><E7B5A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>容<EFBFBD> BYTEA <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>尤<EFBFBD><E5B0A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
NULL <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>差<EFBFBD><E5B7AE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
4.11.1) <20><>樣<EFBFBD><E6A8A3>建<EFBFBD><E5BBBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
PostgreSQL <20><><EFBFBD> SERIAL
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>義<EFBFBD><E7BEA9>SERIAL<41><4C><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>建<EFBFBD><E5BBBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
CREATE TABLE person (
|
||||
id SERIAL,
|
||||
name TEXT
|
||||
);
|
||||
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>以<EFBFBD><E4BBA5>SQL<51><4C><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
CREATE SEQUENCE person_id_seq;
|
||||
CREATE TABLE person (
|
||||
id INT4 NOT NULL DEFAULT nextval('person_id_seq'),
|
||||
name TEXT
|
||||
);
|
||||
|
||||
<20><> create_sequence <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
4.11.2) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
<20><>種<EFBFBD><E7A8AE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> nextval() <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>象裡檢索<E6AAA2><E7B4A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> SERIAL
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>精確<E7B2BE><E7A2BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>使<EFBFBD><E4BDBF> 4.11.1 裡<><E8A3A1><EFBFBD>表<EFBFBD><E8A1A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>碼<EFBFBD>樣<EFBFBD>述<EFBFBD><E8BFB0>
|
||||
new_id = execute("SELECT nextval('person_id_seq')");
|
||||
execute("INSERT INTO person (id, name) VALUES (new_id, 'Blaise Pascal')");
|
||||
|
||||
<20>樣<EFBFBD><E6A8A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>詢<EFBFBD><E8A9A2>使<EFBFBD><E4BDBF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> new_id 裡<><E8A3A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> person
|
||||
表<><E8A1A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 注<><E6B3A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>建<EFBFBD> SEQUENCE <20><>象<EFBFBD><E8B1A1>稱<EFBFBD><E7A8B1><EFBFBD><EFBFBD><EFBFBD>
|
||||
<table>_<serialcolumn>_seq<65><71> <20>裡 table <20> serialcolumn
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>表<EFBFBD><E8A1A8>稱<EFBFBD><E7A8B1><EFBFBD> <20> SERIAL <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>稱<EFBFBD>
|
||||
|
||||
<20><>似<EFBFBD><E4BCBC><EFBFBD><EFBFBD><EFBFBD> SERIAL <20><>象<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>以<EFBFBD><E4BBA5><EFBFBD><EFBFBD><EFBFBD><EFBFBD> currval() 檢索<E6AAA2>賦<EFBFBD><E8B3A6><EFBFBD>
|
||||
SERIAL <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
execute("INSERT INTO person (name) VALUES ('Blaise Pascal')");
|
||||
new_id = execute("SELECT currval('person_id_seq')");
|
||||
|
||||
4.11.3) <20><>使<EFBFBD><E4BDBF> currval() <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
<20><><EFBFBD><EFBFBD>currval() <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>次<EFBFBD>話<EFBFBD><E8A9B1><EFBFBD><EFBFBD><EFBFBD>賦<EFBFBD><E8B3A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
4.11.4) <20><><EFBFBD><EFBFBD>麼<EFBFBD><E9BABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>常<EFBFBD><E5B8B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>麼<EFBFBD><E9BABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>併<EFBFBD><E4BDB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>賦<EFBFBD><E8B3A6><EFBFBD><EFBFBD>
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>並<EFBFBD><E4B8A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>就<EFBFBD><E5B0B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>常中
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
4.12) <20><>麼<EFBFBD><E9BABC> OID <20><><EFBFBD><EFBFBD>麼<EFBFBD><E9BABC> CTID <20><>
|
||||
|
||||
PostgreSQL 裡<><E8A3A1>建<EFBFBD><E5BBBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> OID<49><44><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>建表<E5BBBA>使<EFBFBD><E4BDBF>
|
||||
WITHOUT OIDS <20><><EFBFBD> <20> OID <20><>建<EFBFBD><E5BBBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 4<><34><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> OID <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
PostgreSQL 伺<><E4BCBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 40<34><30><EFBFBD><EFBFBD>溢<EFBFBD><E6BAA2><EFBFBD><EFBFBD> OID <20><>
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>PostgreSQL <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>系統表裡使<E8A3A1><E4BDBF> OID
|
||||
<20><>表<EFBFBD><E8A1A8><EFBFBD>建<EFBFBD><E5BBBA><EFBFBD><EFBFBD>繫<EFBFBD>
|
||||
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>表<EFBFBD><E8A1A8><EFBFBD><EFBFBD><EFBFBD>好<EFBFBD><E5A5BD>使<EFBFBD><E4BDBF> SERIAl <20><>代<EFBFBD><E4BBA3> OID <20> <20><> SERIAL <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD>表<EFBFBD><E8A1A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>就<EFBFBD><E5B0B1>以<EFBFBD><E4BBA5><EFBFBD><EFBFBD><EFBFBD>樣<EFBFBD><E6A8A3>溢<EFBFBD><E6BAA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>就<EFBFBD>常<EFBFBD><E5B8B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
SERIAL8 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>8<EFBFBD><38><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
CTID <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>帶<EFBFBD><E5B8B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>移<EFBFBD><E7A7BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> CTID
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD>被<EFBFBD><E8A2AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>索<EFBFBD><E7B4A2><EFBFBD><EFBFBD><EFBFBD>使<EFBFBD><E4BDBF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
4.13) <20><><EFBFBD><EFBFBD>麼<EFBFBD><E9BABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>誤<EFBFBD><E8AAA4><EFBFBD><EFBFBD><EFBFBD>ERROR: Memory exhausted in AllocSetAlloc()<29><><EFBFBD>
|
||||
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>系統<E7B3BB><E7B5B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
postmaster <20><><EFBFBD>試試<E8A9A6><E8A9A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>令<EFBFBD><E4BBA4>
|
||||
ulimit -d 262144
|
||||
limit datasize 256m
|
||||
|
||||
<20>決<EFBFBD><E6B1BA><EFBFBD><EFBFBD> <20><><EFBFBD>
|
||||
shell<6C><6C><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>令<EFBFBD><E4BBA4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>段<EFBFBD><E6AEB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<20> <20><><EFBFBD>許<EFBFBD><E8A8B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>詢<EFBFBD><E8A9A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>令<EFBFBD><E4BBA4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>以<EFBFBD><E4BBA5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>令<EFBFBD><E4BBA4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>建<EFBFBD>
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>SQL客<4C><E5AEA2>端<EFBFBD><E7ABAF> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>太<EFBFBD><E5A4AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>客<EFBFBD><E5AEA2><EFBFBD>
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>述<EFBFBD><E8BFB0>令<EFBFBD>
|
||||
|
||||
4.14) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>PostgreSQL<51><4C><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
<20><> psql 裡<><E8A3A1>輸<EFBFBD><E8BCB8> SELECT version();<3B>令<EFBFBD>
|
||||
|
||||
4.15) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>建<EFBFBD><E5BBBA><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
使<><E4BDBF> CURRENT_TIMESTAMP<4D><50>
|
||||
CREATE TABLE test (x int, modtime TIMESTAMP DEFAULT CURRENT_TIMESTAMP );
|
||||
|
||||
4.16) <20><>樣<EFBFBD><E6A8A3><EFBFBD><EFBFBD> outer join <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
PostgreSQL <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> SQL <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>裡<EFBFBD><E8A3A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
SELECT *
|
||||
FROM t1 LEFT OUTER JOIN t2 ON (t1.col = t2.col);
|
||||
|
||||
<20><><EFBFBD>
|
||||
SELECT *
|
||||
FROM t1 LEFT OUTER JOIN t2 USING (col);
|
||||
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>詢<EFBFBD><E8A9A2> t1.col <20> t2.col <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>並<EFBFBD><E4B8A6><EFBFBD><EFBFBD><EFBFBD> t1 中
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> t2 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>[<5B><>]<5D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>RIGHT OUTER
|
||||
JOIN<49><4E><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> t2 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>FULL OUTER JOIN<49><4E><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> t1 <20> t2
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> OUTER <20><>左[<5B><>]<5D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>[<5B><>]<5D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>[<5B><>]<5D><><EFBFBD><EFBFBD>中
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>被稱<E8A2AB><E7A8B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>INNER JOIN<49><4E><EFBFBD>
|
||||
|
||||
4.17) <20><><EFBFBD><EFBFBD>使<EFBFBD><E4BDBF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>庫<EFBFBD><E5BAAB><EFBFBD>詢<EFBFBD><E8A9A2>
|
||||
|
||||
<20><><EFBFBD>辦<EFBFBD><E8BEA6><EFBFBD><EFBFBD>詢<EFBFBD><E8A9A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>庫<EFBFBD><E5BAAB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>庫<EFBFBD>
|
||||
<20> <20><>PostgreSQL<51><4C><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>庫<EFBFBD><E5BAAB><EFBFBD><EFBFBD>系統<E7B3BB><E7B5B1><EFBFBD><EFBFBD><EFBFBD>系統表<E7B5B1><E8A1A8><EFBFBD><EFBFBD><EFBFBD> <20><>
|
||||
<20>跨<EFBFBD><E8B7A8><EFBFBD>庫<EFBFBD><E5BAAB><EFBFBD>詢<EFBFBD><E8A9A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
<20><> <20><><EFBFBD><EFBFBD>模<EFBFBD><E6A8A1> contrib/dblink
|
||||
<20>許<EFBFBD><E8A8B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>調<EFBFBD><E8AABF>實<EFBFBD><E5AFA6>跨庫<E8B7A8><E5BAAB>詢<EFBFBD><E8A9A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>以<EFBFBD><E4BBA5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>庫<EFBFBD><E5BAAB><EFBFBD>
|
||||
<20><><EFBFBD>詢<EFBFBD><E8A9A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>客<EFBFBD><E5AEA2>端<EFBFBD>併<EFBFBD><E4BDB5><EFBFBD><EFBFBD>
|
||||
|
||||
4.18) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>容<EFBFBD>使<EFBFBD><E4BDBF><EFBFBD><EFBFBD><EFBFBD>詳<EFBFBD><E8A9B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
http://techdocs.postgresql.org/guides/SetReturningFunctions
|
||||
|
||||
4.19) <20><><EFBFBD><EFBFBD>麼<EFBFBD><E9BABC><EFBFBD>使<EFBFBD><E4BDBF> PL/PgSQL <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>表<EFBFBD><E8A1A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>誤<EFBFBD><E8AAA4><EFBFBD><EFBFBD><EFBFBD>relation with OID
|
||||
##### does not exist<73><74><EFBFBD>
|
||||
|
||||
PL/PgSQL <20>緩<EFBFBD><E7B7A9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>容<EFBFBD><E5AEB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>帶<EFBFBD><E5B8B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>好<EFBFBD><E5A5BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
PL/PgSQL
|
||||
<20><><EFBFBD><EFBFBD>訪<EFBFBD><E8A8AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>表<EFBFBD><E8A1A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>該表被<E8A1A8><E8A2AB><EFBFBD><EFBFBD>並<EFBFBD>建<EFBFBD><E5BBBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>次調<E6ACA1><E8AABF>該<EFBFBD><E8A9B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<20><><EFBFBD><EFBFBD> <20> <20><>緩<EFBFBD><E7B7A9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>容<EFBFBD><E5AEB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>表<EFBFBD>解決<E8A7A3><E6B1BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> PL/PgSQL 中
|
||||
<20><>EXECUTE <20><><EFBFBD><EFBFBD><EFBFBD>表<EFBFBD><E8A1A8><EFBFBD><EFBFBD>訪<EFBFBD><E8A8AA><EFBFBD>樣<EFBFBD><E6A8A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>詢<EFBFBD><E8A9A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>總<EFBFBD>被<EFBFBD><E8A2AB><EFBFBD>解<EFBFBD><E8A7A3>
|
||||
|
||||
4.20) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>寫(replication)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
<20><><EFBFBD>寫<EFBFBD><E5AFAB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>好幾種<E5B9BE><E7A8AE>寫<EFBFBD><E5AFAB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>種<EFBFBD><E7A8AE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>缺<EFBFBD><E7BCBA><EFBFBD><EFBFBD>
|
||||
|
||||
主/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>寫<EFBFBD><E5AFAB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>許<EFBFBD><E8A8B1><EFBFBD>主伺<E4B8BB><E4BCBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/寫<><E5AFAB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>伺<EFBFBD><E4BCBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<20><>/SELECT<43><54>詢<EFBFBD><E8A9A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>費<EFBFBD>主/<2F><>PostgreSQL<51><4C>寫<EFBFBD><E5AFAB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
Slony-I <20>
|
||||
|
||||
<20><><EFBFBD>主伺<E4B8BB><E4BCBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>寫<EFBFBD><E5AFAB><EFBFBD><EFBFBD><EFBFBD>許<EFBFBD><E8A8B1><EFBFBD><EFBFBD>/寫<><E5AFAB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>給<EFBFBD><E7B5A6><EFBFBD><EFBFBD><EFBFBD>主<EFBFBD><E4B8BB><EFBFBD><EFBFBD><EFBFBD>種<EFBFBD><E7A8AE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>伺<EFBFBD><E4BCBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>帶<EFBFBD><E5B8B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>失<EFBFBD><E5A4B1>Pgcluster
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>種<EFBFBD><E7A8AE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>好<EFBFBD><E5A5BD><EFBFBD>並<EFBFBD><E4B8A6><EFBFBD><EFBFBD><EFBFBD>以<EFBFBD>費<EFBFBD><E8B2BB><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>費<EFBFBD><E8B2BB><EFBFBD><EFBFBD><EFBFBD>硬<EFBFBD><E7A1AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>寫<EFBFBD><E5AFAB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>述<EFBFBD>種<EFBFBD><E7A8AE>寫模<E5AFAB><E6A8A1>
|
||||
|
||||
4.21) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>詢<EFBFBD><E8A9A2><EFBFBD>顯示<E9A1AF>表<EFBFBD><E8A1A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>詢<EFBFBD><E8A9A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>大寫<E5A4A7><E5AFAB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
<20>常<EFBFBD><E5B8B8><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>建表<E5BBBA><E8A1A8><EFBFBD>表<EFBFBD><E8A1A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>使<EFBFBD><E4BDBF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>( ' '
|
||||
)<29><><EFBFBD><EFBFBD>使<EFBFBD><E4BDBF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>表<EFBFBD><E8A1A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>稱<EFBFBD><E7A8B1><EFBFBD><EFBFBD><EFBFBD>符<EFBFBD><E7ACA6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 大<><E5A4A7>寫<EFBFBD><E5AFAB><EFBFBD>
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>詢<EFBFBD>表<EFBFBD><E8A1A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>使<EFBFBD><E4BDBF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>工<EFBFBD><E5B7A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> pgAdmin
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>建表<E5BBBA><E8A1A8>令<EFBFBD><E4BBA4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>符<EFBFBD><E7ACA6><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
符<>統<EFBFBD><E7B5B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>該<EFBFBD><E8A9B2>
|
||||
* <20><><EFBFBD><EFBFBD>建表<E5BBBA><E8A1A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>符使<E7ACA6><E4BDBF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>起<EFBFBD><E8B5B7><EFBFBD>
|
||||
* <20><><EFBFBD><EFBFBD><EFBFBD>符<EFBFBD><E7ACA6><EFBFBD><EFBFBD>使<EFBFBD><E4BDBF><EFBFBD><EFBFBD>寫<EFBFBD><E5AFAB><EFBFBD><EFBFBD>
|
||||
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>已<EFBFBD><E5B7B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>符<EFBFBD><E7ACA6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>詢<EFBFBD><E8A9A2>使<EFBFBD><E4BDBF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>符<EFBFBD><E7ACA6>起<EFBFBD><E8B5B7><EFBFBD>
|
849
doc/FAQ_czech
849
doc/FAQ_czech
@ -1,849 +0,0 @@
|
||||
|
||||
Frequently Asked Questions
|
||||
|
||||
Casto kladen<65> dotazy (FAQ) PostgreSQL
|
||||
|
||||
Posledn<64> aktualizace: 29. r<>jna 2007 (aktualizov<6F>no pro PostgreSQL
|
||||
8.3)
|
||||
|
||||
Soucasn<73> spr<70>vce: Bruce Momjian (bruce@momjian.us)
|
||||
|
||||
Prelozil: Pavel Stehule (pavel.stehule@gmail.com)
|
||||
|
||||
Nejaktu<74>lnejs<6A> verzi tohoto dokumentu naleznete na adrese
|
||||
http://www.postgresql.org/files/documentation/faqs/FAQ.html
|
||||
|
||||
Odpovedi na ot<6F>zky v<>zan<61> na konkr<6B>tn<74> platformy naleznete na adrese
|
||||
http://www.postgresql.org/docs/faq/.
|
||||
_________________________________________________________________
|
||||
|
||||
Obecn<63> ot<6F>zky
|
||||
|
||||
1.1) Co je to PostgreSQL? Jak<61> je spr<70>vn<76> v<>slovnost slova PostgreSQL?
|
||||
1.2) Kdo r<>d<EFBFBD> v<>voj PostgreSQL?
|
||||
1.3) Pod jakou licenc<6E> je PostgreSQL?
|
||||
1.4) Na kter<65>ch platform<72>ch lze provozovat PostgreSQL?
|
||||
1.5) Kde mohu z<>skat PostgreSQL?
|
||||
1.6) Jak<61> je posledn<64> verze?
|
||||
1.7) Kde mohu z<>skat podporu?
|
||||
1.8) Jak a kam hl<68>sit chyby?
|
||||
1.9) Kde najdu informace o zn<7A>m<EFBFBD>ch chyb<79>ch nebo nepodporovan<61>ch
|
||||
vlastnostech?
|
||||
1.10) Jak<61> je dostupn<70> dokumentace?
|
||||
1.11) Jak se mohu naucit SQL?
|
||||
1.12) Jak se mohu pripojit k t<>mu v<>voj<6F>ru?
|
||||
1.13) Jak je na tom PostgreSQL v porovn<76>n<EFBFBD> s jin<69>mi datab<61>zemi?
|
||||
1.14) Je PostgreSQL pripraven na aktu<74>ln<6C> zav<61>den<65> letn<74>ho casu v
|
||||
nekter<65>ch zem<65>ch?
|
||||
|
||||
Dotazy na klientsk<73> rozhran<61>
|
||||
|
||||
2.1) Kter<65> rozhran<61> jsou pouziteln<6C> pro PostgreSQL?
|
||||
2.2) Jak<61> n<>stroje lze pouz<75>t pro PostgreSQL a web?
|
||||
2.3) Existuje grafick<63> rozhran<61> pro PostgreSQL?
|
||||
|
||||
Administrativn<76> dotazy
|
||||
|
||||
3.1) Jak nainstalovat PostgreSQL jinam nez do /usr/local/pgsql?
|
||||
3.2) Jak nastavit pravidla pro pr<70>stup z jin<69>ch stanic?
|
||||
3.3) Jak vyladit datab<61>zi na vyss<73> v<>kon?
|
||||
3.4) Jak<61> m<>m lad<61>c<EFBFBD> prostredky?
|
||||
3.5) Co znamen<65> "Sorry, too many clients", kdyz se zkous<75>m pripojit?
|
||||
3.6) Proc je nutn<74> dump a obnoven<65> (load) datab<61>ze pri upgradu
|
||||
PostgreSQL?
|
||||
3.7) Jak<61> hardware bych mel pouz<75>vat?
|
||||
|
||||
Provozn<7A> dotazy
|
||||
|
||||
4.1) Jak z<>skat pouze prvn<76> r<>dek dotazu? N<>hodn<64> r<>dek?
|
||||
4.2) Jak z<>sk<73>m seznam tabulek, indexu, datab<61>z<EFBFBD>, a definovan<61>ch
|
||||
uzivatelu. Mohu videt dotazy, kter<65> pouz<75>v<EFBFBD> psql pro zobrazen<65> techto
|
||||
informac<61>?
|
||||
4.3) Jak zmenit datov<6F> typ sloupce?
|
||||
4.4) Jak<61> je maxim<69>ln<6C> velikost r<>dku, tabulky a datab<61>ze?
|
||||
4.5) Kolik diskov<6F>ho prostoru je potreba k ulozen<65> dat z norm<72>ln<6C>ho
|
||||
textov<6F>ho souboru?
|
||||
4.6) Muj dotaz je pomal<61> a nepouz<75>v<EFBFBD> vytvoren<65> indexy. Proc?
|
||||
4.7) Jak zjist<73>m, jak se vyhodnocuje muj dotaz?
|
||||
4.8) Jak pouz<75>t case-(in)sensitive regul<75>rn<72> v<>raz? Jak pouz<75>t index
|
||||
pro case insensitive hled<65>n<EFBFBD>?
|
||||
4.9) Jak v dotazu detekovat, ze polozka je NULL? Jak bezpecne spojit
|
||||
dva retezce, pokud mohou obsahovat NULL? Lze tr<74>dit podle toho, jestli
|
||||
je polozka NULL nebo ne?
|
||||
4.10) Jak<61> jsou rozd<7A>ly mezi ruzn<7A>mi znakov<6F>mi typy?
|
||||
4.11.1) Jak vytvorit serial/auto-increment polozku?
|
||||
4.11.2) Jak z<>skat hodnotu SERIAL po vlozen<65> r<>dku?
|
||||
4.11.3) Nezpusob<6F> currval() a nextval() probl<62>my ve v<>ce uzivatelsk<73>m
|
||||
prostred<65>?
|
||||
4.11.4) Proc nen<65> vygenerovan<61> c<>slo pouzito pri prerusen<65>
|
||||
transakce?Proc vznikaj<61> d<>ry v c<>slov<6F>n<EFBFBD> prostrednictv<74>m sekvence nebo
|
||||
typu SERIAL?
|
||||
4.12) Co to je OID? Co je to CTID?
|
||||
4.13) Co znamen<65> chybov<6F> hl<68>sen<65> "ERROR: Memory exhausted in
|
||||
AllocSetAlloc()"?
|
||||
4.14) Jak zjist<73>m, kterou verzi PostgreSQL pouz<75>v<EFBFBD>m?
|
||||
4.15) Jak vytvorit sloupec, kter<65> bude implicitne obsahovat aktu<74>ln<6C>
|
||||
cas?
|
||||
4.16) Jak prov<6F>st vnejs<6A> spojen<65> (outer join)?
|
||||
4.17) Jak prov<6F>st dotaz napr<70>c nekolika datab<61>zemi?
|
||||
4.18) Muze funkce vr<76>tit v<>ce r<>dku nebo sloupcu?
|
||||
4.19) Co je pr<70>cinou chyby "relation with OID xxxxx does not exist"?
|
||||
4.20) Jak<61> jsou moznosti replikace datab<61>z<EFBFBD>?
|
||||
4.21) Proc v dotazu nejsou rozpozn<7A>ny n<>zvy m<>ch tabulek nebo funkc<6B>?
|
||||
Proc jsou velk<6C> p<>smena v n<>zvech automaticky prevedena na mal<61>
|
||||
p<>smena?
|
||||
_________________________________________________________________
|
||||
|
||||
Obecn<63> ot<6F>zky
|
||||
|
||||
1.1) Co je to PostgreSQL? Jak<61> je spr<70>vn<76> v<>slovnost slova PostgreSQL?
|
||||
|
||||
V<>slovnost PostgreSQL je Post-Gres-Q-L , nebo zjednodusene Postgres .
|
||||
V rade jazyku je slovo PostgreSQL obt<62>zne vysloviteln<6C>, proto se v
|
||||
hovoru casto pouz<75>v<EFBFBD> zjednodusen<65> forma n<>zvu. Pro ty, kter<65> by si
|
||||
r<>di poslechli v<>slovnost, je k dispozici audioz<6F>znam v MP3 form<72>tu.
|
||||
|
||||
PostgreSQL je relacn<63> datab<61>ze s nekter<65>mi objektov<6F>mi rysy, kter<65> m<>
|
||||
moznosti tradicn<63>ch komercn<63>ch datab<61>zov<6F>ch syst<73>mu s nekolika
|
||||
rozs<7A>ren<65>mi, kter<65> lze naj<61>t v DBMS syst<73>mech pr<70>st<73> generace.
|
||||
Pouz<75>v<EFBFBD>n<EFBFBD> PostgreSQL nen<65> omezen<65> a vesker<65> zdrojov<6F> k<>dy jsou volne
|
||||
dostupn<70>.
|
||||
|
||||
Za v<>vojem PostgreSQL je mezin<69>rodn<64> skupina nez<65>visl<73>ch v<>voj<6F>ru
|
||||
navz<76>jem komunikuj<75>c<EFBFBD>ch prostrednictv<74>m internetu. Tento projekt nen<65>
|
||||
r<>zen z<>dnou obchodn<64> organizac<61>. Pokud se chcete pridat k projektu,
|
||||
prectete si v<>voj<6F>rsk<73> FAQ na adrese
|
||||
http://www.postgresql.org/files/documentation/faqs/FAQ_DEV.html .
|
||||
|
||||
1.2) Kdo r<>d<EFBFBD> v<>voj PostgreSQL?
|
||||
|
||||
Pokud budete hledat organizaci r<>d<EFBFBD>c<EFBFBD> v<>voj PostgreSQL, budete
|
||||
zklam<61>ni. Nic takov<6F>ho neexistuje. Existuj<75> pouze "core" a CVS skupiny
|
||||
uzivatelu, ale ty existuj<75> v<>ce z administr<74>torsk<73>ch duvodu nez z
|
||||
organizacn<63>ch. Projekt je smerov<6F>n komunitou v<>voj<6F>ru a uzivatelu, ke
|
||||
kter<65> se kdokoliv muze pripojit. Jedin<69> co potrebuje, je prihl<68>sit se
|
||||
do elektronick<63> konference. V<>ce ve v<>voj<6F>rsk<73>m FAQ.
|
||||
|
||||
1.3) Pod jakou licenc<6E> je PostgreSQL?
|
||||
|
||||
PostgreSQL je predmetem n<>sleduj<75>c<EFBFBD>ch autorsk<73>ch pr<70>v:
|
||||
|
||||
D<>lc<6C> Copyright (c) 1996-2009, PostgreSQL Global Development Group
|
||||
D<>lc<6C> Copyright (c) 1994-6, Regents of the University of California
|
||||
|
||||
Udeluje se opr<70>vnen<65> k uzit<69>, rozmnozov<6F>n<EFBFBD>, prov<6F>den<65> <20>prav a
|
||||
rozsirov<6F>n<EFBFBD> tohoto softwaru a dokumentace k nemu, pro jak<61>koli <20>cely,
|
||||
bez licencn<63>ho poplatku a bez p<>semn<6D> licencn<63> smlouvy, za podm<64>nky,
|
||||
ze na vsech jeho kopi<70>ch je uvedeno ozn<7A>men<65> o v<>se uveden<65>ch pr<70>vech,
|
||||
jakoz i obsah tohoto a dvou n<>sleduj<75>c<EFBFBD>ch odstavcu.
|
||||
|
||||
THE UNIVERSITY OF CALIFORNIA ("KALIFORNSK<53> UNIVERZITA") NEN<45> V Z<>DN<44>M
|
||||
PR<50>PADE ODPOVEDNA Z<>DN<44> TRET<45> OSOBE ZA PR<50>MOU, NEPR<50>MOU, ZVL<56>STN<54>,
|
||||
NAHODILOU NEBO V<>SLEDNOU SKODU, VCETNE USL<53>HO ZISKU, ZPUSOBENOU UZIT<49>M
|
||||
TOHOTO SOFTWARU A DOKUMENTACE K NEMU, A TO I V PR<50>PADE, ZE THE
|
||||
UNIVERSITY OF CALIFORNIA BYLA INFORMOV<4F>NA O MOZNOSTI VZNIKU TAKOV<4F>
|
||||
SKODY.
|
||||
|
||||
THE UNIVERSITY OF CALIFORNIA ZEJM<4A>NA NEPOSKYTUJE JAK<41>KOLI Z<>RUKY, A TO
|
||||
NEJEN Z<>RUKY OBCHODOVATELNOSTI A VHODNOSTI TOHOTO V<>ROBKU KE
|
||||
SPECIFICK<43>M <20>CELUM. N<>ZE UVEDEN<45> SOFTWARE JE POSKYTNUT "JAK STOJ<4F> A
|
||||
LEZ<45>" A THE UNIVERSITY OF CALIFORNIA NEN<45> POVINNA ZAJISTIT JEHO
|
||||
<20>DRZBU, PODPORU, AKTUALIZACI, VYLEPSEN<45> NEBO MODIFIKACI.
|
||||
|
||||
V<>se uveden<65> je BSD licence, bezn<7A> licence otevren<65>ho zdroje. Nen<65> zde
|
||||
z<>dn<64> omezen<65> ohledne uzit<69> k<>du zdroje. Jsme s t<>m spokojeni a nem<65>me
|
||||
v <20>myslu na t<>to skutecnosti cokoli menit.
|
||||
|
||||
1.4) Na kter<65>ch platform<72>ch lze provozovat PostgreSQL?
|
||||
|
||||
Strucne receno, PostgreSQL bez<65> na vsech modern<72>ch unixov<6F>ch
|
||||
syst<73>mech. Seznam tech, u kter<65>ch probehlo testov<6F>n<EFBFBD>, naleznete v
|
||||
instalacn<63>ch instrukc<6B>ch.
|
||||
|
||||
PostreSQL tak<61> bez<65> nativne na vsech Microsof Windows syst<73>mech
|
||||
odvozen<65>ch z Microsoft Windows NT jako jsou Windows 2000SP4, WindowsXP
|
||||
a Windows2003. Instalacn<63> bal<61>cek naleznete na adrese
|
||||
http://pgfoundry.org/projects/pginstaller. Na stars<72>ch syst<73>mech s
|
||||
jeste MS-DOS j<>drem lze spustit PostgreSQL s emulacn<63>m programem
|
||||
Cygwin.
|
||||
|
||||
D<>le existuje port pro Novell Netware 6 port na adrese
|
||||
http://forge.novell.com, a pro OS/2 verze (eComStation) na adrese
|
||||
http://hobbes.nmsu.edu/cgi-bin/h-search?sh=1&button=Search&key=postgre
|
||||
SQL&stype=all&sort=type&dir=%2F .
|
||||
|
||||
1.5) Kde mohu z<>skat PostgreSQL?
|
||||
|
||||
Pomoc<6F> webov<6F>ho klienta z adresy http://www.postgresql.org/ftp/ nebo
|
||||
klienta ftp z adresy ftp://ftp.postgresql.org/pub/.
|
||||
|
||||
1.6) Jak<61> je posledn<64> verze?
|
||||
|
||||
Nejnovejs<6A> verz<72> PostgreSQL je verze 8.2.5
|
||||
|
||||
V pl<70>nu je uvolnovat kazdorocne jednu velkou verzi a kazd<7A>ch nekolik
|
||||
mes<65>cu mal<61> verze.
|
||||
|
||||
1.7) Kde mohu z<>skat podporu?
|
||||
|
||||
Nejcastejs<6A> forma podpory uzivatelum PostgreSQL komunitou je
|
||||
prostrednictv<74>m e-mailu. Na nasem webov<6F>m serveru naleznete odkaz na
|
||||
str<74>nky,kde se muzete prihl<68>sit do elektronick<63> konference. Pro
|
||||
zac<61>tek jsou doporucen<65> konference general nebo bugs.
|
||||
|
||||
Dals<6C> cestou je IRC kan<61>l #postgresql na Freenode (irc.freenode.net).
|
||||
K pripojen<65> pouzijte Unixov<6F> pr<70>kaz irc -x '#postgresql' "$USER"
|
||||
irc.freenode.net nebo jak<61>koholiv jin<69>ho IRC klienta. V t<>to s<>ti
|
||||
existuje jeste spanelsk<73> (#postgresql-es) a francouzsk<73>
|
||||
(#postgresqlfr) verze. Dals<6C> PostgreSQL kan<61>l naleznete na EFNet.
|
||||
|
||||
Seznam spolecnost<73> poskytuj<75>c<EFBFBD> komercn<63> podporu naleznete na adrese
|
||||
http://techdocs.postgresql.org/companies.php.
|
||||
|
||||
1.8) Jak a kam hl<68>sit chyby?
|
||||
|
||||
Vyplnte formul<75>r na adrese
|
||||
http://www.postgresql.org/support/submitbug. Na nasem ftp serveru
|
||||
ftp://ftp.postgresql.org/pub/ si overte, ze pouz<75>v<EFBFBD>te aktu<74>ln<6C> verzi
|
||||
PostreSQL.
|
||||
|
||||
Chyby reportovan<61> prostrednictv<74>m chybov<6F>ho formul<75>re nebo zasl<73>n<EFBFBD>m
|
||||
mailu do PostgreSQL konference obvykle generuje n<>sleduj<75>c<EFBFBD> odezvu:
|
||||
* Nejedn<64> se o chybu, a proc
|
||||
* Jedn<64> se o zn<7A>mou chybu, kter<65> je jiz v seznamu <20>kolu TODO
|
||||
* Tato chyba byla opravena v aktu<74>ln<6C> verzi
|
||||
* Tato chyba byla jiz opravena ve verzi, kter<65> zat<61>m nebyla
|
||||
ofici<63>lne uvolnena
|
||||
* Pozadavek na dals<6C> doplnuj<75>c<EFBFBD> informace:
|
||||
+ Operacn<63> syst<73>m
|
||||
+ Verze PostgreSQL
|
||||
+ Test reprodukuj<75>c<EFBFBD> chybu
|
||||
+ Lad<61>c<EFBFBD> informace
|
||||
+ Backtrace v<>stup debuggeru
|
||||
* Jedn<64> se o zat<61>m nezjistenou chybu, pak muzete cekat
|
||||
+ Z<>platu odstranuj<75>c<EFBFBD> chybu, kter<65> bude vlozena do dals<6C> velk<6C>
|
||||
nebo mal<61> verze
|
||||
+ Informaci, ze se jedn<64> o chybu, kterou nelze okamzite resit a
|
||||
je proto prid<69>na do TODO
|
||||
|
||||
1.9) Kde najdu informace o zn<7A>m<EFBFBD>ch chyb<79>ch nebo nepodporovan<61>ch vlastnostech?
|
||||
|
||||
PostgreSQL podporuje rozs<7A>renou podmnozinu SQL:2003. V nasem TODO
|
||||
naleznete seznam zn<7A>m<EFBFBD>ch chyb, chybej<65>c<EFBFBD>ch vlastnost<73>, a pl<70>ny do
|
||||
budoucna.
|
||||
|
||||
Odezva na pozadavek na novou vlastnost PostgreSQL je obvykle:
|
||||
* Pozadavek je jiz v TODO
|
||||
* Pozadovan<61> funkce nen<65> chten<65> protoze
|
||||
+ Duplikuje jiz existuj<75>c<EFBFBD> funkci, kter<65> respektuje SQL
|
||||
standard
|
||||
+ Implementac<61> funkce by se pr<70>lis zkomplikoval k<>d bez
|
||||
relevantn<74>ho pr<70>nosu
|
||||
+ Funkce by mohla b<>t nebezpecn<63> nebo nespolehliv<69>
|
||||
* Pozadavek je prid<69>n do TODO
|
||||
|
||||
PostgreSQL nepoz<6F>v<EFBFBD> syst<73>m pro sledov<6F>n<EFBFBD> chyb, protoze jsme zjistili,
|
||||
ze je efektivnejs<6A> pr<70>mo reagovat na maily a udrzovat aktu<74>ln<6C> TODO. V
|
||||
praxi je snaha o co nejrychlejs<6A> resen<65> chyb, a chyby, kter<65> by se
|
||||
mohly projevit u mnoha uzivatelu jsou opravov<6F>ny velice rychle. Jedin<69>
|
||||
m<>sto, kde lze dohledat vsechny zmeny, rozs<7A>ren<65> a opravy v PostgreSQL
|
||||
je CVS log. Pozn<7A>mky k verzi "Release notes" nezachycuj<75> vsechny
|
||||
zmeny, k nemz doslo.
|
||||
|
||||
1.10) Jak<61> je dostupn<70> dokumentace?
|
||||
|
||||
PostgreSQL obsahuje vynikaj<61>c<EFBFBD> dokumentaci zahrnuj<75>c<EFBFBD> manu<6E>l,
|
||||
manu<6E>lov<6F> str<74>nky a testovac<61> pr<70>klady. Pod<6F>vejte se do adres<65>re /doc.
|
||||
Manu<6E>l je pr<70>stupn<70> online na http://www.postgresql.org/docs.
|
||||
|
||||
K dispozici jsou zdarma dve online knihy na adres<65>ch
|
||||
http://www.postgresql.org/docs/books/awbook.html a
|
||||
http://www.commandprompt.com/ppbook/. Dals<6C> literaturu lze zakoupit.
|
||||
Nejpopul<75>rnejs<6A> je od Kerryho Douglase. Seznam dostupn<70> literatury je
|
||||
na http://techdocs.postgresql.org/techdocs/bookreviews.php. Jeste je
|
||||
kolekce technicky orientovan<61>ch cl<63>nku tematicky spojen<65>ch s
|
||||
PostgreSQL na adrese http://techdocs.postgresql.org/.
|
||||
|
||||
R<>dkov<6F> klient psql m<> \d pr<70>kazy pro zobrazen<65> informac<61> o typech,
|
||||
oper<65>torech, funkc<6B>ch, agregacn<63>ch funkc<6B>, atd. Pouzijte \? pro
|
||||
zobrazen<65> dostupn<70>ch pr<70>kazu.
|
||||
|
||||
Dals<6C> dokumentaci najdete na nasem webu.
|
||||
|
||||
1.11) Jak se mohu naucit SQL?
|
||||
|
||||
Pod<6F>vejte se do v<>se uveden<65> dokumentace. Dals<6C> online knihou je
|
||||
"Teach Yourself SQL in 21 Days, Second Edition" na adrese
|
||||
http://members.tripod.com/er4ebus/sql/index.htm. Mnoho nasich
|
||||
uzivatelu doporucuje knihu The Practical SQL Handbook, Bowman, Judith
|
||||
S., et al., Addison-Wesley. Dals<6C> The Complete Reference SQL, Groff et
|
||||
al., McGraw-Hill.
|
||||
|
||||
Dals<6C> online tutori<72>ly jsou dostupn<70> na adres<65>ch:
|
||||
* http://www.intermedia.net/support/sql/sqltut.shtm
|
||||
* http://sqlcourse.com
|
||||
* http://www.w3schools.com/sql/default.asp
|
||||
* http://mysite.verizon.net/Graeme_Birchall/id1.html
|
||||
|
||||
1.12) Jak se mohu pripojit k t<>mu v<>voj<6F>ru?
|
||||
|
||||
Prostudujte si Developer's FAQ.
|
||||
|
||||
1.13) Jak je na tom PostgreSQL v porovn<76>n<EFBFBD> s jin<69>mi datab<61>zemi?
|
||||
|
||||
Software muzeme porovn<76>vat z nekolika ruzn<7A>ch pohledu: vlastnosti,
|
||||
v<>kon, spolehlivost, podpora a cena.
|
||||
|
||||
Vlastnosti
|
||||
|
||||
PostgreSQL nab<61>z<EFBFBD> vetsinu funkc<6B> funkcionality velk<6C>ch komercn<63>ch DBMS
|
||||
syst<73>mu jako jsou: transakce, vnoren<65> dotazy, spouste, referencn<63>
|
||||
integrita a sofistikovan<61> syst<73>m zamyk<79>n<EFBFBD>. Poskytujeme urcit<69> funkce,
|
||||
kter<65> ostatn<74> syst<73>my bezne nepodporuj<75>. Napr. uzivatelem definovan<61>
|
||||
typy, dedicnost, pravidla (rules), a MVCC architekturu.
|
||||
|
||||
V<>kon
|
||||
|
||||
V<>kon PostgreSQL je srovnateln<6C> s ostatn<74>mi komercn<63>mi nebo Open
|
||||
Source datab<61>zemi. V nekter<65>ch pr<70>padech je rychlejs<6A>, jindy
|
||||
pomalejs<6A>. N<>s v<>kon je obvykle +/-10% vuci ostatn<74>m datab<61>z<EFBFBD>m.
|
||||
|
||||
Spolehlivost
|
||||
|
||||
Uvedomujeme si, ze datab<61>ze mus<75> b<>t stoprocentne spolehliv<69>, jinak je
|
||||
nepouziteln<6C>. Snaz<61>me se, aby kazd<7A> verze byla dobre otestov<6F>na a
|
||||
obsahovala minimum chyb. Kazd<7A> verze je minim<69>lne nekolik mes<65>cu v
|
||||
beta testovac<61>m rezimu. Do produkcn<63>ho rezimu se dostane, az kdyz
|
||||
nedoch<63>z<EFBFBD> k dals<6C>m zmen<65>m nebo oprav<61>m. Ver<65>me, ze jsem v<>ce nez
|
||||
srovnateln<6C> s ostatn<74>mi datab<61>zemi v t<>to oblasti.
|
||||
|
||||
Podpora
|
||||
|
||||
Na nasich internetov<6F>ch konferenc<6E>ch se setk<74>v<EFBFBD> velk<6C> skupina v<>voj<6F>ru
|
||||
a uzivatelu pri resen<65> vyskytuj<75>c<EFBFBD>ch se probl<62>mu. Nase internetov<6F>
|
||||
konference umoznuj<75> kontakt velk<6C> skupiny v<>voj<6F>ru a uzivatelu.
|
||||
Nemuzeme garantovat opravu chyby, ale komercn<63> DBMSs tak<61> vzdy
|
||||
negarantuj<75> resen<65> probl<62>mu. Ver<65>me ale, ze d<>ky pr<70>m<EFBFBD>mu kontaktu na
|
||||
v<>voj<6F>re, nasi uzivatelskou komunitu, manu<6E>lum, a dostupn<70>m zdrojov<6F>m
|
||||
k<>dum m<>me leps<70> podporu nez ostatn<74> DBMSs. Pro ty, kter<65> preferuj<75>
|
||||
komercn<63> "per-incident" podporu, existuje spolecnost<73>, kter<65> ji
|
||||
nab<61>zej<65> (FAQ sekce 1.7.)
|
||||
|
||||
Cena
|
||||
|
||||
PostgreSQL lze pouz<75>vat bezplatne (a to i pro komercn<63> pouzit<69>). Tak<61>
|
||||
muzete neomezene pouz<75>vat n<>s k<>d ve sv<73>ch produktech s v<>jimkami
|
||||
specifikovan<61>mi v nas<61> licenci (preb<65>r<EFBFBD>me BSD licenci).
|
||||
|
||||
1.14) Je PostgreSQL pripraven na aktu<74>ln<6C> zav<61>den<65> letn<74>ho casu v nekter<65>ch
|
||||
zem<65>ch?
|
||||
|
||||
Poc<6F>naje verz<72> 8.0.[4+] podporuje PostgreSQL letn<74> cas tak<61> pro USA.
|
||||
Podpora letn<74>ho casu (daylight saving time) pro Kanadu a Z<>padn<64>
|
||||
Austr<74>lii je obsazena ve verz<72>ch 8.0.[10+] a 8.1.[6+] a vsech
|
||||
n<>sleduj<75>c<EFBFBD>ch verz<72>ch. Stars<72> verze pouz<75>valy syst<73>movou datab<61>zi
|
||||
casov<6F>ch z<>n obsahuj<75>c<EFBFBD>, krome jin<69>ho, informaci o tom, zda se pro
|
||||
danou casovou z<>nu rozlisuje mezi letn<74>m a zimn<6D>m casem.
|
||||
_________________________________________________________________
|
||||
|
||||
Dotazy na klientsk<73> rozhran<61>
|
||||
|
||||
2.1) Kter<65> rozhran<61> jsou pouziteln<6C> pro PostgreSQL?
|
||||
|
||||
PostgreSQL se distribuuje pouze s rozhran<61>m pro jazyk C a embedded C.
|
||||
Vsechna dals<6C> rozhran<61> predstavuj<75> nez<65>visl<73> projekty, kter<65> je treba
|
||||
st<73>hnout z internetu samostatne. Osamostatnen<65> techto projektu
|
||||
umoznuje nez<65>vislost v<>vojov<6F>ch t<>mu a moznost vyd<79>vat nov<6F> verze bez
|
||||
ohledu na vyd<79>n<EFBFBD> nov<6F> verze PostgreSQL.
|
||||
|
||||
Nekter<65> programovac<61> jazyky jako je napr. PHP obsahuj<75> rozhran<61> pro
|
||||
PostgreSQL. Rozhran<61> pro jazyky jako je Perl, Tcl, Python a mnoho
|
||||
dals<6C>ch jsou dostupn<70> na adrese: http://gborg.postgresql.org v sekci
|
||||
Drivers/Interfaces.
|
||||
|
||||
2.2) Jak<61> n<>stroje lze pouz<75>t pro PostgreSQL a web?
|
||||
|
||||
Dobr<62>m <20>vodem do problematiky datab<61>z<EFBFBD> v prostred<65> webov<6F>ch str<74>nek
|
||||
muze b<>t web http://www.webreview.com.
|
||||
|
||||
PHP (http://www.php.net) je vynikaj<61>c<EFBFBD>m rozhran<61>m pro tvorbu webu.
|
||||
|
||||
Pro slozitejs<6A> <20>lohy se casto pouz<75>v<EFBFBD> Perl a jeho BDB:Pg rozhran<61> s
|
||||
podporou CGI - CGI.pm nebo mod_perl(u).
|
||||
|
||||
2.3) Existuje grafick<63> rozhran<61> pro PostgreSQL?
|
||||
|
||||
K dispozici je rada grafick<63>ch n<>stroju podporuj<75>c<EFBFBD>ch PostgreSQL a to
|
||||
od komercn<63>ch nebo open source v<>voj<6F>ru. Podrobn<62> seznam naleznete na
|
||||
adrese http://www.postgresql.org/docs/techdocs.54.
|
||||
_________________________________________________________________
|
||||
|
||||
Administrativn<76> dotazy
|
||||
|
||||
3.1) Jak nainstalovat PostgreSQL jinam nez do /usr/local/pgsql?
|
||||
|
||||
Pri spousten<65> configure nastavte parametr --prefix
|
||||
|
||||
3.2) Jak nastavit pravidla pro pr<70>stup z jin<69>ch stanic?
|
||||
|
||||
Ve v<>choz<6F> konfiguraci, PostgreSQL umoznuje pouze pripojen<65> z
|
||||
lok<6F>ln<6C>ho uzivatele prostrednictv<74>m Unix domain sockets nebo TCP/IP
|
||||
spojen<65>. Bez modifikace listen_addresses v souboru postgresql.conf, a
|
||||
povolen<65> adresy v souboru $PGDATA/pg_hba.conf se nelze pripojit k
|
||||
PostgreSQL z ostatn<74>ch stanic. Zmena v<>se zm<7A>nen<65>ch parametru vyzaduje
|
||||
restart datab<61>zov<6F>ho serveru.
|
||||
|
||||
3.3) Jak vyladit datab<61>zi na vyss<73> v<>kon?
|
||||
|
||||
V<>kon syst<73>mu muzete ovlivnit ve trech oblastech:
|
||||
|
||||
Zmeny dotazu
|
||||
|
||||
* Pouzit<69>m indexu vcetne c<>stecn<63>ch a funkcion<6F>ln<6C>ch
|
||||
* Pouzit<69>m COPY m<>sto opakovan<61>ch INSERTu
|
||||
* Sloucen<65>m mnoha SQL pr<70>kazu do jedn<64> transakce sn<73>zen<65>m rezie na
|
||||
commit
|
||||
* Pouz<75>v<EFBFBD>n<EFBFBD>m CLUSTERU, pokud nac<61>t<EFBFBD>te vets<74> pocet r<>dek podle indexu
|
||||
* Pouzit<69>m klauzule LIMIT v poddotazech
|
||||
* Pouzit<69>m predpripraven<65>ch dotazu
|
||||
* Pouz<75>v<EFBFBD>n<EFBFBD>m ANALYZE. Tento pr<70>kaz aktualizuje statistiky, kter<65> se
|
||||
pouz<75>vaj<61> pri optimalizaci dotazu
|
||||
* Pravideln<6C> pouzit<69> VACUUM nebo pouz<75>v<EFBFBD>n<EFBFBD> pg_autovacuum
|
||||
* Odstranen<65>m indexu pred rozs<7A>hl<68>mi zmenami v datech
|
||||
|
||||
Konfigurace serveru
|
||||
|
||||
Urcit<69> parametry v souboru postgresql.conf maj<61> vliv na v<>kon serveru.
|
||||
Detaily naleznete v pr<70>rucce Administr<74>tora v Server Run-time
|
||||
Environment/Run-time Configuration. Dals<6C> koment<6E>re naleznete v
|
||||
http://www.varlena.com/varlena/GeneralBits/Tidbits/annotated_conf_e.ht
|
||||
ml a http://www.varlena.com/varlena/GeneralBits/Tidbits/perf.html.
|
||||
|
||||
V<>ber hardware
|
||||
|
||||
Vliv hardware na v<>kon serveru je pops<70>n v dokumentech
|
||||
http://candle.pha.pa.us/main/writings/pgsql/hw_performance/index.html
|
||||
a http://www.powerpostgresql.com/PerfList/.
|
||||
|
||||
3.4) Jak<61> m<>m lad<61>c<EFBFBD> prostredky?
|
||||
|
||||
Nastaven<65>m log_* promenn<6E>ch v konfiguraci serveru si vynut<75>te logov<6F>n<EFBFBD>
|
||||
dotazu a procesn<73>ch statistik, kter<65> V<>m mohou pomoci pri laden<65> a
|
||||
optimalizaci v<>konu.
|
||||
|
||||
3.5) Co znamen<65> "Sorry, too many clients", kdyz se zkous<75>m pripojit?
|
||||
|
||||
Prekrocil jste v<>choz<6F> limit, kter<65> je 100 soucasne pripojen<65>ch
|
||||
uzivatelu. V konfiguraci serveru v postgresql.conf tuto hodnotu muzete
|
||||
zvetsit zmenou hodnoty max_connection. Nezapomente restartovat server.
|
||||
|
||||
3.6) Proc je nutn<74> dump a obnoven<65> (load) datab<61>ze pri upgradu PostgreSQL?
|
||||
|
||||
Zpusob c<>slov<6F>n<EFBFBD> je pops<70>n v dokumentaci na
|
||||
http://www.postgresql.org/support/versioning. Instrukce k proveden<65>
|
||||
migrace na vyss<73> verzi jsou takt<6B>z v dokumentaci na adrese
|
||||
http://www.postgresql.org/docs/current/static/install-upgrading.html.
|
||||
|
||||
3.7) Jak<61> hardware bych mel pouz<75>vat?
|
||||
|
||||
Jelikoz PC jsou vetsinou kompatibiln<6C>, lid<69> maj<61> tendence verit, ze
|
||||
vsechna PC jsou stejne kvalitn<74>. Coz nen<65> pravda. Pameti ECC, SCSI a
|
||||
kvalitn<74> z<>kladn<64> desky jsou mnohem spolehlivejs<6A> a v<>konnejs<6A> nez
|
||||
lacinejs<6A> hardware. PostgreSQL pobez<65> na vetsine hardwaru, nicm<63>ne
|
||||
pokud je pro V<>s spolehlivost a v<>kon syst<73>mu dulezit<69>, je dobr<62>
|
||||
venovat cas nalezen<65> vhodn<64> hardwarov<6F> konfigurace. Na nasich
|
||||
elektronick<63>ch konferenc<6E>ch muzete diskutovat o vhodn<64>ch konfigurac<61>ch
|
||||
a znack<63>ch.
|
||||
_________________________________________________________________
|
||||
|
||||
Provozn<7A> dotazy
|
||||
|
||||
4.1) Jak z<>skat pouze prvn<76> r<>dek dotazu? N<>hodn<64> r<>dek?
|
||||
|
||||
Pokud potrebujete pouze nekolik r<>dku a pokud v<>te kolik, pouzijte
|
||||
SELECT LIMIT. Pokud bude mozn<7A> pouz<75>t index shoduj<75>c<EFBFBD> se s ORDER BY,
|
||||
je mozn<7A>, ze se nebude prov<6F>det cel<65> dotaz. Pokud nezn<7A>te pocet
|
||||
z<>znamu, pouzijte kurzor a pr<70>kaz FETCH.
|
||||
|
||||
Pro v<>ber n<>hodn<64>ho r<>dku pouzijte pr<70>kaz ve tvaru:
|
||||
SELECT col
|
||||
FROM tab
|
||||
ORDER BY random()
|
||||
LIMIT 1;
|
||||
|
||||
4.2) Jak z<>sk<73>m seznam tabulek, indexu, datab<61>z<EFBFBD>, a definovan<61>ch uzivatelu.
|
||||
Mohu videt dotazy, kter<65> pouz<75>v<EFBFBD> psql pro zobrazen<65> techto informac<61>?
|
||||
|
||||
V psql pr<70>kazem \dt z<>sk<73>te seznam tabulek. <20>pln<6C> seznam pr<70>kazu psql
|
||||
z<>sk<73>te pr<70>kazem \?. Alternativne si muzete prostudovat zdrojov<6F> k<>d
|
||||
psql - soubor pgsql/src/bin/psql/describe.c, kter<65> obsahuje SQL
|
||||
pr<70>kazy, kter<65> jsou generov<6F>ny pro z<>sk<73>n<EFBFBD> v<>stupu psql "backslash"
|
||||
pr<70>kazu. Tak<61> muzete nastartovat psql s parametrem -E, kter<65> zpusob<6F>
|
||||
zobrazen<65> vsech SQL pr<70>kazu, kter<65> se odes<65>laj<61> na server. PostgreSQL
|
||||
tak<61> podporuje SQL standard INFORMACN<43> SCH<43>MATA (standardn<64> syst<73>mov<6F>
|
||||
tabulky). Klasick<63>m dotazem do syst<73>mov<6F>ch tabulek z<>sk<73>te pozadovan<61>
|
||||
informace o strukture datab<61>ze.
|
||||
|
||||
Syst<73>mov<6F> tabulky PostgreSQL (mimo r<>mec SQL standardu) pouz<75>vaj<61>
|
||||
prefix pg_. Pro zjisten<65> struktury datab<61>ze je muzete pouz<75>t tak<61>, i
|
||||
kdyz preferov<6F>ny jsou dotazy do informacn<63>ho sch<63>matu.
|
||||
|
||||
Seznam vsech datab<61>z<EFBFBD> z<>sk<73>te pr<70>kazem psql -l
|
||||
|
||||
Dals<6C> inspiraci najdete v souboru pgsql/src/tutorial/syscat.source.
|
||||
Obsahuje ilustracn<63> SELECTy potrebn<62> k z<>sk<73>n<EFBFBD> informac<61> z syst<73>mov<6F>ch
|
||||
tabulek datab<61>ze.
|
||||
|
||||
4.3) Jak zmenit datov<6F> typ sloupce?
|
||||
|
||||
Ve verz<72>ch 8.0 a pozdejs<6A>ch jednoduse:
|
||||
ALTER TABLE ALTER COLUMN TYPE
|
||||
|
||||
V stars<72>ch verz<72>ch:
|
||||
BEGIN;
|
||||
ALTER TABLE tab ADD COLUMN new_col new_data_type;
|
||||
UPDATE tab SET new_col = CAST(old_col AS new_data_type);
|
||||
ALTER TABLE tab DROP COLUMN old_col;
|
||||
COMMIT;
|
||||
|
||||
Po zmene spustte pr<70>kaz VACUUM FULL, aby doslo k uvolnen<65> diskov<6F>ho
|
||||
prostoru pouzit<69>ho v tu chv<68>li jiz neplatn<74>mi z<>znamy.
|
||||
|
||||
4.4) Jak<61> je maxim<69>ln<6C> velikost r<>dku, tabulky a datab<61>ze?
|
||||
|
||||
PostgreSQL m<> tato omezen<65>:
|
||||
|
||||
Maxim<69>ln<6C> velikost datab<61>ze: neomezena (existuj<75> 32TB db)
|
||||
Maxim<69>ln<6C> velikost tabulky: 32 TB
|
||||
Maxim<69>ln<6C> velikost r<>dky: 480GB
|
||||
Maxim<69>ln<6C> velikost polozky 1 GB
|
||||
Maxim<69>ln<6C> pocet r<>dku v tabulce: neomezeno
|
||||
Maxim<69>ln<6C> pocet sloupcu v tabulce: 250-1600 podle typu
|
||||
Maxim<69>ln<6C> pocet indexu na tabulce: neomezeno
|
||||
|
||||
Ve skutecnosti nic nen<65> neomezeno, limitem b<>v<EFBFBD> vzdy dostupn<70> diskov<6F>
|
||||
pamet nebo velikost operacn<63> pameti. Pokud m<>te nekterou z techto
|
||||
hodnot neobvykle velkou, muze doj<6F>t ke sn<73>zen<65> v<>konu.
|
||||
|
||||
Maxim<69>ln<6C> velikost tabulky je 32 TB a nevyzaduje podporu velk<6C>ch
|
||||
souboru operacn<63>m syst<73>mem. Velk<6C> tabulky se ukl<6B>daj<61> do nekolika 1 GB
|
||||
souboru takze limity souborov<6F>ho syst<73>mu nejsou podstatn<74>.
|
||||
|
||||
Maxim<69>ln<6C> velikost tabulky a maxim<69>ln<6C> pocet sloupcu muzeme
|
||||
zectyrn<72>sobit nastaven<65>m velikosti bloku na 32K.
|
||||
|
||||
Indexy jsou povolen<65> pouze na sloupc<70>ch jejichz d<>lka je mens<6E> nez
|
||||
2000 znaku. Pokud tuto d<>lku prekroc<6F>me a index potrebujeme pro
|
||||
zajisten<65> jednoznacnosti, je vhodnejs<6A> pouz<75>t funkcion<6F>ln<6C> index nad
|
||||
MD5 funkc<6B> nebo fulltextov<6F> index.
|
||||
|
||||
4.5) Kolik diskov<6F>ho prostoru je potreba k ulozen<65> dat z norm<72>ln<6C>ho textov<6F>ho
|
||||
souboru?
|
||||
|
||||
PostgreSQL vyzaduje az petin<69>sobek diskov<6F>ho prostoru k ulozen<65> dat z
|
||||
textov<6F>ho souboru.
|
||||
|
||||
Napr<70>klad, uvazujme soubor se 100 tis<69>ci r<>dky obsahuj<75>c<EFBFBD> na kazd<7A>
|
||||
r<>dce cel<65> c<>slo a textov<6F> popis. Text je v prumerne dvacet bytu
|
||||
dlouh<75>. Textov<6F> soubor bude 2.8 MB dlouh<75>. Velikost datab<61>ze
|
||||
obsahuj<75>c<EFBFBD> odpov<6F>daj<61>c<EFBFBD> data bude zhruba 5.2 MB.
|
||||
24 bytu: hlavicka r<>dku (priblizne)
|
||||
24 bytu: jedna celoc<6F>seln<6C> polozka a jedna textov<6F>
|
||||
+ 4 byty: ukazatel na str<74>nku k entici
|
||||
------------------------------------------------------
|
||||
52 bytu na r<>dek
|
||||
|
||||
Velikost datov<6F> str<74>nky PostgreSQL je 8192 bytu (8KB)
|
||||
8192 bytu na str<74>nce
|
||||
---------------------- = 158 r<>dek na str<74>nku
|
||||
52 bytu za r<>dek
|
||||
|
||||
100000 r<>dek
|
||||
----------------------- = 633 str<74>nek (zaokrouhleno nahoru)
|
||||
158 r<>dek na str<74>nce
|
||||
|
||||
633 datov<6F>ch str<74>nek * 8192 bytu na kazdou str<74>nku = 5,185,536 bytu (5.2 MB)
|
||||
|
||||
Indexy nemaj<61> tak velkou rezii, ale mohou b<>t tak<61> velk<6C>, protoze
|
||||
obsahuj<75> indexovan<61> data.
|
||||
|
||||
Hodnoty NULL jsou ulozeny v bitmap<61>ch, takze zab<61>raj<61> jen velmi m<>lo
|
||||
diskov<6F>ho prostoru.
|
||||
|
||||
4.6) Muj dotaz je pomal<61> a nepouz<75>v<EFBFBD> vytvoren<65> indexy. Proc?
|
||||
|
||||
Kazd<7A> dotaz nemus<75> nutne pouz<75>t existuj<75>c<EFBFBD> indexy. Index se pouzije
|
||||
tehdy, kdyz je tabulka vets<74> nez urcit<69> minim<69>ln<6C> velikost, a dotaz
|
||||
vyb<79>r<EFBFBD> pouze procentu<74>lne malou c<>st r<>dku tabulky. To proto, ze
|
||||
n<>hodn<64> pr<70>stup k disku dan<61> cten<65>m indexu muze b<>t pomalejs<6A> nez
|
||||
line<6E>rn<72> cten<65> tabulky nebo sekvencn<63> cten<65>.
|
||||
|
||||
PostgreSQL rozhoduje o pouzit<69> indexu na z<>klade statistiky pr<70>stupu k
|
||||
tabulce. Tyto statistiky se shromazduj<75> pr<70>kazy VACUUM ANALYZE nebo
|
||||
ANALYZE. D<>ky statistik<69>m m<> optimizer informaci o poctu r<>dek v
|
||||
tabulce a muze l<>pe rozhodnout o pouzit<69> indexu. Statistiky se uplatn<74>
|
||||
pri urcen<65> optim<69>ln<6C>ho porad<61> a metody spojen<65> tabulek. Statistiky by
|
||||
se meli aktualizovat opakovane, tak jak se men<65> obsah tabulek.
|
||||
|
||||
Indexy nejsou obycejne pouzity pro setr<74>den<65> nebo spojen<65> tabulek.
|
||||
Sekvencn<63> zpracov<6F>n<EFBFBD> n<>sledovan<61> explicitn<74>m tr<74>den<65>m je obycejne
|
||||
rychlejs<6A> nez pouzit<69> indexu na velk<6C> tabulce.
|
||||
|
||||
Jinak je tomu v pr<70>pade pouzit<69> LIMIT a ORDER BY, pri kter<65>m se
|
||||
vetsinou index pouzije, jelikoz je v<>sledkem pouze mal<61> c<>st tabulky.
|
||||
|
||||
Pokud si mysl<73>te, ze optimizer mylne zvolil sekvencn<63> prohled<65>v<EFBFBD>n<EFBFBD>
|
||||
tabulky, pouzijte pr<70>kaz SET enable_seqscan TO 'off' a zkuste zda je
|
||||
prohled<65>v<EFBFBD>n<EFBFBD> s indexem rychlejs<6A>.
|
||||
|
||||
Pri vyhled<65>v<EFBFBD>n<EFBFBD> na z<>klade vzoru jako je napr. oper<65>tor LIKE nebo ~ se
|
||||
indexy pouzij<69> pouze za urcit<69>ch skutecnost<73>:
|
||||
* zac<61>tek hledan<61>ho vzoru mus<75> b<>t ukotven k zac<61>tku, tj.
|
||||
+ vzor LIKE nesm<73> zac<61>nat %
|
||||
+ ~ regul<75>rn<72> v<>raz mus<75> zac<61>nat ^
|
||||
* vzor nesm<73> zac<61>nat intervalem, napr. [a-e]
|
||||
* vyhled<65>van<61>, kter<65> nen<65> Case sensitiv jako je ILIKE nebo ~*
|
||||
nepouz<75>v<EFBFBD> indexy. Muzete ale pouz<75>t funkcion<6F>ln<6C> indexy, kter<65>
|
||||
jsou pops<70>ny v sekci 4.8
|
||||
* pri inicializaci datab<61>ze (initdb) mus<75> b<>t pouzito C locale nebo
|
||||
vytvorte speci<63>ln<6C> text_pattern_index, kter<65> umozn<7A>, pri
|
||||
respektov<6F>n<EFBFBD> zm<7A>nen<65>ch podm<64>nek pouzit<69> indexu operac<61> LIKE. Pro
|
||||
vyhled<65>v<EFBFBD>n<EFBFBD> cel<65>ch slov je mozn<7A> a v<>hodn<64> pouz<75>t fulltext.
|
||||
|
||||
4.7) Jak zjist<73>m, jak se vyhodnocuje muj dotaz?
|
||||
|
||||
Pod<6F>vejte se do n<>povedy k pr<70>kazu EXPLAIN.
|
||||
|
||||
4.8) Jak pouz<75>t case-(in)sensitive regul<75>rn<72> v<>raz? Jak pouz<75>t index pro case
|
||||
insensitive hled<65>n<EFBFBD>?
|
||||
|
||||
Vyhled<65>v<EFBFBD>n<EFBFBD> prostrednictv<74>m regul<75>rn<72>ch vzoru zajistuje oper<65>tor ~,
|
||||
kter<65> je case-sensitive. Jeho case-insensitive varianta je oper<65>tor
|
||||
~*. Case-insensitive variac<61> oper<65>toru LIKE je oper<65>tor ILIKE.
|
||||
|
||||
Case-insensitive vyhled<65>n<EFBFBD> se res<65>:
|
||||
SELECT *
|
||||
FROM tab
|
||||
WHERE lower(col) = 'abc';
|
||||
|
||||
Tento dotaz nepouzije standardn<64> index. Mus<75>te pouz<75>t tzv.
|
||||
funkcion<6F>ln<6C> index:
|
||||
CREATE INDEX tabindex ON tab (lower(col));
|
||||
|
||||
Pokud index vytvor<6F>me jako unik<69>tn<74>, tak muzeme ukl<6B>dat retezce
|
||||
obsahuj<75>c<EFBFBD> mal<61> i velk<6C> p<>smena, ale nikoliv retezce, kter<65> se od sebe
|
||||
odlisuj<75> jen v mal<61>ch a velk<6C>ch p<>smenech. K zajisten<65> z<>pisu retezce
|
||||
obsahuj<75>c<EFBFBD> pouze mal<61> nebo pouze velk<6C> p<>smena pouzijte CHECK kontroly
|
||||
nebo triggery.
|
||||
|
||||
4.9) Jak v dotazu detekovat, ze polozka je NULL? Jak bezpecne spojit dva
|
||||
retezce, pokud mohou obsahovat NULL? Lze tr<74>dit podle toho, jestli je polozka
|
||||
NULL nebo ne?
|
||||
|
||||
Pokud chcete testovat hodnotu NULL pouzijte oper<65>tor IS:
|
||||
SELECT *
|
||||
FROM tab
|
||||
WHERE col IS NULL;
|
||||
|
||||
K spojen<65> retezcu, kter<65> mohou obsahovat hodnotu NULL, pouz<75>vejte
|
||||
funkci COALESCE(), napr.:
|
||||
SELECT COALESCE(col1, '') || COALESCE(col2, '')
|
||||
FROM tab
|
||||
|
||||
Pokud chcete tr<74>dit podle hodnoty NULL, pouzijte v<>raz IS NULL nebo IS
|
||||
NOT NULL v klauzuli ORDER. Hodnota pravda m<> prednost pred hodnotou
|
||||
false a tedy pokud pouzijete:
|
||||
SELECT *
|
||||
FROM tab
|
||||
ORDER BY (col IS NOT NULL)
|
||||
|
||||
tak z<>znamy s NULL budou na zac<61>tku setr<74>den<65>ch dat.
|
||||
|
||||
4.10) Jak<61> jsou rozd<7A>ly mezi ruzn<7A>mi znakov<6F>mi typy?
|
||||
|
||||
Typ Intern<72> n<>zev Pozn<7A>mky
|
||||
VARCHAR(n) varchar n urcuje maxim<69>ln<6C> d<>lku
|
||||
CHAR(n) bpchar retezec je do dan<61> d<>lky rozs<7A>ren mezerami
|
||||
TEXT text bez omezen<65> d<>lky
|
||||
BYTEA bytea pole bytu nespecifikovan<61> d<>lky
|
||||
"char" char jeden znak
|
||||
|
||||
Na intern<72> n<>zvy muzete narazit v syst<73>mov<6F>m katalogu nebo v nekter<65>ch
|
||||
chybov<6F>ch hl<68>sen<65>ch.
|
||||
|
||||
Ctyri prvn<76> typy jsou tzv. varlena typy (prvn<76> ctyri byty na disku
|
||||
jsou obsahuj<75> d<>lku, ostatn<74> obsahuj<75> vlastn<74> data). Skutecne obsazen<65>
|
||||
prostor je tedy o neco m<>lo vets<74> nez deklarovan<61> velikost. Na druhou
|
||||
stranu, dels<6C> retezce jsou komprimov<6F>ny, takze obsazen<65> prostor na
|
||||
disku muze b<>t mens<6E> nez se cek<65>.
|
||||
|
||||
VARCHAR(n) je vhodn<64> pro ukl<6B>d<EFBFBD>n<EFBFBD> ruzne dlouh<75>ch retezcu u kter<65>ch
|
||||
zn<7A>me d<>lkov<6F> omezen<65>, TEXT pro retezce bez omezen<65> d<>lky (maximum je
|
||||
jeden gigabyte).
|
||||
|
||||
CHAR(n) se pouz<75>v<EFBFBD> pro ulozen<65> stejne dlouh<75>ch retezcu. CHAR(n) dopln<6C>
|
||||
mezerami na specifikovanou d<>lku, VARCHAR(n) hodnoty se ukl<6B>daj<61> tak
|
||||
jak jsou. BYTEA je pro ukl<6B>d<EFBFBD>n<EFBFBD> bin<69>rn<72>ch dat - non ASCII hodnot.
|
||||
Vsechny zm<7A>nen<65> typy maj<61> podobn<62> v<>konov<6F> charakteristiky.
|
||||
|
||||
4.11.1) Jak vytvorit serial/auto-increment polozku?
|
||||
|
||||
V PostgreSQL muzete pouz<75>t datov<6F> typ SERIAL. Jeho pouzit<69>m se
|
||||
automaticky vytvor<6F> sekvence. Napr<70>klad:
|
||||
CREATE TABLE person (
|
||||
id SERIAL,
|
||||
name TEXT
|
||||
);
|
||||
|
||||
je automaticky transformov<6F>no na:
|
||||
CREATE SEQUENCE person_id_seq;
|
||||
CREATE TABLE person (
|
||||
id INT4 NOT NULL DEFAULT nextval('person_id_seq'),
|
||||
name TEXT
|
||||
);
|
||||
|
||||
Podrobnejs<6A> informace najdete v manu<6E>lu v popisu pr<70>kazu
|
||||
create_sequence.
|
||||
|
||||
4.11.2) Jak z<>skat hodnotu SERIAL po vlozen<65> r<>dku?
|
||||
|
||||
Nejjednoduss<73>m zpusob, jak z<>skat vygenerovanou hodnotu typu SERIAL,
|
||||
je vyuz<75>t klauzuli RETURNING. Pro tabulku z 4.11.1 vypad<61> takto:
|
||||
INSERT INTO person (name) VALUES ('Blaise Pascal') RETURNING id;
|
||||
|
||||
Tak<61> muzete pouz<75>t funkci nextvall() a jej<65> v<>sledek pouz<75>t v pr<70>kazu
|
||||
INSERT, nebo zavolat currval() po proveden<65> pr<70>kazu INSERT.
|
||||
|
||||
4.11.3) Nezpusob<6F> currval() a nextval() probl<62>my ve v<>ce uzivatelsk<73>m
|
||||
prostred<65>?
|
||||
|
||||
Ne, currval vrac<61> vzdy hodnotu, kter<65> byla vygenerov<6F>na pro v<>s.
|
||||
|
||||
4.11.4) Proc nen<65> vygenerovan<61> c<>slo pouzito pri prerusen<65> transakce?Proc
|
||||
vznikaj<61> d<>ry v c<>slov<6F>n<EFBFBD> prostrednictv<74>m sekvence nebo typu SERIAL?
|
||||
|
||||
Pot<6F> co sekvence vygeneruje nov<6F> c<>slo, tak se nedoch<63>z<EFBFBD> k zamcen<65>
|
||||
sekvence a necek<65> se na <20>spesn<73> nebo ne<6E>spesn<73> dokoncen<65> transakce.
|
||||
Odvol<6F>n<EFBFBD>m transakce, kter<65> si vyz<79>dala c<>sla sekvence se tato c<>sla
|
||||
nen<65>vratne ztrat<61>.
|
||||
|
||||
4.12) Co to je OID? Co je to CTID?
|
||||
|
||||
V pr<70>pade, ze tabulku nezaloz<6F>me s atributem WITHOUT OIDS, tak m<>
|
||||
kazd<7A> r<>dek unik<69>tn<74> identifikacn<63> c<>slo OID. Toto c<>slo je 4 bajtov<6F>
|
||||
cel<65> c<>slo, kter<65> je jedinecn<63> v cel<65> instalaci. Pretece po 4
|
||||
miliard<72>ch r<>dku. PostgreSQL pouz<75>v<EFBFBD> OIDs jako intern<72> linky v
|
||||
intern<72>ch syst<73>mov<6F>ch tabulk<6C>ch.
|
||||
|
||||
K z<>sk<73>n<EFBFBD> unik<69>tn<74>ho c<>sla v nesyst<73>mov<6F>ch tabulk<6C>ch je vhodnejs<6A>
|
||||
pouzit<69> typu SERIAL nez OID, jelikoz sekvence SERIAL se pouz<75>v<EFBFBD> pouze
|
||||
pro jednu tabulku a je tud<75>z m<>ne n<>chyln<6C> na pretecen<65>. Pokud byste
|
||||
se toho ob<6F>vali, pouzijte typ SERIAL8.
|
||||
|
||||
CTID se pouz<75>v<EFBFBD> k identifikaci konkr<6B>tn<74>ho fyzick<63>ho r<>dku. CTID se
|
||||
men<65> pokud je r<>dek modifikov<6F>n nebo znovu nacten. Pouz<75>vaj<61> ho indexy
|
||||
jako adresaci fyzick<63>ch r<>dku.
|
||||
|
||||
4.13) Co znamen<65> chybov<6F> hl<68>sen<65> "ERROR: Memory exhausted in
|
||||
AllocSetAlloc()"?
|
||||
|
||||
Pravdepodobne jste vycerpal dostupnou virtu<74>ln<6C> pamet, nebo tvuj
|
||||
kernel m<> pr<70>lis n<>zk<7A> limity u urcit<69>ch zdroju. Pred startem
|
||||
PostgreSQL vyzkousejte:
|
||||
ulimit -d 262144
|
||||
limit datasize 256m
|
||||
|
||||
Mozn<7A>, ze se projde pouze jeden pr<70>kaz - z<>lez<65> to na vasem shellu.
|
||||
Mel by zvednout limity datov<6F>ch segmentu vasich procesu na dostatecne
|
||||
velkou hodnotu a snad umoznit dokoncen<65> dotazu. Zmena limitu se bude
|
||||
aplikovat pouze na aktu<74>ln<6C> proces a na vsechny nove vytvoren<65>
|
||||
procesy. Jestlize m<>te probl<62>m s SQL klientem, protoze v<>m server
|
||||
vr<76>til pr<70>lis dat, zkuste to pred startem klienta.
|
||||
|
||||
4.14) Jak zjist<73>m, kterou verzi PostgreSQL pouz<75>v<EFBFBD>m?
|
||||
|
||||
V psql napiste:
|
||||
SELECT version();
|
||||
|
||||
4.15) Jak vytvorit sloupec, kter<65> bude implicitne obsahovat aktu<74>ln<6C> cas?
|
||||
|
||||
Pouzijte CURRENT_TIMESTAMP:
|
||||
CREATE TABLE test (x int, modtime TIMESTAMP DEFAULT CURRENT_TIMESTAMP );
|
||||
|
||||
4.16) Jak prov<6F>st vnejs<6A> spojen<65> (outer join)?
|
||||
|
||||
PostgreSQL podporuje standardn<64> SQL syntaxi pro vnejs<6A> spojen<65>. Zde
|
||||
jsou dva pr<70>klady:
|
||||
SELECT *
|
||||
FROM t1 LEFT OUTER JOIN t2 ON (t1.col = t2.col);
|
||||
|
||||
nebo
|
||||
SELECT *
|
||||
FROM t1 LEFT OUTER JOIN t2 USING (col);
|
||||
|
||||
Tyto identick<63> dotazy spoj<6F> sloupec t1.col k sloupci t2.col, a jeste
|
||||
vr<76>t<EFBFBD> vsechny nesp<73>rovan<61> r<>dky t2 (ty, kter<65> nedohled<65> v t2). RIGHT
|
||||
JOIN by pripojil vsechny nesp<73>rovan<61> r<>dky z t2. FULL JOIN vr<76>t<EFBFBD>
|
||||
vsechny sp<73>rovan<61> r<>dky i vsechny zb<7A>vaj<61>c<EFBFBD> r<>dky z obou tabulek.
|
||||
Kl<4B>cov<6F> slovo OUTER je voliteln<6C>. Bezn<7A> operace JOIN se tak<61> oznacuje
|
||||
jako vnitrn<72> spojen<65>.
|
||||
|
||||
4.17) Jak prov<6F>st dotaz napr<70>c nekolika datab<61>zemi?
|
||||
|
||||
Neexistuje z<>dn<64> zpusob, jak se v dotazu odkazovat na tabulky z jin<69>
|
||||
nez aktu<74>ln<6C> datab<61>ze. A to protoze m<> syst<73>mov<6F> tabulky ulozen<65>
|
||||
nez<65>visle v kazd<7A> datab<61>zi a nen<65> tak <20>plne zrejm<6A>, jak by se dotaz
|
||||
proveden<65> napr<70>c datab<61>zemi mel chovat.
|
||||
|
||||
Jeden z doplnku dblink umoznuje dotaz nad nekolika tabulkami pomoc<6F>
|
||||
funkc<6B>. Druh<75> zpusob je simult<6C>ln<6C> pripojen<65> klienta ke vsem
|
||||
relevantn<74>m datab<61>z<EFBFBD>m a sloucen<65> v<>sledku na strane klienta.
|
||||
|
||||
4.18) Muze funkce vr<76>tit v<>ce r<>dku nebo sloupcu?
|
||||
|
||||
Jde to jednoduse pomoc<6F> set-returning funkce. V<>ce na
|
||||
http://www.postgresql.org/docs/techdocs.17.
|
||||
|
||||
4.19) Co je pr<70>cinou chyby "relation with OID xxxxx does not exist"?
|
||||
|
||||
Nechten<65>m vedlejs<6A>m efektem kesov<6F>n<EFBFBD> SQL dotazu v PL/pgSQL funkci je
|
||||
probl<62>m s neplatn<74>mi odkazy na docasn<73> tabulky, kter<65> byly od prvn<76>ho
|
||||
spusten<65> funkce zruseny a znovu vytvoreny pred dals<6C>m spusten<65>m
|
||||
PL/pgSQL funkce. Resen<65>m je pouz<75>t pr<70>kaz EXECUTE a to proto, ze
|
||||
prov<6F>dec<65> pl<70>n SQL pr<70>kazu spousten<65>ho pr<70>kazem EXECUTE se vytv<74>r<EFBFBD>
|
||||
pokazd<7A> znovu (neukl<6B>d<EFBFBD> se do cache).
|
||||
|
||||
Tento probl<62>m by se nemel vyskytovat u PostgreSQL verze 8.3 a vyss<73>ch
|
||||
verz<72>ch.
|
||||
|
||||
4.20) Jak<61> jsou moznosti replikace datab<61>z<EFBFBD>?
|
||||
|
||||
Replikaci datab<61>ze umoznuje nekolik technoligi<67>. Kazd<7A> m<> urcit<69>
|
||||
v<>hody a nev<65>hody.
|
||||
|
||||
Master/Slave replikaci podporuje jeden hlavn<76> server, kter<65> prij<69>m<EFBFBD>
|
||||
pozadavky na z<>pis a cten<65>, a nekolik podr<64>zen<65>ch serveru, kter<65>
|
||||
umoznuj<75> pouze cten<65> (SELECT). Nejrozs<7A>renejs<6A>m volne dostupn<70>m
|
||||
resen<65>m tohoto typu je Slony-I.
|
||||
|
||||
Replikace typu Multi-master podporuje existenci nekolika serveru s
|
||||
povolen<65>m z<>pisem na v<>ce replikovan<61>ch serverech. Toto resen<65> zvysuje
|
||||
z<>tez serveru, protoze je nutn<74> synchronizace serveru.
|
||||
Nejrozs<7A>renejs<6A>m volne dostupn<70>m resen<65>m je PGCluster.
|
||||
|
||||
Jeste existuje nekolik komercn<63>ch a hardware resen<65> replikac<61>
|
||||
podporuj<75>c<EFBFBD>ch ruzn<7A> modely replikace.
|
||||
|
||||
4.21) Proc v dotazu nejsou rozpozn<7A>ny n<>zvy m<>ch tabulek nebo funkc<6B>? Proc
|
||||
jsou velk<6C> p<>smena v n<>zvech automaticky prevedena na mal<61> p<>smena?
|
||||
|
||||
Nejcastejs<6A>m duvodem nerozpozn<7A>n<EFBFBD> n<>zvu objektu bylo pouzit<69> vlozen<65>
|
||||
n<>zvu sloupce nebo tabulky mezi uvozovky pri zakl<6B>d<EFBFBD>n<EFBFBD> tabulky. Pokud
|
||||
se n<>zev zap<61>se mezi uvozovky, pak je case sensitive, a v dusledku
|
||||
toho je nutn<74> n<>zvy techto sloupcu nebo tabulek v SQL pr<70>kazech tak<61>
|
||||
vkl<6B>dat mezi uvozovky (pokud obsahuj<75> velk<6C> p<>smena). Nekter<65>
|
||||
programy, jako je napr<70>klad pgAdmin, automaticky pouz<75>vaj<61> uvozovky.
|
||||
Takze pokud chcete, aby syst<73>m identifikoval identifik<69>tor, mus<75>te:
|
||||
* nepouz<75>vat uvozovky v pr<70>kazu CREATE TABLE
|
||||
* v identifik<69>toru pouz<75>t pouze mal<61> p<>smena
|
||||
* v dotazech vkl<6B>dat identifik<69>tory do uvozovek
|
1256
doc/FAQ_farsi
1256
doc/FAQ_farsi
File diff suppressed because it is too large
Load Diff
1289
doc/FAQ_french
1289
doc/FAQ_french
File diff suppressed because it is too large
Load Diff
978
doc/FAQ_german
978
doc/FAQ_german
@ -1,978 +0,0 @@
|
||||
|
||||
H<>ufig gestellte Fragen (FAQ) zu PostgreSQL
|
||||
|
||||
Current maintainer: Bruce Momjian (bruce@momjian.us).
|
||||
|
||||
Deutsche <20>bersetzung von Ian Barwick (barwick@gmail.com).
|
||||
|
||||
Letzte Aktualisierung der deutschen <20>bersetzung: Fr., den 19.10.2007,
|
||||
17:00 MEZ
|
||||
|
||||
Die aktuellste Version dieses Dokuments liegt auf der
|
||||
PostgreSQL-Website:
|
||||
* http://www.postgresql.org/docs/faqs.FAQ.html (engl.)
|
||||
* http://www.postgresql.org/docs/faqs.FAQ_german.html (dt.)
|
||||
|
||||
<20>bersetzungen dieses Dokuments in anderen Sprachen sowie plattform-
|
||||
spezifische FAQs k<>nnen unter http://www.postgresql.org/docs/faq/
|
||||
eingesehen werden.
|
||||
_________________________________________________________________
|
||||
|
||||
Allgemeine Fragen
|
||||
|
||||
1.1) Was ist PostgreSQL? Wie wird es ausgesprochen?
|
||||
1.2) Wer kontrolliert PostgreSQL?
|
||||
1.3) Welchem Copyright unterliegt PostgreSQL?
|
||||
1.4) Auf welchen Plattformen l<>uft PostgreSQL?
|
||||
1.5) Woher bekomme ich PostgreSQL?
|
||||
1.6) Was ist die neueste Version von PostgreSQL?
|
||||
1.7) Wo bekomme ich Support f<>r PostgreSQL?
|
||||
1.8) Wie kann ich einen Fehlerbericht abgeben?
|
||||
1.9) Wie erfahre ich von bekannten Bugs oder fehlenden Features?
|
||||
1.10) Welche Dokumentation ist f<>r PostgreSQL verf<72>gbar?
|
||||
1.11) Wie kann ich SQL lernen?
|
||||
1.12) Wie kann ich im Entwicklerteam mitarbeiten?
|
||||
1.13) Wie l<>uft PostgreSQL im Vergleich zu anderen Datenbanksystemen?
|
||||
1.14) Kommt PostgreSQL mit den Anpassungen der Sommerzeit in
|
||||
verschiedenen L<>ndern klar?
|
||||
|
||||
Fragen zu Benutzerprogrammen
|
||||
|
||||
2.1) Welche Schnittstellen gibt es f<>r PostgreSQL?
|
||||
2.2) Wie kann man PostgreSQL mit einer Website nutzen?
|
||||
2.3) Hat PostgreSQL eine grafische Benutzerschnittstelle?
|
||||
|
||||
Administrative Fragen
|
||||
|
||||
3.1) Wie installiere ich PostgreSQL woanders als in /usr/local/pgsql?
|
||||
3.2) Wie regle ich Zugriffe von anderen Rechnern?
|
||||
3.3) Wie kann ich eine bessere Performanz erreichen?
|
||||
3.4) Welche Debugging-Funktionen sind f<>r PostgreSQL verf<72>gbar?
|
||||
3.5) Ich bekomme die Meldung "Sorry, too many clients", wenn ich eine
|
||||
Verbindung aufzubauen versuche. Warum?
|
||||
3.6) Wie wird PostgreSQL aktualisiert?
|
||||
3.7) Welche Hardware eignet sich f<>r den Betrieb mit PostgreSQL?
|
||||
|
||||
Fragen zum Betrieb
|
||||
|
||||
4.1) Wie w<>hle ich per SELECT-Anweisung nur die ersten paar Zeilen
|
||||
bzw. eine beliebige Zeile in einer Abfrage aus?
|
||||
4.2) Wie finde ich heraus, welche Tabellen, Indexe, Datenbanken oder
|
||||
Benutzer in der Datenbank definiert sind? Wie bekomme ich die von psql
|
||||
verwendeten Abfragen?
|
||||
4.3) Wie <20>ndere ich den Datentyp einer Spalte?
|
||||
4.4) Was ist die Maximalgr<67><72>e f<>r eine Zeile, eine Tabelle, eine
|
||||
Datenbank?
|
||||
4.5) Wieviel Plattenplatz wird ben<65>tigt, um die Daten aus einer
|
||||
typischen Textdatei abzuspeichern?
|
||||
4.6) Meine Abfragen sind langsam oder benutzen die Indexe nicht.
|
||||
Warum?
|
||||
4.7) Auf welche Weise kann ich sehen, wie der Abfrage-Optimierer meine
|
||||
Abfrage auswertet?
|
||||
4.8) Wie verfahre ich bei der Suche mit regul<75>ren Ausdr<64>cken und bei
|
||||
einer Suche, bei der Gro<72>- und Kleinschreibweisen ignoriert werden?
|
||||
Wie verwende ich einen Index bei solchen Suchabfragen?
|
||||
4.9) Wie ermittle ich in einer Abfrage, ob ein Feld NULL ist?
|
||||
4.10) Was ist der Unterschied zwischen den verschiedenen CHAR-Typen?
|
||||
4.11.1) Wie erzeuge ich ein serielles Feld mit automatischer Erh<72>hung
|
||||
des Wertes?
|
||||
4.11.2) Wie bekomme ich den Wert einer SERIAL-Sequenz?
|
||||
4.11.3) F<>hrt currval() zu einer Race-Condition mit anderen Nutzern?
|
||||
4.11.4) Warum werden die Sequenzwerte nach einem Transaktionsabbruch
|
||||
nicht zur<75>ckgesetzt? Warum gibt es L<>cken in der Nummerierung meiner
|
||||
Sequenz-/SERIAL-Spalte?
|
||||
4.12) Was ist ein OID? Was ist ein CTID?
|
||||
4.13) Wieso bekomme ich den Fehler: "FATAL: Memory exhausted in
|
||||
AllocSetAlloc()"?
|
||||
4.14) Wie kann ich feststellen, welche PostgreSQL-Version bei mir
|
||||
l<>uft?
|
||||
4.15) Wie kann ich eine Spalte erstellen, deren Default-Wert immer die
|
||||
aktuelle Uhrzeit enthalten soll?
|
||||
4.16) Wie f<>hre ich eine OUTER JOIN durch?
|
||||
4.17) Wie kann ich Abfragen <20>ber mehrere Datenbanken hinweg ausf<73>hren?
|
||||
4.18) Wie kann ich mehrere Zeilen bzw. Spalten von einer Funktion
|
||||
zur<75>ckgeben lassen?
|
||||
4.19) Warum bekomme ich eine Fehlermeldung wie
|
||||
"relation with OID ##### does not exist" wenn ich tempor<6F>re Tabellen
|
||||
in
|
||||
PL/PgSQL-Funktionen benutze?
|
||||
4.20) Welche Replikationsl<73>sungen gibt es?
|
||||
4.21) Warum werden die Tabellen- und Spaltennamen in meiner Abfrage
|
||||
nicht erkannt? Warum werden Gro<72>buchstaben umgewandelt?
|
||||
_________________________________________________________________
|
||||
|
||||
Allgemeine Fragen
|
||||
|
||||
1.1) Was ist PostgreSQL? Wie wird es ausgesprochen?
|
||||
|
||||
Die (englische) Aussprache ist "Post-Gres-Q-L". Im allgemeinen
|
||||
Sprachgebrauch hat sich die Kurzform "Postgres" auch durchgesetzt.
|
||||
(F<>r diejenigen, die es interessiert: eine MP3-Datei mit der
|
||||
amerikanischen Aussprache befindet sich hier:
|
||||
http://www.postgresql.org/files/postgresql.mp3
|
||||
|
||||
PostgreSQL ist ein objektrelationales Datenbanksystem, das die Vorz<72>ge
|
||||
von kommerziellen Datenbanksystemen mit zukunftsweisenden Innovationen
|
||||
kombiniert. PostgreSQL ist freie Software und dessen kompletter
|
||||
Quellcode ist <20>ffentlich verf<72>gbar.
|
||||
|
||||
Die PostgreSQL-Entwicklung wird von einem Team von meist freiwilligen
|
||||
Entwicklern durchgef<65>hrt. Dieses Team ist f<>r die Gesamtentwicklung
|
||||
von PostgreSQL verantwortlich. Es handelt sich um ein
|
||||
Gemeinschaftsprojekt, das nicht von einer bestimmten Firma
|
||||
kontrolliert wird. Lesen Sie die Entwickler-FAQ:
|
||||
http://www.postgresql.org/docs/faqs.FAQ_DEV.html wenn Sie an einer
|
||||
Mitarbeit interessiert sind.
|
||||
|
||||
1.2) Wer kontrolliert PostgreSQL?
|
||||
|
||||
Falls Sie nach dem Namen eines etwaigen Inhabers bzw. nach einem
|
||||
allm<6C>chtigen Zentralkommittee suchen - sparen Sie sich die M<>he, sowas
|
||||
existiert gar nicht. Es gibt zwar das "Core Committee" sowie
|
||||
Entwickler, die CVS-Schreibberechtigung haben, jedoch haben diese
|
||||
Gruppen eher nur eine administrative Rolle. Das Projekt wird durch die
|
||||
Community gesteuert, die aus den Entwicklern sowie nat<61>rlich auch den
|
||||
Nutzern besteht - jeder kann daran teilnehmen. (Lesen Sie die
|
||||
Entwickler-FAQ: http://www.postgresql.org/docs/faqs.FAQ_DEV.html wenn
|
||||
Sie an der PostgreSQL-Entwicklung teilnehmen m<>chten).
|
||||
|
||||
1.3) Welchem Copyright unterliegt PostgreSQL?
|
||||
|
||||
PostgreSQL wird unter der klassischen BSD-Lizenz herausgegeben. Im
|
||||
Grunde genommen erlaubt diese den Nutzern, beliebig mit dem Code
|
||||
umzugehen, auch der Weiterverkauf von Bin<69>rversionen ohne Quellcode
|
||||
ist erlaubt. Die einzige Einschr<68>nkung besteht darin, dass PostgreSQL
|
||||
auf keinen Fall f<>r etwaige Probleme mit der Software haftet. Au<41>erdem
|
||||
mu<6D> der Copyright- Text in allen Kopien der Software enthalten sein.
|
||||
Dies ist der Originaltext der BSD-Lizenz:
|
||||
|
||||
PostgreSQL Data Base Management System
|
||||
|
||||
Portions Copyright (c) 1996-2009, PostgreSQL Global Development Group
|
||||
Portions Copyright (c) 1994-6 Regents of the University of California
|
||||
|
||||
Permission to use, copy, modify, and distribute this software and its
|
||||
documentation for any purpose, without fee, and without a written
|
||||
agreement is hereby granted, provided that the above copyright notice
|
||||
and this paragraph and the following two paragraphs appear in all
|
||||
copies.
|
||||
|
||||
IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY
|
||||
FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES,
|
||||
INCLUDING LOST PROFITS, ARISING OUT OF THE USE OF THIS SOFTWARE AND
|
||||
ITS DOCUMENTATION, EVEN IF THE UNIVERSITY OF CALIFORNIA HAS BEEN
|
||||
ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES,
|
||||
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE
|
||||
PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE UNIVERSITY OF
|
||||
CALIFORNIA HAS NO OBLIGATIONS TO PROVIDE MAINTENANCE, SUPPORT,
|
||||
UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
|
||||
|
||||
Es gilt die Copyright-Klausel im Original!
|
||||
|
||||
1.4) Auf welchen Plattformen l<>uft PostgreSQL?
|
||||
|
||||
Normalerweise kann PostgreSQL auf jeder modernen UNIX-kompatiblen
|
||||
Plattform eingesetzt werden. Diejenigen Plattformen, die bei der
|
||||
jeweiligen Versionsfreigabe getestet wurden, sind in den
|
||||
Installationsanleitungen aufgelistet.
|
||||
|
||||
PostgreSQL l<>uft auch auf Microsoft NT-basierten Betriebssystemen wie
|
||||
Windows 2000 SP4, XP und Server 2003. Ein vorgefertigtes
|
||||
Installationspaket kann von http://pgfoundry.org/projects/pginstaller
|
||||
heruntergeladen werden. DOS-basierte Windows-Versionen (Win95, Win98,
|
||||
WinMe) k<>nnen PostgreSQL nur mit Hilfe der Cygwin-Umgebung ausf<73>hren.
|
||||
|
||||
Eine Portierung f<>r Novell Netware 6 gibt es unter
|
||||
http://forge.novell.com sowie eine OS/2 (eComStation) version unter
|
||||
http://hobbes.nmsu.edu/cgi-bin/h-search?sh=1&button=Search&key=postgre
|
||||
SQL&stype=all&sort=type&dir=%2F.
|
||||
|
||||
1.5) Woher bekomme ich PostgreSQL?
|
||||
|
||||
Per Web-Browser hier: http://www.postgresql.org/ftp/ und per FTP hier:
|
||||
ftp://ftp.postgresql.org/pub/.
|
||||
|
||||
1.6) Was ist die neueste Version von PostgreSQL?
|
||||
|
||||
Die neueste Version von PostgreSQL ist 8.2.5.
|
||||
|
||||
Die Freigabe einer neuen Hauptversion erfolgt in der Regel j<>hrlich,
|
||||
kleinere Korrekturversionen alle paar Monaten.
|
||||
|
||||
1.7) Wo bekomme ich Support f<>r PostgreSQL?
|
||||
|
||||
Die PostgreSQL-Community bietet Unterst<73>tzung per Mailing-Liste. Die
|
||||
Web-Seite http://www.postgresql.org/community/lists/ bietet einen
|
||||
<20>berblick. Die Listen general und bugs bieten einen guten Einstieg.
|
||||
|
||||
Eine deutschsprachige Mailing-Liste gibt es hier:
|
||||
http://archives.postgresql.org/pgsql-de-allgemein/.
|
||||
|
||||
Der wichtigsten IRC-Channel ist #postgresql auf Freenode
|
||||
(irc.freenode.net). Unter UNIX/Linux k<>nnen Sie mit z.B. irc -c
|
||||
'#postgresql' "$USER" irc.freenode.net. daran teilnehmen. Auf Freenode
|
||||
gibt es einen spanischsprachigen Channel #postgresql-es, einen
|
||||
franz<6E>sischen, #postgresqlfr sowie einen brasilianischen,
|
||||
#postgresql-br . Es gibt au<61>erdem einen PostgreSQL-Channel bei EFNet.
|
||||
|
||||
Eine Liste von Unternehmen, die Support f<>r PostgreSQL auf
|
||||
kommerzieller Basis leisten, kann unter
|
||||
http://www.postgresql.org/support/professional_support eingesehen
|
||||
werden.
|
||||
|
||||
1.8) Wie kann ich einen Fehlerbericht abgeben?
|
||||
|
||||
Nutzen Sie das Formular unter
|
||||
http://www.postgresql.org/support/submitbug. Schauen Sie aber vorher
|
||||
unter ftp://ftp.postgresql.org/pub/ nach, ob es mittlerweile eine
|
||||
neuere PostgreSQL-Version gibt, in der der Fehler behoben wurde.
|
||||
|
||||
Bugs, die <20>ber das Formular bzw. eine der Mailing-Listen
|
||||
bekanntgegeben wurden, erhalten typischerweise einer der folgenden
|
||||
Reaktionen:
|
||||
* es ist kein Bug, der Grund wird benannt
|
||||
* es ist ein bereits bekannter Bug, der bereits auf der TODO-Liste
|
||||
aufgenommen wurde
|
||||
* der Bug wurde in der aktuellen Version behoben
|
||||
* der Bug wurde bereits behoben, befindet sich aber noch nicht in
|
||||
einer offiziell ver<65>ffentlichten Version
|
||||
* es wird um eingehendere Informationen gebeten, z.B.:
|
||||
+ Betriebssystem
|
||||
+ PostgreSQL-Version
|
||||
+ reproduzierbarer Fallbeispiel
|
||||
+ Debugging-Information
|
||||
+ Debugger-Backtrace-Ausgabe
|
||||
* der Bug ist neu. Folgendes k<>nnte passieren:
|
||||
+ ein Patch wird erstellt und in der n<>chsten Version
|
||||
eingebaut;
|
||||
+ oder der Bug kann nicht sofort behoben werden und wird auf
|
||||
die TODO-Liste gesetzt
|
||||
|
||||
1.9) Wie erfahre ich von bekannten Bugs oder fehlenden Features?
|
||||
|
||||
PostgreSQL unterst<73>tzt eine erweiterte Teilmenge von SQL:2003. Siehe
|
||||
unsere TODO-Liste unter http://www.postgresql.org/docs/faqs.TODO.html
|
||||
f<>r eine Auflistung der bekannten Bugs, fehlenden Features und
|
||||
zuk<75>nftigen Pl<50>ne.
|
||||
|
||||
Eine Anfrage nach einem neuen Feature f<>hrt normalerweise zu einer der
|
||||
folgenden Antworten:
|
||||
* das Feature ist bereits auf der TODO-Liste
|
||||
* das Feature ist nicht w<>nschenswert, weil:
|
||||
+ es vorhandene Funktionalit<69>t dupliziert, welche bereits dem
|
||||
SQL-Standard folgt
|
||||
+ es w<>rde die Komplexit<69>t der Code-Basis erh<72>hen, ohne
|
||||
nennenswerte Vorteile zu bringen
|
||||
+ es w<>re unsicher bzw. unzuverl<72>ssig
|
||||
* das neue Feature wird der TODO-Liste hinzugef<65>gt
|
||||
|
||||
PostgreSQL verwendet kein Bugtracking-System, da es sich als
|
||||
effizienter erwiesen hat, E-Mails direkt zu beantworten und die
|
||||
TODO-Liste aktuell zu halten. In der Praxis werden Bugs sehr schnell
|
||||
beseitigt, und diejenigen Bugs, die Auswirkungen auf eine gro<72>e Anzahl
|
||||
von Nutzern haben, werden meist kurzfristig korrigiert. Der einzige
|
||||
<20>berblick <20>ber alle <20>nderungen, Verbesserungen und Korrekturen in
|
||||
einer PostgreSQL-Version befindet sich in den CVS-Log-Meldungen. Auch
|
||||
die Release-Notes listen nicht jede <20>nderung in der Software auf.
|
||||
|
||||
1.10) Welche Dokumentation ist f<>r PostgreSQL verf<72>gbar?
|
||||
|
||||
PostgreSQL bietet umfangreiche Dokumentation, darunter ein gro<72>es
|
||||
Handbuch, man-Pages und einige kleine Testprogramme. Siehe das /doc-
|
||||
Verzeichnis. Ausserdem sind alle Handb<64>cher online unter
|
||||
http://www.postgresql.org/docs/ verf<72>gbar.
|
||||
|
||||
Zwei B<>cher zu PostgreSQL sind online verf<72>gbar unter
|
||||
http://www.postgresql.org/docs/books/awbook.html und
|
||||
http://www.commandprompt.com/ppbook/ .
|
||||
|
||||
Eine Liste lieferbarer PostgreSQL-B<>cher befindet sich unter
|
||||
http://www.postgresql.org/docs/books Diverse technische Artikel
|
||||
befinden sich unter http://www.postgresql.org/docs/techdocs .
|
||||
|
||||
psql hat einige n<>tzliche \d-Befehle, um Informationen <20>ber Typen,
|
||||
Operatoren, Funktionen, Aggregate, usw. zu zeigen.
|
||||
|
||||
Die PostgreSQL-Website enth<74>lt noch mehr Dokumentation.
|
||||
|
||||
1.11) Wie kann ich SQL lernen?
|
||||
|
||||
Die oben erw<72>hnten PostgreSQL-spezifische B<>cher bieten einen guten
|
||||
Einstieg. Viele PostgreSQL-Anwender m<>gen "The Practical SQL Handbook"
|
||||
(Bowman et al., Addison Wesley). Andere dagegen m<>gen "The Complete
|
||||
Reference SQL" (Groff et al., McGraw-Hill).
|
||||
|
||||
Es gibt ausserdem einige n<>tzliche Online-Tutorials:
|
||||
* http://www.intermedia.net/support/sql/sqltut.shtm
|
||||
* http://sqlcourse.com
|
||||
* http://www.w3schools.com/sql/default.asp
|
||||
* http://mysite.verizon.net/Graeme_Birchall/id1.html
|
||||
|
||||
1.12) Wie kann ich im Entwicklerteam mitarbeiten?
|
||||
|
||||
Lesen Sie in der Entwickler-FAQ unter
|
||||
http://www.postgresql.org/docs/faqs.FAQ_DEV.html nach.
|
||||
|
||||
1.13) Wie l<>uft PostgreSQL im Vergleich zu anderen Datenbanksystemen?
|
||||
|
||||
Es gibt verschiedene Methoden, Software zu messen: Eigenschaften,
|
||||
Performanz, Zuverl<72>ssigkeit, Support und Preis.
|
||||
|
||||
Eigenschaften
|
||||
PostgreSQL besitzt die meisten Eigenschaften - wie
|
||||
Transaktionen, Unterabfragen (Subqueries), Trigger, Views,
|
||||
referenzielle Integrit<69>t bei Fremdschl<68>sseln und verfeinertes
|
||||
Locking - die bei gro<72>en kommerziellen DBMS vorhanden sind. Es
|
||||
bietet au<61>erdem einige anderen Eigenschaften, die diese nicht
|
||||
immer haben, wie benutzerbestimmte Typen, Vererbung, Regeln,
|
||||
und die Multi-Versionen-Steuerung zum Verringern
|
||||
konkurrierender Locks.
|
||||
|
||||
Performanz
|
||||
Die Performanz von PostgreSQL ist mit der von kommerziellen und
|
||||
anderen Open-Source-Datenbanken vergleichbar. In manchen
|
||||
Bereichen ist es schneller, in anderen langsamer. In der Regel
|
||||
betr<74>gt der Unterschied +/-10%.
|
||||
|
||||
Zuverl<72>ssigkeit
|
||||
Es ist selbstredend, dass ein DBMS wertlos ist, wenn es nicht
|
||||
zuverl<72>ssig arbeitet. Daher bem<65>hen wir uns, nur streng
|
||||
gepr<70>ften und best<73>ndigen Code freizugeben, der nur ein Minimum
|
||||
an Programmfehlern aufweist. Jede Freigabe hat mindestens einen
|
||||
Monat Betatest-Phase hinter sich, und unsere Freigabehistorie
|
||||
beweist, dass wir stabile und solide Versionen freigeben, die
|
||||
im Produktionsbetrieb genutzt werden k<>nnen. Wir glauben, dass
|
||||
wir im Vergleich mit anderer Datenbanksoftware vorteilhaft
|
||||
dastehen.
|
||||
|
||||
Support
|
||||
Unsere Mailinglisten bieten die M<>glichkeit, gemeinsam mit
|
||||
einer gro<72>en Gruppe von Entwicklern und Benutzern m<>gliche
|
||||
Probleme zu l<>sen. Wir k<>nnen nicht immer eine Fehlerbehebung
|
||||
garantieren, kommerzielle DBMS tun dies aber auch nicht. Der
|
||||
direkte Kontakt zur Entwickler- und Benutzergemeinschaft und
|
||||
der Zugriff auf die Handb<64>cher und den Quellcode erm<72>glicht
|
||||
einen im Vergleich zu anderen DBMS h<>herwertigeren Support. Es
|
||||
gibt jedoch auch Anbieter von kommerziellen Support-Leistungen
|
||||
(siehe FAQ-Punkt 1.7).
|
||||
|
||||
Preis
|
||||
PostgreSQL ist frei verf<72>gbar, sowohl f<>r die kommerzielle wie
|
||||
auch f<>r die nicht-kommerzielle Nutzung. Sie k<>nnen den
|
||||
PostgreSQL-Code ohne Einschr<68>nkungen (au<61>er denjenigen, die in
|
||||
der oben angegebene BSD-artigen Lizenz erw<72>hnt werden) in Ihr
|
||||
Produkt integrieren.
|
||||
|
||||
1.14) Kommt PostgreSQL mit den Anpassungen der Sommerzeit in verschiedenen
|
||||
L<>ndern klar?
|
||||
|
||||
<20>nderungen bei der US-Sommerzeit sind ab PostgreSQL Version 8.0.4
|
||||
ber<65>cksichtigt. <20>nderungen in Canada und Western Australia sind ab
|
||||
8.0.10 bzw. 8.1.6 ber<65>cksichtigt. PostgreSQL-Versionen vor 8.0 nutzen
|
||||
die Zeitzonendatenbank des Betriebssystems, um die Sommerzeit zu
|
||||
berechnen.
|
||||
|
||||
Fragen zu Benutzerprogrammen
|
||||
|
||||
2.1) Welche Schnittstellen gibt es f<>r PostgreSQL?
|
||||
|
||||
Die PostgreSQL-Installation stellt nur Schnittstellen f<>r C und
|
||||
Embedded C bereit. Alle weitere Schnittstellen sind unabh<62>ngige
|
||||
Projekte, die einzeln heruntergeladen werden werden m<>ssen. Diese
|
||||
Trennung erm<72>glicht individuelle Entwickler-Teams und
|
||||
Entwicklungszyklen f<>r die jeweiligen Projekte.
|
||||
|
||||
Einige Programmiersprachen wie PHP haben eine PostgreSQL-
|
||||
Schnittstelle bereits eingebaut. Schnittstellen f<>r Sprachen wie Perl,
|
||||
TCL, Python und viele anderen sind unter http://gborg.postgresql.org
|
||||
im Bereich Drivers/Interfaces verf<72>gbar sowie per Internet-Suche.
|
||||
|
||||
2.2) Wie kann man PostgreSQL in einer Website nutzen?
|
||||
|
||||
Eine nette Einf<6E>hrung zu datenbank-gest<73>tzten Webseiten kann unter
|
||||
http://www.webreview.com (engl.) eingesehen werden.
|
||||
|
||||
F<>r die Web-Integration ist PHP eine ausgezeichnete Schnittstelle. PHP
|
||||
gibt es bei http://www.php.net
|
||||
|
||||
F<>r komplexere Aufgaben bietet sich die Perl-Schnittstelle mit CGI.pm
|
||||
oder mod_perl.
|
||||
|
||||
2.3) Hat PostgreSQL eine grafische Benutzerschnittstelle?
|
||||
|
||||
Es gibt eine gro<72>e Anzahl von GUI-Programmen f<>r PostgreSQL - sowohl
|
||||
kommerziell als auch Open-Source. Eine ausf<73>hrliche Liste befindet
|
||||
sich unter http://www.postgresql.org/docs/techdocs.54 .
|
||||
_________________________________________________________________
|
||||
|
||||
Administrative Fragen
|
||||
|
||||
3.1) Wie installiere ich PostgreSQL woanders als in /usr/local/pgsql?
|
||||
|
||||
Bei der Ausf<73>hrung von configure die Option --prefix mit dem
|
||||
Zielverzeichnis angeben.
|
||||
|
||||
3.2) Wie regle ich Zugriffe von anderen Rechnern?
|
||||
|
||||
PostgreSQL ist standardm<64><6D>ig so eingestellt, dass Verbindungen nur vom
|
||||
lokalen Rechner <20>ber Unix Domain Sockets bzw. TCP/IP m<>glich sind.
|
||||
Verbindungen von anderen Rechnern werden erst dann erm<72>glicht, wenn
|
||||
Sie in der Datei postgresql.conf die Einstellung listen_addresses
|
||||
anpassen, in der Datei $PGDATA/pg_hba.conf host-basierte
|
||||
Authentifizierung einschalten und den Server neu starten.
|
||||
|
||||
3.3) Wie kann ich eine bessere Performanz erreichen?
|
||||
|
||||
Es gibt drei gro<72>e Bereiche, in denen Performanzverbesserungen erzielt
|
||||
werden k<>nnen:
|
||||
|
||||
Abfrageoptimierung
|
||||
Die Modifizierung von Abfragen kann eine bessere Performanz
|
||||
erzielen:
|
||||
|
||||
+ Erstellung von Indexen, einschliesslich partieller Indexe
|
||||
sowie Expressionsindexe
|
||||
+ Einsatz von COPY anstelle multipler INSERT-Anweisungen
|
||||
+ Gruppierung von mehreren Abfragen innerhalb einer
|
||||
Transaktion, um Aufwand beim Abschluss von Transaktionen
|
||||
einzusparen
|
||||
+ Einsatz von CLUSTER beim Holen von einer gro<72>en Anzahl von
|
||||
Datenreihen aus einem Index
|
||||
+ Einsatz von LIMIT, um eine Untermenge der Abfragen-
|
||||
ergebnisse zur<75>ckzuliefern
|
||||
+ Einsatz von vorbereiteten Befehlen (prepared queries)
|
||||
+ Einsatz von ANALYZE, um die Datenbankstatistik f<>r den
|
||||
Abfragenplaner aktuell zu halten
|
||||
+ Regelm<6C><6D>iger Einsatz von VACUUM bzw. pg_autovacuum
|
||||
+ Bei gro<72>en Datenver<65>nderungen die L<>schung von Indexen
|
||||
|
||||
Server-Konfiguration
|
||||
Einige Einstellungen in der Datei postgresql.conf wirken auf
|
||||
die Performanz aus. Das Handbuch enth<74>lt unter
|
||||
http://www.postgresql.org/docs/current/static/runtime-config.ht
|
||||
ml eine komplette Auflistung. Kommentare zu den jeweiligen
|
||||
Einstellungen gibt es unter
|
||||
http://www.varlena.com/varlena/GeneralBits/Tidbits/annotated_co
|
||||
nf_e.html und
|
||||
http://www.varlena.com/varlena/GeneralBits/Tidbits/perf.html.
|
||||
|
||||
Hardware-Auswahl
|
||||
Die Auswirkung von Hardware auf Performanz wird unter
|
||||
http://momjian.us/main/writings/pgsql/hw_performance/index.html
|
||||
und http://www.powerpostgresql.com/PerfList/ erl<72>utert.
|
||||
|
||||
3.4) Welche Debugging-Funktionen sind f<>r PostgreSQL verf<72>gbar?
|
||||
|
||||
Unter den Optionen f<>r die Server-Konfigurierung gibt es zahlreiche
|
||||
log_*-Variablen, die die Ausgabe von Abfrage- und Prozessstatistiken
|
||||
erm<72>glichen. Diese k<>nnen f<>r Debugging-Zwecke sowie Performanz-Tests
|
||||
sehr n<>tzlich sein.
|
||||
|
||||
3.5) Ich bekomme die Meldung "Sorry, too many clients", wenn ich eine
|
||||
Verbindung aufzubauen versuche. Warum?
|
||||
|
||||
Ihr System hat die maximal zul<75>ssige Anzahl von Datenbankverbindungen
|
||||
erreicht (Voreinstellung 100). Sie m<>ssen die maximale Anzahl der
|
||||
gleichzeitig ausf<73>hrbaren Backend-Prozesse hochsetzen, indem Sie in
|
||||
postgresql.conf den Wert max_connections <20>ndern und den Server
|
||||
neustarten.
|
||||
|
||||
3.6) Wie wird PostgreSQL aktualisiert?
|
||||
|
||||
Allgemeine Informationen zur Aktualisierung von PostgreSQL gibt es auf
|
||||
der Seite http://www.postgresql.org/support/versioning. Detaillierte
|
||||
technische Informationen gibt es auf der Seite
|
||||
http://www.postgresql.org/docs/current/static/install-upgrading.html
|
||||
|
||||
3.7) Welche Hardware eignet sich f<>r den Betrieb mit PostgreSQL?
|
||||
|
||||
PostgreSQL l<>uft auf fast jeder Hardware-Kombination. Im PC-Bereich
|
||||
gibt es allerdings sehr gro<72>e Abweichungen in der Qualit<69>t. F<>r einen
|
||||
Arbeitsplatz- oder Entwicklungsrechner mag dies nicht so bedeutend
|
||||
sein, im Server-Betrieb jedoch lohnt sich auf jeden Fall die
|
||||
Investition in teurere Bestandteile (Stichw<68>rter ECC-Speicher, SCSI,
|
||||
Hauptplatinen und Netzteile von namhaften Herstellern). Nutzen Sie
|
||||
unsere Mailing-Listen, um Hardware-Optionen zu diskutieren.
|
||||
_________________________________________________________________
|
||||
|
||||
Fragen zum Betrieb
|
||||
|
||||
4.1) Wie w<>hle ich per SELECT-Anweisung nur die ersten paar Zeilen bzw. eine
|
||||
beliebige Zeile in einer Abfrage aus?
|
||||
|
||||
Wenn Sie bei der Ausf<73>hrung der Abfrage die Anzahl der anzufordenden
|
||||
Reihen bereits kennen, nutzen Sie LIMIT. Wenn die ORDER BY- Anweisung
|
||||
mit einem Index verwendet wird, ist es m<>glich, dass die gesamte
|
||||
Abfrage nicht ausgef<65>hrt werden muss. Wenn Sie die Anzahl der der
|
||||
anzufordenden Reihen nicht kennen, verwenden Sie einen Cursor und
|
||||
FETCH.
|
||||
|
||||
Um eine beliebige Zeile auszuw<75>hlen, nutzen Sie ORDER BY random():
|
||||
SELECT spalte
|
||||
FROM tabelle
|
||||
ORDER BY random()
|
||||
LIMIT 1
|
||||
|
||||
|
||||
4.2) Wie finde ich heraus, welche Tabellen, Indexe, Datenbanken oder Benutzer
|
||||
in der Datenbank definiert sind? Wie bekomme ich die von psql verwendeten
|
||||
Abfragen?
|
||||
|
||||
In psql zeigt der Befehl \dt eine Liste der Datenbanktabellen. Weitere
|
||||
psql-Befehle lassen sich mit \? anzeigen. Sie k<>nnen sich die Datei
|
||||
pgsql/src/bin/psql/describe.c mit dem Quellcode f<>r psql ansehen. Sie
|
||||
enth<74>lt die SQL-Abfragen, die die Backslash-Kommandos (\) ausf<73>hren.
|
||||
Sie k<>nnen psql auch mit der -E Option starten. Danach gibt psql die
|
||||
Abfragen aus, die es bei der Ausf<73>hrung der Befehle benutzt. Au<41>erdem
|
||||
biete PostgreSQL ein SQL-kompatibles INFORMATION SCHEMA, das
|
||||
Metainformation <20>ber die Datenbank zur Verf<72>gung stellt.
|
||||
|
||||
Mit psql -l k<>nnen Sie alle Datenbanken anzeigen lassen.
|
||||
|
||||
Die Datei pgsql/src/tutorial/syscat.source enth<74>lt au<61>erdem viele
|
||||
SELECT- Abfragen, mit deren Hilfe man Information <20>ber die
|
||||
Systemtabellen erhalten kann.
|
||||
|
||||
4.3) Wie <20>ndere ich den Datentyp einer Spalte?
|
||||
|
||||
Ab Version 8.0 kann der Datentyp einer Spalte mit ALTER TABLE ALTER
|
||||
COLUMN TYPE ge<67>ndert werden, sofern der neue Datentyp die Werte des
|
||||
alten Datentype aufnehmen kann.
|
||||
|
||||
Bei fr<66>heren Versionen gehen Sie wie folgt vor:
|
||||
BEGIN;
|
||||
ALTER TABLE tabelle ADD COLUMN neue_spalte neuer_datentyp;
|
||||
UPDATE tabelle SET neue_spalte = CAST(alte_spalte AS neuer_datentyp);
|
||||
ALTER TABLE tabelle DROP COLUMN alte_spalte;
|
||||
COMMIT;
|
||||
|
||||
|
||||
Um den Speicherplatz freizugeben, der von der gel<65>schten Spalte
|
||||
verwendet wurde, f<>hren Sie VACUUM FULL aus.
|
||||
|
||||
4.4) Was ist die Maximalgr<67><72>e f<>r eine Zeile, eine Tabelle, eine Datenbank?
|
||||
|
||||
Es bestehen folgende Obergrenzen:
|
||||
Maximale Gr<47><72>e eine Datenbank? unbeschr<68>nkt (es existieren
|
||||
Datenbanken mit 32 TB)
|
||||
Maximale Gr<47><72>e einer Tabelle? 32 TB
|
||||
Maximale Gr<47><72>e einer Zeile? 400 GB
|
||||
Maximale Gr<47><72>e einer Spalte? 1 GB
|
||||
Maximale Anzahl von Zeilen in einer Tabelle?
|
||||
unbeschr<68>nkt
|
||||
Maximale Anzahl von Spalten in einer Tabelle?
|
||||
250-1600 je nach Spaltentyp
|
||||
Maximale Anzahl von Indexen f<>r eine Tabelle?
|
||||
unbeschr<68>nkt
|
||||
|
||||
Selbstverst<73>ndlich sind dies theoretische Werte, die oft durch die
|
||||
verf<72>gbaren Platten- und Speicherressourcen beschr<68>nkt werden. Extreme
|
||||
Gr<47><72>en k<>nnen zu Leistungseinbu<62>en f<>hren.
|
||||
|
||||
Die maximale Tabellengr<67><72>e von 32 TB ben<65>tigt keine
|
||||
Large-File-Unterst<73>tzung im Betriebssystem. Gro<72>e Tabellen werden in
|
||||
Dateien mit einer Gr<47><72>e von je 1 GB aufgeteilt, wodurch etwaige
|
||||
dateisystem-bedingte Beschr<68>nkungen nicht relevant sind.
|
||||
|
||||
Die maximale Tabellengr<67><72>e und die maximale Anzahl von Spalten k<>nnen
|
||||
vervierfacht werden, indem man die Default-Blockgr<67><72>e auf 32 KB
|
||||
heraufsetzt. Die Tabellengr<67><72>e kann auch durch Tabellenpartitionierung
|
||||
vergr<67><72>ert werden.
|
||||
|
||||
Eine Einschr<68>nkung ist, dass Indexe nur auf Spalten erstellt werden
|
||||
k<>nnen, die bis etwa 2.000 Zeichen gro<72> sind. Um auf gr<67><72>ere Spalten
|
||||
eine UNIQUE-Constraint setzen zu k<>nnen, nutzen Sie einen funktionalen
|
||||
Index mit dem MD5-Hash-Wert der Spalte. Um innerhalb einer gro<72>en, mit
|
||||
Text belegten Spalte suchen zu k<>nnen, verwenden Sie einen
|
||||
Volltext-Index.
|
||||
|
||||
4.5) Wieviel Plattenplatz wird ben<65>tigt, um die Daten aus einer typischen
|
||||
Textdatei abzuspeichern?
|
||||
|
||||
Eine PostgreSQL-Datenbank kann beim Abspeichern einer einfachen
|
||||
Textdatei bis zu f<>nfmal mehr Platz gegen<65>ber der eigentlichen Gr<47><72>e
|
||||
der Datei beanspruchen.
|
||||
|
||||
Betrachten wir eine Datei mit 100.000 Zeilen mit einem Integer und
|
||||
einer Textbeschreibung pro Zeile. Gehen wir davon aus, dass die
|
||||
durchschnittliche L<>nge der Textbeschreibung 20 Byte betr<74>gt. Die
|
||||
einfache Datei w<>rde 2,8 MB gro<72> sein. Die Gr<47><72>e der
|
||||
PostgreSQL-Datenbankdatei, die diese Daten enth<74>lt, liegt ungef<65>hr bei
|
||||
5,2 MB:
|
||||
24 Bytes: jeder Zeilenkopf (ungef<65>hr)
|
||||
+24 Bytes: ein Integer-Feld und ein Textfeld
|
||||
+ 4 Bytes: Zeiger auf der Datenseite auf den Tupel
|
||||
-----------------------------------------------
|
||||
52 Bytes pro Zeile
|
||||
|
||||
Die Gr<47><72>e einer Datenseite in PostgreSQL betr<74>gt 8192 Bytes (8 KB),
|
||||
also:
|
||||
8192 Bytes pro Seite
|
||||
--------------------- = 146 Zeilen pro Seite (abgerundet)
|
||||
52 Bytes pro Zeile
|
||||
|
||||
100.000 Datenzeilen
|
||||
------------------------ = 685 Datenbankseiten (aufgerundet)
|
||||
158 Zeilen pro Seite
|
||||
|
||||
633 Datenbankseiten * 8192 Bytes pro Seite = 5,185,536 bytes (5,2 MB)
|
||||
|
||||
Indexe beanspruchen nicht so viel Platz. Da sie jedoch die Daten
|
||||
beinhalten, die sie indizieren, k<>nnen auch sie sehr gro<72> werden.
|
||||
|
||||
NULL-Werte werden als Bitmaps gespeichert, wodurch sie sehr wenig
|
||||
Platz in Anspruch nehmen.
|
||||
|
||||
4.6) Meine Abfragen sind langsam oder benutzen die Indexe nicht. Warum?
|
||||
|
||||
Indexe werden nicht automatisch bei jeder Abfrage verwendet. Indexe
|
||||
werden nur dann verwendet, wenn die abzufragende Tabelle eine
|
||||
bestimmte Gr<47><72>e <20>bersteigt, und die Abfrage nur eine kleine
|
||||
Prozentzahl der Tabellenzeilen abfragt. Der Grund hierf<72>r ist der,
|
||||
dass die durch einen Index verursachten Festplattenzugriffe manchmal
|
||||
l<>nger dauern w<>rden als ein einfaches Auslesen aller Tabellenzeilen
|
||||
(sequentieller Scan).
|
||||
|
||||
Um festzustellen, ob ein Index verwendet werden soll, braucht
|
||||
PostgreSQL Statistiken <20>ber die Tabelle. Diese Statistiken werden
|
||||
durch die Anweisungen VACUUM ANALYZE bzw. ANALYZE berechnet. Anhand
|
||||
der Statistiken kennt der Abfragenoptimierer die Anzahl der
|
||||
Tabellenzeilen und kann besser entscheiden, ob Indexe verwendet werden
|
||||
sollen. Statistiken sind auch bei der Ermittlung der optimalen
|
||||
JOIN-Reihenfolgen und -Methoden wertvoll. Daher sollten diese
|
||||
regelm<6C>ssig durchgef<65>hrt werden, da sich der Inhalt einer Tabelle ja
|
||||
auch ver<65>ndert.
|
||||
|
||||
Indexe werden normalerweise nicht in ORDER BY-Abfrage oder in JOINs
|
||||
verwendet. Ein sequentieller Scan mit anschlie<69>endem explizitem
|
||||
Sortiervorgang ist normalerweise schneller als ein Index-Scan einer
|
||||
gro<72>en Tabelle. Jedoch wird bei einer Abfrage, in der LIMIT zusammen
|
||||
mit ORDER BY verwendet wird, oftmals ein Index verwendet, da nur ein
|
||||
kleiner Abschnitt der Tabelle zur<75>ckgeliefert wird.
|
||||
|
||||
Sollte es danach aussehen, also ob der Optimierer irrt<72>mlich einen
|
||||
sequentiellen Scan ausf<73>hrt, f<>hren Sie SET enable_seqscan TO 'off'
|
||||
aus und pr<70>fen Sie, ob die Indexabfrage dadurch scheller geworden ist.
|
||||
|
||||
Bei der Nutzung von Wildcard-Operatoren wie LIKE oder ~, k<>nnen Indexe
|
||||
nur unter bestimmten Umst<73>nden verwendet werden:
|
||||
* Das Suchmuster muss sich an Anfang des Strings befinden, d.h.:
|
||||
+ LIKE-Suchmuster d<>rfen nicht mit % anfangen;
|
||||
+ ~ (regul<75>re Ausdr<64>cke) m<>ssen mit ^ anfangen.
|
||||
* Das Suchmuster darf nicht mit einer Zeichenklasse (z.B. [a-e])
|
||||
beginnen.
|
||||
* Suchmuster, die Gross- und Kleinschreibung nicht ber<65>cksichtigen
|
||||
(z.B. ILIKE bzw. ~*), verwenden keine Indexe. Stattdessen k<>nnen
|
||||
funktionale Indexe verwendet werden, die im Punkt 4.8 beschrieben
|
||||
werden.
|
||||
* Die Standard-Locale "C" muss w<>hrend der Datenbank-Initialisierung
|
||||
mit initdb verwendet worden sein, da andere locales den
|
||||
n<>chstgr<67><72>ten Wert nicht ermitteln k<>nnen. Es ist allerdings
|
||||
m<>glich, einen besonderen text_pattern_ops-Index f<>r solche F<>lle
|
||||
zu erstellen.
|
||||
|
||||
In Versionen vor 8.0 werden Indexe oft nicht benutzt, wenn die
|
||||
jeweiligen Datentypen nicht genau <20>bereinstimmen. Dies gilt besonders
|
||||
f<>r Indexe auf Spalten mit den Datentypen INT2, INT8 und NUMERIC
|
||||
|
||||
4.7) Auf welche Weise kann ich sehen, wie der Abfrage-Optimierer meine
|
||||
Abfrage auswertet?
|
||||
|
||||
Vgl. die EXPLAIN Man-Page.
|
||||
|
||||
4.8) Wie verfahre ich bei der Suche mit regul<75>ren Ausdr<64>cken und bei einer
|
||||
Suche, bei der Gro<72>- und Kleinschreibweisen ignoriert werden? Wie verwende
|
||||
ich einen Index bei solchen Suchabfragen?
|
||||
|
||||
Der Operator ~ wendet einen regul<75>ren Ausdruck an und ~* wendet ihn
|
||||
an, ohne die Gro<72>- und Kleinschreibung zu beachten. Ebenso beachtet
|
||||
LIKE die Gro<72>- und Kleinschreibung, und ILIKE nicht.
|
||||
|
||||
Gleichheitsvergleiche, die Gro<72>- und Kleinschreibung ignorieren,
|
||||
werden in der Regel so ausgedruckt:
|
||||
SELECT *
|
||||
FROM tabelle
|
||||
WHERE LOWER(spalte) = 'abc'
|
||||
|
||||
Hier wird kein normaler Index benutzt. Legt man hingegen einen
|
||||
funktionalen Index an, so wird er auf jeden Fall verwendet:
|
||||
CREATE INDEX tabelle_index ON tabelle (LOWER(spalte))
|
||||
|
||||
Falls der obige Index als einen UNIQUE-Index angelegt wird, k<>nnen
|
||||
keine Werte in die Spalte eingef<65>gt werden, die sich nur durch ihre
|
||||
Gro<72>- und Kleinschreibung unterscheiden. Um Fehler zu vermeiden mu<6D>
|
||||
ein CHECK-Constraint oder ein Trigger eingesetzt werden.
|
||||
|
||||
4.9) Wie ermittle ich in einer Abfrage, ob ein Feld NULL ist? Kann nach der
|
||||
NULL-Belegung sortiert werden?
|
||||
|
||||
Testen Sie die Spalte mit IS NULL bzw. IS NOT NULL.
|
||||
SELECT *
|
||||
FROM tabelle
|
||||
WHERE spalte IS NULL
|
||||
|
||||
Um die Spalte danach zu sortieren, ob sie mit NULL belegt ist oder
|
||||
nicht, verwenden Sie die Bedingungen IS NULL bzw. IS NOT NULL in der
|
||||
ORDER BY-Klausel. Da Bedingungen, die wahr sind, h<>her als das
|
||||
Gegenteil sortiert werden, bewirkt die folgende Abfrage, dass die
|
||||
NULL-Spalten zuerst gelistet werden:
|
||||
SELECT *
|
||||
FROM tabelle
|
||||
ORDER BY (spalte IS NOT NULL)
|
||||
|
||||
4.10) Was ist der Unterschied zwischen den verschiedenen CHAR-Typen?
|
||||
|
||||
Typ interner Name Bemerkungen
|
||||
-------------------------------------------------
|
||||
VARCHAR(n) varchar die Gr<47><72>e legt die Maximall<6C>nge fest; kein
|
||||
Auff<66>llen mit Leerzeichen
|
||||
CHAR(n) bpchar mit Leerzeichen gef<65>llt bis zur angegebenen L<>nge
|
||||
TEXT text keine obere Schranke f<>r die L<>nge
|
||||
BYTEA bytea Bytearray mit variabler L<>nge (auch f<>r
|
||||
'\0'-Bytes geeignet)
|
||||
"char" char 1 Zeichen
|
||||
|
||||
Der interne Name kommt vor allem in den Systemkatalogen und in manchen
|
||||
Fehlermeldungen vor.
|
||||
|
||||
Die ersten vier Typen sind "varlena"-Typen (d.h. die ersten vier Bytes
|
||||
geben die L<>nge an, gefolgt von den Daten). Daher ist der tats<74>chlich
|
||||
belegte Platz immer etwas mehr als die deklarierte Feldgr<67><72>e.
|
||||
Allerdings wird unter Umst<73>nden auf diese Datentypen Datenkompression
|
||||
durch das TOAST- Verfahren angewendet, womit der tats<74>chlich belegte
|
||||
Platz auch geringer als erwartet ausfallen kann.
|
||||
|
||||
F<>r die Speicherung von Zeichenketten variabler L<>nge empfiehlt sich
|
||||
VARCHAR(n). Die maximale L<>nge eines VARCHAR(n)-Felds wird bei der
|
||||
Tabellendefinition festgelegt. TEXT setzt keine L<>ngengrenze,
|
||||
allerdings gibt es eine systembedingte Obergrenze von 1 GB.
|
||||
|
||||
CHAR(n) ist geeignet f<>r die Speicherung von Zeichenketten, die alle
|
||||
die gleiche L<>nge haben. Bitte beachten Sie, dass CHAR(n) automatisch
|
||||
Zeichenketten bis zur definierten Feldl<64>nge mit Leerzeichen ausf<73>llt,
|
||||
w<>hrend bei VARCHAR(n) nur die tats<74>chlich eingegebene Zeichenkette
|
||||
gespeichert wird.
|
||||
|
||||
BYTEA ist f<>r bin<69>re Daten, besonders f<>r Werte, die NULL-Bytes haben.
|
||||
|
||||
Alle der hier erw<72>hnten Typen weisen <20>hnliche Performanzeigenschaften
|
||||
auf.
|
||||
|
||||
4.11.1) Wie erzeuge ich ein serielles Feld mit automatischer Erh<72>hung des
|
||||
Wert?
|
||||
|
||||
PostgreSQL bietet einen SERIAL-Datentyp. Dieser erzeugt automatisch
|
||||
eine Sequenz auf die angegebene Spalte. Zum Beispiel:
|
||||
CREATE TABLE person (
|
||||
id SERIAL,
|
||||
name TEXT
|
||||
)
|
||||
|
||||
wird automatisch in:
|
||||
CREATE SEQUENCE person_id_seq;
|
||||
CREATE TABLE person (
|
||||
id INT4 NOT NULL DEFAULT nextval('person_id_seq'),
|
||||
name TEXT
|
||||
);
|
||||
|
||||
umgewandelt.
|
||||
|
||||
Die create_sequence Man-Page liefert weitere Informationen <20>ber
|
||||
Sequenzen.
|
||||
|
||||
4.11.2) Wie bekomme ich den Wert einer SERIAL-Sequenz?
|
||||
|
||||
Eine M<>glichkeit w<>re, mit der nextval()-Funktion den n<>chsten
|
||||
SERIAL-Wert von dem Sequenzobjekt vor der Auszuf<75>hrung einer
|
||||
INSERT-Anweisung anzufordern und ihn dann explizit in die
|
||||
INSERT-Anweisung einzubinden. Anhand der Beispieltabelle in 4.11.1
|
||||
k<>nnte dieser Vorgang in einer Pseudosprache so aussehen:
|
||||
new_id = output of execute("SELECT nextval('person_id_seq')");
|
||||
execute("INSERT INTO person (id, name) VALUES (new_id, 'Blaise Pascal')");
|
||||
|
||||
Danach st<73>nde der neue Wert in der Variablen new_id f<>r die Verwendung
|
||||
in weiteren Abfragen zur Verf<72>gung, zum Beispiel als Fremdschl<68>ssel
|
||||
zur Tabelle 'person'). Bitte beachten Sie, dass der Name des
|
||||
automatisch erstellten SEQUENCE-Objektes folgenden Name hat:
|
||||
<20>table<6C>_<EFBFBD>serialcolumn<6D>_seq wobei 'table' und 'serialcolumn' die Namen
|
||||
der jeweils betreffenden Tabelle / Spalte darstellen.
|
||||
|
||||
Als weitere M<>glichkeit k<>nnen Sie nach einer INSERT-Anweisung den
|
||||
automatisch eingef<65>gten SERIAL-Wert mit der currval()-Funktion
|
||||
zur<75>ckgeben lassen:
|
||||
execute("INSERT INTO person (id, name) VALUES (new_id, 'Blaise Pascal')");
|
||||
new_id = output of execute("SELECT currval('person_id_seq')");
|
||||
|
||||
4.11.3) F<>hrt currval() zu einer Race-Condition mit anderen Nutzern?
|
||||
|
||||
Nein. currval() liefert einen Wert zur<75>ck, der von Ihrer
|
||||
Datenbank-Session bestimmt wird, und der anderen Sessionen nicht zur
|
||||
Verf<72>gung steht.
|
||||
|
||||
4.11.4) Warum werden die Sequenzwerte nach einem Transaktionsabbruch nicht
|
||||
zur<75>ckgesetzt? Warum gibt es L<>cken in der Nummerierung meiner
|
||||
Sequenz-/SERIAL-Spalte?
|
||||
|
||||
Um die gleichzeitige Abarbeitung von Transaktionen zu verbessern,
|
||||
werden Sequenzen gerade nicht f<>r andere Transaktionen gesperrt,
|
||||
sondern die Sequenznummern werden den laufenden Transaktionen sofort
|
||||
zugeteilt. L<>cken in der Sequenznummerierung werden durch abgebrochene
|
||||
Transaktionen verursacht.
|
||||
|
||||
4.12) Was ist ein OID? Was ist ein CTID?
|
||||
|
||||
Jede Zeile, die in PostgreSQL erzeugt wird, bekommt eine eindeutige
|
||||
OID, sofern die Tabelle nicht mit der Option WITHOUT OIDS angelegt
|
||||
wurde. OIDs sind automatisch zugewiesene 4-Byte-Integer, die innerhalb
|
||||
der gesamten Datenbank einmalig sind. Allerdings laufen sie bei einem
|
||||
Wert von ungef<65>hr 4 Milliarden <20>ber. PostgreSQL verwendet OIDs, um
|
||||
seine interne Systemtabellen zu verbinden.
|
||||
|
||||
Um einmalige Idenfikatoren in Datentabellen zu erstellen, wird
|
||||
allerdings empfohlen, statt OIDs Werte zu verwenden, die vonSERIAL-
|
||||
Sequenzen erzeugt werden. SERIAL-Sequenzen sind innerhalb einer
|
||||
Tabelle einmalig und daher weniger anf<6E>llig f<>r <20>berl<72>ufe. Au<41>erdem
|
||||
k<>nnen 8-Byte-Sequenzwerte mit SERIAL8 erzeugt werden.
|
||||
|
||||
CTIDs werden benutzt, um bestimmte physikalische Zeilen durch Block
|
||||
und Offset Werte zu identifizieren. CTIDs ver<65>ndern sich, sobald
|
||||
Zeilen ver<65>ndert oder zur<75>ckgeladen werden. Sie werden in
|
||||
Indexeintr<74>gen benutzt um auf die physikalischen Zeilen zu zeigen.
|
||||
|
||||
4.13) Wieso bekomme ich einen Fehler: "ERROR: Memory exhausted in
|
||||
AllocSetAlloc()"?
|
||||
|
||||
Wahrscheinlich gibt es keinen virtuellen Speicher mehr in Ihrem System
|
||||
oder Ihr Kernel hat niedrige H<>chstgrenzen f<>r bestimmte Ressourcen.
|
||||
Probieren Sie vor dem Start von postmaster folgendes:
|
||||
ulimit -d 262144
|
||||
limit datasize 256m
|
||||
|
||||
Je nach benutzter Shell wird nur einer dieser Befehle erfolgreich
|
||||
ausgef<65>hrt werden. Auf jedem Fall wird die Grenze des Datensegments
|
||||
f<>r Prozesse erh<72>ht werden und eventuell die erfolgreiche Ausf<73>hrung
|
||||
der Abfrage erm<72>glichen. Falls Sie ein Problem mit dem SQL-CLient
|
||||
haben, weil das Backend zu viele Daten zur<75>ckliefert, versuchen Sie
|
||||
dies vor dem Start des SQL-Clients.
|
||||
|
||||
4.14) Wie kann ich feststellen, welche PostgreSQL-Version bei mir l<>uft?
|
||||
|
||||
Geben Sie in psql SELECT VERSION(); ein.
|
||||
|
||||
4.15) Wie kann ich eine Spalte erstellen, deren Default-Wert immer die
|
||||
aktuelle Uhrzeit enthalten soll?
|
||||
|
||||
Dazu verwenden Sie CURRENT_TIMESTAMP:
|
||||
CREATE TABLE test (x INT, modtime TIMESTAMP DEFAULT CURRENT_TIMESTAMP );
|
||||
|
||||
4.16) Wie f<>hre ich eine OUTER JOIN durch?
|
||||
|
||||
PostgreSQL unterst<73>tzt OUTER JOINs nach dem SQL- Standardsyntax. Hier
|
||||
zwei Beispiele:
|
||||
SELECT *
|
||||
FROM tabelle_1 t1
|
||||
LEFT OUTER JOIN tabelle_2 t2 ON (t1.spalte = t2.spalte)
|
||||
|
||||
bzw.:
|
||||
SELECT *
|
||||
FROM tabelle_1 t1
|
||||
LEFT OUTER JOIN tabelle_2 t2 USING (spalte)
|
||||
|
||||
Diese identischen Abfragen verkn<6B>pfen tabelle_1 mit tabelle_2 <20>ber die
|
||||
Spalte 'spalte' und geben au<61>erdem alle unverkn<6B>pften Zeilen in
|
||||
tabelle_1 (diejenigen, die keine Entsprechung in tabelle_2 haben)
|
||||
zur<75>ck. Ein RIGHT JOIN w<>rde hingegen alle unverkn<6B>pften Zeilen in
|
||||
tabelle_2 hinzuf<75>gen und ein FULL JOIN w<>rde alle verkn<6B>pften Zeilen
|
||||
sowie jeweils alle unverkn<6B>pften Zeilen aus den beiden Tabellen
|
||||
zur<75>ckliefern. Die Angabe von OUTER ist nicht zwingend und kann in
|
||||
LEFT, RIGHT und FULL-Verkn<6B>pfungen weggelassen werden. Normale
|
||||
Verkn<6B>pfungen sind INNER JOINs.
|
||||
|
||||
4.17) Wie kann ich Abfragen <20>ber mehrere Datenbanken hinweg ausf<73>hren?
|
||||
|
||||
Es gibt keinen Weg, innerhalb einer Abfrage auf mehr als eine
|
||||
Datenbank zuzugreifen. Da PostgreSQL datenbank-spezifische
|
||||
Systemkataloge l<>dt, ist eine datenbank<6E>bergreifende Abfrage nicht
|
||||
m<>glich.
|
||||
|
||||
contrib/dblink ist eine Erweiterung, die datenbank<6E>bergreifende
|
||||
Abfragen <20>ber Funktionsaufrufe erm<72>glicht.
|
||||
|
||||
4.18) Wie kann ich mehrere Zeilen bzw. Spalten von einer Funktion zur<75>ckgeben
|
||||
lassen?
|
||||
|
||||
Funktionen k<>nnen mehrere Zeilen und Spalten zur<75>ckgeben, vgl.:
|
||||
http://www.postgresql.org/docs/techdocs.17.
|
||||
|
||||
4.19) Warum bekomme ich eine Fehlermeldung wie "relation with OID ##### does
|
||||
not exist" wenn ich tempor<6F>re Tabellen in PL/PgSQL-Funktionen benutze?
|
||||
|
||||
In PostgreSQL-Versionen vor 8.3 verarbeitet PL/PgSQL Funktionen in
|
||||
einer Cache. Dies hat eine unangenehme Nebenwirkung, n<>mlich dass wenn
|
||||
eine PL/PgSQL-Funktion auf eine tempor<6F>re Tabelle zugreift, und diese
|
||||
Tabelle anschlie<69>end gel<65>scht bzw. neu erstellt wird, die Funktion
|
||||
fehlschlagen wird, da die gecachten Funktionsinhalte noch auf die alte
|
||||
tempor<6F>re Tabelle zeigen. Die L<>sung f<>r diese Probleme besteht darin,
|
||||
in der PL/PgSQL- Funktion mittels EXECUTE auf tempor<6F>re Tabellen
|
||||
zuzugreifen. Dies bewirkt, dass bei jedem Funktionsruf die betreffende
|
||||
Abfrage neu geparst wird.
|
||||
|
||||
Dieses Problem taucht in PostgreSQL 8.3 und sp<73>teren Versionen nicht
|
||||
mehr auf.
|
||||
|
||||
4.20) Welche Replikationsl<73>sungen gibt es?
|
||||
|
||||
Der Begriff "replikation" umfasst mehrere verschiedene Technologien,
|
||||
jede mit eigenen Vor- und Nachteilen.
|
||||
|
||||
Mit "Master/slave"-Replikation werden <20>nderungen in einer
|
||||
Hauptdatenbank durchgef<65>hrt und an "Sklaven" verteilt, die im
|
||||
Nur-Lese-Modus arbeiten. Die popul<75>rste L<>sung f<>r PostgreSQL ist
|
||||
Slony-I.
|
||||
|
||||
"Multi-master replication" erm<72>glicht sowohl lesende als auch
|
||||
schreibende Zugriffe <20>ber mehrere Datenbank-Server hinweg. Allerdings
|
||||
hat diese Art von Replikation eine negative Auswirkung auf die
|
||||
Performanz durch die Notwendigkeit, <20>nderungen zwischen Servern zu
|
||||
synchronisieren. Pgcluster ist die popul<75>rste freie L<>sung f<>r
|
||||
PostgreSQL.
|
||||
|
||||
Es gibt auch einige kommerzielle und hardware-basierte
|
||||
Replikationsl<73>sungen f<>r verschiedene Arten der Replikation.
|
||||
|
||||
4.21) Warum werden die Tabellen- und Spaltennamen in meiner Abfrage nicht
|
||||
erkannt? Warum werden Gro<72>buchstaben umgewandelt?
|
||||
|
||||
Die h<>ufigste Ursache ist die Verwendung von G<>nsef<65><66>chen bei der
|
||||
Anlegung von Tabellen, z.B.:
|
||||
CREATE TABLE "Tabelle"
|
||||
("SPALTE1" INT)
|
||||
|
||||
Dadurch werden Tabellen- und Spaltennamen (sog. Identifikatoren) in
|
||||
genau der Schreibweise gespeichert (vgl. Dokumentation), was dazu
|
||||
f<>hrt, dass man sie danach immer in G<>nsef<65><66>chen angeben muss. Im
|
||||
obigen Beispiel muss man also immer etwa SELECT * FROM "Tabelle"
|
||||
verwenden. Um dieses Problem zu vermeiden, m<>ssen Sie immer eines der
|
||||
folgenden Punkte beachten:
|
||||
* bei der Tabellenanlegung keine G<>nsef<65><66>chen verwenden;
|
||||
* in Identifikatoren nur Kleinschreibung verwenden;
|
||||
* immer Identifikatoren mit G<>nsef<65><66>chen versehen
|
||||
_________________________________________________________________
|
||||
|
||||
Anmerkungen des <20>bersetzers
|
||||
|
||||
Die englische Vorlage dieser FAQ wird st<73>ndig <20>berarbeitet. Daher
|
||||
liegt die <20>bersetzung nicht immer auf dem aktuellsten Stand.
|
||||
|
||||
Die aktuellste Version der deutschen <20>bersetzung befindet sich immer
|
||||
unter http://sql-info.de/de/postgresql/FAQ_german.html. Diese
|
||||
"Arbeitsversion" enth<74>lt eventuell <20>nderungen, die noch nicht auf der
|
||||
PostgreSQL-Website eingebunden worden sind.
|
||||
|
||||
<20>ber Verbesserungshinweise und Korrekturvorschl<68>ge sowie
|
||||
Verst<73>ndnisfragen zum Inhalt der FAQ freue ich mich. Ich nehme auch
|
||||
allgemeine Fragen zu PostgreSQL gerne entgegen, verweise jedoch auf
|
||||
die Mailing-Listen als schnelle und zuverl<72>ssige Anlaufstellen.
|
1234
doc/FAQ_hungarian
1234
doc/FAQ_hungarian
File diff suppressed because it is too large
Load Diff
1126
doc/FAQ_japanese
1126
doc/FAQ_japanese
File diff suppressed because it is too large
Load Diff
1279
doc/FAQ_polish
1279
doc/FAQ_polish
File diff suppressed because it is too large
Load Diff
988
doc/FAQ_russian
988
doc/FAQ_russian
@ -1,988 +0,0 @@
|
||||
|
||||
Otvety na chasto zadavaemye voprosy po PostgreSQL
|
||||
|
||||
Data poslednego obnovleniya: Sreda 25 iyunya 23:54:14 EDT 2008
|
||||
|
||||
Anglijskij variant soprovozhdaet: Bryus Mom'yan (Bruce Momjian)
|
||||
(bruce@monjian.us)
|
||||
|
||||
Pereviol na russkij: Viktor Vislobokov (admin@postgresql.ru.net)
|
||||
|
||||
Samuyu svezhuyu anglijskuyu versiyu dokumenta mozhno najti na
|
||||
http://www.postgresql.org/files/documentation/faqs/FAQ.html.
|
||||
|
||||
Samuyu svezhuyu russkuyu versiyu dokumenta mozhno najti na
|
||||
http://postgresql.ru.net/docs/FAQ_russian.html.
|
||||
|
||||
Otvety na voprosy specifichnye dlya konkretnyh platform mozhno najti
|
||||
na http://www.postgresql.org/docs/faq/.
|
||||
_________________________________________________________________
|
||||
|
||||
Obschie voprosy
|
||||
|
||||
1.1) CHto takoe PostgreSQL? Kak proiznositsya `eto nazvanie? CHto
|
||||
takoe Postgres?
|
||||
1.2) Kto upravlyaet PostgreSQL?
|
||||
1.3) Kakovy avtorskie prava na PostgreSQL?
|
||||
1.4) Na kakih platformah rabotaet PostgreSQL?
|
||||
1.5) Gde mozhno vzyat' PostgreSQL?
|
||||
1.6) Kakaya versiya naibolee svezhaya?
|
||||
1.7) Gde poluchit' podderzhku?
|
||||
1.8) Kak mne soobschit' ob oshibke?
|
||||
1.9) Kak najti informaciyu ob izvestnyh oshibkah ili otsutstvuyuschih
|
||||
vozmozhnostyah?
|
||||
1.10) Kakaya dokumentaciya imeetsya v nalichii?
|
||||
1.11) Kak nauchit'sya SQL?
|
||||
1.12) Kak mne otpravit' ispravlenie ili prisoedinitsya k komande
|
||||
razrabotchikov?
|
||||
1.13) Kak sravnit' PostgreSQL s drugimi SUBD? Mozhet li PostgreSQL
|
||||
byt' vstroennoj?
|
||||
1.14) Budet li PostgreSQL rabotat' s poslednimi izmeneniyami, v raznyh
|
||||
stranyh, kasayuschimisya dnevnogo vremeni?
|
||||
1.15) Kak mne otpisat'sya ot spiskov rassylki PostgreSQL? Kak
|
||||
izbezhat' polucheniya dubliruyuschihsya soobschenij?
|
||||
|
||||
Voprosy pol'zovatelej po klientskoj chasti
|
||||
|
||||
2.1) Kakie interfejsy est' dlya PostgreSQL?
|
||||
2.2) Kakie instrumenty suschestvuyut dlya ispol'zovaniya PostgreSQL
|
||||
cherez Web?
|
||||
2.3) Est' li u PostgreSQL graficheskij interfejs pol'zovatelya?
|
||||
|
||||
Voprosy administrirovaniya
|
||||
|
||||
3.1) Kak mne ustanovit' PostgreSQL v mesto otlichnoe ot
|
||||
/usr/local/pgsql?
|
||||
3.2) Kak mne upravlyat' soedineniyami ot drugih komp'yuterov?
|
||||
3.3) Kakie nastrojki mne nuzhno sdelat' dlya uluchsheniya
|
||||
proizvoditel'nosti?
|
||||
3.4) Kakie vozmozhnosti dlya otladki est' v nalichii?
|
||||
3.5) Pochemu ya poluchayu soobschenie "Sorry, too many clients" kogda
|
||||
pytayus' podklyuchit'sya k baze?
|
||||
3.6) Kak vypolnit' obnovlenie PostgreSQL?
|
||||
3.7) Kakoe komp'yuternoe "zhelezo" ya dolzhen ispol'zovat'?
|
||||
|
||||
Voprosy `ekspluatacii
|
||||
|
||||
4.1) Kak vypolnit' SELECT tol'ko dlya neskol'kih pervyh strochek
|
||||
zaprosa? Dlya proizvol'noj stroki?
|
||||
4.2) Kak mne najti kakie tablicy, indeksy, bazy dannyh i pol'zovateli
|
||||
suschestvuyut? Kak mne uvidet' zaprosy, kotorye ispol'zuet psql dlya
|
||||
polucheniya `etoj informacii?
|
||||
4.3) Kak izmenit' tip dannyh kolonki?
|
||||
4.4) Kakovy maksimal'nye razmery dlya strok v tablice, tablic i bazy
|
||||
dannyh?
|
||||
4.5) Kak mnogo diskovogo prostranstva v baze dannyh nuzhno dlya
|
||||
sohraneniya dannyh iz obychnogo tekstovogo fajla?
|
||||
4.6) Pochemu moi zaprosy rabotayut medleno? Pochemu oni ne ispol'zuyut
|
||||
moi indeksy?
|
||||
4.7) Kak posmotret' na to, kak optimizator vypolnyaet moj zapros?
|
||||
4.8) Kak mne vypolnit' poisk regulyarnogo vyrazheniya i poisk
|
||||
nezavisimyj ot registra bukv poisk regulyarnogo vyrazheniya? Kak mne
|
||||
ispol'zovat' indeks dlya poiska nezavisimogo ot registra bukv?
|
||||
4.9) Kak mne opredelit', chto znachenie polya v kakom-libo zaprose
|
||||
ravno NULL? Kak mne soedinit' vozmozhnye NULL? Mogu ya sortirovat'
|
||||
polya NULL ili net?
|
||||
4.10) Kakovy otlichiya mezhdu raznymi simvol'nymi tipami?
|
||||
4.11.1) Kak mne sozdat' pole serial/s-avto-uvelicheniem?
|
||||
4.11.2) Kak mne poluchit' znachenie pri vstavke SERIAL?
|
||||
4.11.3) Ne mozhet li poluchit'sya tak, chto ispol'zovanie currval() i
|
||||
nextval() privedet k zaciklirovaniyu s drugimi pol'zovatelyami?
|
||||
4.11.4) Pochemu chisla iz moej posledovatel'nosti ne ispol'zuyutsya
|
||||
snova pri otmene tranzakcii? Pochemu sozdayutsya razryvy pri numeracii
|
||||
v kolonke, gde ya ispol'zuyu posledovatel'nost'/SERIAL?
|
||||
4.12) CHto takoe OID? CHto takoe CTID?
|
||||
4.13) Pochemu ya poluchayu oshibku "ERROR: Memory exhausted in
|
||||
AllocSetAlloc()"?
|
||||
4.14) Kak mne uznat', kakaya versiya PostgreSQL zapuschena?
|
||||
4.15) Kak mne sozdat' kolonku kotoraya po umolchaniyu budet soderzhat'
|
||||
tekuschee vremya?
|
||||
4.16) Kak vypolnit' vneshnee svyazyvanie?
|
||||
4.17) Kak vypolnyat' zaprosy, ispol'zuyuschie neskol'ko baz dannyh?
|
||||
4.18) Kak mne vernut' iz funkcii neskol'ko strok tablicy?
|
||||
4.19) Pochemu ya poluchayu oshibku "relation with OID #### ne
|
||||
suschestvuet", kogda obraschayuts' k vremennym tablicam v funkciyah
|
||||
PL/PgSQL?
|
||||
4.20) Kakie est' resheniya dlya replikacii?
|
||||
4.21) Pochemu imena tablicy i kolonok ne raspoznayutsya v v moiom
|
||||
zaprose? Pochemu ne sohranyayutsya zaglavnye bukvy?
|
||||
_________________________________________________________________
|
||||
|
||||
Obschie voprosy
|
||||
|
||||
1.1) CHto takoe PostgreSQL? Kak proiznositsya `eto nazvanie? CHto takoe
|
||||
Postgres?
|
||||
|
||||
PostgreSQL proiznositsya Post-Gres-Q-L (Post-Gres-K'yu-`El). (Dlya
|
||||
osobo lyubopytstvuyuschih kak proiznosit' "PostgreSQL", suschestvuet
|
||||
audio-fajl).
|
||||
|
||||
PostgreSQL - `eto ob"ektno-relyacionnaya sistema upravleniya bazami
|
||||
dannyh (SUBD), kotoraya imeet tradicionnye vozmozhnosti kommercheskih
|
||||
SUBD s rasshireniyami, kotorye est' v SUBD novogo pokoleniya.
|
||||
PostgreSQL - `eto svobodnoe i polnost'yu otkrytoe programmnoe
|
||||
obespechenie.
|
||||
|
||||
Razrabotku PostgreSQL vypolnyaet komanda razrabotchikov, razbrosannaya
|
||||
po vsemu miru i svyazannaya cherez Internet. Razrabotka yavlyaetsya
|
||||
obschestvennym proektom i ne upravlyaetsya kakoj-libo kompaniej.
|
||||
Podrobnosti smotrite v FAQ dlya razrabotchikov,
|
||||
http://www.postgresql.org/docs/faqs.FAQ_DEV.html
|
||||
|
||||
Postgres -- `eto shiroko ispol'zuemoe sokraschenie dlya PostgreSQL.
|
||||
Pervonachal'nym imenem proekta v Berkli bylo Postgres i `etot nik
|
||||
teper' naibolee populyaren v razgovorah o PostgreSQL po sravneniyu s
|
||||
drugimi. Esli vam trudno polnost'yu progovarivat' 'PostgreSQL', mozhno
|
||||
prosto govorit' 'Postgres'.
|
||||
|
||||
1.2) Kto upravlyaet PostgreSQL?
|
||||
|
||||
Esli vy ischite kakogo-to osobennogo cheloveka, central'nyj komitet
|
||||
ili upravlyayuschuyu kompaniyu, to naprasno --- ih net. U nas est'
|
||||
yadro komiteta i razrabotchikov, rabotayuschih s CVS, no `eti gruppy
|
||||
sluzhat bol'she dlya administrativnyh celej, chem dlya upravleniya.
|
||||
Proekt napryamuyu funkcioniruet s pomosch'yu soobschestva
|
||||
razrabotchikov i pol'zovatelej, k kotoromu mozhet prisoedinitsya
|
||||
kazhdyj. Vsio chto nuzhno -- `eto podpisat'sya na spiski rassylki i
|
||||
uchastvovat' v diskussiyah. (Podrobnosti o tom kak vklyuchit'sya v
|
||||
razrabotku PostgreSQL smotrite v FAQ dlya razrabotchikov.)
|
||||
|
||||
1.3) Kakovy avtorskie prava na PostgreSQL?
|
||||
|
||||
PostgreSQL rasprostranyaetsya po klassicheskoj licenzii BSD. `Eta
|
||||
licenziya ne soderzhit ogranichenij na to, kak budet ispol'zovat'sya
|
||||
ishodnyj kod. Nam nravitsya `eta licenziya i u nas net namerenij eio
|
||||
menyat'. Vot `eta licenziya BSD, kotoruyu my ispol'zuem:
|
||||
|
||||
Sistema Upravleniya Bazami Dannyh PostgreSQL
|
||||
|
||||
Portions copyright (c) 1996-2008, PostgreSQL Global Development Group
|
||||
Portions Copyright (c) 1994-1996 Regents of the University of
|
||||
California
|
||||
|
||||
Predostavlyayutsya prava na ispol'zovanie, kopirovanie, izmenenie i
|
||||
rasprostranenie dannogo programmnogo obespecheniya i ego dokumentacii
|
||||
dlya lyubyh celej, besplatno i bez podpisaniya kakogo-libo
|
||||
soglasheniya, pri uslovii chto dlya kazhdoj kopii budut predostavleny
|
||||
dannoe vyshe zamechanie ob avtorskih pravah, tekuschij paragraf i dva
|
||||
sleduyuschih paragrafa.
|
||||
|
||||
KALIFORNIJSKIJ UNIVERSITET NE NESET NIKAKOJ OTVETSTVENNOSTI ZA LYUBYE
|
||||
POVREZHDENIYA, VKLYUCHAYA POTERYU DOHODA, NANESENNYE PRYAMYM ILI
|
||||
NEPRYAMYM, SPECIAL'NYM ILI SLUCHAJNYM ISPOL'ZOVANIEM DANNOGO
|
||||
PROGRAMMNOGO OBESPECHENIYA ILI EGO DOKUMENTACII, DAZHE ESLI
|
||||
KALIFORNIJSKIJ UNIVERSITET BYL IZVESCHEN O VOZMOZHNOSTI TAKIH
|
||||
POVREZHDENIJ.
|
||||
|
||||
KALIFORNIJSKIJ UNIVERSITET SPECIAL'NO OTKAZYVAZYVAETSYA PREDOSTAVLYAT'
|
||||
LYUBYE GARANTII, VKLYUCHAYA, NO NE OGRANICHIVAYAS' TOL'KO `ETIMI
|
||||
GARANTIYAMI: NEYAVNYE GARANTII PRIGODNOSTI TOVARA ILI PRIGODNOSTI DLYA
|
||||
OTDEL'NOJ CELI. DANNOE PROGRAMMNOE OBESPECHENIE PREDOSTAVLYAETSYA NA
|
||||
OSNOVE PRICIPA "KAK EST'" I KALIFORNIJSKIJ UNIVERSITET NE OBYAZAN
|
||||
PREDOSTAVLYAT' SOPROVOZHDENIE, PODDERZHKU, OBNOVLENIYA, RASSHIRENIYA
|
||||
ILI IZMENENIYA.
|
||||
|
||||
1.4) Na kakih platformah rabotaet PostgreSQL?
|
||||
|
||||
Obychno, PostgreSQL mozhet rabotat' na lyuboj sovremennoj platforme
|
||||
sovmestimoj s Unix. V instrukcii po ustanovke, vy najdete spisok teh
|
||||
platform, na kotoryh byli provedeny testovye zapuski PostgreSQL k
|
||||
momentu vyhoda dannoj versii.
|
||||
|
||||
PostgreSQL takzhe rabotaet na operacionnyh sistemah Microsoft Windows,
|
||||
osnovannyh na NT, takih kak Win2000 SP4, WinXP i Win2003. Paket
|
||||
installyatora dostupen po adresu
|
||||
http://www.postgresql.org/download/windows. Versii Windows, osnovannye
|
||||
na MS-DOS (Win95, Win98, WinMe) mogut zapuskat' PostgreSQL s
|
||||
pomosch'yu Cygwin.
|
||||
|
||||
Takzhe suschestvuet versiya sportirovannaya pod Novell Netware 6 na
|
||||
http://developer.novell.com/wiki/index.php/Postgresql, i versiya dlya
|
||||
OS/2 (eComStation) na
|
||||
http://hobbes.nmsu.edu/cgi-bin/h-search?sh=1&button=Search&key=postgre
|
||||
SQL&stype=all&sort=type&dir=%2F.
|
||||
|
||||
1.5) Gde mozhno vzyat' PostgreSQL?
|
||||
|
||||
CHerez brauzer, ispol'zuya http://www.postgresql.org/ftp/ i cherez
|
||||
ftp, ispol'zuya ftp://ftp.postgresql.org/pub/.
|
||||
|
||||
1.6) Kakaya versiya naibolee svezhaya?
|
||||
|
||||
Poslednij vypusk PostgreSQL - `eto versiya 8.3.3
|
||||
|
||||
My planiruem vypuskat' novye starshie versii kazhdyj god, a mladshie
|
||||
versii kazhdye neskol'ko mesyacev.
|
||||
|
||||
1.7) Gde poluchit' podderzhku?
|
||||
|
||||
Soobschestvo PostgreSQL predostavlyaet pomosch' mnozhestvu
|
||||
pol'zovatelej cherez E-mail. Osnovnoj web-sajt dlya podpiski na spiski
|
||||
rassylki po E-mail `eto: http://www.postgresql.org/community/lists/.
|
||||
Horoshim mestom dlya togo, chtoby nachat' zadavat' voprosy
|
||||
yavlyayutsya spiski general (obschie voprosy) ili bugs (oshibki).
|
||||
|
||||
Glavnym IRC kanalom yavlyaetsya #postgreql, raspolozhennyj na servere
|
||||
Freenode (irc.freenode.net). CHtoby podklyuchit'sya, vy mozhete
|
||||
ispol'zovat' v Unix vyzov programmy irc -c '#postgresql' "$USER"
|
||||
irc.freenode.net ili lyuboj drugoj IRC klient. Na `etom zhe servere
|
||||
suschestvuyut kanaly na ispanskom (#postgresql-es), francuzskom
|
||||
(#postgresqlfr) i brazil'skom (#postgresql-br) yazykah. Takzhe
|
||||
suschestvuet kanal po PostgreSQL na servere EFNet.
|
||||
|
||||
Spisok kommercheskoj podderzhki kompanij dostupen na
|
||||
http://www.postgresql.org/support/professional_support.
|
||||
|
||||
1.8) Kak mne soobschit' ob oshibke?
|
||||
|
||||
Posetite stranichku so special'noj formoj otchiota ob oshibke v
|
||||
PostgreSQL po adresu: http://www.postgresql.org/support/submitbug.
|
||||
Takzhe prover'te nalichie bolee svezhej versii PostgreSQL na nashem
|
||||
FTP sajte ftp://ftp.postgresql.org/pub/.
|
||||
|
||||
Na oshibki, uvedomlenie o kotoryh byli sdelany cherez special'nuyu
|
||||
formu ili otpravlennye v kakoj-libo spisok rassylki PostgreSQL,
|
||||
obychno generiruetsya odin iz sleduyuschih otvetov:
|
||||
* `Eto ne oshibka i pochemu
|
||||
* `Eto izvestnaya oshibka i ona uzhe est' v spiske TODO
|
||||
* Dannaya oshibka byla ispravlena v tekuschem vypuske
|
||||
* Dannaya oshibka byla ispravlena, no ispravlenie poka ne popalo v
|
||||
oficial'nyj vypusk
|
||||
* Zaprashivaetsya bolee detal'naya informaciya:
|
||||
+ Operacionnaya sistema
|
||||
+ Versiya PostgreSQL
|
||||
+ Test, vosproizvodyaschij oshibku
|
||||
+ Otladochnaya informaciya
|
||||
+ Vyvod backtrace otladchika
|
||||
* `Eto novaya oshibka. Mozhet proizojti sleduyuschee:
|
||||
+ Budet sozdano ispravlenie, kotoroe budet vklyucheno v
|
||||
sleduyuschij vypusk
|
||||
+ Oshibka ne mozhet byt' ispravlena nemedlenno i budet
|
||||
dobavlena v spisok TODO
|
||||
|
||||
1.9) Kak najti informaciyu ob izvestnyh oshibkah ili otsutstvuyuschih
|
||||
vozmozhnostyah?
|
||||
|
||||
PostgreSQL podderzhivaet rasshirennyj podklass SQL:2003. Smotrite nash
|
||||
spisok TODO na predmet izvestnyh oshibok, otsutstvuyuschih
|
||||
vozmozhnostej i buduschih planov.
|
||||
|
||||
Na zapros kakoj-libo vozmozhnosti obychno prihodyat sleduyuschie
|
||||
otvety:
|
||||
* Dannaya vozmozhnost' uzhe est' v spiske TODO
|
||||
* Dannaya vozmozhnost' nezhelatel'na potomu chto:
|
||||
+ Ona dubliruet suschestvuyuschuyu funkcional'nost', kotoraya
|
||||
sleduet standartu SQL
|
||||
+ Dannaya vozmozhnost' sil'no uslozhnila by kod, no dala by
|
||||
malen'kuyu vygodu
|
||||
+ Dannaya vozmozhnost' nebezopasna ili nenadiozhna
|
||||
* Dannaya novaya vozmozhnost' dobavlena v spisok TODO
|
||||
|
||||
PostgreSQL ne ispol'zuet kakuyu-libo sistemu otslezhivaniya oshibok,
|
||||
potomu chto my obnaruzhili, chto ispol'zovanie pryamogo obrascheniya
|
||||
po `elektronnoj pochte i obnovlyaemogo spiska TODO yavlyaetsya bolee
|
||||
`effektivnym. Na praktike, oshibki v programmnom obespechenii
|
||||
sohranyayutsya ochen' nedolgo, a oshibki, kotorye vazhny bol'shomu
|
||||
kolichestvu pol'zovatelej ispravlyayutsya momental'no. Est' tol'ko
|
||||
odno mesto, gde mozhno najti vse izmeneniya, uluchsheniya i
|
||||
ispravleniya, sdelannye v vypuske PostgreSQL - `eto zhurnaly
|
||||
soobschenij sistemy kontrolya versij CVS. Dazhe zamechaniya k vypuskam
|
||||
ne soderzhat vse izmeneniya, sdelannye v programmnom obespechenii.
|
||||
|
||||
1.10) Kakaya dokumentaciya imeetsya v nalichii?
|
||||
|
||||
PostgreSQL soderzhit mnogo dokumentacii, vklyuchaya bol'shoe
|
||||
rukovodstvo, stranicy `elektronnogo rukovodstva man i nekotorye
|
||||
malen'kie testovye primery. Smotrite v katalog /doc. Vy takzhe mozhete
|
||||
prosmatrivat' dokumentaciyu v Internet po adresu
|
||||
http://www.postgresql.org/docs.
|
||||
|
||||
Suschestvuet dve knigi po PostgreSQL dostupnye po adresam
|
||||
http://www.PostgreSQL.org/docs/books/awbook.html i
|
||||
http://www.commandprompt.com/ppbook/. Est' neskol'ko knig po
|
||||
PostgreSQL, kotorye mozhno kupit'. Odnu iz naibolee populyarnyh
|
||||
napisal Korri Duglas (Korry Douglas). Spisok obzorov po `etim knigam
|
||||
dostupen po adresu http://www.postgresql.org/docs/books/. Krome togo,
|
||||
po adresu
|
||||
http://wiki.postgresql.org/wiki/Community_Generated_Articles%2C_Guides
|
||||
%2C_and_Documentation vy mozhete najti kollekciyu tehnicheskih statej,
|
||||
posveschennyh PostgreSQL.
|
||||
|
||||
Klient komandnoj stroki psql imeet neskol'ko komand \d dlya
|
||||
otobrazheniya informacii po tipam, operatoram, funkciyam, agregatam i
|
||||
t.d. - ispol'zujte \? dlya polucheniya spiska dostupnyh komand.
|
||||
|
||||
Nash sajt soderzhit esche bol'she informacii.
|
||||
|
||||
1.11) Kak mne nauchit'sya SQL?
|
||||
|
||||
Vo-pervyh, voz'mite odnu iz knig po PostgreSQL, o kotoryh govorilos'
|
||||
vyshe. Mnogim iz nashih pol'zovatelej takzhe nravitsya kniga The
|
||||
Practical SQL Handbook, Bowman, Judith S., et al., Addison-Wesley.
|
||||
Drugim nravitsya The Complete Reference SQL, Groff et al.,
|
||||
McGraw-Hill.
|
||||
|
||||
Suschestvuet takzhe mnozhestvo prekrasnyh uchebnikov dostupnyh v
|
||||
online:
|
||||
* http://www.intermedia.net/support/sql/sqltut.shtm,
|
||||
* http://sqlcourse.com.
|
||||
* http://www.w3school.com/sql/default.asp
|
||||
* http://mysite.verizon.net/Graeme_Birchall/id1.html
|
||||
|
||||
1.12) Kak mne prislat' ispravlenie ili prisoedinitsya k komande
|
||||
razrabotchikov?
|
||||
|
||||
Smotrite FAQ dlya razrabotchikov.
|
||||
|
||||
1.13) Kak sravnit' PostgreSQL s drugimi SUBD? Mozhet li PostgreSQL byt'
|
||||
vstroennym?
|
||||
|
||||
Suschestvuet neskol'ko metodov sravneniya programmnogo obespecheniya:
|
||||
vozmozhnosti, proizvoditel'nost', nadezhnost', podderzhka i cena.
|
||||
|
||||
Vozmozhnosti
|
||||
PostgreSQL imeet bol'shinstvo vozmozhnostej predstavlennyh v
|
||||
bol'shih kommercheskih SUBD, takie kak: tranzakcii, podzaprosy,
|
||||
triggery, predstavleniya, ssylochnoj celostnosti vtorichnogo
|
||||
klyucha i raznye blokirovki. U nas est' nekotorye vozmozhnosti,
|
||||
kotoryh net u nih: tipy, opredelyaemye pol'zovatelem, mehanizm
|
||||
nasledovaniya, pravila i konkuretnoe mnogoversionnoe upravlenie
|
||||
dlya raboty s soderzhimym blokirovok.
|
||||
|
||||
Proizvoditel'nost'
|
||||
Proizvoditel'nost' PostgreSQL shodna s drugimi kommercheskimi
|
||||
SUBD i s SUBD s otkrytym ishodnym kodom. V kakih-to veschah my
|
||||
bystree, v kakih-to medlennee. Nasha proizvoditel'nosti obychno
|
||||
+/-10% po sravneniyu s drugimi SUBD.
|
||||
|
||||
Nadezhnost'
|
||||
My ponimali, chto nasha SUBD dolzhna byt' nadezhnoj ili ona
|
||||
nichego ne budet stoit'. My staraemsya vypuskat' horosho
|
||||
proverennyj, stabil'nyj kod, kotoryj soderzhit minimum oshibok.
|
||||
Kazhdyj vypusk prohodit stadiyu beta-testirovaniya po krajnej
|
||||
mere v techenii odnogo mesyaca i nasha istoriya vypuskov
|
||||
pokazyvaet chto my mozhem predostavlyat' stabil'nye, monolitnye
|
||||
vypuski, kotorye gotovy k produktivnomu ispol'zovaniyu. My
|
||||
verim, chto my proizvodim proverku ne huzhe, chem u drugih
|
||||
SUBD.
|
||||
|
||||
Podderzhka
|
||||
Nash spisok rassylki predostavlyaet vozmozhmozhnost' obscheniya
|
||||
s bol'shoj gruppoj razrabotchikov i pol'zovatelej, kotorye
|
||||
mogut pomoch' reshit' lyubye voznikshie problemy. V to zhe
|
||||
vremya, my ne garantiruem kakie-libo ispravleniya, no i
|
||||
razrabotchiki kommercheskih SUBD ne vsegda delayut
|
||||
ispravleniya. Pryamoj dostup k razrabotchikam, soobschestvu
|
||||
pol'zovatelej, rukovodstvam i ishodnym tekstam chasto delayut
|
||||
podderzhku PostgreSQL prevoshodyaschej drugie SUBD.
|
||||
Suschestvuet kommercheskaya podderzhka po rezul'tam voznikshih
|
||||
incidentov, kotoraya dostupna dlya teh komu ona nuzhna.
|
||||
(Smotrite Sekciyu 1.7.)
|
||||
|
||||
Cena
|
||||
Nash produkt besplaten kak dlya kommercheskogo tak, i ne dlya
|
||||
kommercheskogo ispol'zovaniya. Vy mozhete dobavlyat' svoj kod v
|
||||
nash produkt bez ogranichenij, za isklyucheniem teh, chto
|
||||
opisyvayutsya v nashej licenzii stilya BSD, kotoraya privedena
|
||||
vyshe.
|
||||
|
||||
PostgreSQL razrabatyvaetsya po arhitekture klient/server, kotoraya
|
||||
trebuet otdel'nyh processov dlya kazhdogo klienta i servera, a takzhe
|
||||
neskol'ko vspomogatel'nyh processov. Mnogie vstraivaemye arhitektury
|
||||
mogut sootvetstvovat' takim trebovaniyam. Odnako, esli vasha
|
||||
vstraivaemaya arhitektura trebuet server baz dannyh dlya zapuska
|
||||
vnutri prikladnogo processa, vy ne mozhete ispol'zovat' Postgres i vam
|
||||
luchshe by vybrat' dlya bazy dannyh kakoe-libo drugoe oblegchennoe
|
||||
reshenie.
|
||||
|
||||
1.14) Budet li PostgreSQL rabotat' s poslednimi izmeneniyami, v raznyh
|
||||
stranyh, kasayuschimisya dnevnogo vremeni?
|
||||
|
||||
Izmeneniya v sohranenii dnevnogo vremeni v SSHA vklyucheny v
|
||||
PostgreSQL versii 8.0.[4+] i vo vse sleduyuschie vypuski, naprimer v
|
||||
8.1. Izmeneniya po Kanade i Zapadnoj Avstralii vklyucheny v 8.0.[10+],
|
||||
8.1.[6+] i vse sleduyuschie vypuski. Vypuski PostgreSQL do 8.0
|
||||
ispol'zuyut informaciyu o sohranenii dnevnogo vremeni iz bazy dannyh
|
||||
vremennyh zon v operacionnoj sisteme.
|
||||
_________________________________________________________________
|
||||
|
||||
1.15) Kak mne otpisat'sya ot spiskov rassylki PostgreSQL? Kak izbezhat'
|
||||
polucheniya dubliruyuschih soobschenij?
|
||||
|
||||
Stranica Majordomo na sajte PostgreSQL pozvolyaet podpisat'sya ili
|
||||
otpisat'sya ot lyubogo iz spiskov rassylki PostgreSQL. (Vam mozhet
|
||||
ponadobitsya vash parol' dlya Majordomo, kotoryj otpravlyaetsya na
|
||||
vash E-mail, chtoby vojti v upravlenie vashimi podpiskami.)
|
||||
|
||||
Vse spiski rassylki PostgreSQL nastarivayutsya tak, chtoby gruppovoj
|
||||
otvet uhodil na adres spiska i na adres avtora soobscheniya. Tak
|
||||
sdelano, chtoby pol'zovateli poluchali otvety na E-mail kak mozhno
|
||||
bystree. Esli vy ne hotite poluchat' dubliruyuschie E-mail
|
||||
soobscheniya iz spiska, v sluchayah kogda vy uzhe poluchili `eti
|
||||
soobscheniya napryamuyu, ustanovite flazhok eliminatecc na stranice
|
||||
Change Settings v Majordomo. Vy takzhe mozhete izbezhat' polucheniya
|
||||
kopij svoih soobschenij dlya samogo sebya, esli snimite flazhok
|
||||
selfcopy.
|
||||
_________________________________________________________________
|
||||
|
||||
Voprosy pol'zovatelej po klientskoj chasti
|
||||
|
||||
2.1) Kakie interfejsy est' dlya PostgreSQL?
|
||||
|
||||
Ustanovka PostgreSQL vklyuchaet tol'ko C i vstroennyj (embedded) C
|
||||
interfejsy. Vse drugie interfejsy yavlyayutsya nezavisimymi proektami
|
||||
i zagruzhayutsya otdel'no; samostoyatel'nost' proektov pozvolyaet im
|
||||
organizovat' sobstvennoe raspisanie vypuskov novyh versij i imet'
|
||||
sobstvennuyu komandu razrabotchikov.
|
||||
|
||||
Nekotorye yazyki programmirovaniya, takie kak PHP vklyuchayut v sebya
|
||||
interfejs k PostgreSQL. Interfejsy dlya takih yazykov kak Perl, TCL,
|
||||
Python i mnogih drugih, dostupny na http://pgfoundry.org.
|
||||
|
||||
2.2) Kakie instrumenty suschestvuyut dlya ispol'zovaniya PostgreSQL cherez
|
||||
Web?
|
||||
|
||||
Prekrasnoe vvedenie vo vzaimodejstvie baz dannyh i Web mozhno najti
|
||||
na: http://www.webreview.com
|
||||
|
||||
Dlya integracii s Web, PHP http://www.php.net yavlyaetsya neplohim
|
||||
interfejsom.
|
||||
|
||||
V slozhnyh sluchayah, mnogie pol'zuyutsya Perl i DBD::Pg s CGI.pm ili
|
||||
mod_perl.
|
||||
|
||||
2.3) Est' li u PostgreSQL graficheskij interfejs pol'zovatelya?
|
||||
|
||||
Dlya PostgreSQL suschestvuet bol'shoe kolichestvo instrumentov s
|
||||
graficheskim interfejsom kak kommercheskih, tak i otkrytyh.
|
||||
Podrobnosti mozhno najti v Dokumentacii soobschestva dlya GUI
|
||||
istrumentov PostgreSQL
|
||||
_________________________________________________________________
|
||||
|
||||
Voprosy administrirovaniya
|
||||
|
||||
3.1) Kak mne ustanovit' PostgreSQL v mesto otlichnoe ot /usr/local/pgsql?
|
||||
|
||||
Zadajte opciyu --prefix kogda zapuskaete configure.
|
||||
|
||||
3.2) Kak mne upravlyat' soedineniyami ot drugih komp'yuterov?
|
||||
|
||||
Po umolchaniyu, PostgreSQL razreshaet tol'ko soedineniya na lokal'noj
|
||||
mashine cherez sokety domena Unix ili TCP/IP soedineniya. Dlya togo,
|
||||
chtoby drugie mashiny smogli podklyuchit'sya k baze vy dolzhny
|
||||
izmenit' listen_addresses v postgresql.conf, razreshit'
|
||||
host-avtorizaciya v fajle $PGDATA/pg_hba.conf i perestartovat' server
|
||||
SUBD.
|
||||
|
||||
3.3) Kakie nastrojki mne nuzhno sdelat' dlya uluchsheniya proizvoditel'nosti?
|
||||
|
||||
Suschestvuet tri glavnyh oblasti, kotorye potencial'no mogut
|
||||
uvelichit' proizvoditel'nost':
|
||||
|
||||
Izmenenie zaprosa
|
||||
`Eto oznachaet modifikaciyu zaprosov dlya polucheniya luchshej
|
||||
proizvoditel'nosti:
|
||||
|
||||
+ Sozdanie indeksov, vklyuchaya indeksy vyrazhenij i
|
||||
chastichnye indeksy
|
||||
+ Ispol'zovanie COPY vmesto mnozhestva INSERT
|
||||
+ Gruppirovka neskol'kih operatorov v edinuyu tranzakciyu dlya
|
||||
umen'sheniya nagruzki pri vypolnenii zaversheniya tranzakcii
|
||||
+ Ispol'zovanie CLUSTER, kogda iz indeksa beriotsya mnozhestvo
|
||||
strok
|
||||
+ Ispol'zovanie LIMIT dlya togo, chtoby vozvraschalas' tol'ko
|
||||
chast' vyvoda ot zaprosa
|
||||
+ Ispol'zovanie Podgotovlennyh (Prepared) zaprosov
|
||||
+ Ispol'zovanie ANALYZE dlya obsluzhivaniya statistiki
|
||||
optimizatora
|
||||
+ Regulyarnoe ispol'zovanie VACUUM ili pg_autovacuum
|
||||
+ Udalenie indeksov vo vremya bol'shih izmenenij dannyh
|
||||
|
||||
Nastrojka servera
|
||||
Nekotorye ustanovki v postgresql.conf vliyayut na
|
||||
proizvoditel'nost'. Podrobnyj polnyj spisok ustanovok sm. v
|
||||
Administration Guide/Server Run-time Environment/Run-time
|
||||
Configuration, a kommentarii sm. v
|
||||
http://www.varlena.com/varlena/GeneralBits/Tidbits/annotated_co
|
||||
nf_e.html i
|
||||
http://www.varlena.com/varlena/GeneralBits/Tidbits/perf.html.
|
||||
|
||||
Vybor "zheleza" - apparatnogo obespecheniya
|
||||
Vliyanie "zheleza" na proizvoditel'nost' podrobno opisano v
|
||||
http://www.powerpostgresql.com/PerfList/ i
|
||||
http://momjian.us/main/writings/pgsql/hw_performance/index.html
|
||||
.
|
||||
|
||||
3.4) Kakie vozmozhnosti dlya otladki est' v nalichii?
|
||||
|
||||
Est' mnozhestvo ustanovok v nastrojkah servera, nachinayuschihsya na
|
||||
log_* na
|
||||
http://www.postgresql.org/docs/current/interactive/runtime-config-logg
|
||||
ing.html, pozvolyayuschih protokolirovat' zaprosy i statistiku raboty
|
||||
processa, kotoraya ochen' polezna dlya otladki i izmereniya
|
||||
proizvoditel'nosti.
|
||||
|
||||
3.5) Pochemu ya poluchayu soobschenie "Sorry, too many clients" kogda
|
||||
pytayus' podklyuchit'sya k baze?
|
||||
|
||||
Vy dostigli ustanovlennogo po umolchaniyu ogranicheniya v 100 sessij
|
||||
podklyucheniya k baze dannyh. Vam neobhodimo uvelichit' limit na
|
||||
kolichestvo konkurentnyh backend processov dlya vashego servera BD,
|
||||
izmeniv znachenie max_connections v fajle postgresql.conf i
|
||||
perestartovat' server BD.
|
||||
|
||||
3.6) Kak vypolnit' obnovlenie PostgreSQL?
|
||||
|
||||
Sm. informaciyu ob obnovlenii v
|
||||
http://www.postgresql.org/support/versioning i special'nye instrukcii
|
||||
v
|
||||
http://www.postgresql.org/docs/current/static/install-upgrading.html.
|
||||
|
||||
3.7) Kakoe komp'yuternoe "zhelezo" ya dolzhen ispol'zovat'?
|
||||
|
||||
Poskol'ku "zhelezo" personal'nyh komp'yuterov yavlyaetsya naibolee
|
||||
sovmestimym, lyudi sklonny verit', chto takoe "zhelezo" imeet
|
||||
odinakovoe kachestvo. `Eto ne tak. Pamyat' ECC, SCSI i kachestvennye
|
||||
materinskie platy yavlyayutsya bolee nadiozhnymi i imeyut bolee
|
||||
luchshuyu proizvoditel'nost', chem menee dorogoe "zhelezo". PostgreSQL
|
||||
budet rabotat' na lyubom "zheleze", no esli dlya vas vazhny
|
||||
nadiozhnost' i proizvoditel'nost', to s vashej storony budet mudro
|
||||
postavit' sootvetstvuyuschee "zhelezo". Obsudit' raznoe "zhelezo"
|
||||
mozhno v nashih spiskah rassylki.
|
||||
_________________________________________________________________
|
||||
|
||||
Voprosy `ekspluatacii
|
||||
|
||||
4.1) Kak vypolnit' SELECT tol'ko dlya neskol'kih pervyh strochek zaprosa?
|
||||
Proizvol'noj stroki?
|
||||
|
||||
Dlya polucheniya tol'ko neskol'kih strok, esli vy znaete ih
|
||||
kolichestvo na moment vypolneniya SELECT ispol'zujte LIMIT.
|
||||
Esli est' kakoj-libo indeks, kotoryj sovpadaet s ORDER BY, to
|
||||
vozmozhno, chto ves' zapros vypolnen i ne budet. Esli vy ne znaete
|
||||
kolichestva neobhodimyh strok na moment vypolneniya SELECT,
|
||||
ispol'zujte kursor i FETCH.
|
||||
|
||||
To SELECT a random row, use:
|
||||
SELECT col
|
||||
FROM tab
|
||||
ORDER BY random()
|
||||
LIMIT 1;
|
||||
|
||||
4.2) Kak mne najti kakie tablicy, indeksy, bazy dannyh i pol'zovateli
|
||||
suschestvuyut? Kak mne uvidet' zaprosy, kotorye ispol'zuet psql dlya
|
||||
polucheniya `etoj informacii?
|
||||
|
||||
CHtoby prosmatrivat' tablicy v psql, ispol'zujte komandu \dt. Polnyj
|
||||
spisok komand v psql vy mozhete poluchit', ispol'zuya \?. Krome togo,
|
||||
vy mozhete posmotret' ishodnyj kod psql v fajle
|
||||
pgsql/src/bin/psql/describe.c. On soderzhit komandy SQL kotorye
|
||||
generiruyutsya pri vvode v psql komand, nachinayuschihsya s obratnoj
|
||||
kosoj cherty. Vy takzhe mozhete zapustit' psql s opciej -E tak, chtoby
|
||||
`eta programma vydavala zaprosy, kotorye ona ispol'zuet dlya
|
||||
vypolneniya zadannyh vami komand. PostgreSQL takzhe predostavlyaet SQL
|
||||
sovmestimyj s INFORMATION SCHEMA interfejs, s pomosch'yu kotorogo, vy
|
||||
mozhete sformirovat' zapros na poluchenie informacii o baze dannyh.
|
||||
|
||||
Takzhe suschestvuyut sistemnye tablicy, nachinayuschiesya s pg_.
|
||||
|
||||
Ispol'zujte psql -l dlya polucheniya spiska vseh baz dannyh.
|
||||
|
||||
Takzhe posmotrite fajl pgsql/src/tutorial/syscat.source. On pokazyvaet
|
||||
mnogie iz operatorov SELECT neobhodimyh dlya polucheniya informacii iz
|
||||
sistemnyh tablic bazy dannyh.
|
||||
|
||||
4.3) Kak izmenit' tip dannyh kolonki?
|
||||
|
||||
V 8.0 i bolee pozdnih versiyah, izmenenie tipa kolonki vypolnyaetsya
|
||||
ochen' legko cherez ALTER TABLE ALTER COLUMN TYPE.
|
||||
|
||||
V bolee rannih versiyah sdelajte tak:
|
||||
BEGIN;
|
||||
ALTER TABLE tab ADD COLUMN new_col new_data_type;
|
||||
UPDATE tab SET new_col = CAST(old_col AS new_data_type);
|
||||
ALTER TABLE tab DROP COLUMN old_col;
|
||||
COMMIT;
|
||||
|
||||
4.4) Kakovy maksimal'nye razmery dlya strok v tablice, tablic i bazy dannyh?
|
||||
|
||||
Suschestvuyut sleduyuschie ogranicheniya:
|
||||
|
||||
Maksimal'nyj razmer bazy? neogranichen (suschestvuyut bazy na 32 TB)
|
||||
Maksimal'nyj razmer tablicy? 32 TB
|
||||
Maksimal'nyj razmer stroki? 400 Gb
|
||||
Maksimal'nyj razmer polya? 1 GB
|
||||
Maksimal'noe kolichestvo strok v tablice? neogranicheno
|
||||
Maksimal'noe kolichestvo kolonok v tablice? 250-1600 v zavisimosti ot
|
||||
tipa
|
||||
Maksimal'noe kolichestvo indeksov v tablice? neogranicheno
|
||||
|
||||
Razumeetsya, ponyatie "neogranicheno" na samom dele ogranichivaetsya
|
||||
dostupnym diskovym prostranistvom i razmerami pamyati/svoppinga. Kogda
|
||||
znacheniya perechislennye vyshe neopravdano bol'shie, mozhet
|
||||
postradat' proizvoditel'nost'.
|
||||
|
||||
Maksimal'nyj razmer tablicy v 32 TB ne trebuet chtoby operacionnaya
|
||||
sistema podderzhivala fajly bol'shih razmerov. Bol'shie tablicy
|
||||
hranyatsya kak mnozhestvo fajlov razmerom v 1 GB, tak chto
|
||||
ogranicheniya, kotorye nakladyvaet fajlovaya sistema ne vazhny.
|
||||
|
||||
Maksimal'nyj razmer tablicy i maksimal'noe kolichestvo kolonok mogut
|
||||
byt' uvelicheny v chetyre raza, esli razmer bloka po umolchaniyu budet
|
||||
uvelichen do 32k.
|
||||
|
||||
Suschestvuet ogranichenie, po kotoromu indeksy ne mogut sozdavat'sya
|
||||
dlya kolonok dlinnee chem 2,000 simvolov. K schast'yu takie indeksy
|
||||
vryad li dejstvitel'no komu-to nuzhny. Unikal'nost' garantiruetsya
|
||||
nailuchim obrazom, s pomosch'yu funkcional'nogo indeksa iz h`esha MD5
|
||||
dlinnoj kolonki, a polnotekstovoe indeksirovanie pozvolyaet iskat'
|
||||
slova vnutri kolonki.
|
||||
|
||||
4.5) Kak mnogo diskovogo prostranstva v baze dannyh nuzhno dlya sohraneniya
|
||||
dannyh iz obychnogo tekstovogo fajla?
|
||||
|
||||
SUBD PostgreSQL mozhet potrebovat'sya diskovogo prostranstva do 5 raz
|
||||
bol'she dlya sohraneniya dannyh iz prostogo tekstovogo fajla.
|
||||
|
||||
V kachestve primera, rassmotrim fajl v 100,000 strok v kazhdoj, iz
|
||||
kotoryh celoe chislo i tekstovoe opisanie. Pri `etom dlina teksta, v
|
||||
srednem, sostavlyaet 20 bajt. Razmer prostogo fajla sostavit 2.8 MB.
|
||||
Razmer bazy PostgreSQL, soderzhaschej `eti zhe dannye sostavit
|
||||
priblizitel'no 5.2 MB iz kotoryh:
|
||||
24 bajt: na kazhdyj zagolovok stroki v tablice (priblizitel'no)
|
||||
+ 24 bajta: odno pole s celochislennym tipom i odno tekstovoe pole
|
||||
+ 4 bajta: ukazatel' na stranice dlya vsej tablichnoj stroki
|
||||
----------------------------------------
|
||||
56 bajt na stroku v tablice
|
||||
|
||||
Razmer stranicy dannyh v PostgreSQL sostavlyaet 8192 bajt (8 KB), tak chto:
|
||||
|
||||
8192 bajt na stranicu
|
||||
--------------------- = 158 strok v tablice na stranicu BD (okruglionno)
|
||||
52 bajt na stroku v tablice
|
||||
|
||||
100000 strok dannyh
|
||||
----------------------- = 633 stranic v BD (okruglionno)
|
||||
158 strok v tablice na stranicu
|
||||
|
||||
633 stranic BD * 8192 bajt na stranicu = 5,185,536 bajt (5.2 MB)
|
||||
|
||||
Indeksy ne trebuyut tak mnogo, no poskol'ku oni sozdayutsya dlya
|
||||
bol'shogo kolichestva dannyh, oni takzhe mogut byt' veliki.
|
||||
|
||||
Znacheniya NULL hranyatsya kak bitovye karty i po`etomu oni zanimayut
|
||||
ochen' malo mesta.
|
||||
|
||||
4.6) Pochemu moi zaprosy rabotayut medleno? Pochemu oni ne ispol'zuyut moi
|
||||
indeksy?
|
||||
|
||||
Indeksy ne ispol'zuyutsya dlya kazhdogo zaprosa. Oni ispol'zuyutsya
|
||||
tol'ko esli tablica bol'she minimal'nogo razmera i zapros vybiraet
|
||||
tol'ko malen'kij procent strok v tablice. Tak ustroeno, potomu chto
|
||||
dostup k disku s primeneniem randomizacii pri skanirovanii indeksov
|
||||
mozhet byt' medlennee, chem prostoe chtenie tablicy ili ee
|
||||
posledovatel'noe skanirovanie.
|
||||
|
||||
CHtoby opredelit' neobhodimost' ispol'zovaniya indeksa dlya kakoj-libo
|
||||
tablicy, PostgreSQL dolzhen imet' statistiku po `etoj tablice. `Eta
|
||||
statistika sobiraetsya pri ispol'zovanii VACUUM ANALYZE ili prosto
|
||||
ANALYZE. Ispol'zuya statistiku, optimizator uznaet o tom kak mnogo
|
||||
strok v tablice i esli on dolzhen ispol'zovat' indeksy, to on mozhet
|
||||
prinimat' luchshie resheniya. Statistika takzhe vliyaet na opredelenie
|
||||
optimal'nogo poryadka svyazyvaniya i metoda svyazyvaniya. Pri
|
||||
izmenenii soderzhimogo tablicy dolzhen periodicheski vypolnyatsya sbor
|
||||
statistiki.
|
||||
|
||||
Obychno indeksy ne ispol'zuyutsya dlya ORDER BY ili dlya vypolneniya
|
||||
svyazyvanij. Posledovatel'nyj perebor sleduyuschij za yavnoj
|
||||
sortirovkoj obychno bystree, chem poisk po indeksam v bol'shoj
|
||||
tablice. Odnako, ORDER BY chasto kombiniruetsya s LIMIT i v `etom
|
||||
sluchae indeks budet ispol'zovat'sya, poskol'ku pri vypolnenii budet
|
||||
vozvraschat'sya nebol'shaya chast' tablicy.
|
||||
|
||||
Esli vam kazhetsya, chto optimizator nekorrektno vybiraet
|
||||
posledovatel'nyj perebor, ispol'zujte SET enable_seqscan TO 'off' i
|
||||
zapustite zapros snova, chtoby uvidet', dejstvitel'no li skanirovanie
|
||||
indeksov bystree.
|
||||
|
||||
Kogda ispol'zuyutsya operacii s shablonami, naprimer LIKE ili ~,
|
||||
indeksy mogut byt' ispol'zovany v sleduyuschih sluchayah:
|
||||
* Nachalo stroki poiska dolzhno sovpadat' s nachalom iskomoj stroki,
|
||||
t.e.:
|
||||
+ LIKE shablony ne dolzhny nachinat'sya s %..
|
||||
+ ~ shablony regulyarnyh vyrazhenij dolzhna nachinat'sya na ^.
|
||||
* Stroka poiska ne dolzhna nachinat'sya s simvola klassa, t.e.
|
||||
[a-e].
|
||||
* Poisk nezavisimyj ot registra, takoj kak ILIKE i ~* ne ispol'zuet
|
||||
indeksy. Vmesto nego, ispol'zujte indeksy vyrazhenij, kotorye
|
||||
opisyvayutsya v sekcii 4.8.
|
||||
* Vo vremya initdb dolzhna ispol'zovat'sya lokal' po umolchaniyu C,
|
||||
potomu chto ne suschestvuet vozmozhnosti uznat' sleduyuschij
|
||||
naibol'shij simvol dlya ne-C lokali. Vy mozhete dlya takih
|
||||
sluchaev sozdat' special'nyj indeks text_pattern_ops kotoryj
|
||||
rabotaet tol'ko dlya LIKE indeksirovaniya. Dlya poiska slov takzhe
|
||||
mozhno ispol'zovat' polnotekstovyj indeks.
|
||||
|
||||
4.7) Kak posmotret' na to, kak optimizator vypolnyaet moj zapros?
|
||||
|
||||
Smotrite stranicu rukovodstva posvyaschennuyu EXPLAIN.
|
||||
|
||||
4.8) Kak mne vypolnit' poisk regulyarnogo vyrazheniya i poisk nezavisimyj ot
|
||||
registra bukv poisk regulyarnogo vyrazheniya? Kak mne ispol'zovat' indeks
|
||||
dlya poiska nezavisimogo ot registra bukv?
|
||||
|
||||
Operator ~ proizvodit poisk regulyarnogo vyrazheniya, a operator ~*
|
||||
proizvodit nezavisimyj ot registra bukv poisk regulyarnogo
|
||||
vyrazheniya. Nezavisimyj ot registra variant LIKE nazyvaetsya ILIKE.
|
||||
|
||||
Nezavisimoe ot registra sravnenie obychno vyrazhaetsya tak:
|
||||
SELECT *
|
||||
FROM tab
|
||||
WHERE lower(col) = 'abc';
|
||||
|
||||
`Eta konstrukciya ne budet ispol'zovat' standartnyj indeks. Odnako,
|
||||
esli vy sozdadite indeks vyrazheniya, on budet ispol'zovan:
|
||||
CREATE INDEX tabindex ON tab (lower(col));
|
||||
|
||||
Esli vysheukazannyj indeks sozdaiotsya kak UNIQUE, to kolonka, dlya
|
||||
kotoroj on sozdaiotsya mozhet hranit' simvoly i v verhnem, i v nizhnem
|
||||
registre, indes ne mozhet imet' identichnyh znachenij, kotorye
|
||||
otlichayutsya tol'ko registrom. CHtoby v kolonke mozhno bylo hranit'
|
||||
simvoly tol'ko v opredelionnom registre, ispol'zujte ogranichenie
|
||||
CHECK ili proverku cherez trigger.
|
||||
|
||||
4.9) Kak mne opredelit', chto znachenie polya v kakom-libo zaprose ravno
|
||||
NULL? Kak mne soedinit' vozmozhnye NULL? Mogu ya sortirovat' polya NULL ili
|
||||
net?
|
||||
|
||||
Vy prosto sravnivaete znachenie s IS NULL i IS NOT NULL, kak zdes':
|
||||
SELECT *
|
||||
FROM tab
|
||||
WHERE col IS NULL;
|
||||
|
||||
CHtoby soedinit' s vozmozhnymi znacheniyami NULL, ispol'zujte
|
||||
COALESCE() kak zdes':
|
||||
SELECT COALESCE(col1, '') || COALESCE(col2, '')
|
||||
FROM tab
|
||||
|
||||
CHtoby otsortirovat' dannye po znacheniyu ispol'zujte modifikatory IS
|
||||
NULL i IS NOT NULL v vyrazhenii ORDER BY. Kogda oni budut generirovat'
|
||||
znacheniya istina, to pri sortirovke oni budut vyshe, chem znacheniya
|
||||
lozh', tak chto zapisi s NULL budut v otsortirovannom spiske sverhu:
|
||||
SELECT *
|
||||
FROM tab
|
||||
ORDER BY (col IS NOT NULL);
|
||||
|
||||
4.10) Kakovy otlichiya mezhdu raznymi simvol'nymi tipami?
|
||||
|
||||
Tip Vnutrennee imya Zamechaniya
|
||||
VARCHAR(n) varchar razmer zadaet maksimal'nuyu dlinu, net zapolneniya
|
||||
CHAR(n) bpchar zapolnyaetsya pustotoj do fiksirovannoj dliny
|
||||
TEXT text net zadavaemogo verhnego ogranicheniya ili dliny
|
||||
BYTEA bytea massiv bajt peremennoj dliny (mozhno ispol'zovat'
|
||||
null-bajt bez opaski)
|
||||
"char" char odin simvol
|
||||
|
||||
Vnutrennee imya vy mozhete uvidet', kogda smotrite sistemnye katalogi
|
||||
i v nekotoryh soobscheniyah ob oshibkah.
|
||||
|
||||
Pervye chetyre tipa yavlyayutsya "varlena" tipami (t.e., pervye
|
||||
chetyre bajta na diske yavlyayutsya dlinnoj, za kotoroj sleduyut
|
||||
dannye). Takim obrazom, fakticheski ispol'zuemoe prostranstvo bol'she,
|
||||
chem oboznachennyj razmer. Odnako, dlinnye znacheniya takzhe
|
||||
szhimayutsya, tak chto zanimaemoe diskovoe prostranstvo mozhet takzhe
|
||||
byt' i men'she, chem ozhidalos'.
|
||||
VARCHAR(n) - `eto luchshee reshenie, kogda nuzhno hranit' stroki
|
||||
peremennoj dliny, ne prevyshayuschie opredelennogo razmera. TEXT -
|
||||
`eto luchshee reshenie dlya strok neogranichennoj dliny, s maksimal'no
|
||||
dopustimoj dlinoj v 1 gigabajt.
|
||||
|
||||
CHAR(n) - `eto luchshee reshenie dlya hraneniya strok, kotorye obychno
|
||||
imeyut odinakovuyu dlinu. CHAR(n) zapolnyaetsya pustotoj do zadannoj
|
||||
dliny, v to vremya kak VARCHAR(n) hranit tol'ko simvoly, iz kotoryh
|
||||
sostoit stroka. BYTEA ispol'zuetsya dlya hraneniya binarnyh dannyh,
|
||||
znacheniya kotoryh mogut vklyuchat' NULL bajty. Vse tipy opisannye
|
||||
zdes', imeyut shodnye harakteristiki proizvoditel'nosti.
|
||||
|
||||
4.11.1) Kak mne sozdat' pole serial/s-avto-uvelicheniem?
|
||||
|
||||
PostgreSQL podderzhivaet tip dannyh SERIAL. On avtomaticheski sozdaet
|
||||
posledovatel'nost'. Naprimer:
|
||||
CREATE TABLE person (
|
||||
id SERIAL,
|
||||
name TEXT
|
||||
);
|
||||
|
||||
avtomaticheski transliruetsya v:
|
||||
CREATE SEQUENCE person_id_seq;
|
||||
CREATE TABLE person (
|
||||
id INT4 NOT NULL DEFAULT nextval('person_id_seq'),
|
||||
name TEXT
|
||||
);
|
||||
|
||||
Avtomaticheski sozdannaya posledovatel'nost' imeet imya vida
|
||||
<tablica>_<kolonka_serial>_seq, gde tablica i kolonka_serial - `eto
|
||||
sootvetstvenno imena tablicy i kolonki s tipom SERIAL. Smotrite
|
||||
podrobnosti o posledovatel'nostyah na stranice rukovodstva
|
||||
posvyaschennoj create_sequence.
|
||||
|
||||
4.11.2) Kak mne poluchit' znachenie pri vstavke SERIAL?
|
||||
|
||||
Prostejshij sposob poluchit' naznachennoe znachenie SERIAL `eto
|
||||
ispol'zovat' RETURNING. Ispol'zuya dlya primera tablicu v 4.11.1, `eto
|
||||
mozhet vyglyadet' tak:
|
||||
INSERT INTO person (name) VALUES ('Blaise Pascal') RETURNING id;
|
||||
|
||||
Vy takzhe mozhete vyzvat' nextval() i ispol'zovat' `eto znachenie v
|
||||
INSERT ili vyzvat' currval() posle INSERT.
|
||||
|
||||
4.11.3) Ne mozhet li poluchit'sya tak, chto ispol'zovanie currval() i
|
||||
nextval() privedet k zaciklirovaniyu s drugimi pol'zovatelyami?
|
||||
|
||||
Net. currval() vozvraschaet tekuschee znachenie, naznachennoe vashej
|
||||
sessiej, a ne drugimi sessiyami.
|
||||
|
||||
4.11.4) Pochemu chisla iz moej posledovatel'nosti ne ispol'zuyutsya snova pri
|
||||
otmene tranzakcii? Pochemu sozdayutsya razryvy pri numeracii v kolonke, gde
|
||||
ya ispol'zuyu posledovatel'nost'/SERIAL?
|
||||
|
||||
Dlya realizacii konkuretnosti, znacheniya posledovatel'nostej, pri
|
||||
neobhodimosti vydayutsya vo vremya zapuska tranzakcij i ne
|
||||
blokiruyutsya do polnogo vypolneniya tranzakcij. `Eto mozhet vyzyvat'
|
||||
razryvy v numeracii pri otmene tranzakcij.
|
||||
|
||||
4.12) CHto takoe OID? CHto takoe CTID?
|
||||
|
||||
Esli tablica sozdana s WITH OIDS, to kazhdaya stroka poluchaet
|
||||
unikal'nyj indentifikator OID. OID - `eto avtomaticheski naznachaemoe
|
||||
unikal'noe 4-h bajtovoe celoe chislo, kotoroe unikal'no dlya vsej
|
||||
ustanovlennoj SUBD. Odnako, posle togo kak ego znachenie prevysit 4
|
||||
milliarda, znacheniya OID nachinayut dublirovat'sya. PostgreSQL
|
||||
ispol'zuet OID dlya svyazyvaniya svoih vnutrennih tablic.
|
||||
|
||||
Dlya unikal'nogo znacheniya v strokah tablicy pol'zovatelya, luchshim
|
||||
sposobom yavlyaetsya ispol'zovanie SERIAL vmesto OID, potomu chto
|
||||
posledovatel'nosti SERIAL unikal'ny tol'ko vnutri tablicy i takim
|
||||
obrazom men'she podverzheny perepolneniyu. Dlya hraneniya znachenij
|
||||
8-mi bajtnoj posledovatel'nosti dostupen tip SERIAL8.
|
||||
|
||||
CTID ispol'zuetsya dlya identifikacii special'nyh fizicheskih zapisej
|
||||
s blochnymi i offset znacheniyami. CTID izmenyaetsya posle togo kak
|
||||
stroki v tablice byli izmeneny ili peregruzheny.
|
||||
|
||||
TID ispol'zuetsya indeksnymi zapisyami v kachestve ukazatelya na
|
||||
fizicheskie zapisi.
|
||||
|
||||
4.13) Pochemu ya poluchayu oshibku "ERROR: Memory exhausted in
|
||||
AllocSetAlloc()"?
|
||||
|
||||
Predpolozhitel'no u vas zakonchilas' virtual'naya pamyat' ili chto
|
||||
vashe yadro imeet malen'kij limit na opredelennye resursy. Popytajtes'
|
||||
pered zapuskom servera BD vypolnit' sleduyuschie komandy:
|
||||
ulimit -d 262144
|
||||
limit datasize 256m
|
||||
|
||||
V zavisimosti ot komandnogo interpretatora shell, tol'ko odna iz
|
||||
dannyh komand vypolnitsya uspeshno, no ona pozvolit vam ustanovit'
|
||||
bol'shij segment dannyh processa i vozmozhno reshit problemu. `Eta
|
||||
komanda izmenyaet parametry tekuschego processa i vseh ego potomkov,
|
||||
sozdannyh posle eio zapuska. Esli u vas voznikla problema s SQL
|
||||
klientom, potomu chto backend vozvraschaet slishkom bol'shoj ob"em
|
||||
dannyh, popytajtes' vypolnit' `etu komandu pered zapuskom klienta.
|
||||
|
||||
4.14) Kak mne uznat', kakaya versiya PostgreSQL zapuschena?
|
||||
|
||||
Iz psql, naberite SELECT version();
|
||||
|
||||
4.15) Kak mne sozdat' kolonku kotoraya po umolchaniyu budet soderzhat'
|
||||
tekuschee vremya?
|
||||
|
||||
Ispol'zujte CURRENT_TIMESTAMP:
|
||||
CREATE TABLE test (x int, modtime TIMESTAMP DEFAULT CURRENT_TIMESTAMP );
|
||||
|
||||
4.16) Kak mne vypolnit' vneshnee svyazyvanie?
|
||||
|
||||
PostgreSQL podderzhivaet vneshnee svyazyvanie, ispol'zuya standartnyj
|
||||
sintaksis SQL. Vot dva primera:
|
||||
SELECT *
|
||||
FROM t1 LEFT OUTER JOIN t2 ON (t1.col = t2.col);
|
||||
|
||||
ili
|
||||
SELECT *
|
||||
FROM t1 LEFT OUTER JOIN t2 USING (col);
|
||||
|
||||
`Eto identichnye zaprosy svyazyvaniya t1.col i t2.col, takzhe
|
||||
vozvraschayut lyubye nesvyazannye stroki v t1 (kotorye ne sovpadayut s
|
||||
t2). RIGHT svyazyvanie dolzhno dobavit' nesvyazannye stroki t2. FULL
|
||||
svyazyvanie dolzhno vozvratit' sovpavshie stroki plyus vse
|
||||
nesvyazannye stroki iz t1 i t2. Slovo OUTER yavlyaetsya
|
||||
neobyazatel'nym i naznachaetsya v LEFT, RIGHT i FULL svyazyvaniyah.
|
||||
Obychnye svyazyvaniya nazyvayutsya INNER svyazyvaniya.
|
||||
|
||||
4.17) Kak vypolnyat' zaprosy, ispol'zuyuschie neskol'ko baz dannyh?
|
||||
|
||||
Ne suschestvuet sposoba sozdat' zapros k bazam dannyh otlichnym ot
|
||||
tekuschej. Poskol'ku PostgreSQL zagruzhaet sistemnye katalogi
|
||||
specifichnye dlya bazy dannyh, neponyatno dazhe, kak dolzhen sebya
|
||||
vesti takoj mezhbazovyj zapros.
|
||||
|
||||
contrib/dblink pozvolyaet zaprosy mezhdu bazami, ispol'zuya vyzovy
|
||||
funkcij. Razumeetsya, klient mozhet odnovremenno takzhe ustanavlivat'
|
||||
soedieneniya s razlichnymi bazami dannyh i takih obrazom ob"edinyat'
|
||||
informaciyu iz nih.
|
||||
|
||||
4.18) Kak mne vernut' iz funkcii neskol'ko strok tablicy?
|
||||
|
||||
Vy mozhete legko ispol'zovat' funkcii, vozvraschayuschie spisok,
|
||||
http://wiki.postgresql.org/wiki/Return_more_than_one_row_of_data_from_
|
||||
PL/pgSQL_functions.
|
||||
|
||||
4.19) Pochemu ya poluchayu oshibku "relation with OID #### ne suschestvuet",
|
||||
kogda obraschayuts' k vremennym tablicam v funkciyah PL/PgSQL?
|
||||
|
||||
V PostgreSQL do versii 8.3, PL/PgSQL k`eshiruet scenarii funkcii i
|
||||
odin iz negativnyh `effektov `etogo sostoit v tom, chto esli funkciya
|
||||
PL/PgSQL obraschaetsya k vremennoj tablice i `eta tablica pozdnee
|
||||
udalyaetsya i peresozdaetsya, a funkciya zatem vyzyvaetsya snova, to
|
||||
ee vyzov privedet k oshibke, potomu chto sk`eshirovannoe soderzhimoe
|
||||
funkcii soderzhit ukazatel' na staruyu vremennuyu tablicu. CHtoby
|
||||
reshit' `etu problemu, ispol'zujte EXECUTE dlya dostupa k vremennym
|
||||
tablicam v PL/PgSQL. Ispol'zovanie `etogo operatora zastavit zapros
|
||||
peregenerirovat'sya kazhdyj raz.
|
||||
|
||||
V PostgreSQL 8.3 i pozdnee, `etoj problemy net.
|
||||
|
||||
4.20) Kakie est' resheniya dlya replikacii?
|
||||
|
||||
Hotya "replikaciya" -- `eto edinyj termin, est' neskol'ko raznyh
|
||||
tehnologij dlya vypolneniya replikacij s raznymi osobennostyami dlya
|
||||
kazhdoj.
|
||||
|
||||
Replikaciya Master/slave pozvolyaet imet' odin glavnyj (master) server
|
||||
dlya vypolneniya zaprosov chteniya/zapisi, v to vremya kak
|
||||
podchinionnye (slave) servera mogut proizvodit' tol'ko zaprosy
|
||||
chteniya/SELECT. Naibolee populyarnym resheniem dlya replikacii
|
||||
master-slave v PostgreSQL yavlyaetsya Slony-I.
|
||||
|
||||
Replikaciya Multi-master pozvolyaet vypolnyat' zaprosy chteniya/zapisi
|
||||
na neskol'kih, repliciruemyh drug s drugom komp'yuetrah. `Eta
|
||||
osobennost' takzhe privodit k potere proizvoditel'nosti, potomu chto
|
||||
neobhodima sinhronizaciya izmenenij mezhdu neskol'kimi serverami.
|
||||
Naibolee populyarnym resheniem dlya takoj replikacii v PostgreSQL
|
||||
yavlyaetsya PGcluster.
|
||||
|
||||
4.21) Pochemu imena tablicy i kolonok ne raspoznayutsya v v moiom zaprose?
|
||||
Pochemu ne sohranyayutsya zaglavnye bukvy?
|
||||
|
||||
Naibolee chasto imena neraspoznayutsya iz-za ispol'zovaniya dvojnyh
|
||||
kavychek v imeni tablicy ili kolonki pri sozdanii tablicy. Pri
|
||||
ispol'zovanii dvojnyh kavychek, imya tablicy i kolonki (kotorye
|
||||
nazyvayut identifikatorami) sohranyayutsya v registro-zavisimom vide;
|
||||
`eto oznachaet, chto vy dolzhny ispol'zovat' dvojnye kavychki, kogda
|
||||
ukazyvaete `eti imena v zaprose. Nekotorye interfejsy, takie kak
|
||||
pgAdmin, vo vremya sozdaniya tablicy dobavlyayut dvojnye kavychki
|
||||
avtomaticheski. Takim obrazom, chtoby identifikatory raspoznavalis' vy
|
||||
dolzhny sledovat' odnomu iz sleduyuschih pravil:
|
||||
* Izbegat' ispol'zovaniya dvojnyh kavychek pri sozdanii tablic
|
||||
* Ispol'zovat' v identifikatorah tol'ko simvoly nizhnego registra
|
||||
* Ispol'zovat' dvojnye kavychki dlya identifikatorov v zaprosah
|
1192
doc/FAQ_turkish
1192
doc/FAQ_turkish
File diff suppressed because it is too large
Load Diff
@ -1,82 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="content-type"
|
||||
content="text/html; charset=ISO-8859-1">
|
||||
<title>PostgreSQL Native Win32 Status Report</title>
|
||||
</head>
|
||||
<body>
|
||||
<h1 style="text-align: center;">Compiling PostgreSQL On Native Win32 FAQ<br>
|
||||
</h1>
|
||||
<P>Last updated: Thu Oct 14 18:22:57 EDT 2004</P>
|
||||
<P>Current maintainer: Bruce Momjian <<A href=
|
||||
"mailto:bruce@momjian.us">bruce@momjian.us</A>><BR>
|
||||
</P>
|
||||
|
||||
<P>The most recent version of this document can be viewed at <A href=
|
||||
"http://www.postgresql.org/docs/faqs.FAQ_MINGW.html">
|
||||
http://www.postgresql.org/docs/faqs.FAQ_MINGW.html</A>.</P>
|
||||
|
||||
<P>The FAQ Running & Installing PostgreSQL On Native Windows is at <A href=
|
||||
"http://pginstaller.projects.postgresql.org/faq/FAQ_windows.html">
|
||||
http://pginstaller.projects.postgresql.org/faq/FAQ_windows.html</A>.</P>
|
||||
|
||||
<p>The native Win32 port is built from source using MinGW tools.
|
||||
There is also a precompiled binary installer called <span
|
||||
style="font-style: italic;">pginstaller</span> which you can find at
|
||||
from <a href="http://pgfoundry.org/projects/pginstaller">http://pgfoundry.org/projects/pginstaller</a>.
|
||||
It is a fully native build and uses no additional software like MinGW.
|
||||
The ready-made installer files are available on the main PostgreSQL ftp servers
|
||||
in the binary/win32 directory.
|
||||
<br>
|
||||
</p>
|
||||
<h2>Tools for Building Binaries<br>
|
||||
</h2>
|
||||
<p> The native Win32 port requires a 32-bit NT-based Microsoft
|
||||
operating
|
||||
system, like Windows NT 4, Windows 2000/2003, or Windows XP. (NT 4
|
||||
is no longer supported since version 8.2) Earlier
|
||||
operating systems do not have sufficient infrastructure. Building the
|
||||
port also
|
||||
requires MinGW and Msys, which can be downloaded from <a
|
||||
href="http://www.mingw.org/">http://www.mingw.org/</a>. MinGW is
|
||||
a Unix-like build environment for Microsoft operating systems.
|
||||
Msys is a collection of unix tools required to run shell scripts like <i>configure.
|
||||
</i>Neither is required to run the resulting binaries; they are
|
||||
needed only for creating the binaries. Work is in progress to support
|
||||
building using Visual C++ in a future version.<br>
|
||||
</p>
|
||||
<h2>Steps For Building Binaries<br>
|
||||
</h2>
|
||||
<ul>
|
||||
<li>Download the nightly snapshot tarball from <a
|
||||
href="ftp://ftp.postgresql.org/pub/dev">ftp://ftp.postgresql.org/pub/dev</a>
|
||||
or checkout via CVS (you will need <i>bison, flex,</i> and <i>perl</i>
|
||||
installed to build from CVS)<br>
|
||||
</li>
|
||||
<li>Run <i>configure</i> (you might need to add the --without-zlib
|
||||
argument, depending on whether you have installed <span
|
||||
style="font-style: italic;">zlib
|
||||
</span>on MinGW)</li>
|
||||
<li>Run <i>make install</i></li>
|
||||
</ul>
|
||||
Note: it is suggested that you run <i>psql</i> under <i>CMD.EXE.</i>,
|
||||
as the Msys console has buffering issues.<br>
|
||||
<br>
|
||||
If you make a change that you want to contribute, make a context diff
|
||||
and send
|
||||
it to the mailing list. <br>
|
||||
<h2>Resources</h2>
|
||||
There are several resources that helped us complete this port:<br>
|
||||
<ul>
|
||||
<li>PeerDirect port of PostgreSQL 7.2 to Win32 (<a
|
||||
href="ftp://momjian.postgresql.org/pub/postgresql/win32/PeerDirect">ftp://momjian.postgresql.org/pub/postgresql/win32/PeerDirect</a>)</li>
|
||||
<li>CONNX Win32 signal code(<a
|
||||
href="ftp://momjian.postgresql.org/pub/postgresql/win32/CONNX">ftp://momjian.postgresql.org/pub/postgresql/win32/CONNX</a>)</li>
|
||||
<li>SRA port of PostgreSQL to Win32 (unfortunately, this is not
|
||||
publically available because the threaded portion is proprietary)</li>
|
||||
<li>CHM help files (<a
|
||||
href="http://www.pgadmin.org/snapshots/help/en_US/pgadmin3.chm">http://www.pgadmin.org/snapshots/help/en_US/pgadmin3.chm</a>)</li>
|
||||
</ul>
|
||||
</body>
|
||||
</html>
|
@ -1,942 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<META name="generator" content="HTML Tidy, see www.w3.org">
|
||||
<META http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<TITLE>FAQ do PostgreSQL</TITLE>
|
||||
</HEAD>
|
||||
|
||||
<BODY bgcolor="#ffffff" text="#000000" link="#ff0000" vlink="#a00000"
|
||||
alink="#0000ff">
|
||||
<H1>Perguntas Frequentes (FAQ) sobre PostgreSQL</H1>
|
||||
|
||||
<P>Última atualização: Sex Nov 16 10:53:50 EST 2007</P>
|
||||
|
||||
<P>Mantenedor atual: Bruce Momjian (<A href=
|
||||
"mailto:bruce@momjian.us">bruce@momjian.us</A>)
|
||||
</P>
|
||||
|
||||
<P>Traduzido por: Euler Taveira de Oliveira (<A href=
|
||||
"mailto:euler@timbira.com">euler@timbira.com</A>)</P>
|
||||
|
||||
<P>A versão mais recente desse documento pode ser vista em <A href=
|
||||
"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íficas são respondidas em <A href=
|
||||
"http://www.postgresql.org/docs/faq/">http://www.postgresql.org/docs/faq/</A>.</P>
|
||||
<HR>
|
||||
|
||||
<H2 align="center">Perguntas Gerais</H2>
|
||||
<A href="#item1.1">1.1</A>) O que é PostgreSQL? Como ele é pronunciado?
|
||||
O que é Postgres?<BR>
|
||||
<A href="#item1.2">1.2</A>) Quem controla o PostgreSQL?<BR>
|
||||
<A href="#item1.3">1.3</A>) Qual é a licença do PostgreSQL?<BR>
|
||||
<A href="#item1.4">1.4</A>) Quais plataformas o PostgreSQL pode ser executado?<BR>
|
||||
<A href="#item1.5">1.5</A>) Onde eu posso conseguir o PostgreSQL?<BR>
|
||||
<A href="#item1.6">1.6</A>) Qual é a última versão?<BR>
|
||||
<A href="#item1.7">1.7</A>) Onde eu posso conseguir suporte?<BR>
|
||||
<A href="#item1.8">1.8</A>) Como eu posso submeter um relato de um bug?<BR>
|
||||
<A href="#item1.9">1.9</A>) Como eu posso saber quais são os bugs conhecidos ou características ausentes?<BR>
|
||||
<A href="#item1.10">1.10</A>) Que documentação está disponível?<BR>
|
||||
<A href="#item1.11">1.11</A>) Como eu posso aprender <SMALL>SQL</SMALL>?<BR>
|
||||
<A href="#item1.12">1.12</A>) Como posso submeter uma correção (patch) ou me juntar a equipe de desenvolvimento?<BR>
|
||||
<A href="#item1.13">1.13</A>) Como é o PostgreSQL comparado a outros <SMALL>SGBD</SMALL>s?<BR>
|
||||
<A href="#item1.14">1.14</A>) O PostgreSQL gerenciar<61> as mudanças de horário devido ao horário de verão em vários países?<BR>
|
||||
|
||||
|
||||
<H2 align="center">Perguntas sobre Clientes</H2>
|
||||
<A href="#item2.1">2.1</A>) Quais interfaces estão disponíveis para PostgreSQL?<BR>
|
||||
<A href="#item2.2">2.2</A>) Quais ferramentas estão disponíveis para utilizar o PostgreSQL com páginas Web?<BR>
|
||||
<A href="#item2.3">2.3</A>) O PostgreSQL tem interfaces gráficas para interagir com usuário?<BR>
|
||||
|
||||
|
||||
<H2 align="center">Perguntas Administrativas</H2>
|
||||
<A href="#item3.1">3.1</A>) Como eu instalo o PostgreSQL em um local diferente de <I>/usr/local/pgsql</I>?<BR>
|
||||
<A href="#item3.2">3.2</A>) Como eu controlo conexões de outras máquinas?<BR>
|
||||
<A href="#item3.3">3.3</A>) Como eu ajusto o servidor de banco de dados para obter uma performance melhor?<BR>
|
||||
<A href="#item3.4">3.4</A>) Quais características de depuração estão disponíveis?<BR>
|
||||
<A href="#item3.5">3.5</A>) Por que eu recebo <I>"Sorry, too many clients"</I> quando eu tento conectar?<BR>
|
||||
<A href="#item3.6">3.6</A>) Qual é o processo de atualização do PostgreSQL?<BR>
|
||||
<A href="#item3.7">3.7</A>) Que tipo de hardware eu devo usar?<BR>
|
||||
|
||||
|
||||
<H2 align="center">Perguntas Operacionais</H2>
|
||||
<A href="#item4.1">4.1</A>) Como eu faço um <SMALL>SELECT</SMALL> somente dos primeiros registros de uma consulta? Um registro randômico?<BR>
|
||||
<A href="#item4.2">4.2</A>) Como eu descubro quais tabelas, índices, bancos de dados e usuários estão definidos? Como eu vejo as consultas utilizadas pelo <I>psql</I> para mostrá-los?<BR>
|
||||
<A href="#item4.3">4.3</A>) Como você muda o tipo de dado de uma coluna?<BR>
|
||||
<A href="#item4.4">4.4</A>) Qual é o tamanho máximo de um registro, uma tabela e um banco de dados?<BR>
|
||||
<A href="#item4.5">4.5</A>) Quanto espaço em disco é necessário para armazenar dados de um arquivo texto?<BR>
|
||||
<A href="#item4.6">4.6</A>) Por que minhas consultas estão lentas? Por que elas não estão utilizando meus índices?<BR>
|
||||
<A href="#item4.7">4.7</A>) Como eu vejo como o otimizador de consultas está avaliando minha consulta?<BR>
|
||||
<A href="#item4.8">4.8</A>) Como eu faço buscas com expressões regulares e buscas com expressões regulares sem diferenciar mauúsculas de minúsculas? Como eu utilizo um índice para buscas sem distinguir maiúsculas de minúsculas?<BR>
|
||||
<A href="#item4.9">4.9</A>) Em uma consulta, como eu detecto se um campo é <SMALL>NULL</SMALL>? Como eu posso concatenar possíveis <SMALL>NULL</SMALL>s? Como eu posso ordenar por um campo que é <SMALL>NULL</SMALL> ou não?<BR>
|
||||
<A href="#item4.10">4.10</A>) Qual é a diferença entre os vários tipos de dado de caracteres?<BR>
|
||||
<A href="#item4.11.1">4.11.1</A>) Como eu crio um campo serial/auto incremento?<BR>
|
||||
<A href="#item4.11.2">4.11.2</A>) Como eu consigo o valor de um campo
|
||||
<SMALL>SERIAL</SMALL>?<BR>
|
||||
<A href="#item4.11.3">4.11.3</A>) <I>currval()</I> não lida com condição de corrida com outros usuários?<BR>
|
||||
<A href="#item4.11.4">4.11.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="#item4.12">4.12</A>) O que é um <SMALL>OID</SMALL>? O que é um <SMALL>CTID</SMALL>?<BR>
|
||||
<A href="#item4.13">4.13</A>) Por que eu recebo o erro <I>"ERROR: Memory exhausted in AllocSetAlloc()"</I>?<BR>
|
||||
<A href="#item4.14">4.14</A>) Como eu informo qual versão do PostgreSQL eu estou utilizando?<BR>
|
||||
<A href="#item4.15">4.15</A>) Como eu crio uma coluna que conterá por padrão a hora atual?<BR>
|
||||
<A href="#item4.16">4.16</A>) Como eu faço uma junção externa (outer join)?<BR>
|
||||
<A href="#item4.17">4.17</A>) Como eu faço consultas utilizando múltiplos bancos de dados?<BR>
|
||||
<A href="#item4.18">4.18</A>) Como eu retorno múltiplos registros ou colunas de uma função?<BR>
|
||||
<A href="#item4.19">4.19</A>) Por que eu obtenho erros "relation with OID ######
|
||||
does not exist" ao acessar tabelas temporárias em funções PL/PgSQL?<BR>
|
||||
<A href="#item4.20">4.20</A>) Quais soluções de replicação estão disponíveis?<BR>
|
||||
<A href="#item4.21">4.21</A>) Por que os nomes de minhas tabelas e colunas não
|
||||
são reconhecidos em minha consulta? Por que as maiúsculas não são preservadas?<BR>
|
||||
|
||||
|
||||
<HR>
|
||||
|
||||
<H2 align="center">Perguntas Gerais</H2>
|
||||
|
||||
<H3 id="item1.1">1.1) O que é PostgreSQL? Como ele é pronunciado? O que é Postgres?</H3>
|
||||
|
||||
<P>PostgreSQL é pronunciado <I>Post-Gres-Q-L</I>.
|
||||
(Para os curiosos que querem saber como se diz "PostgreSQL", um
|
||||
<a href="http://www.postgresql.org/files/postgresql.mp3">arquivo de áudio</a> está disponível).</P>
|
||||
|
||||
<P>O PostgreSQL é um sistema de banco de dados objeto-relacional que tem as
|
||||
características de sistemas de bancos de dados comerciais tradicionais com
|
||||
melhoramentos encontrados nos sistemas <SMALL>SGBD</SMALL>s de próxima geração.
|
||||
PostgreSQL é livre e o código-fonte completo está disponível.</P>
|
||||
|
||||
<P>O desenvolvimento do PostgreSQL é feito por um grupo de desenvolvedores
|
||||
voluntários (na sua maioria) espalhados pelo mundo e que se comunicam via
|
||||
Internet. É um projeto da comunidade e não é controlado por nenhuma
|
||||
empresa. Para se envolver, 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>
|
||||
|
||||
<P>Postgres é um apelido para o PostgreSQL amplamente utilizado. Era o nome original do
|
||||
projeto em Berkeley e dentre os outros apelidos é o preferido. Se você acha
|
||||
'PostgreSQL' difícil de pronunciar, diga apenas 'Postgres'.</P>
|
||||
|
||||
<H3 id="item1.2">1.2) Quem controla o PostgreSQL?<BR></H3>
|
||||
|
||||
<P>Se você está procurando por um mantenedor, comitê central ou empresa
|
||||
controladora do PostgreSQL, desista --- não há um(a). Nós temos um
|
||||
comitê core e committers CVS, mas estes grupos são mais para questões
|
||||
administrativas do que controle. O projeto é direcionado pela comunidade
|
||||
de desenvolvedores e usuários, que qualquer um pode se juntar. Tudo o que
|
||||
você precisa é se inscrever nas listas de discussão e participar das
|
||||
discussões. Veja a <a href="http://www.postgresql.org/docs/faqs.FAQ_DEV.html">
|
||||
FAQ do desenvolvedor</A> para obter informações como se envolver com o
|
||||
desenvolvimento do PostgreSQL.</P>
|
||||
|
||||
<H3 id="item1.3">1.3) Qual é a licença do PostgreSQL?</H3>
|
||||
|
||||
<P>O PostgreSQL é distribuído sob a licença BSD clássica. Basicamente,
|
||||
ela permite que usuários façam qualquer coisa com o código, incluindo
|
||||
revender os binários sem o código-fonte. A única restrição é que você
|
||||
não nos responsabilize legalmente por problemas com o programa de computador.
|
||||
Há também a exigência de que esta licença apareça em todas as cópias
|
||||
do programa de computador. Aqui está a licença BSD que usamos atualmente:</P>
|
||||
<P>PostgreSQL está sujeito a seguinte licença:</P>
|
||||
|
||||
<P>PostgreSQL Data Base Management System</P>
|
||||
|
||||
<P>Portions Copyright (c) 1996-2009, PostgreSQL Global Development Group
|
||||
Portions Copyright (c) 1994-1996 Regents of the University of California</P>
|
||||
|
||||
<P>Permission to use, copy, modify, and distribute this software
|
||||
and its documentation for any purpose, without fee, and without a
|
||||
written agreement is hereby granted, provided that the above
|
||||
copyright notice and this paragraph and the following two
|
||||
paragraphs appear in all copies.</P>
|
||||
|
||||
<P>IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY
|
||||
PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL
|
||||
DAMAGES, INCLUDING LOST PROFITS, ARISING OUT OF THE USE OF THIS
|
||||
SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE UNIVERSITY OF
|
||||
CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.</P>
|
||||
|
||||
<P>THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY
|
||||
WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
||||
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE
|
||||
SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE
|
||||
UNIVERSITY OF CALIFORNIA HAS NO OBLIGATIONS TO PROVIDE MAINTENANCE,
|
||||
SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.</P>
|
||||
|
||||
<H3 id="item1.4">1.4) Quais plataformas o PostgreSQL pode ser executado?</H3>
|
||||
|
||||
<P>Em geral, qualquer plataforma moderna compatível com Unix deve ser capaz de executar o PostgreSQL. As plataformas que foram testadas antes do lançamento de uma versão são listadas nas instruções de instalação.</P>
|
||||
|
||||
<P>O PostgreSQL também executa nativamente nos sistemas operacionais Microsoft Windows
|
||||
baseados no NT tais como Win200 SP4, WinXP e Win2003. Um instalador pré-empacotado está
|
||||
disponível em <a href= "http://pgfoundry.org/projects/pginstaller">
|
||||
http://pgfoundry.org/projects/pginstaller</a>. Versões do Windows baseadas no MS-DOS
|
||||
(Win95, Win98, WinMe) podem executar o PostgreSQL utilizando o Cygwin.</P>
|
||||
|
||||
<p>Há também uma versão para o Novell Netware 6 em
|
||||
<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>
|
||||
|
||||
<H3 id="item1.5">1.5) Onde eu posso conseguir o PostgreSQL?</H3>
|
||||
|
||||
<P>Via navegador web, utilize <a href="http://www.postgresql.org/ftp/">
|
||||
http://www.postgresql.org/ftp/</a> e via ftp, utilize
|
||||
<A href="ftp://ftp.postgresql.org/pub/">
|
||||
ftp://ftp.postgresql.org/pub/</A>.</P>
|
||||
|
||||
|
||||
<H3 id="item1.6">1.6) Qual é a última versão?</H3>
|
||||
|
||||
<P>A última versão do PostgreSQL é a versão 8.2.5.</P>
|
||||
|
||||
<P>Nós planejamos lançar versões novas a cada ano com versões
|
||||
corretivas em alguns meses.</P>
|
||||
|
||||
<H3 id="item1.7">1.7) Onde eu posso conseguir suporte?</H3>
|
||||
|
||||
<P>A comunidade do PostgreSQL fornece assistência a muitos de seus
|
||||
usuários via e-mail. O principal sítio web para inscrição nas listas
|
||||
de e-mail é <a href="http://www.postgresql.org/community/lists/">
|
||||
http://www.postgresql.org/community/lists/</a>. As listas <I>general</I>
|
||||
e <I>bugs</I> são um bom lugar para início.</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=
|
||||
"http://www.postgresql.org/support/professional_support">
|
||||
http://www.postgresql.org/support/professional_support</A>.</P>
|
||||
|
||||
<H3 id="item1.8">1.8) Como eu informo a existência de um bug?</H3>
|
||||
|
||||
<P>Visite o formulário que reporta bugs do PostgreSQL em <A href=
|
||||
"http://www.postgresql.org/support/submitbug">http://www.postgresql.org/support/submitbug</A>.</P>
|
||||
<P>Verifique também o nosso ftp <A href=
|
||||
"ftp://ftp.postgresql.org/pub">ftp://ftp.postgresql.org/pub</A> para
|
||||
ver se há uma versão mais recente do PostgreSQL.</P>
|
||||
|
||||
<P>Bugs submetidos utilizando o formulário ou informado a qualquer
|
||||
lista de discussão do PostgreSQL tipicamente gera uma das seguintes
|
||||
respostas:</P>
|
||||
<ul>
|
||||
<li>Não é um bug e o porquê</li>
|
||||
<li>É um bug conhecido e já está na lista de
|
||||
<A href="http://www.postgresql.org/docs/faqs.TODO.html">AFAZERES</A></li>
|
||||
<li>O bug foi corrigido na versão atual</li>
|
||||
<li>O bug foi corrigido mas não foi empacotado em um versão oficial</li>
|
||||
<li>Um pedido foi feito para obter informações detalhadas:
|
||||
<ul>
|
||||
<li>Sistema Operacional</li>
|
||||
<li>Versão do PostgreSQL</li>
|
||||
<li>Exemplo de teste que reproduz o bug</li>
|
||||
<li>Informações sobre depuração</li>
|
||||
<li>Saída reconstituidora de vestígios (backtrace) do depurador</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>O bug é novo. O seguinte pode ocorrer:
|
||||
<ul>
|
||||
<li>Uma correção é criada e será incluída na próxima versão</li>
|
||||
<li>O bug não pode ser corrigido imediatamente e é adicionado
|
||||
a lista de <A href="http://www.postgresql.org/docs/faqs.TODO.html">AFAZERES</A></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<H3 id="item1.9">1.9) Como eu posso saber quais são os bugs conhecidos
|
||||
ou funcionalidades ausentes?</H3>
|
||||
|
||||
<P>O PostgreSQL suporta um subconjunto extendido do <SMALL>SQL:2003</SMALL>.
|
||||
Veja nossa lista de <A href="http://www.postgresql.org/docs/faqs.TODO.html">AFAZERES</A>
|
||||
que contém bugs conhecidos, funcionalidades ausentes e planos futuros.</P>
|
||||
|
||||
<P>Uma solicitação de funcionalidade geralmente resulta em uma das
|
||||
seguintes respostas:</P>
|
||||
<ul>
|
||||
<li>A funcionalidade já está na lista de <A href="http://www.postgresql.org/docs/faqs.TODO.html">AFAZERES</A></li>
|
||||
<li>A funcionalidade não é desejável porque:
|
||||
<ul>
|
||||
<li>Ela duplica uma funcionalidade existente que já segue o
|
||||
padrão SQL</li>
|
||||
<li>A funcionalidade aumentará a complexidade do código mas
|
||||
adicionará pouco benefício</li>
|
||||
<li>A funcionalidade será insegura ou não-confiável</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>A nova funcionalidade é adicionada a lista de
|
||||
<A href="http://www.postgresql.org/docs/faqs.TODO.html">AFAZERES</A></li>
|
||||
</ul>
|
||||
|
||||
<P>O PostgreSQL não utiliza sistema de acompanhamento de bugs porque
|
||||
nós achamos mais eficiente responder diretamente o e-mail e manter a
|
||||
lista de <A href="http://www.postgresql.org/docs/faqs.TODO.html">AFAZERES</A>
|
||||
atualizada. Na prática, bugs não duram muito no programa; e bugs que afetam
|
||||
uma grande quantidade de usuários são corrigidos rapidamente. O único lugar
|
||||
para encontrar todas as mudanças, melhorias e correções em uma versão do
|
||||
PostgreSQL é ler as mensagens de log do
|
||||
<a href="http://www.postgresql.org/developer/sourcecode/">CVS</a>. Até mesmo
|
||||
as notas de lançamento não listam todas as mudanças feitas no programa.</P>
|
||||
|
||||
<H3 id="item1.10">1.10) Que documentação está disponível?</H3>
|
||||
|
||||
<P>O PostgreSQL inclui vasta documentação, incluindo um manual extenso,
|
||||
páginas de manuais (man pages) e alguns exemplos teste. Veja o diretório
|
||||
<I>/doc</I>. Você também pode pesquisar os manuais online em <A href=
|
||||
"http://www.postgresql.org/docs">http://www.postgresql.org/docs</A>.
|
||||
</P>
|
||||
|
||||
<P>Há dois livros sobre PostgreSQL disponíveis online em <A href=
|
||||
"http://www.postgresql.org/docs/books/awbook.html">http://www.postgresql.org/docs/books/awbook.html</A>
|
||||
e <A href=
|
||||
"http://www.commandprompt.com/ppbook/">http://www.commandprompt.com/ppbook/</A>.
|
||||
Há uma lista de livros sobre PostgreSQL disponíveis para compra. Um dos mais
|
||||
populares é o do Korry Douglas. Uma lista de análise sobre os livros pode ser
|
||||
encontrada em <A href=
|
||||
"http://www.postgresql.org/docs/books/">http://www.postgresql.org/docs/books/</A>.
|
||||
Há também uma coleção de artigos técnicos sbore PostgreSQL em <A href="http://www.postgresql.org/docs/techdocs/">http://www.postgresql.org/docs/techdocs/</A>.</P>
|
||||
|
||||
<P>O programa cliente de linha de comando <I>psql</I> tem alguns comandos \d para
|
||||
mostrar informações sobre tipos, operadores, funções, agregações, etc. - utilize \?
|
||||
para mostrar os comandos disponíveis.</P>
|
||||
|
||||
<P>Nosso sítio web contém ainda mais documentação.</P>
|
||||
|
||||
<H3 id="item1.11">1.11) Como eu posso aprender <SMALL>SQL</SMALL>?</H3>
|
||||
|
||||
<P>Primeiro, considere os livros específicos sobre PostgreSQL mencionados
|
||||
acima. Muitos de nossos usuários gostam do <I>The Practical SQL Handbook</I>,
|
||||
Bowman, Judith S., et al., Addison-Wesley. Outros do <I>The
|
||||
Complete Reference SQL</I>, Groff et al., McGraw-Hill.</P>
|
||||
|
||||
<P>Há também bons tutoriais disponíveis online:
|
||||
<UL>
|
||||
<LI> <A href="http://www.intermedia.net/support/sql/sqltut.shtm">http://www.intermedia.net/support/sql/sqltut.shtm</A>
|
||||
</LI>
|
||||
<LI>
|
||||
<A href="http://sqlcourse.com/">http://sqlcourse.com</A>
|
||||
</LI>
|
||||
<LI>
|
||||
<A href="http://www.w3schools.com/sql/default.asp">http://www.w3schools.com/sql/default.asp</A>
|
||||
</LI>
|
||||
<LI><A href=
|
||||
"http://mysite.verizon.net/Graeme_Birchall/id1.html">http://mysite.verizon.net/Graeme_Birchall/id1.html</A>
|
||||
</LI>
|
||||
</UL>
|
||||
|
||||
<H3 id="item1.12">1.12) Como posso submeter uma correção (patch) ou me juntar a equipe de desenvolvimento?</H3>
|
||||
|
||||
<P>Veja a <a href="http://www.postgresql.org/docs/faqs.FAQ_DEV.html">
|
||||
FAQ do Desenvolvedor</A>.</P>
|
||||
|
||||
<H3 id="item1.13">1.13) Como é o PostgreSQL comparado a outros <SMALL>SGBD</SMALL>s?</H3>
|
||||
|
||||
<P>Há várias maneiras de se medir um software: funcionalidades, performance, confiabilidade, suporte e preço.</P>
|
||||
|
||||
<DL>
|
||||
<DT><B>Funcionalidades</B></DT>
|
||||
|
||||
<DD>PostgreSQL tem muitas características presentes em muitos <SMALL>SGBD</SMALL>s comerciais como transações, subconsultas, gatilhos, visões, integridade referencial de chave estrangeira e bloqueio (lock) sofisticado. Nós temos algumas funcionalidades que eles não tem, como tipos definidos pelo usuário, herança, regras e controle de concorrência de múltiplas versões para reduzir bloqueios (locks).<BR>
|
||||
<BR>
|
||||
</DD>
|
||||
|
||||
<DT><B>Performance</B></DT>
|
||||
|
||||
<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. Nossa performance é geralmente +/- 10% comparada a de outros bancos de dados.
|
||||
<BR>
|
||||
</DD>
|
||||
|
||||
<DT><B>Confiabilidade</B></DT>
|
||||
|
||||
<DD>Nós sabemos que um <SMALL>SGBD</SMALL> deve ser confiável ou ele é inútil. Nós empenhamos em lançar versões bem testadas, de código estável e que tenha o mínimo de bugs. Cada versão tem no mínimo um mês de teste em versão beta, e nosso histórico de versões mostra que nós podemos fornecer versões estáveis e sólidas que estão prontas para uso em produção. Nós acreditamos que somos comparados a nosso favor com outros sistemas de bancos de dados nessa área.<BR>
|
||||
<BR>
|
||||
</DD>
|
||||
|
||||
<DT><B>Suporte</B></DT>
|
||||
|
||||
<DD>Nossas listas de discussão fornecem contato com um grupo de desenvolvedores e usuários para ajudar a resolver muitos problemas encontrados. Enquanto nós não podemos garantir o conserto, <SMALL>SGBD</SMALL>s comerciais nem sempre fornecem também. Com acesso direto aos desenvolvedores, a comunidade de usuários, manuais e o código fonte faz com que o suporte do PostgreSQL seja superior ao de outros <SMALL>SGBD</SMALL>s. Há suporte comercial por incidente disponíveis para aqueles que precisam de um. (Veja <A href="#item1.7">seção 1.7 da FAQ</A>).<BR>
|
||||
<BR>
|
||||
</DD>
|
||||
|
||||
<DT><B>Preço</B></DT>
|
||||
|
||||
<DD>Nós somos livres para uso dele tanto comercial quanto não comercial. Você pode adicionar nosso código ao seu produto sem limitações, exceto aquelas descritas na nossa licença BSD mencionada acima.<BR>
|
||||
<BR>
|
||||
</DD>
|
||||
</DL>
|
||||
|
||||
<H3 id="item1.14">1.14) O PostgreSQL gerenciará mudanças no horário devido ao horário de verão em vários países?</H3>
|
||||
|
||||
<P>Mudanças no horário de verão dos USA foram incluídas nas versões 8.0 .[4+] do PostgreSQL e em todas as versões grandes, i.e. 8.1. Mudanças no Canadá e Austrália Oeste foram incluídas na 8.0.[10+], 8.1.[6+] e em todas as versões grandes subsequentes. Versões do PostgreSQL anteriores a 8.0 utilizam o banco de dados de zona horária do sistema operacional para informações sobre horário de verão.</P>
|
||||
|
||||
<HR>
|
||||
|
||||
<H2 align="center">Perguntas sobre Clientes</H2>
|
||||
|
||||
<H3 id="item2.1">2.1) Quais interfaces estão disponíveis para PostgreSQL?</H3>
|
||||
|
||||
<p>A instalação do PostgreSQL inclui somente as interfaces <SMALL>C</SMALL> e
|
||||
<SMALL>C</SMALL> embutida. Todas as outras interfaces são projetos independentes
|
||||
que podem ser obtidos separadamente; sendo separados permitem que eles tenham
|
||||
suas próprias datas de lançamento e time de desenvolvedores.</P>
|
||||
|
||||
<P>Algumas linguagens de programação como <SMALL>PHP</SMALL> incluem uma
|
||||
interface para PostgreSQL. Interfaces para linguagens como Perl,
|
||||
<SMALL>TCL</SMALL>, Python e muitas outras estão disponíveis em
|
||||
<a href="http://www.pgfoundry.org">http://www.pgfoundry.org</A>.
|
||||
</P>
|
||||
|
||||
<H3 id="item2.2">2.2) Quais ferramentas estão disponíveis para utilizar o PostgreSQL com páginas Web?</H3>
|
||||
|
||||
<P>Uma boa introdução para páginas web que utilizam bancos de dados pode ser vista em:
|
||||
<A href="http://www.webreview.com">http://www.webreview.com</A></P>
|
||||
|
||||
<P>Para integração na Web, PHP (<A
|
||||
href="http://www.php.net">http://www.php.net</A>)
|
||||
é uma excelente interface.</P>
|
||||
|
||||
<P>Para casos complexos, muitos usam a Interface Perl e DBD::Pg com CGI.pm
|
||||
ou mod_perl.</P>
|
||||
|
||||
<H3 id="item2.3">2.3) O PostgreSQL tem interfaces gráficas para iteragir com o usuário?</H3>
|
||||
|
||||
<P>Há um vasto número de Ferramentas Gráficas (GUI), que estão disponíveis
|
||||
para o PostgreSQL, comerciais e de desenvolvedores de código aberto. Uma
|
||||
lista detalhada pode ser encontrada em <A href="http://www.postgresql.org/docs/techdocs.54">
|
||||
Documentação da Comunidade PostgreSQL</A></P>
|
||||
|
||||
<HR>
|
||||
|
||||
<H2 align="center">Perguntas Administrativas</H2>
|
||||
|
||||
<H3 id="item3.1">3.1) Como eu instalo o PostgreSQL em um local diferente de <I>/usr/local/pgsql</I>?</H3>
|
||||
|
||||
<P>Especifique a opção <I>--prefix</I> quando executar o <I>configure</I>.</P>
|
||||
|
||||
<H3 id="item3.2">3.2) Como eu controlo conexões de outras máquinas?</H3>
|
||||
|
||||
<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 <I>listen_addresses</I> no <I>postgresql.conf</I>, habilite a autenticação por máquina modificando o arquivo <I>$PGDATA/pg_hba.conf</I> e reinicie o servidor PostgreSQL.</P>
|
||||
|
||||
<H3 id="item3.3">3.3) Como eu ajusto o servidor de banco de dados para obter uma performance melhor?</H3>
|
||||
|
||||
<P>Há três grandes áreas para melhorar a performance em potencial:</P>
|
||||
|
||||
<DL>
|
||||
<DT><B>Mudança de Consultas</B></DT>
|
||||
|
||||
<DD>Isto involve modificar consultas para obter melhor performance:
|
||||
<ul>
|
||||
<li>Criação de índices, incluir expressões e índices parciais</li>
|
||||
<li>Utilização o COPY ao invés de múltiplos comandos <SMALL>INSERT</SMALL>s</li>
|
||||
<li>Agrupamento de múltiplos comandos em uma única transação para diminuir
|
||||
a despesa com efetivações (commit)</li>
|
||||
<li>Utilização do <SMALL>CLUSTER</SMALL> quando recuperar vários registros de
|
||||
um índice</li>
|
||||
<li>Utilização do <SMALL>LIMIT</SMALL> para retornar um subconjunto da saída
|
||||
da consulta</li>
|
||||
<li>Utilização de Consultas preparadas</li>
|
||||
<li>Utilização de <SMALL>ANALYZE</SMALL> para manter as estatísticas do
|
||||
otimizador corretas</li>
|
||||
<li>Utilização regular do <SMALL>VACUUM</SMALL> ou <I>pg_autovacuum</I></li>
|
||||
<li>Remoção de índices durante grande mudança de dados</li>
|
||||
</ul><BR>
|
||||
<BR>
|
||||
</DD>
|
||||
|
||||
<DT><B>Configuração do Servidor</B></DT>
|
||||
|
||||
<DD>Um grande número de configurações que afetam a performance.
|
||||
Para obter detalhes adicionais, veja <a href=
|
||||
"http://www.postgresql.org/docs/current/static/runtime-config.html">
|
||||
Administration Guide/Server Run-time Environment/Run-time
|
||||
Configuration</a> para listagem completa, e para
|
||||
comentários veja <a href=
|
||||
"http://www.varlena.com/varlena/GeneralBits/Tidbits/annotated_conf_e.html">
|
||||
http://www.varlena.com/varlena/GeneralBits/Tidbits/annotated_conf_e.html</a>
|
||||
e <a href="http://www.varlena.com/varlena/GeneralBits/Tidbits/perf.html">
|
||||
http://www.varlena.com/varlena/GeneralBits/Tidbits/perf.html</a>.
|
||||
<BR>
|
||||
<BR>
|
||||
</DD>
|
||||
|
||||
<DT><B>Seleção do Hardware</B></DT>
|
||||
|
||||
<DD>O efeito do hardware na performance é detalhado em
|
||||
<a href="http://www.powerpostgresql.com/PerfList/">
|
||||
http://www.powerpostgresql.com/PerfList/</a> e <a
|
||||
href="http://momjian.us/main/writings/pgsql/hw_performance/index.html">
|
||||
http://momjian.us/main/writings/pgsql/hw_performance/index.html</a>.
|
||||
<BR>
|
||||
<BR>
|
||||
</DD>
|
||||
</DL>
|
||||
|
||||
<H3 id="item3.4">3.4) Quais características de depuração estão disponíveis?</H3>
|
||||
|
||||
<P>Há muitas variáveis de configuração do servidor <CODE>log_*</CODE>
|
||||
que habilitam a exibição de consultas e estatísticas que podem ser
|
||||
muito úteis para depuração e medidas de performance.</P>
|
||||
|
||||
<H3 id="item3.5">3.5) Por que eu recebo <I>"Sorry, too many clients"</I> quando eu tento conectar?</H3>
|
||||
|
||||
<P>Você atingiu o limite padrão de 100 sessões. Você
|
||||
precisa aumentar o limite do servidor PostgreSQL, que diz
|
||||
quantos processos servidor concorrentes ele pode iniciar, alterando
|
||||
o valor <I>max_connections</I> no <I>postgresql.conf</I> e
|
||||
reiniciando o <I>postmaster</I>.</P>
|
||||
|
||||
<H3 id="item3.6">3.6) Qual é o processo de atualização do PostgreSQL?</H3>
|
||||
|
||||
<P>Veja <a
|
||||
href="http://www.postgresql.org/support/versioning">http://www.postgresql.org/support/versioning</a>
|
||||
para discuss<73>o geral sobre atualiza<7A><61>es e <a href=
|
||||
"http://www.postgresql.org/docs/current/static/install-upgrading.html">
|
||||
http://www.postgresql.org/docs/current/static/install-upgrading.html</a>
|
||||
para instruções específicas.</P>
|
||||
|
||||
<H3 id="item3.7">3.7) Que tipo de hardware eu devo usar?</H3>
|
||||
|
||||
<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>
|
||||
|
||||
<H3 id="item4.1">4.1) Como eu faço um <SMALL>SELECT</SMALL> somente dos primeiros registros de uma consulta? Um registro randômico?</H3>
|
||||
|
||||
<P>Para obter somente alguns registros, se você sabe o número de
|
||||
registros necessários ao executar o <SMALL>SELECT</SMALL> utilize
|
||||
o <SMALL>LIMIT</SMALL>. Se um índice corresponde no <SMALL>ORDER
|
||||
BY</SMALL> é possível que a consulta toda não tenha que ser
|
||||
executada. Se você não sabe o número de registros ao executar o
|
||||
<SMALL>SELECT</SMALL>, utilize um cursor e o <SMALL>FETCH</SMALL>.</P>
|
||||
|
||||
<P>Para <SMALL>obter</SMALL> um registro randômico, utilize:</P>
|
||||
<PRE>
|
||||
SELECT col
|
||||
FROM tab
|
||||
ORDER BY random()
|
||||
LIMIT 1;
|
||||
</PRE>
|
||||
|
||||
<H3 id="item4.2">4.2) Como eu descubro quais tabelas, índices, bancos de dados e usuários estão definidos? Como eu vejo as consultas utilizadas pelo <I>psql</I> para mostrá-los?</H3>
|
||||
|
||||
<P>Utilize o comando \dt para ver tabelas no <I>psql</I>. Para obter
|
||||
uma lista completa dos comandos no psql você pode utilizar \?.
|
||||
Alternativamente, você pode ler o código-fonte do <I>psql</I> no arquivo
|
||||
<I>pgsql/src/bin/psql/describe.c</I>, ele contém os comandos <SMALL>SQL</SMALL>
|
||||
que geram a saída para os comandos de contrabarra do <I>psql</I>. Você
|
||||
também pode iniciar o <I>psql</I> com a opção <I>-E</I> para que as consultas
|
||||
utilizadas para executar os comandos que você informou seja exibida.
|
||||
O PostgreSQL também fornece uma inteface compatível com <SMALL>SQL</SMALL> do
|
||||
INFORMATION SCHEMA que você pode consultar para obter informação sobre o
|
||||
banco de dados.</P>
|
||||
|
||||
<P>Há também tabelas do sistema que começam com <I>pg_</I> que os descrevem
|
||||
também.</P>
|
||||
|
||||
<P>Utilizando o <I>psql -l</I> listará todos os bancos de dados.</P>
|
||||
|
||||
<P>Veja também o arquivo <I>pgsql/src/tutorial/syscat.source</I>. Ele
|
||||
ilustra muitos dos comandos <SMALL>SELECT</SMALL>s necessários para obter
|
||||
informação das tabelas de sistema do banco de dados.</P>
|
||||
|
||||
<H3 id="item4.3">4.3) Como você muda o tipo de dado de uma coluna?</H3>
|
||||
|
||||
<P>Mudar o tipo de dado de uma coluna pode ser feito facilmente na versão 8.0
|
||||
ou superior com <SMALL>ALTER TABLE ALTER COLUMN TYPE</SMALL>.</P>
|
||||
|
||||
<P>Em versões anteriores, faça isso:</P>
|
||||
<PRE>
|
||||
BEGIN;
|
||||
ALTER TABLE tab ADD COLUMN col_nova <i>novo_tipo_dado</i>;
|
||||
UPDATE tab SET col_nova = CAST(col_antiga AS <i>novo_tipo_dado</i>);
|
||||
ALTER TABLE tab DROP COLUMN col_antiga;
|
||||
COMMIT;
|
||||
</PRE>
|
||||
<P>Você pode então querer fazer um <I>VACUUM FULL tab</I> para recuperar
|
||||
o espaço em disco utilizado pelos registros expirados.</P>
|
||||
|
||||
<H3 id="item4.4">4.4) Qual é o tamanho máximo de um registro, uma tabela e um banco de dados?</H3>
|
||||
|
||||
<P>Estes são os limites:</P>
|
||||
<BLOCKQUOTE>
|
||||
<TABLE>
|
||||
<TR><TD>Tamanho máximo de um banco de dados?</TD><TD>ilimitado (existem bancos de dados de 32 TB)</TD></TR>
|
||||
<TR><TD>Tamanho máximo de uma tabela?</TD><TD>32 TB</TD></TR>
|
||||
<TR><TD>Tamanho máximo de um registro?</TD><TD>400 GB</TD></TR>
|
||||
<TR><TD>Tamanho máximo de um campo?</TD><TD>1 GB</TD></TR>
|
||||
<TR><TD>Número máximo de registros em uma tabela?</TD><TD>ilimitado</TD></TR>
|
||||
<TR><TD>Número máximo de colunas em uma tabela?</TD><TD>250-1600 dependendo dos tipos das colunas</TD></TR>
|
||||
<TR><TD>Número máximo de índices em uma tabela?</TD><TD>ilimitado</TD></TR>
|
||||
</TABLE>
|
||||
</BLOCKQUOTE>
|
||||
|
||||
<P>É claro, que eles não são ilimitados, mas limitados
|
||||
ao espaço em disco disponível e espaço em memória/swap.
|
||||
A Performance será penalizada quando estes valores se tornarem grandes.</P>
|
||||
|
||||
<P>O tamanho máximo de uma tabela com 32 TB não requer suporte a
|
||||
arquivos grandes do sistema operacional. Tabelas grandes são armazenadas
|
||||
como múltiplos arquivos de 1 GB então o limite do sistema de
|
||||
arquivos não é importante.</P>
|
||||
|
||||
<P>O tamanho máximo de uma tabela, o tamanho de um registro e o número
|
||||
máximo de colunas podem ser quadruplicados aumentando-se o tamanho padrão
|
||||
do bloco para 32k. O tamanho máximo de uma tabela pode também ser aumentado utilizando
|
||||
particionamento de tabela.</P>
|
||||
|
||||
<P>Uma limitação é que índices não podem ser criados em colunas maiores do que
|
||||
2.000 caracteres. Felizmente, tais índices são raramente necessários. Unicidade é
|
||||
melhor garantida por um índice de uma função de um hash MD5 de uma coluna longa, e
|
||||
indexação de texto longo permite a busca de palavras dentro da coluna.</P>
|
||||
|
||||
<H3 id="item4.5">4.5) Quanto espaço em disco é necessário para armazenar dados de um arquivo texto?</H3>
|
||||
|
||||
<P>Um banco de dados PostgreSQL irá requerer até cinco vezes a quantidade de espaço requerida para armazenar dados em um arquivo texto.</P>
|
||||
|
||||
<P>Como um exemplo, considere um arquivo com 100.000 linhas contendo um inteiro e uma descrição em cada linha. Suponha que o tamanho médio da descrição é de vinte bytes. O arquivo terá 2,8 MB. O tamanho do arquivo do banco de dados PostgreSQL que contém esses dados pode ser estimado em 5,2 MB:</P>
|
||||
<PRE>
|
||||
24 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
|
||||
-------------------------------------------
|
||||
52 bytes por registro
|
||||
|
||||
O tamanho de uma página de dados no PostgreSQL é 8192 bytes (8 KB), então:
|
||||
|
||||
8192 bytes por página
|
||||
------------------------ = 158 registros por página do banco de dados (arredondado para baixo)
|
||||
52 bytes por registro
|
||||
|
||||
100000 registros de dados
|
||||
---------------------------- = 633 páginas do banco de dados (arredondado para cima)
|
||||
158 registros por página
|
||||
|
||||
633 páginas do banco de dados * 8192 bytes por página = 5.185.536 bytes (5,2 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>
|
||||
|
||||
<P><SMALL>NULL</SMALL>s são armazenados como bitmaps, então eles
|
||||
utilizam muito pouco espaço.</P>
|
||||
|
||||
<H3 id="item4.6">4.6) Por que minhas consultas estão lentas? Por que elas não estão utilizando meus índices?</H3>
|
||||
|
||||
<P>Índices não são utilizados por toda consulta. Índices são utilizados somente
|
||||
se a tabela é maior do que um tamanho mínimo, e a consulta seleciona somente uma
|
||||
pequena porcentagem dos registros da tabela. Isto porque o acesso randômico ao
|
||||
disco causado pela busca indexada pode ser mais lento do que uma leitura ao longo
|
||||
da tabela ou busca sequencial.</P>
|
||||
|
||||
<P>Para determinar se um índice deveria ser utilizado, o PostgreSQL deve ter
|
||||
estatísticas sobre a tabela. Estas estatísticas são coletadas utilizando o
|
||||
<SMALL>VACUUM ANALYZE</SMALL> ou simplesmente o <SMALL>ANALYZE</SMALL>.
|
||||
Utilizando estatísticas, o otimizador sbae quantos registros estão na tabela,
|
||||
e pode melhor determinar se índices deveriam ser utilizados.
|
||||
Estatísticas também são úteis para determinar a ordem de junção ótima e métodos
|
||||
de junção. Coleção de estatísticas deveriam ser feitas periodicamente a
|
||||
medida que o conteúdo da tabela muda.</P>
|
||||
|
||||
<P>Índices não são normalmente utilizados para <SMALL>ORDER BY</SMALL> ou para
|
||||
fazer junções. Uma busca sequencial seguido por uma ordenação explícita é
|
||||
geralmente mais rápida do que uma busca indexada em uma tabela grande.
|
||||
Contudo, <SMALL>LIMIT</SMALL> combinado com <SMALL>ORDER BY</SMALL>
|
||||
frequentemente utilizará índice porque somente uma pequena porção da tabela
|
||||
será retornada.</P>
|
||||
|
||||
<P>Se você acredita que o otimizador está incorreto ao escolher uma busca
|
||||
sequencial, utilize <CODE>SET enable_seqscan TO 'off'</CODE> e execute a
|
||||
consulta novamente para ver se uma busca indexada é realmente mais rápida.</P>
|
||||
|
||||
<P>Ao utilizar operadores curinga tais como <SMALL>LIKE</SMALL> ou <I>~</I>,
|
||||
índices podem ser utilizados somente em algumas condições:</P>
|
||||
<UL>
|
||||
<LI>O início da cadeia de caracteres da busca deve ser iniciar com uma
|
||||
cadeia de caracteres, i.e.
|
||||
<UL>
|
||||
<LI>modelos <SMALL>LIKE</SMALL> não devem iniciar com <I>%</I>.</LI>
|
||||
<LI>modelos <I>~</I> (expressões regulares) devem iniciar com <I>^</I>.</LI>
|
||||
</UL></LI>
|
||||
<LI>A cadeia de caracteres utilizada na busca não pode iniciar com a classe de
|
||||
caracteres e.g. [a-e].</LI>
|
||||
<LI>Busca que não diferenciam maiúsculas de minúsculas tais como <SMALL>ILIKE</SMALL> e
|
||||
<I>~*</I> não utilizam índices. Em vez disso, utilize índice de expressão, que
|
||||
é descrito na seção <a href="#item4.8">4.8</a>.</LI>
|
||||
<LI>O idioma padrão <I>C</I> deve ser usando durante o <i>initdb</i>
|
||||
porque não é possível saber o próximo caracter em idiomas que não sejam o C.
|
||||
Você pode criar um índice especial <CODE>text_pattern_ops</CODE> para tais casos
|
||||
que funcionam somente para indexação com <SMALL>LIKE</SMALL>. Também é
|
||||
possível utilizar indexação de busca textual para buscas por palavras.
|
||||
</LI>
|
||||
</UL>
|
||||
|
||||
<P>Em versões anteriores a 8.0, índices frequentemente não podem ser utilizados
|
||||
a menos que os tipos de dados correspondam aos tipos de coluna do índice. Isto era
|
||||
particularmente verdadeiro para índices de coluna int2, int8 e numeric.</P>
|
||||
|
||||
<H3 id="item4.7">4.7) Como eu vejo como o otimizador de consulta está avaliando a minha consulta?</H3>
|
||||
|
||||
<P>Veja o comando <SMALL>EXPLAIN</SMALL> no manual.</P>
|
||||
|
||||
<H3 id="item4.8">4.8) Como eu faço buscas com expressões regulares
|
||||
e buscas com expressões regulares sem diferenciar maiúsculas de minúsculas? Como eu
|
||||
utilizo um índice para buscas que não diferenciam maiúsculas de minúsculas?</H3>
|
||||
|
||||
<P>O operador <I>~</I> faz avaliação de expressões regulares,
|
||||
e <I>~*</I> faz avaliação não sensível a maiúsculas
|
||||
de expressões regulares. A variante não sensível a maiúsculas
|
||||
do <SMALL>LIKE</SMALL> é chamada de <SMALL>ILIKE</SMALL>.</P>
|
||||
|
||||
<P>Comparações de igualdade não sensíveis a maiúsculas
|
||||
são normalmente expressadas como:</P>
|
||||
<PRE>
|
||||
SELECT *
|
||||
FROM tab
|
||||
WHERE lower(col) = 'abc';
|
||||
</PRE>
|
||||
Isso não irá utilizar o índice padrão. Contudo, se
|
||||
você criar um índice de expressão, ele será utilizado:
|
||||
<PRE>
|
||||
CREATE INDEX tabindex ON tab (lower(col));
|
||||
</PRE>
|
||||
<P>Se o índice acima é criado como <SMALL>UNIQUE</SMALL>, embora a
|
||||
coluna possa armazenar caracteres maiúsculos e minúsculos, ele não
|
||||
pode ter valores idênticos que diferem apenas em letras maiúsculas e minúsculas.
|
||||
Para forçar uma letra maiúscula ou minúscula a ser armazenada na coluna, utilize
|
||||
uma restrição <SMALL>CHECK</SMALL> ou um gatilho.</P>
|
||||
|
||||
<H3 id="item4.9">4.9) Em uma consulta, como eu detecto se um campo é <SMALL>NULL</SMALL>? Como eu posso concatenar possíveis <SMALL>NULL</SMALL>s? Como eu posso ordenar por um campo que é <SMALL>NULL</SMALL> ou não?</H3>
|
||||
|
||||
<P>Você testa a coluna com <SMALL>IS NULL</SMALL> e <SMALL>IS
|
||||
NOT NULL</SMALL>, como a seguir:</P>
|
||||
|
||||
<PRE>
|
||||
SELECT *
|
||||
FROM tab
|
||||
WHERE col IS NULL;
|
||||
</PRE>
|
||||
|
||||
<P>Para concatenar com possíveis <SMALL>NULL</SMALL>s, utilize <I>COALESCE()</I>, assim:</P>
|
||||
<PRE>
|
||||
SELECT COALESCE(col1, '') || COALESCE(col2, '')
|
||||
FROM tab
|
||||
</PRE>
|
||||
|
||||
<P>Para ordenar pelo status <SMALL>NULL</SMALL>, utilize os modificadores
|
||||
<SMALL>IS NULL</SMALL> e <SMALL>IS NOT NULL</SMALL> na sua cláusula
|
||||
<SMALL>ORDER BY</SMALL>. Coisas que são <I>verdadeiro</I> serão ordenadas acima
|
||||
das coisas que são <I>falso</I>, então a consulta a seguir irá colocar
|
||||
entradas NULL no início da lista de resultados:</P>
|
||||
|
||||
<PRE>
|
||||
SELECT *
|
||||
FROM tab
|
||||
ORDER BY (col IS NOT NULL)
|
||||
</PRE>
|
||||
|
||||
<H3 id="item4.10">4.10) Qual é a diferença entre os vários tipos de dado de caracteres?</H3>
|
||||
<BLOCKQUOTE>
|
||||
<TABLE>
|
||||
<TR><TH>Tipo</TH><TH>Nome Interno</TH><TH>Observação</TH></TR>
|
||||
<TR><TD>VARCHAR(n)</TD><TD>varchar</TD><TD>tamanho especifica o tamanho
|
||||
máximo, sem preenchimento</TD></TR>
|
||||
<TR><TD>CHAR(n)</TD><TD>bpchar</TD><TD>preenchimento em branco para
|
||||
comprimento fixo específico</TD></TR>
|
||||
<TR><TD>TEXT</TD><TD>text</TD><TD>nenhum limite superior específico no
|
||||
comprimento</TD></TR>
|
||||
<TR><TD>BYTEA</TD><TD>bytea</TD><TD>vetor de bytes de comprimento variável
|
||||
(seguro a byte nulo)</TD></TR>
|
||||
<TR><TD>"char"</TD><TD>char</TD><TD>um caracter</TD></TR>
|
||||
</TABLE>
|
||||
</BLOCKQUOTE>
|
||||
|
||||
<P>Você verá o nome interno quando examinar o catálogo do sistema e em algumas mensagens de erro.</P>
|
||||
|
||||
<P>Os primeiros quatro tipos acima são do tipo "varlena" (i.e., os primeiros quatro bytes no disco são o comprimento seguido pelos dados). Consequentemente o espaço atual utilizado é ligeiramente maior do que o tamanho declarado. Contudo, valores longos são também sujeitos a compressão, então o espaço em disco pode também ser bem menor do que o esperado.</P>
|
||||
|
||||
<SMALL>VARCHAR(n)</SMALL> é melhor quando está armazenando cadeias de caracteres de comprimento variável e há um limite de tamanho desta cadeia. <SMALL>TEXT</SMALL> é para cadeias de caracteres de comprimento ilimitado, com o máximo de um gigabyte.
|
||||
<P><SMALL>CHAR(n)</SMALL> é para armazenar cadeias de caracteres que são todas do mesmo tamanho. <SMALL>CHAR(n)</SMALL> preenche com espaços em branco até o tamanho especificado, enquanto o <SMALL>VARCHAR(n)</SMALL> armazena somente os caracteres fornecidos. <SMALL>BYTEA</SMALL> é para armazenar dados binários, particularmente valores que incluem bytes <SMALL>NULL</SMALL>. Todos os tipos descritos aqui tem características de performance similares.</P>
|
||||
|
||||
<H3 id="item4.11.1">4.11.1) Como eu crio um campo serial/auto incremento?</H3>
|
||||
|
||||
<P>PostgreSQL suporta o tipo de dados <SMALL>SERIAL</SMALL>. Ele cria
|
||||
automaticamente uma sequência. Por exemplo:</P>
|
||||
<PRE>
|
||||
CREATE TABLE pessoa (
|
||||
id SERIAL,
|
||||
nome TEXT
|
||||
);
|
||||
</PRE>
|
||||
|
||||
é automaticamente traduzido em:
|
||||
<PRE>
|
||||
CREATE SEQUENCE pessoa_id_seq;
|
||||
CREATE TABLE pessoa (
|
||||
id INT4 NOT NULL DEFAULT nextval('pessoa_id_seq'),
|
||||
nome TEXT
|
||||
);
|
||||
</PRE>
|
||||
|
||||
<P>Sequências automaticamente criadas são nomeadas como
|
||||
<<i>tabela</i>>_<<i>colunaserial</i>>_<i>seq</i>, onde
|
||||
<i>tabela</i> e <i>colunaserial</i> são os nomes da tabela e
|
||||
da coluna serial, respectivamente. Veja a página sobre
|
||||
<I>create_sequence</I> no manual para obter informações
|
||||
adicionais sobre sequências.
|
||||
|
||||
<H3 id="item4.11.2">4.11.2) Como eu consigo o valor de um campo
|
||||
<SMALL>SERIAL</SMALL>?</H3>
|
||||
|
||||
<P>A maneira mais simples de obter o próximo valor <SMALL>SERIAL</SMALL>
|
||||
de uma sequência é com <SMALL>RETURNING</SMALL>. Utilizando o
|
||||
exemplo da tabela em <A href="#item4.11.1">4.11.1</A>, ele ficaria assim:
|
||||
|
||||
<PRE>
|
||||
INSERT INTO pessoa (nome) VALUES ('Blaise Pascal') RETURNING id;
|
||||
</PRE>
|
||||
|
||||
Você também pode chamar <I>nextval()</I> e utilizar o valor no
|
||||
<SMALL>INSERT</SMALL> ou chamar <I>currval()</I> <I>após</I> o
|
||||
<SMALL>INSERT</SMALL>.
|
||||
|
||||
<H3 id="item4.11.3">4.11.3) <I>currval()</I> não lida com condição de corrida com outros usuários?</H3>
|
||||
|
||||
<P>Não. <I>currval()</I> retorna o valor atual atribuido pela sua sessão, e não por todas as sessões.</P>
|
||||
|
||||
<H3 id="item4.11.4">4.11.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?</H3>
|
||||
|
||||
<P>Para melhorar a concorrência, valores da sequência são atribuídos a transações correntes e não são travados até que a transação seja finalizada. Isso causa intervalos na numeração por causa de transações abortadas.</P>
|
||||
|
||||
<H3 id="item4.12">4.12) O que é um <SMALL>OID</SMALL>? O que é um <SMALL>CTID</SMALL>?</H3>
|
||||
|
||||
<P>Se uma tabela é criada com <SMALL>WITH OIDS</SMALL>, cada registro recebe um <SMALL>OID</SMALL> único.
|
||||
O<SMALL>ID</SMALL>s são automaticamente atribuídos como inteiros de 4 bytes
|
||||
que são únicos ao longo de toda instalação. Contudo, eles são limitados em
|
||||
4 bilhões e, então, os O<SMALL>ID</SMALL>s começam a ser duplicados. O PostgreSQL
|
||||
utiliza <SMALL>OID</SMALL>s para ligar as tabelas do sistema.</P>
|
||||
|
||||
<P>Para numerar registros nas tabelas do usuários, é melhor utilizar
|
||||
<SMALL>SERIAL</SMALL> ao invés de O<SMALL>ID</SMALL>s porque
|
||||
sequências <SMALL>SERIAL</SMALL> são únicas somente em uma tabela; e
|
||||
são menos propícias a atingir o limite.
|
||||
<SMALL>SERIAL8</SMALL> está disponível para armazenar valores de sequências
|
||||
com oito bytes.</P>
|
||||
|
||||
<P>C<SMALL>TID</SMALL>s são utilizados para identificar registros físicos
|
||||
específicos com valores de block e deslocamento. C<SMALL>TID</SMALL>s mudam
|
||||
após registros serem modificados ou recarregados. Eles são utilizados por
|
||||
índices para apontar registros físicos.</P>
|
||||
|
||||
<H3 id="item4.13">4.13) Por que eu recebo o erro <I>"ERROR: Memory exhausted in AllocSetAlloc()"</I>?</H3>
|
||||
|
||||
<P>Você provavelmente está sem memória virtual no seu sistema, ou o seu núcleo (kernel) tem um limite baixo para certos recursos. Tente isto antes de iniciar o servidor PostgreSQL:</P>
|
||||
<PRE>
|
||||
ulimit -d 262144
|
||||
limit datasize 256m
|
||||
</PRE>
|
||||
|
||||
Dependendo da sua shell, somente um desses comando terá sucesso, mas ele definirá o segmento de dados do seu processo com um limite maior e talvez permita que a consulta seja feita. Este comando é aplicado ao processo atual e todos os subprocessos criados depois do comando ser executado. Se você tiver problemas com o cliente <SMALL>SQL</SMALL> porque o processo servidor retornou muitos dados, tente-o antes de iniciar o cliente.
|
||||
|
||||
<H3 id="item4.14">4.14) Como eu informo qual versão do PostgreSQL eu estou utilizando?</H3>
|
||||
|
||||
<P>No <I>psql</I>, digite <CODE>SELECT version();</CODE></P>
|
||||
|
||||
<H3 id="item4.15">4.15) Como eu crio uma coluna que conterá por padrão a hora atual?</H3>
|
||||
|
||||
<P>Utilize <I>CURRENT_TIMESTAMP</I>:</P>
|
||||
<PRE>
|
||||
CREATE TABLE teste (x int, modtime timestamp DEFAULT CURRENT_TIMESTAMP );
|
||||
</PRE>
|
||||
|
||||
<H3 id="item4.16">4.16) Como eu faço uma junção externa (outer join)?</H3>
|
||||
|
||||
<P>PostgreSQL suporta junções externas utilizando a sintaxe padrão do SQL. Aqui temos dois exemplos:</P>
|
||||
<PRE>
|
||||
SELECT *
|
||||
FROM t1 LEFT OUTER JOIN t2 ON (t1.col = t2.col);
|
||||
</PRE>
|
||||
or
|
||||
<PRE>
|
||||
SELECT *
|
||||
FROM t1 LEFT OUTER JOIN t2 USING (col);
|
||||
</PRE>
|
||||
|
||||
<P>Essas duas consultas indênticas juntam t1.col com t2.col, e também
|
||||
retornam qualquer registro que não foi juntado em t1 (aqueles que não
|
||||
combinaram com t2). Uma junção a direita <SMALL>RIGHT</SMALL>
|
||||
adicionaria registros que não foram juntados da tabela t2.
|
||||
Uma junção completa (<SMALL>FULL</SMALL>) retornaria os registros
|
||||
combinados mais todos os registros não combinados de t1 e t2.
|
||||
A palavra <SMALL>OUTER</SMALL> é opcional e é assumida nas
|
||||
junções <SMALL>LEFT</SMALL>, <SMALL>RIGHT</SMALL> e <SMALL>FULL</SMALL>.
|
||||
Junções ordinárias são chamadas junções
|
||||
internas (<SMALL>INNER</SMALL>).</P>
|
||||
|
||||
<H3 id="item4.17">4.17) Como eu faço consultas utilizando múltiplos bancos de dados?</H3>
|
||||
|
||||
<P>Não há outra maneira de consultar um banco de dados caso ele
|
||||
não seja o atual. Porque o PostgreSQL carrega catálogos do sistema
|
||||
específicos do banco de dados, é incerto como uma consulta em banco
|
||||
de dados distintos pode se comportar.</P>
|
||||
|
||||
<P><I>contrib/dblink</I> permite consultas em bancos de dados distintos utilizando
|
||||
chamadas de funções. É claro, que um cliente pode fazer
|
||||
conexões simultâneas em bancos de dados diferentes e juntar os
|
||||
resultados no cliente.</P>
|
||||
|
||||
<H3 id="item4.18">4.18) Como eu retorno múltiplos registros ou colunas de uma função?</H3>
|
||||
|
||||
<P>É fácil utilizando funções que retornam conjunto,
|
||||
<a href="http://www.postgresql.org/docs/techdocs.17">
|
||||
http://www.postgresql.org/docs/techdocs.17</a>.</P>
|
||||
|
||||
<H3 id="item4.19">4.19) Por que eu obtenho erros "relation with OID ######
|
||||
does not exist" ao acessar tabelas temporárias em funções PL/PgSQL?</H3>
|
||||
|
||||
<P>Em versões do PostgreSQL < 8.3, PL/PgSQL armazena o conteúdo da função, e o efeito indesejado é que se uma função PL/PgSQL acessa uma tabela temporária, e aquela tabela é removida e criada novamente, e a função é chamada novamente, a função irá falhar porque o conteúdo armazenado da função ainda apontará para a tabela temporária antiga. A solução é utilizar o <SMALL>EXECUTE</SMALL> para acesso a tabelas temporárias no PL/PgSQL. Isto irá fazer com que a consulta seja avaliada toda vez.</P>
|
||||
|
||||
<P>Este problema não ocorre no PostgreSQL 8.3 ou superior.</P>
|
||||
|
||||
<H3 id="item4.20">4.20) Quais soluções de replicação estão disponíveis?</H3>
|
||||
|
||||
<P>Embora "replicação" seja um termo simples, há várias tecnologias para fazer
|
||||
replicação, com vantagens e desvantagens para cada um.</P>
|
||||
|
||||
<P>Replicação mestre/escravo permite que um mestre receba consultas de leitura e
|
||||
escrita, enquanto os escravos só podem aceitar leitura/consultas <SMALL>SELECT</SMALL>.
|
||||
A solução mais popular de replicação mestre-escravo para PostgreSQL disponível livremente
|
||||
é <A href="http://main.slony.info">Slony-I</A>.</P>
|
||||
|
||||
<P>Replicação com múltiplos mestres permite que consultas leitura/escrita sejam
|
||||
enviadas para múltiplos computadores replicadores. Esta capacidade também tem
|
||||
um sério impacto na performance por causa da necessidade de sincronizar as mudanças
|
||||
entre os servidores. <A href="http://pgfoundry.org/projects/pgcluster/">PGCluster</a>
|
||||
é a solução mais popular disponível livremente para PostgreSQL.</P>
|
||||
|
||||
<P>Há também soluções de replicação comerciais e baseadas em hardware disponíveis
|
||||
que suportam uma variedade de modelos de replicação.</P>
|
||||
|
||||
<H3 id="item4.21">4.21) Por que os nomes de minhas tabelas e colunas não
|
||||
são reconhecidos em minha consulta? Por que as maiúsculas não são preservadas?</H3>
|
||||
|
||||
<P>A causa mais comum de nomes desconhecidos é o uso de aspas ao redor dos nomes da tabela ou coluna
|
||||
durante a criação da tabela. Ao utilizar aspas, nomes de tabela e coluna
|
||||
(chamados de identificadores) são armazenados <a
|
||||
href="http://www.postgresql.org/docs/current/static/sql-syntax-lexical.html#SQL-SYNTAX-IDENTIFIERS">
|
||||
como especificado</a>, significando que você deve utilizar aspas quando se
|
||||
referir aos nomes na consulta. Algumas interfaces, como pgAdmin,
|
||||
automaticamente colocam aspas nos identificadores durante a criação da tabela.
|
||||
Então, para identificadores serem reconhecidos, você deve:
|
||||
<UL>
|
||||
<LI>Evitar colocar aspas no identificador ao criar tabelas</LI>
|
||||
<LI>Utilizar somente caracteres minúsculos em identificadores</LI>
|
||||
<LI>Colocar aspas em identificadores ao referenciá-los nas consultas</LI>
|
||||
</UL>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -1,645 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<html>
|
||||
<head>
|
||||
<title>PostgreSQL FAQ</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
<meta http-equiv="Content-language" content="cs">
|
||||
<meta name="description" lang="en" content="Czech translation of FAQ for PostgreSQL">
|
||||
<meta name="description" lang="cs" content="Český překlad FAQ PostgreSQL">
|
||||
</head>
|
||||
<body bgcolor="#ffffff" text="#000000" link="#ff0000" vlink="#a00000" alink="#0000ff">
|
||||
<h1>Frequently Asked Questions</h1>
|
||||
<p><i>Často kladené dotazy (FAQ) PostgreSQL</i>
|
||||
</p>
|
||||
<p>Poslední aktualizace: 29. října 2007 (aktualizováno pro PostgreSQL 8.3)
|
||||
</p>
|
||||
<p>Současný správce: Bruce Momjian (bruce@momjian.us)
|
||||
</p>
|
||||
<p>Přeložil: Pavel Stěhule (pavel.stehule@gmail.com)
|
||||
</p>
|
||||
<p>Nejaktuálnější verzi tohoto dokumentu naleznete na adrese
|
||||
<a href="http://www.postgresql.org/files/documentation/faqs/FAQ.html" title="http://www.postgresql.org/files/documentation/faqs/FAQ.html">http://www.postgresql.org/files/documentation/faqs/FAQ.html</a>
|
||||
</p>
|
||||
<p>Odpovědi na otázky vázané na konkrétní platformy naleznete na
|
||||
adrese <a href="http://www.postgresql.org/docs/faq/" title="http://www.postgresql.org/docs/faq/">http://www.postgresql.org/docs/faq/</a>.
|
||||
</p>
|
||||
<hr>
|
||||
<h2 align="center">Obecné otázky</h2>
|
||||
<a href="#item1.1">1.1</a>) Co je to PostgreSQL? Jaká je správná výslovnost slova PostgreSQL?<br>
|
||||
<a href="#item1.2">1.2</a>) Kdo řídí vývoj PostgreSQL?<br>
|
||||
<a href="#item1.3">1.3</a>) Pod jakou licencí je PostgreSQL?<br>
|
||||
<a href="#item1.4">1.4</a>) Na kterých platformách lze provozovat PostgreSQL?<br>
|
||||
<a href="#item1.5">1.5</a>) Kde mohu získat PostgreSQL?<br>
|
||||
<a href="#item1.6">1.6</a>) Jaká je poslední verze?<br>
|
||||
<a href="#item1.7">1.7</a>) Kde mohu získat podporu?<br>
|
||||
<a href="#item1.8">1.8</a>) Jak a kam hlásit chyby?<br>
|
||||
<a href="#item1.9">1.9</a>) Kde najdu informace o známých chybách nebo nepodporovaných vlastnostech?<br>
|
||||
<a href="#item1.10">1.10</a>) Jaká je dostupná dokumentace?<br>
|
||||
<a href="#item1.11">1.11</a>) Jak se mohu naučit SQL?<br>
|
||||
<a href="#item1.12">1.12</a>) Jak se mohu připojit k týmu vývojářů?<br>
|
||||
<a href="#item1.13">1.13</a>) Jak je na tom PostgreSQL v porovnání s jinými databázemi?<br>
|
||||
<a href="#item1.14">1.14</a>) Je PostgreSQL připraven na aktuální zavádění letního času v některých zemích?<br>
|
||||
<h2 align="center">Dotazy na klientská rozhraní</h2>
|
||||
<a href="#item2.1">2.1</a>) Která rozhraní jsou použitelná pro PostgreSQL?<br>
|
||||
<a href="#item2.2">2.2</a>) Jaké nástroje lze použít pro PostgreSQL a web?<br>
|
||||
<a href="#item2.3">2.3</a>) Existuje grafické rozhraní pro PostgreSQL?<br>
|
||||
<h2 align="center">Administrativní dotazy</h2>
|
||||
<a href="#item3.1">3.1</a>) Jak nainstalovat PostgreSQL jinam než do /usr/local/pgsql?<br>
|
||||
<a href="#item3.2">3.2</a>) Jak nastavit pravidla pro přístup z jiných stanic?<br>
|
||||
<a href="#item3.3">3.3</a>) Jak vyladit databázi na vyšší výkon?<br>
|
||||
<a href="#item3.4">3.4</a>) Jaké mám ladící prostředky?<br>
|
||||
<a href="#item3.5">3.5</a>) Co znamená "Sorry, too many clients", když se zkouším připojit?<br>
|
||||
<a href="#item3.6">3.6</a>) Proč je nutný dump a obnovení (load) databáze při upgradu PostgreSQL?<br>
|
||||
<a href="#item3.7">3.7</a>) Jaký hardware bych měl používat?<br>
|
||||
<h2 align="center">Provozní dotazy</h2>
|
||||
<a href="#item4.1">4.1</a>) Jak získat pouze první řádek dotazu? Náhodný řádek?<br>
|
||||
<a href="#item4.2">4.2</a>) Jak získám seznam tabulek, indexů, databází, a definovaných uživatelů. Mohu vidět dotazy, které používá psql pro zobrazení těchto informací?<br>
|
||||
<a href="#item4.3">4.3</a>) Jak změnit datový typ sloupce?<br>
|
||||
<a href="#item4.4">4.4</a>) Jaká je maximální velikost řádku, tabulky a databáze?<br>
|
||||
<a href="#item4.5">4.5</a>) Kolik diskového prostoru je potřeba k uložení dat z normálního textového souboru?<br>
|
||||
<a href="#item4.6">4.6</a>) Můj dotaz je pomalý a nepoužívá vytvořené indexy. Proč?<br>
|
||||
<a href="#item4.7">4.7</a>) Jak zjistím, jak se vyhodnocuje můj dotaz?<br>
|
||||
<a href="#item4.8">4.8</a>) Jak použít case-(in)sensitive regulární výraz? Jak použít index pro case insensitive hledání?<br>
|
||||
<a href="#item4.9">4.9</a>) Jak v dotazu detekovat, že položka je NULL? Jak bezpečně spojit dva řetězce, pokud mohou obsahovat NULL? Lze třídit podle toho, jestli je položka NULL nebo ne?<br>
|
||||
<a href="#item4.10">4.10</a>) Jaké jsou rozdíly mezi různými znakovými typy?<br>
|
||||
<a href="#item4.11.1">4.11.1</a>) Jak vytvořit serial/auto-increment položku?<br>
|
||||
<a href="#item4.11.2">4.11.2</a>) Jak získat hodnotu SERIAL po vložení řádku?<br>
|
||||
<a href="#item4.11.3">4.11.3</a>) Nezpůsobí currval() a nextval() problémy ve více uživatelském prostředí?<br>
|
||||
<a href="#item4.11.4">4.11.4</a>) Proč není vygenerované číslo použito při přerušení transakce?Proč vznikají díry v číslování prostřednictvím sekvence nebo typu SERIAL?<br>
|
||||
<a href="#item4.12">4.12</a>) Co to je OID? Co je to CTID?<br>
|
||||
<a href="#item4.13">4.13</a>) Co znamená chybové hlášení "ERROR: Memory exhausted in AllocSetAlloc()"?<br>
|
||||
<a href="#item4.14">4.14</a>) Jak zjistím, kterou verzi PostgreSQL používám?<br>
|
||||
<a href="#item4.15">4.15</a>) Jak vytvořit sloupec, který bude implicitně obsahovat aktuální čas?<br>
|
||||
<a href="#item4.16">4.16</a>) Jak provést vnější spojení (outer join)?<br>
|
||||
<a href="#item4.17">4.17</a>) Jak provést dotaz napříč několika databázemi?<br>
|
||||
<a href="#item4.18">4.18</a>) Může funkce vrátit více řádků nebo sloupců?<br>
|
||||
<a href="#item4.19">4.19</a>) Co je příčinou chyby "relation with OID xxxxx does not exist"?<br>
|
||||
<a href="#item4.20">4.20</a>) Jaké jsou možnosti replikace databází?<br>
|
||||
<a href="#item4.21">4.21</a>) Proč v dotazu nejsou rozpoznány názvy mých tabulek nebo funkcí? Proč jsou velká písmena v názvech automaticky převedena na malá písmena?<br>
|
||||
<hr>
|
||||
<h2 align="center">Obecné otázky</h2>
|
||||
<h3><a name="item1.1">1.1</a>) Co je to PostgreSQL? Jaká je správná výslovnost slova PostgreSQL?</h3>
|
||||
<p>Výslovnost PostgreSQL je <i>Post-Gres-Q-L</i>
|
||||
, nebo zjednodušeně <i>Postgres</i>
|
||||
. V řadě jazyků je slovo PostgreSQL obtížně vyslovitelný, proto se v hovoru často používá zjednodušená forma názvu. Pro ty, kteří by si rádi poslechli výslovnost, je k dispozici audiozáznam v <a href="http://www.postgresql.org/files/postgresql.mp3" title="http://www.postgresql.org/files/postgresql.mp3">MP3 formátu</a>.
|
||||
</p>
|
||||
<p>PostgreSQL je relační databáze s některými objektovými rysy, která má možnosti tradičních
|
||||
komerčních databázových systémů s několika rozšířeními, které lze najít v DBMS
|
||||
systémech příští generace. Používání PostgreSQL není omezené a veškeré zdrojové kódy jsou
|
||||
volně dostupné.
|
||||
</p>
|
||||
<p>Za vývojem PostgreSQL je mezinárodní skupina nezávislých vývojářů navzájem komunikujících
|
||||
prostřednictvím internetu. Tento projekt není řízen žádnou obchodní organizací. Pokud se chcete
|
||||
přidat k projektu, přečtěte si vývojářské FAQ na adrese <a href="http://www.postgresql.org/files/documentation/faqs/FAQ_DEV.html" title="http://www.postgresql.org/files/documentation/faqs/FAQ_DEV.html">http://www.postgresql.org/files/documentation/faqs/FAQ_DEV.html</a> .
|
||||
</p>
|
||||
<h3><a name="item1.2">1.2</a>) Kdo řídí vývoj PostgreSQL?</h3>
|
||||
<p>Pokud budete hledat organizaci řídící vývoj PostgreSQL, budete zklamáni. Nic takového
|
||||
neexistuje. Existují pouze "core" a CVS skupiny uživatelů, ale ty existují více z administrátorských
|
||||
důvodů než z organizačních. Projekt je směrován komunitou vývojářů a uživatelů, ke které se
|
||||
kdokoliv může připojit. Jediné co potřebuje, je přihlásit se do elektronické konference. Více ve
|
||||
<a href="http://www.postgresql.org/docs/faqs.FAQ_DEV.html" title="http://www.postgresql.org/docs/faqs.FAQ_DEV.html">vývojářském FAQ</a>.
|
||||
</p>
|
||||
<h3><a name="item1.3">1.3</a>) Pod jakou licencí je PostgreSQL?</h3>
|
||||
<p>PostgreSQL je předmětem následujících autorských práv:
|
||||
</p>
|
||||
<p>Dílčí Copyright (c) 1996-2009, PostgreSQL Global Development Group<br>
|
||||
Dílčí Copyright (c) 1994-6, Regents of the University of California
|
||||
</p>
|
||||
<p>Uděluje se oprávnění k užití, rozmnožování, provádění úprav a
|
||||
rozšiřování tohoto softwaru a dokumentace k němu, pro jakékoli účely,
|
||||
bez licenčního poplatku a bez písemné licenční smlouvy, za podmínky,
|
||||
že na všech jeho kopiích je uvedeno oznámení o výše uvedených právech,
|
||||
jakož i obsah tohoto a dvou následujících odstavců.
|
||||
</p>
|
||||
<p>THE UNIVERSITY OF CALIFORNIA ("KALIFORNSKÁ UNIVERZITA") NENÍ V ŽÁDNÉM
|
||||
PŘÍPADĚ ODPOVĚDNA ŽÁDNÉ TŘETÍ OSOBĚ ZA PŘÍMOU, NEPŘÍMOU, ZVLÁŠTNÍ,
|
||||
NAHODILOU NEBO VÝSLEDNOU ŠKODU, VČETNĚ UŠLÉHO ZISKU, ZPŮSOBENOU UŽITÍM
|
||||
TOHOTO SOFTWARU A DOKUMENTACE K NĚMU, A TO I V PŘÍPADĚ, ŽE THE
|
||||
UNIVERSITY OF CALIFORNIA BYLA INFORMOVÁNA O MOŽNOSTI VZNIKU TAKOVÉ
|
||||
ŠKODY.
|
||||
</p>
|
||||
<p>THE UNIVERSITY OF CALIFORNIA ZEJMÉNA NEPOSKYTUJE JAKÉKOLI ZÁRUKY, A TO
|
||||
NEJEN ZÁRUKY OBCHODOVATELNOSTI A VHODNOSTI TOHOTO VÝROBKU KE
|
||||
SPECIFICKÝM ÚČELŮM. NÍŽE UVEDENÝ SOFTWARE JE POSKYTNUT "JAK STOJÍ A
|
||||
LEŽÍ" A THE UNIVERSITY OF CALIFORNIA NENÍ POVINNA ZAJISTIT JEHO
|
||||
ÚDRŽBU, PODPORU, AKTUALIZACI, VYLEPŠENÍ NEBO MODIFIKACI.
|
||||
</p>
|
||||
<p>Výše uvedené je BSD licence, běžná licence otevřeného zdroje. Není zde
|
||||
žádné omezení ohledně užití kódu zdroje. Jsme s tím spokojeni a nemáme
|
||||
v úmyslu na této skutečnosti cokoli měnit.
|
||||
</p>
|
||||
<h3><a name="item1.4">1.4</a>) Na kterých platformách lze provozovat PostgreSQL?</h3>
|
||||
<p>Stručně řečeno, PostgreSQL běží na všech moderních unixových systémech. Seznam těch, u kterých proběhlo testování, naleznete v instalačních instrukcích.
|
||||
</p>
|
||||
<p>PostreSQL také běží nativně na všech Microsof Windows systémech odvozených z Microsoft Windows NT jako jsou Windows 2000SP4, WindowsXP a Windows2003. Instalační balíček naleznete na adrese <a href="http://pgfoundry.org/projects/pginstaller" title="http://pgfoundry.org/projects/pginstaller">http://pgfoundry.org/projects/pginstaller</a>. Na starších systémech s ještě MS-DOS jádrem lze spustit PostgreSQL s emulačním programem Cygwin.
|
||||
</p>
|
||||
<p>Dále existuje port pro Novell Netware 6 port na adrese <a href="http://forge.novell.com" title="http://forge.novell.com">http://forge.novell.com</a>, a pro OS/2 verze (eComStation) na adrese <a href="http://hobbes.nmsu.edu/cgi-bin/h-search?sh=1&button=Search&key=postgreSQL&stype=all&sort=type&dir=%2F" title="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>
|
||||
<h3><a name="item1.5">1.5</a>) Kde mohu získat PostgreSQL?</h3>
|
||||
<p>Pomocí webového klienta z adresy <a href="http://www.postgresql.org/ftp/" title="http://www.postgresql.org/ftp/">http://www.postgresql.org/ftp/</a> nebo klienta ftp z adresy <a href="ftp://ftp.postgresql.org/pub/" title="ftp://ftp.postgresql.org/pub/">ftp://ftp.postgresql.org/pub/</a>.
|
||||
</p>
|
||||
<h3><a name="item1.6">1.6</a>) Jaká je poslední verze?</h3>
|
||||
<p>Nejnovější verzí PostgreSQL je verze 8.2.5
|
||||
</p>
|
||||
<p>V plánu je uvolňovat každoročně jednu velkou verzi a každých několik měsíců malé verze.
|
||||
</p>
|
||||
<h3><a name="item1.7">1.7</a>) Kde mohu získat podporu?</h3>
|
||||
<p>Nejčastější forma podpory uživatelům PostgreSQL komunitou je prostřednictvím e-mailů. Na našem webovém serveru naleznete <a href="http://www.postgresql.org/community/lists/" title="http://www.postgresql.org/community/lists/">odkaz</a> na stránky,kde se můžete přihlásit do elektronické konference. Pro začátek jsou doporučené konference general nebo bugs.
|
||||
</p>
|
||||
<p>Další cestou je IRC kanál #postgresql na Freenode (irc.freenode.net). K připojení použijte Unixový příkaz irc -x '#postgresql' "$USER" irc.freenode.net nebo jakékoholiv jiného IRC klienta. V této síti existuje ještě španělská (#postgresql-es) a francouzská (#postgresqlfr) verze. Další PostgreSQL kanál naleznete na EFNet.
|
||||
</p>
|
||||
<p>Seznam společností poskytující komerční podporu naleznete na adrese <a href="http://techdocs.postgresql.org/companies.php" title="http://techdocs.postgresql.org/companies.php">http://techdocs.postgresql.org/companies.php</a>.
|
||||
</p>
|
||||
<h3><a name="item1.8">1.8</a>) Jak a kam hlásit chyby?</h3>
|
||||
<p>Vyplňte formulář na adrese <a href="http://www.postgresql.org/support/submitbug" title="http://www.postgresql.org/support/submitbug">http://www.postgresql.org/support/submitbug</a>. Na našem ftp serveru <a href="ftp://ftp.postgresql.org/pub/" title="ftp://ftp.postgresql.org/pub/">ftp://ftp.postgresql.org/pub/</a> si ověřte, že používáte aktuální verzi PostreSQL.
|
||||
</p>
|
||||
<p>Chyby reportované prostřednictvím chybového formuláře nebo zasláním mailu do PostgreSQL konference obvykle generuje následující odezvu:
|
||||
</p>
|
||||
<ul><li> Nejedná se o chybu, a proč
|
||||
</li>
|
||||
<li> Jedná se o známou chybu, která je již v seznamu úkolů <a href="http://www.postgresql.org/docs/faqs.TODO.html" title="http://www.postgresql.org/docs/faqs.TODO.html">TODO</a>
|
||||
</li>
|
||||
<li> Tato chyba byla opravena v aktuální verzi
|
||||
</li>
|
||||
<li> Tato chyba byla již opravena ve verzi, která zatím nebyla oficiálně uvolněna
|
||||
</li>
|
||||
<li> Požadavek na další doplňující informace:
|
||||
<ul><li> Operační systém
|
||||
</li>
|
||||
<li> Verze PostgreSQL
|
||||
</li>
|
||||
<li> Test reprodukující chybu
|
||||
</li>
|
||||
<li> Ladící informace
|
||||
</li>
|
||||
<li> Backtrace výstup debuggeru
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li> Jedná se o zatím nezjištěnou chybu, pak můžete čekat
|
||||
<ul><li> Záplatu odstraňující chybu, která bude vložena do další velké nebo malé verze
|
||||
</li>
|
||||
<li> Informaci, že se jedná o chybu, kterou nelze okamžitě řešit a je proto přidána do <a href="http://www.postgresql.org/docs/faqs.TODO.html" title="http://www.postgresql.org/docs/faqs.TODO.html">TODO</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
<h3><a name="item1.9">1.9</a>) Kde najdu informace o známých chybách nebo nepodporovaných vlastnostech?</h3>
|
||||
<p>PostgreSQL podporuje rozšířenou podmnožinu SQL:2003. V našem <a href="http://www.postgresql.org/docs/faqs.TODO.html" title="http://www.postgresql.org/docs/faqs.TODO.html">TODO</a> naleznete seznam známých chyb, chybějících vlastností, a plány do budoucna.
|
||||
</p>
|
||||
<p>Odezva na požadavek na novou vlastnost PostgreSQL je obvykle:
|
||||
</p>
|
||||
<ul><li> Požadavek je již v <a href="http://www.postgresql.org/docs/faqs.TODO.html" title="http://www.postgresql.org/docs/faqs.TODO.html">TODO</a>
|
||||
</li>
|
||||
<li> Požadovaná funkce není chtěná protože
|
||||
<ul><li> Duplikuje již existující funkci, která respektuje SQL standard
|
||||
</li>
|
||||
<li> Implementací funkce by se příliš zkomplikoval kód bez relevantního přínosu
|
||||
</li>
|
||||
<li> Funkce by mohla být nebezpečná nebo nespolehlivá
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li> Požadavek je přidán do <a href="http://www.postgresql.org/docs/faqs.TODO.html" title="http://www.postgresql.org/docs/faqs.TODO.html">TODO</a>
|
||||
</li>
|
||||
</ul>
|
||||
<p>PostgreSQL nepožívá systém pro sledování chyb, protože jsme zjistili, že je efektivnější přímo reagovat na maily a udržovat aktuální <a href="http://www.postgresql.org/docs/faqs.TODO.html" title="http://www.postgresql.org/docs/faqs.TODO.html">TODO</a>. V praxi je snaha o co nejrychlejší řešení chyb, a chyby, které by se mohly projevit u mnoha uživatelů jsou opravovány velice rychle. Jediné místo, kde lze dohledat všechny změny, rozšíření a opravy v PostgreSQL je CVS log. Poznámky k verzi "Release notes" nezachycují všechny změny, k němž došlo.
|
||||
</p>
|
||||
<h3><a name="item1.10">1.10</a>) Jaká je dostupná dokumentace?</h3>
|
||||
<p>PostgreSQL obsahuje vynikající dokumentaci zahrnující manuál, manuálové stránky a testovací příklady. Podívejte se do adresáře /doc. Manuál je přístupný online na <a href="http://www.postgresql.org/docs" title="http://www.postgresql.org/docs">http://www.postgresql.org/docs</a>.
|
||||
</p>
|
||||
<p>K dispozici jsou zdarma dvě online knihy na adresách <a href="http://www.postgresql.org/docs/books/awbook.html" title="http://www.postgresql.org/docs/books/awbook.html">http://www.postgresql.org/docs/books/awbook.html</a> a <a href="http://www.commandprompt.com/ppbook/" title="http://www.commandprompt.com/ppbook/">http://www.commandprompt.com/ppbook/</a>. Další literaturu lze zakoupit. Nejpopulárnější je od Kerryho Douglase. Seznam dostupné literatury je na <a href="http://techdocs.postgresql.org/techdocs/bookreviews.php" title="http://techdocs.postgresql.org/techdocs/bookreviews.php">http://techdocs.postgresql.org/techdocs/bookreviews.php</a>. Ještě je kolekce technicky orientovaných článků tematicky spojených s PostgreSQL na adrese <a href="http://techdocs.postgresql.org/" title="http://techdocs.postgresql.org/">http://techdocs.postgresql.org/</a>.
|
||||
</p>
|
||||
<p>Řádkový klient psql má \d příkazy pro zobrazení informací o typech, operátorech, funkcích, agregačních funkcí, atd. Použijte \? pro zobrazení dostupných příkazů.
|
||||
</p>
|
||||
<p>Další dokumentaci najdete na našem webu.
|
||||
</p>
|
||||
<h3><a name="item1.11">1.11</a>) Jak se mohu naučit SQL?</h3>
|
||||
<p>Podívejte se do výše uvedené dokumentace. Další online knihou je "Teach Yourself SQL in 21 Days, Second Edition" na adrese <a href="http://members.tripod.com/er4ebus/sql/index.htm" title="http://members.tripod.com/er4ebus/sql/index.htm">http://members.tripod.com/er4ebus/sql/index.htm</a>. Mnoho našich uživatelů doporučuje knihu The Practical SQL Handbook, Bowman, Judith S., et al., Addison-Wesley. Další The Complete Reference SQL, Groff et al., McGraw-Hill.
|
||||
</p>
|
||||
<p>Další online tutoriály jsou dostupné na adresách:
|
||||
</p>
|
||||
<ul><li> <a href="http://www.intermedia.net/support/sql/sqltut.shtm" title="http://www.intermedia.net/support/sql/sqltut.shtm">http://www.intermedia.net/support/sql/sqltut.shtm</a>
|
||||
</li>
|
||||
<li> <a href="http://sqlcourse.com" title="http://sqlcourse.com">http://sqlcourse.com</a>
|
||||
</li>
|
||||
<li> <a href="http://www.w3schools.com/sql/default.asp" title="http://www.w3schools.com/sql/default.asp">http://www.w3schools.com/sql/default.asp</a>
|
||||
</li>
|
||||
<li> <a href="http://mysite.verizon.net/Graeme_Birchall/id1.html" title="http://mysite.verizon.net/Graeme_Birchall/id1.html">http://mysite.verizon.net/Graeme_Birchall/id1.html</a>
|
||||
</li>
|
||||
</ul>
|
||||
<h3><a name="item1.12">1.12</a>) Jak se mohu připojit k týmu vývojářů?</h3>
|
||||
<p>Prostudujte si <a href="http://www.postgresql.org/docs/faqs.FAQ_DEV.html" title="http://www.postgresql.org/docs/faqs.FAQ_DEV.html">Developer's FAQ</a>.
|
||||
</p>
|
||||
<h3><a name="item1.13">1.13</a>) Jak je na tom PostgreSQL v porovnání s jinými databázemi?</h3>
|
||||
<p>Software můžeme porovnávat z několika různých pohledů: vlastnosti, výkon, spolehlivost, podpora a cena.
|
||||
</p>
|
||||
<script></script>
|
||||
<h4> Vlastnosti </h4>
|
||||
<p>PostgreSQL nabízí většinu funkcí funkcionality velkých komerčních DBMS systémů jako jsou: transakce, vnořené dotazy, spouště, referenční integrita a sofistikovaný systém zamykání. Poskytujeme určité funkce, které ostatní systémy běžně nepodporují. Např. uživatelem definované typy, dědičnost, pravidla (rules), a MVCC architekturu.
|
||||
</p>
|
||||
<h4> Výkon </h4>
|
||||
<p>Výkon PostgreSQL je srovnatelný s ostatními komerčními nebo Open Source databázemi. V některých případech je rychlejší, jindy pomalejší. Náš výkon je obvykle +/-10% vůči ostatním databázím.
|
||||
</p>
|
||||
<h4> Spolehlivost </h4>
|
||||
<p>Uvědomujeme si, že databáze musí být stoprocentně spolehlivá, jinak je nepoužitelná. Snažíme se, aby každá verze byla dobře otestována a obsahovala minimum chyb. Každá verze je minimálně několik měsíců v beta testovacím režimu. Do produkčního režimu se dostane, až když nedochází k dalším změnám nebo opravám. Věříme, že jsem více než srovnatelní s ostatními databázemi v této oblasti.
|
||||
</p>
|
||||
<h4> Podpora </h4>
|
||||
<p>Na našich internetových konferencích se setkává velká skupina vývojářů a uživatelů při řešení vyskytujících se problémů.
|
||||
Naše internetové konference umožňují kontakt velké skupiny vývojářů a uživatelů. Nemůžeme garantovat opravu chyby, ale komerční DBMSs také vždy negarantují řešení problémů. Věříme ale, že díky přímému kontaktu na vývojáře, naši uživatelskou komunitu, manuálům, a dostupným zdrojovým kódům máme lepší podporu než ostatní DBMSs. Pro ty, kteří preferují komerční "per-incident" podporu, existuje společností, kteří ji nabízejí (FAQ sekce 1.7.)
|
||||
</p>
|
||||
<h4> Cena </h4>
|
||||
<p>PostgreSQL lze používat bezplatně (a to i pro komerční použití). Také můžete neomezeně používat náš kód ve svých produktech s výjimkami specifikovanými v naší licenci (přebíráme BSD licenci).
|
||||
</p>
|
||||
<h3><a name="item1.14">1.14</a>) Je PostgreSQL připraven na aktuální zavádění letního času v některých zemích?</h3>
|
||||
<p>Počínaje verzí 8.0.[4+] podporuje PostgreSQL letní čas také pro USA. Podpora letního času (daylight saving time) pro Kanadu a Západní Austrálii je obsažena ve verzích 8.0.[10+] a 8.1.[6+] a všech následujících verzích. Starší verze používaly systémovou databázi časových zón obsahující, kromě jiného, informaci o tom, zda se pro danou časovou zónu rozlišuje mezi letním a zimním časem.
|
||||
</p>
|
||||
<hr>
|
||||
<h2 align="center">Dotazy na klientská rozhraní</h2>
|
||||
<h3><a name="item2.1">2.1</a>) Která rozhraní jsou použitelná pro PostgreSQL?</h3>
|
||||
<p>PostgreSQL se distribuuje pouze s rozhraním pro jazyk C a embedded C. Všechna další rozhraní představují nezávislé projekty, které je třeba stáhnout z internetu samostatně. Osamostatnění těchto projektů umožňuje nezávislost vývojových týmů a možnost vydávat nové verze bez ohledu na vydání nové verze PostgreSQL.
|
||||
</p>
|
||||
<p>Některé programovací jazyky jako je např. PHP obsahují rozhraní pro PostgreSQL. Rozhraní pro jazyky jako je Perl, Tcl, Python a mnoho dalších jsou dostupné na adrese: <a href="http://gborg.postgresql.org" title="http://gborg.postgresql.org">http://gborg.postgresql.org</a> v sekci Drivers/Interfaces.
|
||||
</p>
|
||||
<h3><a name="item2.2">2.2</a>) Jaké nástroje lze použít pro PostgreSQL a web?</h3>
|
||||
<p>Dobrým úvodem do problematiky databází v prostředí webových stránek může být web <a href="http://www.webreview.com" title="http://www.webreview.com">http://www.webreview.com</a>.
|
||||
</p>
|
||||
<p>PHP (<a href="http://www.php.net" title="http://www.php.net">http://www.php.net</a>) je vynikajícím rozhraním pro tvorbu webů.
|
||||
</p>
|
||||
<p>Pro složitější úlohy se často používá Perl a jeho BDB:Pg rozhraní s podporou CGI - CGI.pm nebo mod_perl(u).
|
||||
</p>
|
||||
<h3><a name="item2.3">2.3</a>) Existuje grafické rozhraní pro PostgreSQL?</h3>
|
||||
<p>K dispozici je řada grafických nástrojů podporujících PostgreSQL a to od komerčních nebo open source vývojářů. Podrobný seznam naleznete na adrese
|
||||
<a href="http://www.postgresql.org/docs/techdocs.54" title="http://www.postgresql.org/docs/techdocs.54">http://www.postgresql.org/docs/techdocs.54</a>.
|
||||
</p>
|
||||
<hr>
|
||||
<h2 align="center">Administrativní dotazy</h2>
|
||||
<h3><a name="item3.1">3.1</a>) Jak nainstalovat PostgreSQL jinam než do /usr/local/pgsql?</h3>
|
||||
<p>Při spouštění configure nastavte parametr --prefix
|
||||
</p>
|
||||
<h3><a name="item3.2">3.2</a>) Jak nastavit pravidla pro přístup z jiných stanic?</h3>
|
||||
<p>Ve výchozí konfiguraci, PostgreSQL umožňuje pouze připojení z lokálního uživatele prostřednictvím Unix domain sockets nebo TCP/IP spojení. Bez modifikace listen_addresses v souboru postgresql.conf, a povolení adresy v souboru $PGDATA/pg_hba.conf se nelze připojit k PostgreSQL z ostatních stanic. Změna výše zmíněných parametrů vyžaduje restart databázového serveru.
|
||||
</p>
|
||||
<h3><a name="item3.3">3.3</a>) Jak vyladit databázi na vyšší výkon?</h3>
|
||||
<p>Výkon systému můžete ovlivnit ve třech oblastech:
|
||||
</p>
|
||||
<h4> Změny dotazu </h4>
|
||||
<ul><li> Použitím indexů včetně částečných a funkcionálních
|
||||
</li>
|
||||
<li> Použitím COPY místo opakovaných INSERTů
|
||||
</li>
|
||||
<li> Sloučením mnoha SQL příkazů do jedné transakce snížením režie na commit
|
||||
</li>
|
||||
<li> Používáním CLUSTERU, pokud načítáte větší počet řádek podle indexu
|
||||
</li>
|
||||
<li> Použitím klauzule LIMIT v poddotazech
|
||||
</li>
|
||||
<li> Použitím předpřipravených dotazů
|
||||
</li>
|
||||
<li> Používáním ANALYZE. Tento příkaz aktualizuje statistiky, které se používají při optimalizaci dotazu
|
||||
</li>
|
||||
<li> Pravidelné použití VACUUM nebo používání pg_autovacuum
|
||||
</li>
|
||||
<li> Odstraněním indexů před rozsáhlými změnami v datech
|
||||
</li>
|
||||
</ul>
|
||||
<h4> Konfigurace serveru </h4>
|
||||
<p>Určité parametry v souboru postgresql.conf mají vliv na výkon serveru. Detaily naleznete v příručce Administrátora v Server Run-time Environment/Run-time Configuration. Další komentáře naleznete v <a href="http://www.varlena.com/varlena/GeneralBits/Tidbits/annotated_conf_e.html" title="http://www.varlena.com/varlena/GeneralBits/Tidbits/annotated_conf_e.html">http://www.varlena.com/varlena/GeneralBits/Tidbits/annotated_conf_e.html</a> a <a href="http://www.varlena.com/varlena/GeneralBits/Tidbits/perf.html" title="http://www.varlena.com/varlena/GeneralBits/Tidbits/perf.html">http://www.varlena.com/varlena/GeneralBits/Tidbits/perf.html</a>.
|
||||
</p>
|
||||
<h4> Výběr hardware </h4>
|
||||
<p>Vliv hardware na výkon serveru je popsán v dokumentech <a href="http://candle.pha.pa.us/main/writings/pgsql/hw_performance/index.html" title="http://candle.pha.pa.us/main/writings/pgsql/hw_performance/index.html">http://candle.pha.pa.us/main/writings/pgsql/hw_performance/index.html</a> a <a href="http://www.powerpostgresql.com/PerfList/" title="http://www.powerpostgresql.com/PerfList/">http://www.powerpostgresql.com/PerfList/</a>.
|
||||
</p>
|
||||
<h3><a name="item3.4">3.4</a>) Jaké mám ladící prostředky?</h3>
|
||||
<p>Nastavením log_* proměnných v konfiguraci serveru si vynutíte logování dotazů a procesních statistik, které Vám mohou pomoci při ladění a optimalizaci výkonu.
|
||||
</p>
|
||||
<h3><a name="item3.5">3.5</a>) Co znamená "Sorry, too many clients", když se zkouším připojit?</h3>
|
||||
<p>Překročil jste výchozí limit, který je 100 současně připojených uživatelů. V konfiguraci serveru v postgresql.conf tuto hodnotu můžete zvětšit změnou hodnoty max_connection. Nezapomeňte restartovat server.
|
||||
</p>
|
||||
<h3><a name="item3.6">3.6</a>) Proč je nutný dump a obnovení (load) databáze při upgradu PostgreSQL?</h3>
|
||||
<p>Způsob číslování je popsán v dokumentaci na <a href="http://www.postgresql.org/support/versioning" title="http://www.postgresql.org/support/versioning">http://www.postgresql.org/support/versioning</a>. Instrukce k provedení migrace na vyšší verzi jsou taktéž v dokumentaci na adrese <a href="http://www.postgresql.org/docs/current/static/install-upgrading.html" title="http://www.postgresql.org/docs/current/static/install-upgrading.html">http://www.postgresql.org/docs/current/static/install-upgrading.html</a>.
|
||||
</p>
|
||||
<h3><a name="item3.7">3.7</a>) Jaký hardware bych měl používat?</h3>
|
||||
<p>Jelikož PC jsou většinou kompatibilní, lidé mají tendence věřit, že všechna PC jsou stejně kvalitní. Což není pravda. Paměti ECC, SCSI a kvalitní základní desky jsou mnohem spolehlivější a výkonnější než lacinější hardware. PostgreSQL poběží na většině hardwaru, nicméně pokud je pro Vás spolehlivost a výkon systému důležitá, je dobré věnovat čas nalezení vhodné hardwarové konfigurace. Na našich elektronických konferencích můžete diskutovat o vhodných konfiguracích a značkách.
|
||||
</p>
|
||||
<hr>
|
||||
<h2 align="center">Provozní dotazy</h2>
|
||||
<h3><a name="item4.1">4.1</a>) Jak získat pouze první řádek dotazu? Náhodný řádek?</h3>
|
||||
<p>Pokud potřebujete pouze několik řádků a pokud víte kolik, použijte
|
||||
SELECT LIMIT. Pokud bude možné použít index shodující se s ORDER BY,
|
||||
je možné, že se nebude provádět celý dotaz. Pokud neznáte počet záznamů,
|
||||
použijte kurzor a příkaz FETCH.
|
||||
</p>
|
||||
<p>Pro výběr náhodného řádku použijte příkaz ve tvaru:
|
||||
</p>
|
||||
<pre>
|
||||
SELECT col
|
||||
FROM tab
|
||||
ORDER BY random()
|
||||
LIMIT 1;
|
||||
</pre>
|
||||
<h3><a name="item4.2">4.2</a>) Jak získám seznam tabulek, indexů, databází, a definovaných uživatelů. Mohu vidět dotazy, které používá psql pro zobrazení těchto informací?</h3>
|
||||
<p>V psql příkazem \dt získáte seznam tabulek. Úplný seznam příkazů psql získáte příkazem \?. Alternativně si můžete prostudovat zdrojový kód psql - soubor pgsql/src/bin/psql/describe.c, který obsahuje SQL příkazy, které jsou generovány pro získání výstupu psql "backslash" příkazů. Také můžete nastartovat psql s parametrem -E, který způsobí zobrazení všech SQL příkazů, které se odesílají na server. PostgreSQL také podporuje SQL standard INFORMAČNÍ SCHÉMATA (standardní systémové tabulky). Klasickým dotazem do systémových tabulek získáte požadované informace o struktuře databáze.
|
||||
</p>
|
||||
<p>Systémové tabulky PostgreSQL (mimo rámec SQL standardů) používají prefix pg_. Pro zjištění struktury databáze je můžete použít také, i když preferovány jsou dotazy do informačního schématu.
|
||||
</p>
|
||||
<p>Seznam všech databází získáte příkazem psql -l
|
||||
</p>
|
||||
<p>Další inspiraci najdete v souboru pgsql/src/tutorial/syscat.source. Obsahuje ilustrační SELECTy potřebné k získání informací z systémových tabulek databáze.
|
||||
</p>
|
||||
<h3><a name="item4.3">4.3</a>) Jak změnit datový typ sloupce?</h3>
|
||||
<p>Ve verzích 8.0 a pozdějších jednoduše:
|
||||
</p>
|
||||
<pre>
|
||||
ALTER TABLE ALTER COLUMN TYPE
|
||||
</pre><p>V starších verzích:
|
||||
</p>
|
||||
<pre>
|
||||
BEGIN;
|
||||
ALTER TABLE tab ADD COLUMN new_col new_data_type;
|
||||
UPDATE tab SET new_col = CAST(old_col AS new_data_type);
|
||||
ALTER TABLE tab DROP COLUMN old_col;
|
||||
COMMIT;
|
||||
</pre><p>Po změně spusťte příkaz VACUUM FULL, aby došlo k uvolnění diskového prostoru použitého v tu chvíli již neplatnými záznamy.
|
||||
</p>
|
||||
<h3><a name="item4.4">4.4</a>) Jaká je maximální velikost řádku, tabulky a databáze?</h3>
|
||||
<p>PostgreSQL má tato omezení:
|
||||
</p>
|
||||
<table border="0">
|
||||
<tr><td> Maximální velikost databáze: </td><td> neomezena (existují 32TB db)
|
||||
</td></tr>
|
||||
<tr><td> Maximální velikost tabulky: </td><td> 32 TB
|
||||
</td></tr>
|
||||
<tr><td> Maximální velikost řádky: </td><td> 480GB
|
||||
</td></tr>
|
||||
<tr><td> Maximální velikost položky </td><td> 1 GB
|
||||
</td></tr>
|
||||
<tr><td> Maximální počet řádků v tabulce: </td><td> neomezeno
|
||||
</td></tr>
|
||||
<tr><td> Maximální počet sloupců v tabulce: </td><td> 250-1600 podle typů
|
||||
</td></tr>
|
||||
<tr><td> Maximální počet indexů na tabulce: </td><td> neomezeno
|
||||
</td></tr>
|
||||
</table>
|
||||
<p>Ve skutečnosti nic není neomezeno, limitem bývá vždy dostupná disková
|
||||
paměť nebo velikost operační paměti. Pokud máte některou z těchto
|
||||
hodnot neobvykle velkou, může dojít ke snížení výkonu.
|
||||
</p>
|
||||
<p>Maximální velikost tabulky je 32 TB a nevyžaduje podporu velkých
|
||||
souborů operačním systémem. Velké tabulky se ukládají do několika 1 GB
|
||||
souborů takže limity souborového systému nejsou podstatné.
|
||||
</p>
|
||||
<p>Maximální velikost tabulky a maximální počet sloupců můžeme
|
||||
zečtyřnásobit nastavením velikosti bloku na 32K.
|
||||
</p>
|
||||
<p>Indexy jsou povolené pouze na sloupcích jejichž délka je menší než 2000 znaků. Pokud tuto délku překročíme a index potřebujeme pro zajištění jednoznačnosti, je vhodnější použít funkcionální index nad MD5 funkcí nebo fulltextový index.
|
||||
</p>
|
||||
<h3><a name="item4.5">4.5</a>) Kolik diskového prostoru je potřeba k uložení dat z normálního textového souboru?</h3>
|
||||
<p>PostgreSQL vyžaduje až pětinásobek diskového prostoru k uložení dat z
|
||||
textového souboru.
|
||||
</p>
|
||||
<p>Například, uvažujme soubor se 100 tisíci řádky obsahující na každé
|
||||
řádce celé číslo a textový popis. Text je v průměrně dvacet bytů
|
||||
dlouhý. Textový soubor bude 2.8 MB dlouhý. Velikost databáze
|
||||
obsahující odpovídající data bude zhruba 5.2 MB.
|
||||
</p>
|
||||
<pre>
|
||||
24 bytů: hlavička řádku (přibližně)
|
||||
24 bytů: jedna celočíselná položka a jedna textová
|
||||
+ 4 byty: ukazatel na stránku k entici
|
||||
------------------------------------------------------
|
||||
52 bytů na řádek
|
||||
</pre><p>Velikost datové stránky PostgreSQL je 8192 bytů (8KB)
|
||||
</p>
|
||||
<pre>
|
||||
8192 bytů na stránce
|
||||
---------------------- = 158 řádek na stránku
|
||||
52 bytů za řádek
|
||||
|
||||
100000 řádek
|
||||
----------------------- = 633 stránek (zaokrouhleno nahoru)
|
||||
158 řádek na stránce
|
||||
|
||||
633 datových stránek * 8192 bytů na každou stránku = 5,185,536 bytů (5.2 MB)
|
||||
</pre><p>Indexy nemají tak velkou režii, ale mohou být také velké, protože
|
||||
obsahují indexovaná data.
|
||||
</p>
|
||||
<p>Hodnoty NULL jsou uloženy v bitmapách, takže zabírají jen velmi málo
|
||||
diskového prostoru.
|
||||
</p>
|
||||
<h3><a name="item4.6">4.6</a>) Můj dotaz je pomalý a nepoužívá vytvořené indexy. Proč?</h3>
|
||||
<p>Každý dotaz nemusí nutně použít existující indexy. Index se použije
|
||||
tehdy, když je tabulka větší než určitá minimální velikost, a dotaz
|
||||
vybírá pouze procentuálně malou část řádků tabulky. To proto, že
|
||||
náhodný přístup k disku daný čtením indexu může být pomalejší než
|
||||
lineární čtení tabulky nebo sekvenční čtení.
|
||||
</p>
|
||||
<p>PostgreSQL rozhoduje o použití indexů na základě statistiky přístupů k
|
||||
tabulce. Tyto statistiky se shromažďují příkazy VACUUM ANALYZE nebo
|
||||
ANALYZE. Díky statistikám má optimizer informaci o počtu řádek v
|
||||
tabulce a může lépe rozhodnout o použití indexů. Statistiky se uplatní
|
||||
při určení optimálního pořadí a metody spojení tabulek. Statistiky by
|
||||
se měli aktualizovat opakovaně, tak jak se mění obsah tabulek.
|
||||
</p>
|
||||
<p>Indexy nejsou obyčejně použity pro setřídění nebo spojení tabulek.
|
||||
Sekvenční zpracování následované explicitním tříděním je obyčejně
|
||||
rychlejší než použití indexu na velké tabulce.
|
||||
</p>
|
||||
<p>Jinak je tomu v případě použití LIMIT a ORDER BY, při kterém se
|
||||
většinou index použije, jelikož je výsledkem pouze malá část tabulky.
|
||||
</p>
|
||||
<p>Pokud si myslíte, že optimizer mylně zvolil sekvenční prohledávání
|
||||
tabulky, použijte příkaz SET enable_seqscan TO 'off' a zkuste zda je
|
||||
prohledávání s indexem rychlejší.
|
||||
</p>
|
||||
<p>Při vyhledávání na základě vzoru jako je např. operátor LIKE nebo ~ se
|
||||
indexy použijí pouze za určitých skutečností:
|
||||
</p>
|
||||
<ul><li> začátek hledaného vzoru musí být ukotven k začátku, tj.
|
||||
<ul><li> vzor LIKE nesmí začínat %
|
||||
</li>
|
||||
<li> ~ regulární výraz musí začínat ^
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li> vzor nesmí začínat intervalem, např. [a-e]
|
||||
</li>
|
||||
<li> vyhledávaní, které není Case sensitiv jako je ILIKE nebo ~* nepoužívá indexy. Můžete ale použít funkcionální indexy, které jsou popsány v sekci 4.8
|
||||
</li>
|
||||
<li> při inicializaci databáze (initdb) musí být použito C locale nebo vytvořte speciální text_pattern_index, který umožní, při respektování zmíněných podmínek použití indexu operací LIKE. Pro vyhledávání celých slov je možné a výhodné použít fulltext.
|
||||
</li>
|
||||
</ul>
|
||||
<h3><a name="item4.7">4.7</a>) Jak zjistím, jak se vyhodnocuje můj dotaz?</h3>
|
||||
<p>Podívejte se do nápovědy k příkazu EXPLAIN.
|
||||
</p>
|
||||
<h3><a name="item4.8">4.8</a>) Jak použít case-(in)sensitive regulární výraz? Jak použít index pro case insensitive hledání?</h3>
|
||||
<p>Vyhledávání prostřednictvím regulárních vzorů zajišťuje operátor ~, který je case-sensitive. Jeho case-insensitive varianta je operátor ~*. Case-insensitive variací operátoru LIKE je operátor ILIKE.
|
||||
</p>
|
||||
<p>Case-insensitive vyhledání se řeší:
|
||||
</p>
|
||||
<pre>
|
||||
SELECT *
|
||||
FROM tab
|
||||
WHERE lower(col) = 'abc';
|
||||
</pre><p>Tento dotaz nepoužije standardní index. Musíte použít tzv. funkcionální index:
|
||||
</p>
|
||||
<pre>
|
||||
CREATE INDEX tabindex ON tab (lower(col));
|
||||
</pre><p>Pokud index vytvoříme jako unikátní, tak můžeme ukládat řetězce obsahující malá i velká písmena, ale nikoliv řetězce, které se od sebe odlišují jen v malých a velkých písmenech. K zajištění zápisu řetězce obsahující pouze malá nebo pouze velká písmena použijte CHECK kontroly nebo triggery.
|
||||
</p>
|
||||
<h3><a name="item4.9">4.9</a>) Jak v dotazu detekovat, že položka je NULL? Jak bezpečně spojit dva řetězce, pokud mohou obsahovat NULL? Lze třídit podle toho, jestli je položka NULL nebo ne?</h3>
|
||||
<p>Pokud chcete testovat hodnotu NULL použijte operátor IS:
|
||||
</p>
|
||||
<pre>
|
||||
SELECT *
|
||||
FROM tab
|
||||
WHERE col IS NULL;
|
||||
</pre><p>K spojení řetězců, které mohou obsahovat hodnotu NULL, používejte funkci COALESCE(), např.:
|
||||
</p>
|
||||
<pre>
|
||||
SELECT COALESCE(col1, '') || COALESCE(col2, '')
|
||||
FROM tab
|
||||
</pre><p>Pokud chcete třídit podle hodnoty NULL, použijte výraz IS NULL nebo IS NOT NULL v klauzuli ORDER. Hodnota pravda má přednost před hodnotou false a tedy pokud použijete:
|
||||
</p>
|
||||
<pre>
|
||||
SELECT *
|
||||
FROM tab
|
||||
ORDER BY (col IS NOT NULL)
|
||||
</pre><p>tak záznamy s NULL budou na začátku setříděných dat.
|
||||
</p>
|
||||
<h3><a name="item4.10">4.10</a>) Jaké jsou rozdíly mezi různými znakovými typy?</h3>
|
||||
<table border="0">
|
||||
<tr><td>Typ </td><td> Interní název </td><td> Poznámky
|
||||
</td></tr>
|
||||
<tr><td> VARCHAR(n)</td><td> varchar</td><td> n určuje maximální délku
|
||||
</td></tr>
|
||||
<tr><td> CHAR(n)</td><td> bpchar </td><td> řetězec je do dané délky rozšířen mezerami
|
||||
</td></tr>
|
||||
<tr><td> TEXT</td><td> text</td><td> bez omezení délky
|
||||
</td></tr>
|
||||
<tr><td> BYTEA</td><td> bytea</td><td> pole bytů nespecifikované délky
|
||||
</td></tr>
|
||||
<tr><td> "char"</td><td> char</td><td> jeden znak
|
||||
</td></tr>
|
||||
</table>
|
||||
<p>Na interní názvy můžete narazit v systémovém katalogu nebo v některých chybových hlášeních.
|
||||
</p>
|
||||
<p>Čtyři první typy jsou tzv. varlena typy (první čtyři byty na disku jsou obsahují délku, ostatní obsahují vlastní data). Skutečně obsazený prostor je tedy o něco málo větší než deklarovaná velikost. Na druhou stranu, delší řetězce jsou komprimovány, takže obsazený prostor na disku může být menší než se čeká.
|
||||
</p>
|
||||
<p>VARCHAR(n) je vhodný pro ukládání různě dlouhých řetězců u kterých známe délkové omezení, TEXT pro řetězce bez omezení délky (maximum je jeden gigabyte).
|
||||
</p>
|
||||
<p>CHAR(n) se používá pro uložení stejně dlouhých řetězců. CHAR(n) doplní mezerami na specifikovanou délku, VARCHAR(n) hodnoty se ukládají tak jak jsou. BYTEA je pro ukládání binárních dat - non ASCII hodnot. Všechny zmíněné typy mají podobné výkonové charakteristiky.
|
||||
</p>
|
||||
<h3><a name="item4.11.1">4.11.1</a>) Jak vytvořit serial/auto-increment položku?</h3>
|
||||
<p>V PostgreSQL můžete použít datový typ SERIAL. Jeho použitím se automaticky vytvoří sekvence.
|
||||
Například:
|
||||
</p>
|
||||
<pre>
|
||||
CREATE TABLE person (
|
||||
id SERIAL,
|
||||
name TEXT
|
||||
);
|
||||
</pre><p>je automaticky transformováno na:
|
||||
</p>
|
||||
<pre>
|
||||
CREATE SEQUENCE person_id_seq;
|
||||
CREATE TABLE person (
|
||||
id INT4 NOT NULL DEFAULT nextval('person_id_seq'),
|
||||
name TEXT
|
||||
);
|
||||
</pre><p>Podrobnější informace najdete v manuálu v popisu příkazu create_sequence.
|
||||
</p>
|
||||
<h3><a name="item4.11.2">4.11.2</a>) Jak získat hodnotu SERIAL po vložení řádku?</h3>
|
||||
<p>Nejjednodušším způsob, jak získat vygenerovanou hodnotu typu SERIAL, je využít klauzuli RETURNING. Pro tabulku z 4.11.1 vypadá takto:
|
||||
</p>
|
||||
<pre>
|
||||
INSERT INTO person (name) VALUES ('Blaise Pascal') RETURNING id;
|
||||
</pre><p>Také můžete použít funkci nextvall() a její výsledek použít v příkazu INSERT, nebo zavolat currval() po provedení příkazu INSERT.
|
||||
</p>
|
||||
<h3><a name="item4.11.3">4.11.3</a>) Nezpůsobí currval() a nextval() problémy ve více uživatelském prostředí?</h3>
|
||||
<p>Ne, currval vrací vždy hodnotu, která byla vygenerována pro vás.
|
||||
</p>
|
||||
<h3><a name="item4.11.4">4.11.4</a>) Proč není vygenerované číslo použito při přerušení transakce?Proč vznikají díry v číslování prostřednictvím sekvence nebo typu SERIAL?</h3>
|
||||
<p>Poté co sekvence vygeneruje nové číslo, tak se nedochází k zamčení sekvence a nečeká se na úspěšné nebo neúspěšné dokončení transakce. Odvoláním transakce, která si vyžádala čísla sekvence se tato čísla nenávratně ztratí.
|
||||
</p>
|
||||
<h3><a name="item4.12">4.12</a>) Co to je OID? Co je to CTID?</h3>
|
||||
<p>V případě, že tabulku nezaložíme s atributem WITHOUT OIDS, tak má každý řádek unikátní identifikační číslo OID. Toto číslo je 4 bajtové celé číslo, které je jedinečné v celé instalaci. Přeteče po 4 miliardách řádků. PostgreSQL používá OIDs jako interní linky v interních systémových tabulkách.
|
||||
</p>
|
||||
<p>K získání unikátního čísla v nesystémových tabulkách je vhodnější použití typu SERIAL než OID, jelikož sekvence SERIAL se používá pouze pro jednu tabulku a je tudíž méně náchylná na přetečení. Pokud byste se toho obávali, použijte typ SERIAL8.
|
||||
</p>
|
||||
<p>CTID se používá k identifikaci konkrétního fyzického řádku. CTID se mění pokud je řádek modifikován nebo znovu načten. Používají ho indexy jako adresaci fyzických řádků.
|
||||
</p>
|
||||
<h3><a name="item4.13">4.13</a>) Co znamená chybové hlášení "ERROR: Memory exhausted in AllocSetAlloc()"?</h3>
|
||||
<p>Pravděpodobně jste vyčerpal dostupnou virtuální paměť, nebo tvůj kernel
|
||||
má příliš nízké limity u určitých zdrojů. Před startem PostgreSQL vyzkoušejte:
|
||||
</p>
|
||||
<pre>
|
||||
ulimit -d 262144
|
||||
limit datasize 256m
|
||||
</pre><p>Možná, že se projde pouze jeden příkaz - záleží to na vašem shellu.
|
||||
Měl by zvednout limity datových segmentů vašich procesů na dostatečně velkou
|
||||
hodnotu a snad umožnit dokončení dotazu. Změna limitů se bude aplikovat
|
||||
pouze na aktuální proces a na všechny nově vytvořené procesy. Jestliže máte
|
||||
problém s SQL klientem, protože vám server vrátil příliš dat, zkuste to
|
||||
před startem klienta.
|
||||
</p>
|
||||
<h3><a name="item4.14">4.14</a>) Jak zjistím, kterou verzi PostgreSQL používám?</h3>
|
||||
<p>V psql napište:
|
||||
</p>
|
||||
<pre>
|
||||
SELECT version();
|
||||
</pre>
|
||||
<h3><a name="item4.15">4.15</a>) Jak vytvořit sloupec, který bude implicitně obsahovat aktuální čas?</h3>
|
||||
<p>Použijte CURRENT_TIMESTAMP:
|
||||
</p>
|
||||
<pre>
|
||||
CREATE TABLE test (x int, modtime TIMESTAMP DEFAULT CURRENT_TIMESTAMP );
|
||||
</pre>
|
||||
<h3><a name="item4.16">4.16</a>) Jak provést vnější spojení (outer join)?</h3>
|
||||
<p>PostgreSQL podporuje standardní SQL syntaxi pro vnější spojení. Zde jsou
|
||||
dva příklady:
|
||||
</p>
|
||||
<pre>
|
||||
SELECT *
|
||||
FROM t1 LEFT OUTER JOIN t2 ON (t1.col = t2.col);
|
||||
</pre><p>nebo
|
||||
</p>
|
||||
<pre>
|
||||
SELECT *
|
||||
FROM t1 LEFT OUTER JOIN t2 USING (col);
|
||||
</pre><p>Tyto identické dotazy spojí sloupec t1.col k sloupci t2.col, a ještě vrátí všechny nespárované řádky t2 (ty, které nedohledá v t2). RIGHT JOIN by připojil všechny nespárované řádky z t2. FULL JOIN vrátí všechny spárované řádky i všechny zbývající řádky z obou tabulek. Klíčové slovo OUTER je volitelné. Běžná operace JOIN se také označuje jako vnitřní spojení.
|
||||
</p>
|
||||
<h3><a name="item4.17">4.17</a>) Jak provést dotaz napříč několika databázemi?</h3>
|
||||
<p>Neexistuje žádný způsob, jak se v dotazu odkazovat na tabulky z jiné než aktuální databáze. A to protože má systémové tabulky uložené nezávisle v každé databázi a není tak úplně zřejmé, jak by se dotaz provedený napříč databázemi měl chovat.
|
||||
</p>
|
||||
<p>Jeden z doplňků dblink umožňuje dotaz nad několika tabulkami pomocí funkcí. Druhý způsob je simultální připojení klienta ke všem relevantním databázím a sloučení výsledku na straně klienta.
|
||||
</p>
|
||||
<h3><a name="item4.18">4.18</a>) Může funkce vrátit více řádků nebo sloupců?</h3>
|
||||
<p>Jde to jednoduše pomocí set-returning funkce. Více na
|
||||
<a href="http://www.postgresql.org/docs/techdocs.17" title="http://www.postgresql.org/docs/techdocs.17">http://www.postgresql.org/docs/techdocs.17</a>.
|
||||
</p>
|
||||
<h3><a name="item4.19">4.19</a>) Co je příčinou chyby "relation with OID xxxxx does not exist"?</h3>
|
||||
<p>Nechtěným vedlejším efektem kešování SQL dotazů v PL/pgSQL funkci je problém s neplatnými odkazy na dočasné tabulky, které byly od prvního spuštění funkce zrušeny a znovu vytvořeny před dalším spuštěním PL/pgSQL funkce. Řešením je použít příkaz EXECUTE a to proto, že prováděcí plán SQL příkazu spouštěného příkazem EXECUTE se vytváří pokaždé znovu (neukládá se do cache).
|
||||
</p>
|
||||
<p>Tento problém by se neměl vyskytovat u PostgreSQL verze 8.3 a vyšších verzích.
|
||||
</p>
|
||||
<h3><a name="item4.20">4.20</a>) Jaké jsou možnosti replikace databází?</h3>
|
||||
<p>Replikaci databáze umožňuje několik technoligií. Každá má určité výhody a nevýhody.
|
||||
</p>
|
||||
<p>Master/Slave replikaci podporuje jeden hlavní server, který přijímá požadavky na zápis a čtení, a několik podřízených serverů, které umožňují pouze čtení (SELECT). Nejrozšířenějším volně dostupným řešením tohoto typu je <a href="http://main.slony.info/" title="http://main.slony.info/">Slony-I</a>.
|
||||
</p>
|
||||
<p>Replikace typu Multi-master podporuje existenci několika serverů s povoleným zápisem na více replikovaných serverech. Toto řešení zvyšuje zátěž serverů, protože je nutná synchronizace serverů. Nejrozšířenějším volně dostupným řešením je <a href="http://pgfoundry.org/projects/pgcluster/" title="http://pgfoundry.org/projects/pgcluster/">PGCluster</a>.
|
||||
</p>
|
||||
<p>Ještě existuje několik komerčních a hardware řešení replikací podporujících různé modely replikace.
|
||||
</p>
|
||||
<h3><a name="item4.21">4.21</a>) Proč v dotazu nejsou rozpoznány názvy mých tabulek nebo funkcí? Proč jsou velká písmena v názvech automaticky převedena na malá písmena?</h3>
|
||||
<p>Nejčastějším důvodem nerozpoznání názvu objektu bylo použití vložení názvu sloupce nebo tabulky mezi uvozovky při zakládání tabulky. Pokud se název zapíše mezi uvozovky, pak je case sensitive, a v důsledku toho je nutné názvy těchto sloupců nebo tabulek v SQL příkazech také vkládat mezi uvozovky (pokud obsahují velká písmena). Některé programy, jako je například pgAdmin, automaticky používají uvozovky. Takže pokud chcete, aby systém identifikoval identifikátor, musíte:
|
||||
</p>
|
||||
<ul><li> nepoužívat uvozovky v příkazu CREATE TABLE
|
||||
</li>
|
||||
<li> v identifikátoru použít pouze malá písmena
|
||||
</li>
|
||||
<li> v dotazech vkládat identifikátory do uvozovek
|
||||
</li>
|
||||
</ul>
|
||||
</body>
|
||||
</htm>
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -1,4 +0,0 @@
|
||||
The FAQ* files in this directory are the master versions, and the
|
||||
../../FAQ* text files are created using lynx:
|
||||
|
||||
lynx -force_html -dont_wrap_pre -dump -hiddenlinks=ignore -nolist FAQ*
|
Reference in New Issue
Block a user