head	1.32;
access;
symbols
	REL7_4_29:1.15.2.2
	REL8_0_25:1.23.4.5
	REL8_1_21:1.28.2.2
	REL8_2_17:1.30
	REL8_3_11:1.30
	REL7_4_28:1.15.2.2
	REL8_0_24:1.23.4.5
	REL8_1_20:1.28.2.2
	REL8_2_16:1.30
	REL8_3_10:1.30
	REL7_4_27:1.15.2.2
	REL8_0_23:1.23.4.5
	REL8_1_19:1.28.2.2
	REL8_2_15:1.30
	REL8_3_9:1.30
	REL7_4_26:1.15.2.2
	REL8_0_22:1.23.4.5
	REL8_1_18:1.28.2.2
	REL8_2_14:1.30
	REL8_3_8:1.30
	REL8_4_STABLE:1.31.0.2
	REL8_4_0:1.31
	REL8_4_RC2:1.31
	REL8_4_RC1:1.31
	REL8_4_BETA2:1.31
	REL8_4_BETA1:1.31
	REL7_4_25:1.15.2.2
	REL8_0_21:1.23.4.5
	REL8_1_17:1.28.2.2
	REL8_2_13:1.30
	REL8_3_7:1.30
	REL7_4_24:1.15.2.2
	REL8_0_20:1.23.4.5
	REL8_1_16:1.28.2.2
	REL8_2_12:1.30
	REL8_3_6:1.30
	REL7_4_23:1.15.2.2
	REL8_0_19:1.23.4.5
	REL8_1_15:1.28.2.2
	REL8_2_11:1.30
	REL8_3_5:1.30
	REL7_4_22:1.15.2.2
	REL8_0_18:1.23.4.5
	REL8_1_14:1.28.2.2
	REL8_2_10:1.30
	REL8_3_4:1.30
	REL7_4_21:1.15.2.2
	REL8_0_17:1.23.4.5
	REL8_1_13:1.28.2.2
	REL8_2_9:1.30
	REL8_3_3:1.30
	REL7_4_20:1.15.2.2
	REL8_0_16:1.23.4.5
	REL8_1_12:1.28.2.2
	REL8_2_8:1.30
	REL8_3_2:1.30
	REL8_2_7:1.30
	REL8_3_1:1.30
	REL8_3_STABLE:1.30.0.4
	REL8_3_0:1.30
	REL8_3_RC2:1.30
	REL7_3_21:1.7.2.4
	REL7_4_19:1.15.2.2
	REL8_0_15:1.23.4.5
	REL8_1_11:1.28.2.2
	REL8_2_6:1.30
	REL8_3_RC1:1.30
	REL8_3_BETA4:1.30
	REL8_3_BETA3:1.30
	REL8_3_BETA2:1.30
	REL8_3_BETA1:1.30
	REL7_3_20:1.7.2.4
	REL7_4_18:1.15.2.2
	REL8_0_14:1.23.4.5
	REL8_1_10:1.28.2.2
	REL8_2_5:1.30
	REL7_3_19:1.7.2.4
	REL7_4_17:1.15.2.2
	REL8_0_13:1.23.4.5
	REL8_1_9:1.28.2.2
	REL8_2_4:1.30
	REL8_0_12:1.23.4.5
	REL8_1_8:1.28.2.2
	REL8_2_3:1.30
	REL7_3_18:1.7.2.4
	REL7_4_16:1.15.2.2
	REL8_0_11:1.23.4.5
	REL8_1_7:1.28.2.2
	REL8_2_2:1.30
	REL8_0_10:1.23.4.5
	REL8_1_6:1.28.2.2
	REL8_2_1:1.30
	REL7_4_15:1.15.2.2
	REL7_3_17:1.7.2.4
	REL8_2_STABLE:1.30.0.2
	REL8_2_0:1.30
	REL8_2_RC1:1.30
	REL8_2_BETA3:1.30
	REL8_2_BETA2:1.30
	REL8_1_5:1.28.2.2
	REL8_0_9:1.23.4.5
	REL7_4_14:1.15.2.2
	REL7_3_16:1.7.2.4
	REL8_2_BETA1:1.30
	REL7_3_15:1.7.2.4
	REL7_4_13:1.15.2.2
	REL8_0_8:1.23.4.5
	REL8_1_4:1.28.2.1
	REL7_3_14:1.7.2.4
	REL7_4_12:1.15.2.2
	REL8_0_7:1.23.4.5
	REL8_1_3:1.28
	REL7_3_13:1.7.2.4
	REL7_4_11:1.15.2.2
	REL8_0_6:1.23.4.5
	REL8_1_2:1.28
	REL7_3_12:1.7.2.4
	REL7_4_10:1.15.2.2
	REL8_0_5:1.23.4.5
	REL8_1_1:1.28
	REL8_1_STABLE:1.28.0.2
	REL8_1_0:1.28
	REL8_1_0RC1:1.28
	REL8_1_0BETA4:1.28
	REL8_1_0BETA3:1.28
	REL7_3_11:1.7.2.4
	REL7_4_9:1.15.2.2
	REL8_0_4:1.23.4.5
	REL8_1_0BETA2:1.27
	REL8_1_0BETA1:1.27
	REL7_2_8:1.1.2.1
	REL7_3_10:1.7.2.4
	REL7_4_8:1.15.2.2
	REL8_0_3:1.23.4.3
	REL8_0_2:1.23.4.3
	REL7_2_7:1.1.2.1
	REL7_3_9:1.7.2.4
	REL7_4_7:1.15.2.2
	REL8_0_1:1.23
	REL8_0_STABLE:1.23.0.4
	REL8_0_0:1.23.0.2
	REL8_0_0RC5:1.23
	REL8_0_0RC4:1.23
	REL8_0_0RC3:1.22
	REL8_0_0RC2:1.22
	REL8_0_0RC1:1.22
	REL8_0_0BETA5:1.22
	REL8_0_0BETA4:1.21
	REL7_4_6:1.15.2.2
	REL7_3_8:1.7.2.4
	REL7_2_6:1.1.2.1
	REL8_0_0BETA3:1.21
	REL8_0_0BETA2:1.21
	REL7_2_5:1.1.2.1
	REL7_4_5:1.15.2.2
	REL7_3_7:1.7.2.4
	REL7_4_4:1.15.2.2
	REL8_0_0BETA1:1.21
	REL7_4_3:1.15.2.2
	REL7_4_2:1.15.2.2
	REL7_3_6:1.7.2.4
	REL7_4_1:1.15.2.1
	REL7_3_5:1.7.2.4
	REL7_4:1.15
	REL7_4_RC2:1.15
	REL7_4_STABLE:1.15.0.2
	REL7_4_RC1:1.15
	REL7_4_BETA5:1.15
	REL7_4_BETA4:1.14
	REL7_4_BETA3:1.14
	REL7_4_BETA2:1.14
	WIN32_DEV:1.14.0.2
	REL7_4_BETA1:1.14
	REL7_3_4:1.7.2.4
	REL7_3_2:1.7.2.2
	REL7_2_4:1.1.2.1
	REL7_3_STABLE:1.7.0.2
	REL7_2_3:1.1.2.1
	REL7_2_STABLE:1.1.0.2;
locks; strict;
comment	@# @;


1.32
date	2009.07.21.19.20.32;	author petere;	state dead;
branches;
next	1.31;

1.31
date	2008.08.16.01.14.49;	author momjian;	state Exp;
branches
	1.31.2.1;
next	1.30;

1.30
date	2006.06.28.13.10.18;	author momjian;	state Exp;
branches;
next	1.29;

1.29
date	2006.04.11.15.48.11;	author momjian;	state Exp;
branches;
next	1.28;

1.28
date	2005.09.28.11.32.49;	author momjian;	state Exp;
branches
	1.28.2.1;
next	1.27;

1.27
date	2005.06.03.18.17.07;	author momjian;	state Exp;
branches;
next	1.26;

1.26
date	2005.03.11.21.46.53;	author momjian;	state Exp;
branches;
next	1.25;

1.25
date	2005.02.21.17.33.53;	author momjian;	state Exp;
branches;
next	1.24;

1.24
date	2005.02.11.04.53.50;	author momjian;	state Exp;
branches;
next	1.23;

1.23
date	2005.01.04.03.47.03;	author momjian;	state Exp;
branches
	1.23.4.1;
next	1.22;

1.22
date	2004.10.26.17.28.27;	author momjian;	state Exp;
branches;
next	1.21;

1.21
date	2004.05.24.15.14.51;	author momjian;	state Exp;
branches;
next	1.20;

1.20
date	2004.05.18.13.18.20;	author momjian;	state Exp;
branches;
next	1.19;

1.19
date	2004.04.12.03.22.20;	author momjian;	state Exp;
branches;
next	1.18;

1.18
date	2004.03.12.13.51.18;	author momjian;	state Exp;
branches;
next	1.17;

1.17
date	2004.01.08.16.01.58;	author momjian;	state Exp;
branches;
next	1.16;

1.16
date	2003.11.28.20.20.33;	author momjian;	state Exp;
branches;
next	1.15;

1.15
date	2003.10.10.02.52.11;	author momjian;	state Exp;
branches
	1.15.2.1;
next	1.14;

1.14
date	2003.06.23.16.58.21;	author momjian;	state Exp;
branches;
next	1.13;

1.13
date	2003.06.02.16.39.06;	author momjian;	state Exp;
branches;
next	1.12;

1.12
date	2003.04.01.03.10.44;	author momjian;	state Exp;
branches;
next	1.11;

1.11
date	2003.03.07.05.46.50;	author momjian;	state Exp;
branches;
next	1.10;

1.10
date	2003.02.14.14.05.00;	author momjian;	state Exp;
branches;
next	1.9;

1.9
date	2002.12.18.20.38.48;	author momjian;	state Exp;
branches;
next	1.8;

1.8
date	2002.11.10.19.48.41;	author momjian;	state Exp;
branches;
next	1.7;

1.7
date	2002.10.11.17.45.40;	author momjian;	state Exp;
branches
	1.7.2.1;
next	1.6;

1.6
date	2002.08.23.02.53.20;	author momjian;	state Exp;
branches;
next	1.5;

1.5
date	2002.06.20.04.34.31;	author momjian;	state Exp;
branches;
next	1.4;

1.4
date	2002.06.08.04.23.45;	author momjian;	state Exp;
branches;
next	1.3;

1.3
date	2002.04.12.09.17.09;	author momjian;	state Exp;
branches;
next	1.2;

1.2
date	2002.03.05.06.20.50;	author momjian;	state Exp;
branches;
next	1.1;

1.1
date	2002.02.22.12.48.55;	author momjian;	state Exp;
branches
	1.1.2.1;
next	;

1.1.2.1
date	2002.02.22.13.02.58;	author momjian;	state Exp;
branches;
next	;

1.7.2.1
date	2002.11.10.19.49.24;	author momjian;	state Exp;
branches;
next	1.7.2.2;

1.7.2.2
date	2002.12.18.20.39.31;	author momjian;	state Exp;
branches;
next	1.7.2.3;

1.7.2.3
date	2003.02.14.14.05.52;	author momjian;	state Exp;
branches;
next	1.7.2.4;

1.7.2.4
date	2003.07.23.04.13.11;	author momjian;	state Exp;
branches;
next	;

1.15.2.1
date	2003.11.28.20.20.45;	author momjian;	state Exp;
branches;
next	1.15.2.2;

1.15.2.2
date	2004.03.05.19.57.20;	author momjian;	state Exp;
branches;
next	;

1.23.4.1
date	2005.02.11.04.54.03;	author momjian;	state Exp;
branches;
next	1.23.4.2;

1.23.4.2
date	2005.02.21.17.34.09;	author momjian;	state Exp;
branches;
next	1.23.4.3;

1.23.4.3
date	2005.03.11.21.47.37;	author momjian;	state Exp;
branches;
next	1.23.4.4;

1.23.4.4
date	2005.06.03.18.17.53;	author momjian;	state Exp;
branches;
next	1.23.4.5;

1.23.4.5
date	2005.09.28.11.33.41;	author momjian;	state Exp;
branches;
next	;

1.28.2.1
date	2006.04.11.15.49.04;	author momjian;	state Exp;
branches;
next	1.28.2.2;

1.28.2.2
date	2006.10.10.00.29.14;	author momjian;	state Exp;
branches;
next	;

1.31.2.1
date	2009.07.21.19.21.02;	author petere;	state dead;
branches;
next	;


desc
@@


1.32
log
@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
@
text
@
               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
@


1.31
log
@Update Russian FAQ.

corochoone@@gmail.com
@
text
@@


1.31.2.1
log
@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
@
text
@@


1.30
log
@Update Russian FAQ.

Viktor Vislobokov
@
text
@d4 1
a4 1
   Data poslednego obnovleniya: Voskresen'e 18 iyunya 15:33:25 EDT 2006
d7 1
a7 1
   (pgman@@candle.pha.pa.us)
d9 1
a9 1
   Pereviol na russkij: Viktor Vislobokov (admin@@linuxshare.ru)
d12 4
a15 1
   http://www.PostgreSQL.org/files/documentation/faqs/FAQ.html.
d18 1
a18 1
   na http://www.PostgreSQL.org/docs/faq/.
d23 2
a24 1
   1.1) CHto takoe PostgreSQL? Kak proiznositsya `eto nazvanie?
d38 6
a43 1
   1.13) Kak sravnit' PostgreSQL s drugimi SUBD?
d83 3
a85 2
   4.9) Kak mne opredelit', chto znachenie polya ravno NULL v kakom-libo
   zaprose? Mogu ya otsortirovat' polya NULL ili net?
d108 1
a108 1
   zaprose?
d113 2
a114 1
  1.1) CHto takoe PostgreSQL? Kak proiznositsya `eto nazvanie?
d116 3
a118 3
   PostgreSQL proiznositsya Post-Gres-Q-L (Post-Gres-K'yu-`El), takzhe
   inogda govoryat prosto Postgres. Vy mozhete uslyshat' kak `eto
   proiznositsya s pomosch'yu audiofajla, kotoryj dostupen v formate MP3.
d130 7
a136 1
   http://www.PostgreSQL.org/files/documentation/faqs/FAQ_DEV.html
d159 1
a159 1
   Portions copyright (c) 1996-2006, PostgreSQL Global Development Group
d193 1
a193 1
   osnovannyh na NT, takih kak Win2000, WinXP i Win2003. Paket
d195 1
a195 1
   http://pgfoundry.org/projects/pginstaller. Versii Windows, osnovannye
d200 2
a201 1
   http://forge.novell.com, i versiya dlya OS/2 (eComStation) na
d208 1
a208 1
   ftp, ispol'zuya ftp://ftp.PostgreSQL.org/pub/.
d212 1
a212 1
   Poslednij vypusk PostgreSQL - `eto versiya 8.1.4
d229 3
a231 3
   suschestvuyut kanaly na ispanskom (#postgresql-es) i francuzskom
   (#postgresqlfr) yazykah. Takzhe suschestvuet kanal po PostgreSQL na
   servere EFNet.
d234 1
a234 1
   http://techdocs.postgresql.org/companies.php.
d241 1
a241 1
   FTP sajte ftp://ftp.PostgreSQL.org/pub/.
d298 1
a298 1
   http://www.PostgreSQL.org/docs.
d305 5
a309 4
   dostupen po adresu
   http://techdocs.postgresql.org/techdocs/bookreviews.php. Krome togo,
   po adresu http://techdocs.PostgreSQL.org/ vy mozhete najti kollekciyu
   tehnicheskih statej posvyaschennyh PostgreSQL.
d320 4
a323 6
   vyshe. Esche odin uchebnik - `eto kniga "Teach Yourself SQL in 21
   Days, Second Edition" (Osvoj samostoyatel'no SQL za 21 den', Vtoraya
   redakciya) na http://members.tripod.com/er4ebus/sql/index.htm. Mnogim
   iz nashih pol'zovatelej nravitsya kniga The Practical SQL Handbook,
   Bowman, Judith S., et al., Addison-Wesley. Drugim nravitsya The
   Complete Reference SQL, Groff et al., McGraw-Hill.
d337 2
a338 1
  1.13) Kak sravnit' PostgreSQL s drugimi SUBD?
d388 38
d440 1
a440 2
   Python i mnogih drugih, dostupny na http://gborg.postgresql.org v
   sekcii Drivers/Interfaces, a takzhe cherez poisk v Internet.
d458 2
a459 1
   Podrobnosti mozhno najti v Dokumentacii soobschestva PostgreSQL
d474 2
a475 1
   host-avtorizaciya v fajle $PGDATA/pg_hba.conf i perestartovat' server.
d512 3
a514 2
          http://candle.pha.pa.us/main/writings/pgsql/hw_performance/inde
          x.html i http://www.powerpostgresql.com/PerfList/.
d519 3
a521 1
   log_*, pozvolyayuschih protokolirovat' zaprosy i statistiku raboty
d528 3
a530 3
   Vy dostigli ustanovlennogo po umolchaniyu ogranicheniya na 100 sessij
   podklyucheniya k baze dannyh. Vam neobhodimo uvelichit' dlya
   postmaster limit na kolichestvo konkurentnyh backend processov,
d532 1
a532 1
   perestartovat' postmaster.
d536 4
a539 18
   Mezhdu podvypuskami, razrabotchiki PostgreSQL delayut tol'ko
   ispravleniya oshibok. Takim obrazom obnovlenie s versii 7.4.8 do 7.4.9
   ne trebuet vypolneniya dump i restore; dostatochno ostanovit' server,
   ustanovit' obnovlionnye fajly SUBD i zapustit' server.
   
   Vse pol'zovateli dolzhny by obnovlyat'sya na naibolee svezhuyu
   podversiyu kak tol'ko ona budet dostupna. V to vremya kak kazhdoe
   obnovlenie podrazumevaet nekotoryj risk, podversii PostgreSQL
   razrabytyvayutsya tol'ko dlya ispravleniya obschih oshibok s
   minimal'nym riskom. Takim obrazom, vash risk svyazan tol'ko s samim
   obnovleniem.
   
   Pri vyhode ocherednogo vypuska (t.e. pri obnovlenii naprimer, s 7.3 na
   7.4) chasto menyaetsya vnutrennij format sistemnyh tablic i fajlov
   dannyh. `Eti izmeneniya chasto nosyat slozhnyj harakter, tak chto my
   ne obsluzhivaem obratnuyu sovmestimost' dlya fajlov dannyh. V `etih
   sluchayah dlya obnovleniya bazy dannyh trebuetsya vypolnit'
   dump/restore.
d651 2
a652 2
   priblizitel'no 5.6 MB iz kotoryh:
    28 bajt: na kazhdyj zagolovok stroki v tablice (priblizitel'no)
d661 2
a662 2
   ---------------------   =  146 strok v tablice na stranicu BD (okruglionno)
     56 bajt na stroku v tablice
d665 2
a666 2
   ----------------------- =  685 stranic v BD (okruglionno)
   146 strok v tablice na stranicu
d668 1
a668 1
   685 stranic BD * 8192 bajt na stranicu = 5,611,520 bajt (5.6 MB)
d723 2
a724 1
       rabotaet tol'ko dlya LIKE indeksirovaniya.
a725 4
   V vypuskah do versii 8.0, indeksy chasto nel'zya bylo ispol'zovat',
   esli tipy dannyh tochno ne sovpadali s indeksnymi tipami kolonok. `Eto
   osobenno kasalos' int2, int8 i numeric indeksov kolonok.
   
d754 3
a756 2
  4.9) Kak mne opredelit', chto znachenie polya ravno NULL v kakom-libo
  zaprose? Mogu ya otsortirovat' polya NULL ili net?
d763 5
d823 4
a826 1
   Smotrite podrobnosti o posledovatel'nostyah na stranice rukovodstva
d831 4
a834 19
   Odin iz sposobov sostoit v poluchenii sleduyuschego znacheniya SERIAL
   iz ob"ekta sequence s pomosch'yu funkcii nextval() pered vstavkoj i
   zatem vstavlyat' `eto znachenie yavno. Ispol'zujte tablicu-primer v
   4.11.1, primer v psevdoyazyke pokazhet kak `eto delaetsya:
    new_id = execute("SELECT nextval('person_id_seq')");
    execute("INSERT INTO person (id, name) VALUES (new_id, 'Blaise Pascal')");

   Zatem vy dolzhny takzhe sohranit' novoe znachenie v peremennoj new_id
   dlya ego ispol'zovaniya v drugih zaprosah (naprimer takih kak vneshnij
   klyuch dlya tablicy person). Zametim, chto imya avtomaticheski
   sozdannogo ob"ekta SEQUENCE budet <table>_<serialcolumn>_seq, gde
   table i serialcolumn yavlyayutsya sootvetstvenno imenami vashej
   tablicy i vashej kolonki SERIAL.
   
   V kachestve al'ternativy, vy mozhete poluchit' naznachennoe znachenie
   SERIAL s pomosch'yu funkcii currval() posle provedeniya obychnoj
   operacii vstavki, naprimer
    execute("INSERT INTO person (name) VALUES ('Blaise Pascal')");
    new_id = execute("SELECT currval('person_id_seq')");
d836 3
d856 6
a861 7
   Kazhdaya, sozdavaemaya v PostgreSQL tablichnaya stroka, poluchaet
   unikal'nyj indentifikator OID za isklyucheniem sluchaya kogda
   ispol'zovalos' WITHOUT OIDS. OID - `eto avtomaticheski naznachaemoe
   unikal'noe 4-h bajtovoe celoe chislo. Odnako, posle togo kak ego
   znachenie prevysit 4 milliarda, znacheniya OID nachinayut
   dublirovat'sya. PostgreSQL ispol'zuet OID dlya svyazyvaniya svoih
   vnutrennih tablic.
d863 1
a863 1
   Dlya unikal'nyh znachenij v kolonkah tablicy pol'zovatelya, luchshim
d881 1
a881 1
   pered zapuskom postmaster vypolnit' sleduyuschie komandy:
d937 2
a938 1
   http://techdocs.postgresql.org/guides/SetReturningFunctions.
d943 11
a953 8
   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.
d972 1
a972 1
   yavlyaetsya Pgcluster.
d975 1
d977 5
a981 5
   Naibolee chasto `eto proishodit 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
@


1.29
log
@There is updated Russian translation of the FAQ in the attachment.

Victor Vislobokov
@
text
@d4 1
a4 1
   Data poslednego obnovleniya: Pyatnica 24 fevralya 23:28:40 EDT 2006
d25 1
a25 1
   1.6) Kakaya versiya poslednyaya?
d32 2
a33 1
   1.12) Kak prisoedinitsya k komande razrabotchikov?
d53 1
a53 2
   3.6) Pochemu neobhodimo delat' dump i restore pri obnovlenii vypuskov
   PostgreSQL?
d192 1
a192 1
  1.6) Kakaya poslednyaya versiya?
d194 1
a194 1
   Poslednij vypusk PostgreSQL - `eto versiya 8.1.3
a306 4
   Est' prekrasnyj uchebnik na
   http://www.intermedia.net/support/sql/sqltut.shtm, na
   http://ourworld.compuserve.com/homepages/graeme_birchall/HTM_COOK.HTM,
   i na http://sqlcourse.com.
d308 9
a316 1
  1.12) Kak prisoedinitsya k komande razrabotchikov?
d401 3
a403 2
   Da, podrobnosti smotrite v
   http://techdocs.postgresql.org/guides/GUITools.
d474 1
a474 2
  3.6) Pochemu neobhodimo delat' dump i restore pri obnovlenii vypuskov
  PostgreSQL?
d476 18
a493 14
   Razrabotchiki PostgreSQL delayut tol'ko nebol'shie izmeneniya mezhdu
   podvypuskami. Takim obrazom obnovlenie s versii 7.4.0 do 7.4.1 ne
   trebuet vypolneniya dump i restore. Odnako pri vyhode ocherednogo
   vypuska (t.e. pri obnovlenii naprimer, s 7.3 na 7.4) chasto menyaetsya
   vnutrennij format sistemnyh tablic i fajlov dannyh. `Eti izmeneniya
   chasto nosyat kompleksnyj harakter, tak chto net vozmozhnosti
   obespechit' obratnuyu sovmestimost' fajlov dannyh. Vypolenie dump
   pozvolyaet poluchit' dannye v obschem formate, kotoryj zatem mozhet
   byt' zagruzhen pri ispol'zovanii novogo vnutrennego formata.
   
   V teh vypuskah, gde format dannyh na diske ne menyaetsya, dlya
   provedeniya obnovleniya mozhet byt' ispol'zovan scenarij pg_upgrade
   bez ispol'zovaniya dump/restore. Kommentarii k vypusku govorit kogda
   mozhno ispol'zovat' pg_upgrade dlya `etogo vypuska.
d567 1
a567 1
   Maksimal'nyj razmer stroki? 1.6 TB
@


1.28
log
@Update Russian FAQ.

Victor Vislobokov
@
text
@d4 1
a4 1
   Data poslednego obnovleniya: Pyatnica 16 sentyabrya 14:07:22 EDT 2005
d21 7
a27 7
   1.2) Kakovy avtorskie prava na PostgreSQL?
   1.3) Na kakih platformah rabotaet PostgreSQL?
   1.4) Gde mozhno vzyat' PostgreSQL?
   1.5) Gde poluchit' podderzhku?
   1.6) Kak mne soobschit' ob oshibke?
   1.7) Kakaya versiya poslednyaya?
   1.8) Kakaya dokumentaciya imeetsya v nalichii?
d30 4
a33 4
   1.10) Kak nauchit'sya SQL?
   1.11) Kak prisoedinitsya k komande razrabotchikov?
   1.12) Kak sravnivat' PostgreSQL s drugimi SUBD?
   1.13) Kto upravlyaet PostgreSQL?
d46 1
a46 1
   3.2) Kak mne upravlyat' soedineniyami s drugih komp'yuterov?
d121 13
a133 1
  1.2) Kakovy avtorskie prava na PostgreSQL?
d138 1
a138 3
   menyat'.
   
   Vot `eta licenziya BSD, kotoruyu my ispol'zuem:
d142 1
a142 1
   Portions copyright (c) 1996-2005, PostgreSQL Global Development Group
d168 1
a168 1
  1.3) Na kakih platformah rabotaet PostgreSQL?
d187 1
a187 1
  1.4) Gde mozhno vzyat' PostgreSQL?
d192 8
a199 1
  1.5) Gde poluchit' podderzhku?
d218 1
a218 1
  1.6) Kak mne soobschit' ob oshibke?
a221 1
   
d225 22
a246 1
  1.7) Kakaya poslednyaya versiya?
d248 3
a250 1
   Poslednij vypusk PostgreSQL - `eto versiya 8.0.3
d252 21
a272 2
   My planiruem vypuskat' novye starshie versii kazhdyj god, a mladshie
   versii kazhdye neskol'ko mesyacev.
d274 1
a274 1
  1.8) Kakaya dokumentaciya imeetsya v nalichii?
d298 1
a298 8
  1.9) Kak najti informaciyu ob izvestnyh oshibkah ili otsutstvuyuschih
  vozmozhnostyah?
  
   PostgreSQL podderzhivaet rasshirennyj podklass SQL-92. Smotrite nash
   spisok TODO na predmet izvestnyh oshibok, otsutstvuyuschih
   vozmozhnostej i buduschih planov.
   
  1.10) Kak mne nauchit'sya SQL?
d312 1
a312 1
  1.11) Kak prisoedinitsya k komande razrabotchikov?
d316 1
a316 1
  1.12) Kak sravnivat' PostgreSQL s drugimi SUBD?
d358 1
a358 1
          (Smotrite Sekciyu 1.5.)
a365 12
          
  1.13) 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.)
d407 1
a407 1
  3.2) Kak mne upravlyat' soedineniyami s drugih komp'yuterov?
d597 1
a597 1
   priblizitel'no 6.4 MB iz kotoryh:
d647 2
a648 8
   vozvraschat'sya nebol'shaya chast' tablicy. Fakticheski MAX() i MIN()
   ne ispol'zuyut indeksy, no indeks ispol'zuetsya pri postroenii
   zaprosov s ORDER BY i LIMIT:
    SELECT col
    FROM tab
    ORDER BY col [ DESC ]
    LIMIT 1;

@


1.28.2.1
log
@There is updated Russian translation of the FAQ in the attachment.

Victor Vislobokov
@
text
@d4 1
a4 1
   Data poslednego obnovleniya: Pyatnica 24 fevralya 23:28:40 EDT 2006
d21 7
a27 7
   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 poslednyaya?
   1.7) Gde poluchit' podderzhku?
   1.8) Kak mne soobschit' ob oshibke?
d30 4
a33 4
   1.10) Kakaya dokumentaciya imeetsya v nalichii?
   1.11) Kak nauchit'sya SQL?
   1.12) Kak prisoedinitsya k komande razrabotchikov?
   1.13) Kak sravnit' PostgreSQL s drugimi SUBD?
d46 1
a46 1
   3.2) Kak mne upravlyat' soedineniyami ot drugih komp'yuterov?
d121 1
a121 13
  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?
d126 3
a128 1
   menyat'. Vot `eta licenziya BSD, kotoruyu my ispol'zuem:
d132 1
a132 1
   Portions copyright (c) 1996-2006, PostgreSQL Global Development Group
d158 1
a158 1
  1.4) Na kakih platformah rabotaet PostgreSQL?
d177 1
a177 1
  1.5) Gde mozhno vzyat' PostgreSQL?
d182 1
a182 8
  1.6) Kakaya poslednyaya versiya?
  
   Poslednij vypusk PostgreSQL - `eto versiya 8.1.3
   
   My planiruem vypuskat' novye starshie versii kazhdyj god, a mladshie
   versii kazhdye neskol'ko mesyacev.
   
  1.7) Gde poluchit' podderzhku?
d201 1
a201 1
  1.8) Kak mne soobschit' ob oshibke?
d205 1
d209 1
a209 22
   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?
d211 1
a211 3
   PostgreSQL podderzhivaet rasshirennyj podklass SQL:2003. Smotrite nash
   spisok TODO na predmet izvestnyh oshibok, otsutstvuyuschih
   vozmozhnostej i buduschih planov.
d213 2
a214 21
   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.
d216 1
a216 1
  1.10) Kakaya dokumentaciya imeetsya v nalichii?
d240 8
a247 1
  1.11) Kak mne nauchit'sya SQL?
d261 1
a261 1
  1.12) Kak prisoedinitsya k komande razrabotchikov?
d265 1
a265 1
  1.13) Kak sravnit' PostgreSQL s drugimi SUBD?
d307 1
a307 1
          (Smotrite Sekciyu 1.7.)
d315 12
d368 1
a368 1
  3.2) Kak mne upravlyat' soedineniyami ot drugih komp'yuterov?
d558 1
a558 1
   priblizitel'no 5.6 MB iz kotoryh:
d608 8
a615 2
   vozvraschat'sya nebol'shaya chast' tablicy.
   
@


1.28.2.2
log
@Backpatch FAQs to 8.1.X.
@
text
@d4 1
a4 1
   Data poslednego obnovleniya: Voskresen'e 18 iyunya 15:33:25 EDT 2006
d25 1
a25 1
   1.6) Kakaya versiya naibolee svezhaya?
d32 1
a32 2
   1.12) Kak mne otpravit' ispravlenie ili prisoedinitsya k komande
   razrabotchikov?
d52 2
a53 1
   3.6) Kak vypolnit' obnovlenie PostgreSQL?
d192 1
a192 1
  1.6) Kakaya versiya naibolee svezhaya?
d194 1
a194 1
   Poslednij vypusk PostgreSQL - `eto versiya 8.1.4
d307 4
d312 1
a312 9
   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?
d397 2
a398 3
   Dlya PostgreSQL suschestvuet bol'shoe kolichestvo instrumentov s
   graficheskim interfejsom kak kommercheskih, tak i otkrytyh.
   Podrobnosti mozhno najti v Dokumentacii soobschestva PostgreSQL
d469 2
a470 1
  3.6) Kak vypolnit' obnovlenie PostgreSQL?
d472 14
a485 18
   Mezhdu podvypuskami, razrabotchiki PostgreSQL delayut tol'ko
   ispravleniya oshibok. Takim obrazom obnovlenie s versii 7.4.8 do 7.4.9
   ne trebuet vypolneniya dump i restore; dostatochno ostanovit' server,
   ustanovit' obnovlionnye fajly SUBD i zapustit' server.
   
   Vse pol'zovateli dolzhny by obnovlyat'sya na naibolee svezhuyu
   podversiyu kak tol'ko ona budet dostupna. V to vremya kak kazhdoe
   obnovlenie podrazumevaet nekotoryj risk, podversii PostgreSQL
   razrabytyvayutsya tol'ko dlya ispravleniya obschih oshibok s
   minimal'nym riskom. Takim obrazom, vash risk svyazan tol'ko s samim
   obnovleniem.
   
   Pri vyhode ocherednogo vypuska (t.e. pri obnovlenii naprimer, s 7.3 na
   7.4) chasto menyaetsya vnutrennij format sistemnyh tablic i fajlov
   dannyh. `Eti izmeneniya chasto nosyat slozhnyj harakter, tak chto my
   ne obsluzhivaem obratnuyu sovmestimost' dlya fajlov dannyh. V `etih
   sluchayah dlya obnovleniya bazy dannyh trebuetsya vypolnit'
   dump/restore.
d559 1
a559 1
   Maksimal'nyj razmer stroki? 400 Gb
@


1.27
log
@Update Russian FAQ.

Viktor Vislobokov
@
text
@d4 1
a4 1
   Data poslednego obnovleniya: Ponedel'nik 30 maya 09:11:03 EDT 2005
d9 1
a9 1
   Pereviol na russkij: Viktor Vislobokov (corochoone@@perm.ru)
d97 2
d106 2
a107 1
   chasto govoryat prosto Postgres.
