summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBruce Momjian2005-02-11 04:54:05 +0000
committerBruce Momjian2005-02-11 04:54:05 +0000
commit8814ee84973915cbf0bfe9458002de691d46a767 (patch)
treed361d0859399abd6241c85f238dd5dd550b5520e
parent538e96093972324d6e1ab3698bf87cf3416961e2 (diff)
Update to Russian FAQ, HEAD and 8.0.X.
-rw-r--r--doc/FAQ_russian997
-rw-r--r--doc/src/FAQ/FAQ_russian.html1127
2 files changed, 712 insertions, 1412 deletions
diff --git a/doc/FAQ_russian b/doc/FAQ_russian
index e74ba789ce5..ffe6bff8a2f 100644
--- a/doc/FAQ_russian
+++ b/doc/FAQ_russian
@@ -1,7 +1,7 @@
Otvety na chasto zadavaemye voprosy po PostgreSQL
- Data poslednego obnovleniya: Sreda 15 dekabrya 20:06:34 EST 2004
+ Data poslednego obnovleniya: Sreda 2 fevralya 12:44:03 EST 2005
Anglijskij variant soprovozhdaet: Bryus Mom'yan (Bruce Momjian)
@@ -9,107 +9,91 @@
Perevel na russkij: Viktor Vislobokov ([email protected])
Samuyu svezhuyu anglijskuyu versiyu dokumenta mozhno najti na
- http://www.PostgreSQL.org/docs/faqs/FAQ.html.
+ http://www.PostgreSQL.org/files/documentation/faqs/FAQ.html.
Otvety na voprosy specifichnye dlya konkretnyh platform mozhno najti
- na http://www.PostgreSQL.org/docs/index.html.
+ na http://www.PostgreSQL.org/docs/faq/.
_________________________________________________________________
Obschie voprosy
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.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?
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 otpravit' soobschenie ob oshibke?
- 1.14) Kak sravnivat' PostgreSQL s drugimi SUBD?
- 1.15) Kak okazat' finansovuyu pomosch' PostgreSQL?
+ 1.11) Kak prisoedinitsya k komande razrabotchikov?
+ 1.12) Kak sravnivat' PostgreSQL s drugimi SUBD?
Voprosy pol'zovatelej po klientskoj chasti
- 2.1) Suschestvuyut li ODBC drajvera dlya PostgreSQL?
+ 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?
- 2.4) Kakie yazyki mogut vzaimodejstvovat' s PostgreSQL?
Voprosy administrirovaniya
3.1) Kak mne ustanovit' PostgreSQL v mesto otlichnoe ot
/usr/local/pgsql?
- 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
+ 3.2) Kak mne upravlyat' soedineniyami s drugih komp'yuterov?
+ 3.3) 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
+ 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.9) CHto nahoditsya v kataloge pgsql_tmp?
- 3.10) Pochemu neobhodimo delat' dump i restore pri obnovlenii vypuskov
+ 3.6) Pochemu neobhodimo delat' dump i restore pri obnovlenii vypuskov
PostgreSQL?
- 3.11) Kakoe komp'yuternoe "zhelezo" ya dolzhen ispol'zovat'?
+ 3.7) Kakoe komp'yuternoe "zhelezo" ya dolzhen ispol'zovat'?
Voprosy `ekspluatacii
- 4.1) V chem otlichie mezhdu binarnym i normal'nym kursorom?
- 4.2) Kak vypolnit' SELECT tol'ko dlya neskol'kih pervyh strochek
+ 4.1) Kak vypolnit' SELECT tol'ko dlya neskol'kih pervyh strochek
zaprosa? Dlya proizvol'noj stroki?
- 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
+ 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.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
+ 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.13) Kak ya mogu opredelit', chto znachenie polya ravno NULL v
+ 4.9) 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
+ 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.15.4) Pochemu chisla iz moej posledovatel'nosti ne ispol'zuyutsya
+ 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.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
+ 4.12) CHto takoe OID? CHto takoe TID?
+ 4.13) Pochemu ya poluchayu oshibku "ERROR: Memory exhausted in
AllocSetAlloc()"?
- 4.19) Kak mne uznat', kakaya versiya PostgreSQL zapuschena?
- 4.20) Pochemu pri rabote s moim bol'shim ob"ektom ya poluchayu oshibku
+ 4.14) Kak mne uznat', kakaya versiya PostgreSQL zapuschena?
+ 4.15) Pochemu pri rabote s moim bol'shim ob"ektom ya poluchayu oshibku
"invalid large obj descriptor"?
- 4.21) Kak mne sozdat' kolonku kotoraya po umolchaniyu budet soderzhat'
+ 4.16) 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
+ 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
v funkciyah PL/PgSQL?
- 4.27) Kakie opcii shifrovaniya suschestvuyut?
+ 4.21) Kakie opcii shifrovaniya suschestvuyut?
Rasshireniya PostgreSQL
@@ -117,7 +101,7 @@
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 zapis'?
+ 5.3) Kak mne napisat' C funkciyu, vozvraschayuschuyu stroku tablicy?
5.4) YA izmenil ishodnyj fajl. Pochemu posle perekompilyacii ya ne
vizhu izmenenij?
_________________________________________________________________
@@ -126,46 +110,33 @@
1.1) CHto takoe PostgreSQL? Kak proiznositsya `eto nazvanie?
- 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) ([email protected]). (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.
+ 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
1.2) Kakovy avtorskie prava na PostgreSQL?
- PostgreSQL popadaet pod dejstvie sleduyuschego COPYRIGHT:
+ 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-2004, PostgreSQL Global Development Group
+ Portions copyright (c) 1996-2005, PostgreSQL Global Development Group
Portions Copyright (c) 1994-6 Regents of the University of California
Predostavlyayutsya prava na ispol'zovanie, kopirovanie, izmenenie i
@@ -190,20 +161,13 @@
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?
+ 1.3) 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.
- 1.4) Suschestvuyut li versii perenesennye ne na Unix sistemy?
-
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
@@ -212,57 +176,27 @@
pomosch'yu Cygwin.
Takzhe suschestvuet versiya sportirovannaya pod Novell Netware 6 na
- http://forge.novell.com.
+ 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.
- 1.5) Gde mozhno vzyat' PostgreSQL?
+ 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.
- 1.6) Gde poluchit' podderzhku?
+ 1.5) Gde poluchit' podderzhku?
- Osnovnoj spisok rassylki: [email protected]. 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 [email protected].
-
- Suschestvuet dajzhest spisok. CHtoby podpisat'sya na nego, otprav'te
- pis'mo po `elektronnoj pochte na adres:
- [email protected] 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 [email protected] 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 [email protected] 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:
+ 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).
- http://www.PostgreSQL.org
-
Glavnym IRC kanalom yavlyaetsya #postgreql, raspolozhennyj na servere
Freenode (irc.freenode.net). CHtoby podklyuchit'sya, vy mozhete
- ispol'zovat' komandu Unix irc -c '#postgresql' "$USER"
+ 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) i francuzskom
(#postgresqlfr) yazykah. Takzhe suschestvuet kanal po PostgreSQL na
@@ -271,18 +205,27 @@
Spisok kommercheskoj podderzhki kompanij dostupen na
http://techdocs.postgresql.org/companies.php.
+ 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.
+
1.7) Kakaya poslednyaya versiya?
- Poslednij vypusk PostgreSQL - `eto versiya 7.4.6
+ Poslednij vypusk PostgreSQL - `eto versiya 8.0.1
- My planiruem vypuskat' novye versii kazhdye 6-8 mesyacev.
+ My planiruem vypuskat' novye versii kazhdye 10-12 mesyacev.
1.8) Kakaya dokumentaciya imeetsya v nalichii?
- 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.
+ 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/awbook.html i
@@ -292,8 +235,9 @@
po adresu http://techdocs.PostgreSQL.org/ vy mozhete najti kollekciyu
tehnicheskih statej posvyaschennyh PostgreSQL.
- psql imeet neskol'ko prekrasnyh komand \d dlya otobrazheniya
- informacii po tipam, operatoram, funkciyam, agregatam i t.d.
+ 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.
@@ -321,17 +265,13 @@
Handbook, Bowman, Judith S., et al., Addison-Wesley. Drugim nravitsya
The Complete Reference SQL, Groff et al., McGraw-Hill.
- 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?
+ 1.11) Kak prisoedinitsya k komande razrabotchikov?
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.
+ 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
@@ -340,15 +280,7 @@
previlegii vnosit' izmeneniya, i my uvereny, chto te ispravleniya,
kotorye oni vnesut budut vysokogo kachestva.
- 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?
+ 1.12) Kak sravnivat' PostgreSQL s drugimi SUBD?
Suschestvuet neskol'ko metodov sravneniya programmnogo obespecheniya:
vozmozhnosti, proizvoditel'nost', nadezhnost', podderzhka i cena.
@@ -363,24 +295,17 @@
dlya raboty s soderzhimym blokirovok.
Proizvoditel'nost'
- 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.
+ 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.
Nadezhnost'
My ponimali, chto nasha SUBD dolzhna byt' nadezhnoj ili ona
@@ -404,7 +329,7 @@
podderzhku PostgreSQL prevoshodyaschej drugie SUBD.
Suschestvuet kommercheskaya podderzhka po rezul'tam voznikshih
incidentov, kotoraya dostupna dlya teh komu ona nuzhna.
- (Smotrite Sekciyu 1.6.)
+ (Smotrite Sekciyu 1.5.)
Cena
Nash produkt besplaten kak dlya kommercheskogo tak, i ne dlya
@@ -413,52 +338,20 @@
opisyvayutsya v nashej licenzii stilya BSD, kotoraya privedena
vyshe.
- 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.
-
Voprosy pol'zovatelej po klientskoj chasti
- 2.1) Suschestvuyut li ODBC drajvera dlya PostgreSQL?
+ 2.1) Kakie interfejsy est' dlya PostgreSQL?
- 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).
+ 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.
- Vozmozhno oni budut prodavat' svoj produkt tem komu nuzhna
- kommercheskaya podderzhka, no besplatnaya versiya vsegda budet
- dostupna. Pozhalujsta, napravlyajte voprosy na adres
+ 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.
2.2) Kakie instrumenty suschestvuyut dlya ispol'zovaniya PostgreSQL cherez
Web?
@@ -466,39 +359,21 @@
Prekrasnoe vvedenie vo vzaimodejstvie baz dannyh i Web mozhno najti
na: http://www.webreview.com
- Dlya integracii s Web, odnim iz prevoshodnyh instrumentov yavlyaetsya
- PHP. Domashnyaya stanichka http://www.php.net.
+ Dlya integracii s Web, PHP http://www.php.net yavlyaetsya neplohim
+ interfejsom.
- Dlya kompleksnyh reshenij, mnogie pol'zuyutsya Perl interfejsom i
- CGI.pm ili mod_perl.
+ V slozhnyh sluchayah, mnogie pol'zuyutsya Perl i CGI.pm ili mod_perl.
2.3) Est' li u PostgreSQL graficheskij interfejs pol'zovatelya?
Da, suschestvuet neskol'ko graficheskih interfejsov dlya PostgreSQL.
- `Eto PgAccess (http://www.pgaccess.org), PgAdmin III
- (http://www.pgadmin.org), RHDB Admin
+ 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.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.
+ chastichno kommercheskoe PO) i Rekall (
+ http://www.rekallrevealed.org/). Takzhe est' PhpPgAdmin (
+ http://phppgadmin.sourceforge.net/) - interfejs k PostgreSQL,
+ osnovannyj na Web.
_________________________________________________________________
Voprosy administrirovaniya
@@ -507,141 +382,89 @@
Zadajte opciyu --prefix kogda zapuskaete configure.
- 3.2) Kogda ya zapuskayu postmaster, ya poluchayu soobschenie Bad System
- Call ili soobschenie core dumped. Pochemu?
-
- `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?
+ 3.2) Kak mne upravlyat' soedineniyami s drugih komp'yuterov?
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.
+ 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.
- 3.6) Kakie nastrojki mne nuzhno sdelat' dlya uluchsheniya
+ 3.3) Kakie nastrojki mne nuzhno sdelat' dlya uluchsheniya
proizvoditel'nosti?
- 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?
+ 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?
- 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.
+ 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.
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,
+ 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 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.
+ 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.
@@ -650,49 +473,22 @@
tekuschij katalog klienta. V Linux dlya vypolneniya profilirovaniya
trebuetsya kompilyacii s -DLINUX_PROFILE.
- 3.8) Pochemu ya poluchayu soobschenie "Sorry, too many clients" kogda
+ 3.5) 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.
-
- 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.
+ 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.
- 3.10) Pochemu neobhodimo delat' dump i restore pri obnovlenii vypuskov
+ 3.6) 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
+ podvypuskami. Takim obrazom obnovlenie s versii 7.4 do 7.4.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
+ 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
@@ -704,7 +500,7 @@
bez ispol'zovaniya dump/restore. Kommentarii k vypusku govorit kogda
mozhno ispol'zovat' pg_upgrade dlya `etogo vypuska.
- 3.11) Kakoe komp'yuternoe "zhelezo" ya dolzhen ispol'zovat'?
+ 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
@@ -719,21 +515,15 @@
Voprosy `ekspluatacii
- 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?
+ 4.1) Kak vypolnit' SELECT tol'ko dlya neskol'kih pervyh strochek zaprosa?
Proizvol'noj stroki?
- 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.
+ 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
@@ -741,7 +531,9 @@
ORDER BY random()
LIMIT 1;
- 4.3) Kak poluchit' spisok tablic ili drugih komponentov v psql?
+ 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,
@@ -750,45 +542,44 @@
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
- SQLi sovmestimyj s INFORMATION SCHEMA interfejs, s pomosch'yu
- kotorogo, vy mozhete sformirovat' zapros na poluchenie informacii o
- baze dannyh.
+ 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.
- 4.4) Kak udalit' kolonku iz tablicy ili izmenit' eio tip 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?
- 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:
+ 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.5) Kakovy maksimal'nye razmery dlya zapisej, tablic i bazy dannyh?
+ 4.4) Kakovy maksimal'nye razmery dlya strok v tablice, tablic i bazy
+ dannyh?
Suschestvuyut sleduyuschie ogranicheniya:
- 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
-
+
+ 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
+
Razumeetsya, ponyatie "neogranicheno" na samom dele ogranichivaetsya
dostupnym diskovym prostranistvom i razmerami pamyati/svoppinga. Kogda
znacheniya perechislennye vyshe neopravdano bol'shie, mozhet
@@ -803,7 +594,7 @@ a
byt' uvelicheny v chetyre raza, esli razmer bloka po umolchaniyu budet
uvelichen do 32k.
- 4.6) Kak mnogo diskovogo prostranstva v baze dannyh nuzhno dlya sohraneniya
+ 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
@@ -814,21 +605,21 @@ a
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:
- 32 bajt: na kazhdyj zagolovok zapisi (priblizitel'no)
+ 32 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 zapisi
+ + 4 bajta: ukazatel' na stranice dlya vsej tablichnoj stroki
----------------------------------------
- 60 bajt na zapis'
+ 60 bajt na stroku v tablice
Razmer stranicy dannyh v PostgreSQL sostavlyaet 8192 bajt (8 KB), tak chto:
8192 bajt na stranicu
- --------------------- = 136 zapisej na stranicu BD (okruglionno)
- 60 bajt na zapis'
+ --------------------- = 136 strok v tablice na stranicu BD (okruglionno)
+ 60 bajt na stroku v tablice
100000 strok dannyh
----------------------- = 735 stranic v BD (okruglionno)
- 128 zapisej na stranicu
+ 128 strok v tablice na stranicu
735 stranic BD * 8192 bajt na stranicu = 6,021,120 bajt (6 MB)
@@ -838,26 +629,12 @@ a
Znacheniya NULL hranyatsya kak bitovye karty 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?
+ 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 zapisej v tablice. Tak
+ 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.
@@ -866,11 +643,11 @@ a
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
+ 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. Sbor
- statistiki dolzhen periodicheski vypolnyatsya pri izmenenii
- soderzhimogo tablicy.
+ 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
@@ -899,61 +676,23 @@ a
* 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.
+ 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' 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.
+ 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.
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.
- 4.9) Kak posmotret' na to, kak optimizator vypolnyaet moj zapros?
+ 4.7) Kak posmotret' na to, kak optimizator vypolnyaet moj zapros?
Smotrite stranicu rukovodstva posvyaschennuyu EXPLAIN.
- 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
+ 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?
@@ -967,27 +706,24 @@ a
WHERE lower(col) = 'abc';
`Eta konstrukciya ne budet ispol'zovat' standartnyj indeks. Odnako,
- esli vy sozdadite funkcional'nyj indeks, on budet ispol'zovan:
+ esli vy sozdadite indeks vyrazheniya, on budet ispol'zovan:
CREATE INDEX tabindex ON tab (lower(col));
- 4.13) Kak ya mogu opredelit', chto znachenie polya ravno NULL v kakom-libo
+ 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.14) Kakovy otlichiya mezhdu raznymi simvol'nymi tipami?
+ 4.10) Kakovy otlichiya mezhdu raznymi simvol'nymi tipami?
-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
-
+ 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.
@@ -1010,7 +746,7 @@ t' null-bajt bez opaski)
znacheniya kotoryh mogut vklyuchat' NULL bajty. Vse tipy opisannye
zdes', imeyut shodnye harakteristiki proizvoditel'nosti.
- 4.15.1) Kak mne sozdat' pole serial/s-avto-uvelicheniem?
+ 4.11.1) Kak mne sozdat' pole serial/s-avto-uvelicheniem?
PostgreSQL podderzhivaet tip dannyh SERIAL. On avtomaticheski sozdaet
posledovatel'nost'. Naprimer:
@@ -1027,18 +763,14 @@ t' null-bajt bez opaski)
);
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.
+ posvyaschennoj create_sequence.
- 4.15.2) Kak mne poluchit' znachenie pri vstavke SERIAL?
+ 4.11.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:
+ 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')");
@@ -1055,21 +787,13 @@ t' null-bajt bez opaski)
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, 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
+ 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 vashem
- backend'om, a ne drugimi pol'zovatelyami.
+ Net. currval() vozvraschaet tekuschee znachenie, naznachennoe vashej
+ sessiej, a ne drugimi sessiyami.
- 4.15.4) Pochemu chisla iz moej posledovatel'nosti ne ispol'zuyutsya snova
+ 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?
@@ -1078,64 +802,30 @@ t' null-bajt bez opaski)
blokiruyutsya do polnogo vypolneniya tranzakcij. `Eto mozhet vyzyvat'
razryvy v numeracii pri otmene tranzakcij.
- 4.16) CHto takoe OID? CHto takoe TID?
+ 4.12) 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:
- 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.
+ 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.
TID ispol'zuetsya dlya identifikacii special'nyh fizicheskih zapisej s
blochnymi i offset znacheniyami. TID izmenyaetsya posle togo kak
- zapisi byli izmeneny ili peregruzheny.
+ stroki v tablice byli izmeneny ili peregruzheny.
TID ispol'zuetsya indeksnymi zapisyami v kachestve ukazatelya na
fizicheskie zapisi.
- 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
+ 4.13) Pochemu ya poluchayu oshibku "ERROR: Memory exhausted in
AllocSetAlloc()"?
Predpolozhitel'no u vas zakonchilas' virtual'naya pamyat' ili chto
@@ -1152,11 +842,11 @@ t' null-bajt bez opaski)
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?
+ 4.14) 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
+ 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
@@ -1174,38 +864,13 @@ t' null-bajt bez opaski)
Esli vy ispol'zuete takoj interfejs klienta kak ODBC, vam vozmozhno
ponadobitsya ustanovit' auto-commit off.
- 4.21) Kak mne sozdat' kolonku kotoraya po umolchaniyu budet soderzhat'
+ 4.16) 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 );
+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);
-
- 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?
+ 4.17) Kak mne vypolnit' vneshnee svyazyvanie?
PostgreSQL podderzhivaet vneshnee svyazyvanie, ispol'zuya standartnyj
sintaksis SQL. Vot dva primera:
@@ -1217,27 +882,14 @@ CREATE TABLE test (x int, modtime timestamp DEFAULT CURRENT_TIMESTAMP );
FROM t1 LEFT OUTER JOIN t2 USING (col);
`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
+ 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.
- 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?
+ 4.18) 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
@@ -1245,21 +897,19 @@ CREATE TABLE test (x int, modtime timestamp DEFAULT CURRENT_TIMESTAMP );
vesti takoj mezhbazovyj zapros.
contrib/dblink pozvolyaet zaprosy mezhdu bazami, ispol'zuya vyzovy
- funkcij. Razumeetsya, klient mozhet odnovremenno ustanavlivat'
+ funkcij. Razumeetsya, klient mozhet odnovremenno takzhe ustanavlivat'
soedieneniya s razlichnymi bazami dannyh i takih obrazom ob"edinyat'
informaciyu iz nih.
- 4.25) Kak mne vernut' iz funkcii neskol'ko zapisej?
+ 4.19) Kak mne vernut' iz funkcii neskol'ko strok tablicy?
- V versii 7.3, vy mozhete legko vernut' neskol'ko zapisej ili kolonok
- iz kakoj-libo funkcii,
- http://techdocs.postgresql.org/guides/SetReturningFunctions
- .
+ Vy mozhete legko ispol'zovat' funkcii, vozvraschayuschie spisok,
+ http://techdocs.postgresql.org/guides/SetReturningFunctions.
- 4.26) Pochemu ya ne mogu nadezhno sozdavat'/udalyat' vremennye tablicy v
+ 4.20) Pochemu ya ne mogu nadezhno sozdavat'/udalyat' vremennye tablicy v
funkciyah PL/PgSQL?
- PL/PgSQL k`eshiruet soderzhimoe funkcii i odin iz negativnyh `effektov
+ 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,
@@ -1268,7 +918,7 @@ CREATE TABLE test (x int, modtime timestamp DEFAULT CURRENT_TIMESTAMP );
EXECUTE dlya dostupa k vremennym tablicam v PL/PgSQL. Ispol'zovanie
`etogo operatora zastavit zapros peregenerirovat'sya kazhdyj raz.
- 4.27) Kakie opcii shifrovaniya suschestvuyut?
+ 4.21) Kakie opcii shifrovaniya suschestvuyut?
* contrib/pgcrypto soderzhit mnogo funkcij shifrovaniya dlya
ispol'zovaniya v SQL zaprosah.
@@ -1281,8 +931,7 @@ CREATE TABLE test (x int, modtime timestamp DEFAULT CURRENT_TIMESTAMP );
transportov, takih kak stunnel ili ssh, vmesto sobstvennyh SSL
soedinenij PostgreSQL).
* 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.
+ pri sohranenii v sistemnyh tablicah.
* Server mozhno zapustit', ispol'zuya shifrovannuyu fajlovuyu
sistemu.
_________________________________________________________________
@@ -1302,7 +951,7 @@ CREATE TABLE test (x int, modtime timestamp DEFAULT CURRENT_TIMESTAMP );
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 zapis'?
+ 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
diff --git a/doc/src/FAQ/FAQ_russian.html b/doc/src/FAQ/FAQ_russian.html
index c065123f1ce..16f50832dd0 100644
--- a/doc/src/FAQ/FAQ_russian.html
+++ b/doc/src/FAQ/FAQ_russian.html
@@ -12,7 +12,7 @@
<BODY bgcolor="#ffffff" text="#000000" link="#ff0000" vlink="#a00000" alink="#0000ff">
<H1>������ �� ����� ���������� ������� �� PostgreSQL</H1>
- <P>���� ���������� ����������: ����� 15 ������� 20:06:34 EST 2004</P>
+ <P>���� ���������� ����������: ����� 2 ������� 12:44:03 EST 2005</P>
<P>���������� ������� ������������: ���� ������ (Bruce Momjian) (<A href=
@@ -22,124 +22,101 @@
</P>
<P>����� ������ ���������� ������ ��������� ����� ����� ��
- <A href="http://www.postgresql.org/docs/faqs/FAQ.html">http://www.PostgreSQL.org/docs/faqs/FAQ.html</A>.</P>
+ <A href="http://www.postgresql.org/files/documentation/faqs/FAQ.html">http://www.PostgreSQL.org/files/documentation/faqs/FAQ.html</A>.</P>
<P>������ �� ������� ����������� ��� ���������� �������� ����� ����� ��
- <A href="http://www.postgresql.org/docs/index.html">http://www.PostgreSQL.org/docs/index.html</A>.</P>
+ <A href="http://www.postgresql.org/docs/faq/">http://www.PostgreSQL.org/docs/faq/</A>.</P>
<HR>
<H2 align="center">����� �������</H2>
- <A href="#1.1">1.1</A>) ��� ����� PostgreSQL? ��� ������������ ��� ��������?<BR>
+ <A href="#1.1">1.1</A>) ��� ����� PostgreSQL? ��� ������������ ��� ��������?<BR>
<A href="#1.2">1.2</A>) ������ ��������� ����� �� PostgreSQL?<BR>
- <A href="#1.3">1.3</A>) �� ����� Unix ���������� �������� PostgreSQL?<BR>
- <A href="#1.4">1.4</A>) ���������� �� ������ ������������� �� �� Unix �������?<BR>
- <A href="#1.5">1.5</A>) ��� ����� ����� PostgreSQL?<BR>
- <A href="#1.6">1.6</A>) ��� �������� ���������?<BR>
+ <A href="#1.3">1.3</A>) �� ����� ���������� �������� PostgreSQL?<BR>
+ <A href="#1.4">1.4</A>) ��� ����� ����� PostgreSQL?<BR>
+ <A href="#1.5">1.5</A>) ��� �������� ���������?<BR>
+ <A href="#1.6">1.6</A>) ��� ��� �������� �� ������?<BR>
<A href="#1.7">1.7</A>) ����� ������ ���������?<BR>
<A href="#1.8">1.8</A>) ����� ������������ ������� � �������?<BR>
<A href="#1.9">1.9</A>) ��� ����� ���������� �� ��������� ������� ��� �������������
������������?<BR>
<A href="#1.10">1.10</A>) ��� ��������� <SMALL>SQL</SMALL>?<BR>
- <A href="#1.11">1.11</A>) ������ �� � PostgreSQL �������� 2000-�� ���� (Y2K)?<BR>
- <A href="#1.12">1.12</A>) ��� ������������� � ������� �������������?<BR>
- <A href="#1.13">1.13</A>) ��� ��������� ��������� �� ������?<BR>
- <A href="#1.14">1.14</A>) ��� ���������� PostgreSQL � �������
+ <A href="#1.11">1.11</A>) ��� ������������� � ������� �������������?<BR>
+ <A href="#1.12">1.12</A>) ��� ���������� PostgreSQL � �������
<SMALL>����</SMALL>?<BR>
- <A href="#1.15">1.15</A>) ��� ������� ���������� ������ PostgreSQL?<BR>
-
+
<H2 align="center">������� ������������� �� ���������� �����</H2>
- <A href="#2.1">2.1</A>) ���������� �� <SMALL>ODBC</SMALL> �������� ���
- PostgreSQL?<BR>
+ <A href="#2.1">2.1</A>) ����� ���������� ���� ��� PostgreSQL?<BR>
<A href="#2.2">2.2</A>) ����� ����������� ���������� ��� �������������
PostgreSQL ����� Web?<BR>
<A href="#2.3">2.3</A>) ���� �� � PostgreSQL ����������� ���������
������������?<BR>
- <A href="#2.4">2.4</A>) ����� ����� ����� ����������������� �
- PostgreSQL?<BR>
<H2 align="center">������� �����������������</H2>
<A href="#3.1">3.1</A>) ��� ��� ���������� PostgreSQL � ����� ��������
�� <I>/usr/local/pgsql</I>?<BR>
- <A href="#3.2">3.2</A>) ����� � �������� <I>postmaster</I>, � �������
- ��������� <I>Bad System Call</I> ��� ��������� core dumped. ������?<BR>
- <A href="#3.3">3.3</A>) ����� � ������� ��������� <I>postmaster</I>, �
- ������� ������ <I>IpcMemoryCreate</I>. ������?<BR>
- <A href="#3.4">3.4</A>) ����� � ������� ��������� <I>postmaster</I>, �
- ������� ������ <I>IpcSemaphoreCreate</I>. ������?<BR>
- <A href="#3.5">3.5</A>) ��� ��� ��������� ������������ � ������
+ <A href="#3.2">3.2</A>) ��� ��� ��������� ������������ � ������
�����������?<BR>
- <A href="#3.6">3.6</A>) ����� ��������� ��� ����� ������� ��� ���������
+ <A href="#3.3">3.3</A>) ����� ��������� ��� ����� ������� ��� ���������
������������������?<BR>
- <A href="#3.7">3.7</A>) ����� ����������� ��� ������� ���� � �������?<BR>
- <A href="#3.8">3.8</A>) ������ � ������� ��������� <I>"Sorry, too many
+ <A href="#3.4">3.4</A>) ����� ����������� ��� ������� ���� � �������?<BR>
+ <A href="#3.5">3.5</A>) ������ � ������� ��������� <I>"Sorry, too many
clients"</I> ����� ������� ������������ � ����?<BR>
- <A href="#3.9">3.9</A>) ��� ��������� � �������� <I>pgsql_tmp</I>?<BR>
- <A href="#3.10">3.10</A>) ������ ���������� ������ dump � restore ���
+ <A href="#3.6">3.6</A>) ������ ���������� ������ dump � restore ���
���������� �������� PostgreSQL?<BR>
- <A href="#3.11">3.11</A>) ����� ������������ "������" � ������
+ <A href="#3.7">3.7</A>) ����� ������������ "������" � ������
������������?<BR>
<H2 align="center">������� ������������</H2>
- <A href="#4.1">4.1</A>) � ��� ������� ����� �������� � ����������
- ��������?<BR>
- <A href="#4.2">4.2</A>) ��� ��������� <SMALL>SELECT</SMALL> ������
+ <A href="#4.1">4.1</A>) ��� ��������� <SMALL>SELECT</SMALL> ������
��� ���������� ������ ������� �������? ��� ������������ ������?<BR>
- <A href="#4.3">4.3</A>) ��� �������� ������ ������ ��� ������
- ����������� � <I>psql</I>?<BR>
- <A href="#4.4">4.4</A>) ��� ������� ������� �� ������� ��� ��������
- ţ ��� ������?<BR>
- <A href="#4.5">4.5</A>) ������ ������������ ������� ��� �������,
- ������ � ���� ������?<BR>
- <A href="#4.6">4.6</A>) ��� ����� ��������� ������������ � ���� ������
+ <A href="#4.2">4.2</A>) ��� ��� ����� ����� �������, �������,
+ ���� ������ � ������������ ����������? ��� ��� ������� �������,
+ ������� ���������� <I>psql</I> ��� ��������� ���� ����������?<BR>
+ <A href="#4.3">4.3</A>) ��� �������� ��� ������ �������?<BR>
+ <A href="#4.4">4.4</A>) ������ ������������ ������� ��� ����� � �������,
+ ������ � ���� ������?<BR>
+ <A href="#4.5">4.5</A>) ��� ����� ��������� ������������ � ���� ������
����� ��� ���������� ������ �� �������� ���������� �����?<BR>
- <A href="#4.7">4.7</A>) ��� ��� ���������, ��� ���������� ������ ���
- �������, �������, ���� ������ � ������������?<BR>
- <A href="#4.8">4.8</A>) � ���� �������� �������� ������� ��� ��
- ���������� ������������� ��������. ������?<BR>
- <A href="#4.9">4.9</A>) ��� ���������� �� ��, ��� ����������� ���������
+ <A href="#4.6">4.6</A>) ������ ��� ������� �������� �������? ������
+ ��� �� ���������� ��� �������?<BR>
+ <A href="#4.7">4.7</A>) ��� ���������� �� ��, ��� ����������� ���������
��� ������?<BR>
- <A href="#4.10">4.10</A>) ��� ����� R-tree ������?<BR>
- <A href="#4.11">4.11</A>) ��� ����� Genetic Query Optimizer?<BR>
- <A href="#4.12">4.12</A>) ��� ��� ��������� ����� ����������� ���������
+ <A href="#4.8">4.8</A>) ��� ��� ��������� ����� ����������� ���������
� ����� ����������� �� �������� ���� ����� ����������� ���������?
��� ��� ������������ ������ ��� ������ ������������ �� �������� ����?<BR>
- <A href="#4.13">4.13</A>) ��� � ���� ����������, ��� �������� ���� �����
+ <A href="#4.9">4.9</A>) ��� � ���� ����������, ��� �������� ���� �����
<SMALL>NULL</SMALL> � �����-���� �������?<BR>
- <A href="#4.14">4.14</A>) ������ ������� ����� ������� �����������
+ <A href="#4.10">4.10</A>) ������ ������� ����� ������� �����������
������?<BR>
- <A href="#4.15.1">4.15.1</A>) ��� ��� ������� ���� serial/�-����-�����������?<BR>
- <A href="#4.15.2">4.15.2</A>) ��� ��� �������� �������� ��� �������
+ <A href="#4.11.1">4.11.1</A>) ��� ��� ������� ���� serial/�-����-�����������?<BR>
+ <A href="#4.11.2">4.11.2</A>) ��� ��� �������� �������� ��� �������
<SMALL>SERIAL</SMALL>?<BR>
- <A href="#4.15.3">4.15.3</A>) �� ����� �� ���������� ���, ���
+ <A href="#4.11.3">4.11.3</A>) �� ����� �� ���������� ���, ���
������������� <I>currval()</I> � <I>nextval()</I> �������� �
�������������� � ������� ��������������?<BR>
- <A href="#4.15.4">4.15.4</A>) ������ ����� �� ���� ������������������
+ <A href="#4.11.4">4.11.4</A>) ������ ����� �� ���� ������������������
�� ������������ ����� ��� ������ ����������? ������ ��������� �������
��� ��������� � �������, ��� � ��������� ������������������/SERIAL?<BR>
- <A href="#4.16">4.16</A>) ��� ����� <SMALL>OID</SMALL>? ��� �����
+ <A href="#4.12">4.12</A>) ��� ����� <SMALL>OID</SMALL>? ��� �����
<SMALL>TID</SMALL>?<BR>
- <A href="#4.17">4.17</A>) ��� �������� ��������� ������� ������������ �
- PostgreSQL?<BR>
- <A href="#4.18">4.18</A>) ������ � ������� ������ <I>"ERROR: Memory
+ <A href="#4.13">4.13</A>) ������ � ������� ������ <I>"ERROR: Memory
exhausted in AllocSetAlloc()"</I>?<BR>
- <A href="#4.19">4.19</A>) ��� ��� ������, ����� ������ PostgreSQL
+ <A href="#4.14">4.14</A>) ��� ��� ������, ����� ������ PostgreSQL
��������?<BR>
- <A href="#4.20">4.20</A>) ������ ��� ������ � ���� ������� ��������
+ <A href="#4.15">4.15</A>) ������ ��� ������ � ���� ������� ��������
� ������� ������ <I>"invalid large obj descriptor"</I>?<BR>
- <A href="#4.21">4.21</A>) ��� ��� ������� ������� ������� �� ���������
+ <A href="#4.16">4.16</A>) ��� ��� ������� ������� ������� �� ���������
����� ��������� ������� �����?<BR>
- <A href="#4.22">4.22</A>) ������ ��� ����������, ������������
- <CODE><SMALL>IN</SMALL></CODE> ��� �������� ���������?<BR>
- <A href="#4.23">4.23</A>) ��� ��������� ������� ����������?<BR>
- <A href="#4.24">4.24</A>) ��� ��������� �������, ������������ ���������
+ <A href="#4.17">4.17</A>) ��� ��������� ������� ����������?<BR>
+ <A href="#4.18">4.18</A>) ��� ��������� �������, ������������ ���������
��� ������?<BR>
- <A href="#4.25">4.25</A>) ��� ��� ������� �� ������� ��������� �������?<BR>
- <A href="#4.26">4.26</A>) ������ � �� ���� ������� ���������/�������
+ <A href="#4.19">4.19</A>) ��� ��� ������� �� ������� ��������� ����� �������?<BR>
+ <A href="#4.20">4.20</A>) ������ � �� ���� ������� ���������/�������
��������� ������� � �������� PL/PgSQL?<BR>
- <A href="#4.27">4.27</A>) ����� ����� ���������� ����������?<BR>
+ <A href="#4.21">4.21</A>) ����� ����� ���������� ����������?<BR>
<H2 align="center">���������� PostgreSQL</H2>
<A href="#5.1">5.1</A>) � ������� ������� ������������ �������������.
@@ -147,7 +124,7 @@
<A href="#5.2">5.2</A>) ��� � ���� ������ ��������� �������� �����
���� � ������� � PostgreSQL?<BR>
<A href="#5.3">5.3</A>) ��� ��� �������� C �������, ������������
- ������?<BR>
+ ������ �������?<BR>
<A href="#5.4">5.4</A>) � ������� �������� ����. ������ �����
�������������� � �� ���� ���������?<BR>
@@ -157,50 +134,35 @@
<H4><A name="1.1">1.1</A>) ��� ����� PostgreSQL? ��� ������������ ��� ��������?</H4>
- <P>PostgreSQL ������������ <I>Post-Gres-Q-L (����-����-���-��)</I>.
- �� ������ http://www.postgresql.org/postgresql.mp3 �������� ��������
- ���� � �������� ��� ��� ����� �����������.</P>
-
- <P>PostgreSQL - ��� ���������� ���� POSTGRES (� ������� ������
- ������� ������ "Postgres"), �����������������
- �������� ������ ��������� <SMALL>����</SMALL>.
- PostgreSQL ������������ ��������� ������ ������ ������ � ��������
- ���������� ����� POSTGRES, � �������� ���� �������� PostQuel ��
- ����������� ������������ <SMALL>SQL</SMALL>. PostgreSQL - ���
- ��������� � ��������� �������� ����������� �����������.</P>
-
- <P>���������� PostgreSQL ��������� ������� �������������, ��� ���������
- ������� ��������� �� ������ �������� �������������. � ��������� �����,
- �� ������������� �������� ���� ������ (Marc G. Fournier) (<A href=
- "mailto:[email protected]">[email protected]</A>). (��.
- ������ <A href="#1.6">1.6</A> � ���, ��� ������������ � ����������).
- ��� ������� ������ �������� �� ��� ���������� PostgreSQL. ������
- ������ �������� ������������ � �� ����������� �����-���� ���������.
- ����������� �������� � FAQ ��� �������������,
- <A href="http://www.postgresql.org/docs/faqs/FAQ_DEV.html">http://www.PostgreSQL.org/docs/faqs/FAQ_DEV.html</A>
- </P>
+ <P>PostgreSQL ������������ <I>Post-Gres-Q-L (����-����-���-��)</I>,
+ ����� ����� ������� ������ <I>Postgres</I>.</P>
- <P>�������� PostgreSQL 1.01 �������� ����� � (Andrew Yu) � ����� ���
- (Jolly Chen). ������ ������ ������ ���� ����� � ������� �� ������
- ���������, ������������, ������� � ���������� ����� ����. ��������������
- ��� Postgres, �� �������� �������� PostgreSQL, ��� ������ ������ ������
- ������������� ���������, ��������������� ��������� � ���������
- ������ �������������, ���������� ��� ������������ ����������
- ������ ������������� (Michael Stonebraker) � �������������� ������������,
- ������.</P>
+ <P>PostgreSQL - ��� ��������-����������� ������� ���������� ������
+ ������ (����), ������� ����� ������������ ����������� ������������
+ <small>����</small> � ������������, ������� ���� � <small>����</small>
+ ������ ���������. PostgreSQL - ��� ��������� � ��������� ��������
+ ����������� �����������.</P>
- <P>�������������� ���, ������ � ������, ���� Postgres. �����
- � 1995 ���� ���� ��������� ���������������� <SMALL>SQL</SMALL>,
- ��� ��� ���� �������� �� Postgres95. �� � ��� ��� ���� ��������
- � ����� 1996 �� PostgreSQL.</P>
+ <P>���������� PostgreSQL ��������� ������� �������������, ������������
+ �� ����� ���� � ��������� ����� ��������. ���������� ��������
+ ������������ �������� � �� ����������� �����-���� ���������.
+ ����������� �������� � FAQ ��� �������������,
+ <A href="http://www.postgresql.org/files/documentation/faqs/FAQ_DEV.html">
+ http://www.PostgreSQL.org/files/documentation/faqs/FAQ_DEV.html</A>
+ </P>
<H4><A name="1.2">1.2</A>) ������ ��������� ����� �� PostgreSQL?</H4>
- <P>PostgreSQL �������� ��� �������� ���������� COPYRIGHT:</P>
+ <P>PostgreSQL ���������������� �� ������������ �������� BSD. ���
+ �������� �� �������� ����������� �� ��, ��� ����� ��������������
+ �������� ���. ��� �������� ��� �������� � � ��� ��� ��������� ţ
+ ������.</P>
+
+ <P>��� ��� �������� BSD, ������� �� ����������:</P>
<P>������� ���������� ������ ������ PostgreSQL</P>
- <P>Portions copyright (c) 1996-2004, PostgreSQL Global Development
+ <P>Portions copyright (c) 1996-2005, PostgreSQL Global Development
Group Portions Copyright (c) 1994-6 Regents of the University of
California</P>
@@ -225,21 +187,13 @@
"��� ����" � �������������� ����������� �� ������ �������������
�������������, ���������, ����������, ���������� ��� ���������.</P>
- <P>�������������� �������� BSD ���������, ������������ ���������
- ������������ ����������� � �������� �����. ��� �������� �� �����������
- ����������� �� ������������� ��������� ����. ��� �������� ��� ��������
- � �� �� ���������� ţ ������.</P>
-
- <H4><A name="1.3">1.3</A>) �� ����� Unix ���������� �������� PostgreSQL?</H4>
+ <H4><A name="1.3">1.3</A>) �� ����� ���������� �������� PostgreSQL?</H4>
<P>������, PostgreSQL ����� �������� �� ����� ����������� ���������
����������� � Unix. � ���������� �� ���������, �� ������� ������
��� ��������, �� ������� ���� ��������� �������� ������� PostgreSQL
� ������� ������ ������ ������.</P>
- <H4><A name="1.4">1.4</A>) ���������� �� ������ ������������ �� �� Unix
- �������?</H4>
-
<P>������� � ������ 8.0, PostgreSQL ��� ������ ��������� �������� ��
������������ �������� Microsoft Windows, ���������� �� NT, ����� ���
Win2000, WinXP � Win2003. ����� ������������ �������� �� ������
@@ -249,69 +203,30 @@
PostgreSQL � ������� Cygwin.</P>
<P>����� ���������� ������ �������������� ��� Novell Netware 6 ��
- <a href="http://forge.novell.com/">http://forge.novell.com</a>.</P>
+ <A href="http://forge.novell.com/">http://forge.novell.com</A>,
+ � ������ ��� OS/2 (eComStation) ��
+ <A href="http://hobbes.nmsu.edu/cgi-bin/h-search?sh=1&amp;button=Search&amp;key=postgreSQL&amp;stype=all&amp;sort=type&amp;dir=%2F">
+ http://hobbes.nmsu.edu/cgi-bin/h-search?sh=1&amp;button=Search&amp;key=postgreSQL&amp;stype=all&amp;sort=type&amp;dir=%2F</A>.</P>
- <H4><A name="1.5">1.5</A>) ��� ����� ����� PostgreSQL?</H4>
+ <H4><A name="1.4">1.4</A>) ��� ����� ����� PostgreSQL?</H4>
<P>��������, ���������������� ��������� �������� �� ftp ����
PostgreSQL <A href=
"ftp://ftp.PostgreSQL.org/pub">ftp://ftp.PostgreSQL.org/pub</A>.
������ ������ �� ������� �� ����� �������� �����.</P>
- <H4><A name="1.6">1.6</A>) ��� �������� ���������?</H4>
+ <H4><A name="1.5">1.5</A>) ��� �������� ���������?</H4>
- <P>�������� ������ ��������: <A href=
- � ��� ����� ��������� ����� ����, ���������� PostgreSQL. �����
- �����������, ��������� ������ �� ����������� �����, � ������� �
- ���� ������ (�� � ����) �������� ��������� ������:</P>
-<PRE>
- subscribe
- end
-</PRE>
-
- <P>�� ����� <A href=
-
- <P>���������� ������� ������. ����� ����������� �� ����, ���������
- ������ �� ����������� ����� �� �����: <A href=
- � � ���� ������ �������� ������� �������:</P>
-<PRE>
- subscribe
- end
-</PRE>
- �������� ������������ �����������, ����� � �������� ������ ��������
- ��������� ����� 30 �������� ���������.
-
- <P>�������� � ������ �������� ��������� �� �������. ����� ����������� �� ����
- ������, ��������� �� ����������� ����� ������ �� ����� <A href=
- � � ���� ������ �������� ������� �������:</P>
-<PRE>
- subscribe
- end
-</PRE>
- ����� ������� ������ �������� � ����������� �������������. ����� �����������
- �� ���� ������, ��������� �� ����������� ����� ������ �� �����
- <A href=
- � � ���� ������ �������� ������� �������:
-<PRE>
- subscribe
- end
-</PRE>
-
- <P>�������������� ������ �������� � ��������� � PostgreSQL ����� �����
- �� �������� ��������� PostgreSQL �� ������:</P>
-
- <BLOCKQUOTE>
- <A href="http://www.PostgreSQL.org">http://www.PostgreSQL.org</A>
- </BLOCKQUOTE>
+ <P>���������� PostgreSQL ������������� ������ ��������� �������������
+ ����� E-mail. �������� web-���� ��� �������� �� ������ �������� ��
+ E-mail ���: <A href="http://www.postgresql.org/community/lists/">
+ http://www.postgresql.org/community/lists/</A>. ������� ������ ���
+ ����, ����� ������ �������� ������� �������� ������ <i>general</i>
+ (����� �������) ��� <i>bugs</i> (������).</P>
<P>������� IRC ������� �������� <I>#postgreql</I>,
������������� �� ������� Freenode (<I>irc.freenode.net</I>). �����
- ������������, �� ������ ������������ ������� Unix
+ ������������, �� ������ ������������ � Unix ����� ���������
<code>irc -c '#postgresql' "$USER" irc.freenode.net</code> ���
����� ������ IRC ������. �� ���� �� ������� ���������� ������ ��
��������� (<I>#postgresql-es</I>) � ����������� (<I>#postgresqlfr</I>)
@@ -320,19 +235,32 @@
<P>������ ������������ ��������� �������� �������� ��
<A href="http://techdocs.postgresql.org/companies.php">http://techdocs.postgresql.org/companies.php</A>.</P>
+
+ <H4><A name="1.6">1.6</A>) ��� ��� �������� �� ������?</H3>
+
+ <P>�������� ��������� �� ����������� ������ ��ޣ�� �� ������ �
+ PostgreSQL �� ������:
+ <A HREF="http://www.postgresql.org/support/submitbug">
+ http://www.postgresql.org/support/submitbug</A>.</P>
+
+ <P>����� ��������� ������� ����� ������ ������ PostgreSQL �� �����
+ FTP ����� <A href="ftp://ftp.postgresql.org/pub">
+ ftp://ftp.PostgreSQL.org/pub</A>.
+
+
<H4><A name="1.7">1.7</A>) ����� ��������� ������?</H4>
- <P>��������� ������ PostgreSQL - ��� ������ 7.4.6</P>
+ <P>��������� ������ PostgreSQL - ��� ������ 8.0.1</P>
- <P>�� ��������� ��������� ����� ������ ������ 6-8 �������.</P>
+ <P>�� ��������� ��������� ����� ������ ������ 10-12 �������.</P>
<H4><A name="1.8">1.8</A>) ����� ������������ ������� � �������?</H4>
- <P>� ����������� ���������� ��������� �����������, ��������
- ������������ ����������� man � ��������� ��������� �������� �������.
- �������� � ������� <I>/doc</I>. �� ����� ������ �������������
- ������������ � �������� �� ������
- <A href="http://www.postgresql.org/docs">http://www.PostgreSQL.org/docs</A>.</P>
+ <P>PostgreSQL �������� ����� ������������, ������� ������� �����������,
+ �������� ������������ ����������� man � ��������� ��������� ��������
+ �������. �������� � ������� <I>/doc</I>. �� ����� ������ �������������
+ ������������ � �������� �� ������ <A href="http://www.postgresql.org/docs">
+ http://www.PostgreSQL.org/docs</A>.</P>
<P>���������� ��� ����� �� PostgreSQL ��������� �� ������� <A href=
"http://www.PostgreSQL.org/docs/awbook.html">http://www.PostgreSQL.org/docs/awbook.html</A>
@@ -342,9 +270,9 @@
����� ����, �� ������ <a href="http://techdocs.postgresql.org">http://techdocs.PostgreSQL.org/</a>
�� ������ ����� ��������� ����������� ������ ����������� PostgreSQL.</p>
-
- <P><I>psql</I> ����� ��������� ���������� ������ \d ��� �����������
- ���������� �� �����, ����������, ��������, ��������� � �.�.</P>
+ <P>������ ��������� ������ <I>psql</I> ����� ��������� ������ \d ���
+ ����������� ���������� �� �����, ����������, ��������, ��������� � �.�. -
+ ����������� \? ��� ��������� ������ ��������� ������.</P>
<P>��� ���� �������� ��� ������ ����������.</P>
@@ -381,15 +309,11 @@
Bowman, Judith S., et al., Addison-Wesley. ������ �������� <I>The
Complete Reference SQL</I>, Groff et al., McGraw-Hill.</P>
- <H4><A name="1.11">1.11</A>) ������ �� � PostgreSQL �������� 2000-�� ���� (Y2K)?</H4>
-
- <P>��, �� ����� �������� � ������ ����� 2000 ���� � ����� 2000 �����.</P>
-
- <H4><A name="1.12">1.12</A>) ��� ������������� � ������� �������������?</H4>
+ <H4><A name="1.11">1.11</A>) ��� ������������� � ������� �������������?</H4>
<P>��� ������, �������� ��������� ������ �������� ������� � ��������
- ������������ ������������� PostgreSQL �� ����� ����� ��� � ������������.
- �����, ����������� �� ������ �������� <I>pgsql-hackers</I> �
+ FAQ � ������������ ��� ������������� PostgreSQL �� ����� ����� ��� �
+ ������������. �����, ����������� �� ������ �������� <I>pgsql-hackers</I> �
<I>pgsql-patches</I>. �����, ����������� ����������� (patches) ��������
�������� � ������ pgsql-patches.</P>
@@ -400,16 +324,7 @@
���������� ������� ���������, � �� �������, ��� �� �����������, �������
��� ������ ����� �������� ��������.</P>
- <H4><A name="1.13">1.13</A>) ��� ��������� ��������� �� ������??</H4>
-
- <P>��������� ����� �� ������ � PostgreSQL, ������� ����������� ��
- <A href="http://www.postgresql.org/bugform.html">http://www.postgresql.org/bugform.html</A>.</P>
-
- <P>����� �� �������� ���������� �� <A href=
- "ftp://ftp.PostgreSQL.org/pub">ftp://ftp.PostgreSQL.org/pub</A>
- �� ������� ����� ������ ������ PostgreSQL ��� ������.</P>
-
- <H4><A name="1.14">1.14</A>) ��� ���������� PostgreSQL � �������
+ <H4><A name="1.12">1.12</A>) ��� ���������� PostgreSQL � �������
<SMALL>����</SMALL>?</H4>
<P>
@@ -431,24 +346,16 @@
<DT><B>������������������</B></DT>
- <DD>PostgreSQL ����� ������������������ ������� � ������� �������������
- ���� � � ���� � �������� �������� �����, � �����-�� �������� �������
- ������� ��� ���, � �����-�� ��������. � ��������� � MySQL ��� ���������
- ����, �� �������, ����� ������������� �����, � ����� �� �����������
- �������� � ������/������ �������� �������. MySQL ������� ��� �������
+ <DD>������������������ PostgreSQL ������ � ������� �������������
+ ���� � � ���� � �������� �������� �����. � �����-�� ����� �� �������,
+ � �����-�� ���������. � ��������� � MySQL ��� ��������
+ ����, �� �������, ����� ������������� �����, � ����� �� �������
+ �������� � ��� ������/������ �������� �������. MySQL ������� ��� �������
SELECT ��������, ����������� ��������� ����������� �������������.
� ����������, MySQL �� ����� �����-���� ������������ ��
������������ ����, � ������ <I>�����������</I>.
�� ������ ���� �� ���������� � ����������� �����������, �� �� �����
- ���������� ����������� ������������������ � ������ ��������. ����������
- ���������� ��������� � ��������, ������������ PostgreSQL � MySQL ��
- <A href="http://openacs.org/philosophy/why-not-mysql.html">
- http://openacs.org/philosophy/why-not-mysql.html</A>. �����, MySQL -
- ��� ��������, ������� �������������� ���� ������� ����� ��������
- �������� ������ � ������� ������������ �������� �� ��������
- ����������� �����������, � �� ���������� ������������� � ���������
- ��������� ��������, ��� PostgreSQL.<BR>
-
+ ���������� ����������� ������������������ � ������ ��������. <BR>
<BR>
</DD>
@@ -475,7 +382,7 @@
�������������, ������������ � �������� ������� ����� ������ ���������
PostgreSQL ������������� ������ <SMALL>����</SMALL>. ����������
������������ ��������� �� ��������� ��������� ����������, �������
- �������� ��� ��� ���� ��� �����. (�������� <A href="#1.6">������ 1.6</A>.)<BR>
+ �������� ��� ��� ���� ��� �����. (�������� <A href="#1.5">������ 1.5</A>.)<BR>
<BR>
</DD>
@@ -489,57 +396,23 @@
</DD>
</DL>
- <H4><A name="1.15">1.15</A>) ��� ������� ���������� ������
- PostgreSQL?</H4>
-
- <P>PostgreSQL ����� ������������ �������������� � ���� ������ �������
- ��� �� ������ ���������� � 1996 ����. �� ������ ����������� ��
- ��� ����� ������ (Marc Fournier), ������� ������ ��� �������������� �
- ��������� �� �� ���������� ���� ���.</P>
-
- <P>������������ �������������� ����� ����� ��� �������� � ��������
- �������� �����. ��� ������������� �������, ������� ����� ������
- ��������� �������������� �������� �������.</P>
-
- <P>����������, ��� �������������� �� �������� �������. ����������
- ��������� ���������� ����������� � ����������� ��������, �������
- ������� �����. ���� �� ��� ���� �������� ����� ������, �������
- ����� �������� � ������ ����� �������, ���������� �������� ���������
- <A href="https://store.pgsql.com/shopping/">
- https://store.pgsql.com/shopping/</A>
- � �������� ���� �����.</P>
-
- <P>���� �� ��������� ��������� � PostgreSQL, Inc, �����
- "contributions" ������������ ������������� ��� ��������� �������
- PostgreSQL � �� ���������� �����-���� ���������� ��������.
- ���� ������, �� ������ ��� ���������, ������� ������ �� ���������� �����.</P>
- <HR>
- <p>���� � ��� ���� ������� �� ��������� ���������� PostgreSQL, ����������,
- ���������� �� �� ��� ���� ���������� <a href="http://advocacy.postgresql.org/">
- http://advocacy.postgresql.org</a>.</p>
<H2 align="center">������� ������������� �� ���������� �����</H2>
- <H4><A name="2.1">2.1</A>) ���������� �� <SMALL>ODBC</SMALL> ��������
- ��� PostgreSQL?</H4>
-
- <P>���������� ��� <SMALL>ODBC</SMALL> ��������, PsqlODBC
- � OpenLink <SMALL>ODBC</SMALL>.</P>
+ <H4><A name="2.1">2.1</A>) ����� ���������� ���� ��� PostgreSQL?</H4>
- <P>�� ������ ������� PsqlODBC � <A href="http://gborg.postgresql.org/project/psqlodbc/projdisplay.php">
- http://gborg.postgresql.org/project/psqlodbc/projdisplay.php</A>.</P>
-
- <P>OpenLink <SMALL>ODBC</SMALL> ����� ����� �� <A href=
- "http://www.openlinksw.com/">http://www.openlinksw.com</A>. ����
- ������� �������� � �� ����������� ���������� ����������� ������������,
- ������������ <SMALL>ODBC</SMALL>, � ����� �������, <SMALL>ODBC</SMALL>
- �������� ��� PostgreSQL �������� ��� ������ �� �������������� ���
- �������� (Win, Mac, Unix, VMS).</P>
+ <P>��������� PostgreSQL �������� ������ <small>C</small> � ����������
+ (embedded) <small>C</small> ����������. ��� ������ ����������
+ �������� ������������ ��������� � ����������� ��������; �����������������
+ �������� ��������� �� ������������ ����������� ���������� ��������
+ ����� ������ � ����� ����������� ������� �������������.</P>
+
+ <P>��������� ����� ����������������, ����� ��� <small>PHP</small>
+ �������� � ���� ��������� � PostgreSQL. ���������� ��� ����� ������
+ ��� Perl, <small>TCL</small>, Python � ������ ������, �������� ��
+ <A href="http://gborg.postgresql.org">http://gborg.postgresql.org</A>
+ � ������ <i>Drivers/Interfaces</I>, � ����� ����� ����� � ��������.</P>
- <P>�������� ��� ����� ��������� ���� ������� ��� ���� ����� ������������
- ���������, �� ���������� ������ ������ ����� ��������. ����������,
- ����������� ������� �� ����� <A href=
<H4><A name="2.2">2.2</A>) ����� ����������� ���������� ��� �������������
PostgreSQL ����� Web?</H4>
@@ -547,49 +420,25 @@
<P>���������� �������� �� �������������� ��� ������ � Web ����� ����� ��:
<A href="http://www.webreview.com">http://www.webreview.com</A></P>
- <P>��� ���������� � Web, ����� �� ������������ ������������ �������� PHP.
- �������� �������� <A href="http://www.php.net">http://www.php.net</A>.</P>
+ <P>��� ���������� � Web, PHP <A href="http://www.php.net">
+ http://www.php.net</A> �������� �������� �����������.</P>
- <P>��� ����������� �������, ������ ���������� Perl ����������� � CGI.pm ��� mod_perl.</P>
+ <P>� ������� �������, ������ ���������� Perl � CGI.pm ��� mod_perl.</P>
<H4><A name="2.3">2.3</A>) ���� �� � PostgreSQL ����������� ���������
������������?</H4>
<P>��, ���������� ��������� ����������� ����������� ��� PostgreSQL.
- ��� PgAccess (<A href="http://www.pgaccess.org/">http://www.pgaccess.org</A>),
- PgAdmin III (<A href="http://www.pgadmin.org/">http://www.pgadmin.org</A>),
+ ��� �������� PgAdmin III (<A href="http://www.pgadmin.org/">http://www.pgadmin.org</A>),
+ PgAccess (<A href="http://www.pgaccess.org/">http://www.pgaccess.org</A>),
RHDB Admin (<A href="http://sources.redhat.com/rhdb/">http://sources.redhat.com/rhdb/</A>),
- TORA (<A href="http://www.globecom.net/tora/">http://www.globecom.net/tora/
- (�������� ������������ ��)</A>
- � Rekall (<A href="http://www.thekompany.com/products/rekall/">
- http://www.thekompany.com/products/rekall/</A>, ������������). ����� ����
+ TORA (<A href="http://www.globecom.net/tora/">http://www.globecom.net/tora/</A>
+ �������� ������������ ��)
+ � Rekall (<A href="http://www.rekallrevealed.org/">
+ http://www.rekallrevealed.org/</A>). ����� ����
PhpPgAdmin (<A href="http://phppgadmin.sourceforge.net/">
- http://phppgadmin.sourceforge.net/</A>) - ��������� � PostgreSQL, ����������
- �� Web.</P>
-
- <H4><A name="2.4">2.4</A>) ����� ����� ����� ����������������� � PostgreSQL?</H4>
-
- <P>�����-���� ���������� ��� PostgreSQL ���������� ��� �����������
- ���������� ������ ����������������. ���������� ������ ������� ����������
- ��� ��� ������ ����������������, �������� �� �����������.</P>
-
- <P>��������� ���������� ���������� � ����������� PostgreSQL:</P>
- <UL>
- <LI>C (libpq)</LI>
-
- <LI>Embedded C (ecpg)</LI>
-
- <LI>Java (jdbc)</LI>
-
- <LI>Python (PyGreSQL)</LI>
-
- <LI>TCL (libpgtcl)</LI>
-
- </UL>
- <P>�������������� ���������� �������� �� ������
- <A href="http://gborg.postgresql.org/">http://gborg.PostgreSQL.org</a>
- � ������ <i>Drivers/Interfaces</i>.
- </P>
+ http://phppgadmin.sourceforge.net/</A>) - ��������� � PostgreSQL,
+ ���������� �� Web.</P>
<HR>
<H2 align="center">������� �����������������</H2>
@@ -599,144 +448,100 @@
<P>������� ����� <I>--prefix</I> ����� ���������� <I>configure</I>.</P>
- <H4><A name="3.2">3.2</A>) ����� � �������� <I>postmaster</I>, � �������
- ��������� <I>Bad System Call</I> ��� ��������� core dumped. ������?</H4>
-
- <P>��� ����� ���� ������� ������� ����������, �� ������, ���
- ����� ������� - ��� ��������� � ���, ��� � ����� ���� �����������
- ���������� System V. PostgreSQL �������, ����� ���� ������������
- ����������� ������ � ��������.</P>
-
- <H4><A name="3.3">3.3</A>) ����� � ������� ��������� <I>postmaster</I>, �
- ������� ������ <I>IpcMemoryCreate</I>. ������?</H4>
-
- <P>���� � ��� � ���� ������������ ��������� ����������� ������, ����
- ������ ���� ����� ������� ���������� ��������� ����������� ������.
- �� ���������� ��������, ������� ��� ����� ���������� ������� ��
- ����������� ����� ������ � �� ���� ��� ����� ������� � backend
- ��������� �� ��������� ��� <I>postmaster</I>. ��� ����������� ������,
- � ����������� ������� � ��������� �� ���������, ����������� ������� -
- ��� ����� 1 ���������. ����������� � ����������� ������ � ���������
- �������� � <A href=
- "http://www.postgresql.org/docs/current/static/kernel-resources.html">�����������
- �������������� PostgreSQL.</A>.</P>
-
- <H4><A name="3.4">3.4</A>) ����� � ������� ��������� <I>postmaster</I>, �
- ������� ������ <I>IpcSemaphoreCreate</I>. ������?</H4>
-
- <P>���� ��� ��������� <I>IpcSemaphoreCreate: semget failed (No
- space left on device)</I> �� ��������� ������ ���� ������, ��� ��� ��
- ������� ���������. Postgres ������� ���� ������� �� �������������
- backend �������. ��������� �������� �������� ������ <I>postmaster</I>
- � ����������� �� ������� ���������� backend ���������. �����������
- <I>-N</I> � ��������� ������� ��� 32, ������� ������� �� ���������.
- ����� ���������� ������� - ��� ��������� �������� <SMALL>SEMMNS</SMALL>
- � <SMALL>SEMMNI</SMALL> � ��������� ����.</P>
-
- <P>����������� �������� ����� ����� �������� � ������� ���� �� �����
- ������� � ���� ������.</P>
-
- <P>���� �� �������� �����-���� ������ ��������� �� ������, �� ������
- ��������, ��� � ����� ���� ������ �� ��������� ��������� ���������.
- �������� ����������� � ����������� ������ � ��������� � �����������
- �������������� PostgreSQL.</P>
-
- <H4><A name="3.5">3.5</A>) ��� ��� ��������� ������������ � ������
+ <H4><A name="3.2">3.2</A>) ��� ��� ��������� ������������ � ������
�����������?</H4>
<P>�� ���������, PostgreSQL ��������� ������ ���������� �� ���������
- ������ ����� ������ ������ Unix ��� TCP/IP ����������. ������ ������
- �� ������ ������������ � ���� ���� �� �� �������� listen_addresses �
- postgresql.conf <B>�</B> ���� �� ����� ��������� host-����������� � �����
- <I>$PGDATA/pg_hba.conf</I>.</P>
+ ������ ����� ������ ������ Unix ��� TCP/IP ����������. ��� ����, �����
+ ������ ������ ������ ������������ � ���� �� ������ ��������
+ <I>listen_addresses</I> � <I>postgresql.conf</I>, ���������
+ host-����������� � ����� <I>$PGDATA/pg_hba.conf</I> � ��������������
+ ������.</P>
- <H4><A name="3.6">3.6</A>) ����� ��������� ��� ����� ������� ��� ���������
+ <H4><A name="3.3">3.3</A>) ����� ��������� ��� ����� ������� ��� ���������
������������������?</H4>
- <P>����������, ������� ����� ��������� �������� ���������� ��������. �������
- <SMALL>EXPLAIN ANALYZE</SMALL> ��������� ��� ���������� ��� PostgreSQL
- �������������� ��� ������ � ����� ������� ������������.</P>
-
- <P>���� �� ���������� ����� ���������� <SMALL>INSERT</SMALL>,
- ����������� ����������� ��������� �� � ������� �����, ���������
- ������� <SMALL>COPY</SMALL>. ��� ����������� �������, ��� ���������
- <SMALL>INSERT</SMALL>. ��-������, ��������� ��� ����� ����������
- <SMALL>BEGIN WORK/COMMIT</SMALL> ���� ��������� ����������. ���������
- ��� ����������� ���������� ���������� � ����� ����� ����������.
- ��� �������� ���������� ����������. �����, ����������� ��� ���������
- � ������������� ��������, ����� �� ���������� ������� ���������
- ������.</P>
-
- <P>���������� ��������� ����� ��������� �
- <A href="http://www.postgresql.org/docs/current/static/runtime.html">
- ����������� �������������� PostgreSQL</A>. �� ������ ���������
- <I>fsync()</I> ��� ������ <I>postmaster</I> � ������ <I>-o -F</I>.
- ��� ������������ ������ <I>fsync()</I>, ������� �������� � ������
- ������ �� ���� ����� ������ ����������.</P>
-
- <P>�� ������ ����� ������������ ����� <I>shared_buffers</I> <I>-B</I>
- ��� ���������� ���������� ������� ����������� ������, �������
- ������������ backend ����������. ���� �� �������� �������� ����� ���������
- ������� �������, �� <I>postmaster</I> ����� �� ���������� ������ ���
- �� ���������� ����������� ���� �� ����� ����������� ������. ������
- ����� ����� ������ � 8 �������� � �� ��������� ���������� 1000 �������.</P>
-
- <P>�� ������ ����� ������������ backend ����� <I>sort_mem</I> �
- <I>work_mem</I> ��� ���������� ������������� ���������� ������, �������
- ������������ backend ��������� ��� ��������� ����������. �������� ��
- ��������� ���������� 1024 (�.�. 1MB).</P>
-
- <P>�� ����� ������ ������������ ������� <SMALL>CLUSTER</SMALL> ���
- ����������� ������ � �������� �� ����������� ������. ����������� ��������
- �� �������� ����������� �� ������� <SMALL>CLUSTER</SMALL>.</P>
-
- <H4><A name="3.7">3.7</A>) ����� ����������� ��� ������� ���� �
- �������?</H4>
-
- <P>PostgreSQL ����� ��������� ������������, ����������� ��������
- ���������� � ���������, ������� ����� ���� ������������ � ����������
- �����.</P>
+ <P>���������� ��� ������� �������, ������� ������������ �����
+ ��������� ������������������:</P>
+
+ <DL>
+ <DT><B>��������� �������</B></DT>
+ <DD>��� �������� ����������� �������� ��� ��������� ������
+ ������������������:
+ <UL>
+ <LI>�������� ��������, ������� ������� ��������� � ��������� �������</LI>
+ <LI>������������� COPY ������ ��������� <small>INSERT</small></LI>
+ <LI>����������� ���������� ���������� � ������ ���������� ���
+ ���������� �������� ��� ���������� ���������� ����������</LI>
+ <LI>������������� <small>CLUSTER</small>, ����� �� ������� ��ң���
+ ��������� �����</LI>
+ <LI>������������� <small>LIMIT</small> ��� ����, ����� ������������
+ ������ ����� ������ �� �������</LI>
+ <LI>������������� �������������� (Prepared) ��������</LI>
+ <LI>������������� <small>ANALYZE</small> ��� ������������ ����������
+ ������������</LI>
+ <LI>���������� ������������� <small>VACUUM</small> ��� <I>pg_autovacuum</I></LI>
+ <LI>�������� �������� �� ����� ������� ��������� ������</LI>
+ </UL>
+ <BR><BR>
+ </DD>
- <P>��-������, ��� ������� <I>configure</I> � ������ --enable-cassert,
- ������ ������ <I>assert()</I> ��������� ����������� ������ backend
- �������� � ��������� ��������� ��� ������������� �����-����
- ��������������.</P>
+ <DT><B>��������� �������</B></DT>
+
+ <DD>��������� ��������� � <I>postgresql.conf</I> ������ ��
+ ������������������. ��������� ������ ������ ��������� ��. �
+ <A href="http://www.postgresql.org/docs/current/static/runtime.html">
+ Administration Guide/Server Run-time Environment/Run-time Configuration</A>,
+ � ����������� ��. � <A href="http://www.varlena.com/varlena/GeneralBits/Tidbits/annotated_conf_e.html">
+ http://www.varlena.com/varlena/GeneralBits/Tidbits/annotated_conf_e.html</A>
+ � <A href="http://www.varlena.com/varlena/GeneralBits/Tidbits/perf.html">
+ http://www.varlena.com/varlena/GeneralBits/Tidbits/perf.html</A>.
+ <BR><BR>
+ </DD>
+
+ <DT><B>����� "������" - ����������� �����������</B></DT>
+
+ <DD>������� "������" �� ������������������ �������� ������� �
+ <A href="http://candle.pha.pa.us/main/writings/pgsql/hw_performance/index.html">
+ http://candle.pha.pa.us/main/writings/pgsql/hw_performance/index.html</A> �
+ <A href="http://www.powerpostgresql.com/PerfList/">
+ http://www.powerpostgresql.com/PerfList/</A>.
+ <BR><BR>
+ </DD>
+ </DL>
- <P>� <I>postmaster</I>, � <I>postgres</I> ����� ��������� ����������
- �����. ��-������, ��� ������� <I>postmaster</I>, ���������, ���
- ����������� ����� � ����� ������ �������������� � ���� �������:</P>
-<PRE>
- cd /usr/local/pgsql
- ./bin/postmaster &gt;server.log 2&gt;&amp;1 &amp;
-</PRE>
+ <H4><A name="3.4">3.4</A>) ����� ����������� ��� ������� ���� �
+ �������?</H4>
- <P>��� �������� � ��������� ����� server.log � ������� ��������
- PostgreSQL. ���� ���� �������� �������� ���������� � ��������� ���
- �������, ��������� �� �������. <I>Postmaster</I> ����� ����� <I>-d</I>,
- ������� ��������� �������� ��� ���������������� ����� ���������
- ���������. ��� ����� <I>-d</I> ����������� �����, ������� ������ �������
- �������. ������ ���������, ��� ��� ������� ������� ������� ��������
- � ��������� ������ ������� �������� �������.</P>
+ <P>���� ��������� ��������� � ���������� �������, ������������
+ �� <code>log_*</code>, ����������� ��������������� �������
+ � ���������� ������ ��������, ������� ����� ������� ��� �������
+ � ��������� ������������������.</P>
+
+ <P><B>��� �������������� ����� ��������� ���������� �������������
+ ������� ��� ������� �����-���� �������� ������ ������������
+ ��������� ����������.</B></P>
+
+ <P>����� �� ������� ����� ����������� � ������� ������, ���� ��
+ �������� �����������. ��-������, ��� ������� <I>configure</I> �
+ ������ --enable-cassert, ������ ������ <I>assert()</I> ���������
+ ����������� ������ backend �������� � ��������� ��������� ���
+ ������������� �����-���� ��������������.</P>
<P>���� <I>postmaster</I> �� �������, �� ������ ���������
<I>postgres</I> backend �� ��������� ������ � ������ ��� ��������
<SMALL>SQL</SMALL> ��������. ��� ������������� <B>������</B> ���
����� �������. �������, ��� � ���� ������, ������ ����������� ��������
����� ������, � �� ������ � �������. ���� �� ����������� ����������
- � ����������� ����������, �� ������ ������������ ����� ��������, �����
+ � ����������� ���������, �� ������ ������������ ����� ��������, �����
����������, ��� ���������. ��������� backend ����������� �� ��
<I>postmaster</I>, �� �� ����������� � ���������� ��������� � ������
�������� �������� ����������/backend �� ����� ���� ��������������.</P>
<P>���� <I>postmaster</I> �������, ��������� <I>psql</I> � �����
����, ����� ������� <SMALL>PID</SMALL> �������� <I>postgres</I>,
- ������������ <I>psql</I>, ��������� </P>
-
- <PRE>
- SELECT pg_backend_pid()
- </PRE>
-
- <P>����������� �������� ��� ����������� � <I>postgres</I> <SMALL>PID</SMALL>.
+ ������������ <I>psql</I>, ��������� <CODE>SELECT pg_backend_pid()</CODE>.
+ ����������� �������� ��� ����������� � <I>postgres</I> <SMALL>PID</SMALL>.
�� ������ ���������� ����� ���������� � ��������� � ��������� ������
�� <I>psql</I>. ����
�� ����������� ������� ������� <I>postgres</I>, �� ������ ����������
@@ -745,10 +550,6 @@
�� ������ ���������� � �������� ��������, ���������� ����� �����
���������� � ���������� ������.</P>
- <P>��������� <I>postgres</I> ����� ����� <I>-s, -A</I>, � <I>-t</I>
- ������� ����� ���� ����� ��������� ��� ������� � ���������
- ������������������.</P>
-
<P>�� ����� ������ �������������� PostgreSQL � ��������������� ���
����, ����� ������� ����� ������� ������� ������� �����������.
����� �������������� backend'� ��������� � ��������
@@ -756,51 +557,23 @@
����� ������� � ������� ������� �������. � Linux ��� ����������
�������������� ��������� ���������� � <I>-DLINUX_PROFILE</I>.</P>
- <H4><A name="3.8">3.8</A>) ������ � ������� ��������� <I>"Sorry, too
+ <H4><A name="3.5">3.5</A>) ������ � ������� ��������� <I>"Sorry, too
many clients"</I> ����� ������� ������������ � ����?</H4>
- <P>��� ����� ��������� ����������� �� ���������� �����������
- backend ��������� ��� ������� <I>postmaster</I>.</P>
-
- <P>�� ��������� ���������� ����� �� 32 ��������. �� ������
- ��������� ���� ����� ������������ <I>postmaster</I> � ������
- ��������� ���������, ������� ����������� � ����� <I>-N</I> ���
- ������� ���� <I>postgresql.conf</I>.</P>
-
- <P>�������, ��� ���� �� �������� � ����� <I>-N</I> �������� ������
- 32, �� �� ����� ������ ��������� �������� � ����� <I>-B</I> �������
- �� ��������� ����������� � 64; �������� ����� <I>-B</I> ������ ����
- �� ������� ���� ����� ������ �������� ����� <I>-N</I>, � ��������
- �ݣ ������ ��� ������ ������������������. ��� �������� ����������
- backend ���������, ��� ����� ������� ���� �� ��������� ���������
- ��������� ���� Unix. ��� ����� ���������, ��� ������������ ����������
- ������ ����������� ������, <SMALL>SHMMAX;</SMALL> ������������ ����������
- ���������, <SMALL>SEMMNS</SMALL> � <SMALL>SEMMNI;</SMALL> ������������
- ���������� ���������, <SMALL>NPROC;</SMALL> ������������ ����������
- ��������� �� ������������, <SMALL>MAXUPRC;</SMALL> � ������������
- ���������� �������� ������, <SMALL>NFILE</SMALL> � <SMALL>NINODE</SMALL>.
- ������� �������� ����������� �� ���������� backend ��������� ���
- ��� � ������� � ���, ����� ����� ������� ������� ��������.</P>
-
- <H4><A name="3.9">3.9</A>) ��� ��������� � �������� <I>pgsql_tmp</I>?</H4>
-
- <P>������ ������� �������� ��������� �����, ������������ ������������
- �������. ��������, ���� ��� ���������� <small>ORDER BY</small> �����
- ���������� � ��� ���������� ������� ������ ������, ��� ��������� �������� <i>-S</i>
- � backend'�, �� ��� �������� �������������� ������ ��������� ���������
- �����.</P>
-
- <P>��� ��������� ����� ������ ��������� �������������, �� ����� ����� ��
- ���������, ���� backend ������ �� ����� ����������. ������� � ������
- ���������� �������� ��������� �� �������� �� ��������.</P>
+ <P>�� �������� �������������� �� ��������� ����������� �� 100 ������
+ ����������� � ���� ������. ��� ���������� ��������� ���
+ <I>postmaster</I> ����� �� ���������� ������������ backend ���������,
+ ������� �������� <I>max_connections</I> � ����� <I>postgresql.conf</I>
+ � �������������� <I>postmaster</I>.</P>
+
- <H4><A name="3.10">3.10</A>) ������ ���������� ������ dump � restore ���
+ <H4><A name="3.6">3.6</A>) ������ ���������� ������ dump � restore ���
���������� �������� PostgreSQL?</H4>
<P>������������ PostgreSQL ������ ������ ��������� ��������� �����
- ������������. ����� ������� ���������� � ������ 7.2 �� 7.2.1 �� �������
+ ������������. ����� ������� ���������� � ������ 7.4 �� 7.4.1 �� �������
���������� dump � restore. ������ ��� ������ ���������� �������
- (�.�. ��� ���������� ��������, � 7.2 �� 7.3) ����� �������� ����������
+ (�.�. ��� ���������� ��������, � 7.3 �� 7.4) ����� �������� ����������
������ ��������� ������ � ������ ������. ��� ��������� ����� �����
����������� ��������, ��� ��� ��� ����������� ���������� ��������
������������� ������ ������. ��������� dump ��������� �������� ������
@@ -812,7 +585,7 @@
������������� dump/restore. ����������� � ������� ������� ����� �����
������������ <i>pg_upgrade</i> ��� ����� �������.</P>
- <H4><A name="3.11">3.11</A>) ����� ������������ "������" � ������
+ <H4><A name="3.7">3.7</A>) ����� ������������ "������" � ������
������������?</H4>
<P>��������� "������" ������������ ����������� �������� ��������
�����������, ���� ������� ������, ��� ����� "������" ����� ����������
@@ -827,24 +600,15 @@
<H2 align="center">������� ������������</H2>
- <H4><A name="4.1">4.1</A>) � ��� ������� ����� �������� � ����������
- ��������?</H4>
-
- <P>�������� �������� �� ��������� ����������� �����������
- <SMALL>DECLARE</SMALL>.</P>
-
- <H4><A name="4.2">4.2</A>) ��� ��������� <SMALL>SELECT</SMALL> ������
+ <H4><A name="4.1">4.1</A>) ��� ��������� <SMALL>SELECT</SMALL> ������
��� ���������� ������ ������� �������? ������������ ������?</H4>
- <P>�������� ������� ����������� ����������� <SMALL>FETCH</SMALL>
- ��� ����������� <SMALL>SELECT</SMALL> ... <SMALL>LIMIT</SMALL>....</P>
-
- <P>���� ���� �� ������ �������� ������ ������ ��������� �������,
- ����� �������� ���� ������. ���������� ������, ������� �����
- <SMALL>ORDER BY.</SMALL> ���� ���� �����-���� ������, �������
- ��������� � <SMALL>ORDER BY</SMALL>, PostgreSQL �����
- ������ ������ ��������� ������ ����������� ������� ��� �����
- ��������� ������ ���� �� ����� ������ �������� ������.</P>
+ <P>��� ��������� ������ ���������� �����, ���� �� ������ �� ����������
+ �� ������ ���������� <SMALL>SELECT</SMALL> ����������� <SMALL>LIMIT</SMALL>.</P>
+ ���� ���� �����-���� ������, ������� ��������� � <SMALL>ORDER BY</SMALL>,
+ �� ��������, ��� ���� ������ �������� � �� �����. ���� �� �� ������
+ ���������� ����������� ����� �� ������ ���������� <SMALL>SELECT</SMALL>,
+ ����������� ������ � <SMALL>FETCH</SMALL>.</P>
<p>To <small>SELECT</small> a random row, use:
</p><pre> SELECT col
@@ -854,8 +618,9 @@
</pre>
</p>
- <H4><A name="4.3">4.3</A>) ��� �������� ������ ������ ��� ������
- ����������� � <I>psql</I>?</H4>
+ <H4><A name="4.2">4.2</A>) ��� ��� ����� ����� �������, �������,
+ ���� ������ � ������������ ����������? ��� ��� ������� �������,
+ ������� ���������� <I>psql</I> ��� ��������� ���� ����������?</H4>
<P>����� ������������� ������� � <I>psql</I>, ����������� ������� \dt.
������ ������ ������ � <I>psql</I> �� ������ ��������, ��������� \?.
@@ -865,28 +630,25 @@
������������ � �������� ����� �����. �� ����� ������ ���������
<I>psql</I> � ������ <I>-E</I> ���, ����� ��� ��������� ��������
�������, ������� ��� ���������� ��� ���������� �������� ����
- ������. PostgreSQL ����� ������������� <SMALL>SQLi</SMALL>
+ ������. PostgreSQL ����� ������������� <SMALL>SQL</SMALL>
����������� � INFORMATION SCHEMA ���������, � ������� ��������, ��
������ ������������ ������ �� ��������� ���������� � ���� ������.</P>
+
+ <P>����� ���������� ��������� �������, ������������ � <I>pg_</I>.</P>
+
+ <P>����������� <I>psql -l</I> ��� ��������� ������ ���� ��� ������.</P>
- <H4><A name="4.4">4.4</A>) ��� ������� ������� �� ������� ���
- �������� ţ ��� ������?</H4>
+ <P>����� ���������� ���� <I>pgsql/src/tutorial/syscat.source</I>.
+ �� ���������� ������ �� ���������� <SMALL>SELECT</SMALL> �����������
+ ��� ��������� ���������� �� ��������� ������ ���� ������.</P>
- <P><small>DROP COLUMN</small> ���������������� ���� ��������� � ������
- 7.3 � ���������� <small>ALTER TABLE DROP COLUMN</small>. � ������ �������,
- ����� ������� ���:</P>
-<PRE>
- BEGIN;
- LOCK TABLE old_table;
- SELECT ... -- ������� ���� ������� �� ����������� ���, ������� ������ �������
- INTO TABLE new_table
- FROM old_table;
- DROP TABLE old_table;
- ALTER TABLE new_table RENAME TO old_table;
- COMMIT;
-</PRE>
- <P>��� ��������� ���� ������ �������, �������� ���:</P>
+ <H4><A name="4.3">4.3</A>) ��� �������� ��� ������ �������?</H4>
+
+ <P>� 8.0 � ����� ������� �������, ��������� ���� ������� �����������
+ ����� ����� ����� <SMALL>ALTER TABLE ALTER COLUMN TYPE</SMALL>.
+
+ <P>� ����� ������ ������� �������� ���:</P>
<PRE>
BEGIN;
ALTER TABLE tab ADD COLUMN new_col <i>new_data_type</i>;
@@ -895,24 +657,49 @@
COMMIT;
</PRE>
- <H4><A name="4.5">4.5</A>) ������ ������������ ������� ��� �������,
+ <H4><A name="4.4">4.4</A>) ������ ������������ ������� ��� ����� � �������,
������ � ���� ������?</H4>
<P>���������� ��������� �����������:</P>
-<PRE>
- ������������ ������ ����? ����������� (���������� ���� �� 32 TB)
- ������������ ������ �������? 32 TB
- ������������ ������ ������? 1.6 TB
- ������������ ������ ����? 1 GB
- ������������ ���������� ������� � �������? ������������
- ������������ ���������� ������� � �������? 250-1600 � ����������� �� ����
- ������������ ���������� �������� � �������? ������������
-</PRE>
-
- ����������, ������� "������������" �� ����� ���� ��������������
+<BLOCKQUOTE>
+<TABLE BORDER="1">
+<TBODY>
+<TR>
+ <TD>������������ ������ ����?</TD>
+ <TD>����������� (���������� ���� �� 32 TB)</TD>
+</TR>
+<TR>
+ <TD>������������ ������ �������?</TD>
+ <TD>32 TB</TD>
+</TR>
+<TR>
+ <TD>������������ ������ ������?</TD>
+ <TD>1.6 TB</TD>
+</TR>
+<TR>
+ <TD>������������ ������ ����?</TD>
+ <TD>1 GB</TD>
+</TR>
+<TR>
+ <TD>������������ ���������� ����� � �������?</TD>
+ <TD>������������</TD>
+</TR>
+<TR>
+ <TD>������������ ���������� ������� � �������?</TD>
+ <TD>250-1600 � ����������� �� ����</TD>
+</TR>
+<TR>
+ <TD>������������ ���������� �������� � �������?</TD>
+ <TD>������������</TD>
+</TR>
+</TBODY>
+</TABLE>
+</BLOCKQUOTE>
+<BR>
+ <P>����������, ������� "������������" �� ����� ���� ��������������
��������� �������� �������������� � ��������� ������/���������.
����� �������� ������������� ���� ����������� �������, �����
- ���������� ������������������.
+ ���������� ������������������.</P>
<P>������������ ������ ������� � 32 TB �� ������� ����� ������������
������� ������������ ����� ������� ��������. ������� ������� ��������
@@ -923,7 +710,7 @@
����� ���� ��������� � ������ ����, ���� ������ ����� �� ��������� �����
�������� �� 32k.</P>
- <H4><A name="4.6">4.6</A>) ��� ����� ��������� ������������ � ���� ������
+ <H4><A name="4.5">4.5</A>) ��� ����� ��������� ������������ � ���� ������
����� ��� ���������� ������ �� �������� ���������� �����?</H4>
<P>���� PostgreSQL ����� ������������� ��������� ������������ �� 5 ���
@@ -935,21 +722,21 @@
������ ���� PostgreSQL, ���������� ��� �� ������ �������� ��������������
6.4 MB �� �������:</P>
<PRE>
- 32 ����: �� ������ ��������� ������ (��������������)
+ 32 ����: �� ������ ��������� ������ � ������� (��������������)
+ 24 �����: ���� ���� � ������������� ����� � ���� ��������� ����
- + 4 �����: ��������� �� �������� ��� ���� ������
+ + 4 �����: ��������� �� �������� ��� ���� ��������� ������
----------------------------------------
- 60 ���� �� ������
+ 60 ���� �� ������ � �������
������ �������� ������ � PostgreSQL ���������� 8192 ���� (8 KB), ��� ���:
8192 ���� �� ��������
- --------------------- = 136 ������� �� �������� �� (�����̣���)
- 60 ���� �� ������
+ --------------------- = 136 ����� � ������� �� �������� �� (�����̣���)
+ 60 ���� �� ������ � �������
100000 ����� ������
----------------------- = 735 ������� � �� (�����̣���)
- 128 ������� �� ��������
+ 128 ����� � ������� �� ��������
735 ������� �� * 8192 ���� �� �������� = 6,021,120 ���� (6 MB)
</PRE>
@@ -961,25 +748,12 @@
�������� ����� ���� �����.
</P>
- <H4><A name="4.7">4.7</A>) ��� ��� ���������, ��� ���������� ������ ���
- �������, �������, ���� ������ � ������������?</H4>
-
- <P><I>psql</I> ����� ��������� ������, ������������ � �������� �����
- �����, ��� ���� ����� ������������� ����� ����������. �����������
- \? ��� ����, ����� ������� ��� �������. ����� ���������� ���������
- �������, ��� ������� ���������� �� <i>pg_</i> � � ������� ����� ����������
- ��� ����������. �ݣ, <i>psql -l</i> ������� ������ ���� ��� ������.</P>
-
- <P>����� �������� ���� <I>pgsql/src/tutorial/syscat.source</I>. � ���
- ������������ ������ ��������� <SMALL>SELECT</SMALL> ������� �����
- ��� ��������� ���������� �� ��������� ������ ���� ������.</P>
-
- <H4><A name="4.8">4.8</A>) � ���� �������� �������� ������� ��� ��
- ���������� ������������� ��������. ������?</H4>
+ <H4><A name="4.6">4.6</A>) ������ ��� ������� �������� �������? ������
+ ��� �� ���������� ��� �������?</H4>
<P>������� �� ������������ ��� ������� ������� �������������. ���
������������ ������ ���� ������� ������ ������������ ������� � ������
- �������� ������ ��������� ������� ������� � �������. ��� ��������,
+ �������� ������ ��������� ������� ����� � �������. ��� ��������,
������ ��� ������ � ����� � ����������� ������������ ��� ������������
�������� ����� ���� ���������, ��� ������� ������ ������� ��� ��
���������������� ������������.</P>
@@ -988,11 +762,11 @@
�������, PostgreSQL ������ ����� ���������� �� ���� �������. ���
���������� ���������� ��� ������������� <SMALL>VACUUM ANALYZE</SMALL>
��� ������ <SMALL>ANALYZE</SMALL>. ��������� ����������, �����������
- ������ � ��� ��� ����� ������� � ������� � ���� �� ������ ������������
+ ������ � ��� ��� ����� ����� � ������� � ���� �� ������ ������������
�������, �� �� ����� ��������� ������ �������. ���������� �����
������ �� ����������� ������������ ������� ���������� � ������ ����������.
- ���� ���������� ������ ������������ ���������� ��� ��������� �����������
- �������.</P>
+ ��� ��������� ����������� ������� ������ ������������ ����������
+ ���� ����������.</P>
<P>������ ������� �� ������������ ��� <SMALL>ORDER BY</SMALL> ��� ���
���������� ����������. ���������������� ������� ��������� �� �����
@@ -1024,67 +798,26 @@
</UL></LI>
<LI>������ ������ �� ������ ���������� � ������� ������, �.�. [a-e].</LI>
<LI>����� ����������� �� ��������, ����� ��� <small>ILIKE</small> �
- <i>~*</i> �� ���������� �������. ������ ����, ����������� ��������������
- �������, ������� ����������� � ������ <A href="#4.12">4.12</A>.</LI>
+ <i>~*</i> �� ���������� �������. ������ ����, ����������� �������
+ ���������, ������� ����������� � ������ <A href="#4.8">4.8</A>.</LI>
<LI>�� ����� <i>initdb</i> ������ �������������� ������ �� ���������
- <i>C</i>, ������ ��� �� ���������� ����������� ������ next-greater
+ <i>C</i>, ������ ��� �� ���������� ����������� ������ ��������� ����������
������ ��� ��-C ������. �� ������ ��� ����� ������� ������� �����������
- ������
- <PRE>
- text_pattern_ops
- </PRE>
- ������� �������� ������ ���
- <PRE>
- LIKE
- </PRE>
- ��������������.</LI>
+ ������ <CODE>text_pattern_ops</CODE> ������� �������� ������ ���
+ <SMALL>LIKE</SMALL> ��������������.</LI>
</UL>
- </P>
<P>� �������� �� ������ 8.0, ������� ����� ������ ���� ������������,
���� ���� ������ ����� �� ��������� � ���������� ������ �������. ���
�������� �������� int2, int8 � numeric �������� �������.</P>
- <H4><A name="4.9">4.9</A>) ��� ���������� �� ��, ��� ����������� ���������
+ <H4><A name="4.7">4.7</A>) ��� ���������� �� ��, ��� ����������� ���������
��� ������?</H4>
<P>�������� �������� ����������� ����������� <SMALL>EXPLAIN</SMALL>.</P>
- <H4><A name="4.10">4.10</A>) ��� ����� R-tree ������?</H4>
-
- <P>R-tree ������ ������������ ��� �������������� ���������������� ������.
- ������ ���� �� ����� ��������� �������� ���������. B-tree ������
- ��������� ������ �������� ��������� � ����� ���������. R-tree ������
- ����� ��������� ��������������� �������. ��������, ���� R-tree ������
- ����� ���� ������� � ������� ���� <I>point</I>, �� ������� �����
- ����� ���������� �������� �� ������ ���� "������� ��� ����� ������
- ��������� ����������������."</P>
- <P>������������ ��������, ����������� �������������� �������� R-tree
- ���:</P>
-
- <P>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.</P>
-
- <P>�� ������ ����� ���� �������� � ����� ������������� "Readings in
- Database Systems".</P>
-
- <P>����������� R-tree ����� ��������� ���������� � �������. � ������,
- R-tree ����� ���� ��������� ��� ���������� ������� �����������
- ���������. �� ��������, ���������� R-tree ������� ��������� ������ �
- � ���, � ������ ������, ��� �����-���� ������������ � ���, ��� ���
- �������.</P>
-
- <H4><A name="4.11">4.11</A>) ��� ����� Genetic Query
- Optimizer?</H4>
-
- <P>������ <SMALL>GEQO</SMALL> ���������� ������� ����������� �������,
- ����� ���������� ���������� ������ ������ ����� Genetic Algorithm (GA).
- ��� ��������� ��������� �������� ��������� �� ���������� �����
- ������������ �����.</P>
-
- <H4><A name="4.12">4.12</A>) ��� ��� ��������� ����� ����������� ���������
+ <H4><A name="4.8">4.8</A>) ��� ��� ��������� ����� ����������� ���������
� ����� ����������� �� �������� ���� ����� ����������� ���������?
��� ��� ������������ ������ ��� ������ ������������ �� �������� ����?</H4>
@@ -1101,28 +834,55 @@
</PRE>
��� ����������� �� ����� ������������ ����������� ������. ������, ����
- �� ��������� �������������� ������, �� ����� �����������:
+ �� ��������� ������ ���������, �� ����� �����������:
<PRE>
CREATE INDEX tabindex ON tab (lower(col));
</PRE>
- <H4><A name="4.13">4.13</A>) ��� � ���� ����������, ��� �������� ����
+ <H4><A name="4.9">4.9</A>) ��� � ���� ����������, ��� �������� ����
����� <SMALL>NULL</SMALL> � �����-���� �������?</H4>
<P>�� ������ ����������� �������� � <SMALL>IS NULL</SMALL> �
<SMALL>IS NOT NULL</SMALL>.</P>
- <H4><A name="4.14">4.14</A>) ������ ������� ����� ������� �����������
+ <H4><A name="4.10">4.10</A>) ������ ������� ����� ������� �����������
������?</H4>
-<PRE>
-��� ���������� ��� ���������
---------------------------------------------------
-VARCHAR(n) varchar ������ ������ ������������ �����, ��� ����������
-CHAR(n) bpchar ����������� �������� �� ������������� �����
-TEXT text ��� ����������� �������� ����������� ��� �����
-BYTEA bytea ������ ���� ���������� ����� (����� ������������ null-���� ��� ������)
-"char" char ���� ������
-</PRE>
+<BLOCKQUOTE>
+<TABLE BORDER="1">
+<TBODY>
+<TR>
+ <TH>���</TH>
+ <TH>���������� ���</TH>
+ <TH>���������</TH>
+</TR>
+<TR>
+ <TD>VARCHAR(n)</TD>
+ <TD>varchar</TD>
+ <TD>������ ������ ������������ �����, ��� ����������</TD>
+</TR>
+<TR>
+ <TD>CHAR(n)</TD>
+ <TD>bpchar</TD>
+ <TD>����������� �������� �� ������������� �����</TD>
+</TR>
+<TR>
+ <TD>TEXT</TD>
+ <TD>text</TD>
+ <TD>��� ����������� �������� ����������� ��� �����</TD>
+</TR>
+<TR>
+ <TD>BYTEA</TD>
+ <TD>bytea</TD>
+ <TD>������ ���� ���������� ����� (����� ������������ null-���� ��� ������)</TD>
+</TR>
+<TR>
+ <TD>"char"</TD>
+ <TD>char</TD>
+ <TD>���� ������</TD>
+</TR>
+</TBODY>
+</TABLE>
+</BLOCKQUOTE>
<P>���������� ��� �� ������ �������, ����� �������� ��������� ��������
� � ��������� ���������� �� �������.</P>
@@ -1147,7 +907,7 @@ BYTEA bytea ������ ���� ���������� ����� (����� ������������
������� ����� �������� <SMALL>NULL</SMALL> �����. ��� ���� ���������
�����, ����� ������� �������������� ������������������.</P>
- <H4><A name="4.15.1">4.15.1</A>) ��� ��� ������� ����
+ <H4><A name="4.11.1">4.11.1</A>) ��� ��� ������� ����
serial/�-����-�����������?</H4>
<P>PostgreSQL ������������ ��� ������ <SMALL>SERIAL</SMALL>. ��
@@ -1169,20 +929,15 @@ BYTEA bytea ������ ���� ���������� ����� (����� ������������
</PRE>
�������� ����������� � ������������������� �� �������� �����������
- ����������� <I>create_sequence</I>. �� ����� ������ ������������
- ������ ���� <I>OID</I> � ������ ��� ���������� ��������. ������,
- ���� ��� ����� ���� � ������������ ���� ������, ��� ����������
- ������������ ������� <I>pg_dump</I> � ������ <I>-o</I> ��� �����
- <SMALL>COPY WITH OIDS</SMALL> ��� ���������� �������� ����
- <SMALL>OID</SMALL>.
-
- <H4><A name="4.15.2">4.15.2</A>) ��� ��� �������� �������� ��� �������
+ ����������� <I>create_sequence</I>.
+
+ <H4><A name="4.11.2">4.11.2</A>) ��� ��� �������� �������� ��� �������
<SMALL>SERIAL</SMALL>?</H4>
<P>���� �� �������� ������� � ��������� ���������� ��������
<SMALL>SERIAL</SMALL> �� ������� sequence � ������� �������
<I>nextval()</I> <I>�����</I> �������� � ����� ��������� ��� ��������
- ����. ����������� �������-������ � <A href="#4.15.1">4.15.1</A>, ������
+ ����. ����������� �������-������ � <A href="#4.11.1">4.11.1</A>, ������
� ����������� ������� ��� ��� ��������:</P>
<PRE>
new_id = execute("SELECT nextval('person_id_seq')");
@@ -1205,23 +960,15 @@ BYTEA bytea ������ ���� ���������� ����� (����� ������������
new_id = execute("SELECT currval('person_id_seq')");
</PRE>
- � �������, �� ������ ������������ ��������
- <A href="#4.16"><SMALL>OID</SMALL></A>, ����������� �� ��������
- <SMALL>INSERT</SMALL> ����� ������� �������� �� ���������, ���
- ���������������� �������� �������� ����������� �� ������ ���������
- ��������, � ���� �� �������� oid ����� ���������, ����� ��� ���������
- 4 ����������. � Perl, ��������� DBI � ������� Edmund Mergl'� DBD::Pg,
- �������� oid ���������� ��������� ����� <I>$sth-&gt;{pg_oid_status}</I>
- ����� <I>$sth-&gt;execute()</I>.
- <H4><A name="4.15.3">4.15.3</A>) �� ����� �� ���������� ���, ���
+ <H4><A name="4.11.3">4.11.3</A>) �� ����� �� ���������� ���, ���
������������� <I>currval()</I> � <I>nextval()</I> �������� �
�������������� � ������� ��������������?</H4>
- <P>���. <i>currval()</i> ���������� ������� ��������, ����������� �����
- backend'��, � �� ������� ��������������.</P>
+ <P>���. <i>currval()</i> ���������� ������� ��������, ����������� �����
+ �������, � �� ������� ��������.</P>
- <H4><A name="4.15.4">4.15.4</A>) ������ ����� �� ���� ������������������
+ <H4><A name="4.11.4">4.11.4</A>) ������ ����� �� ���� ������������������
�� ������������ ����� ��� ������ ����������? ������ ��������� �������
��� ��������� � �������, ��� � ��������� ������������������/SERIAL?</H4>
@@ -1231,78 +978,32 @@ BYTEA bytea ������ ���� ���������� ����� (����� ������������
��������� ��� ������ ����������.</P>
- <H4><A name="4.16">4.16</A>) ��� ����� <SMALL>OID</SMALL>? ��� �����
+ <H4><A name="4.12">4.12</A>) ��� ����� <SMALL>OID</SMALL>? ��� �����
<SMALL>TID</SMALL>?</H4>
- <P>���� <SMALL>OID</SMALL> ������ ����������� ��������������� �������
- � PostgreSQL. ������ ������, ������� ��������� � PostgreSQL ��������
- ���������� <SMALL>OID</SMALL>. ��� �������� <SMALL>OID</SMALL>
- ������������ �� ����� <I>initdb</I> ����� �������� ������ 16384 (��
- <I>include/access/transam.h</I>). ��� ��������� �������������
- <SMALL>OID</SMALL> ����� ������� ��������. �� ���������, ��� ���
- <SMALL>OID</SMALL> �������� ����������� �� ������ ������ �����-����
- ������� ��� ���� ������, �� � ������ ���� ���� PostgreSQL.</P>
-
- <P>PostgreSQL ���������� <SMALL>OID</SMALL> � ����� ���������� ���������
- �������� ��� ����� ������� � ������. �������� <SMALL>OID</SMALL> �����
- ���� ������������ ��� ������������� �������� ������������� �������,
- � ����� �������������� ��� �����������. ������������� ������������
- ��� ������� <SMALL>OID</SMALL> ��� �������� �������� <SMALL>OID</SMALL>
- �� ������ ������� ������ �� ���� <SMALL>OID</SMALL> ��� ����� ��������
- �������.</P>
-
- <P>�������� <SMALL>OID</SMALL> ����������� ��� ���� ����� ������� ��
- ����������� �������, ������� ������������ ����� ����� ������ ������.
- ���� �� ������ �������� <SMALL>OID</SMALL> �� �����-���� ������
- �������� ��� ���� �� ������ ������� ����� ������� � ��������
- <SMALL>OID</SMALL>, �� ��� ����� ������� ���:</P>
-<PRE>
- 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;
-</PRE>
- <P>O<SMALL>ID</SMALL> �������� ��� 4-� ������� ����� � �� ����� ���������
- �������� � 4 ���������. ������, ��� ����� �� ������� � ���, ��� �����
- ���������, �� �� ��������� �� ���� ��� ��� ��������� ��������� ��
- ����� �����������.</P>
+ <P>������, ����������� � PostgreSQL ��������� ������, �������� ����������
+ �������������� <SMALL>OID</SMALL> �� ����������� ������ �����
+ �������������� <SMALL>WITHOUT OIDS</SMALL>. O<SMALL>ID</SMALL> - ���
+ ������������� ����������� ���������� 4-� �������� ����� �����.
+ ������, ����� ���� ��� ��� �������� �������� 4 ���������, ��������
+ O<SMALL>ID</SMALL> �������� �������������. PostgreSQL ����������
+ <SMALL>OID</SMALL> ��� ���������� ����� ���������� ������.</P>
+
+ <P>��� ���������� �������� � �������� ������� ������������, ������
+ �������� �������� ������������� <SMALL>SERIAL</SMALL> ������
+ O<SMALL>ID</SMALL>, ������ ��� ������������������ <SMALL>SERIAL</SMALL>
+ ��������� ������ ������ ������� � ����� ������� ������ ����������
+ ������������. ��� �������� �������� 8-�� ������� ������������������
+ �������� ��� <SMALL>SERIAL8</SMALL>.
<P>T<SMALL>ID</SMALL> ������������ ��� ������������� �����������
���������� ������� � �������� � offset ����������. T<SMALL>ID</SMALL>
- ���������� ����� ���� ��� ������ ���� �������� ��� �����������.
+ ���������� ����� ���� ��� ������ � ������� ���� �������� ��� �����������.
<P>T<SMALL>ID</SMALL> ������������ ���������� �������� � ��������
��������� �� ���������� ������.</P>
- <H4><A name="4.17">4.17</A>) ��� �������� ��������� ������� ������������ �
- PostgreSQL?</H4>
-
- <P>��������� �������� ��� � ������ ������������ ����������
- ������������������� �������. ��� ��������� �� ���:</P>
-
- <UL>
- <LI>table, relation, class</LI>
-
- <LI>row, record, tuple</LI>
-
- <LI>column, field, attribute</LI>
-
- <LI>retrieve, select</LI>
- <LI>replace, update</LI>
-
- <LI>append, insert</LI>
-
- <LI><SMALL>OID</SMALL>, serial value</LI>
-
- <LI>portal, cursor</LI>
-
- <LI>range variable, table name, table alias</LI>
- </UL>
-
- <P>������ ����� �������� �� ����� ������ ����� ����� �� <A href="http://hea-www.harvard.edu/MST/simul/software/docs/pkgs/pgsql/glossary/glossary.html">http://hea-www.harvard.edu/MST/simul/software/docs/pkgs/pgsql/glossary/glossary.html</A></P>
-
- <H4><A name="4.18">4.18</A>) ������ � ������� ������ <I>"ERROR: Memory
+ <H4><A name="4.13">4.13</A>) ������ � ������� ������ <I>"ERROR: Memory
exhausted in AllocSetAlloc()"</I>?</H4>
<P>���������������� � ��� ����������� ����������� ������
@@ -1322,12 +1023,12 @@ BYTEA bytea ������ ���� ���������� ����� (����� ������������
��������, ������ ��� backend ���������� ������� ������� ����� ������,
����������� ��������� ��� ������� ����� �������� �������.
- <H4><A name="4.19">4.19</A>) ��� ��� ������, ����� ������ PostgreSQL
+ <H4><A name="4.14">4.14</A>) ��� ��� ������, ����� ������ PostgreSQL
��������?</H4>
<P>�� <I>psql</I>, �������� <CODE>SELECT version();</CODE></P>
- <H4><A name="4.20">4.20</A>) ������ ��� ������ � ���� ������� ��������
+ <H4><A name="4.15">4.15</A>) ������ ��� ������ � ���� ������� ��������
� ������� ������ <I>"invalid large obj descriptor"</I>?</H4>
<P>��� ����� ��� ������������� �������� ������� ��������� � ������
@@ -1345,46 +1046,15 @@ BYTEA bytea ������ ���� ���������� ����� (����� ������������
<P>���� �� ����������� ����� ��������� ������� ��� <SMALL>ODBC</SMALL>,
��� �������� ����������� ���������� <CODE>auto-commit off.</CODE></P>
- <H4><A name="4.21">4.21</A>) ��� ��� ������� ������� ������� �� ���������
+ <H4><A name="4.16">4.16</A>) ��� ��� ������� ������� ������� �� ���������
����� ��������� ������� �����?</H4>
<P>����������� <I>CURRENT_TIMESTAMP</I>:</P>
<PRE>
-<CODE>CREATE TABLE test (x int, modtime timestamp DEFAULT CURRENT_TIMESTAMP );
-</CODE>
+CREATE TABLE test (x int, modtime TIMESTAMP DEFAULT CURRENT_TIMESTAMP );
</PRE>
- <H4><A name="4.22">4.22</A>) ������ ��� ����������, ������������
- <CODE><SMALL>IN</SMALL></CODE> ��� �������� ���������?</H4>
-
- <P>� ������� �� 7.4, ���������� ����������� � ������������� ���������
- ����� ���������������� ������� ����������� ��������� ��� ������
- ������ ������������� �������. ���� ��������� ���������� ������ ���������
- �������, � ������������ ������ ���������� ����� �������,
- <CODE><SMALL>IN</SMALL></CODE> �������� �������� ������. �����
- ��������� �������� � ������ ��������, �������� <CODE>IN</CODE> ��
- <CODE>EXISTS</CODE>:</P>
-<PRE>
- SELECT *
- FROM tab
- WHERE col IN (SELECT subcol FROM subtab);
-</PRE>
-
- ��:
-<PRE>
- SELECT *
- FROM tab
- WHERE EXISTS (SELECT subcol FROM subtab WHERE subcol = col);
-</PRE>
-
- ����� ����� ����������� �������� ������, ������� <CODE>subcol</CODE>
- ������ ���� ����������������.
-
- <P>� ������ 7.4 � ����, <CODE>IN</CODE> ���������� ���������� ����� ��
- �������� ���������� ��� � ������� �������, ������� ����������������
- �������� ������������� <CODE>EXISTS</CODE></P>.
-
- <H4><A name="4.23">4.23</A>) ��� ��� ��������� ������� ����������?</H4>
+ <H4><A name="4.17">4.17</A>) ��� ��� ��������� ������� ����������?</H4>
<P>PostgreSQL ������������ ������� ����������,
��������� ����������� ��������� SQL. ��� ��� �������:</P>
@@ -1400,32 +1070,15 @@ BYTEA bytea ������ ���� ���������� ����� (����� ������������
</PRE>
<P>��� ���������� ������� ���������� t1.col � t2.col, ����� ����������
- ����� ����������� ������ � t1 (������� �� ��������� � t2).
- <SMALL>RIGHT</SMALL> ���������� ������ �������� ����������� ������
+ ����� ����������� ������ � t1 (������� �� ��������� � t2).
+ <SMALL>RIGHT</SMALL> ���������� ������ �������� ����������� ������
t2. <SMALL>FULL</SMALL> ���������� ������ ���������� ���������
- ������ ���� ��� ����������� ������ �� t1 � t2. ����� <SMALL>OUTER</SMALL>
+ ������ ���� ��� ����������� ������ �� t1 � t2. ����� <SMALL>OUTER</SMALL>
�������� �������������� � ����������� � <SMALL>LEFT</SMALL>,
<SMALL>RIGHT</SMALL> � <SMALL>FULL</SMALL> �����������. �������
���������� ���������� <SMALL>INNER</SMALL> ����������.</P>
- <P>� ���������� �������, ������� ���������� ����� ���� �����������
- ��������� <SMALL>UNION</SMALL> � <SMALL>NOT IN</SMALL>. ��������,
- ����� ���������� ���������� <I>tab1</I> � <I>tab2</I>, ���������
- ������ ��������� <I>�������</I> ���������� ���� ������:<BR>
- <BR>
- </P>
-<PRE>
- 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
-</PRE>
-
- <H4><A name="4.24">4.24</A>) ��� ��������� �������, ������������ ���������
+ <H4><A name="4.18">4.18</A>) ��� ��������� �������, ������������ ���������
��� ������?</H4>
<P>�� ���������� ������� ������� ������ � ����� ������ �������� �� �������.
@@ -1433,20 +1086,19 @@ BYTEA bytea ������ ���� ���������� ����� (����� ������������
������, ��������� ����, ��� ������ ���� ����� ����� ���������� ������.</P>
<P><I>contrib/dblink</I> ��������� ������� ����� ������, ���������
- ������ �������. ����������, ������ ����� ������������ �������������
+ ������ �������. ����������, ������ ����� ������������ ����� �������������
����������� � ���������� ������ ������ � ����� ������� ����������
���������� �� ���.</P>
- <H4><A name="4.25">4.25</A>) ��� ��� ������� �� ������� ��������� �������?</H4>
+ <H4><A name="4.19">4.19</A>) ��� ��� ������� �� ������� ��������� ����� �������?</H4>
- <P>� ������ 7.3, �� ������ ����� ������� ��������� ������� ��� ������� ��
- �����-���� �������,
- <href="http://techdocs.postgresql.org/guides/SetReturningFunctions">
- http://techdocs.postgresql.org/guides/SetReturningFunctions</a>.</P>
+ <P>�� ������ ����� ������������ �������, ������������ ������,
+ <A href="http://techdocs.postgresql.org/guides/SetReturningFunctions">
+ http://techdocs.postgresql.org/guides/SetReturningFunctions</A>.</P>
- <H4><A name="4.26">4.26</A>) ������ � �� ���� ������� ���������/�������
+ <H4><A name="4.20">4.20</A>) ������ � �� ���� ������� ���������/�������
��������� ������� � �������� PL/PgSQL?</H4>
- <P>PL/PgSQL �������� ���������� ������� � ���� �� ���������� �������� �����
+ <P>PL/PgSQL �������� �������� ������� � ���� �� ���������� �������� �����
������� � ���, ��� ���� ������� PL/PgSQL ���������� � ��������� �������
� ��� ������� ������� ��������� � �������������, � ������� ����� ����������
�����, �� �� ����� �������� � ������, ������ ��� ������������� ����������
@@ -1455,7 +1107,7 @@ BYTEA bytea ������ ���� ���������� ����� (����� ������������
�������� � PL/PgSQL. ������������� ����� ��������� �������� ������
������������������ ������ ���.</P>
- <h4><a name="4.27">4.27</a>) ����� ����� ���������� ����������?
+ <h4><a name="4.21">4.21</a>) ����� ����� ���������� ����������?
</h4>
<ul>
<li><i>contrib/pgcrypto</i> �������� ����� ������� ���������� ���
@@ -1468,8 +1120,7 @@ BYTEA bytea ������ ���� ���������� ����� (����� ������������
�������� ������������� ����������� ������� ��������� �����������, �����
��� stunnel ��� ssh, ������ ����������� SSL ���������� PostgreSQL).</li>
<li>������ ������������� � ���� ������ ������������� ���������, ���
- ���������� � ������ 7.3. � ���������� �������, �� ������ ���������
- ����� <i>PASSWORD_ENCRYPTION</i> � <i>postgresql.conf</i>.</li>
+ ���������� � ��������� ��������.</li>
<li>������ ����� ���������, ��������� ����������� �������� �������.</li>
</ul>
<HR>
@@ -1489,7 +1140,7 @@ BYTEA bytea ������ ���� ���������� ����� (����� ������������
� ��� �� ����������� ����� �������� � ���������� <I>contrib/</I>.</P>
<H4><A name="5.3">5.3</A>) ��� ��� �������� C �������, ������������
- ������?</H4>
+ ������ �������?</H4>
<P>� ������� PostgreSQL, ������� � 7.3, �������, ������������ �������
��������� �������������� � C, PL/PgSQL � SQL. ����������� �������� �