diff options
author | Bruce Momjian | 2005-02-11 04:54:05 +0000 |
---|---|---|
committer | Bruce Momjian | 2005-02-11 04:54:05 +0000 |
commit | 8814ee84973915cbf0bfe9458002de691d46a767 (patch) | |
tree | d361d0859399abd6241c85f238dd5dd550b5520e | |
parent | 538e96093972324d6e1ab3698bf87cf3416961e2 (diff) |
Update to Russian FAQ, HEAD and 8.0.X.
-rw-r--r-- | doc/FAQ_russian | 997 | ||||
-rw-r--r-- | doc/src/FAQ/FAQ_russian.html | 1127 |
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= "mailto:[email protected]">[email protected]</A>)<BR> @@ -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&button=Search&key=postgreSQL&stype=all&sort=type&dir=%2F"> + http://hobbes.nmsu.edu/cgi-bin/h-search?sh=1&button=Search&key=postgreSQL&stype=all&sort=type&dir=%2F</A>.</P> - <H4><A name="1.5">1.5</A>) ��� ����� ����� 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= - "mailto:[email protected]">[email protected]</A>. - � ��� ����� ��������� ����� ����, ���������� PostgreSQL. ����� - �����������, ��������� ������ �� ����������� �����, � ������� � - ���� ������ (�� � ����) �������� ��������� ������:</P> -<PRE> - subscribe - end -</PRE> - - <P>�� ����� <A href= - "mailto:[email protected]">[email protected]</A>.</P> - - <P>���������� ������� ������. ����� ����������� �� ����, ��������� - ������ �� ����������� ����� �� �����: <A href= - "mailto:[email protected]">[email protected]</A> - � � ���� ������ �������� ������� �������:</P> -<PRE> - subscribe - end -</PRE> - �������� ������������ �����������, ����� � �������� ������ �������� - ��������� ����� 30 �������� ���������. - - <P>�������� � ������ �������� ��������� �� �������. ����� ����������� �� ���� - ������, ��������� �� ����������� ����� ������ �� ����� <A href= - "mailto:[email protected]">[email protected]</A> - � � ���� ������ �������� ������� �������:</P> -<PRE> - subscribe - end -</PRE> - ����� ������� ������ �������� � ����������� �������������. ����� ����������� - �� ���� ������, ��������� �� ����������� ����� ������ �� ����� - <A href= - "mailto:[email protected]">[email protected]</A> - � � ���� ������ �������� ������� �������: -<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= - "mailto:[email protected]">[email protected]</A>.</P> <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 >server.log 2>&1 & -</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->{pg_oid_status}</I> - ����� <I>$sth->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. ����������� �������� � |