d211 1
a211 1
   Poslednij vypusk PostgreSQL - `eto versiya 8.0.2
d541 7
d559 1
a559 1
    32 bajt: na kazhdyj zagolovok stroki v tablice (priblizitel'no)
d563 1
a563 1
    60 bajt na stroku v tablice
d568 2
a569 2
   ---------------------   =  136 strok v tablice na stranicu BD (okruglionno)
     60 bajt na stroku v tablice
d572 2
a573 2
   ----------------------- =  735 stranic v BD (okruglionno)
   128 strok v tablice na stranicu
d575 1
a575 1
   735 stranic BD * 8192 bajt na stranicu = 6,021,120 bajt (6 MB)
d663 7
d889 15
@


1.26
log
@Here's the patch to fix a lot of markup errors in the HTML FAQs. Doesn't
change content (at least not supposed to).

Magnus Hagander
@
text
@d4 1
a4 1
   Data poslednego obnovleniya: Ponedel'nik 14 fevralya 23:35:09 EST 2005
d9 1
a9 1
   Perevel na russkij: Viktor Vislobokov (corochoone@@perm.ru)
d33 1
d74 2
a75 2
   4.9) Kak ya mogu opredelit', chto znachenie polya ravno NULL v
   kakom-libo zaprose?
d84 1
a84 1
   4.12) CHto takoe OID? CHto takoe TID?
d88 1
a88 3
   4.15) Pochemu pri rabote s moim bol'shim ob"ektom ya poluchayu oshibku
   "invalid large obj descriptor"?
   4.16) Kak mne sozdat' kolonku kotoraya po umolchaniyu budet soderzhat'
d90 7
a96 16
   4.17) Kak vypolnit' vneshnee svyazyvanie?
   4.18) Kak vypolnyat' zaprosy, ispol'zuyuschie neskol'ko baz dannyh?
   4.19) Kak mne vernut' iz funkcii neskol'ko strok tablicy?
   4.20) Pochemu ya poluchayu oshibku "missing oid", kogda obraschayuts'
   k vremennym tablicam v funkciyah PL/PgSQL?
   4.21) Kakie opcii shifrovaniya suschestvuyut?
   
                          Rasshireniya PostgreSQL
                                      
   5.1) YA napisal funkciyu opredelyaemuyu pol'zovatelem. Kogda ya
   zapuskayu ee v psql, pochemu ya poluchayu core dump?
   5.2) Kak ya mogu vnesti nekotorye klassnye novye tipy i funkcii v
   PostgreSQL?
   5.3) Kak mne napisat' C funkciyu, vozvraschayuschuyu stroku tablicy?
   5.4) YA izmenil ishodnyj fajl. Pochemu posle perekompilyacii ya ne
   vizhu izmenenij?
d101 2
a102 2
    1.1) CHto takoe PostgreSQL? Kak proiznositsya `eto nazvanie?
    
d118 2
a119 2
    1.2) Kakovy avtorskie prava na PostgreSQL?
    
d130 2
a131 1
   Portions Copyright (c) 1994-6 Regents of the University of California
d155 2
a156 2
    1.3) Na kakih platformah rabotaet PostgreSQL?
    
d162 3
a164 3
   Nachinaya s versii 8.0, PostgreSQL bez vsyakih uhischrenij rabotaet na
   operacionnyh sistemah Microsoft Windows, osnovannyh na NT, takih kak
   Win2000, WinXP i Win2003. Paket installyatora dostupen po adresu
d174 4
a177 5
    1.4) Gde mozhno vzyat' PostgreSQL?
    
   Naprimer, vospol'zovavshis' anonimnym dostupom na ftp sajt PostgreSQL
   ftp://ftp.PostgreSQL.org/pub. Spisok zerkal vy najdete na nashem
   osnovnom sajte.
d179 2
a180 2
    1.5) Gde poluchit' podderzhku?
    
d198 2
a199 2
    1.6) Kak mne soobschit' ob oshibke?
    
d204 1
a204 1
   FTP sajte ftp://ftp.PostgreSQL.org/pub.
d206 3
a208 3
    1.7) Kakaya poslednyaya versiya?
    
   Poslednij vypusk PostgreSQL - `eto versiya 8.0.1
d210 2
a211 1
   My planiruem vypuskat' novye versii kazhdye 10-12 mesyacev.
d213 2
a214 2
    1.8) Kakaya dokumentaciya imeetsya v nalichii?
    
d223 4
a226 2
   http://www.commandprompt.com/ppbook/. Spisok knig po PostgreSQL,
   kotorye mozhno kupit' dostupen po adresu
d237 3
a239 3
    1.9) Kak najti informaciyu ob izvestnyh oshibkah ili otsutstvuyuschih
    vozmozhnostyah?
    
d244 10
a253 6
    1.10) Kak mne nauchit'sya SQL?
    
   Kniga po PostgreSQL na
   http://www.PostgreSQL.org/docs/books/awbook.html nauchit SQL.
   Suschestvuet drugaya kniga po PostgreSQL na
   http://www.commandprompt.com/ppbook. Est' prekrasnyj uchebnik na
d258 3
a260 22
   Esche odin uchebnik - `eto kniga "Teach Yourself SQL in 21 Days,
   Second Edition" (Osvoj samostoyatel'no SQL za 21 den', Vtoraya
   redakciya) na http://members.tripod.com/er4ebus/sql/index.htm
   
   Mnogim iz nashih pol'zovatelej nravitsya kniga The Practical SQL
   Handbook, Bowman, Judith S., et al., Addison-Wesley. Drugim nravitsya
   The Complete Reference SQL, Groff et al., McGraw-Hill.
   
    1.11) Kak prisoedinitsya k komande razrabotchikov?
    
   Dlya nachala, skachajte poslednyuyu versiyu ishodnyh tekstov i
   prochtite FAQ i dokumentaciyu dlya razrabotchikov PostgreSQL na nashem
   sajte ili v distributive. Zatem, podpishites' na spiski rassylki
   pgsql-hackers i pgsql-patches. Dalee, otpravlyajte ispravleniya
   (patches) vysokogo kachestva v spisok pgsql-patches.
   
   Suschestvuet ogranichennyj spisok lyudej, kotoryj imeyut privelegiyu
   vnosit' izmeneniya v CVS arhiv PostgreSQL. Kazhdyj iz `etih lyudej v
   svoe vremya otpravil tak mnogo vysokokachestvennyh ispravlenij, chto
   ih bylo nevozmozhno ostavit' bez vnimaniya i oni byli udostoeny
   previlegii vnosit' izmeneniya, i my uvereny, chto te ispravleniya,
   kotorye oni vnesut budut vysokogo kachestva.
d262 2
a263 2
    1.12) Kak sravnivat' PostgreSQL s drugimi SUBD?
    
d279 2
a280 9
          bystree, v kakih-to medlennee. V sravnenii s MySQL ili linejnoj
          SUBD, my bystree, kogda pol'zovatelej mnogo, a takzhe na
          slozhnyh zaprosah i pri chtenii/zapisi zagruzki zaprosa. MySQL
          bystree dlya prostyh SELECT zaprosov, vypolnyaemyh nebol'shim
          kolichestvom pol'zovatelej. I razumeetsya, MySQL ne imeet
          kakih-libo vozmozhnostej iz perechislenyh vyshe, v sekcii
          Vozmozhnosti. My delaem upor na nadezhnost' i rasshirennye
          vozmozhnosti, no my takzhe prodolzhaem uvelichivat'
          proizvoditel'nost' s kazhdym vypuskom.
d313 13
d328 2
a329 2
    2.1) Kakie interfejsy est' dlya PostgreSQL?
    
d341 3
a343 3
    2.2) Kakie instrumenty suschestvuyut dlya ispol'zovaniya PostgreSQL cherez
    Web?
    
d350 2
a351 1
   V slozhnyh sluchayah, mnogie pol'zuyutsya Perl i CGI.pm ili mod_perl.
d353 4
a356 10
    2.3) Est' li u PostgreSQL graficheskij interfejs pol'zovatelya?
    
   Da, suschestvuet neskol'ko graficheskih interfejsov dlya PostgreSQL.
   Oni vklyuchayut PgAdmin III (http://www.pgadmin.org), PgAccess
   (http://www.pgaccess.org), RHDB Admin
   (http://sources.redhat.com/rhdb/), TORA (http://www.globecom.net/tora/
   chastichno kommercheskoe PO) i Rekall (
   http://www.rekallrevealed.org/). Takzhe est' PhpPgAdmin (
   http://phppgadmin.sourceforge.net/) - interfejs k PostgreSQL,
   osnovannyj na Web.
d361 2
a362 2
    3.1) Kak mne ustanovit' PostgreSQL v mesto otlichnoe ot /usr/local/pgsql?
    
d365 2
a366 2
    3.2) Kak mne upravlyat' soedineniyami s drugih komp'yuterov?
    
d373 2
a374 3
    3.3) Kakie nastrojki mne nuzhno sdelat' dlya uluchsheniya
    proizvoditel'nosti?
    
d411 2
a412 2
    3.4) Kakie vozmozhnosti dlya otladki est' v nalichii?
    
d418 3
a420 40
   Dlya predostavleniya bolee detal'noj informacii razrabotchikam servera
   pri otladke kakoj-libo problemy dolzhny pol'zovat'sya sleduyuschie
   instrukcii.
   
   Takim zhe obrazom mozhno proizvodit' i otladku severa, esli on
   rabotaet nepravil'no. Vo-pervyh, pri zapuske configure s opciej
   --enable-cassert, mnogie vyzovy assert() pozvolyayut otslezhivat'
   rabotu backend processa i ostanovku programmy pri vozniknovenii
   kakih-libo neozhidannostej.
   
   Esli postmaster ne zapuschen, vy mozhete zapustit' postgres backend iz
   komandnoj stroki i vvesti vash operator SQL napryamuyu. `Eto
   rekomenduetsya tol'ko dlya celej otladki. Zametim, chto v `etom
   rezhime, zapros zavershaetsya simvolom novoj stroki, a ne tochkoj s
   zapyatoj. Esli vy proizvodili kompilyaciyu s otladochnymi simvolami,
   vy mozhete ispol'zovat' lyuboj otladchik, chtoby posmotret', chto
   sluchilos'. Poskol'ku backend zapuskaetsya ne iz postmaster, on ne
   zapuskaetsya v identichnom okruzhenii i znachit problemy iteracij
   blokirovok/backend ne mogut byt' vosproizvedeny.
   
   Esli postmaster zapuschen, zapustite psql v odnom okne, zatem najdite
   PID processa postgres, ispol'zuemyj psql, ispol'zuya SELECT
   pg_backend_pid(). Ispol'zujte otladchik dlya podklyucheniya k postgres
   PID. Vy mozhete ustanovit' tochki preryvaniya v otladchike i zapustit'
   zapros iz psql. Esli vy proizvodite otladku zapuska postgres, vy
   mozhete ustanovit' PGOPTIONS="-W n", i zatem zapustit' psql. `Eta
   opciya privodit k zaderzhke processa zapuska na n sekund, v techenie
   kotoryh vy mozhete podklyuchit' k processu otladchik, ustanovit'
   lyubye tochki preryvaniya i prodolzhit' zapusk.
   
   Vy takzhe mozhete skompilirovat' PostgreSQL s profilirovaniem dlya
   togo, chtoby uvidet' kakie funkcii skol'ko vremeni vypolnyayutsya.
   Fajly profilirovaniya backend'a nahodyatsya v kataloge
   pgsql/data/base/dbname. Fajl profilirovaniya klienta budet pomeschen v
   tekuschij katalog klienta. V Linux dlya vypolneniya profilirovaniya
   trebuetsya kompilyacii s -DLINUX_PROFILE.
   
    3.5) Pochemu ya poluchayu soobschenie "Sorry, too many clients" kogda
    pytayus' podklyuchit'sya k baze?
    
d427 3
a429 3
    3.6) Pochemu neobhodimo delat' dump i restore pri obnovlenii vypuskov
    PostgreSQL?
    
d431 1
a431 1
   podvypuskami. Takim obrazom obnovlenie s versii 7.4 do 7.4.1 ne
d445 2
a446 2
    3.7) Kakoe komp'yuternoe "zhelezo" ya dolzhen ispol'zovat'?
    
d460 3
a462 3
    4.1) Kak vypolnit' SELECT tol'ko dlya neskol'kih pervyh strochek zaprosa?
    Proizvol'noj stroki?
    
d464 5
a468 5
   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.
d476 4
a479 4
    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?
    
d499 2
a500 2
    4.3) Kak izmenit' tip dannyh kolonki?
    
d511 2
a512 3
    4.4) Kakovy maksimal'nye razmery dlya strok v tablice, tablic i bazy
    dannyh?
    
d538 3
a540 3
    4.5) Kak mnogo diskovogo prostranstva v baze dannyh nuzhno dlya sohraneniya
    dannyh iz obychnogo tekstovogo fajla?
    
d573 9
a581 9
    4.6) Pochemu moi zaprosy rabotayut medleno? Pochemu oni ne ispol'zuyut moi
    indeksy?
    
   Indeksy ne ispol'zuyutsya dlya kazhdogo zaprosa avtomaticheski. 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.
d608 2
a609 2
   zapustite testy, chtoby uvidet', ne stalo-li skanirovanie indeksov
   bystree.
d632 2
a633 2
    4.7) Kak posmotret' na to, kak optimizator vypolnyaet moj zapros?
    
d636 4
a639 4
    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?
    
d653 18
a670 7
    4.9) Kak ya mogu opredelit', chto znachenie polya ravno NULL v kakom-libo
    zaprose?
    
   Vy prosto sravnivaete znachenie s IS NULL i IS NOT NULL.
   
    4.10) Kakovy otlichiya mezhdu raznymi simvol'nymi tipami?
    
d685 3
a687 4
   chem oboznachennyj razmer. Odnako, `eti tipy dannyh takzhe poddayutsya
   szhatiyu ili mogut byt' sohraneny ne v strokom vide cherez TOAST, tak
   chto zanimaemoe diskovoe prostranstvo mozhet takzhe byt' i men'she,
   chem ozhidalos'.
d700 2
a701 2
    4.11.1) Kak mne sozdat' pole serial/s-avto-uvelicheniem?
    
d719 2
a720 2
    4.11.2) Kak mne poluchit' znachenie pri vstavke SERIAL?
    
d741 3
a743 3
    4.11.3) Ne mozhet li poluchit'sya tak, chto ispol'zovanie currval() i
    nextval() privedet k zaciklirovaniyu s drugimi pol'zovatelyami?
    
d747 4
a750 4
    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?
    
d756 2
a757 2
    4.12) CHto takoe OID? CHto takoe TID?
    
d772 10
a781 8
   TID ispol'zuetsya dlya identifikacii special'nyh fizicheskih zapisej s
   blochnymi i offset znacheniyami. TID 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()"?
    
d796 2
a797 2
    4.14) Kak mne uznat', kakaya versiya PostgreSQL zapuschena?
    
d800 3
a802 21
    4.15) Pochemu pri rabote s moim bol'shim ob"ektom ya poluchayu oshibku
    "invalid large obj descriptor"?
    
   Vam nuzhno pri ispol'zovanii bol'shogo ob"ekta pomestit' v nachale
   BEGIN WORK i v konce COMMIT, a vnutri poluchivshegosya bloka lo_open
   ... lo_close.
   
   V nastoyaschij moment PostgreSQL trebuet, chtoby pri zakrytii
   bol'shogo ob"ekta proishodilo vypolnenie tranzakcii. Takim obrazom,
   pervaya zhe popytka sdelat' chto-libo s bol'shim ob"ektom, ne
   soblyudaya dannogo pravila privedet k soobscheniyu invalid large obj
   descriptor, tak kak kod vypolnyayuschij rabotu nad bol'shim ob"ektom
   (po krajnej mere v nastoyaschij moment) budet generirovat' soobschenie
   ob oshibke esli vy ne ispol'zuete tranzakciyu.
   
   Esli vy ispol'zuete takoj interfejs klienta kak ODBC, vam vozmozhno
   ponadobitsya ustanovit' auto-commit off.
   
    4.16) Kak mne sozdat' kolonku kotoraya po umolchaniyu budet soderzhat'
    tekuschee vremya?
    
d806 2
a807 2
    4.17) Kak mne vypolnit' vneshnee svyazyvanie?
    
d825 2
a826 2
    4.18) Kak vypolnyat' zaprosy, ispol'zuyuschie neskol'ko baz dannyh?
    
d837 2
a838 2
    4.19) Kak mne vernut' iz funkcii neskol'ko strok tablicy?
    
d842 3
a844 3
    4.20) Pochemu ya poluchayu oshibku "missing oid", kogda obraschayuts' k
    vremennym tablicam v funkciyah PL/PgSQL?
    
d854 18
a871 47
    4.21) Kakie opcii shifrovaniya suschestvuyut?
    
     * contrib/pgcrypto soderzhit mnogo funkcij shifrovaniya dlya
       ispol'zovaniya v SQL zaprosah.
     * Dlya shifrovaniya peredavaemyh dannyh ot klienta k serveru, na
       servere v fajle postgresql.conf, opciya ssl dolzhna byt'
       ustanovlena v true, v fajle pg_hba.conf dolzhna byt'
       sootvetstvuyuschaya zapis' host ili hostssl i na storone klienta
       sslmode ne dolzhen byt' zapreschion cherez disable. (Zametim, chto
       takzhe vozmozhno ispol'zovanie nezavisimyh vneshnih shifruyuschih
       transportov, takih kak stunnel ili ssh, vmesto sobstvennyh SSL
       soedinenij PostgreSQL).
     * Paroli pol'zovatelej k baze dannyh avtomaticheski shifruyutsya,
       pri sohranenii v sistemnyh tablicah.
     * Server mozhno zapustit', ispol'zuya shifrovannuyu fajlovuyu
       sistemu.
     _________________________________________________________________
   
                          Rasshireniya PostgreSQL
                                      
    5.1) YA napisal funkciyu opredelyaemuyu pol'zovatelem. Kogda ya zapuskayu
    ee v psql, pochemu ya poluchayu core dump?
    
   Problema mozhet zaklyuchat'sya v neskol'kih veschah. Popytajtes'
   sperva protestirovat' vashu funkciyu v otdel'noj samostoyatel'noj
   programme.
   
    5.2) Kak ya mogu vnesti nekotorye klassnye novye tipy i funkcii v
    PostgreSQL?
    
   Otprav'te vashi rasshireniya v spisok rassylki pgsql-hackers i oni po
   vozmozhnosti budut pomescheny v podkatalog contrib/.
   
    5.3) Kak mne napisat' C funkciyu, vozvraschayuschuyu stroku tablicy?
    
   V versiyah PostgreSQL, nachinaya s 7.3, funkcii, vozvraschayuschie
   tablicy polnost'yu podderzhivayutsya v C, PL/PgSQL i SQL. Podrobnosti
   smotrite v Rukovodstve Programmista. Primer vozvraschayuschej tablicu
   funkcii, napisannoj na C, mozhno najti v contrib/tablefunc.
   
    5.4) YA izmenil ishodnyj fajl. Pochemu posle perekompilyacii ya ne vizhu
    izmenenij?
    
   Fajly Makefile ne imeyut pravil'nyh zavisimostej dlya include fajlov.
   Vy dolzhny vypolnit' make clean i zatem make. Esli vy ispol'zuete GCC
   vy mozhete ispol'zovat' opciyu --enable-depend v configure chtoby
   poruchit' kompilyatoru avtomaticheski otslezhivat' zavisimosti.
@


1.25
log
@Update Russian FAQ.

Viktor Vislobokov
@
text
@d523 5
a527 5
   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.
d824 2
a825 4
   stroki v tablice byli izmeneny ili peregruzheny.
   
   TID ispol'zuetsya indeksnymi zapisyami v kachestve ukazatelya na
   fizicheskie zapisi.
@


1.24
log
@Update to Russian FAQ, HEAD and 8.0.X.
@
text
@d4 1
a4 1
   Data poslednego obnovleniya: Sreda 2 fevralya 12:44:03 EST 2005
d94 2
a95 2
   4.20) Pochemu ya ne mogu nadezhno sozdavat'/udalyat' vremennye tablicy
   v funkciyah PL/PgSQL?
d231 1
a231 1
   http://www.PostgreSQL.org/docs/awbook.html i
d253 3
a255 2
   Kniga po PostgreSQL na http://www.PostgreSQL.org/docs/awbook.html
   nauchit SQL. Suschestvuet drugaya kniga po PostgreSQL na
d910 2
a911 2
    4.20) Pochemu ya ne mogu nadezhno sozdavat'/udalyat' vremennye tablicy v
    funkciyah PL/PgSQL?
@


1.23
log
@Update of Russian FAQ.

 Viktor Vislobokov
@
text
@d4 1
a4 1
   Data poslednego obnovleniya: Sreda 15 dekabrya 20:06:34 EST 2004
d12 1
a12 1
   http://www.PostgreSQL.org/docs/faqs/FAQ.html.
d15 1
a15 1
   na http://www.PostgreSQL.org/docs/index.html.
d22 4
a25 4
   1.3) Na kakih Unix platformah rabotaet PostgreSQL?
   1.4) Suschestvuyut li versii portirovannye ne na Unix sistemy?
   1.5) Gde mozhno vzyat' PostgreSQL?
   1.6) Gde poluchit' podderzhku?
d31 2
a32 5
   1.11) Reshena li v PostgreSQL problema 2000-go goda (Y2K)?
   1.12) Kak prisoedinitsya k komande razrabotchikov?
   1.13) Kak otpravit' soobschenie ob oshibke?
   1.14) Kak sravnivat' PostgreSQL s drugimi SUBD?
   1.15) Kak okazat' finansovuyu pomosch' PostgreSQL?
d36 1
a36 1
   2.1) Suschestvuyut li ODBC drajvera dlya PostgreSQL?
a39 1
   2.4) Kakie yazyki mogut vzaimodejstvovat' s PostgreSQL?
d45 2
a46 8
   3.2) Kogda ya zapuskayu postmaster, ya poluchayu soobschenie Bad
   System Call ili soobschenie core dumped. Pochemu?
   3.3) Kogda ya pytayus' zapustit' postmaster, ya poluchayu oshibki
   IpcMemoryCreate. Pochemu?
   3.4) Kogda ya pytayus' zapustit' postmaster, ya poluchayu oshibki
   IpcSemaphoreCreate. Pochemu?
   3.5) Kak mne upravlyat' soedineniyami s drugih komp'yuterov?
   3.6) Kakie nastrojki mne nuzhno sdelat' dlya uluchsheniya
d48 2
a49 2
   3.7) Kakie vozmozhnosti dlya otladki est' v nalichii?
   3.8) Pochemu ya poluchayu soobschenie "Sorry, too many clients" kogda
d51 1
a51 2
   3.9) CHto nahoditsya v kataloge pgsql_tmp?
   3.10) Pochemu neobhodimo delat' dump i restore pri obnovlenii vypuskov
d53 1
a53 1
   3.11) Kakoe komp'yuternoe "zhelezo" ya dolzhen ispol'zovat'?
d57 1
a57 2
   4.1) V chem otlichie mezhdu binarnym i normal'nym kursorom?
   4.2) Kak vypolnit' SELECT tol'ko dlya neskol'kih pervyh strochek
d59 7
a65 4
   4.3) Kak poluchit' spisok tablic ili drugih komponentov v psql?
   4.4) Kak udalit' kolonku iz tablicy ili izmenit' eio tip dannyh?
   4.5) Kakovy maksimal'nye razmery dlya zapisej, tablic i bazy dannyh?
   4.6) Kak mnogo diskovogo prostranstva v baze dannyh nuzhno dlya
d67 4
a70 8
   4.7) Kak mne ubedit'sya, chto suschestvuyut nuzhnye mne tablicy,
   indeksy, bazy dannyh i pol'zovateli?
   4.8) U menya medlenno rabotayut zaprosy ili ne proishodit
   ispol'zovaniya indeksov. Pochemu?
   4.9) Kak posmotret' na to, kak optimizator vypolnyaet moj zapros?
   4.10) CHto takoe R-tree indeks?
   4.11) CHto takoe Genetic Query Optimizer?
   4.12) Kak mne vypolnit' poisk regulyarnogo vyrazheniya i poisk
d73 1
a73 1
   4.13) Kak ya mogu opredelit', chto znachenie polya ravno NULL v
d75 4
a78 4
   4.14) Kakovy otlichiya mezhdu raznymi simvol'nymi tipami?
   4.15.1) Kak mne sozdat' pole serial/s-avto-uvelicheniem?
   4.15.2) Kak mne poluchit' znachenie pri vstavke SERIAL?
   4.15.3) Ne mozhet li poluchit'sya tak, chto ispol'zovanie currval() i
d80 1
a80 1
   4.15.4) Pochemu chisla iz moej posledovatel'nosti ne ispol'zuyutsya
d83 2
a84 3
   4.16) CHto takoe OID? CHto takoe TID?
   4.17) CHto oznachayut nekotorye terminy ispol'zuemye v PostgreSQL?
   4.18) Pochemu ya poluchayu oshibku "ERROR: Memory exhausted in
d86 2
a87 2
   4.19) Kak mne uznat', kakaya versiya PostgreSQL zapuschena?
   4.20) Pochemu pri rabote s moim bol'shim ob"ektom ya poluchayu oshibku
d89 1
a89 1
   4.21) Kak mne sozdat' kolonku kotoraya po umolchaniyu budet soderzhat'
d91 4
a94 6
   4.22) Pochemu moi podzaprosy, ispol'zuyuschie IN tak medlenno
   rabotaeyut?
   4.23) Kak vypolnit' vneshnee svyazyvanie?
   4.24) Kak vypolnyat' zaprosy, ispol'zuyuschie neskol'ko baz dannyh?
   4.25) Kak mne vernut' iz funkcii neskol'ko zapisej?
   4.26) Pochemu ya ne mogu nadezhno sozdavat'/udalyat' vremennye tablicy
d96 1
a96 1
   4.27) Kakie opcii shifrovaniya suschestvuyut?
d104 1
a104 1
   5.3) Kak mne napisat' C funkciyu, vozvraschayuschuyu zapis'?
d113 14
a126 32
   PostgreSQL proiznositsya Post-Gres-Q-L (Post-Gres-K'yu-`El). Po adresu
   http://www.postgresql.org/postgresql.mp3 dostupen zvukovoj fajl s
   primerom kak `eto nuzhno proiznosit'.
   
   PostgreSQL - `eto rasshirenie SUBD POSTGRES (i po`etomu inogda
   govoryat prosto "Postgres"), issledovatel'skij prototip novogo
   pokoleniya SUBD. PostgreSQL odnovremenno sohranyaet moschnuyu model'
   dannyh i obschirnoe kolichestvo tipov POSTGRES, i zameschaet yazyk
   zaprosov PostQuel na rasshirennoe podmnozhestvo SQL. PostgreSQL - `eto
   svobodnoe i polnost'yu otkrytoe programmnoe obespechenie.
   
   Razrabotku PostgreSQL vypolnyaet komanda razrabotchikov, vse
   uchastniki kotoroj podpisany na spisok rassylki razrabotchikov. V
   nastoyaschee vremya, ih koordinatorom yavlyaetsya Mark Furn'e (Marc G.
   Fournier) (scrappy@@PostgreSQL.org). (Sm. sekciyu 1.6 o tom, kak
   podklyuchit'sya k razrabotke). `Eta komanda teper' otvechaet za vsyu
   razrabotku PostgreSQL. Dannyj proekt yavlyaetsya obschestvennym i ne
   upravlyaetsya kakoj-libo kompaniej. Podrobnosti smotrite v FAQ dlya
   razrabotchikov, http://www.PostgreSQL.org/docs/faqs/FAQ_DEV.html
   
   Avtorami PostgreSQL 1.01 yavlyayutsya `Endryu YU (Andrew Yu) i Dzholi
   CHen (Jolly Chen). Mnogie drugie vnesli svoj vklad v perenos na drugie
   platformy, testirovanie, otladku i rasshirenie `etogo koda.
   Pervonachal'nyj kod Postgres, iz kotorogo poyavilsya PostgreSQL, byl
   itogom usilij mnogih akademicheskih studentov, neakademicheskih
   studentov i mnozhestva raznyh programmistov, rabotavshih pod
   rukovodstvom professora Majkla Stounbrejkera (Michael Stonebraker) v
   Kalifornijskom universitete, Berkli.
   
   Pervonachal'noe imya, dannoe v Berkli, bylo Postgres. Kogda v 1995
   godu byla dobavlena funkcional'nost' SQL, `eto imya bylo izmeneno na
   Postgres95. No i `eto imya bylo izmeneno v konce 1996 na PostgreSQL.
d130 6
a135 1
   PostgreSQL popadaet pod dejstvie sleduyuschego COPYRIGHT:
d139 1
a139 1
   Portions copyright (c) 1996-2004, PostgreSQL Global Development Group
d164 1
a164 6
   Vysheizlozhennoe yavlyaetsya BSD licenziej, klassicheskoj licenziej
   programmnogo obespecheniya s otkrytym kodom. `Eta licenziya ne
   nakladyvaet ogranichenij na ispol'zovanie ishodnogo koda. Nam
   nravitsya `eta licenziya i my ne sobiraemsya eio menyat'.
   
    1.3) Na kakih Unix platformah rabotaet PostgreSQL?
a170 2
    1.4) Suschestvuyut li versii perenesennye ne na Unix sistemy?
    
d179 3
a181 1
   http://forge.novell.com.
d183 1
a183 1
    1.5) Gde mozhno vzyat' PostgreSQL?
d189 1
a189 1
    1.6) Gde poluchit' podderzhku?
d191 5
a195 35
   Osnovnoj spisok rassylki: pgsql-general@@PostgreSQL.org. V nem mozhno
   obsuzhdat' lyubye temy, kasayuschiesya PostgreSQL. CHtoby
   podpisat'sya, otprav'te pis'mo po `elektronnoj pochte, v kotorom v
   tele pis'ma (ne v teme) napishite sleduyuschie stroki:
    subscribe
    end

   na adres pgsql-general-request@@PostgreSQL.org.
   
   Suschestvuet dajzhest spisok. CHtoby podpisat'sya na nego, otprav'te
   pis'mo po `elektronnoj pochte na adres:
   pgsql-general-digest-request@@PostgreSQL.org i v tele pis'ma napishite
   strochki strochki:
    subscribe
    end

   Dajzhesty otpravlyayutsya podpischikam, kogda v osnovnom spiske
   rassylki nakopitsya okolo 30 kilobajt soobschenij.
   
   Dostupen i spisok rassylki soobschenij ob oshibkah. CHtoby
   podpisat'sya na `etot spisok, otprav'te po `elektronnoj pochte pis'mo
   na adres pgsql-bugs-request@@PostgreSQL.org i v tele pis'ma napishite
   strochki strochki:
    subscribe
    end

   Takzhe imeetsya spisok rassylki s diskussiyami razrabotchikov. CHtoby
   podpisat'sya na `etot spisok, otprav'te po `elektronnoj pochte pis'mo
   na adres pgsql-hackers-request@@PostgreSQL.org i v tele pis'ma
   napishite strochki strochki:
    subscribe
    end

   Dopolnitel'nye spiski rassylki i infomaciyu o PostgreSQL mozhno najti
   na domashnej stranichke PostgreSQL po adresu:
a196 2
     http://www.PostgreSQL.org
     
d199 1
a199 1
   ispol'zovat' komandu Unix irc -c '#postgresql' "$USER"
d208 8
d218 1
a218 1
   Poslednij vypusk PostgreSQL - `eto versiya 7.4.6
d220 1
a220 1
   My planiruem vypuskat' novye versii kazhdye 6-8 mesyacev.
d224 5
a228 4
   V distributiv vklyuchayutsya razlichnye rukovodstva, 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.
d238 3
a240 2
   psql imeet neskol'ko prekrasnyh komand \d dlya otobrazheniya
   informacii po tipam, operatoram, funkciyam, agregatam i t.d.
d268 1
a268 5
    1.11) Reshena li v PostgreSQL problema 2000-go goda (Y2K)?
    
   Da, my legko rabotaem s datami posle 2000 goda i pered 2000 godom.
   
    1.12) Kak prisoedinitsya k komande razrabotchikov?
d271 4
a274 4
   prochtite dokumentaciyu razrabotchikov PostgreSQL na nashem sajte ili
   v distributive. Zatem, podpishites' na spiski rassylki pgsql-hackers i
   pgsql-patches. Dalee, otpravlyajte ispravleniya (patches) vysokogo
   kachestva v spisok pgsql-patches.
d283 1
a283 9
    1.13) Kak otpravit' soobschenie ob oshibke??
    
   Zapolnite formu ob oshibke v PostgreSQL, kotoraya raspolozhena na
   http://www.postgresql.org/bugform.html.
   
   Takzhe ne zabud'te posmotret' na ftp://ftp.PostgreSQL.org/pub na
   predmet bolee svezhih versij PostgreSQL ili zaplat.
   
    1.14) Kak sravnivat' PostgreSQL s drugimi SUBD?
d298 11
a308 18
          PostgreSQL imeet proizvoditel'nost' shodnuyu s drugimi
          kommercheskimi SUBD i s SUBD s otkrytym ishodnym kodom, v
          kakih-to aspektah rabotaya bystree chem oni, v kakih-to
          medlenee. V sravnenii s MySQL ili obydennee SUBD, my bystree,
          kogda pol'zovatelej mnogo, a takzhe na kompleksnyh zaprosah i
          chtenii/zapisi zagruzki zaprosa. MySQL bystree dlya prostyh
          SELECT zaprosov, vypolnyaemyh nebol'shim kolichestvom
          pol'zovatelej. I razumeetsya, MySQL ne imeet kakih-libo
          vozmozhnostej iz perechislenyh vyshe, v sekcii Vozmozhnosti. My
          delaem upor na nadezhnost' i rasshirennye vozmozhnosti, no my
          takzhe prodolzhaem uvelichivat' proizvoditel'nost' s kazhdym
          vypuskom. Suschestvuet interesnaya stranichka v Internet,
          sravnivayuschaya PostgreSQL i MySQL na
          http://openacs.org/philosophy/why-not-mysql.html. Takzhe, MySQL
          - `eto kompaniya, kotoraya rasprostranyaet svoj produkt cherez
          otkrytye ishodnye teksty i trebuet kommercheskuyu licenziyu na
          zakrytoe programmnoe obespechenie, a ne soobschestvo
          razrabotchikov s otkrytymi ishodnymi tekstami, kak PostgreSQL.
d332 1
a332 1
          (Smotrite Sekciyu 1.6.)
a340 27
    1.15) Kak okazat' finansovuyu pomosch' PostgreSQL?
    
   PostgreSQL imeet odnorangovuyu infrastrukturu s togo samogo vremeni
   kak my nachali razrabotku v 1996 godu. My dolzhny blagodarit' za `eto
   Marka Furn'e (Marc Fournier), kotoryj sozdal `etu infrastrukturu i
   upravlyaet ej na protyazhenii `etih let.
   
   Kachestvennaya infrastruktura ochen' vazhna dlya proektov s otkrytym
   ishodnym kodom. Ona predotvraschaet raskoly, kotorye mogut sil'no
   zaderzhat' postupatel'noe dvizhenie proekta.
   
   Razumeetsya, `eta infrastruktura ne yavlyaetsya deshevoj. Suschestvuet
   nekotoroe kolichestvo ezhemesyachnyh i odnorazovyh rashodov, kotorye
   trebuyut deneg. Esli vy ili vasha kompaniya imeet den'gi, kotorye
   mozhno peredat' v pomosch' nashim usiliyam, pozhalujsta posetite
   stranichku https://store.pgsql.com/shopping/ i sdelajte svoj vklad.
   
   Hotya na stranichke govoritsya o PostgreSQL, Inc, punkt
   "contributions" prednaznachen isklyuchitel'no dlya podderzhki proekta
   PostgreSQL i ne peredaetsya kakoj-libo konkretnoj kompanii. Esli
   hotite, to mozhete `eto proverit', napisav pis'mo na kontaktnyj adres.
     _________________________________________________________________
   
   Esli u vas est' istorii po uspeshnomu primeneniyu PostgreSQL,
   pozhalujsta, prisylajte ih na nash sajt propagandy
   http://advocacy.postgresql.org.
   
d343 1
a343 1
    2.1) Suschestvuyut li ODBC drajvera dlya PostgreSQL?
d345 10
a354 15
   Suschestvuet dva ODBC drajvera, PsqlODBC i OpenLink ODBC.
   
   Vy mozhete skachat' PsqlODBC s
   http://gborg.postgresql.org/project/psqlodbc/projdisplay.php.
   
   OpenLink ODBC mozhno vzyat' na http://www.openlinksw.com. `Etot
   drajver rabotaet s ih standartnym klientskim programmnym
   obespecheniem, ispol'zuyuschim ODBC, i takim obrazom, ODBC drajvery
   dlya PostgreSQL dostupny dlya kazhdoj iz podderzhivaemyh imi platform
   (Win, Mac, Unix, VMS).
   
   Vozmozhno oni budut prodavat' svoj produkt tem komu nuzhna
   kommercheskaya podderzhka, no besplatnaya versiya vsegda budet
   dostupna. Pozhalujsta, napravlyajte voprosy na adres
   postgres95@@openlink.co.uk.
d362 2
a363 2
   Dlya integracii s Web, odnim iz prevoshodnyh instrumentov yavlyaetsya
   PHP. Domashnyaya stanichka http://www.php.net.
d365 1
a365 2
   Dlya kompleksnyh reshenij, mnogie pol'zuyutsya Perl interfejsom i
   CGI.pm ili mod_perl.
d370 2
a371 2
   `Eto PgAccess (http://www.pgaccess.org), PgAdmin III
   (http://www.pgadmin.org), RHDB Admin
d373 4
a376 21
   (chastichno kommercheskoe PO) i Rekall (
   http://www.thekompany.com/products/rekall/, kommercheskij). Takzhe
   est' PhpPgAdmin ( http://phppgadmin.sourceforge.net/) - interfejs k
   PostgreSQL, osnovannyj na Web.
   
    2.4) Kakie yazyki mogut vzaimodejstvovat' s PostgreSQL?
    
   Kakie-libo interfejsy dlya PostgreSQL suschestvuyut dlya bol'shinstva
   populyarnyh yazykov programmirovaniya. Posmotrite spisok modulej
   rasshireniya dlya teh yazykov programmirovaniya, kotorymi vy
   pol'zuetes'.
   
   Sleduyuschie interfejsy vklyuchayutsya v distributiv PostgreSQL:
     * C (libpq)
     * Embedded C (ecpg)
     * Java (jdbc)
     * Python (PyGreSQL)
     * TCL (libpgtcl)
       
   Dopolnitel'nye interfejsy dostupny po adresu
   http://gborg.PostgreSQL.org v sekcii Drivers/Interfaces.
d385 1
a385 2
    3.2) Kogda ya zapuskayu postmaster, ya poluchayu soobschenie Bad System
    Call ili soobschenie core dumped. Pochemu?
d387 5
a391 36
   `Eto mozhet byt' vyzvano raznymi problemami, no pervoe, chto nuzhno
   sdelat' - `eto ubedit'sya v tom, chto v vashem yadre ustanovleno
   rasshirenie System V. PostgreSQL trebuet, chtoby yadro podderzhivalo
   razdelyaemuyu pamyat' i semafory.
   
    3.3) Kogda ya pytayus' zapustit' postmaster, ya poluchayu oshibki
    IpcMemoryCreate. Pochemu?
    
   Libo u vas v yadre nepravil'nye nastrojki razdelyaemoj pamyati, libo
   vashemu yadru nuzhno bol'shee kolichestvo dostupnoj razdelyaemoj
   pamyati. Te konkretnye dejstviya, kotorye vam nuzhno proizvesti
   zavisyat ot arhitektury vashej mashiny i ot togo kak mnogo buferov i
   backend processov vy nastroili dlya postmaster. Dlya bol'shinstva
   sistem, s kolichestvom buferov i processov po umolchaniyu, neobhodimyj
   minimum - `eto okolo 1 megabajta. Podrobnosti o razdelyaemoj pamyati i
   semaforah smotrite v Rukovodstve administratora PostgreSQL..
   
    3.4) Kogda ya pytayus' zapustit' postmaster, ya poluchayu oshibki
    IpcSemaphoreCreate. Pochemu?
    
   Esli `eto soobschenie IpcSemaphoreCreate: semget failed (No space left
   on device) to nastrojki vashego yadra takovy, chto emu ne hvataet
   semaforov. Postgres trebuet odin semafor na potencial'nyj backend
   process. Vremennym resheniem yavlyaetsya zapusk postmaster s
   nastrojkami na mesh'shee kolichestvo backend processov. Ispol'zujte -N
   s znacheniem men'shim chem 32, kotoroe prinyato po umolchaniyu. Bolee
   pravil'noe reshenie - `eto uvelichit' znacheniya SEMMNS i SEMMNI v
   nastrjkah yadra.
   
   Neispravnye semafory takzhe mogut privesti k padeniyu SUBD vo vremya
   dostupa k baze dannyh.
   
   Esli vy poluchili kakoe-libo drugoe soobschenie ob oshibke, to vpolne
   vozmozhno, chto v vashem yadre voobsche ne nastroena podderzhka
   semaforov. Smotrite podrobnosti o razdelyaemoj pamyati i semaforah v
   Rukovodstve Administratora PostgreSQL.
d393 2
a394 1
    3.5) Kak mne upravlyat' soedineniyami s drugih komp'yuterov?
d396 2
a397 5
   Po umolchaniyu, PostgreSQL razreshaet tol'ko soedineniya na lokal'noj
   mashine cherez sokety domena Unix ili TCP/IP soedineniya. Drugie
   mashiny ne smogut podklyuchit'sya k baze poka vy ne izmenite
   listen_addresses v postgresql.conf i poka ne budet razreshena
   host-avtorizaciya v fajle $PGDATA/pg_hba.conf.
d399 34
a432 2
    3.6) Kakie nastrojki mne nuzhno sdelat' dlya uluchsheniya
    proizvoditel'nosti?
d434 14
a447 58
   Nesomnenno, indeksy mogut uvelichit' skorost' vypolneniya zaprosov.
   Komanda EXPLAIN ANALYZE pozvolyaet vam posmotret' kak PostgreSQL
   interpretiruet vash zapros i kakie indeksy ispol'zuyutsya.
   
   Esli vy vypolnyaete mnogo operatorov INSERT, rassmotrite vozmozhnost'
   vypolnyat' ih v bol'shoj pachke, ispol'zuya komandu COPY. `Eto
   znachitel'no bystree, chem otdel'nye INSERT. Vo-vtoryh, operatory vne
   bloka tranzakcii BEGIN WORK/COMMIT sami vypolnyayut tranzakciyu.
   Podumajte nad vypolneniem neskol'kih operatorov v odnom bloke
   tranzakcii. `Eto umen'shit kolichestvo tranzakcij. Takzhe, zadumajtes'
   nad udaleniem i peresozdaniem indeksov, kogda vy vypolnyaete bol'shie
   izmeneniya dannyh.
   
   Suschestvuet neskol'ko opcij nastrojki v Rukovodstve Administratora
   PostgreSQL. Vy mozhete zapretit' fsync() pri starte postmaster s
   opciej -o -F. `Eto predotvratit vyzovy fsync(), kotorye privodyat k
   sbrosu dannyh na disk posle kazhdoj tranzakcii.
   
   Vy mozhete takzhe ispol'zovat' opciyu shared_buffers -B dlya
   uvelicheniya kolichestva buferov razdelyaemoj pamyati, kotoraya
   ispol'zuetsya backend processami. Esli vy sdelaete znachenie `etogo
   parametra slishkom bol'shim, to postmaster mozhet ne zapustitsya
   potomu chto vy ischerpaete ogranichenie yadra na ob"em razdelyaemoj
   pamyati. Kazhdyj bufer imeet razmer v 8 kilobajt i po umolchaniyu
   vydelyaetsya 1000 buferov.
   
   Vy mozhete takzhe ispol'zovat' backend opcii sort_mem i work_mem dlya
   uvelicheniya maksimal'nogo kolichestva pamyati, kotoroe ispol'zuetsya
   backend processom dlya vremennyh sortirovok. Znachenie po umolchaniyu
   sostavlyaet 1024 (t.e. 1MB).
   
   Vy takzhe mozhete ispol'zovat' komandu CLUSTER dlya gruppirovki dannyh
   v tablicah na sovpadayuschij indeks. Podrobnosti smotrite na stranice
   rukovodstva po komande CLUSTER.
   
    3.7) Kakie vozmozhnosti dlya otladki est' v nalichii?
    
   PostgreSQL imeet neskol'ko vozmozhnostej, pozvolyayuschie poluchit'
   informaciyu o sostoyanii, kotoraya mozhet byt' ispol'zovana v
   otladochnyh celyah.
   
   Vo-pervyh, pri zapuske configure s opciej --enable-cassert, mnogie
   vyzovy assert() pozvolyayut otslezhivat' rabotu backend processa i
   ostanovku programmy pri vozniknovenii kakih-libo neozhidannostej.
   
   I postmaster, i postgres imeyut neskol'ko otladochnyh opcij.
   Vo-pervyh, pri zapuske postmaster, ubedites', chto standartnyj vyvod i
   vyvod oshibok osuschestvlyayutsya v fajl zhurnala:
    cd /usr/local/pgsql
    ./bin/postmaster >server.log 2>&1 &

   `Eto privedet k poyavleniyu fajla server.log v glavnom kataloge
   PostgreSQL. `Etot fajl soderzhit poleznuyu informaciyu o problemah ili
   oshibkah, voznikshih na servere. Postmaster imeet opciyu -d, kotoraya
   pozvolyaet poluchat' pri protokolirovanii bolee detal'nuyu infrmaciyu.
   Dlya opcii -d ukazyvaetsya chislo, kotoroe zadaet uroven' otladki.
   Bud'te ostorozhny, tak kak vysokij uroven' otladki privodit k
   generacii fajlov zhurnala bol'shogo razmera.
d453 1
a453 1
   zapyatoj. Esli vy proizvodili kompilyaciyu s otladochnymi simvoloami,
d460 8
a467 14
   PID processa postgres, ispol'zuemyj psql, ispol'zuya
        SELECT pg_backend_pid()


   Ispol'zujte otdadchik dlya podklyucheniya k postgres PID. Vy mozhete
   ustanovit' tochki preryvaniya v otladchike i zapustit' zapros iz psql.
   Esli vy proizvodite otladku zapuska postgres, vy mozhete ustanovit'
   PGOPTIONS="-W n", i zatem zapustit' psql. `Eta opciya privodit k
   zaderzhke processa zapuska na n sekund, v techenie kotoryh vy mozhete
   podklyuchit' k processu otladchik, ustanovit' lyubye tochki
   preryvaniya i prodolzhit' zapusk.
   
   Programma postgres imeet opcii -s, -A, i -t kotorye mogut byt' ochen'
   poleznymi dlya otladki i izmereniya proizvoditel'nosti.
d476 1
a476 1
    3.8) Pochemu ya poluchayu soobschenie "Sorry, too many clients" kogda
d479 5
a483 32
   Vam nuzhno uvelichit' ogranichenie na kolichestvo konkuretnyh backend
   processov pri zapuske postmaster.
   
   Po umolchaniyu ustanovlen limit na 32 processa. Vy mozhete uvelichit'
   `etot limit perezapustiv postmaster s nuzhnym znacheniem processov,
   kotoroe ukazyvaetsya v opcii -N ili izmeniv fajl postgresql.conf.
   
   Zametim, chto esli vy zadadite v opcii -N znachenie bol'she 32, to vy
   takzhe dolzhny uvelichit' znachenie v opcii -B kotoroe po umolchaniyu
   ustanovleno v 64; Znachenie opcii -B dolzhno byt' po krajnej mere
   vdvoe bol'she znacheniya opcii -N, i vozmozhno eschio bol'she dlya
   luchshej proizvoditel'nosti. Dlya bol'shego kolichestva backend
   processov, vam takzhe neploho bylo by uvelichit' nekotorye parametry
   yadra Unix. `Eto takie parametry, kak maksimal'noe kolichestvo blokov
   razdelyaemoj pamyati, SHMMAX; maksimal'noe kolichestvo semaforov,
   SEMMNS i SEMMNI; maksimal'noe kolichestvo processov, NPROC;
   maksimal'noe kolichestvo processov na pol'zovatelya, MAXUPRC; i
   maksimal'noe kolichestvo otkrytyh fajlov, NFILE i NINODE. Prichina
   sozdaniya ogranicheniya na kolichestvo backend processov kak raz i
   sostoit v tom, chtoby vashej sisteme hvatilo resursov.
   
    3.9) CHto nahoditsya v kataloge pgsql_tmp?
    
   Dannyj katalog soderzhit vremennye fajly, generiruemye obrabotchikom
   zaprosa. Naprimer, esli dlya vypolneniya ORDER BY nuzhna sortirovka i
   `eta sortirovka trebuet pamyati bol'she, chem dopuskaet parametr -S u
   backend'a, to dlya hraneniya dopolnitel'nyh dannyh sozdayutsya
   vremennye fajly.
   
   `Eti vremennye fajly dolzhny udalyat'sya avtomaticheski, no `etogo
   mozhet ne proizojti, esli backend ruhnul vo vremya sortirovki. Ostanov
   i zapusk servernogo processa obespechit ih udalenie iz kataloga.
d485 1
a485 1
    3.10) Pochemu neobhodimo delat' dump i restore pri obnovlenii vypuskov
d489 1
a489 1
   podvypuskami. Takim obrazom obnovlenie s versii 7.2 do 7.2.1 ne
d491 1
a491 1
   vypuska (t.e. pri obnovlenii naprimer, s 7.2 na 7.3) chasto menyaetsya
d503 1
a503 1
    3.11) Kakoe komp'yuternoe "zhelezo" ya dolzhen ispol'zovat'?
d518 1
a518 5
    4.1) V chem otlichie mezhdu binarnym i normal'nym kursorom?
    
   Smotrite opisanie na stranicah rukovodstva posvyaschennym DECLARE.
   
    4.2) Kak vypolnit' SELECT tol'ko dlya neskol'kih pervyh strochek zaprosa?
d521 6
a526 8
   Smotrite stanicu rukovodstva posvyaschennuyu FETCH ili ispol'zujte
   SELECT ... LIMIT....
   
   Dazhe esli vy hotite poluchit' tol'ko pervye neskol'ko zapisej, budet
   vypolnen ves' zapros. Rassmotrim zapros, kotoryj imeet ORDER BY. Esli
   est' kakoj-libo indeks, kotoryj sovpadaet s ORDER BY, PostgreSQL
   mozhet vydat' tol'ko neskol'ko pervyh zaproshennyh zapisej ili mozhet
   vypolnyat' zapros poka ne budut vydany zhelaemye zapisi.
d534 3
a536 1
    4.3) Kak poluchit' spisok tablic ili drugih komponentov v psql?
d545 7
a551 4
   vypolneniya zadannyh vami komand. PostgreSQL takzhe predostavlyaet
   SQLi sovmestimyj s INFORMATION SCHEMA interfejs, s pomosch'yu
   kotorogo, vy mozhete sformirovat' zapros na poluchenie informacii o
   baze dannyh.
d553 5
a557 1
    4.4) Kak udalit' kolonku iz tablicy ili izmenit' eio tip dannyh?
d559 4
a562 13
   DROP COLUMN funkcional'nost' byla dobavlena v vypusk 7.3 s operatorom
   ALTER TABLE DROP COLUMN. V rannih versiyah, mozhno sdelat' tak:
    BEGIN;
    LOCK TABLE old_table;
    SELECT ...  -- vyborka vseh kolonok za isklyucheniem toj, kotoruyu hotite u
dalit'
    INTO TABLE new_table
    FROM old_table;
    DROP TABLE old_table;
    ALTER TABLE new_table RENAME TO old_table;
    COMMIT;

   Dlya izmeneniya tipa dannyh kolonki, sdelajte tak:
d569 2
a570 1
    4.5) Kakovy maksimal'nye razmery dlya zapisej, tablic i bazy dannyh?
d573 10
a582 10
    Maksimal'nyj razmer bazy?                    neogranichen (suschestvuyut ba
zy na 32 TB)
    Maksimal'nyj razmer tablicy?                 32 TB
    Maksimal'nyj razmer zapisi?                  1.6 TB
    Maksimal'nyj razmer polya?                    1 GB
    Maksimal'noe kolichestvo zapisej v tablice?   neogranicheno
    Maksimal'noe kolichestvo kolonok v tablice?   250-1600 v zavisimosti ot tip
a
    Maksimal'noe kolichestvo indeksov v tablice?  neogranicheno

d597 1
a597 1
    4.6) Kak mnogo diskovogo prostranstva v baze dannyh nuzhno dlya sohraneniya
d608 1
a608 1
    32 bajt: na kazhdyj zagolovok zapisi (priblizitel'no)
d610 1
a610 1
  +  4 bajta: ukazatel' na stranice dlya vsej zapisi
d612 1
a612 1
    60 bajt na zapis'
d617 2
a618 2
   ---------------------   =  136 zapisej na stranicu BD (okruglionno)
     60 bajt na zapis'
d622 1
a622 1
   128 zapisej na stranicu
d632 2
a633 16
    4.7) Kak mne ubedit'sya, chto suschestvuyut nuzhnye mne tablicy, indeksy,
    bazy dannyh i pol'zovateli?
    
   psql imeet neskol'ko komand, nachinayuschihsya s obratnoj kosoj
   cherty, dlya togo chtoby prosmatrivat' takuyu informaciyu. Ispol'zujte
   \? dlya togo, chtoby uvidet' `eti komandy. Takzhe suschestvuyut
   sistemnye tablicy, imya kotoryh nachinaetsya na pg_ i v kotoryh takzhe
   soderzhitsya `eta informaciya. Eschio, psql -l pokazhet spisok vseh
   baz dannyh.
   
   Takzhe smotrite fajl pgsql/src/tutorial/syscat.source. V nem
   predstavleny mnogie operatory SELECT kotorye nuzhny dlya polucheniya
   informacii iz sistemnyh tablic bazy dannyh.
   
    4.8) U menya medlenno rabotayut zaprosy ili ne proishodit ispol'zovaniya
    indeksov. Pochemu?
d637 1
a637 1
   zapros vybiraet tol'ko malen'kij procent zapisej v tablice. Tak
d646 1
a646 1
   zapisej v tablice i esli on dolzhen ispol'zovat' indeksy, to on mozhet
d648 3
a650 3
   optimal'nogo poryadka svyazyvaniya i metoda svyazyvaniya. Sbor
   statistiki dolzhen periodicheski vypolnyatsya pri izmenenii
   soderzhimogo tablicy.
d679 2
a680 2
       indeksy. Vmesto nego, ispol'zujte funkcional'nye indeksy, kotorye
       opisyvayutsya v sekcii 4.12.
d682 4
a685 9
       potomu chto ne suschestvuet vozmozhnosti uznat' next-greater
       simvol dlya ne-C lokali. Vy mozhete dlya takih sluchaev sozdat'
       special'nyj indeks
        text_pattern_ops

       kotoryj rabotaet tol'ko dlya
        LIKE

       indeksirovaniya.
d691 1
a691 1
    4.9) Kak posmotret' na to, kak optimizator vypolnyaet moj zapros?
d695 1
a695 34
    4.10) CHto takoe R-tree indeks?
    
   R-tree indeks ispol'zuetsya dlya indeksirovaniya prostranstvennyh
   dannyh. Indeks h`esha ne mozhet upravlyat' poiskami diapazona. B-tree
   indeks upravlyaet tol'ko poiskami diapazona v odnom izmerenii. R-tree
   indeks mozhet upravlyat' mnogorazmernymi dannymi. Naprimer, esli
   R-tree indeks mozhet byt' vstroen v atribut tipa point, to sistema
   mozhet bolee `effektivno otvetit' na zapros tipa "vybrat' vse tochki
   vnutri zadannogo chetyrehugol'nika."
   
   Kanonicheskij istochnik, opisyvayuschij pervonachal'noe sozdanie
   R-tree `eto:
   
   Guttman, A. "R-trees: A Dynamic Index Structure for Spatial
   Searching." Proceedings of the 1984 ACM SIGMOD Int'l Conf on Mgmt of
   Data, 45-57.
   
   Vy mozhete najti `etot dokument v knige Stounbrejkera "Readings in
   Database Systems".
   
   Vstroennnye R-tree mogut upravlyat' poligonami i boksami. V teorii,
   R-tree mogut byt' rasshireny dlya upravleniya bol'shim kolichestvom
   izmerenij. Na praktike, rasshirenie R-tree trebuet nekotoryh usilij i
   u nas, v dannyj moment, net kakoj-libo dokumentacii o tom, kak `eto
   sdelat'.
   
    4.11) CHto takoe Genetic Query Optimizer?
    
   Modul' GEQO proizvodit bystruyu optimizaciyu zaprosa, kogda proishodit
   svyazyvanie mnogih tablic cherez Genetic Algorithm (GA). `Eto
   pozvolyaet upravlyat' bol'shimi zaprosami na svyazyvanie cherez
   neistoschayuschij poisk.
   
    4.12) Kak mne vypolnit' poisk regulyarnogo vyrazheniya i poisk nezavisimyj
d709 1
a709 1
   esli vy sozdadite funkcional'nyj indeks, on budet ispol'zovan:
d712 1
a712 1
    4.13) Kak ya mogu opredelit', chto znachenie polya ravno NULL v kakom-libo
d717 1
a717 1
    4.14) Kakovy otlichiya mezhdu raznymi simvol'nymi tipami?
d719 8
a726 11
Tip            Vnutrennee imya   Zamechaniya
--------------------------------------------------
VARCHAR(n)      varchar         razmer zadaet maksimal'nuyu dlinu, net zapolnen
iya
CHAR(n)         bpchar          zapolnyaetsya pustotoj do fiksirovannoj dliny
TEXT            text            net zadavaemogo verhnego ogranicheniya ili dlin
y
BYTEA           bytea           massiv bajt peremennoj dliny (mozhno ispol'zova
t' null-bajt bez opaski)
"char"          char            odin simvol

d749 1
a749 1
    4.15.1) Kak mne sozdat' pole serial/s-avto-uvelicheniem?
d766 1
a766 5
   posvyaschennoj create_sequence. Vy takzhe mozhete ispol'zovat' kazhdoe
   pole OID v zapisi kak unikal'noe znachenie. Odnako, esli vam nuzhen
   damp i perezagruzka bazy dannyh, vam neobhodimo ispol'zovat' komandu
   pg_dump s opciej -o ili opciyu COPY WITH OIDS dlya sohraneniya
   znachenij polya OID.
d768 1
a768 1
    4.15.2) Kak mne poluchit' znachenie pri vstavke SERIAL?
d773 1
a773 1
   4.15.1, primer v psevdoyazyke pokazhet kak `eto delaetsya:
d790 1
a790 9
   I nakonec, vy mozhete ispol'zovat' znachenie OID, vozraschaemoe iz
   opertora INSERT chtoby uvidet' znachenie po umolchaniyu, chto
   predpolozhitel'no yavlyaetsya naimenee perenosimym na drugie platformy
   resheniem, k tomu zhe znachenie oid budet urezat'sya, kogda ono
   dostignet 4 milliardov. V Perl, ispol'zuya DBI s modulem Edmund
   Mergl'ya DBD::Pg, znachenie oid stanovitsya dostupnym cherez
   $sth->{pg_oid_status} posle $sth->execute().
   
    4.15.3) Ne mozhet li poluchit'sya tak, chto ispol'zovanie currval() i
d793 2
a794 2
   Net. currval() vozvraschaet tekuschee znachenie, naznachennoe vashem
   backend'om, a ne drugimi pol'zovatelyami.
d796 1
a796 1
    4.15.4) Pochemu chisla iz moej posledovatel'nosti ne ispol'zuyutsya snova
d805 1
a805 1
    4.16) CHto takoe OID? CHto takoe TID?
d807 13
a819 29
   Polya OID sluzhat unikal'nymi idetifikatorami zapisej v PostgreSQL.
   Kazhdaya zapis', kotoraya sozdaiotsya v PostgreSQL poluchaet
   unikal'nyj OID. Vse znacheniya OID generiruemye vo vremya initdb
   imeyut znacheniya men'she 16384 (iz include/access/transam.h). Vse
   sozdannye pol'zovatelem OID imeyut bOl'shie znachenie. Po umolchaniyu,
   vse `eti OID yavlyayutsya unikal'nymi ne tol'ko vnutri kakoj-libo
   tablicy ili bazy dannyh, no i vnutri vsej SUBD PostgreSQL.
   
   PostgreSQL ispol'zuet OID v svoih vnutrennih sistemnyh tablicah dlya
   svyazi zapisej i tablic. Znacheniya OID mogut byt' ispol'zovany dlya
   identifikacii zadannyh pol'zovatelem zapisej, a takzhe ispol'zovat'sya
   pri svyazyvaniyah. Rekomenduetsya ispol'zovat' tip kolonki OID dlya
   hraneniya znachenij OID Vy mozhete sozdat' indeks na pole OID dlya
   bolee bystrogo dostupa.
   
   Znacheniya OID naznachayutsya dlya vseh novyh zapisej iz central'noj
   oblasti, kotorye ispol'zuyutsya vsemi vsemi bazami dannyh. Esli vy
   hotite izmenit' OID na kakoe-libo drugoe znachenie ili esli vy hotite
   sozdat' kopiyu tablicy s takimizhe OID, to `eto mozhno sdelat' tak:
        CREATE TABLE new_table(mycol int);
        SELECT oid AS old_oid, mycol INTO tmp_table FROM old_table;
        COPY tmp_table TO '/tmp/pgtable';
        COPY new_table WITH OIDS FROM '/tmp/pgtable';
        DROP TABLE tmp_table;

   OID hranitsya kak 4-h bajtnoe celoe i ne mozhet prevyshat' znachenie v
   4 milliarda. Odnako, esche nikto ne soobschil o tom, chto takoe
   proizoshlo, no my planiruem do togo kak `eto sluchit'sya izbavitsya ot
   `etogo ogranicheniya.
d823 1
a823 1
   zapisi byli izmeneny ili peregruzheny.
d828 1
a828 19
    4.17) CHto oznachayut nekotorye terminy ispol'zuemye v PostgreSQL?
    
   Nekotoryj ishodnyj kod i staraya dokumentaciya ispol'zuyut
   obscheupotrebitel'nye terminy. Vot nekotorye iz nih:
     * table, relation, class
     * row, record, tuple
     * column, field, attribute
     * retrieve, select
     * replace, update
     * append, insert
     * OID, serial value
     * portal, cursor
     * range variable, table name, table alias
       
   Spisok obschih terminov po bazam dannyh mozhno najti na
   http://hea-www.harvard.edu/MST/simul/software/docs/pkgs/pgsql/glossary
   /glossary.html
   
    4.18) Pochemu ya poluchayu oshibku "ERROR: Memory exhausted in
d845 1
a845 1
    4.19) Kak mne uznat', kakaya versiya PostgreSQL zapuschena?
d849 1
a849 1
    4.20) Pochemu pri rabote s moim bol'shim ob"ektom ya poluchayu oshibku
d867 1
a867 1
    4.21) Kak mne sozdat' kolonku kotoraya po umolchaniyu budet soderzhat'
d871 1
a871 13
CREATE TABLE test (x int, modtime timestamp DEFAULT CURRENT_TIMESTAMP );

    4.22) Pochemu moi podzaprosy, ispol'zuyuschie IN tak medlenno rabotaeyut?
    
   V versiyah do 7.4, podzaprosy svyazyvalis' s roditel'skimi zaprosami
   cherez posledovatel'nyj perebor rezul'tatov pozaprosa dlya kazhdoj
   zapisi roditel'skogo zaprosa. Esli podzapros vozvraschaet tol'ko
   neskol'ko zapisej, a roditel'skij zapros vozvraschaet mnogo zapisej,
   IN rabotaet naibolee bystro. CHtoby uvelichit' skorost' v drugih
   zaprosah, zamenite IN na EXISTS:
    SELECT *
    FROM tab
    WHERE col IN (SELECT subcol FROM subtab);
d873 1
a873 14
   na:
    SELECT *
    FROM tab
    WHERE EXISTS (SELECT subcol FROM subtab WHERE subcol = col);

   CHtoby takaya konstrukciya rabotala bystro, kolonka subcol dolzhna
   byt' proindeksirovana.
   
   V versii 7.4 i vyshe, IN fakticheski ispol'zuet takoj zhe mehanizm
   svyazyvaniya kak i obychnye zaprosy, po`etomu predpochtitel'nym
   yavlyaetsya ispol'zovanie EXISTS
   .
   
    4.23) Kak mne vypolnit' vneshnee svyazyvanie?
d885 4
a888 4
   vozvraschayut lyubye nesvyazannye zapisi v t1 (kotorye ne sovpadayut s
   t2). RIGHT svyazyvanie dolzhno dobavit' nesvyazannye zapisi t2. FULL
   svyazyvanie dolzhno vozvratit' sovpavshie zapisi plyus vse
   nesvyazannye zapisi iz t1 i t2. Slovo OUTER yavlyaetsya
d892 1
a892 14
   V predyduschih versiyah, vneshnie svyazyvaniya mogli byt' `emulirovany
   ispol'zuya UNION i NOT IN. Naprimer, kogda proishodit svyazyvanie tab1
   i tab2, sleduyuschij zapros vypolnyaet vneshnee svyazyvanie dvuh
   tablic:
    SELECT tab1.col1, tab2.col2
    FROM tab1, tab2
    WHERE tab1.col1 = tab2.col1
    UNION ALL
    SELECT tab1.col1, NULL
    FROM tab1
    WHERE tab1.col1 NOT IN (SELECT tab2.col1 FROM tab2)
    ORDER BY col1

    4.24) Kak vypolnyat' zaprosy, ispol'zuyuschie neskol'ko baz dannyh?
d900 1
a900 1
   funkcij. Razumeetsya, klient mozhet odnovremenno ustanavlivat'
d904 1
a904 1
    4.25) Kak mne vernut' iz funkcii neskol'ko zapisej?
d906 2
a907 4
   V versii 7.3, vy mozhete legko vernut' neskol'ko zapisej ili kolonok
   iz kakoj-libo funkcii,
   http://techdocs.postgresql.org/guides/SetReturningFunctions
   .
d909 1
a909 1
    4.26) Pochemu ya ne mogu nadezhno sozdavat'/udalyat' vremennye tablicy v
d912 1
a912 1
   PL/PgSQL k`eshiruet soderzhimoe funkcii i odin iz negativnyh `effektov
d921 1
a921 1
    4.27) Kakie opcii shifrovaniya suschestvuyut?
d934 1
a934 2
       pri sohranenii v versii 7.3. V predyduschih versiyah, vy dolzhny
       razreshit' opciyu PASSWORD_ENCRYPTION v postgresql.conf.
d954 1
a954 1
    5.3) Kak mne napisat' C funkciyu, vozvraschayuschuyu zapis'?
@


1.23.4.1
log
@Update to Russian FAQ, HEAD and 8.0.X.
@
text
@d4 1
a4 1
   Data poslednego obnovleniya: Sreda 2 fevralya 12:44:03 EST 2005
d12 1
a12 1
   http://www.PostgreSQL.org/files/documentation/faqs/FAQ.html.
d15 1
a15 1
   na http://www.PostgreSQL.org/docs/faq/.
d22 4
a25 4
   1.3) Na kakih platformah rabotaet PostgreSQL?
   1.4) Gde mozhno vzyat' PostgreSQL?
   1.5) Gde poluchit' podderzhku?
   1.6) Kak mne soobschit' ob oshibke?
d31 5
a35 2
   1.11) Kak prisoedinitsya k komande razrabotchikov?
   1.12) Kak sravnivat' PostgreSQL s drugimi SUBD?
d39 1
a39 1
   2.1) Kakie interfejsy est' dlya PostgreSQL?
d43 1
d49 8
a56 2
   3.2) Kak mne upravlyat' soedineniyami s drugih komp'yuterov?
   3.3) Kakie nastrojki mne nuzhno sdelat' dlya uluchsheniya
d58 2
a59 2
   3.4) Kakie vozmozhnosti dlya otladki est' v nalichii?
   3.5) Pochemu ya poluchayu soobschenie "Sorry, too many clients" kogda
d61 2
a62 1
   3.6) Pochemu neobhodimo delat' dump i restore pri obnovlenii vypuskov
d64 1
a64 1
   3.7) Kakoe komp'yuternoe "zhelezo" ya dolzhen ispol'zovat'?
d68 2
a69 1
   4.1) Kak vypolnit' SELECT tol'ko dlya neskol'kih pervyh strochek
d71 4
a74 7
   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
d76 8
a83 4
   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
d86 1
a86 1
   4.9) Kak ya mogu opredelit', chto znachenie polya ravno NULL v
d88 4
a91 4
   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
d93 1
a93 1
   4.11.4) Pochemu chisla iz moej posledovatel'nosti ne ispol'zuyutsya
d96 3
a98 2
   4.12) CHto takoe OID? CHto takoe TID?
   4.13) Pochemu ya poluchayu oshibku "ERROR: Memory exhausted in
d100 2
a101 2
   4.14) Kak mne uznat', kakaya versiya PostgreSQL zapuschena?
   4.15) Pochemu pri rabote s moim bol'shim ob"ektom ya poluchayu oshibku
d103 1
a103 1
   4.16) Kak mne sozdat' kolonku kotoraya po umolchaniyu budet soderzhat'
d105 6
a110 4
   4.17) Kak vypolnit' vneshnee svyazyvanie?
   4.18) Kak vypolnyat' zaprosy, ispol'zuyuschie neskol'ko baz dannyh?
   4.19) Kak mne vernut' iz funkcii neskol'ko strok tablicy?
   4.20) Pochemu ya ne mogu nadezhno sozdavat'/udalyat' vremennye tablicy
d112 1
a112 1
   4.21) Kakie opcii shifrovaniya suschestvuyut?
d120 1
a120 1
   5.3) Kak mne napisat' C funkciyu, vozvraschayuschuyu stroku tablicy?
d129 32
a160 14
   PostgreSQL proiznositsya Post-Gres-Q-L (Post-Gres-K'yu-`El), takzhe
   chasto govoryat prosto Postgres.
   
   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/files/documentation/faqs/FAQ_DEV.html
d164 1
a164 6
   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:
d168 1
a168 1
   Portions copyright (c) 1996-2005, PostgreSQL Global Development Group
d193 6
a198 1
    1.3) Na kakih platformah rabotaet PostgreSQL?
d205 2
d215 1
a215 3
   http://forge.novell.com, 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.
d217 1
a217 1
    1.4) Gde mozhno vzyat' PostgreSQL?
d223 1
a223 1
    1.5) Gde poluchit' podderzhku?
d225 35
a259 5
   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).
d261 2
d265 1
a265 1
   ispol'zovat' v Unix vyzov programmy irc -c '#postgresql' "$USER"
a273 8
    1.6) 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.
   
d276 1
a276 1
   Poslednij vypusk PostgreSQL - `eto versiya 8.0.1
d278 1
a278 1
   My planiruem vypuskat' novye versii kazhdye 10-12 mesyacev.
d282 4
a285 5
   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.
d295 2
a296 3
   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.
d324 5
a328 1
    1.11) Kak prisoedinitsya k komande razrabotchikov?
d331 4
a334 4
   prochtite FAQ i dokumentaciyu dlya razrabotchikov PostgreSQL na nashem
   sajte ili v distributive. Zatem, podpishites' na spiski rassylki
   pgsql-hackers i pgsql-patches. Dalee, otpravlyajte ispravleniya
   (patches) vysokogo kachestva v spisok pgsql-patches.
d343 9
a351 1
    1.12) Kak sravnivat' PostgreSQL s drugimi SUBD?
d366 18
a383 11
          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. V sravnenii s MySQL ili linejnoj
          SUBD, my bystree, kogda pol'zovatelej mnogo, a takzhe na
          slozhnyh zaprosah i pri chtenii/zapisi zagruzki zaprosa. MySQL
          bystree dlya prostyh SELECT zaprosov, vypolnyaemyh nebol'shim
          kolichestvom pol'zovatelej. I razumeetsya, MySQL ne imeet
          kakih-libo vozmozhnostej iz perechislenyh vyshe, v sekcii
          Vozmozhnosti. My delaem upor na nadezhnost' i rasshirennye
          vozmozhnosti, no my takzhe prodolzhaem uvelichivat'
          proizvoditel'nost' s kazhdym vypuskom.
d407 1
a407 1
          (Smotrite Sekciyu 1.5.)
d416 27
d445 1
a445 1
    2.1) Kakie interfejsy est' dlya PostgreSQL?
d447 15
a461 10
   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://gborg.postgresql.org v
   sekcii Drivers/Interfaces, a takzhe cherez poisk v Internet.
d469 2
a470 2
   Dlya integracii s Web, PHP http://www.php.net yavlyaetsya neplohim
   interfejsom.
d472 2
a473 1
   V slozhnyh sluchayah, mnogie pol'zuyutsya Perl i CGI.pm ili mod_perl.
d478 2
a479 2
   Oni vklyuchayut PgAdmin III (http://www.pgadmin.org), PgAccess
   (http://www.pgaccess.org), RHDB Admin
d481 21
a501 4
   chastichno kommercheskoe PO) i Rekall (
   http://www.rekallrevealed.org/). Takzhe est' PhpPgAdmin (
   http://phppgadmin.sourceforge.net/) - interfejs k PostgreSQL,
   osnovannyj na Web.
d510 41
a550 1
    3.2) Kak mne upravlyat' soedineniyami s drugih komp'yuterov?
d553 4
a556 4
   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.
d558 1
a558 1
    3.3) Kakie nastrojki mne nuzhno sdelat' dlya uluchsheniya
d561 58
a618 52
   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://candle.pha.pa.us/main/writings/pgsql/hw_performance/inde
          x.html i http://www.powerpostgresql.com/PerfList/.
          
    3.4) Kakie vozmozhnosti dlya otladki est' v nalichii?
    
   Est' mnozhestvo ustanovok v nastrojkah servera, nachinayuschihsya na
   log_*, pozvolyayuschih protokolirovat' zaprosy i statistiku raboty
   processa, kotoraya ochen' polezna dlya otladki i izmereniya
   proizvoditel'nosti.
   
   Dlya predostavleniya bolee detal'noj informacii razrabotchikam servera
   pri otladke kakoj-libo problemy dolzhny pol'zovat'sya sleduyuschie
   instrukcii.
   
   Takim zhe obrazom mozhno proizvodit' i otladku severa, esli on
   rabotaet nepravil'no. Vo-pervyh, pri zapuske configure s opciej
   --enable-cassert, mnogie vyzovy assert() pozvolyayut otslezhivat'
   rabotu backend processa i ostanovku programmy pri vozniknovenii
   kakih-libo neozhidannostej.
d624 1
a624 1
   zapyatoj. Esli vy proizvodili kompilyaciyu s otladochnymi simvolami,
d631 14
a644 8
   PID processa postgres, ispol'zuemyj psql, ispol'zuya SELECT
   pg_backend_pid(). Ispol'zujte otladchik dlya podklyucheniya k postgres
   PID. Vy mozhete ustanovit' tochki preryvaniya v otladchike i zapustit'
   zapros iz psql. Esli vy proizvodite otladku zapuska postgres, vy
   mozhete ustanovit' PGOPTIONS="-W n", i zatem zapustit' psql. `Eta
   opciya privodit k zaderzhke processa zapuska na n sekund, v techenie
   kotoryh vy mozhete podklyuchit' k processu otladchik, ustanovit'
   lyubye tochki preryvaniya i prodolzhit' zapusk.
d653 1
a653 1
    3.5) Pochemu ya poluchayu soobschenie "Sorry, too many clients" kogda
d656 32
a687 5
   Vy dostigli ustanovlennogo po umolchaniyu ogranicheniya na 100 sessij
   podklyucheniya k baze dannyh. Vam neobhodimo uvelichit' dlya
   postmaster limit na kolichestvo konkurentnyh backend processov,
   izmeniv znachenie max_connections v fajle postgresql.conf i
   perestartovat' postmaster.
d689 1
a689 1
    3.6) Pochemu neobhodimo delat' dump i restore pri obnovlenii vypuskov
d693 1
a693 1
   podvypuskami. Takim obrazom obnovlenie s versii 7.4 do 7.4.1 ne
d695 1
a695 1
   vypuska (t.e. pri obnovlenii naprimer, s 7.3 na 7.4) chasto menyaetsya
d707 1
a707 1
    3.7) Kakoe komp'yuternoe "zhelezo" ya dolzhen ispol'zovat'?
d722 5
a726 1
    4.1) Kak vypolnit' SELECT tol'ko dlya neskol'kih pervyh strochek zaprosa?
d729 8
a736 6
   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.
d744 1
a744 3
    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?
d753 4
a756 7
   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.
d758 1
a758 5
   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?
d760 13
a772 4
   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:
d779 1
a779 2
    4.4) Kakovy maksimal'nye razmery dlya strok v tablice, tablic i bazy
    dannyh?
d782 10
a791 10
   
   Maksimal'nyj razmer bazy? neogranichen (suschestvuyut bazy na 32 TB)
   Maksimal'nyj razmer tablicy? 32 TB
   Maksimal'nyj razmer stroki? 1.6 TB
   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
   
d806 1
a806 1
    4.5) Kak mnogo diskovogo prostranstva v baze dannyh nuzhno dlya sohraneniya
d817 1
a817 1
    32 bajt: na kazhdyj zagolovok stroki v tablice (priblizitel'no)
d819 1
a819 1
  +  4 bajta: ukazatel' na stranice dlya vsej tablichnoj stroki
d821 1
a821 1
    60 bajt na stroku v tablice
d826 2
a827 2
   ---------------------   =  136 strok v tablice na stranicu BD (okruglionno)
     60 bajt na stroku v tablice
d831 1
a831 1
   128 strok v tablice na stranicu
d841 16
a856 2
    4.6) Pochemu moi zaprosy rabotayut medleno? Pochemu oni ne ispol'zuyut moi
    indeksy?
d860 1
a860 1
   zapros vybiraet tol'ko malen'kij procent strok v tablice. Tak
d869 1
a869 1
   strok v tablice i esli on dolzhen ispol'zovat' indeksy, to on mozhet
d871 3
a873 3
   optimal'nogo poryadka svyazyvaniya i metoda svyazyvaniya. Pri
   izmenenii soderzhimogo tablicy dolzhen periodicheski vypolnyatsya sbor
   statistiki.
d902 2
a903 2
       indeksy. Vmesto nego, ispol'zujte indeksy vyrazhenij, kotorye
       opisyvayutsya v sekcii 4.8.
d905 9
a913 4
       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.
d919 1
a919 1
    4.7) Kak posmotret' na to, kak optimizator vypolnyaet moj zapros?
d923 34
a956 1
    4.8) Kak mne vypolnit' poisk regulyarnogo vyrazheniya i poisk nezavisimyj
d970 1
a970 1
   esli vy sozdadite indeks vyrazheniya, on budet ispol'zovan:
d973 1
a973 1
    4.9) Kak ya mogu opredelit', chto znachenie polya ravno NULL v kakom-libo
d978 1
a978 1
    4.10) Kakovy otlichiya mezhdu raznymi simvol'nymi tipami?
d980 11
a990 8
   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
   
d1013 1
a1013 1
    4.11.1) Kak mne sozdat' pole serial/s-avto-uvelicheniem?
d1030 5
a1034 1
   posvyaschennoj create_sequence.
d1036 1
a1036 1
    4.11.2) Kak mne poluchit' znachenie pri vstavke SERIAL?
d1041 1
a1041 1
   4.11.1, primer v psevdoyazyke pokazhet kak `eto delaetsya:
d1058 9
a1066 1
    4.11.3) Ne mozhet li poluchit'sya tak, chto ispol'zovanie currval() i
d1069 2
a1070 2
   Net. currval() vozvraschaet tekuschee znachenie, naznachennoe vashej
   sessiej, a ne drugimi sessiyami.
d1072 1
a1072 1
    4.11.4) Pochemu chisla iz moej posledovatel'nosti ne ispol'zuyutsya snova
d1081 1
a1081 1
    4.12) CHto takoe OID? CHto takoe TID?
d1083 29
a1111 13
   Kazhdaya, sozdavaemaya v PostgreSQL tablichnaya stroka, poluchaet
   unikal'nyj indentifikator OID za isklyucheniem sluchaya kogda
   ispol'zovalos' WITHOUT OIDS. OID - `eto avtomaticheski naznachaemoe
   unikal'noe 4-h bajtovoe celoe chislo. 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'nyh znachenij v kolonkah 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.
d1115 1
a1115 1
   stroki v tablice byli izmeneny ili peregruzheny.
d1120 19
a1138 1
    4.13) Pochemu ya poluchayu oshibku "ERROR: Memory exhausted in
d1155 1
a1155 1
    4.14) Kak mne uznat', kakaya versiya PostgreSQL zapuschena?
d1159 1
a1159 1
    4.15) Pochemu pri rabote s moim bol'shim ob"ektom ya poluchayu oshibku
d1177 1
a1177 1
    4.16) Kak mne sozdat' kolonku kotoraya po umolchaniyu budet soderzhat'
d1181 13
a1193 1
CREATE TABLE test (x int, modtime TIMESTAMP DEFAULT CURRENT_TIMESTAMP );
d1195 14
a1208 1
    4.17) Kak mne vypolnit' vneshnee svyazyvanie?
d1220 4
a1223 4
   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
d1227 14
a1240 1
    4.18) Kak vypolnyat' zaprosy, ispol'zuyuschie neskol'ko baz dannyh?
d1248 1
a1248 1
   funkcij. Razumeetsya, klient mozhet odnovremenno takzhe ustanavlivat'
d1252 1
a1252 1
    4.19) Kak mne vernut' iz funkcii neskol'ko strok tablicy?
d1254 4
a1257 2
   Vy mozhete legko ispol'zovat' funkcii, vozvraschayuschie spisok,
   http://techdocs.postgresql.org/guides/SetReturningFunctions.
d1259 1
a1259 1
    4.20) Pochemu ya ne mogu nadezhno sozdavat'/udalyat' vremennye tablicy v
d1262 1
a1262 1
   PL/PgSQL k`eshiruet scenarii funkcii i odin iz negativnyh `effektov
d1271 1
a1271 1
    4.21) Kakie opcii shifrovaniya suschestvuyut?
d1284 2
a1285 1
       pri sohranenii v sistemnyh tablicah.
d1305 1
a1305 1
    5.3) Kak mne napisat' C funkciyu, vozvraschayuschuyu stroku tablicy?
@


1.23.4.2
log
@Update Russian FAQ.

Viktor Vislobokov
@
text
@d4 1
a4 1
   Data poslednego obnovleniya: Ponedel'nik 14 fevralya 23:35:09 EST 2005
d94 2
a95 2
   4.20) Pochemu ya poluchayu oshibku "missing oid", kogda obraschayuts'
   k vremennym tablicam v funkciyah PL/PgSQL?
d231 1
a231 1
   http://www.PostgreSQL.org/docs/books/awbook.html i
d253 2
a254 3
   Kniga po PostgreSQL na
   http://www.PostgreSQL.org/docs/books/awbook.html nauchit SQL.
   Suschestvuet drugaya kniga po PostgreSQL na
d909 2
a910 2
    4.20) Pochemu ya poluchayu oshibku "missing oid", kogda obraschayuts' k
    vremennym tablicam v funkciyah PL/PgSQL?
@


1.23.4.3
log
@Here's the patch to fix a lot of markup errors in the HTML FAQs. Doesn't
change content (at least not supposed to).

Magnus Hagander
@
text
@d523 5
a527 5
   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.
d824 4
a827 2
   stroki v tablice byli izmeneny ili peregruzheny. TID ispol'zuetsya
   indeksnymi zapisyami v kachestve ukazatelya na fizicheskie zapisi.
@


1.23.4.4
log
@Update Russian FAQ.

Viktor Vislobokov
@
text
@d4 1
a4 1
   Data poslednego obnovleniya: Ponedel'nik 30 maya 09:11:03 EDT 2005
d9 1
a9 1
   Pereviol na russkij: Viktor Vislobokov (corochoone@@perm.ru)
a32 1
   1.13) Kto upravlyaet PostgreSQL?
d73 2
a74 2
   4.9) Kak mne opredelit', chto znachenie polya ravno NULL v kakom-libo
   zaprose? Mogu ya otsortirovat' polya NULL ili net?
d83 1
a83 1
   4.12) CHto takoe OID? CHto takoe CTID?
d87 3
a89 1
   4.15) Kak mne sozdat' kolonku kotoraya po umolchaniyu budet soderzhat'
d91 16
a106 7
   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?
d111 2
a112 2
  1.1) CHto takoe PostgreSQL? Kak proiznositsya `eto nazvanie?
  
d128 2
a129 2
  1.2) Kakovy avtorskie prava na PostgreSQL?
  
d140 1
a140 2
   Portions Copyright (c) 1994-1996 Regents of the University of
   California
d164 2
a165 2
  1.3) Na kakih platformah rabotaet PostgreSQL?
  
d171 3
a173 3
   PostgreSQL takzhe rabotaet na operacionnyh sistemah Microsoft Windows,
   osnovannyh na NT, takih kak Win2000, WinXP i Win2003. Paket
   installyatora dostupen po adresu
d183 5
a187 4
  1.4) Gde mozhno vzyat' PostgreSQL?
  
   CHerez brauzer, ispol'zuya http://www.postgresql.org/ftp/ i cherez
   ftp, ispol'zuya ftp://ftp.PostgreSQL.org/pub/.
d189 2
a190 2
  1.5) Gde poluchit' podderzhku?
  
d208 2
a209 2
  1.6) Kak mne soobschit' ob oshibke?
  
d214 1
a214 1
   FTP sajte ftp://ftp.PostgreSQL.org/pub/.
d216 3
a218 3
  1.7) Kakaya poslednyaya versiya?
  
   Poslednij vypusk PostgreSQL - `eto versiya 8.0.2
d220 1
a220 2
   My planiruem vypuskat' novye starshie versii kazhdyj god, a mladshie
   versii kazhdye neskol'ko mesyacev.
d222 2
a223 2
  1.8) Kakaya dokumentaciya imeetsya v nalichii?
  
d232 2
a233 4
   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
d244 3
a246 3
  1.9) Kak najti informaciyu ob izvestnyh oshibkah ili otsutstvuyuschih
  vozmozhnostyah?
  
d251 6
a256 10
  1.10) Kak mne nauchit'sya SQL?
  
   Vo-pervyh, voz'mite odnu iz knig po PostgreSQL, o kotoryh govorilos'
   vyshe. Esche odin uchebnik - `eto kniga "Teach Yourself SQL in 21
   Days, Second Edition" (Osvoj samostoyatel'no SQL za 21 den', Vtoraya
   redakciya) na http://members.tripod.com/er4ebus/sql/index.htm. Mnogim
   iz nashih pol'zovatelej nravitsya kniga The Practical SQL Handbook,
   Bowman, Judith S., et al., Addison-Wesley. Drugim nravitsya The
   Complete Reference SQL, Groff et al., McGraw-Hill.
   Est' prekrasnyj uchebnik na
d261 22
a282 3
  1.11) Kak prisoedinitsya k komande razrabotchikov?
  
   Smotrite FAQ dlya razrabotchikov.
d284 2
a285 2
  1.12) Kak sravnivat' PostgreSQL s drugimi SUBD?
  
d301 9
a309 2
          bystree, v kakih-to medlennee. Nasha proizvoditel'nosti obychno
          +/-10% po sravneniyu s drugimi SUBD.
a341 13
  1.13) 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.)
     _________________________________________________________________
   
d344 2
a345 2
  2.1) Kakie interfejsy est' dlya PostgreSQL?
  
d357 3
a359 3
  2.2) Kakie instrumenty suschestvuyut dlya ispol'zovaniya PostgreSQL cherez
  Web?
  
d366 1
a366 2
   V slozhnyh sluchayah, mnogie pol'zuyutsya Perl i DBD::Pg s CGI.pm ili
   mod_perl.
d368 10
a377 4
  2.3) Est' li u PostgreSQL graficheskij interfejs pol'zovatelya?
  
   Da, podrobnosti smotrite v
   http://techdocs.postgresql.org/guides/GUITools.
d382 2
a383 2
  3.1) Kak mne ustanovit' PostgreSQL v mesto otlichnoe ot /usr/local/pgsql?
  
d386 2
a387 2
  3.2) Kak mne upravlyat' soedineniyami s drugih komp'yuterov?
  
d394 3
a396 2
  3.3) Kakie nastrojki mne nuzhno sdelat' dlya uluchsheniya proizvoditel'nosti?
  
d433 2
a434 2
  3.4) Kakie vozmozhnosti dlya otladki est' v nalichii?
  
d440 40
a479 3
  3.5) Pochemu ya poluchayu soobschenie "Sorry, too many clients" kogda
  pytayus' podklyuchit'sya k baze?
  
d486 3
a488 3
  3.6) Pochemu neobhodimo delat' dump i restore pri obnovlenii vypuskov
  PostgreSQL?
  
d490 1
a490 1
   podvypuskami. Takim obrazom obnovlenie s versii 7.4.0 do 7.4.1 ne
d504 2
a505 2
  3.7) Kakoe komp'yuternoe "zhelezo" ya dolzhen ispol'zovat'?
  
d519 3
a521 3
  4.1) Kak vypolnit' SELECT tol'ko dlya neskol'kih pervyh strochek zaprosa?
  Proizvol'noj stroki?
  
d523 5
a527 5
   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.
d535 4
a538 4
  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?
  
d558 2
a559 2
  4.3) Kak izmenit' tip dannyh kolonki?
  
d570 3
a572 2
  4.4) Kakovy maksimal'nye razmery dlya strok v tablice, tablic i bazy dannyh?
  
d598 3
a600 3
  4.5) Kak mnogo diskovogo prostranstva v baze dannyh nuzhno dlya sohraneniya
  dannyh iz obychnogo tekstovogo fajla?
  
d633 9
a641 9
  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.
d668 2
a669 2
   zapustite zapros snova, chtoby uvidet', dejstvitel'no li skanirovanie
   indeksov bystree.
d692 2
a693 2
  4.7) Kak posmotret' na to, kak optimizator vypolnyaet moj zapros?
  
d696 4
a699 4
  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?
  
d713 7
a719 18
  4.9) Kak mne opredelit', chto znachenie polya ravno NULL v kakom-libo
  zaprose? Mogu ya otsortirovat' 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 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?
  
d734 4
a737 3
   chem oboznachennyj razmer. Odnako, dlinnye znacheniya takzhe
   szhimayutsya, tak chto zanimaemoe diskovoe prostranstvo mozhet takzhe
   byt' i men'she, chem ozhidalos'.
d750 2
a751 2
  4.11.1) Kak mne sozdat' pole serial/s-avto-uvelicheniem?
  
d769 2
a770 2
  4.11.2) Kak mne poluchit' znachenie pri vstavke SERIAL?
  
d791 3
a793 3
  4.11.3) Ne mozhet li poluchit'sya tak, chto ispol'zovanie currval() i
  nextval() privedet k zaciklirovaniyu s drugimi pol'zovatelyami?
  
d797 4
a800 4
  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?
  
d806 2
a807 2
  4.12) CHto takoe OID? CHto takoe CTID?
  
d822 8
a829 10
   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()"?
  
d844 2
a845 2
  4.14) Kak mne uznat', kakaya versiya PostgreSQL zapuschena?
  
d848 21
a868 3
  4.15) Kak mne sozdat' kolonku kotoraya po umolchaniyu budet soderzhat'
  tekuschee vremya?
  
d872 2
a873 2
  4.16) Kak mne vypolnit' vneshnee svyazyvanie?
  
d891 2
a892 2
  4.17) Kak vypolnyat' zaprosy, ispol'zuyuschie neskol'ko baz dannyh?
  
d903 2
a904 2
  4.18) Kak mne vernut' iz funkcii neskol'ko strok tablicy?
  
d908 3
a910 3
  4.19) Pochemu ya poluchayu oshibku "relation with OID #### ne suschestvuet",
  kogda obraschayuts' k vremennym tablicam v funkciyah PL/PgSQL?
  
d920 47
a966 18
  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.
@


1.23.4.5
log
@Update Russian FAQ.

Victor Vislobokov
@
text
@d4 1
a4 1
   Data poslednego obnovleniya: Pyatnica 16 sentyabrya 14:07:22 EDT 2005
d9 1
a9 1
   Pereviol na russkij: Viktor Vislobokov (admin@@linuxshare.ru)
a96 2
   4.21) Pochemu imena tablicy i kolonok ne raspoznayutsya v v moiom
   zaprose?
d104 1
a104 2
   inogda govoryat prosto Postgres. Vy mozhete uslyshat' kak `eto
   proiznositsya s pomosch'yu audiofajla, kotoryj dostupen v formate MP3.
d208 1
a208 1
   Poslednij vypusk PostgreSQL - `eto versiya 8.0.3
a537 7
   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.
   
d549 1
a549 1
    28 bajt: na kazhdyj zagolovok stroki v tablice (priblizitel'no)
d553 1
a553 1
    56 bajt na stroku v tablice
d558 2
a559 2
   ---------------------   =  146 strok v tablice na stranicu BD (okruglionno)
     56 bajt na stroku v tablice
d562 2
a563 2
   ----------------------- =  685 stranic v BD (okruglionno)
   146 strok v tablice na stranicu
d565 1
a565 1
   685 stranic BD * 8192 bajt na stranicu = 5,611,520 bajt (5.6 MB)
a652 7
   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.
   
a871 15
   
  4.21) Pochemu imena tablicy i kolonok ne raspoznayutsya v v moiom zaprose?
  
   Naibolee chasto `eto proishodit 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
@


1.22
log
@Update Russian FAQ.

Viktor Vislobokov
@
text
@d4 1
a4 1
   Data poslednego obnovleniya: Vtornik 31 avgusta 23:28:03 EDT 2004
d112 1
a112 2
   4.27) Kakie opcii replikacii suschestvuyut?
   4.28) Kakie opcii shifrovaniya suschestvuyut?
d210 3
a212 1
   http://pgfoundry.org/projects/pginstaller.
d263 7
a269 4
   Esche suschestvuet IRC kanal na Freenode i EFNet, s nazvaniem
   #PostgreSQL. YA ispol'zuyu dlya podklyucheniya k `etomu kanalu komandu
   Unix irc -c '#PostgreSQL' "$USER" irc.phoenix.net. ili irc -c
   '#PostgreSQL' "$USER" irc.freenode.net.
d276 1
a276 1
   Poslednij vypusk PostgreSQL - `eto versiya 7.4.5
d345 2
a346 3
   Pozhalujsta posetite stranichku PostgreSQL BugTool na
   http://www.PostgreSQL.org/bugs/bugs.php, na kotoroj predostavleny
   detal'nye instrukcii o tom kak otpravit' soobschenie ob oshibke.
d366 1
a366 1
          PostgreSQL imeet proizvoditel'nost' shozhuyu s drugimi
d479 6
a484 4
   (http://www.pgadmin.org), RHDB Admin (http://sources.redhat.com/rhdb/)
   i Rekall ( http://www.thekompany.com/products/rekall/, kommercheskij).
   Takzhe est' PhpPgAdmin ( http://phppgadmin.sourceforge.net/) -
   interfejs k PostgreSQL, osnovannyj na Web.
d528 1
a528 1
   semaforah smotrite v Rukovodstve administratora PostgreSQL.
d574 4
a577 4
   Suschestvuet neskol'ko opcij nastrojki. Vy mozhete zapretit' fsync()
   pri starte postmaster s opciej -o -F. `Eto predotvratit vyzovy
   fsync(), kotorye privodyat k sbrosu dannyh na disk posle kazhdoj
   tranzakcii.
d579 1
a579 1
   Vy mozhete takzhe ispol'zovat' dlya postmaster opciyu -B dlya
d585 1
a585 1
   vydelyaetsya 64 bufera.
d587 4
a590 4
   Vy mozhete takzhe ispol'zovat' backend opciyu -S dlya uvelicheniya
   maksimal'nogo kolichestva pamyati, kotoroe ispol'zuetsya backend
   processom dlya vremennyh sortirovok. Znachenie dlya opcii -S zadaetsya
   v kilobajtah i po umolchaniyu ravno 512 (t.e. 512K).
d631 7
a637 4
   PID processa postgres, ispol'zuemyj psql. Ispol'zujte otdadchik dlya
   podklyucheniya k postgres PID. Vy mozhete ustanovit' tochki
   preryvaniya v otladchike i zapustit' zapros iz psql. Esli vy
   proizvodite otladku zapuska postgres, vy mozhete ustanovit'
d904 10
a913 1
     * Vo vremya initdb dolzhna ispol'zovat'sya lokal' po umolchaniyu C.
d1271 1
a1271 11
    4.27) Kakie opcii replikacii suschestvuyut?
    
   Est' neskol'ko opcij dlya replikacii tipa master/slave. Oni dopuskayut
   ispol'zovanie tol'ko master servera dlya vneseniya izmenenij v bazu
   dannyh, a slave servery prosto pozvolyayut chitat' dannye iz bazy. Ob
   `etom chitajte zdes':
   http://gborg.PostgreSQL.org/genpage?replication_research. O replikacii
   s neskol'kimi master serverami chitajte zdes':
   http://gborg.PostgreSQL.org/project/pgreplication/projdisplay.php.
   
    4.28) Kakie opcii shifrovaniya suschestvuyut?
@


1.21
log
@Update Russian FAQ.

Viktor Vislobokov
@
text
@d4 1
a4 1
   Data poslednego obnovleniya: CHetverg 6 maya 23:28:03 EDT 2004
d64 1
d208 4
a211 23
   Klient
   
   Dlya zapuska na platformah MS Windows vozmozhna kompilyaciya C
   biblioteki libpq, psql, drugih interfesov i klientskih prilozhenij. V
   `etom sluchae, klient zapuskaetsya na MS Windows i svyazyvaetsya po
   TCP/IP s serverom, zapuschennym na odnoj iz podderzhivaemyh Unix
   platform. V distributiv vklyuchaetsya fajl win32.mak dlya togo, chtoby
   mozhno bylo provesti sborku biblioteki libpq i psql dlya Win32.
   PostgreSQL takzhe rabotaet cherez ODBC.
   
   Server
   
   Server BD mozhet byt' zapuschen na Windows NT i Win2k, ispol'zuya
   biblioteku Cygwin, razrabotannuyu kompaniej Cygnus dlya perenosa
   programmnogo obespecheniya Unix v NT. Smotrite pgsql/doc/FAQ_MSWIN v
   distributive ili MS Windows FAQ na
   http://www.PostgreSQL.org/docs/faqs/text/FAQ_MSWIN.
   
   PostgreSQL, sportirovannyj special'no dlya MS Win NT/2000/XP v
   nastoyaschij moment nachal rabotat'. Podrobnosti tekuschego
   sostoyaniya PostgreSQL dlya Windows smotrite na
   http://techdocs.postgresql.org/guides/Windows i
   http://momjian.postgresql.org/main/writings/pgsql/win32.html.
d272 1
a272 1
   Poslednij vypusk PostgreSQL - `eto versiya 7.4.2
d548 4
a551 5
   mashine cherez sokety domena Unix. Drugie mashiny ne smogut
   podklyuchit'sya k baze poka ne budet vklyuchena opciya tcpip_sockets v
   postgresql.conf i poka ne budet razreshena host-avtorizaciya v fajle
   $PGDATA/pg_hba.conf. `Eti dejstviya delayut vozmozhnymi TCP/IP
   soedineniya.
d698 12
d809 1
a809 1
    36 bajt: na kazhdyj zagolovok zapisi (priblizitel'no)
d813 1
a813 1
    64 bajt na zapis'
d818 2
a819 2
   ---------------------   =  128 zapisej na stranicu BD (s okrugleniem)
     64 bajta na zapis'
d822 1
a822 1
   ----------------------- =  782 stranicy v BD
d825 1
a825 1
   782 stranicy BD * 8192 bajt na stranicu = 6,406,144 bajt (6.4 MB)
d898 4
d1085 5
a1089 5
        CREATE TABLE new_table(old_oid oid, mycol int);
        SELECT old_oid, mycol INTO new FROM old;
        COPY new TO '/tmp/pgtable';
        DELETE FROM new;
        COPY new WITH OIDS FROM '/tmp/pgtable';
@


1.20
log
@Update Russian FAQ.

Viktor Vislobokov
@
text
@d168 1
a168 1
   Portion copyright (c) 1996-2004, PostgreSQL Global Development Group
d576 1
a576 1
   Komanda EXPLAIN ANALIZE pozvolyaet vam posmotret' kak PostgreSQL
@


1.19
log
@> > This update fixes a few small typos in names,
> > pronouns and formatting in the Russian FAQ.

Serguei Mokhov
@
text
@d4 1
a4 1
   Data poslednego obnovleniya: Voskresenie 11 aprelya 23:28:03 EDT 2004
d129 10
a138 9
   PostgreSQL proiznositsya Post-Gres-Q-L (Post-Gres-K'yu-`El). Takzhe, v
   razgovorah ispol'zuetsya imya "Postgres".
   
   PostgreSQL - `eto rasshirenie SUBD POSTGRES, issledovatel'skij
   prototip novogo pokoleniya SUBD. PostgreSQL odnovremenno sohranyaet
   moschnuyu model' dannyh i obschirnoe kolichestvo tipov POSTGRES, i
   zameschaet yazyk zaprosov PostQuel na rasshirennoe podmnozhestvo SQL.
   PostgreSQL - `eto svobodnoe i polnost'yu otkrytoe programmnoe
   obespechenie.
d168 1
a168 1
   Portion copyright (c) 1996-2002, PostgreSQL Global Development Group
d496 1
a496 1
   Takzhe est' PHPPgAdmin ( http://phppgadmin.sourceforge.net/) -
d567 2
a568 2
   podklyuchit'sya k baze poka dlya postmaster ne budet zadan flag -i i
   poka ne budet razreshena host-avtorizaciya v fajle
d576 1
a576 1
   Komanda EXPLAIN pozvolyaet vam posmotret' kak PostgreSQL
d745 3
a747 1
   Vy mozhete posmotret' ishodnyj kod psql v fajle
d750 6
a755 3
   kosoj cherty. Vy takzhe moezhete zapustit' psql s opciej -E tak,
   chtoby `eta programma vydavala zaprosy, kotorye ona ispol'zuet dlya
   vypolneniya zadannyh vami komand.
@


1.18
log
@Update Russian FAQ, Viktor Vislobokov
@
text
@d4 1
a4 1
   Data poslednego obnovleniya: Subbota 7 fevralya 22:16:21 EDT 2004
d117 1
a117 1
   zapuskayu ee v psql, pochemu ya poluchayu dump core?
d141 1
a141 1
   nastoyaschee vremya, ih koordinatorom yavlyaetsya Mark Fornaj (Marc G.
d289 1
a289 1
   Poslednij vypusk PostgreSQL - `eto versiya 7.4.1
d373 5
a377 6
          triggery, obzory (views), vneshnij klyuch ssylochnoj
          celostnosti 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.
d383 1
a383 1
          medlenee. V sravnenii s MySQL ili linejnymi SUBD, my bystree,
d434 1
a434 1
   Marka Fonaya (Marc Fournier), kotoryj sozdal `etu infrastrukturu i
d751 1
a751 1
    4.4) Kak udalit' kolonku iz tablicy ili izmenit' ioio tip dannyh?
d775 9
a783 9
    Maksimal'nyj razmer bazy?              neogranichen (suschestvuyut bazy na
32 TB)
    Maksimal'nyj razmer tablicy?           32 TB
    Maksimal'nyj razmer zapisi?            1.6 TB
    Maksimal'nyj razmer polya?              1 GB
    Maksimal'noe kolichestvo zapisej v tablice?      neogranicheno
    Maksimal'noe kolichestvo kolonok v tablice?    250-1600 v zavisimosti ot ti
pa
    Maksimal'noe kolichestvo indeksov v tablice?   neogranicheno
d812 1
a812 1
   + 4 bajta: ukazatel' na stranice dlya vsej zapisi
d819 2
a820 2
   -------------------   =  128 zapisej na stranicu BD (s okrugleniem)
     64 bajt na zapis'
d822 3
a824 3
   100000 strok dannyh
   --------------------  =  782 stranicy v BD
  128 zapisej na stranicu
d826 1
a826 1
782 stranicy BD * 8192 bajt na stranicu  =  6,406,144 bajt (6.4 MB)
d831 1
a831 1
   Znacheniya NULL hranyatsya kak bitovae karty i po`etomu oni zanimayut
d881 1
a881 1
   Esli vam kazhetsya, chto optimizator nekorretno vybiraet
d920 1
a920 1
   Vy mozhete najti `etot dokument v knige Stonebraker'a "Readings in
d1283 1
a1283 1
    ee v psql, pochemu ya poluchayu dump core?
@


1.17
log
@Update Russian FAQ.

Viktor Vislobokov
@
text
@d4 1
a4 1
   Data poslednego obnovleniya: Vtornik 6 yanvarya 16:42:01 EDT 2003
d129 2
a130 1
   PostgreSQL proiznositsya Post-Gres-Q-L (Post-Gres-K'yu-`El).
d144 3
a146 1
   razrabotku PostgreSQL.
d396 3
a398 2
          otkrytye ishodnye teksty, a ne soobschestvo razrabotchikov s
          otkrytymi ishodnymi tekstami, kak PostgreSQL.
d832 2
a833 2
   Znacheniya NULL sohranyayutsya v bitah i po`etomu oni zanimayut ochen'
   malo mesta.
@


1.16
log
@Update Russian FAQ, both branches.

Viktor Vislobokov
@
text
@d4 1
a4 1
   Data poslednego obnovleniya: Sreda 19 noyabrya 11:50:04 EDT 2003
d26 1
a26 1
   1.7) Kakaya poslednyaya versiya?
d276 1
a276 1
   Esche suschestvuet IRC kanal na EFNet i Freenode, s nazvaniem
d286 1
a286 1
   Poslednij vypusk PostgreSQL - `eto versiya 7.4.
d489 5
a493 6
   `Eto PgAccess (http://www.pgaccess.org, PgAdmin III
   (http://www.pgadmin.org, Win32-only), RHDB Admin (
   http://sources.redhat.com/rhdb/) i Rekall (
   http://www.thekompany.com/products/rekall/, kommercheskij). Takzhe
   est' PHPPgAdmin ( http://phppgadmin.sourceforge.net/) - interfejs k
   PostgreSQL, osnovannyj na Web.
@


1.15
log
@Update Russian FAQ.

Viktor Vislobokov
@
text
@d4 1
a4 1
   Data poslednego obnovleniya: Voskresen'e 5 Oktyabrya 10:25:21 EDT 2003
d9 1
a9 1
   Perevel na russkij: Viktor Vislobokov (victor_v@@permonline.ru)
d276 1
a276 1
   Esche suschestvuet IRC kanal na EFNet i OpenProjects, s nazvaniem
d278 2
a279 1
   Unix irc -c '#PostgreSQL' "$USER" irc.phoenix.net.
d286 1
a286 1
   Poslednij vypusk PostgreSQL - `eto versiya 7.3.4.
d489 1
a489 1
   `Eto PgAccess (http://www.pgaccess.org, PgAdmin II
d774 1
a774 1
4 TB)
d994 1
a994 1
   posledovatel'nost' i indeks dlya kolonki. Naprimer:
a1005 1
    CREATE UNIQUE INDEX person_id_key ON person ( id );
d1163 6
a1168 6
   V nastoyaschij moment, my svyazyvaem pozaprosy dlya vneshnih zaprosov
   cherez posledovatel'nyj perebor rezul'tata podzaprosa dlya kazhdoj
   zapisi vneshnego zaprosa. Esli podzapros vozvraschaet tol'ko neskol'ko
   zapisej i vneshnij zapros vozvraschaet mnogo zapisej, IN rabotaet
   naibolee bystro. CHtoby uvelichit' skorost' v drugih zaprosah,
   zamenite IN na EXISTS:
d1179 6
a1184 2
   byt' proindeksirovana. `Eta problema proizvoditel'nosti budet
   ustranena v versii 7.4.
@


1.15.2.1
log
@Update Russian FAQ, both branches.

Viktor Vislobokov
@
text
@d4 1
a4 1
   Data poslednego obnovleniya: Sreda 19 noyabrya 11:50:04 EDT 2003
d9 1
a9 1
   Perevel na russkij: Viktor Vislobokov (corochoone@@perm.ru)
d276 1
a276 1
   Esche suschestvuet IRC kanal na EFNet i Freenode, s nazvaniem
d278 1
a278 2
   Unix irc -c '#PostgreSQL' "$USER" irc.phoenix.net. ili irc -c
   '#PostgreSQL' "$USER" irc.freenode.net.
d285 1
a285 1
   Poslednij vypusk PostgreSQL - `eto versiya 7.4.
d488 1
a488 1
   `Eto PgAccess (http://www.pgaccess.org, PgAdmin III
d773 1
a773 1
32 TB)
d993 1
a993 1
   posledovatel'nost'. Naprimer:
d1005 1
d1163 6
a1168 6
   V versiyah do 7.4, podzaprosy svyazyvalis' s roditel'skimi zaprosami
   cherez posledovatel'nyj perebor rezul'tatov pozaprosa dlya kazhdoj
   zapisi roditel'skogo zaprosa. Esli podzapros vozvraschaet tol'ko
   neskol'ko zapisej, a roditel'skij zapros vozvraschaet mnogo zapisej,
   IN rabotaet naibolee bystro. CHtoby uvelichit' skorost' v drugih
   zaprosah, zamenite IN na EXISTS:
d1179 2
a1180 6
   byt' proindeksirovana.
   
   V versii 7.4 i vyshe, IN fakticheski ispol'zuet takoj zhe mehanizm
   svyazyvaniya kak i obychnye zaprosy, po`etomu predpochtitel'nym
   yavlyaetsya ispol'zovanie EXISTS
   .
@


1.15.2.2
log
@Brand 7.4.2.  Release notes still need work.
@
text
@d4 1
a4 1
   Data poslednego obnovleniya: Vtornik 6 yanvarya 16:42:01 EDT 2003
d26 1
a26 1
   1.7) Kakaya versiya poslednyaya?
d276 1
a276 1
   Esche suschestvuet IRC kanal na Freenode i EFNet, s nazvaniem
d286 1
a286 1
   Poslednij vypusk PostgreSQL - `eto versiya 7.4.1
d489 6
a494 5
   `Eto PgAccess (http://www.pgaccess.org), PgAdmin III
   (http://www.pgadmin.org), RHDB Admin (http://sources.redhat.com/rhdb/)
   i Rekall ( http://www.thekompany.com/products/rekall/, kommercheskij).
   Takzhe est' PHPPgAdmin ( http://phppgadmin.sourceforge.net/) -
   interfejs k PostgreSQL, osnovannyj na Web.
@


1.14
log
@Update Russian version of FAQ.
@
text
@d4 1
a4 1
   Data poslednego obnovleniya: Pyatnica 30 Maya 22:24:56 EDT 2003
d224 2
a225 1
   http://techdocs.postgresql.org/guides/Windows.
d281 1
a281 1
   http://www.ca.PostgreSQL.org/users-lounge/commercial-support.html.
d285 1
a285 1
   Poslednij vypusk PostgreSQL - `eto versiya 7.3.2.
d287 1
a287 1
   My planiruem vypuskat' novye versii kazhdye chetyre mesyaca.
d300 2
a301 2
   http://www.ca.PostgreSQL.org/books/. Krome togo, po adresu
   http://techdocs.PostgreSQL.org/ vy mozhete najti kollekciyu
d380 5
a384 3
          medlenee. V sravnenii s MySQL ili linejnymi SUBD, my medlenee
          pri operaciyah vstavki/obnovleniya, potomu chto upravlyaem
          tranzakciyami. I razumeetsya, MySQL ne imeet kakih-libo
d390 4
a393 1
          http://openacs.org/philosophy/why-not-mysql.html
d449 4
d766 1
a766 1
    ALTER TABLE DROP COLUMN old_col;
d774 1
a774 1
    Maksimal'nyj razmer tablicy?           16 TB
d787 1
a787 1
   Maksimal'nyj razmer tablicy v 16 TB ne trebuet chtoby operacionnaya
d793 2
a794 2
   byt' uvelicheny, esli razmer bloka po umolchaniyu budet uvelichen do
   32k.
d1039 4
a1042 3
   resheniem. V Perl, ispol'zuya DBI s modulei Edmund Mergl'ya DBD::Pg,
   znachenie oid stanovitsya dostupnym cherez $sth->{pg_oid_status} posle
   $sth->execute().
d1259 8
a1266 2
     * Est' tol'ko odin sposob shifrovaniya dannyh, peredavaemyh ot
       klienta k serveru, cherez ispol'zovanie hostssl v pg_hba.conf.
@


1.13
log
@Update Russian FAQ, from Viktor Vislobokov
@
text
@d4 1
a4 1
   Data poslednego obnovleniya: Ponedel'nik 22 Aprelya 14:02:41 EDT 2003
d69 1
a69 1
   zaprosa?
d71 1
a71 1
   4.4) Kak udalit' kolonku iz tablicy?
d712 1
d723 6
d738 1
a738 1
    4.4) Kak udalit' kolonku iz tablicy?
d740 2
a741 2
   `Eta funkcional'nost' byla dobavlena v vypusk 7.3 s operatorom ALTER
   TABLE DROP COLUMN. V rannih versiyah, mozhno sdelat' tak:
d750 7
@


1.12
log
@Update Russian FAQ, from Viktor Vislobokov
@
text
@d4 1
a4 1
   Data poslednego obnovleniya: Ponedel'nik 17 Marta 11:32:59 EDT 2003
d216 4
a219 4
   biblioteku Cygwin, razrabotannuyu dlya perenosa programmnogo
   obespecheniya Unix v NT. Smotrite pgsql/doc/FAQ_MSWIN v distributive
   ili MS Windows FAQ na
   http://www.PostgreSQL.org/docs/faqs/faq-mswin.html.
d222 6
a227 1
   nastoyaschij moment nachal rabotat'.
d275 3
a277 3
   Esche suschestvuet IRC kanal na EFNet, s nazvaniem #PostgreSQL. YA
   ispol'zuyu dlya podklyucheniya k `etomu kanalu komandu Unix irc -c
   '#PostgreSQL' "$USER" irc.phoenix.net.
d293 1
a293 1
   v Internet po adresu http://www.ca.PostgreSQL.org/users-lounge/docs/.
d1203 4
a1206 4
   Vy mozhete vozvraschat' iz funkcij PL/pgSQL spiski rezul'tatov,
   ispol'zuya refcursors. Smotrite
   http://www.PostgreSQL.org/idocs/index.php?plpgsql-cursors.html,
   sekciyu 23.7.3.3.
@


1.11
log
@Update Russian FAQ, from Viktor Vislobokov.
@
text
@d4 1
a4 1
   Data poslednego obnovleniya: Vtornik 18 Fevralya 12:23:04 EDT 2002
d33 1
a33 1
   1.13) Kak otravit' soobschenie ob oshibke?
d308 1
a308 1
   osobennostyah i buduschih planov.
d329 1
a329 1
   Da, my legko manipuliruem datami posle 2000 goda i pered 2000 godom.
d346 1
a346 1
    1.13) Kak otravit' soobschenie ob oshibke??
d744 1
a744 1
1 TB)
@


1.10
log
@Update FAQ's in head and 7.3.X.
@
text
@d4 1
a4 1
   Data poslednego obnovleniya: CHetverg 13 Fevralya 23:07:35 EDT 2002
d12 1
a12 1
   http://www.PostgreSQL.org/docs/faq-english.html.
d15 1
a15 1
   na http://www.PostgreSQL.org/users-lounge/docs/faq.html.
d218 2
a219 1
   ili MS Windows FAQ na http://www.PostgreSQL.org/docs/faq-mswin.html.
d275 1
a275 1
   http://www.PostgreSQL.org/users-lounge/commercial-support.html.
d279 1
a279 1
   Poslednij vypusk PostgreSQL - `eto versiya 7.3.1.
d288 1
a288 1
   v Internet po adresu http://www.PostgreSQL.org/users-lounge/docs/.
a934 1
"char"          char            odin simvol
d937 1
d942 1
a942 1
   Poslednie chetyre tipa yavlyayutsya "varlena" tipami (t.e., pervye
d958 2
a959 2
   znacheniya kotoryh mogut vklyuchat' NULL bajty. `Eti tipy imeyut
   shodnye harakteristiki proizvoditel'nosti.
@


1.9
log
@Update Russian FAQ.  Update all FAQ's for 7.3.X branch.
@
text
@d4 1
a4 1
   Data poslednego obnovleniya: CHetverg 5 Dekabrya 00:47:26 EDT 2002
d278 1
a278 1
   Poslednij vypusk PostgreSQL - `eto versiya 7.2.3.
d472 1
a472 1
   `Eto PgAccess (http://www.pgaccess.com, PgAdmin II
a478 4
   U nas est' prekrasnyj goraficheskij interfejs, nazyvaemyj PgAccess,
   kotoryj takzhe mozhno ispol'zovat' kak generator otchetov. Ego
   stranichka http://www.pgaccess.org/
   
a667 4
   V PostgreSQL do versii 6.5, maksimal'noe kolichestvo backend processov
   bylo 64, i izmenenie `etogo kolichestva trebovalo perekompilyacii
   posle ustanovki konstanty MaxBackendId v include/storage/sinvaladt.h.
   
d848 5
a928 2
"char"          char            1 simvol
CHAR(n)         bpchar          zapolnyaetsya pustotoj do fiksirovannoj dliny
d931 1
d934 1
d948 4
d954 5
a958 7
   imeyut odinakovuyu dlinu. VARCHAR(n) - `eto luchshee reshenie, kogda
   nuzhno hranit' stroki peremennoj dliny, no ne prevyshayuschie
   opredelennogo razmera. TEXT - `eto luchshee reshenie dlya strok
   neogranichennoj dliny, s maksimal'no dopustimoj dlinoj v 1 gigabajt.
   BYTEA dlya hraneniya binarnyh dannyh, znacheniya kotoryh mogut
   vklyuchat' NULL bajty. `Eti tipy imeyut shodnye harakteristiki
   proizvoditel'nosti.
d1148 2
a1149 2
   byt' proindeksirovana. My nadeemsya ubrat' `eto ogranichenie v
   buduschem vypuske.
@


1.8
log
@Update russian FAQ, from Viktor Vislobokov.
@
text
@d4 1
a4 2
   Data poslednego obnovleniya: Voskresen'e 20 Oktyabrya 20:47:14 EDT
   2002
a42 1
   Generator otchetov? Vstroennyj interfejs dlya yazyka zaprosov?
d443 2
a444 2
   PsqlODBC vklyuchaetsya v distributiv. Bol'she informacii ob `etom
   drajvere mozhno najti na ftp://ftp.PostgreSQL.org/pub/odbc/.
a456 2
   Takzhe posmotrite ODBC razdel v rukovodstve programmista.
   
d469 1
a469 2
    2.3) Est' li u PostgreSQL graficheskij interfejs pol'zovatelya? Generator
    otchetov? Vstroennyj interfejs dlya yazyka zaprosov?
d471 8
a482 3
   My takzhe vklyuchaem ecpg, kotoryj predostavlyaet vstroennyj interfejs
   k yazyku zaprosov SQL iz C.
   
d485 6
a490 1
   Vot `eti:
a491 1
     * C++ (libpq++)
a493 2
     * Perl (DBD::Pg i perl5)
     * ODBC (odbc)
a495 2
     * C Easy API (libpgeasy)
     * PHP ('pg_' functions, Pear::DB)
d498 1
a498 2
   http://www.PostgreSQL.org/interfaces.html. i
   http://gborg.PostgreSQL.org.
@


1.7
log
@Update Russian FAQ.
@
text
@d2 1
a2 1
                     PostgreSQL
d4 2
a5 1
     :  9  23:14:53 EDT 2002
d7 1
a7 1
     :   (Bruce Momjian)
d10 1
a10 1
     :   (victor_v@@permonline.ru)
d12 1
a12 1
          
d15 2
a16 2
            
   http://www.PostgreSQL.org/users-lounge/docs/faq.html.
d19 1
a19 1
                                
d21 16
a36 16
   1.1)   PostgreSQL?    ?
   1.2)     PostgreSQL?
   1.3)   Unix   PostgreSQL?
   1.4)       Unix ?
   1.5)    PostgreSQL?
   1.6)   ?
   1.7)   ?
   1.8)     ?
   1.9)        
   ?
   1.10)   SQL?
   1.11)    PostgreSQL  2000-  (Y2K)?
   1.12)     ?
   1.13)     ?
   1.14)   PostgreSQL   ?
   1.15)     PostgreSQL?
d38 1
a38 1
                     
d40 6
a45 6
   2.1)   ODBC   PostgreSQL?
   2.2)      PostgreSQL 
   Web?
   2.3)    PostgreSQL   ?
    ?     ?
   2.4)      PostgreSQL?
d47 1
a47 1
                          
d49 1
a49 1
   3.1)    PostgreSQL    
d51 14
a64 15
   3.2)    postmaster,    Bad System Call
     core dumped. ?
   3.3)     postmaster,   
   IpcMemoryCreate. ?
   3.4)     postmaster,   
   IpcSemaphoreCreate. ?
   3.5)       ?
   3.6)       
   ?
   3.7)       ?
   3.8)     "Sorry, too many clients" 
      ?
   3.9)     pg_sorttempNNN.NN     
   ?
   3.10)    dump  restore   
d67 1
a67 1
                             
d69 31
a99 31
   4.1)        ?
   4.2)   SELECT     
   ?
   4.3)         psql?
   4.4)     ?
   4.5)     ,    ?
   4.6)         
        ?
   4.7)   ,     , ,
      ?
   4.8)         
   . ?
   4.9)    ,     ?
   4.10)   R-tree ?
   4.11)   Genetic Query Optimizer?
   4.12)        
         ?  
          ?
   4.13)    ,     NULL  -
   ?
   4.14)      ?
   4.15.1)     serial/--?
   4.15.2)       SERIAL?
   4.15.3)     ,   currval() 
   nextval()      ?
   4.15.4)        
     ?      
   ,    /SERIAL?
   4.16)   OID?   TID?
   4.17)       PostgreSQL?
   4.18)     "ERROR: Memory exhausted in
d101 2
a102 2
   4.19)   ,   PostgreSQL ?
   4.20)          
d104 11
a114 9
   4.21)         
    ?
   4.22)   ,  IN   ?
   4.23)    ?
   4.24)   ,    ?
   4.25)       ?
   4.26)      /   
    PL/PgSQL?
   4.27)    ?
d116 1
a116 1
                            PostgreSQL
d118 3
a120 3
   5.1)     .    
    psql,    dump core?
   5.2)           
d122 3
a124 3
   5.3)    C ,  ?
   5.4)    .      
   ?
d127 1
a127 1
                                
d129 1
a129 1
    1.1)   PostgreSQL?
d131 1
a131 1
   PostgreSQL  Post-Gres-Q-L (---).
d133 26
a158 25
   PostgreSQL -    POSTGRES,  
     . PostgreSQL    
        POSTGRES,    
   PostQuel    SQL. PostgreSQL -   
      .
   
    PostgreSQL  ,   Internet, 
         . 
    ,      (Marc G.
   Fournier) (scrappy@@PostgreSQL.org). (.   ,  
    ).       
   PostgreSQL.
   
    PostgreSQL 1.01    (Andrew Yu)   
   (Jolly Chen).         
   , ,     .
     Postgres,    PostgreSQL, 
       , 
       ,  
       (Michael Stonebraker) 
    , .
   
    ,   ,  Postgres.   1995 
      SQL,     
   Postgres95.         1996  PostgreSQL.
d160 1
a160 1
    1.2)     PostgreSQL?
d162 1
a162 1
   PostgreSQL     COPYRIGHT:
d164 1
a164 1
       PostgreSQL
d169 68
a236 64
      , ,  
         
     ,     - ,
            
      ,     
   .
   
          
   ,   ,    ,
        
      ,    
        .
   
       
    , ,      :
          
   .       
   " "      
   , , ,   .
   
     BSD ,  
       .    
       .    
       ţ .
   
    1.3)   Unix   PostgreSQL?
    
   , PostgreSQL      
     Unix.    ,    
   ,       PostgreSQL 
      .
   
    1.4)       Unix ?
    
   
   
       MS Windows   C 
   libpq, psql      .   ,
      MS Windows    TCP/IP  ,
        Unix .  
     win31.mak  ,     
    libpq  psql  Win32. PostgreSQL   
   ODBC.
   
   
   
         Windows NT  Win2k, 
    Cygwin,     
   Unix  NT.  pgsql/doc/FAQ_MSWIN    MS Windows
   FAQ   .      PostgreSQL
    -  Microsoft.
   
    1.5)    PostgreSQL?
    
   ,     ftp  PostgreSQL
   ftp://ftp.PostgreSQL.org/pub.      
    .
   
    1.6)   ?
    
     : pgsql-general@@PostgreSQL.org.   
     ,  PostgreSQL.  ,
       ,      ( 
   )   :
d240 1
a240 1
     pgsql-general-request@@PostgreSQL.org.
d242 4
a245 4
     .    ,  
       :
   pgsql-general-digest-request@@PostgreSQL.org     
    :
d249 2
a250 2
     ,     
     30  .
d252 4
a255 4
         .   
    ,       
   pgsql-bugs-request@@PostgreSQL.org      
   :
d259 4
a262 4
         . 
      ,      
    pgsql-hackers-request@@PostgreSQL.org     
    :
d266 2
a267 2
         PostgreSQL   
     PostgreSQL  :
d271 2
a272 2
     IRC   EFNet,   #PostgreSQL. 
          Unix irc -c
d275 2
a276 2
        
   http://www.postgresql.org/users-lounge/commercial-support.html.
d278 1
a278 1
    1.7)   ?
d280 1
a280 1
     PostgreSQL -   7.2.3.
d282 1
a282 1
          .
d284 1
a284 1
    1.8)     ?
d286 4
a289 4
       ,  
    man     .  
    /doc.        
    http://www.PostgreSQL.org/users-lounge/docs/.
d291 7
a297 7
       PostgreSQL   
   http://www.PostgreSQL.org/docs/awbook.html 
   http://www.commandprompt.com/ppbook/.    PostgreSQL,
        
   http://www.postgresql.org/books/.  ,  
   http://techdocs.postgresql.org/     
     PostgreSQL.
d299 2
a300 2
   psql     \d   
    , , ,   ..
d302 1
a302 1
        .
d304 2
a305 2
    1.9)        
    ?
d307 3
a309 3
   PostgreSQL    SQL-92.  
    TODO    ,   
    .
d311 1
a311 1
    1.10)    SQL?
d313 4
a316 4
     PostgreSQL  http://www.PostgreSQL.org/docs/awbook.html
    SQL.     PostgreSQL 
   http://www.commandprompt.com/ppbook.    
   http://www.intermedia.net/support/sql/sqltut.shtm, 
d318 1
a318 1
     http://sqlcourse.com.
d320 3
a322 3
      -   "Teach Yourself SQL in 21 Days, Second
   Edition" (  SQL  21 ,  ) 
   http://members.tripod.com/er4ebus/sql/index.htm
d324 2
a325 2
         The Practical SQL
   Handbook, Bowman, Judith S., et al., Addison-Wesley.  
d328 1
a328 1
    1.11)    PostgreSQL  2000-  (Y2K)?
d330 1
a330 1
   ,      2000    2000 .
d332 1
a332 1
    1.12)     ?
d334 36
a369 35
    ,       
     PostgreSQL     
   . ,     pgsql-hackers 
   pgsql-patches. ,   (patches) 
      pgsql-patches.
   
      ,    
     CVS  PostgreSQL.       
       ,   
           
    ,   ,   ,  
      .
   
    1.13)     ??
    
      PostgreSQL BugTool,  
           
   .
   
        ftp://ftp.PostgreSQL.org/pub 
       PostgreSQL  .
   
    1.14)   PostgreSQL   ?
    
        :
   , , ,   .
   
   
          PostgreSQL     
            ,  : , ,
          ,  (views),     
           .     , 
            : ,  , 
          ,     
              .
d371 13
a383 13
   
          PostgreSQL     
                  , 
          -     ,  - .
             MySQL   ,   
           /,   
          .  , MySQL   -
             ,   . 
                ,  
               
          .     ,
           PostgreSQL  MySQL 
          http://openacs.org/why-not-mysql.html
d385 10
a394 9
   
           ,         
            .     ,
           ,    .  
            -     
                   
           ,  ,   
           .  ,   
            ,    .
d396 12
a407 11
   
                 
          ,      
          .    ,    -
          ,       
           .    , 
          ,      
           PostgreSQL   . 
               ,
                . (  
          ?.)
d409 6
a414 5
   
                ,   
           .       
            ,   ,   
             BSD,   .
d416 1
a416 1
    1.15)     PostgreSQL?
d418 19
a436 19
   PostgreSQL        
      6  .      
    (Marc Fournier),      
       .
   
          
    .   ,   
      .
   
   ,     . 
        , 
    .       ,  
       ,   
   https://store.pgsql.com/shopping/index.php?id=1    .
   
        PostgreSQL, Inc,  "contributions"
        PostgreSQL  
    -  .  ,   
   ,     .
d439 1
a439 1
                     
d441 1
a441 1
    2.1)   ODBC   PostgreSQL?
d443 1
a443 1
     ODBC , PsqlODBC  OpenLink ODBC.
d445 2
a446 2
   PsqlODBC   .     
      ftp://ftp.PostgreSQL.org/pub/odbc/.
d448 5
a452 5
   OpenLink ODBC    http://www.openlinksw.com.  
         ,
    ODBC,   , ODBC   PostgreSQL
          (Win, Mac, Unix,
   VMS).
d454 4
a457 3
            
   ,      . ,
       postgres95@@openlink.co.uk.
d459 1
a459 1
     ODBC    .
d461 2
a462 1
    2.2)      PostgreSQL  Web?
d464 2
a465 2
          Web   :
   http://www.webreview.com
d467 2
a468 1
      http://www.phone.net/home/mwm/hotlist/.
d470 2
a471 2
      Web,      PHP.
     http://www.php.net.
d473 2
a474 4
     ,   Perl   CGI.pm.
   
    2.3)    PostgreSQL   ? 
    ?     ?
d476 3
a478 3
        ,  pgaccess,
      . pgaccess   
   .   http://www.flex.ro/pgaccess
d480 2
a481 2
      ecpg,     
     SQL  C.
d483 1
a483 1
    2.4)      PostgreSQL?
d485 1
a485 1
    :
d490 1
a490 1
     * Perl (perl5)
d495 1
a495 1
     * Embedded HTML (PHP from http://www.php.net)
d497 3
a499 2
       
   http://www.postgresql.org/interfaces.html.
d502 1
a502 1
                          
d504 1
a504 1
    3.1)    PostgreSQL     /usr/local/pgsql?
d506 1
a506 1
     --prefix   configure.
d508 2
a509 2
    3.2)    postmaster,    Bad System Call 
     core dumped. ?
d511 97
a607 91
        ,  ,  
    -    ,      
   System V. PostgreSQL ,    
     .
   
    3.3)     postmaster,   
    IpcMemoryCreate. ?
    
           , 
          . 
    ,      
             backend
       postmaster.   , 
        ,   -
     1 .      
       PostgreSQL.
   
    3.4)     postmaster,   
    IpcSemaphoreCreate. ?
    
      IpcSemaphoreCreate: semget failed (No space left on
   device)     ,     .
   Postgres      backend .
       postmaster    
    backend .  -N    
   32,    .    - 
     SEMMNS  SEMMNI   .
   
            
      .
   
      -    ,  
   ,         .
           
    PostgreSQL.
   
    3.5)       ?
    
    , PostgreSQL     
       Unix.     
       postmaster     -i    
    host-   $PGDATA/pg_hba.conf.  
     TCP/IP .
   
    3.6)        ?
    
   ,      .
    EXPLAIN     PostgreSQL 
        .
   
        INSERT,  
       ,   COPY.  
   ,   INSERT. -,   
    BEGIN WORK/COMMIT   .  
         . 
     . ,    
    ,      .
   
      .    fsync() 
    postmaster   -o -F.    fsync(),
            .
   
        postmaster  -B  
      ,   backend
   .        ,
    postmaster        
       .      8
        64 .
   
       backend  -S  
     ,   backend
      .    -S  
        512 (.. 512K).
   
        CLUSTER    
      .    
      CLUSTER.
   
    3.7)       ?
    
   PostgreSQL   ,  
     ,      
   .
   
   -,   configure   --enable-cassert, 
    assert()    backend  
       - .
   
    postmaster,  postgres    . -,
     postmaster, ,     
       :
d611 77
a687 79
        server.log   
   PostgreSQL.        
   ,   . Postmaster   -d, 
         . 
    -d  ,    . 
   ,         
     .
   
    postmaster  ,    postgres backend 
         SQL .  
      . ,    , 
      ,     .  
       ,  
     ,  ,  .
    backend    postmaster,    
         /backend 
     .
   
    postmaster ,  psql   ,  
   PID  postgres,  psql.   
     postgres PID.      
        psql.    
    postgres,    PGOPTIONS="-W n",  
    psql.         n
   ,         ,
         .
   
    postgres   -s, -A,  -t    
        .
   
       PostgreSQL    ,
         . 
    backend'    pgsql/data/base/dbname.
           . 
   Linux      
   -DLINUX_PROFILE.
   
    3.8)     "Sorry, too many clients"  
      ?
    
          backend
      postmaster.
   
        32 .    
     postmaster    , 
      -N    postgresql.conf.
   
   ,       -N   32,  
         -B   
     64;   -B      
      -N,   ݣ   
   .    backend , 
           Unix. 
    ,     
   , SHMMAX;   , SEMMNS  SEMMNI;
     , NPROC;  
     , MAXUPRC;    
   , NFILE  NINODE.     
   backend       ,    
   .
   
    PostgreSQL   6.5,   backend 
    64,       
     MaxBackendId  include/storage/sinvaladt.h.
   
    3.9)     pg_sorttempNNN.NN      ?
    
     ,     .
   ,    ORDER BY   
   ,        backend
      -S,      
    .
   
       ,    
   ,  backend     .  
        backend ,    
     pg_tempNNN.NN.
   3.10)    dump  restore   
   PostgreSQL?
d689 17
a705 13
    PostgreSQL     
   .      7.2  7.2.1 
     dump  restore.    
           
   .      ,   
        . 
   dump      ,   
         .
   
     ,       ,  
        pg_upgrade 
    dump/restore.      
    pg_upgrade   .
d708 1
a708 1
                             
d710 1
a710 1
    4.1)        ?
d712 1
a712 1
         DECLARE.
d714 1
a714 1
    4.2)   SELECT      ?
d716 2
a717 2
       FETCH   SELECT
   ... LIMIT....
d719 5
a723 5
           , 
     .  ,   ORDER BY. 
    - ,    ORDER BY, PostgreSQL 
           
         .
d725 1
a725 1
    4.3)         psql?
d727 6
a732 6
        psql  
   pgsql/src/bin/psql/describe.c.    SQL 
       psql ,    
   .     psql   -E ,  
     ,     
     .
d734 1
a734 1
    4.4)     ?
d736 2
a737 1
      ALTER TABLE DROP COLUMN,    :
d740 2
a741 2
    SELECT ...  --      ,   

d748 1
a748 1
    4.5)     ,    ?
d750 39
a788 38
     :
      ?               (   1 TB
)
      ?           16 TB
      ?            1.6 TB
      ?              1 GB
        ?      
        ?    250-1600    

        ?   

   ,  ""    
        /. 
       ,  
   .
   
       16 TB    
       .   
        1 GB,   , 
       .
   
          
    ,         32k.
   
    4.6)          
        ?
    
    PostgreSQL      5 
          .
   
     ,    100,000   , 
        .    , 
   ,  20 .     2.8 MB.
     PostgreSQL,     
    6.4 MB  :
    36 :     ()
  + 24 :         
   + 4 :      
d790 1
a790 1
    64   
d792 1
a792 1
       PostgreSQL  8192  (8 KB),  :
d794 58
a851 55
   8192   
   -------------------   =  128     ( )
     64   

   100000  
   --------------------  =  782   
  128   

782   * 8192     =  6,406,144  (6.4 MB)

       ,      
    ,     .
   
    NULL         
   .
   
    4.7)   ,     , , 
      ?
    
   psql   ,     , 
       .  \?  ,
      .    , 
      pg_       .
   ݣ, psql -l     .
   
      pgsql/src/tutorial/syscat.source.  
      SELECT    
        .
   
    4.8)         
    . ?
    
         . 
           
         .  ,
            
      ,      
    .
   
         -
   , PostgreSQL      . 
       VACUUM ANALYZE  
   ANALYZE.  ,      
           ,   
     .     
        .  
         .
   
        ORDER BY   
   .      
    ,       . , ORDER
   BY    LIMIT      
   ,      
    .  MAX()  MIN()   , 
         ORDER BY  LIMIT:
d855 1
a855 1
    LIMIT 1
d857 12
a868 4
       ,  LIKE  ~, 
        :
     *         ,
       ..:
d870 1
a870 14
     * LIKE      %.
     *
     * ~       ^.
     *
       
            , .. [a-e].
   
             
   ILIKE  ~.     , 
      FAQ .
   
       initdb      C.
   
    4.9)    ,     ?
d872 1
a872 1
       EXPLAIN.
d874 1
a874 1
    4.10)   R-tree ?
d876 7
a882 7
   R-tree      .
         . B-tree 
         . R-tree 
      . ,  R-tree 
         point,    
        "    
   ."
d884 2
a885 1
    ,    R-tree :
d891 1
a891 1
          Stonebraker' "Readings in
d894 20
a913 19
    R-tree     .  ,
   R-tree       
   .  ,  R-tree     
   ,   ,  -   ,  
   .
   
    4.11)   Genetic Query Optimizer?
    
    GEQO    ,  
       Genetic Algorithm (GA).  
          .
   
    4.12)          
        ?     
        ?
    
    ~    ,   ~*
          .
       LIKE  ILIKE.
d915 1
a915 1
         :
d918 1
a918 1
    WHERE lower(col) = 'abc'
d920 3
a922 3
         . , 
      ,   :
    CREATE INDEX tabindex on tab (lower(col));
d924 2
a925 2
    4.13)    ,     NULL  -
    ?
d927 1
a927 1
        IS NULL  IS NOT NULL.
d929 1
a929 1
    4.14)      ?
d931 1
a931 1
                
d933 28
a960 24
"char"          char            1 
CHAR(#)         bpchar              
VARCHAR(#)      varchar            ,  

TEXT            text                 
BYTEA           bytea               ( 
 null-  )

       ,     
       .
   
       "varlena"  (..,  
       ,    ). 
   ,    ,  
   . ,         
         TOAST,    
        ,  .
   
   CHAR() -      ,   
    . VARCHAR() -   ,   
     ,     . TEXT
   -       ,  
      1 . BYTEA    ,
       NULL .
d962 1
a962 1
    4.15.1)     serial/--?
d964 2
a965 2
   PostgreSQL    SERIAL.   
       . :
d971 1
a971 1
     :
d979 34
a1012 32
         
    create_sequence.      
   OID     . ,     
     ,     pg_dump
     -o   COPY WITH OIDS     OID.
   
    4.15.2)       SERIAL?
    
           SERIAL 
    sequence    nextval()    
      .  -  4.15.1,
         Perl:
    new_id = output of "SELECT nextval('person_id_seq')"
    INSERT INTO person (id, name) VALUES (new_id, 'Blaise Pascal');

            new_id 
        (    
     person). ,     
   SEQUENCE  <table>_<serialcolumn>_seq,  table  serialcolumn
           SERIAL.
   
     ,     
   SERIAL    currval()    
   , 
    INSERT INTO person (name) VALUES ('Blaise Pascal');
    new_id = output of "SELECT currval('person_id_seq')";

    ,     OID,  
    INSERT     , 
         
   .  Perl,  DBI   Edmund Mergl' DBD::Pg,
    oid    $sth->{pg_oid_status} 
d1015 2
a1016 2
    4.15.3)     ,   currval()  nextval()
         ?
d1018 2
a1019 2
   . Currval()   ,  
   backend',    .
d1021 30
a1050 30
    4.15.4)         
     ?       ,  
     /SERIAL?
    
     ,  , 
            
     .      
     .
   
    4.16)   OID?   TID?
    
    OID      PostgreSQL.
    ,    PostgreSQL   OID.
     OID    initdb   
   16384 ( backend/access/transam.h).    OID
     .  ,   OID  
      -    ,    
    PostgreSQL.
   
   PostgreSQL  OID      
      .  OID    
      ,   
    .     OID 
     OID       OID  
    .
   
    OID       
   ,      .  
     OID  -      
        OID,     :
d1057 8
a1064 3
   OID   4-         4
   . ,      ,   , 
             .
d1066 2
a1067 3
   TID       
     offset . TID     
      .
d1069 1
a1069 4
   TID       
    .
   
    4.17)       PostgreSQL?
d1071 2
a1072 2
         
    .    :
d1083 10
a1092 8
           
   http://www.comptechnews.com/~reaster/dbdesign.html
   
    4.18)     "ERROR: Memory exhausted in AllocSetAlloc()"?
    
           
         .  
    postmaster   :
d1096 26
a1121 26
        shell,   
      ,     
          .  
          , 
    ţ .       SQL , 
    backend     , 
        .
   
    4.19)   ,   PostgreSQL ?
    
    psql,  select version();
   
    4.20)           "invalid
    large obj descriptor"?
    
            BEGIN
   WORK    COMMIT,     lo_open ...
   lo_close.
   
      PostgreSQL ,    
      .  ,  
     -   ,   
       invalid large obj descriptor,   
        (    
   )         
   .
d1123 2
a1124 2
          ODBC,  
     auto-commit off.
d1126 2
a1127 2
    4.21)          
    ?
d1129 1
a1129 1
    CURRENT_TIMESTAMP:
d1132 1
a1132 1
    4.22)   ,  IN   ?
d1134 7
a1140 6
     ,       
         
    .       
       , IN   .
        ,  IN  EXISTS:
SELECT *
d1142 1
a1142 1
    WHERE col IN (SELECT subcol FROM subtab)
d1144 2
a1145 2
   :
SELECT *
d1147 1
a1147 1
    WHERE EXISTS (SELECT subcol FROM subtab WHERE subcol = col)
d1149 3
a1151 3
       ,  subcol  
   .       
   .
d1153 1
a1153 1
    4.23)     ?
d1155 2
a1156 2
   PostgreSQL   ,  
    SQL.   :
d1160 1
a1160 1
   
d1164 12
a1175 10
       t1.col  t2.col,  
       t1 (    t2). RIGHT
        t2. FULL 
            t1 
   t2.  OUTER      LEFT, RIGHT 
   FULL .    INNER .
   
     ,     
    UNION  NOT IN. ,    tab1 
   tab2,       :
d1185 1
a1185 1
    4.24)   ,    ?
d1187 50
a1236 34
            
   .  PostgreSQL    
     ,  ,     
    .
   
   /contrib/dblink    ,  
   . ,    
           
     .
   
    4.25)       ?
    
        PL/pgSQL  , 
   refcursors. 
   http://developer.postgresql.org/docs/postgres/plpgsql-cursors.html,
    23.7.3.3.
   
    4.26)      /   
     PL/PgSQL?
    
   PL/PgSQL        
      ,    PL/PgSQL   
          ,  
     ,      ,  
         
    .    ,  EXECUTE 
        PL/PgSQL.   
       .
   
    4.27)    ?
    
         master/slave.  
           
   ,  slave       .
d1239 1
a1239 1
                            PostgreSQL
d1241 2
a1242 2
    5.1)     .     
    psql,    dump core?
d1244 3
a1246 2
        .  
         .
d1248 1
a1248 1
    5.2)           
d1251 2
a1252 7
         pgsql-hackers   
        contrib/.
   
    5.3)    C ,  ?
    
            
    ,     .
d1254 1
a1254 2
    5.4)    .      
    ?
d1256 12
a1267 4
    Makefile      include . 
     make clean   make.    GCC 
      --enable-depend  configure  
      .
@


1.7.2.1
log
@Update russian FAQ, from Viktor Vislobokov.
@
text
@d2 1
a2 1
               Otvety na chasto zadavaemye voprosy po PostgreSQL
d4 1
a4 2
   Data poslednego obnovleniya: Voskresen'e 20 Oktyabrya 20:47:14 EDT
   2002
d6 1
a6 1
   Anglijskij variant soprovozhdaet: Bryus Mom'yan (Bruce Momjian)
d9 1
a9 1
   Perevel na russkij: Viktor Vislobokov (victor_v@@permonline.ru)
d11 1
a11 1
   Samuyu svezhuyu anglijskuyu versiyu dokumenta mozhno najti na
d14 2
a15 2
   Otvety na voprosy specifichnye dlya konkretnyh platform mozhno najti
   na http://www.PostgreSQL.org/users-lounge/docs/faq.html.
d18 1
a18 1
                              Obschie voprosy
d20 16
a35 16
   1.1) CHto takoe PostgreSQL? Kak proiznositsya `eto nazvanie?
   1.2) Kakovy avtorskie prava na PostgreSQL?
   1.3) Na kakih Unix platformah rabotaet PostgreSQL?
   1.4) Suschestvuyut li versii portirovannye ne na Unix sistemy?
   1.5) Gde mozhno vzyat' PostgreSQL?
   1.6) Gde poluchit' podderzhku?
   1.7) Kakaya poslednyaya versiya?
   1.8) Kakaya dokumentaciya imeetsya v nalichii?
   1.9) Kak najti informaciyu ob izvestnyh oshibkah ili otsutstvuyuschih
   vozmozhnostyah?
   1.10) Kak nauchit'sya SQL?
   1.11) Reshena li v PostgreSQL problema 2000-go goda (Y2K)?
   1.12) Kak prisoedinitsya k komande razrabotchikov?
   1.13) Kak otravit' soobschenie ob oshibke?
   1.14) Kak sravnivat' PostgreSQL s drugimi SUBD?
   1.15) Kak okazat' finansovuyu pomosch' PostgreSQL?
d37 1
a37 1
                 Voprosy pol'zovatelej po klientskoj chasti
d39 6
a44 6
   2.1) Suschestvuyut li ODBC drajvera dlya PostgreSQL?
   2.2) Kakie instrumenty suschestvuyut dlya ispol'zovaniya PostgreSQL
   cherez Web?
   2.3) Est' li u PostgreSQL graficheskij interfejs pol'zovatelya?
   Generator otchetov? Vstroennyj interfejs dlya yazyka zaprosov?
   2.4) Kakie yazyki mogut vzaimodejstvovat' s PostgreSQL?
d46 1
a46 1
                         Voprosy administrirovaniya
d48 1
a48 1
   3.1) Kak mne ustanovit' PostgreSQL v mesto otlichnoe ot
d50 15
a64 14
   3.2) Kogda ya zapuskayu postmaster, ya poluchayu soobschenie Bad
   System Call ili soobschenie core dumped. Pochemu?
   3.3) Kogda ya pytayus' zapustit' postmaster, ya poluchayu oshibki
   IpcMemoryCreate. Pochemu?
   3.4) Kogda ya pytayus' zapustit' postmaster, ya poluchayu oshibki
   IpcSemaphoreCreate. Pochemu?
   3.5) Kak mne upravlyat' soedineniyami s drugih komp'yuterov?
   3.6) Kakie nastrojki mne nuzhno sdelat' dlya uluchsheniya
   proizvoditel'nosti?
   3.7) Kakie vozmozhnosti dlya otladki est' v nalichii?
   3.8) Pochemu ya poluchayu soobschenie "Sorry, too many clients" kogda
   pytayus' podklyuchit'sya k baze?
   3.9) CHto nahoditsya v kataloge pgsql_tmp?
   3.10) Pochemu neobhodimo delat' dump i restore pri obnovlenii vypuskov
d67 1
a67 1
                           Voprosy `ekspluatacii
d69 31
a99 31
   4.1) V chem otlichie mezhdu binarnym i normal'nym kursorom?
   4.2) Kak vypolnit' SELECT tol'ko dlya neskol'kih pervyh strochek
   zaprosa?
   4.3) Kak poluchit' spisok tablic ili drugih komponentov v psql?
   4.4) Kak udalit' kolonku iz tablicy?
   4.5) Kakovy maksimal'nye razmery dlya zapisej, tablic i bazy dannyh?
   4.6) Kak mnogo diskovogo prostranstva v baze dannyh nuzhno dlya
   sohraneniya dannyh iz obychnogo tekstovogo fajla?
   4.7) Kak mne ubedit'sya, chto suschestvuyut nuzhnye mne tablicy,
   indeksy, bazy dannyh i pol'zovateli?
   4.8) U menya medlenno rabotayut zaprosy ili ne proishodit
   ispol'zovaniya indeksov. Pochemu?
   4.9) Kak posmotret' na to, kak optimizator vypolnyaet moj zapros?
   4.10) CHto takoe R-tree indeks?
   4.11) CHto takoe Genetic Query Optimizer?
   4.12) 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.13) Kak ya mogu opredelit', chto znachenie polya ravno NULL v
   kakom-libo zaprose?
   4.14) Kakovy otlichiya mezhdu raznymi simvol'nymi tipami?
   4.15.1) Kak mne sozdat' pole serial/s-avto-uvelicheniem?
   4.15.2) Kak mne poluchit' znachenie pri vstavke SERIAL?
   4.15.3) Ne mozhet li poluchit'sya tak, chto ispol'zovanie currval() i
   nextval() privedet k zaciklirovaniyu s drugimi pol'zovatelyami?
   4.15.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.16) CHto takoe OID? CHto takoe TID?
   4.17) CHto oznachayut nekotorye terminy ispol'zuemye v PostgreSQL?
   4.18) Pochemu ya poluchayu oshibku "ERROR: Memory exhausted in
d101 2
a102 2
   4.19) Kak mne uznat', kakaya versiya PostgreSQL zapuschena?
   4.20) Pochemu pri rabote s moim bol'shim ob"ektom ya poluchayu oshibku
d104 9
a112 11
   4.21) Kak mne sozdat' kolonku kotoraya po umolchaniyu budet soderzhat'
   tekuschee vremya?
   4.22) Pochemu moi podzaprosy, ispol'zuyuschie IN tak medlenno
   rabotaeyut?
   4.23) Kak vypolnit' vneshnee svyazyvanie?
   4.24) Kak vypolnyat' zaprosy, ispol'zuyuschie neskol'ko baz dannyh?
   4.25) Kak mne vernut' iz funkcii neskol'ko zapisej?
   4.26) Pochemu ya ne mogu nadezhno sozdavat'/udalyat' vremennye tablicy
   v funkciyah PL/PgSQL?
   4.27) Kakie opcii replikacii suschestvuyut?
   4.28) Kakie opcii shifrovaniya suschestvuyut?
d114 1
a114 1
                          Rasshireniya PostgreSQL
d116 3
a118 3
   5.1) YA napisal funkciyu opredelyaemuyu pol'zovatelem. Kogda ya
   zapuskayu ee v psql, pochemu ya poluchayu dump core?
   5.2) Kak ya mogu vnesti nekotorye klassnye novye tipy i funkcii v
d120 3
a122 3
   5.3) Kak mne napisat' C funkciyu, vozvraschayuschuyu zapis'?
   5.4) YA izmenil ishodnyj fajl. Pochemu posle perekompilyacii ya ne
   vizhu izmenenij?
d125 1
a125 1
                              Obschie voprosy
d127 1
a127 1
    1.1) CHto takoe PostgreSQL? Kak proiznositsya `eto nazvanie?
d129 1
a129 1
   PostgreSQL proiznositsya Post-Gres-Q-L (Post-Gres-K'yu-`El).
d131 25
a155 26
   PostgreSQL - `eto rasshirenie SUBD POSTGRES, issledovatel'skij
   prototip novogo pokoleniya SUBD. PostgreSQL odnovremenno sohranyaet
   moschnuyu model' dannyh i obschirnoe kolichestvo tipov POSTGRES, i
   zameschaet yazyk zaprosov PostQuel na rasshirennoe podmnozhestvo SQL.
   PostgreSQL - `eto svobodnoe i polnost'yu otkrytoe programmnoe
   obespechenie.
   
   Razrabotku PostgreSQL vypolnyaet komanda razrabotchikov, vse
   uchastniki kotoroj podpisany na spisok rassylki razrabotchikov. V
   nastoyaschee vremya, ih koordinatorom yavlyaetsya Mark Fornaj (Marc G.
   Fournier) (scrappy@@PostgreSQL.org). (Sm. sekciyu 1.6 o tom, kak
   podklyuchit'sya k razrabotke). `Eta komanda teper' otvechaet za vsyu
   razrabotku PostgreSQL.
   
   Avtorami PostgreSQL 1.01 yavlyayutsya `Endryu YU (Andrew Yu) i Dzholi
   CHen (Jolly Chen). Mnogie drugie vnesli svoj vklad v perenos na drugie
   platformy, testirovanie, otladku i rasshirenie `etogo koda.
   Pervonachal'nyj kod Postgres, iz kotorogo poyavilsya PostgreSQL, byl
   itogom usilij mnogih akademicheskih studentov, neakademicheskih
   studentov i mnozhestva raznyh programmistov, rabotavshih pod
   rukovodstvom professora Majkla Stounbrejkera (Michael Stonebraker) v
   Kalifornijskom universitete, Berkli.
   
   Pervonachal'noe imya, dannoe v Berkli, bylo Postgres. Kogda v 1995
   godu byla dobavlena funkcional'nost' SQL, `eto imya bylo izmeneno na
   Postgres95. No i `eto imya bylo izmeneno v konce 1996 na PostgreSQL.
d157 1
a157 1
    1.2) Kakovy avtorskie prava na PostgreSQL?
d159 1
a159 1
   PostgreSQL popadaet pod dejstvie sleduyuschego COPYRIGHT:
d161 1
a161 1
   Sistema Upravleniya Bazami Dannyh PostgreSQL
d166 64
a229 68
   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.
   
   Vysheizlozhennoe yavlyaetsya BSD licenziej, klassicheskoj licenziej
   programmnogo obespecheniya s otkrytym kodom. `Eta licenziya ne
   nakladyvaet ogranichenij na ispol'zovanie ishodnogo koda. Nam
   nravitsya `eta licenziya i my ne sobiraemsya eio menyat'.
   
    1.3) Na kakih Unix 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.
   
    1.4) Suschestvuyut li versii perenesennye ne na Unix sistemy?
    
   Klient
   
   Dlya zapuska na platformah MS Windows vozmozhna kompilyaciya C
   biblioteki libpq, psql, drugih interfesov i klientskih prilozhenij. V
   `etom sluchae, klient zapuskaetsya na MS Windows i svyazyvaetsya po
   TCP/IP s serverom, zapuschennym na odnoj iz podderzhivaemyh Unix
   platform. V distributiv vklyuchaetsya fajl win32.mak dlya togo, chtoby
   mozhno bylo provesti sborku biblioteki libpq i psql dlya Win32.
   PostgreSQL takzhe rabotaet cherez ODBC.
   
   Server
   
   Server BD mozhet byt' zapuschen na Windows NT i Win2k, ispol'zuya
   biblioteku Cygwin, razrabotannuyu dlya perenosa programmnogo
   obespecheniya Unix v NT. Smotrite pgsql/doc/FAQ_MSWIN v distributive
   ili MS Windows FAQ na http://www.PostgreSQL.org/docs/faq-mswin.html.
   
   PostgreSQL, sportirovannyj special'no dlya MS Win NT/2000/XP v
   nastoyaschij moment nachal rabotat'.
   
    1.5) Gde mozhno vzyat' PostgreSQL?
    
   Naprimer, vospol'zovavshis' anonimnym dostupom na ftp sajt PostgreSQL
   ftp://ftp.PostgreSQL.org/pub. Spisok zerkal vy najdete na nashem
   osnovnom sajte.
   
    1.6) Gde poluchit' podderzhku?
    
   Osnovnoj spisok rassylki: pgsql-general@@PostgreSQL.org. V nem mozhno
   obsuzhdat' lyubye temy, kasayuschiesya PostgreSQL. CHtoby
   podpisat'sya, otprav'te pis'mo po `elektronnoj pochte, v kotorom v
   tele pis'ma (ne v teme) napishite sleduyuschie stroki:
d233 1
a233 1
   na adres pgsql-general-request@@PostgreSQL.org.
d235 4
a238 4
   Suschestvuet dajzhest spisok. CHtoby podpisat'sya na nego, otprav'te
   pis'mo po `elektronnoj pochte na adres:
   pgsql-general-digest-request@@PostgreSQL.org i v tele pis'ma napishite
   strochki strochki:
d242 2
a243 2
   Dajzhesty otpravlyayutsya podpischikam, kogda v osnovnom spiske
   rassylki nakopitsya okolo 30 kilobajt soobschenij.
d245 4
a248 4
   Dostupen i spisok rassylki soobschenij ob oshibkah. CHtoby
   podpisat'sya na `etot spisok, otprav'te po `elektronnoj pochte pis'mo
   na adres pgsql-bugs-request@@PostgreSQL.org i v tele pis'ma napishite
   strochki strochki:
d252 4
a255 4
   Takzhe imeetsya spisok rassylki s diskussiyami razrabotchikov. CHtoby
   podpisat'sya na `etot spisok, otprav'te po `elektronnoj pochte pis'mo
   na adres pgsql-hackers-request@@PostgreSQL.org i v tele pis'ma
   napishite strochki strochki:
d259 2
a260 2
   Dopolnitel'nye spiski rassylki i infomaciyu o PostgreSQL mozhno najti
   na domashnej stranichke PostgreSQL po adresu:
d264 2
a265 2
   Esche suschestvuet IRC kanal na EFNet, s nazvaniem #PostgreSQL. YA
   ispol'zuyu dlya podklyucheniya k `etomu kanalu komandu Unix irc -c
d268 2
a269 2
   Spisok kommercheskoj podderzhki kompanij dostupen na
   http://www.PostgreSQL.org/users-lounge/commercial-support.html.
d271 1
a271 1
    1.7) Kakaya poslednyaya versiya?
d273 1
a273 1
   Poslednij vypusk PostgreSQL - `eto versiya 7.2.3.
d275 1
a275 1
   My planiruem vypuskat' novye versii kazhdye chetyre mesyaca.
d277 1
a277 1
    1.8) Kakaya dokumentaciya imeetsya v nalichii?
d279 4
a282 4
   V distributiv vklyuchayutsya razlichnye rukovodstva, 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/users-lounge/docs/.
d284 7
a290 7
   Suschestvuet dve knigi po PostgreSQL dostupnye po adresam
   http://www.PostgreSQL.org/docs/awbook.html i
   http://www.commandprompt.com/ppbook/. Spisok knig po PostgreSQL,
   kotorye mozhno kupit' dostupen po adresu
   http://www.ca.PostgreSQL.org/books/. Krome togo, po adresu
   http://techdocs.PostgreSQL.org/ vy mozhete najti kollekciyu
   tehnicheskih statej posvyaschennyh PostgreSQL.
d292 2
a293 2
   psql imeet neskol'ko prekrasnyh komand \d dlya otobrazheniya
   informacii po tipam, operatoram, funkciyam, agregatam i t.d.
d295 1
a295 1
   Nash sajt soderzhit esche bol'she informacii.
d297 2
a298 2
    1.9) Kak najti informaciyu ob izvestnyh oshibkah ili otsutstvuyuschih
    vozmozhnostyah?
d300 3
a302 3
   PostgreSQL podderzhivaet rasshirennyj podklass SQL-92. Smotrite nash
   spisok TODO na predmet izvestnyh oshibok, otsutstvuyuschih
   osobennostyah i buduschih planov.
d304 1
a304 1
    1.10) Kak mne nauchit'sya SQL?
d306 4
a309 4
   Kniga po PostgreSQL na http://www.PostgreSQL.org/docs/awbook.html
   nauchit SQL. Suschestvuet drugaya kniga po PostgreSQL na
   http://www.commandprompt.com/ppbook. Est' prekrasnyj uchebnik na
   http://www.intermedia.net/support/sql/sqltut.shtm, na
d311 1
a311 1
   i na http://sqlcourse.com.
d313 3
a315 3
   Esche odin uchebnik - `eto kniga "Teach Yourself SQL in 21 Days,
   Second Edition" (Osvoj samostoyatel'no SQL za 21 den', Vtoraya
   redakciya) na http://members.tripod.com/er4ebus/sql/index.htm
d317 2
a318 2
   Mnogim iz nashih pol'zovatelej nravitsya kniga The Practical SQL
   Handbook, Bowman, Judith S., et al., Addison-Wesley. Drugim nravitsya
d321 1
a321 1
    1.11) Reshena li v PostgreSQL problema 2000-go goda (Y2K)?
d323 1
a323 1
   Da, my legko manipuliruem datami posle 2000 goda i pered 2000 godom.
d325 1
a325 1
    1.12) Kak prisoedinitsya k komande razrabotchikov?
d327 35
a361 36
   Dlya nachala, skachajte poslednyuyu versiyu ishodnyh tekstov i
   prochtite dokumentaciyu razrabotchikov PostgreSQL na nashem sajte ili
   v distributive. Zatem, podpishites' na spiski rassylki pgsql-hackers i
   pgsql-patches. Dalee, otpravlyajte ispravleniya (patches) vysokogo
   kachestva v spisok pgsql-patches.
   
   Suschestvuet ogranichennyj spisok lyudej, kotoryj imeyut privelegiyu
   vnosit' izmeneniya v CVS arhiv PostgreSQL. Kazhdyj iz `etih lyudej v
   svoe vremya otpravil tak mnogo vysokokachestvennyh ispravlenij, chto
   ih bylo nevozmozhno ostavit' bez vnimaniya i oni byli udostoeny
   previlegii vnosit' izmeneniya, i my uvereny, chto te ispravleniya,
   kotorye oni vnesut budut vysokogo kachestva.
   
    1.13) Kak otravit' soobschenie ob oshibke??
    
   Pozhalujsta posetite stranichku PostgreSQL BugTool na
   http://www.PostgreSQL.org/bugs/bugs.php, na kotoroj predostavleny
   detal'nye instrukcii o tom kak otpravit' soobschenie ob oshibke.
   
   Takzhe ne zabud'te posmotret' na ftp://ftp.PostgreSQL.org/pub na
   predmet bolee svezhih versij PostgreSQL ili zaplat.
   
    1.14) Kak sravnivat' PostgreSQL s drugimi SUBD?
    
   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, obzory (views), vneshnij klyuch ssylochnoj
          celostnosti 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.
d363 13
a375 13
   Proizvoditel'nost'
          PostgreSQL imeet proizvoditel'nost' shozhuyu s drugimi
          kommercheskimi SUBD i s SUBD s otkrytym ishodnym kodom, v
          kakih-to aspektah rabotaya bystree chem oni, v kakih-to
          medlenee. V sravnenii s MySQL ili linejnymi SUBD, my medlenee
          pri operaciyah vstavki/obnovleniya, potomu chto upravlyaem
          tranzakciyami. I razumeetsya, MySQL ne imeet kakih-libo
          vozmozhnostej iz perechislenyh vyshe, v sekcii Vozmozhnosti. My
          delaem upor na nadezhnost' i rasshirennye vozmozhnosti, no my
          takzhe prodolzhaem uvelichivat' proizvoditel'nost' s kazhdym
          vypuskom. Suschestvuet interesnaya stranichka v Internet,
          sravnivayuschaya PostgreSQL i MySQL na
          http://openacs.org/philosophy/why-not-mysql.html
d377 9
a385 10
   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.
d387 11
a397 12
   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.6.)
d399 5
a403 6
   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.
d405 1
a405 1
    1.15) Kak okazat' finansovuyu pomosch' PostgreSQL?
d407 19
a425 19
   PostgreSQL imeet odnorangovuyu infrastrukturu s togo samogo vremeni
   kak my nachali razrabotku v 1996 godu. My dolzhny blagodarit' za `eto
   Marka Fonaya (Marc Fournier), kotoryj sozdal `etu infrastrukturu i
   upravlyaet ej na protyazhenii `etih let.
   
   Kachestvennaya infrastruktura ochen' vazhna dlya proektov s otkrytym
   ishodnym kodom. Ona predotvraschaet raskoly, kotorye mogut sil'no
   zaderzhat' postupatel'noe dvizhenie proekta.
   
   Razumeetsya, `eta infrastruktura ne yavlyaetsya deshevoj. Suschestvuet
   nekotoroe kolichestvo ezhemesyachnyh i odnorazovyh rashodov, kotorye
   trebuyut deneg. Esli vy ili vasha kompaniya imeet den'gi, kotorye
   mozhno peredat' v pomosch' nashim usiliyam, pozhalujsta posetite
   stranichku https://store.pgsql.com/shopping/ i sdelajte svoj vklad.
   
   Hotya na stranichke govoritsya o PostgreSQL, Inc, punkt
   "contributions" prednaznachen isklyuchitel'no dlya podderzhki proekta
   PostgreSQL i ne peredaetsya kakoj-libo konkretnoj kompanii. Esli
   hotite, to mozhete `eto proverit', napisav pis'mo na kontaktnyj adres.
d428 1
a428 1
                 Voprosy pol'zovatelej po klientskoj chasti
d430 1
a430 1
    2.1) Suschestvuyut li ODBC drajvera dlya PostgreSQL?
d432 1
a432 1
   Suschestvuet dva ODBC drajvera, PsqlODBC i OpenLink ODBC.
d434 2
a435 2
   PsqlODBC vklyuchaetsya v distributiv. Bol'she informacii ob `etom
   drajvere mozhno najti na ftp://ftp.PostgreSQL.org/pub/odbc/.
d437 5
a441 5
   OpenLink ODBC mozhno vzyat' na http://www.openlinksw.com. `Etot
   drajver rabotaet s ih standartnym klientskim programmnym
   obespecheniem, ispol'zuyuschim ODBC, i takim obrazom, ODBC drajvery
   dlya PostgreSQL dostupny dlya kazhdoj iz podderzhivaemyh imi platform
   (Win, Mac, Unix, VMS).
d443 3
a445 4
   Vozmozhno oni budut prodavat' svoj produkt tem komu nuzhna
   kommercheskaya podderzhka, no besplatnaya versiya vsegda budet
   dostupna. Pozhalujsta, napravlyajte voprosy na adres
   postgres95@@openlink.co.uk.
d447 1
a447 1
   Takzhe posmotrite ODBC razdel v rukovodstve programmista.
d449 1
a449 2
    2.2) Kakie instrumenty suschestvuyut dlya ispol'zovaniya PostgreSQL cherez
    Web?
d451 2
a452 2
   Prekrasnoe vvedenie vo vzaimodejstvie baz dannyh i Web mozhno najti
   na: http://www.webreview.com
d454 1
a454 2
   Dlya integracii s Web, odnim iz prevoshodnyh instrumentov yavlyaetsya
   PHP. Domashnyaya stanichka http://www.php.net.
d456 2
a457 2
   Dlya kompleksnyh reshenij, mnogie pol'zuyutsya Perl interfejsom i
   CGI.pm ili mod_perl.
d459 4
a462 2
    2.3) Est' li u PostgreSQL graficheskij interfejs pol'zovatelya? Generator
    otchetov? Vstroennyj interfejs dlya yazyka zaprosov?
d464 3
a466 3
   U nas est' prekrasnyj goraficheskij interfejs, nazyvaemyj PgAccess,
   kotoryj takzhe mozhno ispol'zovat' kak generator otchetov. Ego
   stranichka http://www.pgaccess.org/
d468 2
a469 2
   My takzhe vklyuchaem ecpg, kotoryj predostavlyaet vstroennyj interfejs
   k yazyku zaprosov SQL iz C.
d471 1
a471 1
    2.4) Kakie yazyki mogut vzaimodejstvovat' s PostgreSQL?
d473 1
a473 1
   Vot `eti:
d478 1
a478 1
     * Perl (DBD::Pg i perl5)
d483 1
a483 1
     * PHP ('pg_' functions, Pear::DB)
d485 2
a486 3
   Dopolnitel'nye interfejsy dostupny po adresu
   http://www.PostgreSQL.org/interfaces.html. i
   http://gborg.PostgreSQL.org.
d489 1
a489 1
                         Voprosy administrirovaniya
d491 1
a491 1
    3.1) Kak mne ustanovit' PostgreSQL v mesto otlichnoe ot /usr/local/pgsql?
d493 1
a493 1
   Zadajte opciyu --prefix kogda zapuskaete configure.
d495 2
a496 2
    3.2) Kogda ya zapuskayu postmaster, ya poluchayu soobschenie Bad System
    Call ili soobschenie core dumped. Pochemu?
d498 91
a588 97
   `Eto mozhet byt' vyzvano raznymi problemami, no pervoe, chto nuzhno
   sdelat' - `eto ubedit'sya v tom, chto v vashem yadre ustanovleno
   rasshirenie System V. PostgreSQL trebuet, chtoby yadro podderzhivalo
   razdelyaemuyu pamyat' i semafory.
   
    3.3) Kogda ya pytayus' zapustit' postmaster, ya poluchayu oshibki
    IpcMemoryCreate. Pochemu?
    
   Libo u vas v yadre nepravil'nye nastrojki razdelyaemoj pamyati, libo
   vashemu yadru nuzhno bol'shee kolichestvo dostupnoj razdelyaemoj
   pamyati. Te konkretnye dejstviya, kotorye vam nuzhno proizvesti
   zavisyat ot arhitektury vashej mashiny i ot togo kak mnogo buferov i
   backend processov vy nastroili dlya postmaster. Dlya bol'shinstva
   sistem, s kolichestvom buferov i processov po umolchaniyu, neobhodimyj
   minimum - `eto okolo 1 megabajta. Podrobnosti o razdelyaemoj pamyati i
   semaforah smotrite v Rukovodstve administratora PostgreSQL.
   
    3.4) Kogda ya pytayus' zapustit' postmaster, ya poluchayu oshibki
    IpcSemaphoreCreate. Pochemu?
    
   Esli `eto soobschenie IpcSemaphoreCreate: semget failed (No space left
   on device) to nastrojki vashego yadra takovy, chto emu ne hvataet
   semaforov. Postgres trebuet odin semafor na potencial'nyj backend
   process. Vremennym resheniem yavlyaetsya zapusk postmaster s
   nastrojkami na mesh'shee kolichestvo backend processov. Ispol'zujte -N
   s znacheniem men'shim chem 32, kotoroe prinyato po umolchaniyu. Bolee
   pravil'noe reshenie - `eto uvelichit' znacheniya SEMMNS i SEMMNI v
   nastrjkah yadra.
   
   Neispravnye semafory takzhe mogut privesti k padeniyu SUBD vo vremya
   dostupa k baze dannyh.
   
   Esli vy poluchili kakoe-libo drugoe soobschenie ob oshibke, to vpolne
   vozmozhno, chto v vashem yadre voobsche ne nastroena podderzhka
   semaforov. Smotrite podrobnosti o razdelyaemoj pamyati i semaforah v
   Rukovodstve Administratora PostgreSQL.
   
    3.5) Kak mne upravlyat' soedineniyami s drugih komp'yuterov?
    
   Po umolchaniyu, PostgreSQL razreshaet tol'ko soedineniya na lokal'noj
   mashine cherez sokety domena Unix. Drugie mashiny ne smogut
   podklyuchit'sya k baze poka dlya postmaster ne budet zadan flag -i i
   poka ne budet razreshena host-avtorizaciya v fajle
   $PGDATA/pg_hba.conf. `Eti dejstviya delayut vozmozhnymi TCP/IP
   soedineniya.
   
    3.6) Kakie nastrojki mne nuzhno sdelat' dlya uluchsheniya
    proizvoditel'nosti?
    
   Nesomnenno, indeksy mogut uvelichit' skorost' vypolneniya zaprosov.
   Komanda EXPLAIN pozvolyaet vam posmotret' kak PostgreSQL
   interpretiruet vash zapros i kakie indeksy ispol'zuyutsya.
   
   Esli vy vypolnyaete mnogo operatorov INSERT, rassmotrite vozmozhnost'
   vypolnyat' ih v bol'shoj pachke, ispol'zuya komandu COPY. `Eto
   znachitel'no bystree, chem otdel'nye INSERT. Vo-vtoryh, operatory vne
   bloka tranzakcii BEGIN WORK/COMMIT sami vypolnyayut tranzakciyu.
   Podumajte nad vypolneniem neskol'kih operatorov v odnom bloke
   tranzakcii. `Eto umen'shit kolichestvo tranzakcij. Takzhe, zadumajtes'
   nad udaleniem i peresozdaniem indeksov, kogda vy vypolnyaete bol'shie
   izmeneniya dannyh.
   
   Suschestvuet neskol'ko opcij nastrojki. Vy mozhete zapretit' fsync()
   pri starte postmaster s opciej -o -F. `Eto predotvratit vyzovy
   fsync(), kotorye privodyat k sbrosu dannyh na disk posle kazhdoj
   tranzakcii.
   
   Vy mozhete takzhe ispol'zovat' dlya postmaster opciyu -B dlya
   uvelicheniya kolichestva buferov razdelyaemoj pamyati, kotoraya
   ispol'zuetsya backend processami. Esli vy sdelaete znachenie `etogo
   parametra slishkom bol'shim, to postmaster mozhet ne zapustitsya
   potomu chto vy ischerpaete ogranichenie yadra na ob"em razdelyaemoj
   pamyati. Kazhdyj bufer imeet razmer v 8 kilobajt i po umolchaniyu
   vydelyaetsya 64 bufera.
   
   Vy mozhete takzhe ispol'zovat' backend opciyu -S dlya uvelicheniya
   maksimal'nogo kolichestva pamyati, kotoroe ispol'zuetsya backend
   processom dlya vremennyh sortirovok. Znachenie dlya opcii -S zadaetsya
   v kilobajtah i po umolchaniyu ravno 512 (t.e. 512K).
   
   Vy takzhe mozhete ispol'zovat' komandu CLUSTER dlya gruppirovki dannyh
   v tablicah na sovpadayuschij indeks. Podrobnosti smotrite na stranice
   rukovodstva po komande CLUSTER.
   
    3.7) Kakie vozmozhnosti dlya otladki est' v nalichii?
    
   PostgreSQL imeet neskol'ko vozmozhnostej, pozvolyayuschie poluchit'
   informaciyu o sostoyanii, kotoraya mozhet byt' ispol'zovana v
   otladochnyh celyah.
   
   Vo-pervyh, pri zapuske configure s opciej --enable-cassert, mnogie
   vyzovy assert() pozvolyayut otslezhivat' rabotu backend processa i
   ostanovku programmy pri vozniknovenii kakih-libo neozhidannostej.
   
   I postmaster, i postgres imeyut neskol'ko otladochnyh opcij.
   Vo-pervyh, pri zapuske postmaster, ubedites', chto standartnyj vyvod i
   vyvod oshibok osuschestvlyayutsya v fajl zhurnala:
d592 79
a670 77
   `Eto privedet k poyavleniyu fajla server.log v glavnom kataloge
   PostgreSQL. `Etot fajl soderzhit poleznuyu informaciyu o problemah ili
   oshibkah, voznikshih na servere. Postmaster imeet opciyu -d, kotoraya
   pozvolyaet poluchat' pri protokolirovanii bolee detal'nuyu infrmaciyu.
   Dlya opcii -d ukazyvaetsya chislo, kotoroe zadaet uroven' otladki.
   Bud'te ostorozhny, tak kak vysokij uroven' otladki privodit k
   generacii fajlov zhurnala bol'shogo razmera.
   
   Esli postmaster ne zapuschen, vy mozhete zapustit' postgres backend iz
   komandnoj stroki i vvesti vash operator SQL napryamuyu. `Eto
   rekomenduetsya tol'ko dlya celej otladki. Zametim, chto v `etom
   rezhime, zapros zavershaetsya simvolom novoj stroki, a ne tochkoj s
   zapyatoj. Esli vy proizvodili kompilyaciyu s otladochnymi simvoloami,
   vy mozhete ispol'zovat' lyuboj otladchik, chtoby posmotret', chto
   sluchilos'. Poskol'ku backend zapuskaetsya ne iz postmaster, on ne
   zapuskaetsya v identichnom okruzhenii i znachit problemy iteracij
   blokirovok/backend ne mogut byt' vosproizvedeny.
   
   Esli postmaster zapuschen, zapustite psql v odnom okne, zatem najdite
   PID processa postgres, ispol'zuemyj psql. Ispol'zujte otdadchik dlya
   podklyucheniya k postgres PID. Vy mozhete ustanovit' tochki
   preryvaniya v otladchike i zapustit' zapros iz psql. Esli vy
   proizvodite otladku zapuska postgres, vy mozhete ustanovit'
   PGOPTIONS="-W n", i zatem zapustit' psql. `Eta opciya privodit k
   zaderzhke processa zapuska na n sekund, v techenie kotoryh vy mozhete
   podklyuchit' k processu otladchik, ustanovit' lyubye tochki
   preryvaniya i prodolzhit' zapusk.
   
   Programma postgres imeet opcii -s, -A, i -t kotorye mogut byt' ochen'
   poleznymi dlya otladki i izmereniya proizvoditel'nosti.
   
   Vy takzhe mozhete skompilirovat' PostgreSQL s profilirovaniem dlya
   togo, chtoby uvidet' kakie funkcii skol'ko vremeni vypolnyayutsya.
   Fajly profilirovaniya backend'a nahodyatsya v kataloge
   pgsql/data/base/dbname. Fajl profilirovaniya klienta budet pomeschen v
   tekuschij katalog klienta. V Linux dlya vypolneniya profilirovaniya
   trebuetsya kompilyacii s -DLINUX_PROFILE.
   
    3.8) Pochemu ya poluchayu soobschenie "Sorry, too many clients" kogda
    pytayus' podklyuchit'sya k baze?
    
   Vam nuzhno uvelichit' ogranichenie na kolichestvo konkuretnyh backend
   processov pri zapuske postmaster.
   
   Po umolchaniyu ustanovlen limit na 32 processa. Vy mozhete uvelichit'
   `etot limit perezapustiv postmaster s nuzhnym znacheniem processov,
   kotoroe ukazyvaetsya v opcii -N ili izmeniv fajl postgresql.conf.
   
   Zametim, chto esli vy zadadite v opcii -N znachenie bol'she 32, to vy
   takzhe dolzhny uvelichit' znachenie v opcii -B kotoroe po umolchaniyu
   ustanovleno v 64; Znachenie opcii -B dolzhno byt' po krajnej mere
   vdvoe bol'she znacheniya opcii -N, i vozmozhno eschio bol'she dlya
   luchshej proizvoditel'nosti. Dlya bol'shego kolichestva backend
   processov, vam takzhe neploho bylo by uvelichit' nekotorye parametry
   yadra Unix. `Eto takie parametry, kak maksimal'noe kolichestvo blokov
   razdelyaemoj pamyati, SHMMAX; maksimal'noe kolichestvo semaforov,
   SEMMNS i SEMMNI; maksimal'noe kolichestvo processov, NPROC;
   maksimal'noe kolichestvo processov na pol'zovatelya, MAXUPRC; i
   maksimal'noe kolichestvo otkrytyh fajlov, NFILE i NINODE. Prichina
   sozdaniya ogranicheniya na kolichestvo backend processov kak raz i
   sostoit v tom, chtoby vashej sisteme hvatilo resursov.
   
   V PostgreSQL do versii 6.5, maksimal'noe kolichestvo backend processov
   bylo 64, i izmenenie `etogo kolichestva trebovalo perekompilyacii
   posle ustanovki konstanty MaxBackendId v include/storage/sinvaladt.h.
   
    3.9) CHto nahoditsya v kataloge pgsql_tmp?
    
   Dannyj katalog soderzhit vremennye fajly, generiruemye obrabotchikom
   zaprosa. Naprimer, esli dlya vypolneniya ORDER BY nuzhna sortirovka i
   `eta sortirovka trebuet pamyati bol'she, chem dopuskaet parametr -S u
   backend'a, to dlya hraneniya dopolnitel'nyh dannyh sozdayutsya
   vremennye fajly.
   
   `Eti vremennye fajly dolzhny udalyat'sya avtomaticheski, no `etogo
   mozhet ne proizojti, esli backend ruhnul vo vremya sortirovki. Ostanov
   i zapusk servernogo processa obespechit ih udalenie iz kataloga.
d672 13
a684 17
    3.10) Pochemu neobhodimo delat' dump i restore pri obnovlenii vypuskov
    PostgreSQL?
    
   Razrabotchiki PostgreSQL delayut tol'ko nebol'shie izmeneniya mezhdu
   podvypuskami. Takim obrazom obnovlenie s versii 7.2 do 7.2.1 ne
   trebuet vypolneniya dump i restore. Odnako pri vyhode ocherednogo
   vypuska (t.e. pri obnovlenii naprimer, s 7.2 na 7.3) chasto menyaetsya
   vnutrennij format sistemnyh tablic i fajlov dannyh. `Eti izmeneniya
   chasto nosyat kompleksnyj harakter, tak chto net vozmozhnosti
   obespechit' obratnuyu sovmestimost' fajlov dannyh. Vypolenie dump
   pozvolyaet poluchit' dannye v obschem formate, kotoryj zatem mozhet
   byt' zagruzhen pri ispol'zovanii novogo vnutrennego formata.
   
   V teh vypuskah, gde format dannyh na diske ne menyaetsya, dlya
   provedeniya obnovleniya mozhet byt' ispol'zovan scenarij pg_upgrade
   bez ispol'zovaniya dump/restore. Kommentarii k vypusku govorit kogda
   mozhno ispol'zovat' pg_upgrade dlya `etogo vypuska.
d687 1
a687 1
                           Voprosy `ekspluatacii
d689 1
a689 1
    4.1) V chem otlichie mezhdu binarnym i normal'nym kursorom?
d691 1
a691 1
   Smotrite opisanie na stranicah rukovodstva posvyaschennym DECLARE.
d693 1
a693 1
    4.2) Kak vypolnit' SELECT tol'ko dlya neskol'kih pervyh strochek zaprosa?
d695 2
a696 2
   Smotrite stanicu rukovodstva posvyaschennuyu FETCH ili ispol'zujte
   SELECT ... LIMIT....
d698 5
a702 5
   Dazhe esli vy hotite poluchit' tol'ko pervye neskol'ko zapisej, budet
   vypolnen ves' zapros. Rassmotrim zapros, kotoryj imeet ORDER BY. Esli
   est' kakoj-libo indeks, kotoryj sovpadaet s ORDER BY, PostgreSQL
   mozhet vydat' tol'ko neskol'ko pervyh zaproshennyh zapisej ili mozhet
   vypolnyat' zapros poka ne budut vydany zhelaemye zapisi.
d704 1
a704 1
    4.3) Kak poluchit' spisok tablic ili drugih komponentov v psql?
d706 6
a711 6
   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 moezhete zapustit' psql s opciej -E tak,
   chtoby `eta programma vydavala zaprosy, kotorye ona ispol'zuet dlya
   vypolneniya zadannyh vami komand.
d713 1
a713 1
    4.4) Kak udalit' kolonku iz tablicy?
d715 1
a715 2
   `Eta funkcional'nost' byla dobavlena v vypusk 7.3 s operatorom ALTER
   TABLE DROP COLUMN. V rannih versiyah, mozhno sdelat' tak:
d718 2
a719 2
    SELECT ...  -- vyborka vseh kolonok za isklyucheniem toj, kotoruyu hotite u
dalit'
d726 1
a726 1
    4.5) Kakovy maksimal'nye razmery dlya zapisej, tablic i bazy dannyh?
d728 38
a765 39
   Suschestvuyut sleduyuschie ogranicheniya:
    Maksimal'nyj razmer bazy?              neogranichen (suschestvuyut bazy na
1 TB)
    Maksimal'nyj razmer tablicy?           16 TB
    Maksimal'nyj razmer zapisi?            1.6 TB
    Maksimal'nyj razmer polya?              1 GB
    Maksimal'noe kolichestvo zapisej v tablice?      neogranicheno
    Maksimal'noe kolichestvo kolonok v tablice?    250-1600 v zavisimosti ot ti
pa
    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 16 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, esli razmer bloka po umolchaniyu budet uvelichen do
   32k.
   
    4.6) 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 6.4 MB iz kotoryh:
    36 bajt: na kazhdyj zagolovok zapisi (priblizitel'no)
  + 24 bajta: odno pole s celochislennym tipom i odno tekstovoe pole
   + 4 bajta: ukazatel' na stranice dlya vsej zapisi
d767 1
a767 1
    64 bajt na zapis'
d769 1
a769 1
   Razmer stranicy dannyh v PostgreSQL sostavlyaet 8192 bajt (8 KB), tak chto:
d771 55
a825 58
   8192 bajt na stranicu
   -------------------   =  128 zapisej na stranicu BD (s okrugleniem)
     64 bajt na zapis'

   100000 strok dannyh
   --------------------  =  782 stranicy v BD
  128 zapisej na stranicu

782 stranicy BD * 8192 bajt na stranicu  =  6,406,144 bajt (6.4 MB)

   Indeksy ne trebuyut tak mnogo, no poskol'ku oni sozdayutsya dlya
   bol'shogo kolichestva dannyh, oni takzhe mogut byt' veliki.
   
   Znacheniya NULL sohranyayutsya v bitah i po`etomu oni zanimayut ochen'
   malo mesta.
   
    4.7) Kak mne ubedit'sya, chto suschestvuyut nuzhnye mne tablicy, indeksy,
    bazy dannyh i pol'zovateli?
    
   psql imeet neskol'ko komand, nachinayuschihsya s obratnoj kosoj
   cherty, dlya togo chtoby prosmatrivat' takuyu informaciyu. Ispol'zujte
   \? dlya togo, chtoby uvidet' `eti komandy. Takzhe suschestvuyut
   sistemnye tablicy, imya kotoryh nachinaetsya na pg_ i v kotoryh takzhe
   soderzhitsya `eta informaciya. Eschio, psql -l pokazhet spisok vseh
   baz dannyh.
   
   Takzhe smotrite fajl pgsql/src/tutorial/syscat.source. V nem
   predstavleny mnogie operatory SELECT kotorye nuzhny dlya polucheniya
   informacii iz sistemnyh tablic bazy dannyh.
   
    4.8) U menya medlenno rabotayut zaprosy ili ne proishodit ispol'zovaniya
    indeksov. Pochemu?
    
   Indeksy ne ispol'zuyutsya dlya kazhdogo zaprosa avtomaticheski. Oni
   ispol'zuyutsya tol'ko esli tablica bol'she minimal'nogo razmera i
   zapros vybiraet tol'ko malen'kij procent zapisej 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
   zapisej 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. Sbor
   statistiki dolzhen periodicheski vypolnyatsya pri izmenenii
   soderzhimogo tablicy.
   
   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. Fakticheski MAX() i MIN()
   ne ispol'zuyut indeksy, no indeks ispol'zuetsya pri postroenii
   zaprosov s ORDER BY i LIMIT:
d829 1
a829 1
    LIMIT 1;
d831 4
a834 12
   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 funkcional'nye indeksy, kotorye
       opisyvayutsya v sekcii 4.12.
     * Vo vremya initdb dolzhna ispol'zovat'sya lokal' po umolchaniyu C.
d836 14
a849 1
    4.9) Kak posmotret' na to, kak optimizator vypolnyaet moj zapros?
d851 1
a851 1
   Smotrite stranicu rukovodstva posvyaschennuyu EXPLAIN.
d853 1
a853 1
    4.10) CHto takoe R-tree indeks?
d855 7
a861 7
   R-tree indeks ispol'zuetsya dlya indeksirovaniya prostranstvennyh
   dannyh. Indeks h`esha ne mozhet upravlyat' poiskami diapazona. B-tree
   indeks upravlyaet tol'ko poiskami diapazona v odnom izmerenii. R-tree
   indeks mozhet upravlyat' mnogorazmernymi dannymi. Naprimer, esli
   R-tree indeks mozhet byt' vstroen v atribut tipa point, to sistema
   mozhet bolee `effektivno otvetit' na zapros tipa "vybrat' vse tochki
   vnutri zadannogo chetyrehugol'nika."
d863 1
a863 2
   Kanonicheskij istochnik, opisyvayuschij pervonachal'noe sozdanie
   R-tree `eto:
d869 1
a869 1
   Vy mozhete najti `etot dokument v knige Stonebraker'a "Readings in
d872 19
a890 20
   Vstroennnye R-tree mogut upravlyat' poligonami i boksami. V teorii,
   R-tree mogut byt' rasshireny dlya upravleniya bol'shim kolichestvom
   izmerenij. Na praktike, rasshirenie R-tree trebuet nekotoryh usilij i
   u nas, v dannyj moment, net kakoj-libo dokumentacii o tom, kak `eto
   sdelat'.
   
    4.11) CHto takoe Genetic Query Optimizer?
    
   Modul' GEQO proizvodit bystruyu optimizaciyu zaprosa, kogda proishodit
   svyazyvanie mnogih tablic cherez Genetic Algorithm (GA). `Eto
   pozvolyaet upravlyat' bol'shimi zaprosami na svyazyvanie cherez
   neistoschayuschij poisk.
   
    4.12) 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.
d892 1
a892 1
   Nezavisimoe ot registra sravnenie obychno vyrazhaetsya tak:
d895 1
a895 1
    WHERE lower(col) = 'abc';
d897 3
a899 3
   `Eta konstrukciya ne budet ispol'zovat' standartnyj indeks. Odnako,
   esli vy sozdadite funkcional'nyj indeks, on budet ispol'zovan:
    CREATE INDEX tabindex ON tab (lower(col));
d901 2
a902 2
    4.13) Kak ya mogu opredelit', chto znachenie polya ravno NULL v kakom-libo
    zaprose?
d904 1
a904 1
   Vy prosto sravnivaete znachenie s IS NULL i IS NOT NULL.
d906 1
a906 1
    4.14) Kakovy otlichiya mezhdu raznymi simvol'nymi tipami?
d908 1
a908 1
Tip            Vnutrennee imya   Zamechaniya
d910 24
a933 28
"char"          char            1 simvol
CHAR(n)         bpchar          zapolnyaetsya pustotoj do fiksirovannoj dliny
VARCHAR(n)      varchar         razmer zadaet maksimal'nuyu dlinu, net zapolnen
iya
TEXT            text            net zadavaemogo verhnego ogranicheniya ili dlin
y
BYTEA           bytea           massiv bajt peremennoj dliny (mozhno ispol'zova
t' null-bajt bez opaski)

   Vnutrennee imya vy mozhete uvidet', kogda smotrite sistemnye katalogi
   i v nekotoryh soobscheniyah ob oshibkah.
   
   Poslednie 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, `eti tipy dannyh takzhe poddayutsya
   szhatiyu ili mogut byt' sohraneny ne v strokom vide cherez TOAST, tak
   chto zanimaemoe diskovoe prostranstvo mozhet takzhe byt' i men'she,
   chem ozhidalos'.
   
   CHAR(n) - `eto luchshee reshenie dlya hraneniya strok, kotorye obychno
   imeyut odinakovuyu dlinu. VARCHAR(n) - `eto luchshee reshenie, kogda
   nuzhno hranit' stroki peremennoj dliny, no ne prevyshayuschie
   opredelennogo razmera. TEXT - `eto luchshee reshenie dlya strok
   neogranichennoj dliny, s maksimal'no dopustimoj dlinoj v 1 gigabajt.
   BYTEA dlya hraneniya binarnyh dannyh, znacheniya kotoryh mogut
   vklyuchat' NULL bajty. `Eti tipy imeyut shodnye harakteristiki
   proizvoditel'nosti.
d935 1
a935 1
    4.15.1) Kak mne sozdat' pole serial/s-avto-uvelicheniem?
d937 2
a938 2
   PostgreSQL podderzhivaet tip dannyh SERIAL. On avtomaticheski sozdaet
   posledovatel'nost' i indeks dlya kolonki. Naprimer:
d944 1
a944 1
   avtomaticheski transliruetsya v:
d952 32
a983 34
   Smotrite podrobnosti o posledovatel'nostyah na stranice rukovodstva
   posvyaschennoj create_sequence. Vy takzhe mozhete ispol'zovat' kazhdoe
   pole OID v zapisi kak unikal'noe znachenie. Odnako, esli vam nuzhen
   damp i perezagruzka bazy dannyh, vam neobhodimo ispol'zovat' komandu
   pg_dump s opciej -o ili opciyu COPY WITH OIDS dlya sohraneniya
   znachenij polya OID.
   
    4.15.2) Kak mne poluchit' znachenie pri vstavke SERIAL?
    
   Odin iz sposobov sostoit v poluchenii sleduyuschego znacheniya SERIAL
   iz ob"ekta sequence s pomosch'yu funkcii nextval() pered vstavkoj i
   zatem vstavlyat' `eto znachenie yavno. Ispol'zujte tablicu-primer v
   4.15.1, primer v psevdoyazyke pokazhet kak `eto delaetsya:
    new_id = execute("SELECT nextval('person_id_seq')");
    execute("INSERT INTO person (id, name) VALUES (new_id, 'Blaise Pascal')");

   Zatem vy dolzhny takzhe sohranit' novoe znachenie v peremennoj new_id
   dlya ego ispol'zovaniya v drugih zaprosah (naprimer takih kak vneshnij
   klyuch dlya tablicy person). Zametim, chto imya avtomaticheski
   sozdannogo ob"ekta SEQUENCE budet <table>_<serialcolumn>_seq, gde
   table i serialcolumn yavlyayutsya sootvetstvenno imenami vashej
   tablicy i vashej kolonki SERIAL.
   
   V kachestve al'ternativy, vy mozhete poluchit' naznachennoe znachenie
   SERIAL s pomosch'yu funkcii currval() posle provedeniya obychnoj
   operacii vstavki, naprimer
    execute("INSERT INTO person (name) VALUES ('Blaise Pascal')");
    new_id = execute("SELECT currval('person_id_seq')");

   I nakonec, vy mozhete ispol'zovat' znachenie OID, vozraschaemoe iz
   opertora INSERT chtoby uvidet' znachenie po umolchaniyu, chto
   predpolozhitel'no yavlyaetsya naimenee perenosimym na drugie platformy
   resheniem. V Perl, ispol'zuya DBI s modulei Edmund Mergl'ya DBD::Pg,
   znachenie oid stanovitsya dostupnym cherez $sth->{pg_oid_status} posle
d986 2
a987 2
    4.15.3) Ne mozhet li poluchit'sya tak, chto ispol'zovanie currval() i
    nextval() privedet k zaciklirovaniyu s drugimi pol'zovatelyami?
d989 2
a990 2
   Net. currval() vozvraschaet tekuschee znachenie, naznachennoe vashem
   backend'om, a ne drugimi pol'zovatelyami.
d992 30
a1021 30
    4.15.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.16) CHto takoe OID? CHto takoe TID?
    
   Polya OID sluzhat unikal'nymi idetifikatorami zapisej v PostgreSQL.
   Kazhdaya zapis', kotoraya sozdaiotsya v PostgreSQL poluchaet
   unikal'nyj OID. Vse znacheniya OID generiruemye vo vremya initdb
   imeyut znacheniya men'she 16384 (iz include/access/transam.h). Vse
   sozdannye pol'zovatelem OID imeyut bOl'shie znachenie. Po umolchaniyu,
   vse `eti OID yavlyayutsya unikal'nymi ne tol'ko vnutri kakoj-libo
   tablicy ili bazy dannyh, no i vnutri vsej SUBD PostgreSQL.
   
   PostgreSQL ispol'zuet OID v svoih vnutrennih sistemnyh tablicah dlya
   svyazi zapisej i tablic. Znacheniya OID mogut byt' ispol'zovany dlya
   identifikacii zadannyh pol'zovatelem zapisej, a takzhe ispol'zovat'sya
   pri svyazyvaniyah. Rekomenduetsya ispol'zovat' tip kolonki OID dlya
   hraneniya znachenij OID Vy mozhete sozdat' indeks na pole OID dlya
   bolee bystrogo dostupa.
   
   Znacheniya OID naznachayutsya dlya vseh novyh zapisej iz central'noj
   oblasti, kotorye ispol'zuyutsya vsemi vsemi bazami dannyh. Esli vy
   hotite izmenit' OID na kakoe-libo drugoe znachenie ili esli vy hotite
   sozdat' kopiyu tablicy s takimizhe OID, to `eto mozhno sdelat' tak:
d1028 3
a1030 8
   OID hranitsya kak 4-h bajtnoe celoe i ne mozhet prevyshat' znachenie v
   4 milliarda. Odnako, esche nikto ne soobschil o tom, chto takoe
   proizoshlo, no my planiruem do togo kak `eto sluchit'sya izbavitsya ot
   `etogo ogranicheniya.
   
   TID ispol'zuetsya dlya identifikacii special'nyh fizicheskih zapisej s
   blochnymi i offset znacheniyami. TID izmenyaetsya posle togo kak
   zapisi byli izmeneny ili peregruzheny.
d1032 3
a1034 2
   TID ispol'zuetsya indeksnymi zapisyami v kachestve ukazatelya na
   fizicheskie zapisi.
d1036 4
a1039 1
    4.17) CHto oznachayut nekotorye terminy ispol'zuemye v PostgreSQL?
d1041 2
a1042 2
   Nekotoryj ishodnyj kod i staraya dokumentaciya ispol'zuyut
   obscheupotrebitel'nye terminy. Vot nekotorye iz nih:
d1053 8
a1060 10
   Spisok obschih terminov po bazam dannyh mozhno najti na
   http://hea-www.harvard.edu/MST/simul/software/docs/pkgs/pgsql/glossary
   /glossary.html
   
    4.18) 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 postmaster vypolnit' sleduyuschie komandy:
d1064 26
a1089 26
   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.19) Kak mne uznat', kakaya versiya PostgreSQL zapuschena?
    
   Iz psql, naberite SELECT version();
   
    4.20) Pochemu pri rabote s moim bol'shim ob"ektom ya poluchayu oshibku
    "invalid large obj descriptor"?
    
   Vam nuzhno pri ispol'zovanii bol'shogo ob"ekta pomestit' v nachale
   BEGIN WORK i v konce COMMIT, a vnutri poluchivshegosya bloka lo_open
   ... lo_close.
   
   V nastoyaschij moment PostgreSQL trebuet, chtoby pri zakrytii
   bol'shogo ob"ekta proishodilo vypolnenie tranzakcii. Takim obrazom,
   pervaya zhe popytka sdelat' chto-libo s bol'shim ob"ektom, ne
   soblyudaya dannogo pravila privedet k soobscheniyu invalid large obj
   descriptor, tak kak kod vypolnyayuschij rabotu nad bol'shim ob"ektom
   (po krajnej mere v nastoyaschij moment) budet generirovat' soobschenie
   ob oshibke esli vy ne ispol'zuete tranzakciyu.
d1091 2
a1092 2
   Esli vy ispol'zuete takoj interfejs klienta kak ODBC, vam vozmozhno
   ponadobitsya ustanovit' auto-commit off.
d1094 2
a1095 2
    4.21) Kak mne sozdat' kolonku kotoraya po umolchaniyu budet soderzhat'
    tekuschee vremya?
d1097 1
a1097 1
   Ispol'zujte CURRENT_TIMESTAMP:
d1100 1
a1100 1
    4.22) Pochemu moi podzaprosy, ispol'zuyuschie IN tak medlenno rabotaeyut?
d1102 6
a1107 7
   V nastoyaschij moment, my svyazyvaem pozaprosy dlya vneshnih zaprosov
   cherez posledovatel'nyj perebor rezul'tata podzaprosa dlya kazhdoj
   zapisi vneshnego zaprosa. Esli podzapros vozvraschaet tol'ko neskol'ko
   zapisej i vneshnij zapros vozvraschaet mnogo zapisej, IN rabotaet
   naibolee bystro. CHtoby uvelichit' skorost' v drugih zaprosah,
   zamenite IN na EXISTS:
    SELECT *
d1109 1
a1109 1
    WHERE col IN (SELECT subcol FROM subtab);
d1111 2
a1112 2
   na:
    SELECT *
d1114 1
a1114 1
    WHERE EXISTS (SELECT subcol FROM subtab WHERE subcol = col);
d1116 3
a1118 3
   CHtoby takaya konstrukciya rabotala bystro, kolonka subcol dolzhna
   byt' proindeksirovana. My nadeemsya ubrat' `eto ogranichenie v
   buduschem vypuske.
d1120 1
a1120 1
    4.23) Kak mne vypolnit' vneshnee svyazyvanie?
d1122 2
a1123 2
   PostgreSQL podderzhivaet vneshnee svyazyvanie, ispol'zuya standartnyj
   sintaksis SQL. Vot dva primera:
d1127 1
a1127 1
   ili
d1131 10
a1140 12
   `Eto identichnye zaprosy svyazyvaniya t1.col i t2.col, takzhe
   vozvraschayut lyubye nesvyazannye zapisi v t1 (kotorye ne sovpadayut s
   t2). RIGHT svyazyvanie dolzhno dobavit' nesvyazannye zapisi t2. FULL
   svyazyvanie dolzhno vozvratit' sovpavshie zapisi plyus vse
   nesvyazannye zapisi iz t1 i t2. Slovo OUTER yavlyaetsya
   neobyazatel'nym i naznachaetsya v LEFT, RIGHT i FULL svyazyvaniyah.
   Obychnye svyazyvaniya nazyvayutsya INNER svyazyvaniya.
   
   V predyduschih versiyah, vneshnie svyazyvaniya mogli byt' `emulirovany
   ispol'zuya UNION i NOT IN. Naprimer, kogda proishodit svyazyvanie tab1
   i tab2, sleduyuschij zapros vypolnyaet vneshnee svyazyvanie dvuh
   tablic:
d1150 1
a1150 1
    4.24) Kak vypolnyat' zaprosy, ispol'zuyuschie neskol'ko baz dannyh?
d1152 34
a1185 50
   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 ustanavlivat'
   soedieneniya s razlichnymi bazami dannyh i takih obrazom ob"edinyat'
   informaciyu iz nih.
   
    4.25) Kak mne vernut' iz funkcii neskol'ko zapisej?
    
   Vy mozhete vozvraschat' iz funkcij PL/pgSQL spiski rezul'tatov,
   ispol'zuya refcursors. Smotrite
   http://www.PostgreSQL.org/idocs/index.php?plpgsql-cursors.html,
   sekciyu 23.7.3.3.
   
    4.26) Pochemu ya ne mogu nadezhno sozdavat'/udalyat' vremennye tablicy v
    funkciyah PL/PgSQL?
    
   PL/PgSQL k`eshiruet soderzhimoe 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.
   
    4.27) Kakie opcii replikacii suschestvuyut?
    
   Est' neskol'ko opcij dlya replikacii tipa master/slave. Oni dopuskayut
   ispol'zovanie tol'ko master servera dlya vneseniya izmenenij v bazu
   dannyh, a slave servery prosto pozvolyayut chitat' dannye iz bazy. Ob
   `etom chitajte zdes':
   http://gborg.PostgreSQL.org/genpage?replication_research. O replikacii
   s neskol'kimi master serverami chitajte zdes':
   http://gborg.PostgreSQL.org/project/pgreplication/projdisplay.php.
   
    4.28) Kakie opcii shifrovaniya suschestvuyut?
    
     * contrib/pgcrypto soderzhit mnogo funkcij shifrovaniya dlya
       ispol'zovaniya v SQL zaprosah.
     * Est' tol'ko odin sposob shifrovaniya dannyh, peredavaemyh ot
       klienta k serveru, cherez ispol'zovanie hostssl v pg_hba.conf.
     * Paroli pol'zovatelej k baze dannyh avtomaticheski shifruyutsya,
       pri sohranenii v versii 7.3. V predyduschih versiyah, vy dolzhny
       razreshit' opciyu PASSWORD_ENCRYPTION v postgresql.conf.
     * Server mozhno zapustit', ispol'zuya shifrovannuyu fajlovuyu
       sistemu.
d1188 1
a1188 1
                          Rasshireniya PostgreSQL
d1190 2
a1191 2
    5.1) YA napisal funkciyu opredelyaemuyu pol'zovatelem. Kogda ya zapuskayu
    ee v psql, pochemu ya poluchayu dump core?
d1193 2
a1194 3
   Problema mozhet zaklyuchat'sya v neskol'kih veschah. Popytajtes'
   sperva protestirovat' vashu funkciyu v otdel'noj samostoyatel'noj
   programme.
d1196 1
a1196 1
    5.2) Kak ya mogu vnesti nekotorye klassnye novye tipy i funkcii v
d1199 7
a1205 2
   Otprav'te vashi rasshireniya v spisok rassylki pgsql-hackers i oni po
   vozmozhnosti budut pomescheny v podkatalog contrib/.
d1207 2
a1208 1
    5.3) Kak mne napisat' C funkciyu, vozvraschayuschuyu zapis'?
d1210 4
a1213 12
   V versiyah PostgreSQL, nachinaya s 7.3, funkcii, vozvraschayuschie
   tablicy polnost'yu podderzhivayutsya v C, PL/PgSQL i SQL. Podrobnosti
   smotrite v Rukovodstve Programmista. Primer vozvraschayuschej tablicu
   funkcii, napisannoj na C, mozhno najti v contrib/tablefunc.
   
    5.4) YA izmenil ishodnyj fajl. Pochemu posle perekompilyacii ya ne vizhu
    izmenenij?
    
   Fajly Makefile ne imeyut pravil'nyh zavisimostej dlya include fajlov.
   Vy dolzhny vypolnit' make clean i zatem make. Esli vy ispol'zuete GCC
   vy mozhete ispol'zovat' opciyu --enable-depend v configure chtoby
   poruchit' kompilyatoru avtomaticheski otslezhivat' zavisimosti.
@


1.7.2.2
log
@Update Russian FAQ.  Update all FAQ's for 7.3.X branch.
@
text
@d4 2
a5 1
   Data poslednego obnovleniya: CHetverg 5 Dekabrya 00:47:26 EDT 2002
d44 1
d445 2
a446 2
   Vy mozhete skachat' PsqlODBC s
   http://gborg.postgresql.org/project/psqlodbc/projdisplay.php.
d459 2
d473 2
a474 1
    2.3) Est' li u PostgreSQL graficheskij interfejs pol'zovatelya?
a475 8
   Da, suschestvuet neskol'ko graficheskih interfejsov dlya PostgreSQL.
   `Eto PgAccess (http://www.pgaccess.com, PgAdmin II
   (http://www.pgadmin.org, Win32-only), RHDB Admin (
   http://sources.redhat.com/rhdb/) i Rekall (
   http://www.thekompany.com/products/rekall/, kommercheskij). Takzhe
   est' PHPPgAdmin ( http://phppgadmin.sourceforge.net/) - interfejs k
   PostgreSQL, osnovannyj na Web.
   
d480 3
d485 1
a485 6
   Kakie-libo interfejsy dlya PostgreSQL suschestvuyut dlya bol'shinstva
   populyarnyh yazykov programmirovaniya. Posmotrite spisok modulej
   rasshireniya dlya teh yazykov programmirovaniya, kotorymi vy
   pol'zuetes'.
   
   Sleduyuschie interfejsy vklyuchayutsya v distributiv PostgreSQL:
d487 1
d490 2
d494 2
d498 2
a499 1
   http://gborg.PostgreSQL.org v sekcii Drivers/Interfaces.
@


1.7.2.3
log
@Update FAQ's in head and 7.3.X.
@
text
@d4 1
a4 1
   Data poslednego obnovleniya: CHetverg 13 Fevralya 23:07:35 EDT 2002
d278 1
a278 1
   Poslednij vypusk PostgreSQL - `eto versiya 7.3.1.
d472 1
a472 1
   `Eto PgAccess (http://www.pgaccess.org, PgAdmin II
d479 4
d672 4
a855 5
   Esli vam kazhetsya, chto optimizator nekorretno vybiraet
   posledovatel'nyj perebor, ispol'zujte SET enable_seqscan TO 'off' i
   zapustite testy, chtoby uvidet', ne stalo-li skanirovanie indeksov
   bystree.
   
d932 2
a935 1
CHAR(n)         bpchar          zapolnyaetsya pustotoj do fiksirovannoj dliny
a937 1
"char"          char            odin simvol
a950 4
   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.
d953 7
a959 5
   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. `Eti tipy imeyut
   shodnye harakteristiki proizvoditel'nosti.
d1149 2
a1150 2
   byt' proindeksirovana. `Eta problema proizvoditel'nosti budet
   ustranena v versii 7.4.
@


1.7.2.4
log
@Update all FAQ's for 7.3.4.
@
text
@d4 1
a4 1
   Data poslednego obnovleniya: Pyatnica 30 Maya 22:24:56 EDT 2003
d12 1
a12 1
   http://www.PostgreSQL.org/docs/faqs/FAQ.html.
d15 1
a15 1
   na http://www.PostgreSQL.org/docs/index.html.
d33 1
a33 1
   1.13) Kak otpravit' soobschenie ob oshibke?
d69 1
a69 1
   zaprosa? Dlya proizvol'noj stroki?
d71 1
a71 1
   4.4) Kak udalit' kolonku iz tablicy ili izmenit' eio tip dannyh?
d216 3
a218 4
   biblioteku Cygwin, razrabotannuyu kompaniej Cygnus dlya perenosa
   programmnogo obespecheniya Unix v NT. Smotrite pgsql/doc/FAQ_MSWIN v
   distributive ili MS Windows FAQ na
   http://www.PostgreSQL.org/docs/faqs/text/FAQ_MSWIN.
d221 1
a221 6
   nastoyaschij moment nachal rabotat'. Podrobnosti tekuschego
   sostoyaniya PostgreSQL dlya Windows smotrite na
   http://techdocs.postgresql.org/guides/Windows.
   
   Takzhe suschestvuet versiya sportirovannaya pod Novell Netware 6 na
   http://forge.novell.com.
d269 3
a271 3
   Esche suschestvuet IRC kanal na EFNet i OpenProjects, s nazvaniem
   #PostgreSQL. YA ispol'zuyu dlya podklyucheniya k `etomu kanalu komandu
   Unix irc -c '#PostgreSQL' "$USER" irc.phoenix.net.
d274 1
a274 1
   http://www.ca.PostgreSQL.org/users-lounge/commercial-support.html.
d278 1
a278 1
   Poslednij vypusk PostgreSQL - `eto versiya 7.3.2.
d287 1
a287 1
   v Internet po adresu http://www.PostgreSQL.org/docs.
d307 1
a307 1
   vozmozhnostej i buduschih planov.
d328 1
a328 1
   Da, my legko rabotaem s datami posle 2000 goda i pered 2000 godom.
d345 1
a345 1
    1.13) Kak otpravit' soobschenie ob oshibke??
a705 1
    Proizvol'noj stroki?
a715 6
   To SELECT a random row, use:
    SELECT col
    FROM tab
    ORDER BY random()
    LIMIT 1;

d725 1
a725 1
    4.4) Kak udalit' kolonku iz tablicy ili izmenit' ioio tip dannyh?
d727 2
a728 2
   DROP COLUMN funkcional'nost' byla dobavlena v vypusk 7.3 s operatorom
   ALTER TABLE DROP COLUMN. V rannih versiyah, mozhno sdelat' tak:
a738 7
   Dlya izmeneniya tipa dannyh kolonki, 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 DROP COLUMN old_col;
    COMMIT;

d743 1
a743 1
4 TB)
d934 1
a936 1
"char"          char            odin simvol
d941 1
a941 1
   Pervye chetyre tipa yavlyayutsya "varlena" tipami (t.e., pervye
d957 2
a958 2
   znacheniya kotoryh mogut vklyuchat' NULL bajty. Vse tipy opisannye
   zdes', imeyut shodnye harakteristiki proizvoditel'nosti.
d1197 4
a1200 4
   V versii 7.3, vy mozhete legko vernut' neskol'ko zapisej ili kolonok
   iz kakoj-libo funkcii,
   http://techdocs.postgresql.org/guides/SetReturningFunctions
   .
@


1.6
log
@Update Russian FAQ.
@
text
@d4 1
a4 1
     :  22  19:20:40 EDT 2002
d112 1
d273 1
a273 1
     PostgreSQL -   7.2.2.
d729 2
a730 2
      ?               (   60 G
B)
d1104 3
a1106 1
    .   IN  EXISTS:
d1109 1
a1109 1
    WHERE col1 IN (SELECT col2 FROM TAB2)
d1114 1
a1114 1
    WHERE EXISTS (SELECT col2 FROM TAB2 WHERE col1 = col2)
d1116 3
a1118 1
          .
d1157 4
a1160 2
   ,      
            .
d1180 6
@


1.5
log
@Add new Russian FAQ.

Viktor Vislobokov
@
text
@d4 1
a4 1
     :  11  06:36:10 EDT 2002
d64 2
d272 1
a272 1
     PostgreSQL -   7.2.
d419 1
a419 1
   http://www.pgsql.com/pg_goodies    .
d483 3
d668 16
d731 2
a732 2
      ?                7.1
      ?              1 GB    7.1
d783 3
d806 1
a806 1
     ,      
d823 22
a844 1
    .
d846 1
a846 5
       ,  LIKE  ~, 
         -  ,
      . ,  , 
    ,   LIKE     %,   ~
   (  )    ^.
d889 1
a889 2
       LIKE  ILIKE  PostgreSQL
      7.1.
d1057 3
a1059 4
        7.1,      
   .  ,       
           .
      postmaster   :
d1117 2
a1118 2
   PostgreSQL    7.1   ,
      SQL.   :
d1122 1
a1122 1
   or
@


1.4
log
@Update new Russian FAQ, from Victor Vislobokov
@
text
@d4 1
a4 1
     :  26  23:03:46 EDT 2002
d108 2
d361 3
a363 14
          PostgreSQL     .   fsync
          ,      ,
          ,        
            ,    
            .   ,   , 
            ,  ,   
                   
          .   no-fsync,     
          ,    ,    
             .     
            ,   
           ,  fsync   
                30  
            .
d365 1
a365 1
           /,    
d367 4
a370 4
               .  
              ,    
               
           .     ,
a372 5
              ,  Unix
          backend . Backend     
            .    ,
           backend       
          .
d1122 12
@


1.3
log
@Update new Russian FAQ.
@
text
@d4 1
a4 1
     :  9  10:53:30 EDT 2002
d75 2
a76 2
   4.7)   ,       
     ?
d633 3
a635 1
           .
d708 2
d716 1
d776 2
a777 2
    4.7)   ,        
     ?
d781 3
a783 1
      .
@


1.2
log
@This version has been synchonized with English version at Mar 03.

With best wishes,Victor Vislobokov
Perm, Russia
@
text
@d2 225
a226 1
Current directory is /root
d228 929
a1156 8
    drwxr-xr-x   19 root     wheel       1024 Mar  4 05:01 ../
    drwxr-xr-x    2 root     wheel        512 Dec 29 13:36 Calendar/
    drwx------    8 root     wheel       9216 Mar  1 06:08 Mail/
    drwx------    8 root     wheel       9216 Mar  1 06:08 News/
    lrwxr-xr-x    1 www      wheel         16 Mar  4 20:39 calendar -> /users/n
uyu/mcal
    drwxr-xr-x    2 root     wheel        512 Mar  4 16:56 download/
    -r--r--r--    1 root     wheel        409 Feb 27 05:00 notes
@


1.1
log
@Add Russian FAQ from Viktor Vislobokov.
@
text
@d2 1
a2 224
                     PostgreSQL
                                       
     :  18  17:56:04 EST 2002
   
     :   (Bruce Momjian)
   (pgman@@candle.pha.pa.us)
   
     :   (victor_v@@permonline.ru)
   
          
   http://www.PostgreSQL.org/docs/faq-english.html.
   
            
   http://www.PostgreSQL.org/users-lounge/docs/faq.html.
     _________________________________________________________________
   
                                
                                      
   1.1)   PostgreSQL?    ?
   1.2)     PostgreSQL?
   1.3)   Unix   PostgreSQL?
   1.4)       Unix ?
   1.5)    PostgreSQL?
   1.6)   ?
   1.7)   ?
   1.8)     ?
   1.9)        
   ?
   1.10)   SQL?
   1.11)    PostgreSQL  2000-  (Y2K)?
   1.12)     ?
   1.13)     ?
   1.14)   PostgreSQL   ?
   1.15)     PostgreSQL?
   
                     
                                      
   2.1)   ODBC   PostgreSQL?
   2.2)      PostgreSQL 
   Web?
   2.3)    PostgreSQL   ?
    ?     ?
   2.4)      PostgreSQL?
   
                          
                                      
   3.1)    PostgreSQL    
   /usr/local/pgsql?
   3.2)    postmaster,    Bad System Call
     core dumped. ?
   3.3)     postmaster,   
   IpcMemoryCreate. ?
   3.4)     postmaster,   
   IpcSemaphoreCreate. ?
   3.5)       ?
   3.6)       
   ?
   3.7)       ?
   3.8)     "Sorry, too many clients" 
      ?
   3.9)     pg_sorttempNNN.NN     
   ?
   
                             
                                      
   4.1)        ?
   4.2)   SELECT     
   ?
   4.3)         psql?
   4.4)     ?
   4.5)     ,    ?
   4.6)         
        ?
   4.7)   ,       
     ?
   4.8)         
   . ?
   4.9)    ,     ?
   4.10)   R-tree ?
   4.11)   Genetic Query Optimizer?
   4.12)        
         ?  
          ?
   4.13)    ,     NULL  -
   ?
   4.14)      ?
   4.15.1)     serial/--?
   4.15.2)       SERIAL?
   4.15.3)     ,   currval() 
   nextval()      ?
   4.15.4)        
     ?      
   ,    /SERIAL?
   4.16)   OID?   TID?
   4.17)       PostgreSQL?
   4.18)     "ERROR: Memory exhausted in
   AllocSetAlloc()"?
   4.19)   ,   PostgreSQL ?
   4.20)          
   "invalid large obj descriptor"?
   4.21)         
    ?
   4.22)   ,  IN   ?
   4.23)    ?
   4.24)   ,    ?
   
                            PostgreSQL
                                      
   5.1)     .    
    psql,    dump core?
   5.2)           
   PostgreSQL?
   5.3)    C ,  ?
   5.4)    .      
   ?
     _________________________________________________________________
   
                                
                                      
    1.1)   PostgreSQL?
    
   PostgreSQL  Post-Gres-Q-L (---).
   
   PostgreSQL -    POSTGRES,  
     . PostgreSQL    
        POSTGRES,    
   PostQuel    SQL. PostgreSQL -   
      .
   
    PostgreSQL  ,   Internet, 
         . 
    ,      (Marc G.
   Fournier) (scrappy@@PostgreSQL.org). (.   ,  
    ).       
   PostgreSQL.
   
    PostgreSQL 1.01    (Andrew Yu)   
   (Jolly Chen).         
   , ,     .
     Postgres,    PostgreSQL, 
       , 
       ,  
       (Michael Stonebraker) 
    , .
   
    ,   ,  Postgres.   1995 
      SQL,     
   Postgres95.         1996  PostgreSQL.
   
    1.2)     PostgreSQL?
    
   PostgreSQL     COPYRIGHT:
   
       PostgreSQL
   
   Portion copyright (c) 1996-2002, PostgreSQL Global Development Group
   Portions Copyright (c) 1994-6 Regents of the University of California
   
      , ,  
         
     ,     - ,
            
      ,     
   .
   
          
   ,   ,    ,
        
      ,    
        .
   
       
    , ,      :
          
   .       
   " "      
   , , ,   .
   
     BSD ,  
       .    
       .    
       ţ .
   
    1.3)   Unix   PostgreSQL?
    
   , PostgreSQL      
     Unix.    ,    
   ,       PostgreSQL 
      .
   
    1.4)       Unix ?
    
   
   
       MS Windows   C 
   libpq, psql      .   ,
      MS Windows    TCP/IP  ,
        Unix .  
     win31.mak  ,     
    libpq  psql  Win32. PostgreSQL   
   ODBC.
   
   
   
         Windows NT  Win2k, 
    Cygwin,     
   Unix  NT.  pgsql/doc/FAQ_MSWIN    MS Windows
   FAQ   .      PostgreSQL
    -  Microsoft.
   
    1.5)    PostgreSQL?
    
   ,     ftp  PostgreSQL
   ftp://ftp.PostgreSQL.org/pub.      
    .
   
    1.6)   ?
    
     : pgsql-general@@PostgreSQL.org.   
     ,  PostgreSQL.  ,
       ,      ( 
   )   :
    subscribe
    end
d4 8
a11 920
     pgsql-general-request@@PostgreSQL.org.
   
     .    ,  
       :
   pgsql-general-digest-request@@PostgreSQL.org     
    :
    subscribe
    end

     ,     
     30  .
   
         .   
    ,       
   pgsql-bugs-request@@PostgreSQL.org      
   :
    subscribe
    end

         . 
      ,      
    pgsql-hackers-request@@PostgreSQL.org     
    :
    subscribe
    end

         PostgreSQL   
     PostgreSQL  :
   
     http://www.PostgreSQL.org
     
     IRC   EFNet,   #PostgreSQL. 
          Unix irc -c
   '#PostgreSQL' "$USER" irc.phoenix.net.
   
        
   http://www.postgresql.org/users-lounge/commercial-support.html.
   
    1.7)   ?
    
     PostgreSQL -   7.2.
   
          .
   
    1.8)     ?
    
       ,  
    man     .  
    /doc.        
    http://www.PostgreSQL.org/users-lounge/docs/.
   
       PostgreSQL   
   http://www.PostgreSQL.org/docs/awbook.html 
   http://www.commandprompt.com/ppbook/.    PostgreSQL,
        
   http://www.postgresql.org/books/.  ,  
   http://techdocs.postgresql.org/     
     PostgreSQL.
   
   psql     \d   
    , , ,   ..
   
        .
   
    1.9)        
    ?
    
   PostgreSQL    SQL-92.  
    TODO    ,   
    .
   
    1.10)    SQL?
    
     PostgreSQL  http://www.PostgreSQL.org/docs/awbook.html
    SQL.     PostgreSQL 
   http://www.commandprompt.com/ppbook.    
   http://www.intermedia.net/support/sql/sqltut.shtm, 
   http://ourworld.compuserve.com/homepages/graeme_birchall/HTM_COOK.HTM,
     http://sqlcourse.com.
   
      -   "Teach Yourself SQL in 21 Days, Second
   Edition" (  SQL  21 ,  ) 
   http://members.tripod.com/er4ebus/sql/index.htm
   
         The Practical SQL
   Handbook, Bowman, Judith S., et al., Addison-Wesley.  
   The Complete Reference SQL, Groff et al., McGraw-Hill.
   
    1.11)    PostgreSQL  2000-  (Y2K)?
    
   ,      2000    2000 .
   
    1.12)     ?
    
    ,       
     PostgreSQL     
   . ,     pgsql-hackers 
   pgsql-patches. ,   (patches) 
      pgsql-patches.
   
      ,    
     CVS  PostgreSQL.       
       ,   
           
    ,   ,   ,  
      .
   
    1.13)     ??
    
      PostgreSQL BugTool,  
           
   .
   
        ftp://ftp.PostgreSQL.org/pub 
       PostgreSQL  .
   
    1.14)   PostgreSQL   ?
    
        :
   , , ,   .
   
   
          PostgreSQL     
            ,  : , ,
          ,  (views),     
           .     , 
            : ,  , 
          ,     
              .
          
   
          PostgreSQL     .   fsync
          ,      ,
          ,        
            ,    
            .   ,   , 
            ,  ,   
                   
          .   no-fsync,     
          ,    ,    
             .     
            ,   
           ,  fsync   
                30  
            .
             MySQL   ,   
           /,    
          .  , MySQL   -
               .  
              ,    
               
           .     ,
           PostgreSQL  MySQL 
          http://openacs.org/why-not-mysql.html
              ,  Unix
          backend . Backend     
            .    ,
           backend       
          .
          
   
           ,         
            .     ,
           ,    .  
            -     
                   
           ,  ,   
           .  ,   
            ,    .
          
   
                 
          ,      
          .    ,    -
          ,       
           .    , 
          ,      
           PostgreSQL   . 
               ,
                . (  
          ?.)
          
   
                ,   
           .       
            ,   ,   
             BSD,   .
          
    1.15)     PostgreSQL?
    
   PostgreSQL        
      6  .      
    (Marc Fournier),      
       .
   
          
    .   ,   
      .
   
   ,     . 
        , 
    .       ,  
       ,   
   http://www.pgsql.com/pg_goodies    .
   
        PostgreSQL, Inc,  "contributions"
        PostgreSQL  
    -  .  ,   
   ,     .
     _________________________________________________________________
   
                     
                                      
    2.1)   ODBC   PostgreSQL?
    
     ODBC , PsqlODBC  OpenLink ODBC.
   
   PsqlODBC   .     
      ftp://ftp.PostgreSQL.org/pub/odbc/.
   
   OpenLink ODBC    http://www.openlinksw.com.  
         ,
    ODBC,   , ODBC   PostgreSQL
          (Win, Mac, Unix,
   VMS).
   
            
   ,      . ,
       postgres95@@openlink.co.uk.
   
     ODBC    .
   
    2.2)      PostgreSQL  Web?
    
          Web   :
   http://www.webreview.com
   
      http://www.phone.net/home/mwm/hotlist/.
   
      Web,      PHP.
     http://www.php.net.
   
     ,   Perl   CGI.pm.
   
    2.3)    PostgreSQL   ? 
    ?     ?
    
        ,  pgaccess,
      . pgaccess   
   .   http://www.flex.ro/pgaccess
   
      ecpg,     
     SQL  C.
   
    2.4)      PostgreSQL?
    
    :
     * C (libpq)
     * C++ (libpq++)
     * Embedded C (ecpg)
     * Java (jdbc)
     * Perl (perl5)
     * ODBC (odbc)
     * Python (PyGreSQL)
     * TCL (libpgtcl)
     * C Easy API (libpgeasy)
     * Embedded HTML (PHP from http://www.php.net)
     _________________________________________________________________
   
                          
                                      
    3.1)    PostgreSQL     /usr/local/pgsql?
    
     --prefix   configure.
   
    3.2)    postmaster,    Bad System Call 
     core dumped. ?
    
        ,  ,  
    -    ,      
   System V. PostgreSQL ,    
     .
   
    3.3)     postmaster,   
    IpcMemoryCreate. ?
    
           , 
          . 
    ,      
             backend
       postmaster.   , 
        ,   -
     1 .      
       PostgreSQL.
   
    3.4)     postmaster,   
    IpcSemaphoreCreate. ?
    
      IpcSemaphoreCreate: semget failed (No space left on
   device)     ,     .
   Postgres      backend .
       postmaster    
    backend .  -N    
   32,    .    - 
     SEMMNS  SEMMNI   .
   
            
      .
   
      -    ,  
   ,         .
           
    PostgreSQL.
   
    3.5)       ?
    
    , PostgreSQL     
       Unix.     
       postmaster     -i    
    host-   $PGDATA/pg_hba.conf.  
     TCP/IP .
   
    3.6)        ?
    
   ,      .
    EXPLAIN     PostgreSQL 
        .
   
        INSERT,  
       ,   COPY.  
   ,   INSERT. -,   
    BEGIN WORK/COMMIT   .  
         . 
     . ,    
    ,      .
   
      .    fsync() 
    postmaster   -o -F.    fsync(),
            .
   
        postmaster  -B  
      ,   backend
   .        ,
    postmaster        
       .      8
        64 .
   
       backend  -S  
     ,   backend
      .    -S  
        512 (.. 512K).
   
        CLUSTER    
      .    
      CLUSTER.
   
    3.7)       ?
    
   PostgreSQL   ,  
     ,      
   .
   
   -,   configure   --enable-cassert, 
    assert()    backend  
       - .
   
    postmaster,  postgres    . -,
     postmaster, ,     
       :
    cd /usr/local/pgsql
    ./bin/postmaster >server.log 2>&1 &

        server.log   
   PostgreSQL.        
   ,   . Postmaster   -d, 
         . 
    -d  ,    . 
   ,         
     .
   
    postmaster  ,    postgres backend 
         SQL .  
      . ,    , 
      ,     .  
       ,  
     ,  ,  .
    backend    postmaster,    
         /backend 
     .
   
    postmaster ,  psql   ,  
   PID  postgres,  psql.   
     postgres PID.      
        psql.    
    postgres,    PGOPTIONS="-W n",  
    psql.         n
   ,         ,
         .
   
    postgres   -s, -A,  -t    
        .
   
       PostgreSQL    ,
         . 
    backend'    pgsql/data/base/dbname.
           .
   
    3.8)     "Sorry, too many clients"  
      ?
    
          backend
      postmaster.
   
        32 .    
     postmaster    , 
      -N    postgresql.conf.
   
   ,       -N   32,  
         -B   
     64;   -B      
      -N,   ݣ   
   .    backend , 
           Unix. 
    ,     
   , SHMMAX;   , SEMMNS  SEMMNI;
     , NPROC;  
     , MAXUPRC;    
   , NFILE  NINODE.     
   backend       ,    
   .
   
    PostgreSQL   6.5,   backend 
    64,       
     MaxBackendId  include/storage/sinvaladt.h.
   
    3.9)     pg_sorttempNNN.NN      ?
    
     ,     .
   ,    ORDER BY   
   ,        backend
      -S,      
    .
   
       ,    
   ,  backend     .  
        backend ,    
     pg_tempNNN.NN.
     _________________________________________________________________
   
                             
                                      
    4.1)        ?
    
         DECLARE.
   
    4.2)   SELECT      ?
    
       FETCH   SELECT
   ... LIMIT....
   
           , 
     .  ,   ORDER BY. 
    - ,    ORDER BY, PostgreSQL 
           
         .
   
    4.3)         psql?
    
        psql  
   pgsql/src/bin/psql/describe.c.    SQL 
       psql ,    
   .     psql   -E ,  
     ,     
     .
   
    4.4)     ?
    
      ALTER TABLE DROP COLUMN,    :
    SELECT ...  --      ,   

    INTO TABLE new_table
    FROM old_table;
    DROP TABLE old_table;
    ALTER TABLE new_table RENAME TO old_table;

    4.5)     ,    ?
    
     :
      ?               (   60 G
B)
      ?           16 TB
      ?                7.1
      ?              1 GB    7.1
        ?      
        ?    250-1600    

        ?   

   ,  ""    
        /. 
       ,  
   .
   
       16 TB    
       .   
        1 GB,   , 
       .
   
          
    ,         32k.
   
    4.6)          
        ?
    
    PostgreSQL      5 
          .
   
     ,    100,000   , 
        .    , 
   ,  20 .     2.8 MB.
     PostgreSQL,     
    6.4 MB  :
    36 :     ()
  + 24 :         
   + 4 :      
   ----------------------------------------
    64   

       PostgreSQL  8192  (8 KB),  :

   8192   
   -------------------   =  128     ( )
     64   

   100000  
   --------------------  =  782   
  128   

782   * 8192     =  6,406,144  (6.4 MB)

       ,      
    ,     .
   
    4.7)   ,        
     ?
    
   psql   ,     , 
       .  \?  ,
      .
   
      pgsql/src/tutorial/syscat.source.  
      SELECT    
        .
   
    4.8)         
    . ?
    
   PostgreSQL    .  
        VACUUM.  , 
    ,        
         ,    
    . ,      
   ,   ,    
     .
   
       ,  VACUUM ANALYZE.
   VACUUM ANALYZE      
   ,       ,
          
   . Backend      
    ,        
   VACUUM ANALYZE.
   
        ORDER BY  .
         , 
          ,    
        .
   
       ,  LIKE  ~, 
         -  ,
      .    , 
    ,    LIKE     %,
     ~ (  )    ^.
   
    4.9)    ,     ?
    
       EXPLAIN.
   
    4.10)   R-tree ?
    
   R-tree      .
         . B-tree 
         . R-tree 
      . ,  R-tree 
         point,    
        "    
   ."
   
    ,    R-tree :
   
   Guttman, A. "R-trees: A Dynamic Index Structure for Spatial
   Searching." Proceedings of the 1984 ACM SIGMOD Int'l Conf on Mgmt of
   Data, 45-57.
   
          Stonebraker' "Readings in
   Database Systems".
   
    R-tree     .  ,
   R-tree       
   .  ,  R-tree     
   ,   ,  -   ,  
   .
   
    4.11)   Genetic Query Optimizer?
    
    GEQO    ,  
       Genetic Algorithm (GA).  
          .
   
    4.12)          
        ?     
        ?
    
    ~    ,   ~*
          .
       LIKE  ILIKE  PostgreSQL
      7.1.
   
         :
    SELECT *
    FROM tab
    WHERE lower(col) = 'abc'

         . , 
      ,   :
    CREATE INDEX tabindex on tab (lower(col));

    4.13)    ,     NULL  -
    ?
    
        IS NULL  IS NOT NULL.
   
    4.14)      ?
    
                
--------------------------------------------------
"char"          char            1 
CHAR(#)         bpchar              
VARCHAR(#)      varchar            ,  

TEXT            text                 
BYTEA           bytea               ( 
 null-  )

       ,     
       .
   
       "varlena"  (..,  
       ,    ). 
   ,    ,  
   . ,         
         TOAST,    
        ,  .
   
   CHAR() -      ,   
    . VARCHAR() -   ,   
     ,     . TEXT
   -       ,  
      1 . BYTEA    ,
       NULL .
   
    4.15.1)     serial/--?
    
   PostgreSQL    SERIAL.   
       . :
    CREATE TABLE person (
        id   SERIAL,
        name TEXT
    );

     :
    CREATE SEQUENCE person_id_seq;
    CREATE TABLE person (
        id   INT4 NOT NULL DEFAULT nextval('person_id_seq'),
        name TEXT
    );
    CREATE UNIQUE INDEX person_id_key ON person ( id );

         
    create_sequence.      
   OID     . ,     
     ,     pg_dump
     -o   COPY WITH OIDS     OID.
   
    4.15.2)       SERIAL?
    
           SERIAL 
    sequence    nextval()    
      .  -  4.15.1,
         Perl:
    new_id = output of "SELECT nextval('person_id_seq')"
    INSERT INTO person (id, name) VALUES (new_id, 'Blaise Pascal');

            new_id 
        (    
     person). ,     
   SEQUENCE  <table>_<serialcolumn>_seq,  table  serialcolumn
           SERIAL.
   
     ,     
   SERIAL    currval()    
   , 
    INSERT INTO person (name) VALUES ('Blaise Pascal');
    new_id = output of "SELECT currval('person_id_seq')";

    ,     OID,  
    INSERT     , 
         
   .  Perl,  DBI   Edmund Mergl' DBD::Pg,
    oid    $sth->{pg_oid_status} 
   $sth->execute().
   
    4.15.3)     ,   currval()  nextval()
         ?
    
   . Currval()   ,  
   backend',    .
   
    4.15.4)         
     ?       ,  
     /SERIAL?
    
     ,  , 
            
     .      
     
   
    4.16)   OID?   TID?
    
    OID      PostgreSQL.
    ,    PostgreSQL   OID.
     OID    initdb   
   16384 ( backend/access/transam.h).    OID
     .  ,   OID  
      -    ,    
    PostgreSQL.
   
   PostgreSQL  OID      
      .  OID    
      ,   
    .     OID 
     OID       OID  
    .
   
    OID       
   ,      .  
     OID  -      
        OID,     :
        CREATE TABLE new_table(old_oid oid, mycol int);
        SELECT old_oid, mycol INTO new FROM old;
        COPY new TO '/tmp/pgtable';
        DELETE FROM new;
        COPY new WITH OIDS FROM '/tmp/pgtable';

   OID   4-         4
   . ,      ,   , 
             .
   
   TID       
     offset . TID     
      .
   
   TID       
    .
   
    4.17)       PostgreSQL?
    
         
    .    :
     * table, relation, class
     * row, record, tuple
     * column, field, attribute
     * retrieve, select
     * replace, update
     * append, insert
     * OID, serial value
     * portal, cursor
     * range variable, table name, table alias
       
           
   http://www.comptechnews.com/~reaster/dbdesign.html
   
    4.18)     "ERROR: Memory exhausted in AllocSetAlloc()"?
    
        7.1,      
   .  ,       
           .
      postmaster   :
    ulimit -d 262144
    limit datasize 256m

        shell,   
      ,     
          .  
          , 
    ţ .       SQL , 
    backend     , 
        .
   
    4.19)   ,   PostgreSQL ?
    
    psql,  select version();
   
    4.20)           "invalid
    large obj descriptor"?
    
            BEGIN
   WORK    COMMIT,     lo_open ...
   lo_close.
   
      PostgreSQL ,    
      .  ,  
     -   ,   
       invalid large obj descriptor,   
        (    
   )         
   .
   
          ODBC,  
     auto-commit off.
   
    4.21)          
    ?
    
    CURRENT_TIMESTAMP:
CREATE TABLE test (x int, modtime timestamp DEFAULT CURRENT_TIMESTAMP );

    4.22)   ,  IN   ?
    
     ,       
         
    .   IN  EXISTS:
SELECT *
    FROM tab
    WHERE col1 IN (SELECT col2 FROM TAB2)

   :
SELECT *
    FROM tab
    WHERE EXISTS (SELECT col2 FROM TAB2 WHERE col1 = col2)

          .
   
    4.23)     ?
    
   PostgreSQL    7.1   ,
      SQL.   :
    SELECT *
    FROM t1 LEFT OUTER JOIN t2 ON (t1.col = t2.col);

   or
    SELECT *
    FROM t1 LEFT OUTER JOIN t2 USING (col);

       t1.col  t2.col,  
       t1 (    t2). RIGHT
        t2. FULL 
            t1 
   t2.  OUTER      LEFT, RIGHT 
   FULL .    INNER .
   
     ,     
    UNION  NOT IN. ,    tab1 
   tab2,       :
    SELECT tab1.col1, tab2.col2
    FROM tab1, tab2
    WHERE tab1.col1 = tab2.col1
    UNION ALL
    SELECT tab1.col1, NULL
    FROM tab1
    WHERE tab1.col1 NOT IN (SELECT tab2.col1 FROM tab2)
    ORDER BY col1

    4.24)   ,    ?
    
            
   .  PostgreSQL    
     ,  ,     
    .
   
   ,      
            .
     _________________________________________________________________
   
                            PostgreSQL
                                      
    5.1)     .     
    psql,    dump core?
    
        .  
         .
   
    5.2)           
    PostgreSQL?
    
         pgsql-hackers   
        contrib/.
   
    5.3)    C ,  ?
    
            
    ,     .
   
    5.4)    .      
    ?
    
    Makefile      include . 
     make clean   make.    GCC 
      --enable-depend  configure  
      .
@


1.1.2.1
log
@BACKPATCH:

Add Russian FAQ to 7.2.1.  Why not?
@
text
@@
