From 3cb6fc265c662c2e21e7d42ec7b6735d8d03de37 Mon Sep 17 00:00:00 2001 From: Bruce Momjian Date: Wed, 28 Sep 2005 11:33:42 +0000 Subject: [PATCH] Update Russian FAQ. Victor Vislobokov --- doc/FAQ_AIX | 2 +- doc/FAQ_russian | 1377 +++++++++++-------------------- doc/src/FAQ/FAQ_russian.html | 1484 +++++++++++++--------------------- 3 files changed, 1025 insertions(+), 1838 deletions(-) diff --git a/doc/FAQ_AIX b/doc/FAQ_AIX index 64ccccb221..430ab0d750 100644 --- a/doc/FAQ_AIX +++ b/doc/FAQ_AIX @@ -1,5 +1,5 @@ From: Zeugswetter Andreas -$Date: 2005/09/22 22:14:10 $ +$Date: 2005/09/28 11:33:41 $ On AIX 4.3.2 PostgreSQL compiled with the native IBM compiler xlc (vac.C 5.0.1) passes all regression tests. Other versions of OS and diff --git a/doc/FAQ_russian b/doc/FAQ_russian index e74ba789ce..5637f548c5 100644 --- a/doc/FAQ_russian +++ b/doc/FAQ_russian @@ -1,172 +1,137 @@ Otvety na chasto zadavaemye voprosy po PostgreSQL - Data poslednego obnovleniya: Sreda 15 dekabrya 20:06:34 EST 2004 + Data poslednego obnovleniya: Pyatnica 16 sentyabrya 14:07:22 EDT 2005 Anglijskij variant soprovozhdaet: Bryus Mom'yan (Bruce Momjian) (pgman@candle.pha.pa.us) - Perevel na russkij: Viktor Vislobokov (corochoone@perm.ru) + Pereviol na russkij: Viktor Vislobokov (admin@linuxshare.ru) 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? + 1.13) Kto upravlyaet PostgreSQL? 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 - 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.9) Kak mne opredelit', chto znachenie polya ravno NULL v kakom-libo + zaprose? Mogu ya otsortirovat' polya NULL ili net? + 4.10) Kakovy otlichiya mezhdu raznymi simvol'nymi tipami? + 4.11.1) Kak mne sozdat' pole serial/s-avto-uvelicheniem? + 4.11.2) Kak mne poluchit' znachenie pri vstavke SERIAL? + 4.11.3) Ne mozhet li poluchit'sya tak, chto ispol'zovanie currval() i nextval() privedet k zaciklirovaniyu s drugimi pol'zovatelyami? - 4.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 CTID? + 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 - "invalid large obj descriptor"? - 4.21) Kak mne sozdat' kolonku kotoraya po umolchaniyu budet soderzhat' + 4.14) Kak mne uznat', kakaya versiya PostgreSQL zapuschena? + 4.15) Kak mne sozdat' kolonku kotoraya po umolchaniyu budet soderzhat' tekuschee vremya? - 4.22) Pochemu moi podzaprosy, ispol'zuyuschie IN tak medlenno - rabotaeyut? - 4.23) Kak vypolnit' vneshnee svyazyvanie? - 4.24) Kak vypolnyat' zaprosy, ispol'zuyuschie neskol'ko baz dannyh? - 4.25) Kak mne vernut' iz funkcii neskol'ko zapisej? - 4.26) Pochemu ya ne mogu nadezhno sozdavat'/udalyat' vremennye tablicy - v funkciyah PL/PgSQL? - 4.27) Kakie opcii shifrovaniya suschestvuyut? - - Rasshireniya PostgreSQL - - 5.1) YA napisal funkciyu opredelyaemuyu pol'zovatelem. Kogda ya - zapuskayu ee v psql, pochemu ya poluchayu core dump? - 5.2) Kak ya mogu vnesti nekotorye klassnye novye tipy i funkcii v - PostgreSQL? - 5.3) Kak mne napisat' C funkciyu, vozvraschayuschuyu zapis'? - 5.4) YA izmenil ishodnyj fajl. Pochemu posle perekompilyacii ya ne - vizhu izmenenij? + 4.16) Kak vypolnit' vneshnee svyazyvanie? + 4.17) Kak vypolnyat' zaprosy, ispol'zuyuschie neskol'ko baz dannyh? + 4.18) Kak mne vernut' iz funkcii neskol'ko strok tablicy? + 4.19) Pochemu ya poluchayu oshibku "relation with OID #### ne + suschestvuet", kogda obraschayuts' k vremennym tablicam v funkciyah + PL/PgSQL? + 4.20) Kakie est' resheniya dlya replikacii? + 4.21) Pochemu imena tablicy i kolonok ne raspoznayutsya v v moiom + zaprose? _________________________________________________________________ Obschie voprosy - 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) (scrappy@PostgreSQL.org). (Sm. sekciyu 1.6 o tom, kak - podklyuchit'sya k razrabotke). `Eta komanda teper' otvechaet za vsyu - razrabotku PostgreSQL. Dannyj proekt yavlyaetsya obschestvennym i ne - upravlyaetsya kakoj-libo kompaniej. Podrobnosti smotrite v FAQ dlya - razrabotchikov, http://www.PostgreSQL.org/docs/faqs/FAQ_DEV.html - - Avtorami PostgreSQL 1.01 yavlyayutsya `Endryu YU (Andrew Yu) i Dzholi - CHen (Jolly Chen). Mnogie drugie vnesli svoj vklad v perenos na drugie - platformy, testirovanie, otladku i rasshirenie `etogo koda. - Pervonachal'nyj kod Postgres, iz kotorogo poyavilsya PostgreSQL, byl - itogom usilij mnogih akademicheskih studentov, neakademicheskih - studentov i mnozhestva raznyh programmistov, rabotavshih pod - rukovodstvom professora Majkla Stounbrejkera (Michael Stonebraker) v - Kalifornijskom universitete, Berkli. - - Pervonachal'noe imya, dannoe v Berkli, bylo Postgres. Kogda v 1995 - godu byla dobavlena funkcional'nost' SQL, `eto imya bylo izmeneno na - Postgres95. No i `eto imya bylo izmeneno v konce 1996 na PostgreSQL. - - 1.2) Kakovy avtorskie prava na PostgreSQL? - - PostgreSQL popadaet pod dejstvie sleduyuschego COPYRIGHT: + 1.1) CHto takoe PostgreSQL? Kak proiznositsya `eto nazvanie? + + PostgreSQL proiznositsya Post-Gres-Q-L (Post-Gres-K'yu-`El), takzhe + inogda govoryat prosto Postgres. Vy mozhete uslyshat' kak `eto + proiznositsya s pomosch'yu audiofajla, kotoryj dostupen v formate MP3. + + 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 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) 1994-6 Regents of the University of California + Portions copyright (c) 1996-2005, PostgreSQL Global Development Group + Portions Copyright (c) 1994-1996 Regents of the University of + California Predostavlyayutsya prava na ispol'zovanie, kopirovanie, izmenenie i rasprostranenie dannogo programmnogo obespecheniya i ego dokumentacii @@ -190,79 +155,41 @@ 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 + PostgreSQL takzhe rabotaet na operacionnyh sistemah Microsoft Windows, + osnovannyh na NT, takih kak Win2000, WinXP i Win2003. Paket + installyatora dostupen po adresu http://pgfoundry.org/projects/pginstaller. Versii Windows, osnovannye na MS-DOS (Win95, Win98, WinMe) mogut zapuskat' PostgreSQL s pomosch'yu Cygwin. Takzhe suschestvuet versiya sportirovannaya pod Novell Netware 6 na - http://forge.novell.com. - - 1.5) Gde mozhno vzyat' PostgreSQL? - - Naprimer, vospol'zovavshis' anonimnym dostupom na ftp sajt PostgreSQL - ftp://ftp.PostgreSQL.org/pub. Spisok zerkal vy najdete na nashem - osnovnom sajte. - - 1.6) Gde poluchit' podderzhku? - - Osnovnoj spisok rassylki: pgsql-general@PostgreSQL.org. V nem mozhno - obsuzhdat' lyubye temy, kasayuschiesya PostgreSQL. CHtoby - podpisat'sya, otprav'te pis'mo po `elektronnoj pochte, v kotorom v - tele pis'ma (ne v teme) napishite sleduyuschie stroki: - subscribe - end - - na adres pgsql-general-request@PostgreSQL.org. - - Suschestvuet dajzhest spisok. CHtoby podpisat'sya na nego, otprav'te - pis'mo po `elektronnoj pochte na adres: - pgsql-general-digest-request@PostgreSQL.org i v tele pis'ma napishite - strochki strochki: - subscribe - end - - Dajzhesty otpravlyayutsya podpischikam, kogda v osnovnom spiske - rassylki nakopitsya okolo 30 kilobajt soobschenij. - - Dostupen i spisok rassylki soobschenij ob oshibkah. CHtoby - podpisat'sya na `etot spisok, otprav'te po `elektronnoj pochte pis'mo - na adres pgsql-bugs-request@PostgreSQL.org i v tele pis'ma napishite - strochki strochki: - subscribe - end - - Takzhe imeetsya spisok rassylki s diskussiyami razrabotchikov. CHtoby - podpisat'sya na `etot spisok, otprav'te po `elektronnoj pochte pis'mo - na adres pgsql-hackers-request@PostgreSQL.org i v tele pis'ma - napishite strochki strochki: - subscribe - end - - Dopolnitel'nye spiski rassylki i infomaciyu o PostgreSQL mozhno najti - na domashnej stranichke PostgreSQL po adresu: + 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.4) Gde mozhno vzyat' PostgreSQL? + + CHerez brauzer, ispol'zuya http://www.postgresql.org/ftp/ i cherez + ftp, ispol'zuya ftp://ftp.PostgreSQL.org/pub/. + + 1.5) Gde poluchit' podderzhku? + + Soobschestvo PostgreSQL predostavlyaet pomosch' mnozhestvu + pol'zovatelej cherez E-mail. Osnovnoj web-sajt dlya podpiski na spiski + rassylki po E-mail `eto: http://www.postgresql.org/community/lists/. + Horoshim mestom dlya togo, chtoby nachat' zadavat' voprosy + yavlyayutsya spiski general (obschie voprosy) ili bugs (oshibki). - 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,85 +198,72 @@ Spisok kommercheskoj podderzhki kompanij dostupen na http://techdocs.postgresql.org/companies.php. - 1.7) Kakaya poslednyaya versiya? - - Poslednij vypusk PostgreSQL - `eto versiya 7.4.6 + 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. - My planiruem vypuskat' novye versii kazhdye 6-8 mesyacev. + Takzhe prover'te nalichie bolee svezhej versii PostgreSQL na nashem + FTP sajte ftp://ftp.PostgreSQL.org/pub/. - 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. + 1.7) Kakaya poslednyaya versiya? + + Poslednij vypusk PostgreSQL - `eto versiya 8.0.3 + + My planiruem vypuskat' novye starshie versii kazhdyj god, a mladshie + versii kazhdye neskol'ko mesyacev. + + 1.8) Kakaya dokumentaciya imeetsya v nalichii? + + PostgreSQL soderzhit mnogo dokumentacii, vklyuchaya bol'shoe + rukovodstvo, stranicy `elektronnogo rukovodstva man i nekotorye + malen'kie testovye primery. Smotrite v katalog /doc. Vy takzhe mozhete + prosmatrivat' dokumentaciyu v Internet po adresu + http://www.PostgreSQL.org/docs. Suschestvuet dve knigi po PostgreSQL dostupnye po adresam - http://www.PostgreSQL.org/docs/awbook.html i - http://www.commandprompt.com/ppbook/. Spisok knig po PostgreSQL, - kotorye mozhno kupit' dostupen po adresu + http://www.PostgreSQL.org/docs/books/awbook.html i + http://www.commandprompt.com/ppbook/. Est' neskol'ko knig po + PostgreSQL, kotorye mozhno kupit'. Odnu iz naibolee populyarnyh + napisal Korri Duglas (Korry Douglas). Spisok obzorov po `etim knigam + dostupen po adresu http://techdocs.postgresql.org/techdocs/bookreviews.php. Krome togo, 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. - 1.9) Kak najti informaciyu ob izvestnyh oshibkah ili otsutstvuyuschih - vozmozhnostyah? - + 1.9) Kak najti informaciyu ob izvestnyh oshibkah ili otsutstvuyuschih + vozmozhnostyah? + PostgreSQL podderzhivaet rasshirennyj podklass SQL-92. Smotrite nash spisok TODO na predmet izvestnyh oshibok, otsutstvuyuschih vozmozhnostej i buduschih planov. - 1.10) Kak mne nauchit'sya SQL? - - Kniga po PostgreSQL na http://www.PostgreSQL.org/docs/awbook.html - nauchit SQL. Suschestvuet drugaya kniga po PostgreSQL na - http://www.commandprompt.com/ppbook. Est' prekrasnyj uchebnik na + 1.10) Kak mne nauchit'sya SQL? + + Vo-pervyh, voz'mite odnu iz knig po PostgreSQL, o kotoryh govorilos' + vyshe. Esche odin uchebnik - `eto kniga "Teach Yourself SQL in 21 + Days, Second Edition" (Osvoj samostoyatel'no SQL za 21 den', Vtoraya + redakciya) na http://members.tripod.com/er4ebus/sql/index.htm. Mnogim + iz nashih pol'zovatelej nravitsya kniga The Practical SQL Handbook, + Bowman, Judith S., et al., Addison-Wesley. Drugim nravitsya The + Complete Reference SQL, Groff et al., McGraw-Hill. + Est' prekrasnyj uchebnik na http://www.intermedia.net/support/sql/sqltut.shtm, na http://ourworld.compuserve.com/homepages/graeme_birchall/HTM_COOK.HTM, i na http://sqlcourse.com. - Esche odin uchebnik - `eto kniga "Teach Yourself SQL in 21 Days, - Second Edition" (Osvoj samostoyatel'no SQL za 21 den', Vtoraya - redakciya) na http://members.tripod.com/er4ebus/sql/index.htm - - Mnogim iz nashih pol'zovatelej nravitsya kniga The Practical SQL - Handbook, Bowman, Judith S., et al., Addison-Wesley. Drugim nravitsya - The Complete Reference SQL, Groff et al., McGraw-Hill. - - 1.11) 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? - - Dlya nachala, skachajte poslednyuyu versiyu ishodnyh tekstov i - prochtite dokumentaciyu razrabotchikov PostgreSQL na nashem sajte ili - v distributive. Zatem, podpishites' na spiski rassylki pgsql-hackers i - pgsql-patches. Dalee, otpravlyajte ispravleniya (patches) vysokogo - kachestva v spisok pgsql-patches. - - Suschestvuet ogranichennyj spisok lyudej, kotoryj imeyut privelegiyu - vnosit' izmeneniya v CVS arhiv PostgreSQL. Kazhdyj iz `etih lyudej v - svoe vremya otpravil tak mnogo vysokokachestvennyh ispravlenij, chto - ih bylo nevozmozhno ostavit' bez vnimaniya i oni byli udostoeny - previlegii vnosit' izmeneniya, i my uvereny, chto te ispravleniya, - kotorye oni vnesut budut vysokogo kachestva. - - 1.13) Kak 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.11) Kak prisoedinitsya k komande razrabotchikov? + + Smotrite FAQ dlya razrabotchikov. + + 1.12) Kak sravnivat' PostgreSQL s drugimi SUBD? + Suschestvuet neskol'ko metodov sravneniya programmnogo obespecheniya: vozmozhnosti, proizvoditel'nost', nadezhnost', podderzhka i cena. @@ -363,24 +277,10 @@ 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. Nasha proizvoditel'nosti obychno + +/-10% po sravneniyu s drugimi SUBD. Nadezhnost' My ponimali, chto nasha SUBD dolzhna byt' nadezhnoj ili ona @@ -404,7 +304,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,286 +313,127 @@ 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. + 1.13) Kto upravlyaet PostgreSQL? + + Esli vy ischite kakogo-to osobennogo cheloveka, central'nyj komitet + ili upravlyayuschuyu kompaniyu, to naprasno --- ih net. U nas est' + yadro komiteta i razrabotchikov, rabotayuschih s CVS, no `eti gruppy + sluzhat bol'she dlya administrativnyh celej, chem dlya upravleniya. + Proekt napryamuyu funkcioniruet s pomosch'yu soobschestva + razrabotchikov i pol'zovatelej, k kotoromu mozhet prisoedinitsya + kazhdyj. Vsio chto nuzhno -- `eto podpisat'sya na spiski rassylki i + uchastvovat' v diskussiyah. (Podrobnosti o tom kak vklyuchit'sya v + razrabotku PostgreSQL smotrite v FAQ dlya razrabotchikov.) _________________________________________________________________ - 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? - - Suschestvuet dva ODBC drajvera, PsqlODBC i OpenLink ODBC. - - Vy mozhete skachat' PsqlODBC s - http://gborg.postgresql.org/project/psqlodbc/projdisplay.php. - - OpenLink ODBC mozhno vzyat' na http://www.openlinksw.com. `Etot - drajver rabotaet s ih standartnym klientskim programmnym - obespecheniem, ispol'zuyuschim ODBC, i takim obrazom, ODBC drajvery - dlya PostgreSQL dostupny dlya kazhdoj iz podderzhivaemyh imi platform - (Win, Mac, Unix, VMS). - - Vozmozhno oni budut prodavat' svoj produkt tem komu nuzhna - kommercheskaya podderzhka, no besplatnaya versiya vsegda budet - dostupna. Pozhalujsta, napravlyajte voprosy na adres - postgres95@openlink.co.uk. - - 2.2) Kakie instrumenty suschestvuyut dlya ispol'zovaniya PostgreSQL cherez - Web? - + 2.1) Kakie interfejsy est' dlya PostgreSQL? + + Ustanovka PostgreSQL vklyuchaet tol'ko C i vstroennyj (embedded) C + interfejsy. Vse drugie interfejsy yavlyayutsya nezavisimymi proektami + i zagruzhayutsya otdel'no; samostoyatel'nost' proektov pozvolyaet im + organizovat' sobstvennoe raspisanie vypuskov novyh versij i imet' + sobstvennuyu komandu razrabotchikov. + + Nekotorye yazyki programmirovaniya, takie kak PHP vklyuchayut v sebya + interfejs k PostgreSQL. Interfejsy dlya takih yazykov kak Perl, TCL, + Python i mnogih drugih, dostupny na http://gborg.postgresql.org v + sekcii Drivers/Interfaces, a takzhe cherez poisk v Internet. + + 2.2) Kakie instrumenty suschestvuyut dlya ispol'zovaniya PostgreSQL cherez + Web? + Prekrasnoe vvedenie vo vzaimodejstvie baz dannyh i Web mozhno najti na: http://www.webreview.com - Dlya integracii s Web, odnim iz prevoshodnyh instrumentov yavlyaetsya - PHP. Domashnyaya stanichka http://www.php.net. - - Dlya kompleksnyh reshenij, mnogie pol'zuyutsya Perl interfejsom 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 - (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. + Dlya integracii s Web, PHP http://www.php.net yavlyaetsya neplohim + interfejsom. + + V slozhnyh sluchayah, mnogie pol'zuyutsya Perl i DBD::Pg s CGI.pm ili + mod_perl. + + 2.3) Est' li u PostgreSQL graficheskij interfejs pol'zovatelya? + + Da, podrobnosti smotrite v + http://techdocs.postgresql.org/guides/GUITools. _________________________________________________________________ Voprosy administrirovaniya - 3.1) Kak mne ustanovit' PostgreSQL v mesto otlichnoe ot /usr/local/pgsql? - + 3.1) Kak mne ustanovit' PostgreSQL v mesto otlichnoe ot /usr/local/pgsql? + 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. - - 3.6) 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? - - 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. - - Esli postmaster ne zapuschen, vy mozhete zapustit' postgres backend iz - komandnoj stroki i vvesti vash operator SQL napryamuyu. `Eto - rekomenduetsya tol'ko dlya celej otladki. Zametim, chto v `etom - rezhime, zapros zavershaetsya simvolom novoj stroki, a ne tochkoj s - zapyatoj. Esli vy proizvodili kompilyaciyu s otladochnymi simvoloami, - vy mozhete ispol'zovat' lyuboj otladchik, chtoby posmotret', chto - sluchilos'. Poskol'ku backend zapuskaetsya ne iz postmaster, on ne - zapuskaetsya v identichnom okruzhenii i znachit problemy iteracij - blokirovok/backend ne mogut byt' vosproizvedeny. - - Esli postmaster zapuschen, zapustite psql v odnom okne, zatem najdite - PID processa postgres, ispol'zuemyj psql, ispol'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. - - Vy takzhe mozhete skompilirovat' PostgreSQL s profilirovaniem dlya - togo, chtoby uvidet' kakie funkcii skol'ko vremeni vypolnyayutsya. - Fajly profilirovaniya backend'a nahodyatsya v kataloge - pgsql/data/base/dbname. Fajl profilirovaniya klienta budet pomeschen v - tekuschij katalog klienta. V Linux dlya vypolneniya profilirovaniya - trebuetsya kompilyacii s -DLINUX_PROFILE. - - 3.8) Pochemu ya poluchayu soobschenie "Sorry, too many clients" kogda - pytayus' podklyuchit'sya k baze? - - Vam nuzhno uvelichit' ogranichenie na kolichestvo konkuretnyh backend - processov pri zapuske postmaster. - - Po umolchaniyu ustanovlen limit na 32 processa. Vy mozhete uvelichit' - `etot limit perezapustiv postmaster s nuzhnym znacheniem processov, - kotoroe ukazyvaetsya v opcii -N ili izmeniv fajl postgresql.conf. - - Zametim, chto esli vy zadadite v opcii -N znachenie bol'she 32, to vy - takzhe dolzhny uvelichit' znachenie v opcii -B kotoroe po umolchaniyu - ustanovleno v 64; Znachenie opcii -B dolzhno byt' po krajnej mere - vdvoe bol'she znacheniya opcii -N, i vozmozhno eschio bol'she dlya - luchshej proizvoditel'nosti. Dlya bol'shego kolichestva backend - processov, vam takzhe neploho bylo by uvelichit' nekotorye parametry - yadra Unix. `Eto takie parametry, kak maksimal'noe kolichestvo blokov - razdelyaemoj pamyati, SHMMAX; maksimal'noe kolichestvo semaforov, - SEMMNS i SEMMNI; maksimal'noe kolichestvo processov, NPROC; - maksimal'noe kolichestvo processov na pol'zovatelya, MAXUPRC; i - maksimal'noe kolichestvo otkrytyh fajlov, NFILE i NINODE. Prichina - sozdaniya ogranicheniya na kolichestvo backend processov kak raz i - sostoit v tom, chtoby vashej sisteme hvatilo resursov. - - 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. - - 3.10) Pochemu neobhodimo delat' dump i restore pri obnovlenii vypuskov - PostgreSQL? - + 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.3) Kakie nastrojki mne nuzhno sdelat' dlya uluchsheniya proizvoditel'nosti? + + Suschestvuet tri glavnyh oblasti, kotorye potencial'no mogut + uvelichit' proizvoditel'nost': + + Izmenenie zaprosa + `Eto oznachaet modifikaciyu zaprosov dlya polucheniya luchshej + proizvoditel'nosti: + + + Sozdanie indeksov, vklyuchaya indeksy vyrazhenij i + chastichnye indeksy + + Ispol'zovanie COPY vmesto mnozhestva INSERT + + Gruppirovka neskol'kih operatorov v edinuyu tranzakciyu dlya + umen'sheniya nagruzki pri vypolnenii zaversheniya tranzakcii + + Ispol'zovanie CLUSTER, kogda iz indeksa beriotsya mnozhestvo + strok + + Ispol'zovanie LIMIT dlya togo, chtoby vozvraschalas' tol'ko + chast' vyvoda ot zaprosa + + Ispol'zovanie Podgotovlennyh (Prepared) zaprosov + + Ispol'zovanie ANALYZE dlya obsluzhivaniya statistiki + optimizatora + + Regulyarnoe ispol'zovanie VACUUM ili pg_autovacuum + + Udalenie indeksov vo vremya bol'shih izmenenij dannyh + + Nastrojka servera + Nekotorye ustanovki v postgresql.conf vliyayut na + proizvoditel'nost'. Podrobnyj polnyj spisok ustanovok sm. v + Administration Guide/Server Run-time Environment/Run-time + Configuration, a kommentarii sm. v + http://www.varlena.com/varlena/GeneralBits/Tidbits/annotated_co + nf_e.html i + http://www.varlena.com/varlena/GeneralBits/Tidbits/perf.html. + + Vybor "zheleza" - apparatnogo obespecheniya + Vliyanie "zheleza" na proizvoditel'nost' podrobno opisano v + http://candle.pha.pa.us/main/writings/pgsql/hw_performance/inde + x.html i http://www.powerpostgresql.com/PerfList/. + + 3.4) Kakie vozmozhnosti dlya otladki est' v nalichii? + + Est' mnozhestvo ustanovok v nastrojkah servera, nachinayuschihsya na + log_*, pozvolyayuschih protokolirovat' zaprosy i statistiku raboty + processa, kotoraya ochen' polezna dlya otladki i izmereniya + proizvoditel'nosti. + + 3.5) Pochemu ya poluchayu soobschenie "Sorry, too many clients" kogda + pytayus' podklyuchit'sya k baze? + + 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.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.0 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,8 +445,8 @@ 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 odinakovoe kachestvo. `Eto ne tak. Pamyat' ECC, SCSI i kachestvennye @@ -719,21 +460,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? - 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. + 4.1) Kak vypolnit' SELECT tol'ko dlya neskol'kih pervyh strochek zaprosa? + Proizvol'noj stroki? + + Dlya polucheniya tol'ko neskol'kih strok, esli vy znaete ih + kolichestvo na moment vypolneniya SELECT ispol'zujte LIMIT. + Esli est' kakoj-libo indeks, kotoryj sovpadaet s ORDER BY, to + vozmozhno, chto ves' zapros vypolnen i ne budet. Esli vy ne znaete + kolichestva neobhodimyh strok na moment vypolneniya SELECT, + ispol'zujte kursor i FETCH. To SELECT a random row, use: SELECT col @@ -741,8 +476,10 @@ 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, vy mozhete posmotret' ishodnyj kod psql v fajle @@ -750,45 +487,43 @@ 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. - - 4.4) Kak udalit' kolonku iz tablicy ili izmenit' eio tip dannyh? - - 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: + vypolneniya zadannyh vami komand. PostgreSQL takzhe predostavlyaet SQL + sovmestimyj s INFORMATION SCHEMA interfejs, s pomosch'yu kotorogo, vy + mozhete sformirovat' zapros na poluchenie informacii o baze dannyh. + + Takzhe suschestvuyut sistemnye tablicy, nachinayuschiesya s pg_. + + Ispol'zujte psql -l dlya polucheniya spiska vseh baz dannyh. + + Takzhe posmotrite fajl pgsql/src/tutorial/syscat.source. On pokazyvaet + mnogie iz operatorov SELECT neobhodimyh dlya polucheniya informacii iz + sistemnyh tablic bazy dannyh. + + 4.3) Kak izmenit' tip dannyh kolonki? + + V 8.0 i bolee pozdnih versiyah, izmenenie tipa kolonki vypolnyaetsya + ochen' legko cherez ALTER TABLE ALTER COLUMN TYPE. + + V bolee rannih versiyah sdelajte tak: BEGIN; ALTER TABLE tab ADD COLUMN new_col new_data_type; UPDATE tab SET new_col = CAST(old_col AS new_data_type); ALTER TABLE tab DROP COLUMN old_col; COMMIT; - 4.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,9 +538,16 @@ 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 - dannyh iz obychnogo tekstovogo fajla? - + Suschestvuet ogranichenie, po kotoromu indeksy ne mogut sozdavat'sya + dlya kolonok dlinnee chem 2,000 simvolov. K schast'yu takie indeksy + vryad li dejstvitel'no komu-to nuzhny. Unikal'nost' garantiruetsya + nailuchim obrazom, s pomosch'yu funkcional'nogo indeksa iz h`esha MD5 + dlinnoj kolonki, a polnotekstovoe indeksirovanie pozvolyaet iskat' + slova vnutri kolonki. + + 4.5) Kak mnogo diskovogo prostranstva v baze dannyh nuzhno dlya sohraneniya + dannyh iz obychnogo tekstovogo fajla? + SUBD PostgreSQL mozhet potrebovat'sya diskovogo prostranstva do 5 raz bol'she dlya sohraneniya dannyh iz prostogo tekstovogo fajla. @@ -814,23 +556,23 @@ 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) + 28 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' + 56 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' + --------------------- = 146 strok v tablice na stranicu BD (okruglionno) + 56 bajt na stroku v tablice 100000 strok dannyh - ----------------------- = 735 stranic v BD (okruglionno) - 128 zapisej na stranicu + ----------------------- = 685 stranic v BD (okruglionno) + 146 strok v tablice na stranicu - 735 stranic BD * 8192 bajt na stranicu = 6,021,120 bajt (6 MB) + 685 stranic BD * 8192 bajt na stranicu = 5,611,520 bajt (5.6 MB) Indeksy ne trebuyut tak mnogo, no poskol'ku oni sozdayutsya dlya bol'shogo kolichestva dannyh, oni takzhe mogut byt' veliki. @@ -838,39 +580,25 @@ 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? - - Indeksy ne ispol'zuyutsya dlya kazhdogo zaprosa avtomaticheski. Oni - ispol'zuyutsya tol'ko esli tablica bol'she minimal'nogo razmera i - zapros vybiraet tol'ko malen'kij procent zapisej v tablice. Tak - ustroeno, potomu chto dostup k disku s primeneniem randomizacii pri - skanirovanii indeksov mozhet byt' medlennee, chem prostoe chtenie - tablicy ili ee posledovatel'noe skanirovanie. + 4.6) Pochemu moi zaprosy rabotayut medleno? Pochemu oni ne ispol'zuyut moi + indeksy? + + Indeksy ne ispol'zuyutsya dlya kazhdogo zaprosa. Oni ispol'zuyutsya + tol'ko esli tablica bol'she minimal'nogo razmera i zapros vybiraet + tol'ko malen'kij procent strok v tablice. Tak ustroeno, potomu chto + dostup k disku s primeneniem randomizacii pri skanirovanii indeksov + mozhet byt' medlennee, chem prostoe chtenie tablicy ili ee + posledovatel'noe skanirovanie. CHtoby opredelit' neobhodimost' ispol'zovaniya indeksa dlya kakoj-libo tablicy, PostgreSQL dolzhen imet' statistiku po `etoj tablice. `Eta statistika sobiraetsya pri ispol'zovanii VACUUM ANALYZE ili prosto ANALYZE. Ispol'zuya statistiku, optimizator uznaet o tom kak mnogo - 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 @@ -887,8 +615,8 @@ a Esli vam kazhetsya, chto optimizator nekorrektno vybiraet posledovatel'nyj perebor, ispol'zujte SET enable_seqscan TO 'off' i - zapustite testy, chtoby uvidet', ne stalo-li skanirovanie indeksov - bystree. + zapustite zapros snova, chtoby uvidet', dejstvitel'no li skanirovanie + indeksov bystree. Kogda ispol'zuyutsya operacii s shablonami, naprimer LIKE ili ~, indeksy mogut byt' ispol'zovany v sleduyuschih sluchayah: @@ -899,64 +627,26 @@ 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 - ot registra bukv poisk regulyarnogo vyrazheniya? Kak mne ispol'zovat' - indeks dlya poiska nezavisimogo ot registra bukv? - + 4.8) Kak mne vypolnit' poisk regulyarnogo vyrazheniya i poisk nezavisimyj ot + registra bukv poisk regulyarnogo vyrazheniya? Kak mne ispol'zovat' indeks + dlya poiska nezavisimogo ot registra bukv? + Operator ~ proizvodit poisk regulyarnogo vyrazheniya, a operator ~* proizvodit nezavisimyj ot registra bukv poisk regulyarnogo vyrazheniya. Nezavisimyj ot registra variant LIKE nazyvaetsya ILIKE. @@ -967,37 +657,51 @@ 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 - zaprose? - - Vy prosto sravnivaete znachenie s IS NULL i IS NOT NULL. - - 4.14) 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 - + Esli vysheukazannyj indeks sozdaiotsya kak UNIQUE, to kolonka, dlya + kotoroj on sozdaiotsya mozhet hranit' simvoly i v verhnem, i v nizhnem + registre, indes ne mozhet imet' identichnyh znachenij, kotorye + otlichayutsya tol'ko registrom. CHtoby v kolonke mozhno bylo hranit' + simvoly tol'ko v opredelionnom registre, ispol'zujte ogranichenie + CHECK ili proverku cherez trigger. + + 4.9) Kak mne opredelit', chto znachenie polya ravno NULL v kakom-libo + zaprose? Mogu ya otsortirovat' polya NULL ili net? + + Vy prosto sravnivaete znachenie s IS NULL i IS NOT NULL, kak zdes': + SELECT * + FROM tab + WHERE col IS NULL; + + CHtoby otsortirovat' dannye po znacheniyu ispol'zujte modifikatory IS + NULL i IS NOT NULL v vyrazhenii ORDER BY. Kogda oni budut generirovat' + znacheniya istina, to pri sortirovke oni budut vyshe, chem znacheniya + lozh', tak chto zapisi s NULL budut v otsortirovannom spiske sverhu: + SELECT * + FROM tab + ORDER BY (col IS NOT NULL); + + 4.10) Kakovy otlichiya mezhdu raznymi simvol'nymi tipami? + + Tip Vnutrennee imya Zamechaniya + VARCHAR(n) varchar razmer zadaet maksimal'nuyu dlinu, net zapolneniya + CHAR(n) bpchar zapolnyaetsya pustotoj do fiksirovannoj dliny + TEXT text net zadavaemogo verhnego ogranicheniya ili dliny + BYTEA bytea massiv bajt peremennoj dliny (mozhno ispol'zovat' + null-bajt bez opaski) + "char" char odin simvol + Vnutrennee imya vy mozhete uvidet', kogda smotrite sistemnye katalogi i v nekotoryh soobscheniyah ob oshibkah. Pervye chetyre tipa yavlyayutsya "varlena" tipami (t.e., pervye chetyre bajta na diske yavlyayutsya dlinnoj, za kotoroj sleduyut dannye). Takim obrazom, fakticheski ispol'zuemoe prostranstvo bol'she, - chem oboznachennyj razmer. Odnako, `eti tipy dannyh takzhe poddayutsya - szhatiyu ili mogut byt' sohraneny ne v strokom vide cherez TOAST, tak - chto zanimaemoe diskovoe prostranstvo mozhet takzhe byt' i men'she, - chem ozhidalos'. + chem oboznachennyj razmer. Odnako, dlinnye znacheniya takzhe + szhimayutsya, tak chto zanimaemoe diskovoe prostranstvo mozhet takzhe + byt' i men'she, chem ozhidalos'. VARCHAR(n) - `eto luchshee reshenie, kogda nuzhno hranit' stroki peremennoj dliny, ne prevyshayuschie opredelennogo razmera. TEXT - `eto luchshee reshenie dlya strok neogranichennoj dliny, s maksimal'no @@ -1010,8 +714,8 @@ 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: CREATE TABLE person ( @@ -1027,18 +731,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. - - 4.15.2) Kak mne poluchit' znachenie pri vstavke SERIAL? - + posvyaschennoj create_sequence. + + 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,89 +755,47 @@ 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 - nextval() privedet k zaciklirovaniyu s drugimi pol'zovatelyami? - - Net. currval() vozvraschaet tekuschee znachenie, naznachennoe vashem - backend'om, a ne drugimi pol'zovatelyami. - - 4.15.4) Pochemu chisla iz moej posledovatel'nosti ne ispol'zuyutsya snova - pri otmene tranzakcii? Pochemu sozdayutsya razryvy pri numeracii v kolonke, - gde ya ispol'zuyu posledovatel'nost'/SERIAL? - + 4.11.3) Ne mozhet li poluchit'sya tak, chto ispol'zovanie currval() i + nextval() privedet k zaciklirovaniyu s drugimi pol'zovatelyami? + + Net. currval() vozvraschaet tekuschee znachenie, naznachennoe vashej + sessiej, a ne drugimi sessiyami. + + 4.11.4) Pochemu chisla iz moej posledovatel'nosti ne ispol'zuyutsya snova pri + otmene tranzakcii? Pochemu sozdayutsya razryvy pri numeracii v kolonke, gde + ya ispol'zuyu posledovatel'nost'/SERIAL? + Dlya realizacii konkuretnosti, znacheniya posledovatel'nostej, pri neobhodimosti vydayutsya vo vremya zapuska tranzakcij i ne blokiruyutsya do polnogo vypolneniya tranzakcij. `Eto mozhet vyzyvat' razryvy v numeracii pri otmene tranzakcij. - 4.16) CHto takoe OID? CHto takoe TID? - - Polya OID sluzhat unikal'nymi idetifikatorami zapisej v PostgreSQL. - Kazhdaya zapis', kotoraya sozdaiotsya v PostgreSQL poluchaet - unikal'nyj OID. Vse znacheniya OID generiruemye vo vremya initdb - imeyut znacheniya men'she 16384 (iz include/access/transam.h). Vse - sozdannye pol'zovatelem OID imeyut bOl'shie znachenie. Po umolchaniyu, - vse `eti OID yavlyayutsya unikal'nymi ne tol'ko vnutri kakoj-libo - tablicy ili bazy dannyh, no i vnutri vsej SUBD PostgreSQL. - - PostgreSQL ispol'zuet OID v svoih vnutrennih sistemnyh tablicah dlya - svyazi zapisej i tablic. Znacheniya OID mogut byt' ispol'zovany dlya - identifikacii zadannyh pol'zovatelem zapisej, a takzhe ispol'zovat'sya - pri svyazyvaniyah. Rekomenduetsya ispol'zovat' tip kolonki OID dlya - hraneniya znachenij OID Vy mozhete sozdat' indeks na pole OID dlya - bolee bystrogo dostupa. - - Znacheniya OID naznachayutsya dlya vseh novyh zapisej iz central'noj - oblasti, kotorye ispol'zuyutsya vsemi vsemi bazami dannyh. Esli vy - hotite izmenit' OID na kakoe-libo drugoe znachenie ili esli vy hotite - sozdat' kopiyu tablicy s takimizhe OID, to `eto mozhno sdelat' tak: - 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. - - TID ispol'zuetsya dlya identifikacii special'nyh fizicheskih zapisej s - blochnymi i offset znacheniyami. TID izmenyaetsya posle togo kak - zapisi byli izmeneny ili peregruzheny. + 4.12) CHto takoe OID? CHto takoe CTID? + + 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. + + CTID ispol'zuetsya dlya identifikacii special'nyh fizicheskih zapisej + s blochnymi i offset znacheniyami. CTID izmenyaetsya posle togo kak + stroki v tablice byli izmeneny ili peregruzheny. TID ispol'zuetsya indeksnymi zapisyami v kachestve ukazatelya na fizicheskie zapisi. - 4.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 - AllocSetAlloc()"? - + 4.13) Pochemu ya poluchayu oshibku "ERROR: Memory exhausted in + AllocSetAlloc()"? + Predpolozhitel'no u vas zakonchilas' virtual'naya pamyat' ili chto vashe yadro imeet malen'kij limit na opredelennye resursy. Popytajtes' pered zapuskom postmaster vypolnit' sleduyuschie komandy: @@ -1152,61 +810,18 @@ 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 - "invalid large obj descriptor"? - - Vam nuzhno pri ispol'zovanii bol'shogo ob"ekta pomestit' v nachale - BEGIN WORK i v konce COMMIT, a vnutri poluchivshegosya bloka lo_open - ... lo_close. - - V nastoyaschij moment PostgreSQL trebuet, chtoby pri zakrytii - bol'shogo ob"ekta proishodilo vypolnenie tranzakcii. Takim obrazom, - pervaya zhe popytka sdelat' chto-libo s bol'shim ob"ektom, ne - soblyudaya dannogo pravila privedet k soobscheniyu invalid large obj - descriptor, tak kak kod vypolnyayuschij rabotu nad bol'shim ob"ektom - (po krajnej mere v nastoyaschij moment) budet generirovat' soobschenie - ob oshibke esli vy ne ispol'zuete tranzakciyu. - - Esli vy ispol'zuete takoj interfejs klienta kak ODBC, vam vozmozhno - ponadobitsya ustanovit' auto-commit off. - - 4.21) Kak mne sozdat' kolonku kotoraya po umolchaniyu budet soderzhat' - tekuschee vremya? - + 4.15) Kak mne sozdat' kolonku kotoraya po umolchaniyu budet soderzhat' + tekuschee vremya? + Ispol'zujte CURRENT_TIMESTAMP: -CREATE TABLE test (x int, modtime timestamp DEFAULT CURRENT_TIMESTAMP ); +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.16) Kak mne vypolnit' vneshnee svyazyvanie? + PostgreSQL podderzhivaet vneshnee svyazyvanie, ispol'zuya standartnyj sintaksis SQL. Vot dva primera: SELECT * @@ -1217,49 +832,34 @@ 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.17) Kak vypolnyat' zaprosy, ispol'zuyuschie neskol'ko baz dannyh? + Ne suschestvuet sposoba sozdat' zapros k bazam dannyh otlichnym ot tekuschej. Poskol'ku PostgreSQL zagruzhaet sistemnye katalogi specifichnye dlya bazy dannyh, neponyatno dazhe, kak dolzhen sebya vesti takoj mezhbazovyj zapros. contrib/dblink pozvolyaet zaprosy mezhdu bazami, ispol'zuya vyzovy - funkcij. Razumeetsya, klient mozhet odnovremenno 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? - - V versii 7.3, vy mozhete legko vernut' neskol'ko zapisej ili kolonok - iz kakoj-libo funkcii, - http://techdocs.postgresql.org/guides/SetReturningFunctions - . - - 4.26) Pochemu ya ne mogu nadezhno sozdavat'/udalyat' vremennye tablicy v - funkciyah PL/PgSQL? - - PL/PgSQL k`eshiruet soderzhimoe funkcii i odin iz negativnyh `effektov + 4.18) Kak mne vernut' iz funkcii neskol'ko strok tablicy? + + Vy mozhete legko ispol'zovat' funkcii, vozvraschayuschie spisok, + http://techdocs.postgresql.org/guides/SetReturningFunctions. + + 4.19) Pochemu ya poluchayu oshibku "relation with OID #### ne suschestvuet", + kogda obraschayuts' k vremennym tablicam v funkciyah PL/PgSQL? + + 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,51 +868,36 @@ 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? - - * contrib/pgcrypto soderzhit mnogo funkcij shifrovaniya dlya - ispol'zovaniya v SQL zaprosah. - * Dlya shifrovaniya peredavaemyh dannyh ot klienta k serveru, na - servere v fajle postgresql.conf, opciya ssl dolzhna byt' - ustanovlena v true, v fajle pg_hba.conf dolzhna byt' - sootvetstvuyuschaya zapis' host ili hostssl i na storone klienta - sslmode ne dolzhen byt' zapreschion cherez disable. (Zametim, chto - takzhe vozmozhno ispol'zovanie nezavisimyh vneshnih shifruyuschih - transportov, takih kak stunnel ili ssh, vmesto sobstvennyh SSL - soedinenij PostgreSQL). - * Paroli pol'zovatelej k baze dannyh avtomaticheski shifruyutsya, - pri sohranenii v versii 7.3. V predyduschih versiyah, vy dolzhny - razreshit' opciyu PASSWORD_ENCRYPTION v postgresql.conf. - * Server mozhno zapustit', ispol'zuya shifrovannuyu fajlovuyu - sistemu. - _________________________________________________________________ - - Rasshireniya PostgreSQL - - 5.1) YA napisal funkciyu opredelyaemuyu pol'zovatelem. Kogda ya zapuskayu - ee v psql, pochemu ya poluchayu core dump? - - Problema mozhet zaklyuchat'sya v neskol'kih veschah. Popytajtes' - sperva protestirovat' vashu funkciyu v otdel'noj samostoyatel'noj - programme. - - 5.2) Kak ya mogu vnesti nekotorye klassnye novye tipy i funkcii v - PostgreSQL? - - Otprav'te vashi rasshireniya v spisok rassylki pgsql-hackers i oni po - vozmozhnosti budut pomescheny v podkatalog contrib/. - - 5.3) Kak mne napisat' C funkciyu, vozvraschayuschuyu zapis'? - - V versiyah PostgreSQL, nachinaya s 7.3, funkcii, vozvraschayuschie - tablicy polnost'yu podderzhivayutsya v C, PL/PgSQL i SQL. Podrobnosti - smotrite v Rukovodstve Programmista. Primer vozvraschayuschej tablicu - funkcii, napisannoj na C, mozhno najti v contrib/tablefunc. - - 5.4) YA izmenil ishodnyj fajl. Pochemu posle perekompilyacii ya ne vizhu - izmenenij? - - Fajly Makefile ne imeyut pravil'nyh zavisimostej dlya include fajlov. - Vy dolzhny vypolnit' make clean i zatem make. Esli vy ispol'zuete GCC - vy mozhete ispol'zovat' opciyu --enable-depend v configure chtoby - poruchit' kompilyatoru avtomaticheski otslezhivat' zavisimosti. + 4.20) Kakie est' resheniya dlya replikacii? + + Hotya "replikaciya" -- `eto edinyj termin, est' neskol'ko raznyh + tehnologij dlya vypolneniya replikacij s raznymi osobennostyami dlya + kazhdoj. + + Replikaciya Master/slave pozvolyaet imet' odin glavnyj (master) server + dlya vypolneniya zaprosov chteniya/zapisi, v to vremya kak + podchinionnye (slave) servera mogut proizvodit' tol'ko zaprosy + chteniya/SELECT. Naibolee populyarnym resheniem dlya replikacii + master-slave v PostgreSQL yavlyaetsya Slony-I. + + Replikaciya Multi-master pozvolyaet vypolnyat' zaprosy chteniya/zapisi + na neskol'kih, repliciruemyh drug s drugom komp'yuetrah. `Eta + osobennost' takzhe privodit k potere proizvoditel'nosti, potomu chto + neobhodima sinhronizaciya izmenenij mezhdu neskol'kimi serverami. + Naibolee populyarnym resheniem dlya takoj replikacii v PostgreSQL + yavlyaetsya Pgcluster. + + 4.21) Pochemu imena tablicy i kolonok ne raspoznayutsya v v moiom zaprose? + + Naibolee chasto `eto proishodit iz-za ispol'zovaniya dvojnyh kavychek + v imeni tablicy ili kolonki pri sozdanii tablicy. Pri ispol'zovanii + dvojnyh kavychek, imya tablicy i kolonki (kotorye nazyvayut + identifikatorami) sohranyayutsya v registro-zavisimom vide; `eto + oznachaet, chto vy dolzhny ispol'zovat' dvojnye kavychki, kogda + ukazyvaete `eti imena v zaprose. Nekotorye interfejsy, takie kak + pgAdmin, vo vremya sozdaniya tablicy dobavlyayut dvojnye kavychki + avtomaticheski. Takim obrazom, chtoby identifikatory raspoznavalis' vy + dolzhny sledovat' odnomu iz sleduyuschih pravil: + * Izbegat' ispol'zovaniya dvojnyh kavychek pri sozdanii tablic + * Ispol'zovat' v identifikatorah tol'ko simvoly nizhnego registra + * Ispol'zovat' dvojnye kavychki dlya identifikatorov v zaprosah diff --git a/doc/src/FAQ/FAQ_russian.html b/doc/src/FAQ/FAQ_russian.html index c065123f1c..e26d33df58 100644 --- a/doc/src/FAQ/FAQ_russian.html +++ b/doc/src/FAQ/FAQ_russian.html @@ -12,196 +12,153 @@

ïÔ×ÅÔÙ ÎÁ ÞÁÓÔÏ ÚÁÄÁ×ÁÅÍÙÅ ×ÏÐÒÏÓÙ ÐÏ PostgreSQL

-

äÁÔÁ ÐÏÓÌÅÄÎÅÇÏ ÏÂÎÏ×ÌÅÎÉÑ: óÒÅÄÁ 15 ÄÅËÁÂÒÑ 20:06:34 EST 2004

+

äÁÔÁ ÐÏÓÌÅÄÎÅÇÏ ÏÂÎÏ×ÌÅÎÉÑ: ðÑÔÎÉÃÁ 16 ÓÅÎÔÑÂÒÑ 14:07:22 EDT 2005

áÎÇÌÉÊÓËÉÊ ×ÁÒÉÁÎÔ ÓÏÐÒÏ×ÏÖÄÁÅÔ: âÒÀÓ íÏÍØÑÎ (Bruce Momjian) (pgman@candle.pha.pa.us)

-

ðÅÒÅ×ÅÌ ÎÁ ÒÕÓÓËÉÊ: ÷ÉËÔÏÒ ÷ÉÓÌÏÂÏËÏ× (corochoone@perm.ru)
+

ðÅÒÅ×£Ì ÎÁ ÒÕÓÓËÉÊ: ÷ÉËÔÏÒ ÷ÉÓÌÏÂÏËÏ× (admin@linuxshare.ru)

óÁÍÕÀ Ó×ÅÖÕÀ ÁÎÇÌÉÊÓËÕÀ ×ÅÒÓÉÀ ÄÏËÕÍÅÎÔÁ ÍÏÖÎÏ ÎÁÊÔÉ ÎÁ - http://www.PostgreSQL.org/docs/faqs/FAQ.html.

+ http://www.PostgreSQL.org/files/documentation/faqs/FAQ.html.

ïÔ×ÅÔÙ ÎÁ ×ÏÐÒÏÓÙ ÓÐÅÃÉÆÉÞÎÙÅ ÄÌÑ ËÏÎËÒÅÔÎÙÈ ÐÌÁÔÆÏÒÍ ÍÏÖÎÏ ÎÁÊÔÉ ÎÁ - http://www.PostgreSQL.org/docs/index.html.

+ http://www.PostgreSQL.org/docs/faq/.


ïÂÝÉÅ ×ÏÐÒÏÓÙ

- 1.1) þÔÏ ÔÁËÏÅ PostgreSQL? ëÁË ÐÒÏÉÚÎÏÓÉÔÓÑ ÜÔÏ ÎÁÚ×ÁÎÉÅ?
+ 1.1) þÔÏ ÔÁËÏÅ PostgreSQL? ëÁË ÐÒÏÉÚÎÏÓÉÔÓÑ ÜÔÏ ÎÁÚ×ÁÎÉÅ?
1.2) ëÁËÏ×Ù Á×ÔÏÒÓËÉÅ ÐÒÁ×Á ÎÁ PostgreSQL?
- 1.3) îÁ ËÁËÉÈ Unix ÐÌÁÔÆÏÒÍÁÈ ÒÁÂÏÔÁÅÔ PostgreSQL?
- 1.4) óÕÝÅÓÔ×ÕÀÔ ÌÉ ×ÅÒÓÉÉ ÐÏÒÔÉÒÏ×ÁÎÎÙÅ ÎÅ ÎÁ Unix ÓÉÓÔÅÍÙ?
- 1.5) çÄÅ ÍÏÖÎÏ ×ÚÑÔØ PostgreSQL?
- 1.6) çÄÅ ÐÏÌÕÞÉÔØ ÐÏÄÄÅÒÖËÕ?
+ 1.3) îÁ ËÁËÉÈ ÐÌÁÔÆÏÒÍÁÈ ÒÁÂÏÔÁÅÔ PostgreSQL?
+ 1.4) çÄÅ ÍÏÖÎÏ ×ÚÑÔØ PostgreSQL?
+ 1.5) çÄÅ ÐÏÌÕÞÉÔØ ÐÏÄÄÅÒÖËÕ?
+ 1.6) ëÁË ÍÎÅ ÓÏÏÂÝÉÔØ Ï ÏÛÉÂËÅ?
1.7) ëÁËÁÑ ×ÅÒÓÉÑ ÐÏÓÌÅÄÎÑÑ?
1.8) ëÁËÁÑ ÄÏËÕÍÅÎÔÁÃÉÑ ÉÍÅÅÔÓÑ × ÎÁÌÉÞÉÉ?
1.9) ëÁË ÎÁÊÔÉ ÉÎÆÏÒÍÁÃÉÀ Ï ÉÚ×ÅÓÔÎÙÈ ÏÛÉÂËÁÈ ÉÌÉ ÏÔÓÕÔÓÔ×ÕÀÝÉÈ ×ÏÚÍÏÖÎÏÓÔÑÈ?
1.10) ëÁË ÎÁÕÞÉÔØÓÑ SQL?
- 1.11) òÅÛÅÎÁ ÌÉ × PostgreSQL ÐÒÏÂÌÅÍÁ 2000-ÇÏ ÇÏÄÁ (Y2K)?
- 1.12) ëÁË ÐÒÉÓÏÅÄÉÎÉÔÓÑ Ë ËÏÍÁÎÄÅ ÒÁÚÒÁÂÏÔÞÉËÏ×?
- 1.13) ëÁË ÏÔÐÒÁ×ÉÔØ ÓÏÏÂÝÅÎÉÅ Ï ÏÛÉÂËÅ?
- 1.14) ëÁË ÓÒÁ×ÎÉ×ÁÔØ PostgreSQL Ó ÄÒÕÇÉÍÉ + 1.11) ëÁË ÐÒÉÓÏÅÄÉÎÉÔÓÑ Ë ËÏÍÁÎÄÅ ÒÁÚÒÁÂÏÔÞÉËÏ×?
+ 1.12) ëÁË ÓÒÁ×ÎÉ×ÁÔØ PostgreSQL Ó ÄÒÕÇÉÍÉ óõâä?
- 1.15) ëÁË ÏËÁÚÁÔØ ÆÉÎÁÎÓÏ×ÕÀ ÐÏÍÏÝØ PostgreSQL?
- + 1.13) ëÔÏ ÕÐÒÁ×ÌÑÅÔ PostgreSQL?
+

÷ÏÐÒÏÓÙ ÐÏÌØÚÏ×ÁÔÅÌÅÊ ÐÏ ËÌÉÅÎÔÓËÏÊ ÞÁÓÔÉ

- 2.1) óÕÝÅÓÔ×ÕÀÔ ÌÉ ODBC ÄÒÁÊ×ÅÒÁ ÄÌÑ - PostgreSQL?
+ 2.1) ëÁËÉÅ ÉÎÔÅÒÆÅÊÓÙ ÅÓÔØ ÄÌÑ PostgreSQL?
2.2) ëÁËÉÅ ÉÎÓÔÒÕÍÅÎÔÙ ÓÕÝÅÓÔ×ÕÀÔ ÄÌÑ ÉÓÐÏÌØÚÏ×ÁÎÉÑ PostgreSQL ÞÅÒÅÚ Web?
2.3) åÓÔØ ÌÉ Õ PostgreSQL ÇÒÁÆÉÞÅÓËÉÊ ÉÎÔÅÒÆÅÊÓ ÐÏÌØÚÏ×ÁÔÅÌÑ?
- 2.4) ëÁËÉÅ ÑÚÙËÉ ÍÏÇÕÔ ×ÚÁÉÍÏÄÅÊÓÔ×Ï×ÁÔØ Ó - PostgreSQL?

÷ÏÐÒÏÓÙ ÁÄÍÉÎÉÓÔÒÉÒÏ×ÁÎÉÑ

3.1) ëÁË ÍÎÅ ÕÓÔÁÎÏ×ÉÔØ PostgreSQL × ÍÅÓÔÏ ÏÔÌÉÞÎÏÅ ÏÔ /usr/local/pgsql?
- 3.2) ëÏÇÄÁ Ñ ÚÁÐÕÓËÁÀ postmaster, Ñ ÐÏÌÕÞÁÀ - ÓÏÏÂÝÅÎÉÅ Bad System Call ÉÌÉ ÓÏÏÂÝÅÎÉÅ core dumped. ðÏÞÅÍÕ?
- 3.3) ëÏÇÄÁ Ñ ÐÙÔÁÀÓØ ÚÁÐÕÓÔÉÔØ postmaster, Ñ - ÐÏÌÕÞÁÀ ÏÛÉÂËÉ IpcMemoryCreate. ðÏÞÅÍÕ?
- 3.4) ëÏÇÄÁ Ñ ÐÙÔÁÀÓØ ÚÁÐÕÓÔÉÔØ postmaster, Ñ - ÐÏÌÕÞÁÀ ÏÛÉÂËÉ IpcSemaphoreCreate. ðÏÞÅÍÕ?
- 3.5) ëÁË ÍÎÅ ÕÐÒÁ×ÌÑÔØ ÓÏÅÄÉÎÅÎÉÑÍÉ Ó ÄÒÕÇÉÈ + 3.2) ëÁË ÍÎÅ ÕÐÒÁ×ÌÑÔØ ÓÏÅÄÉÎÅÎÉÑÍÉ Ó ÄÒÕÇÉÈ ËÏÍÐØÀÔÅÒÏ×?
- 3.6) ëÁËÉÅ ÎÁÓÔÒÏÊËÉ ÍÎÅ ÎÕÖÎÏ ÓÄÅÌÁÔØ ÄÌÑ ÕÌÕÞÛÅÎÉÑ + 3.3) ëÁËÉÅ ÎÁÓÔÒÏÊËÉ ÍÎÅ ÎÕÖÎÏ ÓÄÅÌÁÔØ ÄÌÑ ÕÌÕÞÛÅÎÉÑ ÐÒÏÉÚ×ÏÄÉÔÅÌØÎÏÓÔÉ?
- 3.7) ëÁËÉÅ ×ÏÚÍÏÖÎÏÓÔÉ ÄÌÑ ÏÔÌÁÄËÉ ÅÓÔØ × ÎÁÌÉÞÉÉ?
- 3.8) ðÏÞÅÍÕ Ñ ÐÏÌÕÞÁÀ ÓÏÏÂÝÅÎÉÅ "Sorry, too many + 3.4) ëÁËÉÅ ×ÏÚÍÏÖÎÏÓÔÉ ÄÌÑ ÏÔÌÁÄËÉ ÅÓÔØ × ÎÁÌÉÞÉÉ?
+ 3.5) ðÏÞÅÍÕ Ñ ÐÏÌÕÞÁÀ ÓÏÏÂÝÅÎÉÅ "Sorry, too many clients" ËÏÇÄÁ ÐÙÔÁÀÓØ ÐÏÄËÌÀÞÉÔØÓÑ Ë ÂÁÚÅ?
- 3.9) þÔÏ ÎÁÈÏÄÉÔÓÑ × ËÁÔÁÌÏÇÅ pgsql_tmp?
- 3.10) ðÏÞÅÍÕ ÎÅÏÂÈÏÄÉÍÏ ÄÅÌÁÔØ dump É restore ÐÒÉ + 3.6) ðÏÞÅÍÕ ÎÅÏÂÈÏÄÉÍÏ ÄÅÌÁÔØ dump É restore ÐÒÉ ÏÂÎÏ×ÌÅÎÉÉ ×ÙÐÕÓËÏ× PostgreSQL?
- 3.11) ëÁËÏÅ ËÏÍÐØÀÔÅÒÎÏÅ "ÖÅÌÅÚÏ" Ñ ÄÏÌÖÅÎ + 3.7) ëÁËÏÅ ËÏÍÐØÀÔÅÒÎÏÅ "ÖÅÌÅÚÏ" Ñ ÄÏÌÖÅÎ ÉÓÐÏÌØÚÏ×ÁÔØ?

÷ÏÐÒÏÓÙ ÜËÓÐÌÕÁÔÁÃÉÉ

- 4.1) ÷ ÞÅÍ ÏÔÌÉÞÉÅ ÍÅÖÄÕ ÂÉÎÁÒÎÙÍ É ÎÏÒÍÁÌØÎÙÍ - ËÕÒÓÏÒÏÍ?
- 4.2) ëÁË ×ÙÐÏÌÎÉÔØ SELECT ÔÏÌØËÏ + 4.1) ëÁË ×ÙÐÏÌÎÉÔØ SELECT ÔÏÌØËÏ ÄÌÑ ÎÅÓËÏÌØËÉÈ ÐÅÒ×ÙÈ ÓÔÒÏÞÅË ÚÁÐÒÏÓÁ? äÌÑ ÐÒÏÉÚ×ÏÌØÎÏÊ ÓÔÒÏËÉ?
- 4.3) ëÁË ÐÏÌÕÞÉÔØ ÓÐÉÓÏË ÔÁÂÌÉà ÉÌÉ ÄÒÕÇÉÈ - ËÏÍÐÏÎÅÎÔÏ× × psql?
- 4.4) ëÁË ÕÄÁÌÉÔØ ËÏÌÏÎËÕ ÉÚ ÔÁÂÌÉÃÙ ÉÌÉ ÉÚÍÅÎÉÔØ - Å£ ÔÉÐ ÄÁÎÎÙÈ?
- 4.5) ëÁËÏ×Ù ÍÁËÓÉÍÁÌØÎÙÅ ÒÁÚÍÅÒÙ ÄÌÑ ÚÁÐÉÓÅÊ, - ÔÁÂÌÉÃ É ÂÁÚÙ ÄÁÎÎÙÈ?
- 4.6) ëÁË ÍÎÏÇÏ ÄÉÓËÏ×ÏÇÏ ÐÒÏÓÔÒÁÎÓÔ×Á × ÂÁÚÅ ÄÁÎÎÙÈ + 4.2) ëÁË ÍÎÅ ÎÁÊÔÉ ËÁËÉÅ ÔÁÂÌÉÃÙ, ÉÎÄÅËÓÙ, + ÂÁÚÙ ÄÁÎÎÙÈ É ÐÏÌØÚÏ×ÁÔÅÌÉ ÓÕÝÅÓÔ×ÕÀÔ? ëÁË ÍÎÅ Õ×ÉÄÅÔØ ÚÁÐÒÏÓÙ, + ËÏÔÏÒÙÅ ÉÓÐÏÌØÚÕÅÔ psql ÄÌÑ ÐÏÌÕÞÅÎÉÑ ÜÔÏÊ ÉÎÆÏÒÍÁÃÉÉ?
+ 4.3) ëÁË ÉÚÍÅÎÉÔØ ÔÉÐ ÄÁÎÎÙÈ ËÏÌÏÎËÉ?
+ 4.4) ëÁËÏ×Ù ÍÁËÓÉÍÁÌØÎÙÅ ÒÁÚÍÅÒÙ ÄÌÑ ÓÔÒÏË × ÔÁÂÌÉÃÅ, + ÔÁÂÌÉÃ É ÂÁÚÙ ÄÁÎÎÙÈ?
+ 4.5) ëÁË ÍÎÏÇÏ ÄÉÓËÏ×ÏÇÏ ÐÒÏÓÔÒÁÎÓÔ×Á × ÂÁÚÅ ÄÁÎÎÙÈ ÎÕÖÎÏ ÄÌÑ ÓÏÈÒÁÎÅÎÉÑ ÄÁÎÎÙÈ ÉÚ ÏÂÙÞÎÏÇÏ ÔÅËÓÔÏ×ÏÇÏ ÆÁÊÌÁ?
- 4.7) ëÁË ÍÎÅ ÕÂÅÄÉÔØÓÑ, ÞÔÏ ÓÕÝÅÓÔ×ÕÀÔ ÎÕÖÎÙÅ ÍÎÅ - ÔÁÂÌÉÃÙ, ÉÎÄÅËÓÙ, ÂÁÚÙ ÄÁÎÎÙÈ É ÐÏÌØÚÏ×ÁÔÅÌÉ?
- 4.8) õ ÍÅÎÑ ÍÅÄÌÅÎÎÏ ÒÁÂÏÔÁÀÔ ÚÁÐÒÏÓÙ ÉÌÉ ÎÅ - ÐÒÏÉÓÈÏÄÉÔ ÉÓÐÏÌØÚÏ×ÁÎÉÑ ÉÎÄÅËÓÏ×. ðÏÞÅÍÕ?
- 4.9) ëÁË ÐÏÓÍÏÔÒÅÔØ ÎÁ ÔÏ, ËÁË ÏÐÔÉÍÉÚÁÔÏÒ ×ÙÐÏÌÎÑÅÔ + 4.6) ðÏÞÅÍÕ ÍÏÉ ÚÁÐÒÏÓÙ ÒÁÂÏÔÁÀÔ ÍÅÄÌÅÎÏ? ðÏÞÅÍÕ + ÏÎÉ ÎÅ ÉÓÐÏÌØÚÕÀÔ ÍÏÉ ÉÎÄÅËÓÙ?
+ 4.7) ëÁË ÐÏÓÍÏÔÒÅÔØ ÎÁ ÔÏ, ËÁË ÏÐÔÉÍÉÚÁÔÏÒ ×ÙÐÏÌÎÑÅÔ ÍÏÊ ÚÁÐÒÏÓ?
- 4.10) þÔÏ ÔÁËÏÅ R-tree ÉÎÄÅËÓ?
- 4.11) þÔÏ ÔÁËÏÅ Genetic Query Optimizer?
- 4.12) ëÁË ÍÎÅ ×ÙÐÏÌÎÉÔØ ÐÏÉÓË ÒÅÇÕÌÑÒÎÏÇÏ ×ÙÒÁÖÅÎÉÑ + 4.8) ëÁË ÍÎÅ ×ÙÐÏÌÎÉÔØ ÐÏÉÓË ÒÅÇÕÌÑÒÎÏÇÏ ×ÙÒÁÖÅÎÉÑ É ÐÏÉÓË ÎÅÚÁ×ÉÓÉÍÙÊ ÏÔ ÒÅÇÉÓÔÒÁ ÂÕË× ÐÏÉÓË ÒÅÇÕÌÑÒÎÏÇÏ ×ÙÒÁÖÅÎÉÑ? ëÁË ÍÎÅ ÉÓÐÏÌØÚÏ×ÁÔØ ÉÎÄÅËÓ ÄÌÑ ÐÏÉÓËÁ ÎÅÚÁ×ÉÓÉÍÏÇÏ ÏÔ ÒÅÇÉÓÔÒÁ ÂÕË×?
- 4.13) ëÁË Ñ ÍÏÇÕ ÏÐÒÅÄÅÌÉÔØ, ÞÔÏ ÚÎÁÞÅÎÉÅ ÐÏÌÑ ÒÁ×ÎÏ - NULL × ËÁËÏÍ-ÌÉÂÏ ÚÁÐÒÏÓÅ?
- 4.14) ëÁËÏ×Ù ÏÔÌÉÞÉÑ ÍÅÖÄÕ ÒÁÚÎÙÍÉ ÓÉÍ×ÏÌØÎÙÍÉ + 4.9) ëÁË ÍÎÅ ÏÐÒÅÄÅÌÉÔØ, ÞÔÏ ÚÎÁÞÅÎÉÅ ÐÏÌÑ ÒÁ×ÎÏ + NULL × ËÁËÏÍ-ÌÉÂÏ ÚÁÐÒÏÓÅ? íÏÇÕ Ñ ÏÔÓÏÒÔÉÒÏ×ÁÔØ ÐÏÌÑ + NULL ÉÌÉ ÎÅÔ?
+ 4.10) ëÁËÏ×Ù ÏÔÌÉÞÉÑ ÍÅÖÄÕ ÒÁÚÎÙÍÉ ÓÉÍ×ÏÌØÎÙÍÉ ÔÉÐÁÍÉ?
- 4.15.1) ëÁË ÍÎÅ ÓÏÚÄÁÔØ ÐÏÌÅ serial/Ó-Á×ÔÏ-Õ×ÅÌÉÞÅÎÉÅÍ?
- 4.15.2) ëÁË ÍÎÅ ÐÏÌÕÞÉÔØ ÚÎÁÞÅÎÉÅ ÐÒÉ ×ÓÔÁ×ËÅ + 4.11.1) ëÁË ÍÎÅ ÓÏÚÄÁÔØ ÐÏÌÅ serial/Ó-Á×ÔÏ-Õ×ÅÌÉÞÅÎÉÅÍ?
+ 4.11.2) ëÁË ÍÎÅ ÐÏÌÕÞÉÔØ ÚÎÁÞÅÎÉÅ ÐÒÉ ×ÓÔÁ×ËÅ SERIAL?
- 4.15.3) îÅ ÍÏÖÅÔ ÌÉ ÐÏÌÕÞÉÔØÓÑ ÔÁË, ÞÔÏ + 4.11.3) îÅ ÍÏÖÅÔ ÌÉ ÐÏÌÕÞÉÔØÓÑ ÔÁË, ÞÔÏ ÉÓÐÏÌØÚÏ×ÁÎÉÅ currval() É nextval() ÐÒÉ×ÅÄÅÔ Ë ÚÁÃÉËÌÉÒÏ×ÁÎÉÀ Ó ÄÒÕÇÉÍÉ ÐÏÌØÚÏ×ÁÔÅÌÑÍÉ?
- 4.15.4) ðÏÞÅÍÕ ÞÉÓÌÁ ÉÚ ÍÏÅÊ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔÉ + 4.11.4) ðÏÞÅÍÕ ÞÉÓÌÁ ÉÚ ÍÏÅÊ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔÉ ÎÅ ÉÓÐÏÌØÚÕÀÔÓÑ ÓÎÏ×Á ÐÒÉ ÏÔÍÅÎÅ ÔÒÁÎÚÁËÃÉÉ? ðÏÞÅÍÕ ÓÏÚÄÁÀÔÓÑ ÒÁÚÒÙ×Ù ÐÒÉ ÎÕÍÅÒÁÃÉÉ × ËÏÌÏÎËÅ, ÇÄÅ Ñ ÉÓÐÏÌØÚÕÀ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔØ/SERIAL?
- 4.16) þÔÏ ÔÁËÏÅ OID? þÔÏ ÔÁËÏÅ - TID?
- 4.17) þÔÏ ÏÚÎÁÞÁÀÔ ÎÅËÏÔÏÒÙÅ ÔÅÒÍÉÎÙ ÉÓÐÏÌØÚÕÅÍÙÅ × - PostgreSQL?
- 4.18) ðÏÞÅÍÕ Ñ ÐÏÌÕÞÁÀ ÏÛÉÂËÕ "ERROR: Memory + 4.12) þÔÏ ÔÁËÏÅ OID? þÔÏ ÔÁËÏÅ + CTID?
+ 4.13) ðÏÞÅÍÕ Ñ ÐÏÌÕÞÁÀ ÏÛÉÂËÕ "ERROR: Memory exhausted in AllocSetAlloc()"?
- 4.19) ëÁË ÍÎÅ ÕÚÎÁÔØ, ËÁËÁÑ ×ÅÒÓÉÑ PostgreSQL + 4.14) ëÁË ÍÎÅ ÕÚÎÁÔØ, ËÁËÁÑ ×ÅÒÓÉÑ PostgreSQL ÚÁÐÕÝÅÎÁ?
- 4.20) ðÏÞÅÍÕ ÐÒÉ ÒÁÂÏÔÅ Ó ÍÏÉÍ ÂÏÌØÛÉÍ ÏÂßÅËÔÏÍ - Ñ ÐÏÌÕÞÁÀ ÏÛÉÂËÕ "invalid large obj descriptor"?
- 4.21) ëÁË ÍÎÅ ÓÏÚÄÁÔØ ËÏÌÏÎËÕ ËÏÔÏÒÁÑ ÐÏ ÕÍÏÌÞÁÎÉÀ + 4.15) ëÁË ÍÎÅ ÓÏÚÄÁÔØ ËÏÌÏÎËÕ ËÏÔÏÒÁÑ ÐÏ ÕÍÏÌÞÁÎÉÀ ÂÕÄÅÔ ÓÏÄÅÒÖÁÔØ ÔÅËÕÝÅÅ ×ÒÅÍÑ?
- 4.22) ðÏÞÅÍÕ ÍÏÉ ÐÏÄÚÁÐÒÏÓÙ, ÉÓÐÏÌØÚÕÀÝÉÅ - IN ÔÁË ÍÅÄÌÅÎÎÏ ÒÁÂÏÔÁÅÀÔ?
- 4.23) ëÁË ×ÙÐÏÌÎÉÔØ ×ÎÅÛÎÅÅ Ó×ÑÚÙ×ÁÎÉÅ?
- 4.24) ëÁË ×ÙÐÏÌÎÑÔØ ÚÁÐÒÏÓÙ, ÉÓÐÏÌØÚÕÀÝÉÅ ÎÅÓËÏÌØËÏ + 4.16) ëÁË ×ÙÐÏÌÎÉÔØ ×ÎÅÛÎÅÅ Ó×ÑÚÙ×ÁÎÉÅ?
+ 4.17) ëÁË ×ÙÐÏÌÎÑÔØ ÚÁÐÒÏÓÙ, ÉÓÐÏÌØÚÕÀÝÉÅ ÎÅÓËÏÌØËÏ ÂÁÚ ÄÁÎÎÙÈ?
- 4.25) ëÁË ÍÎÅ ×ÅÒÎÕÔØ ÉÚ ÆÕÎËÃÉÉ ÎÅÓËÏÌØËÏ ÚÁÐÉÓÅÊ?
- 4.26) ðÏÞÅÍÕ Ñ ÎÅ ÍÏÇÕ ÎÁÄÅÖÎÏ ÓÏÚÄÁ×ÁÔØ/ÕÄÁÌÑÔØ - ×ÒÅÍÅÎÎÙÅ ÔÁÂÌÉÃÙ × ÆÕÎËÃÉÑÈ PL/PgSQL?
- 4.27) ëÁËÉÅ ÏÐÃÉÉ ÛÉÆÒÏ×ÁÎÉÑ ÓÕÝÅÓÔ×ÕÀÔ?
- -

òÁÓÛÉÒÅÎÉÑ PostgreSQL

- 5.1) ñ ÎÁÐÉÓÁÌ ÆÕÎËÃÉÀ ÏÐÒÅÄÅÌÑÅÍÕÀ ÐÏÌØÚÏ×ÁÔÅÌÅÍ. - ëÏÇÄÁ Ñ ÚÁÐÕÓËÁÀ ÅÅ × psql, ÐÏÞÅÍÕ Ñ ÐÏÌÕÞÁÀ core dump?
- 5.2) ëÁË Ñ ÍÏÇÕ ×ÎÅÓÔÉ ÎÅËÏÔÏÒÙÅ ËÌÁÓÓÎÙÅ ÎÏ×ÙÅ - ÔÉÐÙ É ÆÕÎËÃÉÉ × PostgreSQL?
- 5.3) ëÁË ÍÎÅ ÎÁÐÉÓÁÔØ C ÆÕÎËÃÉÀ, ×ÏÚ×ÒÁÝÁÀÝÕÀ - ÚÁÐÉÓØ?
- 5.4) ñ ÉÚÍÅÎÉÌ ÉÓÈÏÄÎÙÊ ÆÁÊÌ. ðÏÞÅÍÕ ÐÏÓÌÅ - ÐÅÒÅËÏÍÐÉÌÑÃÉÉ Ñ ÎÅ ×ÉÖÕ ÉÚÍÅÎÅÎÉÊ?
- + 4.18) ëÁË ÍÎÅ ×ÅÒÎÕÔØ ÉÚ ÆÕÎËÃÉÉ ÎÅÓËÏÌØËÏ ÓÔÒÏË ÔÁÂÌÉÃÙ?
+ 4.19) ðÏÞÅÍÕ Ñ ÐÏÌÕÞÁÀ ÏÛÉÂËÕ "relation with OID #### + ÎÅ ÓÕÝÅÓÔ×ÕÅÔ", ËÏÇÄÁ ÏÂÒÁÝÁÀÔÓØ Ë ×ÒÅÍÅÎÎÙÍ ÔÁÂÌÉÃÁÍ × ÆÕÎËÃÉÑÈ PL/PgSQL?
+ 4.20) ëÁËÉÅ ÅÓÔØ ÒÅÛÅÎÉÑ ÄÌÑ ÒÅÐÌÉËÁÃÉÉ?
+ 4.21) ðÏÞÅÍÕ ÉÍÅÎÁ ÔÁÂÌÉÃÙ É ËÏÌÏÎÏË ÎÅ + ÒÁÓÐÏÚÎÁÀÔÓÑ × × ÍÏ£Í ÚÁÐÒÏÓÅ?
+

ïÂÝÉÅ ×ÏÐÒÏÓÙ

-

1.1) þÔÏ ÔÁËÏÅ PostgreSQL? ëÁË ÐÒÏÉÚÎÏÓÉÔÓÑ ÜÔÏ ÎÁÚ×ÁÎÉÅ?

- -

PostgreSQL ÐÒÏÉÚÎÏÓÉÔÓÑ Post-Gres-Q-L (ðÏÓÔ-çÒÅÓ-ëØÀ-üÌ). - ðÏ ÁÄÒÅÓÕ http://www.postgresql.org/postgresql.mp3 ÄÏÓÔÕÐÅÎ Ú×ÕËÏ×ÏÊ - ÆÁÊÌ Ó ÐÒÉÍÅÒÏÍ ËÁË ÜÔÏ ÎÕÖÎÏ ÐÒÏÉÚÎÏÓÉÔØ.

- -

PostgreSQL - ÜÔÏ ÒÁÓÛÉÒÅÎÉÅ óõâä POSTGRES (É ÐÏÜÔÏÍÕ ÉÎÏÇÄÁ - ÇÏ×ÏÒÑÔ ÐÒÏÓÔÏ "Postgres"), ÉÓÓÌÅÄÏ×ÁÔÅÌØÓËÉÊ - ÐÒÏÔÏÔÉÐ ÎÏ×ÏÇÏ ÐÏËÏÌÅÎÉÑ óõâä. - PostgreSQL ÏÄÎÏ×ÒÅÍÅÎÎÏ ÓÏÈÒÁÎÑÅÔ ÍÏÝÎÕÀ ÍÏÄÅÌØ ÄÁÎÎÙÈ É ÏÂÝÉÒÎÏÅ - ËÏÌÉÞÅÓÔ×Ï ÔÉÐÏ× POSTGRES, É ÚÁÍÅÝÁÅÔ ÑÚÙË ÚÁÐÒÏÓÏ× PostQuel ÎÁ - ÒÁÓÛÉÒÅÎÎÏÅ ÐÏÄÍÎÏÖÅÓÔ×Ï SQL. PostgreSQL - ÜÔÏ - Ó×ÏÂÏÄÎÏÅ É ÐÏÌÎÏÓÔØÀ ÏÔËÒÙÔÏÅ ÐÒÏÇÒÁÍÍÎÏÅ ÏÂÅÓÐÅÞÅÎÉÅ.

- -

òÁÚÒÁÂÏÔËÕ PostgreSQL ×ÙÐÏÌÎÑÅÔ ËÏÍÁÎÄÁ ÒÁÚÒÁÂÏÔÞÉËÏ×, ×ÓÅ ÕÞÁÓÔÎÉËÉ - ËÏÔÏÒÏÊ ÐÏÄÐÉÓÁÎÙ ÎÁ ÓÐÉÓÏË ÒÁÓÓÙÌËÉ ÒÁÚÒÁÂÏÔÞÉËÏ×. ÷ ÎÁÓÔÏÑÝÅÅ ×ÒÅÍÑ, - ÉÈ ËÏÏÒÄÉÎÁÔÏÒÏÍ Ñ×ÌÑÅÔÓÑ íÁÒË æÕÒÎØÅ (Marc G. Fournier) (scrappy@PostgreSQL.org). (óÍ. - ÓÅËÃÉÀ 1.6 Ï ÔÏÍ, ËÁË ÐÏÄËÌÀÞÉÔØÓÑ Ë ÒÁÚÒÁÂÏÔËÅ). - üÔÁ ËÏÍÁÎÄÁ ÔÅÐÅÒØ ÏÔ×ÅÞÁÅÔ ÚÁ ×ÓÀ ÒÁÚÒÁÂÏÔËÕ PostgreSQL. äÁÎÎÙÊ - ÐÒÏÅËÔ Ñ×ÌÑÅÔÓÑ ÏÂÝÅÓÔ×ÅÎÎÙÍ É ÎÅ ÕÐÒÁ×ÌÑÅÔÓÑ ËÁËÏÊ-ÌÉÂÏ ËÏÍÐÁÎÉÅÊ. - ðÏÄÒÏÂÎÏÓÔÉ ÓÍÏÔÒÉÔÅ × FAQ ÄÌÑ ÒÁÚÒÁÂÏÔÞÉËÏ×, - http://www.PostgreSQL.org/docs/faqs/FAQ_DEV.html +

1.1) þÔÏ ÔÁËÏÅ PostgreSQL? ëÁË ÐÒÏÉÚÎÏÓÉÔÓÑ ÜÔÏ ÎÁÚ×ÁÎÉÅ?

+ +

PostgreSQL ÐÒÏÉÚÎÏÓÉÔÓÑ Post-Gres-Q-L (ðÏÓÔ-çÒÅÓ-ëØÀ-üÌ), + ÔÁËÖÅ ÉÎÏÇÄÁ ÇÏ×ÏÒÑÔ ÐÒÏÓÔÏ Postgres. ÷Ù ÍÏÖÅÔÅ ÕÓÌÙÛÁÔØ ËÁË + ÜÔÏ ÐÒÏÉÚÎÏÓÉÔÓÑ Ó ÐÏÍÏÝØÀ ÁÕÄÉÏÆÁÊÌÁ, ËÏÔÏÒÙÊ ÄÏÓÔÕÐÅÎ × + ÆÏÒÍÁÔÅ MP3.

-

á×ÔÏÒÁÍÉ PostgreSQL 1.01 Ñ×ÌÑÀÔÓÑ üÎÄÒÀ à (Andrew Yu) É äÖÏÌÉ þÅÎ - (Jolly Chen). íÎÏÇÉÅ ÄÒÕÇÉÅ ×ÎÅÓÌÉ Ó×ÏÊ ×ËÌÁÄ × ÐÅÒÅÎÏÓ ÎÁ ÄÒÕÇÉÅ - ÐÌÁÔÆÏÒÍÙ, ÔÅÓÔÉÒÏ×ÁÎÉÅ, ÏÔÌÁÄËÕ É ÒÁÓÛÉÒÅÎÉÅ ÜÔÏÇÏ ËÏÄÁ. ðÅÒ×ÏÎÁÞÁÌØÎÙÊ - ËÏÄ Postgres, ÉÚ ËÏÔÏÒÏÇÏ ÐÏÑ×ÉÌÓÑ PostgreSQL, ÂÙÌ ÉÔÏÇÏÍ ÕÓÉÌÉÊ ÍÎÏÇÉÈ - ÁËÁÄÅÍÉÞÅÓËÉÈ ÓÔÕÄÅÎÔÏ×, ÎÅÁËÁÄÅÍÉÞÅÓËÉÈ ÓÔÕÄÅÎÔÏ× É ÍÎÏÖÅÓÔ×Á - ÒÁÚÎÙÈ ÐÒÏÇÒÁÍÍÉÓÔÏ×, ÒÁÂÏÔÁ×ÛÉÈ ÐÏÄ ÒÕËÏ×ÏÄÓÔ×ÏÍ ÐÒÏÆÅÓÓÏÒÁ - íÁÊËÌÁ óÔÏÕÎÂÒÅÊËÅÒÁ (Michael Stonebraker) × ëÁÌÉÆÏÒÎÉÊÓËÏÍ ÕÎÉ×ÅÒÓÉÔÅÔÅ, - âÅÒËÌÉ.

+

PostgreSQL - ÜÔÏ ÏÂßÅËÔÎÏ-ÒÅÌÑÃÉÏÎÎÁÑ ÓÉÓÔÅÍÁ ÕÐÒÁ×ÌÅÎÉÑ ÂÁÚÁÍÉ + ÄÁÎÎÙÈ (óõâä), ËÏÔÏÒÁÑ ÉÍÅÅÔ ÔÒÁÄÉÃÉÏÎÎÙÅ ×ÏÚÍÏÖÎÏÓÔÉ ËÏÍÍÅÒÞÅÓËÉÈ + óõâä Ó ÒÁÓÛÉÒÅÎÉÑÍÉ, ËÏÔÏÒÙÅ ÅÓÔØ × óõâä + ÎÏ×ÏÇÏ ÐÏËÏÌÅÎÉÑ. PostgreSQL - ÜÔÏ Ó×ÏÂÏÄÎÏÅ É ÐÏÌÎÏÓÔØÀ ÏÔËÒÙÔÏÅ + ÐÒÏÇÒÁÍÍÎÏÅ ÏÂÅÓÐÅÞÅÎÉÅ.

-

ðÅÒ×ÏÎÁÞÁÌØÎÏÅ ÉÍÑ, ÄÁÎÎÏÅ × âÅÒËÌÉ, ÂÙÌÏ Postgres. ëÏÇÄÁ - × 1995 ÇÏÄÕ ÂÙÌÁ ÄÏÂÁ×ÌÅÎÁ ÆÕÎËÃÉÏÎÁÌØÎÏÓÔØ SQL, - ÜÔÏ ÉÍÑ ÂÙÌÏ ÉÚÍÅÎÅÎÏ ÎÁ Postgres95. îÏ É ÜÔÏ ÉÍÑ ÂÙÌÏ ÉÚÍÅÎÅÎÏ - × ËÏÎÃÅ 1996 ÎÁ PostgreSQL.

+

òÁÚÒÁÂÏÔËÕ PostgreSQL ×ÙÐÏÌÎÑÅÔ ËÏÍÁÎÄÁ ÒÁÚÒÁÂÏÔÞÉËÏ×, ÒÁÚÂÒÏÓÁÎÎÁÑ + ÐÏ ×ÓÅÍÕ ÍÉÒÕ É Ó×ÑÚÁÎÎÁÑ ÞÅÒÅÚ éÎÔÅÒÎÅÔ. òÁÚÒÁÂÏÔËÁ Ñ×ÌÑÅÔÓÑ + ÏÂÝÅÓÔ×ÅÎÎÙÍ ÐÒÏÅËÔÏÍ É ÎÅ ÕÐÒÁ×ÌÑÅÔÓÑ ËÁËÏÊ-ÌÉÂÏ ËÏÍÐÁÎÉÅÊ. + ðÏÄÒÏÂÎÏÓÔÉ ÓÍÏÔÒÉÔÅ × FAQ ÄÌÑ ÒÁÚÒÁÂÏÔÞÉËÏ×, + + http://www.PostgreSQL.org/files/documentation/faqs/FAQ_DEV.html +

+ +

1.2) ëÁËÏ×Ù Á×ÔÏÒÓËÉÅ ÐÒÁ×Á ÎÁ PostgreSQL?

-

1.2) ëÁËÏ×Ù Á×ÔÏÒÓËÉÅ ÐÒÁ×Á ÎÁ PostgreSQL?

+

PostgreSQL ÒÁÓÐÒÏÓÔÒÁÎÑÅÔÓÑ ÐÏ ËÌÁÓÓÉÞÅÓËÏÊ ÌÉÃÅÎÚÉÉ BSD. üÔÁ + ÌÉÃÅÎÚÉÑ ÎÅ ÓÏÄÅÒÖÉÔ ÏÇÒÁÎÉÞÅÎÉÊ ÎÁ ÔÏ, ËÁË ÂÕÄÅÔ ÉÓÐÏÌØÚÏ×ÁÔØÓÑ + ÉÓÈÏÄÎÙÊ ËÏÄ. îÁÍ ÎÒÁ×ÉÔÓÑ ÜÔÁ ÌÉÃÅÎÚÉÑ É Õ ÎÁÓ ÎÅÔ ÎÁÍÅÒÅÎÉÊ Å£ + ÍÅÎÑÔØ.

-

PostgreSQL ÐÏÐÁÄÁÅÔ ÐÏÄ ÄÅÊÓÔ×ÉÅ ÓÌÅÄÕÀÝÅÇÏ COPYRIGHT:

+

÷ÏÔ ÜÔÁ ÌÉÃÅÎÚÉÑ BSD, ËÏÔÏÒÕÀ ÍÙ ÉÓÐÏÌØÚÕÅÍ:

óÉÓÔÅÍÁ õÐÒÁ×ÌÅÎÉÑ âÁÚÁÍÉ äÁÎÎÙÈ PostgreSQL

-

Portions copyright (c) 1996-2004, PostgreSQL Global Development - Group Portions Copyright (c) 1994-6 Regents of the University of +

Portions copyright (c) 1996-2005, PostgreSQL Global Development + Group Portions Copyright (c) 1994-1996 Regents of the University of California

ðÒÅÄÏÓÔÁ×ÌÑÀÔÓÑ ÐÒÁ×Á ÎÁ ÉÓÐÏÌØÚÏ×ÁÎÉÅ, ËÏÐÉÒÏ×ÁÎÉÅ, ÉÚÍÅÎÅÎÉÅ @@ -225,192 +182,133 @@ "ëáë åóôø" é ëáìéæïòîéêóëéê õîé÷åòóéôåô îå ïâñúáî ðòåäïóôá÷ìñôø óïðòï÷ïöäåîéå, ðïääåòöëõ, ïâîï÷ìåîéñ, òáóûéòåîéñ éìé éúíåîåîéñ.

-

÷ÙÛÅÉÚÌÏÖÅÎÎÏÅ Ñ×ÌÑÅÔÓÑ BSD ÌÉÃÅÎÚÉÅÊ, ËÌÁÓÓÉÞÅÓËÏÊ ÌÉÃÅÎÚÉÅÊ - ÐÒÏÇÒÁÍÍÎÏÇÏ ÏÂÅÓÐÅÞÅÎÉÑ Ó ÏÔËÒÙÔÙÍ ËÏÄÏÍ. üÔÁ ÌÉÃÅÎÚÉÑ ÎÅ ÎÁËÌÁÄÙ×ÁÅÔ - ÏÇÒÁÎÉÞÅÎÉÊ ÎÁ ÉÓÐÏÌØÚÏ×ÁÎÉÅ ÉÓÈÏÄÎÏÇÏ ËÏÄÁ. îÁÍ ÎÒÁ×ÉÔÓÑ ÜÔÁ ÌÉÃÅÎÚÉÑ - É ÍÙ ÎÅ ÓÏÂÉÒÁÅÍÓÑ Å£ ÍÅÎÑÔØ.

- -

1.3) îÁ ËÁËÉÈ Unix ÐÌÁÔÆÏÒÍÁÈ ÒÁÂÏÔÁÅÔ PostgreSQL?

+

1.3) îÁ ËÁËÉÈ ÐÌÁÔÆÏÒÍÁÈ ÒÁÂÏÔÁÅÔ PostgreSQL?

ïÂÙÞÎÏ, PostgreSQL ÍÏÖÅÔ ÒÁÂÏÔÁÔØ ÎÁ ÌÀÂÏÊ ÓÏ×ÒÅÍÅÎÎÏÊ ÐÌÁÔÆÏÒÍÅ ÓÏ×ÍÅÓÔÉÍÏÊ Ó Unix. ÷ ÉÎÓÔÒÕËÃÉÉ ÐÏ ÕÓÔÁÎÏ×ËÅ, ×Ù ÎÁÊÄÅÔÅ ÓÐÉÓÏË ÔÅÈ ÐÌÁÔÆÏÒÍ, ÎÁ ËÏÔÏÒÙÈ ÂÙÌÉ ÐÒÏ×ÅÄÅÎÙ ÔÅÓÔÏ×ÙÅ ÚÁÐÕÓËÉ PostgreSQL Ë ÍÏÍÅÎÔÕ ×ÙÈÏÄÁ ÄÁÎÎÏÊ ×ÅÒÓÉÉ.

-

1.4) óÕÝÅÓÔ×ÕÀÔ ÌÉ ×ÅÒÓÉÉ ÐÅÒÅÎÅÓÅÎÎÙÅ ÎÅ ÎÁ Unix - ÓÉÓÔÅÍÙ?

- -

îÁÞÉÎÁÑ Ó ×ÅÒÓÉÉ 8.0, PostgreSQL ÂÅÚ ×ÓÑËÉÈ ÕÈÉÝÒÅÎÉÊ ÒÁÂÏÔÁÅÔ ÎÁ - ÏÐÅÒÁÃÉÏÎÎÙÈ ÓÉÓÔÅÍÁÈ Microsoft Windows, ÏÓÎÏ×ÁÎÎÙÈ ÎÁ NT, ÔÁËÉÈ ËÁË - Win2000, WinXP É Win2003. ðÁËÅÔ ÉÎÓÔÁÌÌÑÔÏÒÁ ÄÏÓÔÕÐÅÎ ÐÏ ÁÄÒÅÓÕ +

PostgreSQL ÔÁËÖÅ ÒÁÂÏÔÁÅÔ ÎÁ ÏÐÅÒÁÃÉÏÎÎÙÈ ÓÉÓÔÅÍÁÈ Microsoft + Windows, ÏÓÎÏ×ÁÎÎÙÈ ÎÁ NT, ÔÁËÉÈ ËÁË Win2000, WinXP É Win2003. + ðÁËÅÔ ÉÎÓÔÁÌÌÑÔÏÒÁ ÄÏÓÔÕÐÅÎ ÐÏ ÁÄÒÅÓÕ http://pgfoundry.org/projects/pginstaller. ÷ÅÒÓÉÉ Windows, ÏÓÎÏ×ÁÎÎÙÅ ÎÁ MS-DOS (Win95, Win98, WinMe) ÍÏÇÕÔ ÚÁÐÕÓËÁÔØ PostgreSQL Ó ÐÏÍÏÝØÀ Cygwin.

ôÁËÖÅ ÓÕÝÅÓÔ×ÕÅÔ ×ÅÒÓÉÑ ÓÐÏÒÔÉÒÏ×ÁÎÎÁÑ ÐÏÄ Novell Netware 6 ÎÁ - http://forge.novell.com.

+ http://forge.novell.com, + É ×ÅÒÓÉÑ ÄÌÑ OS/2 (eComStation) ÎÁ + + http://hobbes.nmsu.edu/cgi-bin/h-search?sh=1&button=Search&key=postgreSQL&stype=all&sort=type&dir=%2F.

-

1.5) çÄÅ ÍÏÖÎÏ ×ÚÑÔØ PostgreSQL?

+

1.4) çÄÅ ÍÏÖÎÏ ×ÚÑÔØ PostgreSQL?

-

îÁÐÒÉÍÅÒ, ×ÏÓÐÏÌØÚÏ×Á×ÛÉÓØ ÁÎÏÎÉÍÎÙÍ ÄÏÓÔÕÐÏÍ ÎÁ ftp ÓÁÊÔ - PostgreSQL ftp://ftp.PostgreSQL.org/pub. - óÐÉÓÏË ÚÅÒËÁÌ ×Ù ÎÁÊÄÅÔÅ ÎÁ ÎÁÛÅÍ ÏÓÎÏ×ÎÏÍ ÓÁÊÔÅ.

+

þÅÒÅÚ ÂÒÁÕÚÅÒ, ÉÓÐÏÌØÚÕÑ + http://www.postgresql.org/ftp/ É ÞÅÒÅÚ ftp, ÉÓÐÏÌØÚÕÑ + ftp://ftp.PostgreSQL.org/pub/.

-

1.6) çÄÅ ÐÏÌÕÞÉÔØ ÐÏÄÄÅÒÖËÕ?

+

1.5) çÄÅ ÐÏÌÕÞÉÔØ ÐÏÄÄÅÒÖËÕ?

-

ïÓÎÏ×ÎÏÊ ÓÐÉÓÏË ÒÁÓÓÙÌËÉ: pgsql-general@PostgreSQL.org. - ÷ ÎÅÍ ÍÏÖÎÏ ÏÂÓÕÖÄÁÔØ ÌÀÂÙÅ ÔÅÍÙ, ËÁÓÁÀÝÉÅÓÑ PostgreSQL. þÔÏÂÙ - ÐÏÄÐÉÓÁÔØÓÑ, ÏÔÐÒÁרÔÅ ÐÉÓØÍÏ ÐÏ ÜÌÅËÔÒÏÎÎÏÊ ÐÏÞÔÅ, × ËÏÔÏÒÏÍ × - ÔÅÌÅ ÐÉÓØÍÁ (ÎÅ × ÔÅÍÅ) ÎÁÐÉÛÉÔÅ ÓÌÅÄÕÀÝÉÅ ÓÔÒÏËÉ:

-
-    subscribe
-    end
-
- -

ÎÁ ÁÄÒÅÓ pgsql-general-request@PostgreSQL.org.

- -

óÕÝÅÓÔ×ÕÅÔ ÄÁÊÖÅÓÔ ÓÐÉÓÏË. þÔÏÂÙ ÐÏÄÐÉÓÁÔØÓÑ ÎÁ ÎÅÇÏ, ÏÔÐÒÁרÔÅ - ÐÉÓØÍÏ ÐÏ ÜÌÅËÔÒÏÎÎÏÊ ÐÏÞÔÅ ÎÁ ÁÄÒÅÓ: pgsql-general-digest-request@PostgreSQL.org - É × ÔÅÌÅ ÐÉÓØÍÁ ÎÁÐÉÛÉÔÅ ÓÔÒÏÞËÉ ÓÔÒÏÞËÉ:

-
-    subscribe
-    end
-
- äÁÊÖÅÓÔÙ ÏÔÐÒÁ×ÌÑÀÔÓÑ ÐÏÄÐÉÓÞÉËÁÍ, ËÏÇÄÁ × ÏÓÎÏ×ÎÏÍ ÓÐÉÓËÅ ÒÁÓÓÙÌËÉ - ÎÁËÏÐÉÔÓÑ ÏËÏÌÏ 30 ËÉÌÏÂÁÊÔ ÓÏÏÂÝÅÎÉÊ. - -

äÏÓÔÕÐÅÎ É ÓÐÉÓÏË ÒÁÓÓÙÌËÉ ÓÏÏÂÝÅÎÉÊ Ï ÏÛÉÂËÁÈ. þÔÏÂÙ ÐÏÄÐÉÓÁÔØÓÑ ÎÁ ÜÔÏÔ - ÓÐÉÓÏË, ÏÔÐÒÁרÔÅ ÐÏ ÜÌÅËÔÒÏÎÎÏÊ ÐÏÞÔÅ ÐÉÓØÍÏ ÎÁ ÁÄÒÅÓ pgsql-bugs-request@PostgreSQL.org - É × ÔÅÌÅ ÐÉÓØÍÁ ÎÁÐÉÛÉÔÅ ÓÔÒÏÞËÉ ÓÔÒÏÞËÉ:

-
-    subscribe
-    end
-
- ôÁËÖÅ ÉÍÅÅÔÓÑ ÓÐÉÓÏË ÒÁÓÓÙÌËÉ Ó ÄÉÓËÕÓÓÉÑÍÉ ÒÁÚÒÁÂÏÔÞÉËÏ×. þÔÏÂÙ ÐÏÄÐÉÓÁÔØÓÑ - ÎÁ ÜÔÏÔ ÓÐÉÓÏË, ÏÔÐÒÁרÔÅ ÐÏ ÜÌÅËÔÒÏÎÎÏÊ ÐÏÞÔÅ ÐÉÓØÍÏ ÎÁ ÁÄÒÅÓ - pgsql-hackers-request@PostgreSQL.org - É × ÔÅÌÅ ÐÉÓØÍÁ ÎÁÐÉÛÉÔÅ ÓÔÒÏÞËÉ ÓÔÒÏÞËÉ: -
-    subscribe
-    end
-
- -

äÏÐÏÌÎÉÔÅÌØÎÙÅ ÓÐÉÓËÉ ÒÁÓÓÙÌËÉ É ÉÎÆÏÍÁÃÉÀ Ï PostgreSQL ÍÏÖÎÏ ÎÁÊÔÉ - ÎÁ ÄÏÍÁÛÎÅÊ ÓÔÒÁÎÉÞËÅ PostgreSQL ÐÏ ÁÄÒÅÓÕ:

- -
- http://www.PostgreSQL.org -
+

óÏÏÂÝÅÓÔ×Ï PostgreSQL ÐÒÅÄÏÓÔÁ×ÌÑÅÔ ÐÏÍÏÝØ ÍÎÏÖÅÓÔ×Õ ÐÏÌØÚÏ×ÁÔÅÌÅÊ + ÞÅÒÅÚ E-mail. ïÓÎÏ×ÎÏÊ web-ÓÁÊÔ ÄÌÑ ÐÏÄÐÉÓËÉ ÎÁ ÓÐÉÓËÉ ÒÁÓÓÙÌËÉ ÐÏ + E-mail ÜÔÏ: + http://www.postgresql.org/community/lists/. èÏÒÏÛÉÍ ÍÅÓÔÏÍ ÄÌÑ + ÔÏÇÏ, ÞÔÏÂÙ ÎÁÞÁÔØ ÚÁÄÁ×ÁÔØ ×ÏÐÒÏÓÙ Ñ×ÌÑÀÔÓÑ ÓÐÉÓËÉ general + (ÏÂÝÉÅ ×ÏÐÒÏÓÙ) ÉÌÉ bugs (ÏÛÉÂËÉ).

çÌÁ×ÎÙÍ IRC ËÁÎÁÌÏÍ Ñ×ÌÑÅÔÓÑ #postgreql, ÒÁÓÐÏÌÏÖÅÎÎÙÊ ÎÁ ÓÅÒ×ÅÒÅ Freenode (irc.freenode.net). þÔÏÂÙ - ÐÏÄËÌÀÞÉÔØÓÑ, ×Ù ÍÏÖÅÔÅ ÉÓÐÏÌØÚÏ×ÁÔØ ËÏÍÁÎÄÕ Unix + ÐÏÄËÌÀÞÉÔØÓÑ, ×Ù ÍÏÖÅÔÅ ÉÓÐÏÌØÚÏ×ÁÔØ × Unix ×ÙÚÏ× ÐÒÏÇÒÁÍÍÙ irc -c '#postgresql' "$USER" irc.freenode.net ÉÌÉ ÌÀÂÏÊ ÄÒÕÇÏÊ IRC ËÌÉÅÎÔ. îÁ ÜÔÏÍ ÖÅ ÓÅÒ×ÅÒÅ ÓÕÝÅÓÔ×ÕÀÔ ËÁÎÁÌÙ ÎÁ ÉÓÐÁÎÓËÏÍ (#postgresql-es) É ÆÒÁÎÃÕÚÓËÏÍ (#postgresqlfr) ÑÚÙËÁÈ. ôÁËÖÅ ÓÕÝÅÓÔ×ÕÅÔ ËÁÎÁÌ ÐÏ PostgreSQL ÎÁ ÓÅÒ×ÅÒÅ EFNet.

óÐÉÓÏË ËÏÍÍÅÒÞÅÓËÏÊ ÐÏÄÄÅÒÖËÉ ËÏÍÐÁÎÉÊ ÄÏÓÔÕÐÅÎ ÎÁ - http://techdocs.postgresql.org/companies.php.

+ + http://techdocs.postgresql.org/companies.php.

-

1.7) ëÁËÁÑ ÐÏÓÌÅÄÎÑÑ ×ÅÒÓÉÑ?

-

ðÏÓÌÅÄÎÉÊ ×ÙÐÕÓË PostgreSQL - ÜÔÏ ×ÅÒÓÉÑ 7.4.6

+

1.6) ëÁË ÍÎÅ ÓÏÏÂÝÉÔØ Ï ÏÛÉÂËÅ?

+ +

ðÏÓÅÔÉÔÅ ÓÔÒÁÎÉÞËÕ ÓÏ ÓÐÅÃÉÁÌØÎÏÊ ÆÏÒÍÏÊ ÏÔÞ£ÔÁ Ï ÏÛÉÂËÅ × + PostgreSQL ÐÏ ÁÄÒÅÓÕ: + + http://www.postgresql.org/support/submitbug.

+ +

ôÁËÖÅ ÐÒÏ×ÅÒØÔÅ ÎÁÌÉÞÉÅ ÂÏÌÅÅ Ó×ÅÖÅÊ ×ÅÒÓÉÉ PostgreSQL ÎÁ ÎÁÛÅÍ + FTP ÓÁÊÔÅ + ftp://ftp.PostgreSQL.org/pub/. + -

íÙ ÐÌÁÎÉÒÕÅÍ ×ÙÐÕÓËÁÔØ ÎÏ×ÙÅ ×ÅÒÓÉÉ ËÁÖÄÙÅ 6-8 ÍÅÓÑÃÅ×.

+

1.7) ëÁËÁÑ ÐÏÓÌÅÄÎÑÑ ×ÅÒÓÉÑ?

-

1.8) ëÁËÁÑ ÄÏËÕÍÅÎÔÁÃÉÑ ÉÍÅÅÔÓÑ × ÎÁÌÉÞÉÉ?

+

ðÏÓÌÅÄÎÉÊ ×ÙÐÕÓË PostgreSQL - ÜÔÏ ×ÅÒÓÉÑ 8.0.3

-

÷ ÄÉÓÔÒÉÂÕÔÉ× ×ËÌÀÞÁÀÔÓÑ ÒÁÚÌÉÞÎÙÅ ÒÕËÏ×ÏÄÓÔ×Á, ÓÔÒÁÎÉÃÙ - ÜÌÅËÔÒÏÎÎÏÇÏ ÒÕËÏ×ÏÄÓÔ×Á man É ÎÅËÏÔÏÒÙÅ ÍÁÌÅÎØËÉÅ ÔÅÓÔÏ×ÙÅ ÐÒÉÍÅÒÙ. - óÍÏÔÒÉÔÅ × ËÁÔÁÌÏÇ /doc. ÷Ù ÔÁËÖÅ ÍÏÖÅÔÅ ÐÒÏÓÍÁÔÒÉ×ÁÔØ - ÄÏËÕÍÅÎÔÁÃÉÀ × éÎÔÅÒÎÅÔ ÐÏ ÁÄÒÅÓÕ - http://www.PostgreSQL.org/docs.

+

íÙ ÐÌÁÎÉÒÕÅÍ ×ÙÐÕÓËÁÔØ ÎÏ×ÙÅ ÓÔÁÒÛÉÅ ×ÅÒÓÉÉ ËÁÖÄÙÊ ÇÏÄ, + Á ÍÌÁÄÛÉÅ ×ÅÒÓÉÉ ËÁÖÄÙÅ ÎÅÓËÏÌØËÏ ÍÅÓÑÃÅ×.

-

óÕÝÅÓÔ×ÕÅÔ Ä×Å ËÎÉÇÉ ÐÏ PostgreSQL ÄÏÓÔÕÐÎÙÅ ÐÏ ÁÄÒÅÓÁÍ http://www.PostgreSQL.org/docs/awbook.html - É http://www.commandprompt.com/ppbook/. - óÐÉÓÏË ËÎÉÇ ÐÏ PostgreSQL, ËÏÔÏÒÙÅ ÍÏÖÎÏ ËÕÐÉÔØ ÄÏÓÔÕÐÅÎ ÐÏ ÁÄÒÅÓÕ - http://techdocs.postgresql.org/techdocs/bookreviews.php. - ëÒÏÍÅ ÔÏÇÏ, ÐÏ ÁÄÒÅÓÕ http://techdocs.PostgreSQL.org/ - ×Ù ÍÏÖÅÔÅ ÎÁÊÔÉ ËÏÌÌÅËÃÉÀ ÔÅÈÎÉÞÅÓËÉÈ ÓÔÁÔÅÊ ÐÏÓ×ÑÝÅÎÎÙÈ PostgreSQL.

+

1.8) ëÁËÁÑ ÄÏËÕÍÅÎÔÁÃÉÑ ÉÍÅÅÔÓÑ × ÎÁÌÉÞÉÉ?

+

PostgreSQL ÓÏÄÅÒÖÉÔ ÍÎÏÇÏ ÄÏËÕÍÅÎÔÁÃÉÉ, ×ËÌÀÞÁÑ ÂÏÌØÛÏÅ ÒÕËÏ×ÏÄÓÔ×Ï, + ÓÔÒÁÎÉÃÙ ÜÌÅËÔÒÏÎÎÏÇÏ ÒÕËÏ×ÏÄÓÔ×Á man É ÎÅËÏÔÏÒÙÅ ÍÁÌÅÎØËÉÅ ÔÅÓÔÏ×ÙÅ + ÐÒÉÍÅÒÙ. óÍÏÔÒÉÔÅ × ËÁÔÁÌÏÇ /doc. ÷Ù ÔÁËÖÅ ÍÏÖÅÔÅ ÐÒÏÓÍÁÔÒÉ×ÁÔØ + ÄÏËÕÍÅÎÔÁÃÉÀ × éÎÔÅÒÎÅÔ ÐÏ ÁÄÒÅÓÕ + http://www.PostgreSQL.org/docs.

-

psql ÉÍÅÅÔ ÎÅÓËÏÌØËÏ ÐÒÅËÒÁÓÎÙÈ ËÏÍÁÎÄ \d ÄÌÑ ÏÔÏÂÒÁÖÅÎÉÑ - ÉÎÆÏÒÍÁÃÉÉ ÐÏ ÔÉÐÁÍ, ÏÐÅÒÁÔÏÒÁÍ, ÆÕÎËÃÉÑÍ, ÁÇÒÅÇÁÔÁÍ É Ô.Ä.

+

óÕÝÅÓÔ×ÕÅÔ Ä×Å ËÎÉÇÉ ÐÏ PostgreSQL ÄÏÓÔÕÐÎÙÅ ÐÏ ÁÄÒÅÓÁÍ http://www.PostgreSQL.org/docs/books/awbook.html + É http://www.commandprompt.com/ppbook/. + åÓÔØ ÎÅÓËÏÌØËÏ ËÎÉÇ ÐÏ PostgreSQL, ËÏÔÏÒÙÅ ÍÏÖÎÏ ËÕÐÉÔØ. + ïÄÎÕ ÉÚ ÎÁÉÂÏÌÅÅ ÐÏÐÕÌÑÒÎÙÈ ÎÁÐÉÓÁÌ ëÏÒÒÉ äÕÇÌÁÓ (Korry Douglas). + óÐÉÓÏË ÏÂÚÏÒÏ× ÐÏ ÜÔÉÍ ËÎÉÇÁÍ ÄÏÓÔÕÐÅÎ ÐÏ ÁÄÒÅÓÕ + http://techdocs.postgresql.org/techdocs/bookreviews.php. + ëÒÏÍÅ ÔÏÇÏ, ÐÏ ÁÄÒÅÓÕ http://techdocs.PostgreSQL.org/ + ×Ù ÍÏÖÅÔÅ ÎÁÊÔÉ ËÏÌÌÅËÃÉÀ ÔÅÈÎÉÞÅÓËÉÈ ÓÔÁÔÅÊ ÐÏÓ×ÑÝÅÎÎÙÈ PostgreSQL.

+ +

ëÌÉÅÎÔ ËÏÍÁÎÄÎÏÊ ÓÔÒÏËÉ psql ÉÍÅÅÔ ÎÅÓËÏÌØËÏ ËÏÍÁÎÄ \d ÄÌÑ + ÏÔÏÂÒÁÖÅÎÉÑ ÉÎÆÏÒÍÁÃÉÉ ÐÏ ÔÉÐÁÍ, ÏÐÅÒÁÔÏÒÁÍ, ÆÕÎËÃÉÑÍ, ÁÇÒÅÇÁÔÁÍ É Ô.Ä. - + ÉÓÐÏÌØÚÕÊÔÅ \? ÄÌÑ ÐÏÌÕÞÅÎÉÑ ÓÐÉÓËÁ ÄÏÓÔÕÐÎÙÈ ËÏÍÁÎÄ.

îÁÛ ÓÁÊÔ ÓÏÄÅÒÖÉÔ ÅÝÅ ÂÏÌØÛÅ ÉÎÆÏÒÍÁÃÉÉ.

-

1.9) ëÁË ÎÁÊÔÉ ÉÎÆÏÒÍÁÃÉÀ Ï ÉÚ×ÅÓÔÎÙÈ ÏÛÉÂËÁÈ - ÉÌÉ ÏÔÓÕÔÓÔ×ÕÀÝÉÈ ×ÏÚÍÏÖÎÏÓÔÑÈ?

+

1.9) ëÁË ÎÁÊÔÉ ÉÎÆÏÒÍÁÃÉÀ Ï ÉÚ×ÅÓÔÎÙÈ ÏÛÉÂËÁÈ + ÉÌÉ ÏÔÓÕÔÓÔ×ÕÀÝÉÈ ×ÏÚÍÏÖÎÏÓÔÑÈ?

PostgreSQL ÐÏÄÄÅÒÖÉ×ÁÅÔ ÒÁÓÛÉÒÅÎÎÙÊ ÐÏÄËÌÁÓÓ SQL-92. - óÍÏÔÒÉÔÅ ÎÁÛ ÓÐÉÓÏË TODO + óÍÏÔÒÉÔÅ ÎÁÛ ÓÐÉÓÏË TODO ÎÁ ÐÒÅÄÍÅÔ ÉÚ×ÅÓÔÎÙÈ ÏÛÉÂÏË, ÏÔÓÕÔÓÔ×ÕÀÝÉÈ ×ÏÚÍÏÖÎÏÓÔÅÊ É ÂÕÄÕÝÉÈ ÐÌÁÎÏ×.

-

1.10) ëÁË ÍÎÅ ÎÁÕÞÉÔØÓÑ SQL?

- -

ëÎÉÇÁ ÐÏ PostgreSQL ÎÁ http://www.PostgreSQL.org/docs/awbook.html - ÎÁÕÞÉÔ SQL. óÕÝÅÓÔ×ÕÅÔ ÄÒÕÇÁÑ ËÎÉÇÁ ÐÏ PostgreSQL ÎÁ - - http://www.commandprompt.com/ppbook. - åÓÔØ ÐÒÅËÒÁÓÎÙÊ ÕÞÅÂÎÉË ÎÁ http://www.intermedia.net/support/sql/sqltut.shtm, - ÎÁ - http://ourworld.compuserve.com/homepages/graeme_birchall/HTM_COOK.HTM, - É ÎÁ http://sqlcourse.com.

- -

åÝÅ ÏÄÉÎ ÕÞÅÂÎÉË - ÜÔÏ ËÎÉÇÁ "Teach Yourself SQL in 21 Days, Second Edition" - (ïÓ×ÏÊ ÓÁÍÏÓÔÏÑÔÅÌØÎÏ SQL ÚÁ 21 ÄÅÎØ, ÷ÔÏÒÁÑ ÒÅÄÁËÃÉÑ) - ÎÁ http://members.tripod.com/er4ebus/sql/index.htm

+

1.10) ëÁË ÍÎÅ ÎÁÕÞÉÔØÓÑ SQL?

-

íÎÏÇÉÍ ÉÚ ÎÁÛÉÈ ÐÏÌØÚÏ×ÁÔÅÌÅÊ ÎÒÁ×ÉÔÓÑ ËÎÉÇÁ +

÷Ï-ÐÅÒ×ÙÈ, ×ÏÚØÍÉÔÅ ÏÄÎÕ ÉÚ ËÎÉÇ ÐÏ PostgreSQL, Ï ËÏÔÏÒÙÈ ÇÏ×ÏÒÉÌÏÓØ + ×ÙÛÅ. åÝÅ ÏÄÉÎ ÕÞÅÂÎÉË - ÜÔÏ ËÎÉÇÁ "Teach Yourself SQL in 21 Days, + Second Edition" (ïÓ×ÏÊ ÓÁÍÏÓÔÏÑÔÅÌØÎÏ SQL ÚÁ 21 ÄÅÎØ, ÷ÔÏÒÁÑ ÒÅÄÁËÃÉÑ) + ÎÁ + http://members.tripod.com/er4ebus/sql/index.htm. + íÎÏÇÉÍ ÉÚ ÎÁÛÉÈ ÐÏÌØÚÏ×ÁÔÅÌÅÊ ÎÒÁ×ÉÔÓÑ ËÎÉÇÁ The Practical SQL Handbook, Bowman, Judith S., et al., Addison-Wesley. äÒÕÇÉÍ ÎÒÁ×ÉÔÓÑ The Complete Reference SQL, Groff et al., McGraw-Hill.

-

1.11) òÅÛÅÎÁ ÌÉ × PostgreSQL ÐÒÏÂÌÅÍÁ 2000-ÇÏ ÇÏÄÁ (Y2K)?

- -

äÁ, ÍÙ ÌÅÇËÏ ÒÁÂÏÔÁÅÍ Ó ÄÁÔÁÍÉ ÐÏÓÌÅ 2000 ÇÏÄÁ É ÐÅÒÅÄ 2000 ÇÏÄÏÍ.

- -

1.12) ëÁË ÐÒÉÓÏÅÄÉÎÉÔÓÑ Ë ËÏÍÁÎÄÅ ÒÁÚÒÁÂÏÔÞÉËÏ×?

- -

äÌÑ ÎÁÞÁÌÁ, ÓËÁÞÁÊÔÅ ÐÏÓÌÅÄÎÀÀ ×ÅÒÓÉÀ ÉÓÈÏÄÎÙÈ ÔÅËÓÔÏ× É ÐÒÏÞÔÉÔÅ - ÄÏËÕÍÅÎÔÁÃÉÀ ÒÁÚÒÁÂÏÔÞÉËÏ× PostgreSQL ÎÁ ÎÁÛÅÍ ÓÁÊÔÅ ÉÌÉ × ÄÉÓÔÒÉÂÕÔÉ×Å. - úÁÔÅÍ, ÐÏÄÐÉÛÉÔÅÓØ ÎÁ ÓÐÉÓËÉ ÒÁÓÓÙÌËÉ pgsql-hackers É - pgsql-patches. äÁÌÅÅ, ÏÔÐÒÁ×ÌÑÊÔÅ ÉÓÐÒÁ×ÌÅÎÉÑ (patches) ×ÙÓÏËÏÇÏ - ËÁÞÅÓÔ×Á × ÓÐÉÓÏË pgsql-patches.

- -

óÕÝÅÓÔ×ÕÅÔ ÏÇÒÁÎÉÞÅÎÎÙÊ ÓÐÉÓÏË ÌÀÄÅÊ, ËÏÔÏÒÙÊ ÉÍÅÀÔ ÐÒÉ×ÅÌÅÇÉÀ - ×ÎÏÓÉÔØ ÉÚÍÅÎÅÎÉÑ × CVS ÁÒÈÉ× PostgreSQL. ëÁÖÄÙÊ - ÉÚ ÜÔÉÈ ÌÀÄÅÊ × Ó×ÏÅ ×ÒÅÍÑ ÏÔÐÒÁ×ÉÌ ÔÁË ÍÎÏÇÏ ×ÙÓÏËÏËÁÞÅÓÔ×ÅÎÎÙÈ ÉÓÐÒÁ×ÌÅÎÉÊ, - ÞÔÏ ÉÈ ÂÙÌÏ ÎÅ×ÏÚÍÏÖÎÏ ÏÓÔÁ×ÉÔØ ÂÅÚ ×ÎÉÍÁÎÉÑ É ÏÎÉ ÂÙÌÉ ÕÄÏÓÔÏÅÎÙ - ÐÒÅ×ÉÌÅÇÉÉ ×ÎÏÓÉÔØ ÉÚÍÅÎÅÎÉÑ, É ÍÙ Õ×ÅÒÅÎÙ, ÞÔÏ ÔÅ ÉÓÐÒÁ×ÌÅÎÉÑ, ËÏÔÏÒÙÅ - ÏÎÉ ×ÎÅÓÕÔ ÂÕÄÕÔ ×ÙÓÏËÏÇÏ ËÁÞÅÓÔ×Á.

+ åÓÔØ ÐÒÅËÒÁÓÎÙÊ ÕÞÅÂÎÉË ÎÁ http://www.intermedia.net/support/sql/sqltut.shtm, + ÎÁ + http://ourworld.compuserve.com/homepages/graeme_birchall/HTM_COOK.HTM, + É ÎÁ http://sqlcourse.com.

-

1.13) ëÁË ÏÔÐÒÁ×ÉÔØ ÓÏÏÂÝÅÎÉÅ Ï ÏÛÉÂËÅ??

-

úÁÐÏÌÎÉÔÅ ÆÏÒÍÕ ÏÂ ÏÛÉÂËÅ × PostgreSQL, ËÏÔÏÒÁÑ ÒÁÓÐÏÌÏÖÅÎÁ ÎÁ - http://www.postgresql.org/bugform.html.

+

1.11) ëÁË ÐÒÉÓÏÅÄÉÎÉÔÓÑ Ë ËÏÍÁÎÄÅ ÒÁÚÒÁÂÏÔÞÉËÏ×?

-

ôÁËÖÅ ÎÅ ÚÁÂÕÄØÔÅ ÐÏÓÍÏÔÒÅÔØ ÎÁ ftp://ftp.PostgreSQL.org/pub - ÎÁ ÐÒÅÄÍÅÔ ÂÏÌÅÅ Ó×ÅÖÉÈ ×ÅÒÓÉÊ PostgreSQL ÉÌÉ ÚÁÐÌÁÔ.

+

óÍÏÔÒÉÔÅ + FAQ ÄÌÑ ÒÁÚÒÁÂÏÔÞÉËÏ×.

-

1.14) ëÁË ÓÒÁ×ÎÉ×ÁÔØ PostgreSQL Ó ÄÒÕÇÉÍÉ - óõâä?

+ +

1.12) ëÁË ÓÒÁ×ÎÉ×ÁÔØ PostgreSQL Ó ÄÒÕÇÉÍÉ + óõâä?

óÕÝÅÓÔ×ÕÅÔ ÎÅÓËÏÌØËÏ ÍÅÔÏÄÏ× ÓÒÁ×ÎÅÎÉÑ ÐÒÏÇÒÁÍÍÎÏÇÏ ÏÂÅÓÐÅÞÅÎÉÑ: @@ -431,24 +329,10 @@

ðÒÏÉÚ×ÏÄÉÔÅÌØÎÏÓÔØ
-
PostgreSQL ÉÍÅÅÔ ÐÒÏÉÚ×ÏÄÉÔÅÌØÎÏÓÔØ ÓÈÏÄÎÕÀ Ó ÄÒÕÇÉÍÉ ËÏÍÍÅÒÞÅÓËÉÍÉ - óõâä É Ó óõâä Ó ÏÔËÒÙÔÙÍ ÉÓÈÏÄÎÙÍ ËÏÄÏÍ, × ËÁËÉÈ-ÔÏ ÁÓÐÅËÔÁÈ ÒÁÂÏÔÁÑ - ÂÙÓÔÒÅÅ ÞÅÍ ÏÎÉ, × ËÁËÉÈ-ÔÏ ÍÅÄÌÅÎÅÅ. ÷ ÓÒÁ×ÎÅÎÉÉ Ó MySQL ÉÌÉ ÏÂÙÄÅÎÎÅÅ - óõâä, ÍÙ ÂÙÓÔÒÅÅ, ËÏÇÄÁ ÐÏÌØÚÏ×ÁÔÅÌÅÊ ÍÎÏÇÏ, Á ÔÁËÖÅ ÎÁ ËÏÍÐÌÅËÓÎÙÈ - ÚÁÐÒÏÓÁÈ É ÞÔÅÎÉÉ/ÚÁÐÉÓÉ ÚÁÇÒÕÚËÉ ÚÁÐÒÏÓÁ. MySQL ÂÙÓÔÒÅÅ ÄÌÑ ÐÒÏÓÔÙÈ - SELECT ÚÁÐÒÏÓÏ×, ×ÙÐÏÌÎÑÅÍÙÈ ÎÅÂÏÌØÛÉÍ ËÏÌÉÞÅÓÔ×ÏÍ ÐÏÌØÚÏ×ÁÔÅÌÅÊ. - é ÒÁÚÕÍÅÅÔÓÑ, MySQL ÎÅ ÉÍÅÅÔ ËÁËÉÈ-ÌÉÂÏ ×ÏÚÍÏÖÎÏÓÔÅÊ ÉÚ - ÐÅÒÅÞÉÓÌÅÎÙÈ ×ÙÛÅ, × ÓÅËÃÉÉ ÷ÏÚÍÏÖÎÏÓÔÉ. - íÙ ÄÅÌÁÅÍ ÕÐÏÒ ÎÁ ÎÁÄÅÖÎÏÓÔØ É ÒÁÓÛÉÒÅÎÎÙÅ ×ÏÚÍÏÖÎÏÓÔÉ, ÎÏ ÍÙ ÔÁËÖÅ - ÐÒÏÄÏÌÖÁÅÍ Õ×ÅÌÉÞÉ×ÁÔØ ÐÒÏÉÚ×ÏÄÉÔÅÌØÎÏÓÔØ Ó ËÁÖÄÙÍ ×ÙÐÕÓËÏÍ. óÕÝÅÓÔ×ÕÅÔ - ÉÎÔÅÒÅÓÎÁÑ ÓÔÒÁÎÉÞËÁ × éÎÔÅÒÎÅÔ, ÓÒÁ×ÎÉ×ÁÀÝÁÑ PostgreSQL É MySQL ÎÁ - - http://openacs.org/philosophy/why-not-mysql.html. ôÁËÖÅ, MySQL - - ÜÔÏ ËÏÍÐÁÎÉÑ, ËÏÔÏÒÁÑ ÒÁÓÐÒÏÓÔÒÁÎÑÅÔ Ó×ÏÊ ÐÒÏÄÕËÔ ÞÅÒÅÚ ÏÔËÒÙÔÙÅ - ÉÓÈÏÄÎÙÅ ÔÅËÓÔÙ É ÔÒÅÂÕÅÔ ËÏÍÍÅÒÞÅÓËÕÀ ÌÉÃÅÎÚÉÀ ÎÁ ÚÁËÒÙÔÏÅ - ÐÒÏÇÒÁÍÍÎÏÅ ÏÂÅÓÐÅÞÅÎÉÅ, Á ÎÅ ÓÏÏÂÝÅÓÔ×Ï ÒÁÚÒÁÂÏÔÞÉËÏ× Ó ÏÔËÒÙÔÙÍÉ - ÉÓÈÏÄÎÙÍÉ ÔÅËÓÔÁÍÉ, ËÁË PostgreSQL.
- +
ðÒÏÉÚ×ÏÄÉÔÅÌØÎÏÓÔØ PostgreSQL ÓÈÏÄÎÁ Ó ÄÒÕÇÉÍÉ ËÏÍÍÅÒÞÅÓËÉÍÉ + óõâä É Ó óõâä Ó ÏÔËÒÙÔÙÍ ÉÓÈÏÄÎÙÍ ËÏÄÏÍ. ÷ ËÁËÉÈ-ÔÏ ×ÅÝÁÈ ÍÙ ÂÙÓÔÒÅÅ, + × ËÁËÉÈ-ÔÏ ÍÅÄÌÅÎÎÅÅ. îÁÛÁ ÐÒÏÉÚ×ÏÄÉÔÅÌØÎÏÓÔÉ ÏÂÙÞÎÏ +/-10% ÐÏ + ÓÒÁ×ÎÅÎÉÀ Ó ÄÒÕÇÉÍÉ óõâä.
@@ -475,7 +359,7 @@ ÐÏÌØÚÏ×ÁÔÅÌÅÊ, ÒÕËÏ×ÏÄÓÔ×ÁÍ É ÉÓÈÏÄÎÙÍ ÔÅËÓÔÁÍ ÞÁÓÔÏ ÄÅÌÁÀÔ ÐÏÄÄÅÒÖËÕ PostgreSQL ÐÒÅ×ÏÓÈÏÄÑÝÅÊ ÄÒÕÇÉÅ óõâä. óÕÝÅÓÔ×ÕÅÔ ËÏÍÍÅÒÞÅÓËÁÑ ÐÏÄÄÅÒÖËÁ ÐÏ ÒÅÚÕÌØÔÁÍ ×ÏÚÎÉËÛÉÈ ÉÎÃÉÄÅÎÔÏ×, ËÏÔÏÒÁÑ - ÄÏÓÔÕÐÎÁ ÄÌÑ ÔÅÈ ËÏÍÕ ÏÎÁ ÎÕÖÎÁ. (óÍÏÔÒÉÔÅ óÅËÃÉÀ 1.6.)
+ ÄÏÓÔÕÐÎÁ ÄÌÑ ÔÅÈ ËÏÍÕ ÏÎÁ ÎÕÖÎÁ. (óÍÏÔÒÉÔÅ óÅËÃÉÀ 1.5.)

@@ -489,318 +373,154 @@ -

1.15) ëÁË ÏËÁÚÁÔØ ÆÉÎÁÎÓÏ×ÕÀ ÐÏÍÏÝØ - PostgreSQL?

- -

PostgreSQL ÉÍÅÅÔ ÏÄÎÏÒÁÎÇÏ×ÕÀ ÉÎÆÒÁÓÔÒÕËÔÕÒÕ Ó ÔÏÇÏ ÓÁÍÏÇÏ ×ÒÅÍÅÎÉ - ËÁË ÍÙ ÎÁÞÁÌÉ ÒÁÚÒÁÂÏÔËÕ × 1996 ÇÏÄÕ. íÙ ÄÏÌÖÎÙ ÂÌÁÇÏÄÁÒÉÔØ ÚÁ - ÜÔÏ íÁÒËÁ æÕÒÎØÅ (Marc Fournier), ËÏÔÏÒÙÊ ÓÏÚÄÁÌ ÜÔÕ ÉÎÆÒÁÓÔÒÕËÔÕÒÕ É - ÕÐÒÁ×ÌÑÅÔ ÅÊ ÎÁ ÐÒÏÔÑÖÅÎÉÉ ÜÔÉÈ ÌÅÔ.

- -

ëÁÞÅÓÔ×ÅÎÎÁÑ ÉÎÆÒÁÓÔÒÕËÔÕÒÁ ÏÞÅÎØ ×ÁÖÎÁ ÄÌÑ ÐÒÏÅËÔÏ× Ó ÏÔËÒÙÔÙÍ - ÉÓÈÏÄÎÙÍ ËÏÄÏÍ. ïÎÁ ÐÒÅÄÏÔ×ÒÁÝÁÅÔ ÒÁÓËÏÌÙ, ËÏÔÏÒÙÅ ÍÏÇÕÔ ÓÉÌØÎÏ - ÚÁÄÅÒÖÁÔØ ÐÏÓÔÕÐÁÔÅÌØÎÏÅ Ä×ÉÖÅÎÉÅ ÐÒÏÅËÔÁ.

- -

òÁÚÕÍÅÅÔÓÑ, ÜÔÁ ÉÎÆÒÁÓÔÒÕËÔÕÒÁ ÎÅ Ñ×ÌÑÅÔÓÑ ÄÅÛÅ×ÏÊ. óÕÝÅÓÔ×ÕÅÔ - ÎÅËÏÔÏÒÏÅ ËÏÌÉÞÅÓÔ×Ï ÅÖÅÍÅÓÑÞÎÙÈ É ÏÄÎÏÒÁÚÏ×ÙÈ ÒÁÓÈÏÄÏ×, ËÏÔÏÒÙÅ - ÔÒÅÂÕÀÔ ÄÅÎÅÇ. åÓÌÉ ×Ù ÉÌÉ ×ÁÛÁ ËÏÍÐÁÎÉÑ ÉÍÅÅÔ ÄÅÎØÇÉ, ËÏÔÏÒÙÅ - ÍÏÖÎÏ ÐÅÒÅÄÁÔØ × ÐÏÍÏÝØ ÎÁÛÉÍ ÕÓÉÌÉÑÍ, ÐÏÖÁÌÕÊÓÔÁ ÐÏÓÅÔÉÔÅ ÓÔÒÁÎÉÞËÕ - - https://store.pgsql.com/shopping/ - É ÓÄÅÌÁÊÔÅ Ó×ÏÊ ×ËÌÁÄ.

- -

èÏÔÑ ÎÁ ÓÔÒÁÎÉÞËÅ ÇÏ×ÏÒÉÔÓÑ Ï PostgreSQL, Inc, ÐÕÎËÔ - "contributions" ÐÒÅÄÎÁÚÎÁÞÅÎ ÉÓËÌÀÞÉÔÅÌØÎÏ ÄÌÑ ÐÏÄÄÅÒÖËÉ ÐÒÏÅËÔÁ - PostgreSQL É ÎÅ ÐÅÒÅÄÁÅÔÓÑ ËÁËÏÊ-ÌÉÂÏ ËÏÎËÒÅÔÎÏÊ ËÏÍÐÁÎÉÉ. - åÓÌÉ ÈÏÔÉÔÅ, ÔÏ ÍÏÖÅÔÅ ÜÔÏ ÐÒÏ×ÅÒÉÔØ, ÎÁÐÉÓÁ× ÐÉÓØÍÏ ÎÁ ËÏÎÔÁËÔÎÙÊ ÁÄÒÅÓ.

-
-

åÓÌÉ Õ ×ÁÓ ÅÓÔØ ÉÓÔÏÒÉÉ ÐÏ ÕÓÐÅÛÎÏÍÕ ÐÒÉÍÅÎÅÎÉÀ PostgreSQL, ÐÏÖÁÌÕÊÓÔÁ, - ÐÒÉÓÙÌÁÊÔÅ ÉÈ ÎÁ ÎÁÛ ÓÁÊÔ ÐÒÏÐÁÇÁÎÄÙ - http://advocacy.postgresql.org.

- -

÷ÏÐÒÏÓÙ ÐÏÌØÚÏ×ÁÔÅÌÅÊ ÐÏ ËÌÉÅÎÔÓËÏÊ ÞÁÓÔÉ

+

1.13) ëÔÏ ÕÐÒÁ×ÌÑÅÔ PostgreSQL?

+ +

åÓÌÉ ×Ù ÉÝÉÔÅ ËÁËÏÇÏ-ÔÏ ÏÓÏÂÅÎÎÏÇÏ ÞÅÌÏ×ÅËÁ, ÃÅÎÔÒÁÌØÎÙÊ + ËÏÍÉÔÅÔ ÉÌÉ ÕÐÒÁ×ÌÑÀÝÕÀ ËÏÍÐÁÎÉÀ, ÔÏ ÎÁÐÒÁÓÎÏ --- ÉÈ ÎÅÔ. + õ ÎÁÓ ÅÓÔØ ÑÄÒÏ ËÏÍÉÔÅÔÁ É ÒÁÚÒÁÂÏÔÞÉËÏ×, ÒÁÂÏÔÁÀÝÉÈ Ó CVS, + ÎÏ ÜÔÉ ÇÒÕÐÐÙ ÓÌÕÖÁÔ ÂÏÌØÛÅ ÄÌÑ ÁÄÍÉÎÉÓÔÒÁÔÉ×ÎÙÈ ÃÅÌÅÊ, ÞÅÍ + ÄÌÑ ÕÐÒÁ×ÌÅÎÉÑ. ðÒÏÅËÔ ÎÁÐÒÑÍÕÀ ÆÕÎËÃÉÏÎÉÒÕÅÔ Ó ÐÏÍÏÝØÀ + ÓÏÏÂÝÅÓÔ×Á ÒÁÚÒÁÂÏÔÞÉËÏ× É ÐÏÌØÚÏ×ÁÔÅÌÅÊ, Ë ËÏÔÏÒÏÍÕ ÍÏÖÅÔ + ÐÒÉÓÏÅÄÉÎÉÔÓÑ ËÁÖÄÙÊ. ÷Ó£ ÞÔÏ ÎÕÖÎÏ -- ÜÔÏ ÐÏÄÐÉÓÁÔØÓÑ ÎÁ + ÓÐÉÓËÉ ÒÁÓÓÙÌËÉ É ÕÞÁÓÔ×Ï×ÁÔØ × ÄÉÓËÕÓÓÉÑÈ. (ðÏÄÒÏÂÎÏÓÔÉ Ï + ÔÏÍ ËÁË ×ËÌÀÞÉÔØÓÑ × ÒÁÚÒÁÂÏÔËÕ PostgreSQL ÓÍÏÔÒÉÔÅ × + + FAQ ÄÌÑ ÒÁÚÒÁÂÏÔÞÉËÏ×.)

-

2.1) óÕÝÅÓÔ×ÕÀÔ ÌÉ ODBC ÄÒÁÊ×ÅÒÁ - ÄÌÑ PostgreSQL?

+
-

óÕÝÅÓÔ×ÕÅÔ Ä×Á ODBC ÄÒÁÊ×ÅÒÁ, PsqlODBC - É OpenLink ODBC.

+

÷ÏÐÒÏÓÙ ÐÏÌØÚÏ×ÁÔÅÌÅÊ ÐÏ ËÌÉÅÎÔÓËÏÊ ÞÁÓÔÉ

-

÷Ù ÍÏÖÅÔÅ ÓËÁÞÁÔØ PsqlODBC Ó - http://gborg.postgresql.org/project/psqlodbc/projdisplay.php.

+

2.1) ëÁËÉÅ ÉÎÔÅÒÆÅÊÓÙ ÅÓÔØ ÄÌÑ PostgreSQL?

-

OpenLink ODBC ÍÏÖÎÏ ×ÚÑÔØ ÎÁ http://www.openlinksw.com. üÔÏÔ - ÄÒÁÊ×ÅÒ ÒÁÂÏÔÁÅÔ Ó ÉÈ ÓÔÁÎÄÁÒÔÎÙÍ ËÌÉÅÎÔÓËÉÍ ÐÒÏÇÒÁÍÍÎÙÍ ÏÂÅÓÐÅÞÅÎÉÅÍ, - ÉÓÐÏÌØÚÕÀÝÉÍ ODBC, É ÔÁËÉÍ ÏÂÒÁÚÏÍ, ODBC - ÄÒÁÊ×ÅÒÙ ÄÌÑ PostgreSQL ÄÏÓÔÕÐÎÙ ÄÌÑ ËÁÖÄÏÊ ÉÚ ÐÏÄÄÅÒÖÉ×ÁÅÍÙÈ ÉÍÉ - ÐÌÁÔÆÏÒÍ (Win, Mac, Unix, VMS).

+

õÓÔÁÎÏ×ËÁ PostgreSQL ×ËÌÀÞÁÅÔ ÔÏÌØËÏ C É ×ÓÔÒÏÅÎÎÙÊ + (embedded) C ÉÎÔÅÒÆÅÊÓÙ. ÷ÓÅ ÄÒÕÇÉÅ ÉÎÔÅÒÆÅÊÓÙ + Ñ×ÌÑÀÔÓÑ ÎÅÚÁ×ÉÓÉÍÙÍÉ ÐÒÏÅËÔÁÍÉ É ÚÁÇÒÕÖÁÀÔÓÑ ÏÔÄÅÌØÎÏ; ÓÁÍÏÓÔÏÑÔÅÌØÎÏÓÔØ + ÐÒÏÅËÔÏ× ÐÏÚ×ÏÌÑÅÔ ÉÍ ÏÒÇÁÎÉÚÏ×ÁÔØ ÓÏÂÓÔ×ÅÎÎÏÅ ÒÁÓÐÉÓÁÎÉÅ ×ÙÐÕÓËÏ× + ÎÏ×ÙÈ ×ÅÒÓÉÊ É ÉÍÅÔØ ÓÏÂÓÔ×ÅÎÎÕÀ ËÏÍÁÎÄÕ ÒÁÚÒÁÂÏÔÞÉËÏ×.

+ +

îÅËÏÔÏÒÙÅ ÑÚÙËÉ ÐÒÏÇÒÁÍÍÉÒÏ×ÁÎÉÑ, ÔÁËÉÅ ËÁË PHP + ×ËÌÀÞÁÀÔ × ÓÅÂÑ ÉÎÔÅÒÆÅÊÓ Ë PostgreSQL. éÎÔÅÒÆÅÊÓÙ ÄÌÑ ÔÁËÉÈ ÑÚÙËÏ× + ËÁË Perl, TCL, Python É ÍÎÏÇÉÈ ÄÒÕÇÉÈ, ÄÏÓÔÕÐÎÙ ÎÁ + http://gborg.postgresql.org + × ÓÅËÃÉÉ Drivers/Interfaces, Á ÔÁËÖÅ ÞÅÒÅÚ ÐÏÉÓË × éÎÔÅÒÎÅÔ.

-

÷ÏÚÍÏÖÎÏ ÏÎÉ ÂÕÄÕÔ ÐÒÏÄÁ×ÁÔØ Ó×ÏÊ ÐÒÏÄÕËÔ ÔÅÍ ËÏÍÕ ÎÕÖÎÁ ËÏÍÍÅÒÞÅÓËÁÑ - ÐÏÄÄÅÒÖËÁ, ÎÏ ÂÅÓÐÌÁÔÎÁÑ ×ÅÒÓÉÑ ×ÓÅÇÄÁ ÂÕÄÅÔ ÄÏÓÔÕÐÎÁ. ðÏÖÁÌÕÊÓÔÁ, - ÎÁÐÒÁ×ÌÑÊÔÅ ×ÏÐÒÏÓÙ ÎÁ ÁÄÒÅÓ postgres95@openlink.co.uk.

-

2.2) ëÁËÉÅ ÉÎÓÔÒÕÍÅÎÔÙ ÓÕÝÅÓÔ×ÕÀÔ ÄÌÑ ÉÓÐÏÌØÚÏ×ÁÎÉÑ - PostgreSQL ÞÅÒÅÚ Web?

+

2.2) ëÁËÉÅ ÉÎÓÔÒÕÍÅÎÔÙ ÓÕÝÅÓÔ×ÕÀÔ ÄÌÑ ÉÓÐÏÌØÚÏ×ÁÎÉÑ + PostgreSQL ÞÅÒÅÚ Web?

ðÒÅËÒÁÓÎÏÅ ××ÅÄÅÎÉÅ ×Ï ×ÚÁÉÍÏÄÅÊÓÔ×ÉÅ ÂÁÚ ÄÁÎÎÙÈ É Web ÍÏÖÎÏ ÎÁÊÔÉ ÎÁ: http://www.webreview.com

-

äÌÑ ÉÎÔÅÇÒÁÃÉÉ Ó Web, ÏÄÎÉÍ ÉÚ ÐÒÅ×ÏÓÈÏÄÎÙÈ ÉÎÓÔÒÕÍÅÎÔÏ× Ñ×ÌÑÅÔÓÑ PHP. - äÏÍÁÛÎÑÑ ÓÔÁÎÉÞËÁ http://www.php.net.

- -

äÌÑ ËÏÍÐÌÅËÓÎÙÈ ÒÅÛÅÎÉÊ, ÍÎÏÇÉÅ ÐÏÌØÚÕÀÔÓÑ Perl ÉÎÔÅÒÆÅÊÓÏÍ É CGI.pm ÉÌÉ mod_perl.

- -

2.3) åÓÔØ ÌÉ Õ PostgreSQL ÇÒÁÆÉÞÅÓËÉÊ ÉÎÔÅÒÆÅÊÓ - ÐÏÌØÚÏ×ÁÔÅÌÑ?

- -

äÁ, ÓÕÝÅÓÔ×ÕÅÔ ÎÅÓËÏÌØËÏ ÇÒÁÆÉÞÅÓËÉÈ ÉÎÔÅÒÆÅÊÓÏ× ÄÌÑ PostgreSQL. - üÔÏ PgAccess (http://www.pgaccess.org), - PgAdmin III (http://www.pgadmin.org), - RHDB Admin (http://sources.redhat.com/rhdb/), - TORA (http://www.globecom.net/tora/ - (ÞÁÓÔÉÞÎÏ ËÏÍÍÅÒÞÅÓËÏÅ ðï) - É Rekall ( - http://www.thekompany.com/products/rekall/, ËÏÍÍÅÒÞÅÓËÉÊ). ôÁËÖÅ ÅÓÔØ - PhpPgAdmin ( - http://phppgadmin.sourceforge.net/) - ÉÎÔÅÒÆÅÊÓ Ë PostgreSQL, ÏÓÎÏ×ÁÎÎÙÊ - ÎÁ Web.

- -

2.4) ëÁËÉÅ ÑÚÙËÉ ÍÏÇÕÔ ×ÚÁÉÍÏÄÅÊÓÔ×Ï×ÁÔØ Ó PostgreSQL?

- -

ëÁËÉÅ-ÌÉÂÏ ÉÎÔÅÒÆÅÊÓÙ ÄÌÑ PostgreSQL ÓÕÝÅÓÔ×ÕÀÔ ÄÌÑ ÂÏÌØÛÉÎÓÔ×Á - ÐÏÐÕÌÑÒÎÙÈ ÑÚÙËÏ× ÐÒÏÇÒÁÍÍÉÒÏ×ÁÎÉÑ. ðÏÓÍÏÔÒÉÔÅ ÓÐÉÓÏË ÍÏÄÕÌÅÊ ÒÁÓÛÉÒÅÎÉÑ - ÄÌÑ ÔÅÈ ÑÚÙËÏ× ÐÒÏÇÒÁÍÍÉÒÏ×ÁÎÉÑ, ËÏÔÏÒÙÍÉ ×Ù ÐÏÌØÚÕÅÔÅÓØ.

- -

óÌÅÄÕÀÝÉÅ ÉÎÔÅÒÆÅÊÓÙ ×ËÌÀÞÁÀÔÓÑ × ÄÉÓÔÒÉÂÕÔÉ× PostgreSQL:

-
    -
  • C (libpq)
  • - -
  • Embedded C (ecpg)
  • +

    äÌÑ ÉÎÔÅÇÒÁÃÉÉ Ó Web, PHP + http://www.php.net Ñ×ÌÑÅÔÓÑ ÎÅÐÌÏÈÉÍ ÉÎÔÅÒÆÅÊÓÏÍ.

    -
  • Java (jdbc)
  • +

    ÷ ÓÌÏÖÎÙÈ ÓÌÕÞÁÑÈ, ÍÎÏÇÉÅ ÐÏÌØÚÕÀÔÓÑ Perl É DBD::Pg Ó CGI.pm + ÉÌÉ mod_perl.

    -
  • Python (PyGreSQL)
  • +

    2.3) åÓÔØ ÌÉ Õ PostgreSQL ÇÒÁÆÉÞÅÓËÉÊ ÉÎÔÅÒÆÅÊÓ + ÐÏÌØÚÏ×ÁÔÅÌÑ?

    -
  • TCL (libpgtcl)
  • +

    äÁ, ÐÏÄÒÏÂÎÏÓÔÉ ÓÍÏÔÒÉÔÅ × + http://techdocs.postgresql.org/guides/GUITools.

    -
-

äÏÐÏÌÎÉÔÅÌØÎÙÅ ÉÎÔÅÒÆÅÊÓÙ ÄÏÓÔÕÐÎÙ ÐÏ ÁÄÒÅÓÕ - http://gborg.PostgreSQL.org - × ÓÅËÃÉÉ Drivers/Interfaces. -


÷ÏÐÒÏÓÙ ÁÄÍÉÎÉÓÔÒÉÒÏ×ÁÎÉÑ

-

3.1) ëÁË ÍÎÅ ÕÓÔÁÎÏ×ÉÔØ PostgreSQL × ÍÅÓÔÏ ÏÔÌÉÞÎÏÅ - ÏÔ /usr/local/pgsql?

+

3.1) ëÁË ÍÎÅ ÕÓÔÁÎÏ×ÉÔØ PostgreSQL × ÍÅÓÔÏ ÏÔÌÉÞÎÏÅ + ÏÔ /usr/local/pgsql?

úÁÄÁÊÔÅ ÏÐÃÉÀ --prefix ËÏÇÄÁ ÚÁÐÕÓËÁÅÔÅ configure.

-

3.2) ëÏÇÄÁ Ñ ÚÁÐÕÓËÁÀ postmaster, Ñ ÐÏÌÕÞÁÀ - ÓÏÏÂÝÅÎÉÅ Bad System Call ÉÌÉ ÓÏÏÂÝÅÎÉÅ core dumped. ðÏÞÅÍÕ?

- -

üÔÏ ÍÏÖÅÔ ÂÙÔØ ×ÙÚ×ÁÎÏ ÒÁÚÎÙÍÉ ÐÒÏÂÌÅÍÁÍÉ, ÎÏ ÐÅÒ×ÏÅ, ÞÔÏ - ÎÕÖÎÏ ÓÄÅÌÁÔØ - ÜÔÏ ÕÂÅÄÉÔØÓÑ × ÔÏÍ, ÞÔÏ × ×ÁÛÅÍ ÑÄÒÅ ÕÓÔÁÎÏ×ÌÅÎÏ - ÒÁÓÛÉÒÅÎÉÅ System V. PostgreSQL ÔÒÅÂÕÅÔ, ÞÔÏÂÙ ÑÄÒÏ ÐÏÄÄÅÒÖÉ×ÁÌÏ - ÒÁÚÄÅÌÑÅÍÕÀ ÐÁÍÑÔØ É ÓÅÍÁÆÏÒÙ.

- -

3.3) ëÏÇÄÁ Ñ ÐÙÔÁÀÓØ ÚÁÐÕÓÔÉÔØ postmaster, Ñ - ÐÏÌÕÞÁÀ ÏÛÉÂËÉ IpcMemoryCreate. ðÏÞÅÍÕ?

- -

ìÉÂÏ Õ ×ÁÓ × ÑÄÒÅ ÎÅÐÒÁ×ÉÌØÎÙÅ ÎÁÓÔÒÏÊËÉ ÒÁÚÄÅÌÑÅÍÏÊ ÐÁÍÑÔÉ, ÌÉÂÏ - ×ÁÛÅÍÕ ÑÄÒÕ ÎÕÖÎÏ ÂÏÌØÛÅÅ ËÏÌÉÞÅÓÔ×Ï ÄÏÓÔÕÐÎÏÊ ÒÁÚÄÅÌÑÅÍÏÊ ÐÁÍÑÔÉ. - ôÅ ËÏÎËÒÅÔÎÙÅ ÄÅÊÓÔ×ÉÑ, ËÏÔÏÒÙÅ ×ÁÍ ÎÕÖÎÏ ÐÒÏÉÚ×ÅÓÔÉ ÚÁ×ÉÓÑÔ ÏÔ - ÁÒÈÉÔÅËÔÕÒÙ ×ÁÛÅÊ ÍÁÛÉÎÙ É ÏÔ ÔÏÇÏ ËÁË ÍÎÏÇÏ ÂÕÆÅÒÏ× É backend - ÐÒÏÃÅÓÓÏ× ×Ù ÎÁÓÔÒÏÉÌÉ ÄÌÑ postmaster. äÌÑ ÂÏÌØÛÉÎÓÔ×Á ÓÉÓÔÅÍ, - Ó ËÏÌÉÞÅÓÔ×ÏÍ ÂÕÆÅÒÏ× É ÐÒÏÃÅÓÓÏ× ÐÏ ÕÍÏÌÞÁÎÉÀ, ÎÅÏÂÈÏÄÉÍÙÊ ÍÉÎÉÍÕÍ - - ÜÔÏ ÏËÏÌÏ 1 ÍÅÇÁÂÁÊÔÁ. ðÏÄÒÏÂÎÏÓÔÉ Ï ÒÁÚÄÅÌÑÅÍÏÊ ÐÁÍÑÔÉ É ÓÅÍÁÆÏÒÁÈ - ÓÍÏÔÒÉÔÅ × òÕËÏ×ÏÄÓÔ×Å - ÁÄÍÉÎÉÓÔÒÁÔÏÒÁ PostgreSQL..

- -

3.4) ëÏÇÄÁ Ñ ÐÙÔÁÀÓØ ÚÁÐÕÓÔÉÔØ postmaster, Ñ - ÐÏÌÕÞÁÀ ÏÛÉÂËÉ IpcSemaphoreCreate. ðÏÞÅÍÕ?

- -

åÓÌÉ ÜÔÏ ÓÏÏÂÝÅÎÉÅ IpcSemaphoreCreate: semget failed (No - space left on device) ÔÏ ÎÁÓÔÒÏÊËÉ ×ÁÛÅÇÏ ÑÄÒÁ ÔÁËÏ×Ù, ÞÔÏ ÅÍÕ ÎÅ - È×ÁÔÁÅÔ ÓÅÍÁÆÏÒÏ×. Postgres ÔÒÅÂÕÅÔ ÏÄÉÎ ÓÅÍÁÆÏÒ ÎÁ ÐÏÔÅÎÃÉÁÌØÎÙÊ - backend ÐÒÏÃÅÓÓ. ÷ÒÅÍÅÎÎÙÍ ÒÅÛÅÎÉÅÍ Ñ×ÌÑÅÔÓÑ ÚÁÐÕÓË postmaster - Ó ÎÁÓÔÒÏÊËÁÍÉ ÎÁ ÍÅÛØÛÅÅ ËÏÌÉÞÅÓÔ×Ï backend ÐÒÏÃÅÓÓÏ×. éÓÐÏÌØÚÕÊÔÅ - -N Ó ÚÎÁÞÅÎÉÅÍ ÍÅÎØÛÉÍ ÞÅÍ 32, ËÏÔÏÒÏÅ ÐÒÉÎÑÔÏ ÐÏ ÕÍÏÌÞÁÎÉÀ. - âÏÌÅÅ ÐÒÁ×ÉÌØÎÏÅ ÒÅÛÅÎÉÅ - ÜÔÏ Õ×ÅÌÉÞÉÔØ ÚÎÁÞÅÎÉÑ SEMMNS - É SEMMNI × ÎÁÓÔÒÊËÁÈ ÑÄÒÁ.

- -

îÅÉÓÐÒÁ×ÎÙÅ ÓÅÍÁÆÏÒÙ ÔÁËÖÅ ÍÏÇÕÔ ÐÒÉ×ÅÓÔÉ Ë ÐÁÄÅÎÉÀ óõâä ×Ï ×ÒÅÍÑ - ÄÏÓÔÕÐÁ Ë ÂÁÚÅ ÄÁÎÎÙÈ.

- -

åÓÌÉ ×Ù ÐÏÌÕÞÉÌÉ ËÁËÏÅ-ÌÉÂÏ ÄÒÕÇÏÅ ÓÏÏÂÝÅÎÉÅ Ï ÏÛÉÂËÅ, ÔÏ ×ÐÏÌÎÅ - ×ÏÚÍÏÖÎÏ, ÞÔÏ × ×ÁÛÅÍ ÑÄÒÅ ×ÏÏÂÝÅ ÎÅ ÎÁÓÔÒÏÅÎÁ ÐÏÄÄÅÒÖËÁ ÓÅÍÁÆÏÒÏ×. - óÍÏÔÒÉÔÅ ÐÏÄÒÏÂÎÏÓÔÉ Ï ÒÁÚÄÅÌÑÅÍÏÊ ÐÁÍÑÔÉ É ÓÅÍÁÆÏÒÁÈ × òÕËÏ×ÏÄÓÔ×Å - áÄÍÉÎÉÓÔÒÁÔÏÒÁ PostgreSQL.

- -

3.5) ëÁË ÍÎÅ ÕÐÒÁ×ÌÑÔØ ÓÏÅÄÉÎÅÎÉÑÍÉ Ó ÄÒÕÇÉÈ - ËÏÍÐØÀÔÅÒÏ×?

+

3.2) ëÁË ÍÎÅ ÕÐÒÁ×ÌÑÔØ ÓÏÅÄÉÎÅÎÉÑÍÉ Ó ÄÒÕÇÉÈ + ËÏÍÐØÀÔÅÒÏ×?

ðÏ ÕÍÏÌÞÁÎÉÀ, PostgreSQL ÒÁÚÒÅÛÁÅÔ ÔÏÌØËÏ ÓÏÅÄÉÎÅÎÉÑ ÎÁ ÌÏËÁÌØÎÏÊ - ÍÁÛÉÎÅ ÞÅÒÅÚ ÓÏËÅÔÙ ÄÏÍÅÎÁ Unix ÉÌÉ TCP/IP ÓÏÅÄÉÎÅÎÉÑ. äÒÕÇÉÅ ÍÁÛÉÎÙ - ÎÅ ÓÍÏÇÕÔ ÐÏÄËÌÀÞÉÔØÓÑ Ë ÂÁÚÅ ÐÏËÁ ×Ù ÎÅ ÉÚÍÅÎÉÔÅ listen_addresses × - postgresql.conf É ÐÏËÁ ÎÅ ÂÕÄÅÔ ÒÁÚÒÅÛÅÎÁ host-Á×ÔÏÒÉÚÁÃÉÑ × ÆÁÊÌÅ - $PGDATA/pg_hba.conf.

- -

3.6) ëÁËÉÅ ÎÁÓÔÒÏÊËÉ ÍÎÅ ÎÕÖÎÏ ÓÄÅÌÁÔØ ÄÌÑ ÕÌÕÞÛÅÎÉÑ - ÐÒÏÉÚ×ÏÄÉÔÅÌØÎÏÓÔÉ?

- -

îÅÓÏÍÎÅÎÎÏ, ÉÎÄÅËÓÙ ÍÏÇÕÔ Õ×ÅÌÉÞÉÔØ ÓËÏÒÏÓÔØ ×ÙÐÏÌÎÅÎÉÑ ÚÁÐÒÏÓÏ×. ëÏÍÁÎÄÁ - EXPLAIN ANALYZE ÐÏÚ×ÏÌÑÅÔ ×ÁÍ ÐÏÓÍÏÔÒÅÔØ ËÁË PostgreSQL - ÉÎÔÅÒÐÒÅÔÉÒÕÅÔ ×ÁÛ ÚÁÐÒÏÓ É ËÁËÉÅ ÉÎÄÅËÓÙ ÉÓÐÏÌØÚÕÀÔÓÑ.

- -

åÓÌÉ ×Ù ×ÙÐÏÌÎÑÅÔÅ ÍÎÏÇÏ ÏÐÅÒÁÔÏÒÏ× INSERT, - ÒÁÓÓÍÏÔÒÉÔÅ ×ÏÚÍÏÖÎÏÓÔØ ×ÙÐÏÌÎÑÔØ ÉÈ × ÂÏÌØÛÏÊ ÐÁÞËÅ, ÉÓÐÏÌØÚÕÑ - ËÏÍÁÎÄÕ COPY. üÔÏ ÚÎÁÞÉÔÅÌØÎÏ ÂÙÓÔÒÅÅ, ÞÅÍ ÏÔÄÅÌØÎÙÅ - INSERT. ÷Ï-×ÔÏÒÙÈ, ÏÐÅÒÁÔÏÒÙ ×ÎÅ ÂÌÏËÁ ÔÒÁÎÚÁËÃÉÉ - BEGIN WORK/COMMIT ÓÁÍÉ ×ÙÐÏÌÎÑÀÔ ÔÒÁÎÚÁËÃÉÀ. ðÏÄÕÍÁÊÔÅ - ÎÁÄ ×ÙÐÏÌÎÅÎÉÅÍ ÎÅÓËÏÌØËÉÈ ÏÐÅÒÁÔÏÒÏ× × ÏÄÎÏÍ ÂÌÏËÅ ÔÒÁÎÚÁËÃÉÉ. - üÔÏ ÕÍÅÎØÛÉÔ ËÏÌÉÞÅÓÔ×Ï ÔÒÁÎÚÁËÃÉÊ. ôÁËÖÅ, ÚÁÄÕÍÁÊÔÅÓØ ÎÁÄ ÕÄÁÌÅÎÉÅÍ - É ÐÅÒÅÓÏÚÄÁÎÉÅÍ ÉÎÄÅËÓÏ×, ËÏÇÄÁ ×Ù ×ÙÐÏÌÎÑÅÔÅ ÂÏÌØÛÉÅ ÉÚÍÅÎÅÎÉÑ - ÄÁÎÎÙÈ.

- -

óÕÝÅÓÔ×ÕÅÔ ÎÅÓËÏÌØËÏ ÏÐÃÉÊ ÎÁÓÔÒÏÊËÉ × - - òÕËÏ×ÏÄÓÔ×Å áÄÍÉÎÉÓÔÒÁÔÏÒÁ PostgreSQL. ÷Ù ÍÏÖÅÔÅ ÚÁÐÒÅÔÉÔØ - fsync() ÐÒÉ ÓÔÁÒÔÅ postmaster Ó ÏÐÃÉÅÊ -o -F. - üÔÏ ÐÒÅÄÏÔ×ÒÁÔÉÔ ×ÙÚÏ×Ù fsync(), ËÏÔÏÒÙÅ ÐÒÉ×ÏÄÑÔ Ë ÓÂÒÏÓÕ - ÄÁÎÎÙÈ ÎÁ ÄÉÓË ÐÏÓÌÅ ËÁÖÄÏÊ ÔÒÁÎÚÁËÃÉÉ.

- -

÷Ù ÍÏÖÅÔÅ ÔÁËÖÅ ÉÓÐÏÌØÚÏ×ÁÔØ ÏÐÃÉÀ shared_buffers -B - ÄÌÑ Õ×ÅÌÉÞÅÎÉÑ ËÏÌÉÞÅÓÔ×Á ÂÕÆÅÒÏ× ÒÁÚÄÅÌÑÅÍÏÊ ÐÁÍÑÔÉ, ËÏÔÏÒÁÑ - ÉÓÐÏÌØÚÕÅÔÓÑ backend ÐÒÏÃÅÓÓÁÍÉ. åÓÌÉ ×Ù ÓÄÅÌÁÅÔÅ ÚÎÁÞÅÎÉÅ ÜÔÏÇÏ ÐÁÒÁÍÅÔÒÁ - ÓÌÉÛËÏÍ ÂÏÌØÛÉÍ, ÔÏ postmaster ÍÏÖÅÔ ÎÅ ÚÁÐÕÓÔÉÔÓÑ ÐÏÔÏÍÕ ÞÔÏ - ×Ù ÉÓÞÅÒÐÁÅÔÅ ÏÇÒÁÎÉÞÅÎÉÅ ÑÄÒÁ ÎÁ ÏÂßÅÍ ÒÁÚÄÅÌÑÅÍÏÊ ÐÁÍÑÔÉ. ëÁÖÄÙÊ - ÂÕÆÅÒ ÉÍÅÅÔ ÒÁÚÍÅÒ × 8 ËÉÌÏÂÁÊÔ É ÐÏ ÕÍÏÌÞÁÎÉÀ ×ÙÄÅÌÑÅÔÓÑ 1000 ÂÕÆÅÒÏ×.

- -

÷Ù ÍÏÖÅÔÅ ÔÁËÖÅ ÉÓÐÏÌØÚÏ×ÁÔØ backend ÏÐÃÉÉ sort_mem É - work_mem ÄÌÑ Õ×ÅÌÉÞÅÎÉÑ ÍÁËÓÉÍÁÌØÎÏÇÏ ËÏÌÉÞÅÓÔ×Á ÐÁÍÑÔÉ, ËÏÔÏÒÏÅ - ÉÓÐÏÌØÚÕÅÔÓÑ backend ÐÒÏÃÅÓÓÏÍ ÄÌÑ ×ÒÅÍÅÎÎÙÈ ÓÏÒÔÉÒÏ×ÏË. úÎÁÞÅÎÉÅ ÐÏ - ÕÍÏÌÞÁÎÉÀ ÓÏÓÔÁ×ÌÑÅÔ 1024 (Ô.Å. 1MB).

- -

÷Ù ÔÁËÖÅ ÍÏÖÅÔÅ ÉÓÐÏÌØÚÏ×ÁÔØ ËÏÍÁÎÄÕ CLUSTER ÄÌÑ - ÇÒÕÐÐÉÒÏ×ËÉ ÄÁÎÎÙÈ × ÔÁÂÌÉÃÁÈ ÎÁ ÓÏ×ÐÁÄÁÀÝÉÊ ÉÎÄÅËÓ. ðÏÄÒÏÂÎÏÓÔÉ ÓÍÏÔÒÉÔÅ - ÎÁ ÓÔÒÁÎÉÃÅ ÒÕËÏ×ÏÄÓÔ×Á ÐÏ ËÏÍÁÎÄÅ CLUSTER.

- -

3.7) ëÁËÉÅ ×ÏÚÍÏÖÎÏÓÔÉ ÄÌÑ ÏÔÌÁÄËÉ ÅÓÔØ × - ÎÁÌÉÞÉÉ?

- -

PostgreSQL ÉÍÅÅÔ ÎÅÓËÏÌØËÏ ×ÏÚÍÏÖÎÏÓÔÅÊ, ÐÏÚ×ÏÌÑÀÝÉÅ ÐÏÌÕÞÉÔØ - ÉÎÆÏÒÍÁÃÉÀ Ï ÓÏÓÔÏÑÎÉÉ, ËÏÔÏÒÁÑ ÍÏÖÅÔ ÂÙÔØ ÉÓÐÏÌØÚÏ×ÁÎÁ × ÏÔÌÁÄÏÞÎÙÈ - ÃÅÌÑÈ.

- -

÷Ï-ÐÅÒ×ÙÈ, ÐÒÉ ÚÁÐÕÓËÅ configure Ó ÏÐÃÉÅÊ --enable-cassert, - ÍÎÏÇÉÅ ×ÙÚÏ×Ù assert() ÐÏÚ×ÏÌÑÀÔ ÏÔÓÌÅÖÉ×ÁÔØ ÒÁÂÏÔÕ backend - ÐÒÏÃÅÓÓÁ É ÏÓÔÁÎÏ×ËÕ ÐÒÏÇÒÁÍÍÙ ÐÒÉ ×ÏÚÎÉËÎÏ×ÅÎÉÉ ËÁËÉÈ-ÌÉÂÏ - ÎÅÏÖÉÄÁÎÎÏÓÔÅÊ.

- -

é postmaster, É postgres ÉÍÅÀÔ ÎÅÓËÏÌØËÏ ÏÔÌÁÄÏÞÎÙÈ - ÏÐÃÉÊ. ÷Ï-ÐÅÒ×ÙÈ, ÐÒÉ ÚÁÐÕÓËÅ postmaster, ÕÂÅÄÉÔÅÓØ, ÞÔÏ - ÓÔÁÎÄÁÒÔÎÙÊ ×Ù×ÏÄ É ×Ù×ÏÄ ÏÛÉÂÏË ÏÓÕÝÅÓÔ×ÌÑÀÔÓÑ × ÆÁÊÌ ÖÕÒÎÁÌÁ:

-
-    cd /usr/local/pgsql
-    ./bin/postmaster >server.log 2>&1 &
-
+ ÍÁÛÉÎÅ ÞÅÒÅÚ ÓÏËÅÔÙ ÄÏÍÅÎÁ Unix ÉÌÉ TCP/IP ÓÏÅÄÉÎÅÎÉÑ. äÌÑ ÔÏÇÏ, ÞÔÏÂÙ + ÄÒÕÇÉÅ ÍÁÛÉÎÙ ÓÍÏÇÌÉ ÐÏÄËÌÀÞÉÔØÓÑ Ë ÂÁÚÅ ×Ù ÄÏÌÖÎÙ ÉÚÍÅÎÉÔØ + listen_addresses × postgresql.conf, ÒÁÚÒÅÛÉÔØ + host-Á×ÔÏÒÉÚÁÃÉÑ × ÆÁÊÌÅ $PGDATA/pg_hba.conf É ÐÅÒÅÓÔÁÒÔÏ×ÁÔØ + ÓÅÒ×ÅÒ.

+ +

3.3) ëÁËÉÅ ÎÁÓÔÒÏÊËÉ ÍÎÅ ÎÕÖÎÏ ÓÄÅÌÁÔØ ÄÌÑ ÕÌÕÞÛÅÎÉÑ + ÐÒÏÉÚ×ÏÄÉÔÅÌØÎÏÓÔÉ?

+ +

óÕÝÅÓÔ×ÕÅÔ ÔÒÉ ÇÌÁ×ÎÙÈ ÏÂÌÁÓÔÉ, ËÏÔÏÒÙÅ ÐÏÔÅÎÃÉÁÌØÎÏ ÍÏÇÕÔ + Õ×ÅÌÉÞÉÔØ ÐÒÏÉÚ×ÏÄÉÔÅÌØÎÏÓÔØ:

+ +
+
éÚÍÅÎÅÎÉÅ ÚÁÐÒÏÓÁ
+
üÔÏ ÏÚÎÁÞÁÅÔ ÍÏÄÉÆÉËÁÃÉÀ ÚÁÐÒÏÓÏ× ÄÌÑ ÐÏÌÕÞÅÎÉÑ ÌÕÞÛÅÊ + ÐÒÏÉÚ×ÏÄÉÔÅÌØÎÏÓÔÉ: +
    +
  • óÏÚÄÁÎÉÅ ÉÎÄÅËÓÏ×, ×ËÌÀÞÁÑ ÉÎÄÅËÓÙ ×ÙÒÁÖÅÎÉÊ É ÞÁÓÔÉÞÎÙÅ ÉÎÄÅËÓÙ
  • +
  • éÓÐÏÌØÚÏ×ÁÎÉÅ COPY ×ÍÅÓÔÏ ÍÎÏÖÅÓÔ×Á INSERT
  • +
  • çÒÕÐÐÉÒÏ×ËÁ ÎÅÓËÏÌØËÉÈ ÏÐÅÒÁÔÏÒÏ× × ÅÄÉÎÕÀ ÔÒÁÎÚÁËÃÉÀ ÄÌÑ + ÕÍÅÎØÛÅÎÉÑ ÎÁÇÒÕÚËÉ ÐÒÉ ×ÙÐÏÌÎÅÎÉÉ ÚÁ×ÅÒÛÅÎÉÑ ÔÒÁÎÚÁËÃÉÉ
  • +
  • éÓÐÏÌØÚÏ×ÁÎÉÅ CLUSTER, ËÏÇÄÁ ÉÚ ÉÎÄÅËÓÁ ÂÅÒ£ÔÓÑ + ÍÎÏÖÅÓÔ×Ï ÓÔÒÏË
  • +
  • éÓÐÏÌØÚÏ×ÁÎÉÅ LIMIT ÄÌÑ ÔÏÇÏ, ÞÔÏÂÙ ×ÏÚ×ÒÁÝÁÌÁÓØ + ÔÏÌØËÏ ÞÁÓÔØ ×Ù×ÏÄÁ ÏÔ ÚÁÐÒÏÓÁ
  • +
  • éÓÐÏÌØÚÏ×ÁÎÉÅ ðÏÄÇÏÔÏ×ÌÅÎÎÙÈ (Prepared) ÚÁÐÒÏÓÏ×
  • +
  • éÓÐÏÌØÚÏ×ÁÎÉÅ ANALYZE ÄÌÑ ÏÂÓÌÕÖÉ×ÁÎÉÑ ÓÔÁÔÉÓÔÉËÉ + ÏÐÔÉÍÉÚÁÔÏÒÁ
  • +
  • òÅÇÕÌÑÒÎÏÅ ÉÓÐÏÌØÚÏ×ÁÎÉÅ VACUUM ÉÌÉ pg_autovacuum
  • +
  • õÄÁÌÅÎÉÅ ÉÎÄÅËÓÏ× ×Ï ×ÒÅÍÑ ÂÏÌØÛÉÈ ÉÚÍÅÎÅÎÉÊ ÄÁÎÎÙÈ
  • +
+

+
-

üÔÏ ÐÒÉ×ÅÄÅÔ Ë ÐÏÑ×ÌÅÎÉÀ ÆÁÊÌÁ server.log × ÇÌÁ×ÎÏÍ ËÁÔÁÌÏÇÅ - PostgreSQL. üÔÏÔ ÆÁÊÌ ÓÏÄÅÒÖÉÔ ÐÏÌÅÚÎÕÀ ÉÎÆÏÒÍÁÃÉÀ Ï ÐÒÏÂÌÅÍÁÈ ÉÌÉ - ÏÛÉÂËÁÈ, ×ÏÚÎÉËÛÉÈ ÎÁ ÓÅÒ×ÅÒÅ. Postmaster ÉÍÅÅÔ ÏÐÃÉÀ -d, - ËÏÔÏÒÁÑ ÐÏÚ×ÏÌÑÅÔ ÐÏÌÕÞÁÔØ ÐÒÉ ÐÒÏÔÏËÏÌÉÒÏ×ÁÎÉÉ ÂÏÌÅÅ ÄÅÔÁÌØÎÕÀ - ÉÎÆÒÍÁÃÉÀ. äÌÑ ÏÐÃÉÉ -d ÕËÁÚÙ×ÁÅÔÓÑ ÞÉÓÌÏ, ËÏÔÏÒÏÅ ÚÁÄÁÅÔ ÕÒÏ×ÅÎØ - ÏÔÌÁÄËÉ. âÕÄØÔÅ ÏÓÔÏÒÏÖÎÙ, ÔÁË ËÁË ×ÙÓÏËÉÊ ÕÒÏ×ÅÎØ ÏÔÌÁÄËÉ ÐÒÉ×ÏÄÉÔ - Ë ÇÅÎÅÒÁÃÉÉ ÆÁÊÌÏ× ÖÕÒÎÁÌÁ ÂÏÌØÛÏÇÏ ÒÁÚÍÅÒÁ.

- -

åÓÌÉ postmaster ÎÅ ÚÁÐÕÝÅÎ, ×Ù ÍÏÖÅÔÅ ÚÁÐÕÓÔÉÔØ - postgres backend ÉÚ ËÏÍÁÎÄÎÏÊ ÓÔÒÏËÉ É ××ÅÓÔÉ ×ÁÛ ÏÐÅÒÁÔÏÒ - SQL ÎÁÐÒÑÍÕÀ. üÔÏ ÒÅËÏÍÅÎÄÕÅÔÓÑ ÔÏÌØËÏ ÄÌÑ - ÃÅÌÅÊ ÏÔÌÁÄËÉ. úÁÍÅÔÉÍ, ÞÔÏ × ÜÔÏÍ ÒÅÖÉÍÅ, ÚÁÐÒÏÓ ÚÁ×ÅÒÛÁÅÔÓÑ ÓÉÍ×ÏÌÏÍ - ÎÏ×ÏÊ ÓÔÒÏËÉ, Á ÎÅ ÔÏÞËÏÊ Ó ÚÁÐÑÔÏÊ. åÓÌÉ ×Ù ÐÒÏÉÚ×ÏÄÉÌÉ ËÏÍÐÉÌÑÃÉÀ - Ó ÏÔÌÁÄÏÞÎÙÍÉ ÓÉÍ×ÏÌÏÁÍÉ, ×Ù ÍÏÖÅÔÅ ÉÓÐÏÌØÚÏ×ÁÔØ ÌÀÂÏÊ ÏÔÌÁÄÞÉË, ÞÔÏÂÙ - ÐÏÓÍÏÔÒÅÔØ, ÞÔÏ ÓÌÕÞÉÌÏÓØ. ðÏÓËÏÌØËÕ backend ÚÁÐÕÓËÁÅÔÓÑ ÎÅ ÉÚ - postmaster, ÏÎ ÎÅ ÚÁÐÕÓËÁÅÔÓÑ × ÉÄÅÎÔÉÞÎÏÍ ÏËÒÕÖÅÎÉÉ É ÚÎÁÞÉÔ - ÐÒÏÂÌÅÍÙ ÉÔÅÒÁÃÉÊ ÂÌÏËÉÒÏ×ÏË/backend ÎÅ ÍÏÇÕÔ ÂÙÔØ ×ÏÓÐÒÏÉÚ×ÅÄÅÎÙ.

- -

åÓÌÉ postmaster ÚÁÐÕÝÅÎ, ÚÁÐÕÓÔÉÔÅ psql × ÏÄÎÏÍ - ÏËÎÅ, ÚÁÔÅÍ ÎÁÊÄÉÔÅ PID ÐÒÏÃÅÓÓÁ postgres, - ÉÓÐÏÌØÚÕÅÍÙÊ psql, ÉÓÐÏÌØÚÕÑ

+
îÁÓÔÒÏÊËÁ ÓÅÒ×ÅÒÁ
+ +
îÅËÏÔÏÒÙÅ ÕÓÔÁÎÏ×ËÉ × postgresql.conf ×ÌÉÑÀÔ ÎÁ + ÐÒÏÉÚ×ÏÄÉÔÅÌØÎÏÓÔØ. ðÏÄÒÏÂÎÙÊ ÐÏÌÎÙÊ ÓÐÉÓÏË ÕÓÔÁÎÏ×ÏË ÓÍ. × + + Administration Guide/Server Run-time Environment/Run-time Configuration, + Á ËÏÍÍÅÎÔÁÒÉÉ ÓÍ. × + http://www.varlena.com/varlena/GeneralBits/Tidbits/annotated_conf_e.html + É + http://www.varlena.com/varlena/GeneralBits/Tidbits/perf.html. +

+
-
-	SELECT pg_backend_pid()
-    
+
÷ÙÂÏÒ "ÖÅÌÅÚÁ" - ÁÐÐÁÒÁÔÎÏÇÏ ÏÂÅÓÐÅÞÅÎÉÑ
-

éÓÐÏÌØÚÕÊÔÅ ÏÔÄÁÄÞÉË ÄÌÑ ÐÏÄËÌÀÞÅÎÉÑ Ë postgres PID. - ÷Ù ÍÏÖÅÔÅ ÕÓÔÁÎÏ×ÉÔØ ÔÏÞËÉ ÐÒÅÒÙ×ÁÎÉÑ × ÏÔÌÁÄÞÉËÅ É ÚÁÐÕÓÔÉÔØ ÚÁÐÒÏÓ - ÉÚ psql. åÓÌÉ - ×Ù ÐÒÏÉÚ×ÏÄÉÔÅ ÏÔÌÁÄËÕ ÚÁÐÕÓËÁ postgres, ×Ù ÍÏÖÅÔÅ ÕÓÔÁÎÏ×ÉÔØ - PGOPTIONS="-W n", É ÚÁÔÅÍ ÚÁÐÕÓÔÉÔØ psql. üÔÁ ÏÐÃÉÑ ÐÒÉ×ÏÄÉÔ - Ë ÚÁÄÅÒÖËÅ ÐÒÏÃÅÓÓÁ ÚÁÐÕÓËÁ ÎÁ n ÓÅËÕÎÄ, × ÔÅÞÅÎÉÅ ËÏÔÏÒÙÈ - ×Ù ÍÏÖÅÔÅ ÐÏÄËÌÀÞÉÔØ Ë ÐÒÏÃÅÓÓÕ ÏÔÌÁÄÞÉË, ÕÓÔÁÎÏ×ÉÔØ ÌÀÂÙÅ ÔÏÞËÉ - ÐÒÅÒÙ×ÁÎÉÑ É ÐÒÏÄÏÌÖÉÔØ ÚÁÐÕÓË.

- -

ðÒÏÇÒÁÍÍÁ postgres ÉÍÅÅÔ ÏÐÃÉÉ -s, -A, É -t - ËÏÔÏÒÙÅ ÍÏÇÕÔ ÂÙÔØ ÏÞÅÎØ ÐÏÌÅÚÎÙÍÉ ÄÌÑ ÏÔÌÁÄËÉ É ÉÚÍÅÒÅÎÉÑ - ÐÒÏÉÚ×ÏÄÉÔÅÌØÎÏÓÔÉ.

- -

÷Ù ÔÁËÖÅ ÍÏÖÅÔÅ ÓËÏÍÐÉÌÉÒÏ×ÁÔØ PostgreSQL Ó ÐÒÏÆÉÌÉÒÏ×ÁÎÉÅÍ ÄÌÑ - ÔÏÇÏ, ÞÔÏÂÙ Õ×ÉÄÅÔØ ËÁËÉÅ ÆÕÎËÃÉÉ ÓËÏÌØËÏ ×ÒÅÍÅÎÉ ×ÙÐÏÌÎÑÀÔÓÑ. - æÁÊÌÙ ÐÒÏÆÉÌÉÒÏ×ÁÎÉÑ backend'Á ÎÁÈÏÄÑÔÓÑ × ËÁÔÁÌÏÇÅ - pgsql/data/base/dbname. æÁÊÌ ÐÒÏÆÉÌÉÒÏ×ÁÎÉÑ ËÌÉÅÎÔÁ - ÂÕÄÅÔ ÐÏÍÅÝÅÎ × ÔÅËÕÝÉÊ ËÁÔÁÌÏÇ ËÌÉÅÎÔÁ. ÷ Linux ÄÌÑ ×ÙÐÏÌÎÅÎÉÑ - ÐÒÏÆÉÌÉÒÏ×ÁÎÉÑ ÔÒÅÂÕÅÔÓÑ ËÏÍÐÉÌÑÃÉÉ Ó -DLINUX_PROFILE.

- -

3.8) ðÏÞÅÍÕ Ñ ÐÏÌÕÞÁÀ ÓÏÏÂÝÅÎÉÅ "Sorry, too - many clients" ËÏÇÄÁ ÐÙÔÁÀÓØ ÐÏÄËÌÀÞÉÔØÓÑ Ë ÂÁÚÅ?

- -

÷ÁÍ ÎÕÖÎÏ Õ×ÅÌÉÞÉÔØ ÏÇÒÁÎÉÞÅÎÉÅ ÎÁ ËÏÌÉÞÅÓÔ×Ï ËÏÎËÕÒÅÔÎÙÈ - backend ÐÒÏÃÅÓÓÏ× ÐÒÉ ÚÁÐÕÓËÅ postmaster.

- -

ðÏ ÕÍÏÌÞÁÎÉÀ ÕÓÔÁÎÏ×ÌÅÎ ÌÉÍÉÔ ÎÁ 32 ÐÒÏÃÅÓÓÁ. ÷Ù ÍÏÖÅÔÅ - Õ×ÅÌÉÞÉÔØ ÜÔÏÔ ÌÉÍÉÔ ÐÅÒÅÚÁÐÕÓÔÉ× postmaster Ó ÎÕÖÎÙÍ - ÚÎÁÞÅÎÉÅÍ ÐÒÏÃÅÓÓÏ×, ËÏÔÏÒÏÅ ÕËÁÚÙ×ÁÅÔÓÑ × ÏÐÃÉÉ -N ÉÌÉ - ÉÚÍÅÎÉ× ÆÁÊÌ postgresql.conf.

- -

úÁÍÅÔÉÍ, ÞÔÏ ÅÓÌÉ ×Ù ÚÁÄÁÄÉÔÅ × ÏÐÃÉÉ -N ÚÎÁÞÅÎÉÅ ÂÏÌØÛÅ - 32, ÔÏ ×Ù ÔÁËÖÅ ÄÏÌÖÎÙ Õ×ÅÌÉÞÉÔØ ÚÎÁÞÅÎÉÅ × ÏÐÃÉÉ -B ËÏÔÏÒÏÅ - ÐÏ ÕÍÏÌÞÁÎÉÀ ÕÓÔÁÎÏ×ÌÅÎÏ × 64; úÎÁÞÅÎÉÅ ÏÐÃÉÉ -B ÄÏÌÖÎÏ ÂÙÔØ - ÐÏ ËÒÁÊÎÅÊ ÍÅÒÅ ×Ä×ÏÅ ÂÏÌØÛÅ ÚÎÁÞÅÎÉÑ ÏÐÃÉÉ -N, É ×ÏÚÍÏÖÎÏ - ÅÝ£ ÂÏÌØÛÅ ÄÌÑ ÌÕÞÛÅÊ ÐÒÏÉÚ×ÏÄÉÔÅÌØÎÏÓÔÉ. äÌÑ ÂÏÌØÛÅÇÏ ËÏÌÉÞÅÓÔ×Á - backend ÐÒÏÃÅÓÓÏ×, ×ÁÍ ÔÁËÖÅ ÎÅÐÌÏÈÏ ÂÙÌÏ ÂÙ Õ×ÅÌÉÞÉÔØ ÎÅËÏÔÏÒÙÅ - ÐÁÒÁÍÅÔÒÙ ÑÄÒÁ Unix. üÔÏ ÔÁËÉÅ ÐÁÒÁÍÅÔÒÙ, ËÁË ÍÁËÓÉÍÁÌØÎÏÅ ËÏÌÉÞÅÓÔ×Ï - ÂÌÏËÏ× ÒÁÚÄÅÌÑÅÍÏÊ ÐÁÍÑÔÉ, SHMMAX; ÍÁËÓÉÍÁÌØÎÏÅ ËÏÌÉÞÅÓÔ×Ï - ÓÅÍÁÆÏÒÏ×, SEMMNS É SEMMNI; ÍÁËÓÉÍÁÌØÎÏÅ - ËÏÌÉÞÅÓÔ×Ï ÐÒÏÃÅÓÓÏ×, NPROC; ÍÁËÓÉÍÁÌØÎÏÅ ËÏÌÉÞÅÓÔ×Ï - ÐÒÏÃÅÓÓÏ× ÎÁ ÐÏÌØÚÏ×ÁÔÅÌÑ, MAXUPRC; É ÍÁËÓÉÍÁÌØÎÏÅ - ËÏÌÉÞÅÓÔ×Ï ÏÔËÒÙÔÙÈ ÆÁÊÌÏ×, NFILE É NINODE. - ðÒÉÞÉÎÁ ÓÏÚÄÁÎÉÑ ÏÇÒÁÎÉÞÅÎÉÑ ÎÁ ËÏÌÉÞÅÓÔ×Ï backend ÐÒÏÃÅÓÓÏ× ËÁË - ÒÁÚ É ÓÏÓÔÏÉÔ × ÔÏÍ, ÞÔÏÂÙ ×ÁÛÅÊ ÓÉÓÔÅÍÅ È×ÁÔÉÌÏ ÒÅÓÕÒÓÏ×.

- -

3.9) þÔÏ ÎÁÈÏÄÉÔÓÑ × ËÁÔÁÌÏÇÅ pgsql_tmp?

- -

äÁÎÎÙÊ ËÁÔÁÌÏÇ ÓÏÄÅÒÖÉÔ ×ÒÅÍÅÎÎÙÅ ÆÁÊÌÙ, ÇÅÎÅÒÉÒÕÅÍÙÅ ÏÂÒÁÂÏÔÞÉËÏÍ - ÚÁÐÒÏÓÁ. îÁÐÒÉÍÅÒ, ÅÓÌÉ ÄÌÑ ×ÙÐÏÌÎÅÎÉÑ ORDER BY ÎÕÖÎÁ - ÓÏÒÔÉÒÏ×ËÁ É ÜÔÁ ÓÏÒÔÉÒÏ×ËÁ ÔÒÅÂÕÅÔ ÐÁÍÑÔÉ ÂÏÌØÛÅ, ÞÅÍ ÄÏÐÕÓËÁÅÔ ÐÁÒÁÍÅÔÒ -S - Õ backend'Á, ÔÏ ÄÌÑ ÈÒÁÎÅÎÉÑ ÄÏÐÏÌÎÉÔÅÌØÎÙÈ ÄÁÎÎÙÈ ÓÏÚÄÁÀÔÓÑ ×ÒÅÍÅÎÎÙÅ - ÆÁÊÌÙ.

+
÷ÌÉÑÎÉÅ "ÖÅÌÅÚÁ" ÎÁ ÐÒÏÉÚ×ÏÄÉÔÅÌØÎÏÓÔØ ÐÏÄÒÏÂÎÏ ÏÐÉÓÁÎÏ × + + http://candle.pha.pa.us/main/writings/pgsql/hw_performance/index.html É + + http://www.powerpostgresql.com/PerfList/. +

+
+
+ +

3.4) ëÁËÉÅ ×ÏÚÍÏÖÎÏÓÔÉ ÄÌÑ ÏÔÌÁÄËÉ ÅÓÔØ × + ÎÁÌÉÞÉÉ?

+ +

åÓÔØ ÍÎÏÖÅÓÔ×Ï ÕÓÔÁÎÏ×ÏË × ÎÁÓÔÒÏÊËÁÈ ÓÅÒ×ÅÒÁ, ÎÁÞÉÎÁÀÝÉÈÓÑ + ÎÁ log_*, ÐÏÚ×ÏÌÑÀÝÉÈ ÐÒÏÔÏËÏÌÉÒÏ×ÁÔØ ÚÁÐÒÏÓÙ + É ÓÔÁÔÉÓÔÉËÕ ÒÁÂÏÔÙ ÐÒÏÃÅÓÓÁ, ËÏÔÏÒÁÑ ÏÞÅÎØ ÐÏÌÅÚÎÁ ÄÌÑ ÏÔÌÁÄËÉ + É ÉÚÍÅÒÅÎÉÑ ÐÒÏÉÚ×ÏÄÉÔÅÌØÎÏÓÔÉ.

-

üÔÉ ×ÒÅÍÅÎÎÙÅ ÆÁÊÌÙ ÄÏÌÖÎÙ ÕÄÁÌÑÔØÓÑ Á×ÔÏÍÁÔÉÞÅÓËÉ, ÎÏ ÜÔÏÇÏ ÍÏÖÅÔ ÎÅ - ÐÒÏÉÚÏÊÔÉ, ÅÓÌÉ backend ÒÕÈÎÕÌ ×Ï ×ÒÅÍÑ ÓÏÒÔÉÒÏ×ËÉ. ïÓÔÁÎÏ× É ÚÁÐÕÓË - ÓÅÒ×ÅÒÎÏÇÏ ÐÒÏÃÅÓÓÁ ÏÂÅÓÐÅÞÉÔ ÉÈ ÕÄÁÌÅÎÉÅ ÉÚ ËÁÔÁÌÏÇÁ.

-

3.10) ðÏÞÅÍÕ ÎÅÏÂÈÏÄÉÍÏ ÄÅÌÁÔØ dump É restore ÐÒÉ - ÏÂÎÏ×ÌÅÎÉÉ ×ÙÐÕÓËÏ× PostgreSQL?

+

3.5) ðÏÞÅÍÕ Ñ ÐÏÌÕÞÁÀ ÓÏÏÂÝÅÎÉÅ "Sorry, too + many clients" ËÏÇÄÁ ÐÙÔÁÀÓØ ÐÏÄËÌÀÞÉÔØÓÑ Ë ÂÁÚÅ?

+ +

÷Ù ÄÏÓÔÉÇÌÉ ÕÓÔÁÎÏ×ÌÅÎÎÏÇÏ ÐÏ ÕÍÏÌÞÁÎÉÀ ÏÇÒÁÎÉÞÅÎÉÑ ÎÁ 100 ÓÅÓÓÉÊ + ÐÏÄËÌÀÞÅÎÉÑ Ë ÂÁÚÅ ÄÁÎÎÙÈ. ÷ÁÍ ÎÅÏÂÈÏÄÉÍÏ Õ×ÅÌÉÞÉÔØ ÄÌÑ + postmaster ÌÉÍÉÔ ÎÁ ËÏÌÉÞÅÓÔ×Ï ËÏÎËÕÒÅÎÔÎÙÈ backend ÐÒÏÃÅÓÓÏ×, + ÉÚÍÅÎÉ× ÚÎÁÞÅÎÉÅ max_connections × ÆÁÊÌÅ postgresql.conf + É ÐÅÒÅÓÔÁÒÔÏ×ÁÔØ postmaster.

+ + +

3.6) ðÏÞÅÍÕ ÎÅÏÂÈÏÄÉÍÏ ÄÅÌÁÔØ dump É restore ÐÒÉ + ÏÂÎÏ×ÌÅÎÉÉ ×ÙÐÕÓËÏ× PostgreSQL?

òÁÚÒÁÂÏÔÞÉËÉ PostgreSQL ÄÅÌÁÀÔ ÔÏÌØËÏ ÎÅÂÏÌØÛÉÅ ÉÚÍÅÎÅÎÉÑ ÍÅÖÄÕ - ÐÏÄ×ÙÐÕÓËÁÍÉ. ôÁËÉÍ ÏÂÒÁÚÏÍ ÏÂÎÏ×ÌÅÎÉÅ Ó ×ÅÒÓÉÉ 7.2 ÄÏ 7.2.1 ÎÅ ÔÒÅÂÕÅÔ + ÐÏÄ×ÙÐÕÓËÁÍÉ. ôÁËÉÍ ÏÂÒÁÚÏÍ ÏÂÎÏ×ÌÅÎÉÅ Ó ×ÅÒÓÉÉ 7.4.0 ÄÏ 7.4.1 ÎÅ ÔÒÅÂÕÅÔ ×ÙÐÏÌÎÅÎÉÑ dump É restore. ïÄÎÁËÏ ÐÒÉ ×ÙÈÏÄÅ ÏÞÅÒÅÄÎÏÇÏ ×ÙÐÕÓËÁ - (Ô.Å. ÐÒÉ ÏÂÎÏ×ÌÅÎÉÉ ÎÁÐÒÉÍÅÒ, Ó 7.2 ÎÁ 7.3) ÞÁÓÔÏ ÍÅÎÑÅÔÓÑ ×ÎÕÔÒÅÎÎÉÊ + (Ô.Å. ÐÒÉ ÏÂÎÏ×ÌÅÎÉÉ ÎÁÐÒÉÍÅÒ, Ó 7.3 ÎÁ 7.4) ÞÁÓÔÏ ÍÅÎÑÅÔÓÑ ×ÎÕÔÒÅÎÎÉÊ ÆÏÒÍÁÔ ÓÉÓÔÅÍÎÙÈ ÔÁÂÌÉÃ É ÆÁÊÌÏ× ÄÁÎÎÙÈ. üÔÉ ÉÚÍÅÎÅÎÉÑ ÞÁÓÔÏ ÎÏÓÑÔ ËÏÍÐÌÅËÓÎÙÊ ÈÁÒÁËÔÅÒ, ÔÁË ÞÔÏ ÎÅÔ ×ÏÚÍÏÖÎÏÓÔÉ ÏÂÅÓÐÅÞÉÔØ ÏÂÒÁÔÎÕÀ ÓÏ×ÍÅÓÔÉÍÏÓÔØ ÆÁÊÌÏ× ÄÁÎÎÙÈ. ÷ÙÐÏÌÅÎÉÅ dump ÐÏÚ×ÏÌÑÅÔ ÐÏÌÕÞÉÔØ ÄÁÎÎÙÅ @@ -812,8 +532,10 @@ ÉÓÐÏÌØÚÏ×ÁÎÉÑ dump/restore. ëÏÍÍÅÎÔÁÒÉÉ Ë ×ÙÐÕÓËÕ ÇÏ×ÏÒÉÔ ËÏÇÄÁ ÍÏÖÎÏ ÉÓÐÏÌØÚÏ×ÁÔØ pg_upgrade ÄÌÑ ÜÔÏÇÏ ×ÙÐÕÓËÁ.

-

3.11) ëÁËÏÅ ËÏÍÐØÀÔÅÒÎÏÅ "ÖÅÌÅÚÏ" Ñ ÄÏÌÖÅÎ - ÉÓÐÏÌØÚÏ×ÁÔØ?

+ +

3.7) ëÁËÏÅ ËÏÍÐØÀÔÅÒÎÏÅ "ÖÅÌÅÚÏ" Ñ ÄÏÌÖÅÎ + ÉÓÐÏÌØÚÏ×ÁÔØ?

+

ðÏÓËÏÌØËÕ "ÖÅÌÅÚÏ" ÐÅÒÓÏÎÁÌØÎÙÈ ËÏÍÐØÀÔÅÒÏ× Ñ×ÌÑÅÔÓÑ ÎÁÉÂÏÌÅÅ ÓÏ×ÍÅÓÔÉÍÙÍ, ÌÀÄÉ ÓËÌÏÎÎÙ ×ÅÒÉÔØ, ÞÔÏ ÔÁËÏÅ "ÖÅÌÅÚÏ" ÉÍÅÅÔ ÏÄÉÎÁËÏ×ÏÅ ËÁÞÅÓÔ×Ï. üÔÏ ÎÅ ÔÁË. ðÁÍÑÔØ ECC, SCSI É ËÁÞÅÓÔ×ÅÎÎÙÅ ÍÁÔÅÒÉÎÓËÉÅ ÐÌÁÔÙ @@ -827,35 +549,27 @@

÷ÏÐÒÏÓÙ ÜËÓÐÌÕÁÔÁÃÉÉ

-

4.1) ÷ ÞÅÍ ÏÔÌÉÞÉÅ ÍÅÖÄÕ ÂÉÎÁÒÎÙÍ É ÎÏÒÍÁÌØÎÙÍ - ËÕÒÓÏÒÏÍ?

- -

óÍÏÔÒÉÔÅ ÏÐÉÓÁÎÉÅ ÎÁ ÓÔÒÁÎÉÃÁÈ ÒÕËÏ×ÏÄÓÔ×Á ÐÏÓ×ÑÝÅÎÎÙÍ - DECLARE.

- -

4.2) ëÁË ×ÙÐÏÌÎÉÔØ SELECT ÔÏÌØËÏ - ÄÌÑ ÎÅÓËÏÌØËÉÈ ÐÅÒ×ÙÈ ÓÔÒÏÞÅË ÚÁÐÒÏÓÁ? ðÒÏÉÚ×ÏÌØÎÏÊ ÓÔÒÏËÉ?

+

4.1) ëÁË ×ÙÐÏÌÎÉÔØ SELECT ÔÏÌØËÏ + ÄÌÑ ÎÅÓËÏÌØËÉÈ ÐÅÒ×ÙÈ ÓÔÒÏÞÅË ÚÁÐÒÏÓÁ? ðÒÏÉÚ×ÏÌØÎÏÊ ÓÔÒÏËÉ?

-

óÍÏÔÒÉÔÅ ÓÔÁÎÉÃÕ ÒÕËÏ×ÏÄÓÔ×Á ÐÏÓ×ÑÝÅÎÎÕÀ FETCH - ÉÌÉ ÉÓÐÏÌØÚÕÊÔÅ SELECT ... LIMIT....

+

äÌÑ ÐÏÌÕÞÅÎÉÑ ÔÏÌØËÏ ÎÅÓËÏÌØËÉÈ ÓÔÒÏË, ÅÓÌÉ ×Ù ÚÎÁÅÔÅ ÉÈ ËÏÌÉÞÅÓÔ×Ï + ÎÁ ÍÏÍÅÎÔ ×ÙÐÏÌÎÅÎÉÑ SELECT ÉÓÐÏÌØÚÕÊÔÅ LIMIT.

+ åÓÌÉ ÅÓÔØ ËÁËÏÊ-ÌÉÂÏ ÉÎÄÅËÓ, ËÏÔÏÒÙÊ ÓÏ×ÐÁÄÁÅÔ Ó ORDER BY, + ÔÏ ×ÏÚÍÏÖÎÏ, ÞÔÏ ×ÅÓØ ÚÁÐÒÏÓ ×ÙÐÏÌÎÅÎ É ÎÅ ÂÕÄÅÔ. åÓÌÉ ×Ù ÎÅ ÚÎÁÅÔÅ + ËÏÌÉÞÅÓÔ×Á ÎÅÏÂÈÏÄÉÍÙÈ ÓÔÒÏË ÎÁ ÍÏÍÅÎÔ ×ÙÐÏÌÎÅÎÉÑ SELECT, + ÉÓÐÏÌØÚÕÊÔÅ ËÕÒÓÏÒ É FETCH.

-

äÁÖÅ ÅÓÌÉ ×Ù ÈÏÔÉÔÅ ÐÏÌÕÞÉÔØ ÔÏÌØËÏ ÐÅÒ×ÙÅ ÎÅÓËÏÌØËÏ ÚÁÐÉÓÅÊ, - ÂÕÄÅÔ ×ÙÐÏÌÎÅÎ ×ÅÓØ ÚÁÐÒÏÓ. òÁÓÓÍÏÔÒÉÍ ÚÁÐÒÏÓ, ËÏÔÏÒÙÊ ÉÍÅÅÔ - ORDER BY. åÓÌÉ ÅÓÔØ ËÁËÏÊ-ÌÉÂÏ ÉÎÄÅËÓ, ËÏÔÏÒÙÊ - ÓÏ×ÐÁÄÁÅÔ Ó ORDER BY, PostgreSQL ÍÏÖÅÔ - ×ÙÄÁÔØ ÔÏÌØËÏ ÎÅÓËÏÌØËÏ ÐÅÒ×ÙÈ ÚÁÐÒÏÛÅÎÎÙÈ ÚÁÐÉÓÅÊ ÉÌÉ ÍÏÖÅÔ - ×ÙÐÏÌÎÑÔØ ÚÁÐÒÏÓ ÐÏËÁ ÎÅ ÂÕÄÕÔ ×ÙÄÁÎÙ ÖÅÌÁÅÍÙÅ ÚÁÐÉÓÉ.

- -

To SELECT a random row, use: -

    SELECT col
+    

To SELECT a random row, use:

+
    SELECT col
     FROM tab
     ORDER BY random()
     LIMIT 1;
-
-

+
-

4.3) ëÁË ÐÏÌÕÞÉÔØ ÓÐÉÓÏË ÔÁÂÌÉà ÉÌÉ ÄÒÕÇÉÈ - ËÏÍÐÏÎÅÎÔÏ× × psql?

+ +

4.2) ëÁË ÍÎÅ ÎÁÊÔÉ ËÁËÉÅ ÔÁÂÌÉÃÙ, ÉÎÄÅËÓÙ, + ÂÁÚÙ ÄÁÎÎÙÈ É ÐÏÌØÚÏ×ÁÔÅÌÉ ÓÕÝÅÓÔ×ÕÀÔ? ëÁË ÍÎÅ Õ×ÉÄÅÔØ ÚÁÐÒÏÓÙ, + ËÏÔÏÒÙÅ ÉÓÐÏÌØÚÕÅÔ psql ÄÌÑ ÐÏÌÕÞÅÎÉÑ ÜÔÏÊ ÉÎÆÏÒÍÁÃÉÉ?

þÔÏÂÙ ÐÒÏÓÍÁÔÒÉ×ÁÔØ ÔÁÂÌÉÃÙ × psql, ÉÓÐÏÌØÚÕÊÔÅ ËÏÍÁÎÄÕ \dt. ðÏÌÎÙÊ ÓÐÉÓÏË ËÏÍÁÎÄ × psql ×Ù ÍÏÖÅÔÅ ÐÏÌÕÞÉÔØ, ÉÓÐÏÌØÚÕÑ \?. @@ -865,28 +579,25 @@ ÎÁÞÉÎÁÀÝÉÈÓÑ Ó ÏÂÒÁÔÎÏÊ ËÏÓÏÊ ÞÅÒÔÙ. ÷Ù ÔÁËÖÅ ÍÏÖÅÔÅ ÚÁÐÕÓÔÉÔØ psql Ó ÏÐÃÉÅÊ -E ÔÁË, ÞÔÏÂÙ ÜÔÁ ÐÒÏÇÒÁÍÍÁ ×ÙÄÁ×ÁÌÁ ÚÁÐÒÏÓÙ, ËÏÔÏÒÙÅ ÏÎÁ ÉÓÐÏÌØÚÕÅÔ ÄÌÑ ×ÙÐÏÌÎÅÎÉÑ ÚÁÄÁÎÎÙÈ ×ÁÍÉ - ËÏÍÁÎÄ. PostgreSQL ÔÁËÖÅ ÐÒÅÄÏÓÔÁ×ÌÑÅÔ SQLi + ËÏÍÁÎÄ. PostgreSQL ÔÁËÖÅ ÐÒÅÄÏÓÔÁ×ÌÑÅÔ SQL ÓÏ×ÍÅÓÔÉÍÙÊ Ó INFORMATION SCHEMA ÉÎÔÅÒÆÅÊÓ, Ó ÐÏÍÏÝØÀ ËÏÔÏÒÏÇÏ, ×Ù ÍÏÖÅÔÅ ÓÆÏÒÍÉÒÏ×ÁÔØ ÚÁÐÒÏÓ ÎÁ ÐÏÌÕÞÅÎÉÅ ÉÎÆÏÒÍÁÃÉÉ Ï ÂÁÚÅ ÄÁÎÎÙÈ.

+ +

ôÁËÖÅ ÓÕÝÅÓÔ×ÕÀÔ ÓÉÓÔÅÍÎÙÅ ÔÁÂÌÉÃÙ, ÎÁÞÉÎÁÀÝÉÅÓÑ Ó pg_.

+ +

éÓÐÏÌØÚÕÊÔÅ psql -l ÄÌÑ ÐÏÌÕÞÅÎÉÑ ÓÐÉÓËÁ ×ÓÅÈ ÂÁÚ ÄÁÎÎÙÈ.

-

4.4) ëÁË ÕÄÁÌÉÔØ ËÏÌÏÎËÕ ÉÚ ÔÁÂÌÉÃÙ ÉÌÉ - ÉÚÍÅÎÉÔØ Å£ ÔÉÐ ÄÁÎÎÙÈ?

+

ôÁËÖÅ ÐÏÓÍÏÔÒÉÔÅ ÆÁÊÌ pgsql/src/tutorial/syscat.source. + ïÎ ÐÏËÁÚÙ×ÁÅÔ ÍÎÏÇÉÅ ÉÚ ÏÐÅÒÁÔÏÒÏ× SELECT ÎÅÏÂÈÏÄÉÍÙÈ + ÄÌÑ ÐÏÌÕÞÅÎÉÑ ÉÎÆÏÒÍÁÃÉÉ ÉÚ ÓÉÓÔÅÍÎÙÈ ÔÁÂÌÉà ÂÁÚÙ ÄÁÎÎÙÈ.

-

DROP COLUMN ÆÕÎËÃÉÏÎÁÌØÎÏÓÔØ ÂÙÌÁ ÄÏÂÁ×ÌÅÎÁ × ×ÙÐÕÓË - 7.3 Ó ÏÐÅÒÁÔÏÒÏÍ ALTER TABLE DROP COLUMN. ÷ ÒÁÎÎÉÈ ×ÅÒÓÉÑÈ, - ÍÏÖÎÏ ÓÄÅÌÁÔØ ÔÁË:

-
-    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;
-
-

äÌÑ ÉÚÍÅÎÅÎÉÑ ÔÉÐÁ ÄÁÎÎÙÈ ËÏÌÏÎËÉ, ÓÄÅÌÁÊÔÅ ÔÁË:

+

4.3) ëÁË ÉÚÍÅÎÉÔØ ÔÉÐ ÄÁÎÎÙÈ ËÏÌÏÎËÉ?

+ +

÷ 8.0 É ÂÏÌÅÅ ÐÏÚÄÎÉÈ ×ÅÒÓÉÑÈ, ÉÚÍÅÎÅÎÉÅ ÔÉÐÁ ËÏÌÏÎËÉ ×ÙÐÏÌÎÑÅÔÓÑ + ÏÞÅÎØ ÌÅÇËÏ ÞÅÒÅÚ ALTER TABLE ALTER COLUMN TYPE.

+ +

÷ ÂÏÌÅÅ ÒÁÎÎÉÈ ×ÅÒÓÉÑÈ ÓÄÅÌÁÊÔÅ ÔÁË:

     BEGIN;
     ALTER TABLE tab ADD COLUMN new_col new_data_type;
@@ -895,24 +606,47 @@
     COMMIT;
 
-

4.5) ëÁËÏ×Ù ÍÁËÓÉÍÁÌØÎÙÅ ÒÁÚÍÅÒÙ ÄÌÑ ÚÁÐÉÓÅÊ, - ÔÁÂÌÉÃ É ÂÁÚÙ ÄÁÎÎÙÈ?

+

4.4) ëÁËÏ×Ù ÍÁËÓÉÍÁÌØÎÙÅ ÒÁÚÍÅÒÙ ÄÌÑ ÓÔÒÏË × ÔÁÂÌÉÃÅ, + ÔÁÂÌÉÃ É ÂÁÚÙ ÄÁÎÎÙÈ?

óÕÝÅÓÔ×ÕÀÔ ÓÌÅÄÕÀÝÉÅ ÏÇÒÁÎÉÞÅÎÉÑ:

-
-    íÁËÓÉÍÁÌØÎÙÊ ÒÁÚÍÅÒ ÂÁÚÙ?                    ÎÅÏÇÒÁÎÉÞÅÎ (ÓÕÝÅÓÔ×ÕÀÔ ÂÁÚÙ ÎÁ 32 TB)
-    íÁËÓÉÍÁÌØÎÙÊ ÒÁÚÍÅÒ ÔÁÂÌÉÃÙ?                 32 TB
-    íÁËÓÉÍÁÌØÎÙÊ ÒÁÚÍÅÒ ÚÁÐÉÓÉ?                  1.6 TB
-    íÁËÓÉÍÁÌØÎÙÊ ÒÁÚÍÅÒ ÐÏÌÑ?                    1 GB
-    íÁËÓÉÍÁÌØÎÏÅ ËÏÌÉÞÅÓÔ×Ï ÚÁÐÉÓÅÊ × ÔÁÂÌÉÃÅ?   ÎÅÏÇÒÁÎÉÞÅÎÏ
-    íÁËÓÉÍÁÌØÎÏÅ ËÏÌÉÞÅÓÔ×Ï ËÏÌÏÎÏË × ÔÁÂÌÉÃÅ?   250-1600 × ÚÁ×ÉÓÉÍÏÓÔÉ ÏÔ ÔÉÐÁ
-    íÁËÓÉÍÁÌØÎÏÅ ËÏÌÉÞÅÓÔ×Ï ÉÎÄÅËÓÏ× × ÔÁÂÌÉÃÅ?  ÎÅÏÇÒÁÎÉÞÅÎÏ
-
- - òÁÚÕÍÅÅÔÓÑ, ÐÏÎÑÔÉÅ "ÎÅÏÇÒÁÎÉÞÅÎÏ" ÎÁ ÓÁÍÏÍ ÄÅÌÅ ÏÇÒÁÎÉÞÉ×ÁÅÔÓÑ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
íÁËÓÉÍÁÌØÎÙÊ ÒÁÚÍÅÒ ÂÁÚÙ?ÎÅÏÇÒÁÎÉÞÅÎ (ÓÕÝÅÓÔ×ÕÀÔ ÂÁÚÙ ÎÁ 32 TB)
íÁËÓÉÍÁÌØÎÙÊ ÒÁÚÍÅÒ ÔÁÂÌÉÃÙ?32 TB
íÁËÓÉÍÁÌØÎÙÊ ÒÁÚÍÅÒ ÓÔÒÏËÉ?1.6 TB
íÁËÓÉÍÁÌØÎÙÊ ÒÁÚÍÅÒ ÐÏÌÑ?1 GB
íÁËÓÉÍÁÌØÎÏÅ ËÏÌÉÞÅÓÔ×Ï ÓÔÒÏË × ÔÁÂÌÉÃÅ?ÎÅÏÇÒÁÎÉÞÅÎÏ
íÁËÓÉÍÁÌØÎÏÅ ËÏÌÉÞÅÓÔ×Ï ËÏÌÏÎÏË × ÔÁÂÌÉÃÅ?250-1600 × ÚÁ×ÉÓÉÍÏÓÔÉ ÏÔ ÔÉÐÁ
íÁËÓÉÍÁÌØÎÏÅ ËÏÌÉÞÅÓÔ×Ï ÉÎÄÅËÓÏ× × ÔÁÂÌÉÃÅ?ÎÅÏÇÒÁÎÉÞÅÎÏ
+
+
+

òÁÚÕÍÅÅÔÓÑ, ÐÏÎÑÔÉÅ "ÎÅÏÇÒÁÎÉÞÅÎÏ" ÎÁ ÓÁÍÏÍ ÄÅÌÅ ÏÇÒÁÎÉÞÉ×ÁÅÔÓÑ ÄÏÓÔÕÐÎÙÍ ÄÉÓËÏ×ÙÍ ÐÒÏÓÔÒÁÎÉÓÔ×ÏÍ É ÒÁÚÍÅÒÁÍÉ ÐÁÍÑÔÉ/Ó×ÏÐÐÉÎÇÁ. ëÏÇÄÁ ÚÎÁÞÅÎÉÑ ÐÅÒÅÞÉÓÌÅÎÎÙÅ ×ÙÛÅ ÎÅÏÐÒÁ×ÄÁÎÏ ÂÏÌØÛÉÅ, ÍÏÖÅÔ - ÐÏÓÔÒÁÄÁÔØ ÐÒÏÉÚ×ÏÄÉÔÅÌØÎÏÓÔØ. + ÐÏÓÔÒÁÄÁÔØ ÐÒÏÉÚ×ÏÄÉÔÅÌØÎÏÓÔØ.

íÁËÓÉÍÁÌØÎÙÊ ÒÁÚÍÅÒ ÔÁÂÌÉÃÙ × 32 TB ÎÅ ÔÒÅÂÕÅÔ ÞÔÏÂÙ ÏÐÅÒÁÃÉÏÎÎÁÑ ÓÉÓÔÅÍÁ ÐÏÄÄÅÒÖÉ×ÁÌÁ ÆÁÊÌÙ ÂÏÌØÛÉÈ ÒÁÚÍÅÒÏ×. âÏÌØÛÉÅ ÔÁÂÌÉÃÙ ÈÒÁÎÑÔÓÑ @@ -922,9 +656,15 @@

íÁËÓÉÍÁÌØÎÙÊ ÒÁÚÍÅÒ ÔÁÂÌÉÃÙ É ÍÁËÓÉÍÁÌØÎÏÅ ËÏÌÉÞÅÓÔ×Ï ËÏÌÏÎÏË ÍÏÇÕÔ ÂÙÔØ Õ×ÅÌÉÞÅÎÙ × ÞÅÔÙÒÅ ÒÁÚÁ, ÅÓÌÉ ÒÁÚÍÅÒ ÂÌÏËÁ ÐÏ ÕÍÏÌÞÁÎÉÀ ÂÕÄÅÔ Õ×ÅÌÉÞÅÎ ÄÏ 32k.

+ +

óÕÝÅÓÔ×ÕÅÔ ÏÇÒÁÎÉÞÅÎÉÅ, ÐÏ ËÏÔÏÒÏÍÕ ÉÎÄÅËÓÙ ÎÅ ÍÏÇÕÔ ÓÏÚÄÁ×ÁÔØÓÑ ÄÌÑ + ËÏÌÏÎÏË ÄÌÉÎÎÅÅ ÞÅÍ 2,000 ÓÉÍ×ÏÌÏ×. ë ÓÞÁÓÔØÀ ÔÁËÉÅ ÉÎÄÅËÓÙ ×ÒÑÄ ÌÉ + ÄÅÊÓÔ×ÉÔÅÌØÎÏ ËÏÍÕ-ÔÏ ÎÕÖÎÙ. õÎÉËÁÌØÎÏÓÔØ ÇÁÒÁÎÔÉÒÕÅÔÓÑ ÎÁÉÌÕÞÉÍ ÏÂÒÁÚÏÍ, + Ó ÐÏÍÏÝØÀ ÆÕÎËÃÉÏÎÁÌØÎÏÇÏ ÉÎÄÅËÓÁ ÉÚ ÈÜÛÁ MD5 ÄÌÉÎÎÏÊ ËÏÌÏÎËÉ, Á + ÐÏÌÎÏÔÅËÓÔÏ×ÏÅ ÉÎÄÅËÓÉÒÏ×ÁÎÉÅ ÐÏÚ×ÏÌÑÅÔ ÉÓËÁÔØ ÓÌÏ×Á ×ÎÕÔÒÉ ËÏÌÏÎËÉ.

-

4.6) ëÁË ÍÎÏÇÏ ÄÉÓËÏ×ÏÇÏ ÐÒÏÓÔÒÁÎÓÔ×Á × ÂÁÚÅ ÄÁÎÎÙÈ - ÎÕÖÎÏ ÄÌÑ ÓÏÈÒÁÎÅÎÉÑ ÄÁÎÎÙÈ ÉÚ ÏÂÙÞÎÏÇÏ ÔÅËÓÔÏ×ÏÇÏ ÆÁÊÌÁ?

+

4.5) ëÁË ÍÎÏÇÏ ÄÉÓËÏ×ÏÇÏ ÐÒÏÓÔÒÁÎÓÔ×Á × ÂÁÚÅ ÄÁÎÎÙÈ + ÎÕÖÎÏ ÄÌÑ ÓÏÈÒÁÎÅÎÉÑ ÄÁÎÎÙÈ ÉÚ ÏÂÙÞÎÏÇÏ ÔÅËÓÔÏ×ÏÇÏ ÆÁÊÌÁ?

óõâä PostgreSQL ÍÏÖÅÔ ÐÏÔÒÅÂÏ×ÁÔØÓÑ ÄÉÓËÏ×ÏÇÏ ÐÒÏÓÔÒÁÎÓÔ×Á ÄÏ 5 ÒÁÚ ÂÏÌØÛÅ ÄÌÑ ÓÏÈÒÁÎÅÎÉÑ ÄÁÎÎÙÈ ÉÚ ÐÒÏÓÔÏÇÏ ÔÅËÓÔÏ×ÏÇÏ ÆÁÊÌÁ.

@@ -935,23 +675,23 @@ òÁÚÍÅÒ ÂÁÚÙ PostgreSQL, ÓÏÄÅÒÖÁÝÅÊ ÜÔÉ ÖÅ ÄÁÎÎÙÅ ÓÏÓÔÁ×ÉÔ ÐÒÉÂÌÉÚÉÔÅÌØÎÏ 6.4 MB ÉÚ ËÏÔÏÒÙÈ:

-    32 ÂÁÊÔ: ÎÁ ËÁÖÄÙÊ ÚÁÇÏÌÏ×ÏË ÚÁÐÉÓÉ (ÐÒÉÂÌÉÚÉÔÅÌØÎÏ)
+    28 ÂÁÊÔ: ÎÁ ËÁÖÄÙÊ ÚÁÇÏÌÏ×ÏË ÓÔÒÏËÉ × ÔÁÂÌÉÃÅ (ÐÒÉÂÌÉÚÉÔÅÌØÎÏ)
   + 24 ÂÁÊÔÁ: ÏÄÎÏ ÐÏÌÅ Ó ÃÅÌÏÞÉÓÌÅÎÎÙÍ ÔÉÐÏÍ É ÏÄÎÏ ÔÅËÓÔÏ×ÏÅ ÐÏÌÅ
-  +  4 ÂÁÊÔÁ: ÕËÁÚÁÔÅÌØ ÎÁ ÓÔÒÁÎÉÃÅ ÄÌÑ ×ÓÅÊ ÚÁÐÉÓÉ
+  +  4 ÂÁÊÔÁ: ÕËÁÚÁÔÅÌØ ÎÁ ÓÔÒÁÎÉÃÅ ÄÌÑ ×ÓÅÊ ÔÁÂÌÉÞÎÏÊ ÓÔÒÏËÉ
    ----------------------------------------
-    60 ÂÁÊÔ ÎÁ ÚÁÐÉÓØ
+    56 ÂÁÊÔ ÎÁ ÓÔÒÏËÕ × ÔÁÂÌÉÃÅ
 
    òÁÚÍÅÒ ÓÔÒÁÎÉÃÙ ÄÁÎÎÙÈ × PostgreSQL ÓÏÓÔÁ×ÌÑÅÔ 8192 ÂÁÊÔ (8 KB), ÔÁË ÞÔÏ:
 
    8192 ÂÁÊÔ ÎÁ ÓÔÒÁÎÉÃÕ
-   ---------------------   =  136 ÚÁÐÉÓÅÊ ÎÁ ÓÔÒÁÎÉÃÕ âä (ÏËÒÕÇÌ£ÎÎÏ)
-     60 ÂÁÊÔ ÎÁ ÚÁÐÉÓØ
+   ---------------------   =  146 ÓÔÒÏË × ÔÁÂÌÉÃÅ ÎÁ ÓÔÒÁÎÉÃÕ âä (ÏËÒÕÇÌ£ÎÎÏ)
+     56 ÂÁÊÔ ÎÁ ÓÔÒÏËÕ × ÔÁÂÌÉÃÅ
 
      100000 ÓÔÒÏË ÄÁÎÎÙÈ
-   ----------------------- =  735 ÓÔÒÁÎÉÃ × âä (ÏËÒÕÇÌ£ÎÎÏ)
-   128 ÚÁÐÉÓÅÊ ÎÁ ÓÔÒÁÎÉÃÕ
+   ----------------------- =  685 ÓÔÒÁÎÉÃ × âä (ÏËÒÕÇÌ£ÎÎÏ)
+   146 ÓÔÒÏË × ÔÁÂÌÉÃÅ ÎÁ ÓÔÒÁÎÉÃÕ
 
-   735 ÓÔÒÁÎÉÃ âä * 8192 ÂÁÊÔ ÎÁ ÓÔÒÁÎÉÃÕ = 6,021,120 ÂÁÊÔ (6 MB)
+   685 ÓÔÒÁÎÉÃ âä * 8192 ÂÁÊÔ ÎÁ ÓÔÒÁÎÉÃÕ = 5,611,520 ÂÁÊÔ (5.6 MB)
 

éÎÄÅËÓÙ ÎÅ ÔÒÅÂÕÀÔ ÔÁË ÍÎÏÇÏ, ÎÏ ÐÏÓËÏÌØËÕ ÏÎÉ ÓÏÚÄÁÀÔÓÑ ÄÌÑ @@ -961,25 +701,12 @@ ÚÁÎÉÍÁÀÔ ÏÞÅÎØ ÍÁÌÏ ÍÅÓÔÁ.

-

4.7) ëÁË ÍÎÅ ÕÂÅÄÉÔØÓÑ, ÞÔÏ ÓÕÝÅÓÔ×ÕÀÔ ÎÕÖÎÙÅ ÍÎÅ - ÔÁÂÌÉÃÙ, ÉÎÄÅËÓÙ, ÂÁÚÙ ÄÁÎÎÙÈ É ÐÏÌØÚÏ×ÁÔÅÌÉ?

- -

psql ÉÍÅÅÔ ÎÅÓËÏÌØËÏ ËÏÍÁÎÄ, ÎÁÞÉÎÁÀÝÉÈÓÑ Ó ÏÂÒÁÔÎÏÊ ËÏÓÏÊ - ÞÅÒÔÙ, ÄÌÑ ÔÏÇÏ ÞÔÏÂÙ ÐÒÏÓÍÁÔÒÉ×ÁÔØ ÔÁËÕÀ ÉÎÆÏÒÍÁÃÉÀ. éÓÐÏÌØÚÕÊÔÅ - \? ÄÌÑ ÔÏÇÏ, ÞÔÏÂÙ Õ×ÉÄÅÔØ ÜÔÉ ËÏÍÁÎÄÙ. ôÁËÖÅ ÓÕÝÅÓÔ×ÕÀÔ ÓÉÓÔÅÍÎÙÅ - ÔÁÂÌÉÃÙ, ÉÍÑ ËÏÔÏÒÙÈ ÎÁÞÉÎÁÅÔÓÑ ÎÁ pg_ É × ËÏÔÏÒÙÈ ÔÁËÖÅ ÓÏÄÅÒÖÉÔÓÑ - ÜÔÁ ÉÎÆÏÒÍÁÃÉÑ. åÝ£, psql -l ÐÏËÁÖÅÔ ÓÐÉÓÏË ×ÓÅÈ ÂÁÚ ÄÁÎÎÙÈ.

+

4.6) ðÏÞÅÍÕ ÍÏÉ ÚÁÐÒÏÓÙ ÒÁÂÏÔÁÀÔ ÍÅÄÌÅÎÏ? ðÏÞÅÍÕ + ÏÎÉ ÎÅ ÉÓÐÏÌØÚÕÀÔ ÍÏÉ ÉÎÄÅËÓÙ?

-

ôÁËÖÅ ÓÍÏÔÒÉÔÅ ÆÁÊÌ pgsql/src/tutorial/syscat.source. ÷ ÎÅÍ - ÐÒÅÄÓÔÁ×ÌÅÎÙ ÍÎÏÇÉÅ ÏÐÅÒÁÔÏÒÙ SELECT ËÏÔÏÒÙÅ ÎÕÖÎÙ - ÄÌÑ ÐÏÌÕÞÅÎÉÑ ÉÎÆÏÒÍÁÃÉÉ ÉÚ ÓÉÓÔÅÍÎÙÈ ÔÁÂÌÉà ÂÁÚÙ ÄÁÎÎÙÈ.

- -

4.8) õ ÍÅÎÑ ÍÅÄÌÅÎÎÏ ÒÁÂÏÔÁÀÔ ÚÁÐÒÏÓÙ ÉÌÉ ÎÅ - ÐÒÏÉÓÈÏÄÉÔ ÉÓÐÏÌØÚÏ×ÁÎÉÑ ÉÎÄÅËÓÏ×. ðÏÞÅÍÕ?

- -

éÎÄÅËÓÙ ÎÅ ÉÓÐÏÌØÚÕÀÔÓÑ ÄÌÑ ËÁÖÄÏÇÏ ÚÁÐÒÏÓÁ Á×ÔÏÍÁÔÉÞÅÓËÉ. ïÎÉ +

éÎÄÅËÓÙ ÎÅ ÉÓÐÏÌØÚÕÀÔÓÑ ÄÌÑ ËÁÖÄÏÇÏ ÚÁÐÒÏÓÁ. ïÎÉ ÉÓÐÏÌØÚÕÀÔÓÑ ÔÏÌØËÏ ÅÓÌÉ ÔÁÂÌÉÃÁ ÂÏÌØÛÅ ÍÉÎÉÍÁÌØÎÏÇÏ ÒÁÚÍÅÒÁ É ÚÁÐÒÏÓ - ×ÙÂÉÒÁÅÔ ÔÏÌØËÏ ÍÁÌÅÎØËÉÊ ÐÒÏÃÅÎÔ ÚÁÐÉÓÅÊ × ÔÁÂÌÉÃÅ. ôÁË ÕÓÔÒÏÅÎÏ, + ×ÙÂÉÒÁÅÔ ÔÏÌØËÏ ÍÁÌÅÎØËÉÊ ÐÒÏÃÅÎÔ ÓÔÒÏË × ÔÁÂÌÉÃÅ. ôÁË ÕÓÔÒÏÅÎÏ, ÐÏÔÏÍÕ ÞÔÏ ÄÏÓÔÕÐ Ë ÄÉÓËÕ Ó ÐÒÉÍÅÎÅÎÉÅÍ ÒÁÎÄÏÍÉÚÁÃÉÉ ÐÒÉ ÓËÁÎÉÒÏ×ÁÎÉÉ ÉÎÄÅËÓÏ× ÍÏÖÅÔ ÂÙÔØ ÍÅÄÌÅÎÎÅÅ, ÞÅÍ ÐÒÏÓÔÏÅ ÞÔÅÎÉÅ ÔÁÂÌÉÃÙ ÉÌÉ ÅÅ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÅ ÓËÁÎÉÒÏ×ÁÎÉÅ.

@@ -988,11 +715,11 @@ ÔÁÂÌÉÃÙ, PostgreSQL ÄÏÌÖÅÎ ÉÍÅÔØ ÓÔÁÔÉÓÔÉËÕ ÐÏ ÜÔÏÊ ÔÁÂÌÉÃÅ. üÔÁ ÓÔÁÔÉÓÔÉËÁ ÓÏÂÉÒÁÅÔÓÑ ÐÒÉ ÉÓÐÏÌØÚÏ×ÁÎÉÉ VACUUM ANALYZE ÉÌÉ ÐÒÏÓÔÏ ANALYZE. éÓÐÏÌØÚÕÑ ÓÔÁÔÉÓÔÉËÕ, ÏÐÔÉÍÉÚÁÔÏÒ - ÕÚÎÁÅÔ Ï ÔÏÍ ËÁË ÍÎÏÇÏ ÚÁÐÉÓÅÊ × ÔÁÂÌÉÃÅ É ÅÓÌÉ ÏÎ ÄÏÌÖÅÎ ÉÓÐÏÌØÚÏ×ÁÔØ + ÕÚÎÁÅÔ Ï ÔÏÍ ËÁË ÍÎÏÇÏ ÓÔÒÏË × ÔÁÂÌÉÃÅ É ÅÓÌÉ ÏÎ ÄÏÌÖÅÎ ÉÓÐÏÌØÚÏ×ÁÔØ ÉÎÄÅËÓÙ, ÔÏ ÏÎ ÍÏÖÅÔ ÐÒÉÎÉÍÁÔØ ÌÕÞÛÉÅ ÒÅÛÅÎÉÑ. óÔÁÔÉÓÔÉËÁ ÔÁËÖÅ ×ÌÉÑÅÔ ÎÁ ÏÐÒÅÄÅÌÅÎÉÅ ÏÐÔÉÍÁÌØÎÏÇÏ ÐÏÒÑÄËÁ Ó×ÑÚÙ×ÁÎÉÑ É ÍÅÔÏÄÁ Ó×ÑÚÙ×ÁÎÉÑ. - óÂÏÒ ÓÔÁÔÉÓÔÉËÉ ÄÏÌÖÅÎ ÐÅÒÉÏÄÉÞÅÓËÉ ×ÙÐÏÌÎÑÔÓÑ ÐÒÉ ÉÚÍÅÎÅÎÉÉ ÓÏÄÅÒÖÉÍÏÇÏ - ÔÁÂÌÉÃÙ.

+ ðÒÉ ÉÚÍÅÎÅÎÉÉ ÓÏÄÅÒÖÉÍÏÇÏ ÔÁÂÌÉÃÙ ÄÏÌÖÅÎ ÐÅÒÉÏÄÉÞÅÓËÉ ×ÙÐÏÌÎÑÔÓÑ + ÓÂÏÒ ÓÔÁÔÉÓÔÉËÉ.

ïÂÙÞÎÏ ÉÎÄÅËÓÙ ÎÅ ÉÓÐÏÌØÚÕÀÔÓÑ ÄÌÑ ORDER BY ÉÌÉ ÄÌÑ ×ÙÐÏÌÎÅÎÉÑ Ó×ÑÚÙ×ÁÎÉÊ. ðÏÓÌÅÄÏ×ÁÔÅÌØÎÙÊ ÐÅÒÅÂÏÒ ÓÌÅÄÕÀÝÉÊ ÚÁ Ñ×ÎÏÊ @@ -1002,16 +729,17 @@ ÂÕÄÅÔ ×ÏÚ×ÒÁÝÁÔØÓÑ ÎÅÂÏÌØÛÁÑ ÞÁÓÔØ ÔÁÂÌÉÃÙ. æÁËÔÉÞÅÓËÉ MAX() É MIN() ÎÅ ÉÓÐÏÌØÚÕÀÔ ÉÎÄÅËÓÙ, ÎÏ ÉÎÄÅËÓ ÉÓÐÏÌØÚÕÅÔÓÑ ÐÒÉ ÐÏÓÔÒÏÅÎÉÉ ÚÁÐÒÏÓÏ× Ó ORDER BY É LIMIT: -

+
     SELECT col
     FROM tab
     ORDER BY col [ DESC ]
     LIMIT 1;
-
+

åÓÌÉ ×ÁÍ ËÁÖÅÔÓÑ, ÞÔÏ ÏÐÔÉÍÉÚÁÔÏÒ ÎÅËÏÒÒÅËÔÎÏ ×ÙÂÉÒÁÅÔ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÙÊ ÐÅÒÅÂÏÒ, ÉÓÐÏÌØÚÕÊÔÅ SET enable_seqscan TO 'off' É - ÚÁÐÕÓÔÉÔÅ ÔÅÓÔÙ, ÞÔÏÂÙ Õ×ÉÄÅÔØ, ÎÅ ÓÔÁÌÏ-ÌÉ ÓËÁÎÉÒÏ×ÁÎÉÅ ÉÎÄÅËÓÏ× ÂÙÓÔÒÅÅ. + ÚÁÐÕÓÔÉÔÅ ÚÁÐÒÏÓ ÓÎÏ×Á, ÞÔÏÂÙ Õ×ÉÄÅÔØ, ÄÅÊÓÔ×ÉÔÅÌØÎÏ ÌÉ ÓËÁÎÉÒÏ×ÁÎÉÅ + ÉÎÄÅËÓÏ× ÂÙÓÔÒÅÅ.

ëÏÇÄÁ ÉÓÐÏÌØÚÕÀÔÓÑ ÏÐÅÒÁÃÉÉ Ó ÛÁÂÌÏÎÁÍÉ, ÎÁÐÒÉÍÅÒ LIKE @@ -1024,69 +752,28 @@

  • óÔÒÏËÁ ÐÏÉÓËÁ ÎÅ ÄÏÌÖÎÁ ÎÁÞÉÎÁÔØÓÑ Ó ÓÉÍ×ÏÌÁ ËÌÁÓÓÁ, Ô.Å. [a-e].
  • ðÏÉÓË ÎÅÚÁ×ÉÓÉÍÙÊ ÏÔ ÒÅÇÉÓÔÒÁ, ÔÁËÏÊ ËÁË ILIKE É - ~* ÎÅ ÉÓÐÏÌØÚÕÅÔ ÉÎÄÅËÓÙ. ÷ÍÅÓÔÏ ÎÅÇÏ, ÉÓÐÏÌØÚÕÊÔÅ ÆÕÎËÃÉÏÎÁÌØÎÙÅ - ÉÎÄÅËÓÙ, ËÏÔÏÒÙÅ ÏÐÉÓÙ×ÁÀÔÓÑ × ÓÅËÃÉÉ 4.12.
  • + ~* ÎÅ ÉÓÐÏÌØÚÕÅÔ ÉÎÄÅËÓÙ. ÷ÍÅÓÔÏ ÎÅÇÏ, ÉÓÐÏÌØÚÕÊÔÅ ÉÎÄÅËÓÙ + ×ÙÒÁÖÅÎÉÊ, ËÏÔÏÒÙÅ ÏÐÉÓÙ×ÁÀÔÓÑ × ÓÅËÃÉÉ 4.8.
  • ÷Ï ×ÒÅÍÑ initdb ÄÏÌÖÎÁ ÉÓÐÏÌØÚÏ×ÁÔØÓÑ ÌÏËÁÌØ ÐÏ ÕÍÏÌÞÁÎÉÀ - C, ÐÏÔÏÍÕ ÞÔÏ ÎÅ ÓÕÝÅÓÔ×ÕÅÔ ×ÏÚÍÏÖÎÏÓÔÉ ÕÚÎÁÔØ next-greater + C, ÐÏÔÏÍÕ ÞÔÏ ÎÅ ÓÕÝÅÓÔ×ÕÅÔ ×ÏÚÍÏÖÎÏÓÔÉ ÕÚÎÁÔØ ÓÌÅÄÕÀÝÉÊ ÎÁÉÂÏÌØÛÉÊ ÓÉÍ×ÏÌ ÄÌÑ ÎÅ-C ÌÏËÁÌÉ. ÷Ù ÍÏÖÅÔÅ ÄÌÑ ÔÁËÉÈ ÓÌÕÞÁÅ× ÓÏÚÄÁÔØ ÓÐÅÃÉÁÌØÎÙÊ - ÉÎÄÅËÓ -
    -	text_pattern_ops
    -    
    - ËÏÔÏÒÙÊ ÒÁÂÏÔÁÅÔ ÔÏÌØËÏ ÄÌÑ -
    -	LIKE
    -    
    - ÉÎÄÅËÓÉÒÏ×ÁÎÉÑ.
  • + ÉÎÄÅËÓ text_pattern_ops ËÏÔÏÒÙÊ ÒÁÂÏÔÁÅÔ ÔÏÌØËÏ ÄÌÑ + LIKE ÉÎÄÅËÓÉÒÏ×ÁÎÉÑ. -

    ÷ ×ÙÐÕÓËÁÈ ÄÏ ×ÅÒÓÉÉ 8.0, ÉÎÄÅËÓÙ ÞÁÓÔÏ ÎÅÌØÚÑ ÂÙÌÏ ÉÓÐÏÌØÚÏ×ÁÔØ, ÅÓÌÉ ÔÉÐÙ ÄÁÎÎÙÈ ÔÏÞÎÏ ÎÅ ÓÏ×ÐÁÄÁÌÉ Ó ÉÎÄÅËÓÎÙÍÉ ÔÉÐÁÍÉ ËÏÌÏÎÏË. üÔÏ ÏÓÏÂÅÎÎÏ ËÁÓÁÌÏÓØ int2, int8 É numeric ÉÎÄÅËÓÏ× ËÏÌÏÎÏË.

    -

    4.9) ëÁË ÐÏÓÍÏÔÒÅÔØ ÎÁ ÔÏ, ËÁË ÏÐÔÉÍÉÚÁÔÏÒ ×ÙÐÏÌÎÑÅÔ - ÍÏÊ ÚÁÐÒÏÓ?

    +

    4.7) ëÁË ÐÏÓÍÏÔÒÅÔØ ÎÁ ÔÏ, ËÁË ÏÐÔÉÍÉÚÁÔÏÒ ×ÙÐÏÌÎÑÅÔ + ÍÏÊ ÚÁÐÒÏÓ?

    óÍÏÔÒÉÔÅ ÓÔÒÁÎÉÃÕ ÒÕËÏ×ÏÄÓÔ×Á ÐÏÓ×ÑÝÅÎÎÕÀ EXPLAIN.

    -

    4.10) þÔÏ ÔÁËÏÅ R-tree ÉÎÄÅËÓ?

    - -

    R-tree ÉÎÄÅËÓ ÉÓÐÏÌØÚÕÅÔÓÑ ÄÌÑ ÉÎÄÅËÓÉÒÏ×ÁÎÉÑ ÐÒÏÓÔÒÁÎÓÔ×ÅÎÎÙÈ ÄÁÎÎÙÈ. - éÎÄÅËÓ ÈÜÛÁ ÎÅ ÍÏÖÅÔ ÕÐÒÁ×ÌÑÔØ ÐÏÉÓËÁÍÉ ÄÉÁÐÁÚÏÎÁ. B-tree ÉÎÄÅËÓ - ÕÐÒÁ×ÌÑÅÔ ÔÏÌØËÏ ÐÏÉÓËÁÍÉ ÄÉÁÐÁÚÏÎÁ × ÏÄÎÏÍ ÉÚÍÅÒÅÎÉÉ. R-tree ÉÎÄÅËÓ - ÍÏÖÅÔ ÕÐÒÁ×ÌÑÔØ ÍÎÏÇÏÒÁÚÍÅÒÎÙÍÉ ÄÁÎÎÙÍÉ. îÁÐÒÉÍÅÒ, ÅÓÌÉ R-tree ÉÎÄÅËÓ - ÍÏÖÅÔ ÂÙÔØ ×ÓÔÒÏÅÎ × ÁÔÒÉÂÕÔ ÔÉÐÁ point, ÔÏ ÓÉÓÔÅÍÁ ÍÏÖÅÔ - ÂÏÌÅÅ ÜÆÆÅËÔÉ×ÎÏ ÏÔ×ÅÔÉÔØ ÎÁ ÚÁÐÒÏÓ ÔÉÐÁ "×ÙÂÒÁÔØ ×ÓÅ ÔÏÞËÉ ×ÎÕÔÒÉ - ÚÁÄÁÎÎÏÇÏ ÞÅÔÙÒÅÈÕÇÏÌØÎÉËÁ."

    - -

    ëÁÎÏÎÉÞÅÓËÉÊ ÉÓÔÏÞÎÉË, ÏÐÉÓÙ×ÁÀÝÉÊ ÐÅÒ×ÏÎÁÞÁÌØÎÏÅ ÓÏÚÄÁÎÉÅ R-tree - ÜÔÏ:

    - -

    Guttman, A. "R-trees: A Dynamic Index Structure for Spatial - Searching." Proceedings of the 1984 ACM SIGMOD Int'l Conf on Mgmt - of Data, 45-57.

    - -

    ÷Ù ÍÏÖÅÔÅ ÎÁÊÔÉ ÜÔÏÔ ÄÏËÕÍÅÎÔ × ËÎÉÇÅ óÔÏÕÎÂÒÅÊËÅÒÁ "Readings in - Database Systems".

    -

    ÷ÓÔÒÏÅÎÎÎÙÅ R-tree ÍÏÇÕÔ ÕÐÒÁ×ÌÑÔØ ÐÏÌÉÇÏÎÁÍÉ É ÂÏËÓÁÍÉ. ÷ ÔÅÏÒÉÉ, - R-tree ÍÏÇÕÔ ÂÙÔØ ÒÁÓÛÉÒÅÎÙ ÄÌÑ ÕÐÒÁ×ÌÅÎÉÑ ÂÏÌØÛÉÍ ËÏÌÉÞÅÓÔ×ÏÍ - ÉÚÍÅÒÅÎÉÊ. îÁ ÐÒÁËÔÉËÅ, ÒÁÓÛÉÒÅÎÉÅ R-tree ÔÒÅÂÕÅÔ ÎÅËÏÔÏÒÙÈ ÕÓÉÌÉÊ É - Õ ÎÁÓ, × ÄÁÎÎÙÊ ÍÏÍÅÎÔ, ÎÅÔ ËÁËÏÊ-ÌÉÂÏ ÄÏËÕÍÅÎÔÁÃÉÉ Ï ÔÏÍ, ËÁË ÜÔÏ - ÓÄÅÌÁÔØ.

    - -

    4.11) þÔÏ ÔÁËÏÅ Genetic Query - Optimizer?

    - -

    íÏÄÕÌØ GEQO ÐÒÏÉÚ×ÏÄÉÔ ÂÙÓÔÒÕÀ ÏÐÔÉÍÉÚÁÃÉÀ ÚÁÐÒÏÓÁ, - ËÏÇÄÁ ÐÒÏÉÓÈÏÄÉÔ Ó×ÑÚÙ×ÁÎÉÅ ÍÎÏÇÉÈ ÔÁÂÌÉà ÞÅÒÅÚ Genetic Algorithm (GA). - üÔÏ ÐÏÚ×ÏÌÑÅÔ ÕÐÒÁ×ÌÑÔØ ÂÏÌØÛÉÍÉ ÚÁÐÒÏÓÁÍÉ ÎÁ Ó×ÑÚÙ×ÁÎÉÅ ÞÅÒÅÚ - ÎÅÉÓÔÏÝÁÀÝÉÊ ÐÏÉÓË.

    - -

    4.12) ëÁË ÍÎÅ ×ÙÐÏÌÎÉÔØ ÐÏÉÓË ÒÅÇÕÌÑÒÎÏÇÏ ×ÙÒÁÖÅÎÉÑ +

    4.8) ëÁË ÍÎÅ ×ÙÐÏÌÎÉÔØ ÐÏÉÓË ÒÅÇÕÌÑÒÎÏÇÏ ×ÙÒÁÖÅÎÉÑ É ÐÏÉÓË ÎÅÚÁ×ÉÓÉÍÙÊ ÏÔ ÒÅÇÉÓÔÒÁ ÂÕË× ÐÏÉÓË ÒÅÇÕÌÑÒÎÏÇÏ ×ÙÒÁÖÅÎÉÑ? - ëÁË ÍÎÅ ÉÓÐÏÌØÚÏ×ÁÔØ ÉÎÄÅËÓ ÄÌÑ ÐÏÉÓËÁ ÎÅÚÁ×ÉÓÉÍÏÇÏ ÏÔ ÒÅÇÉÓÔÒÁ ÂÕË×?

    + ëÁË ÍÎÅ ÉÓÐÏÌØÚÏ×ÁÔØ ÉÎÄÅËÓ ÄÌÑ ÐÏÉÓËÁ ÎÅÚÁ×ÉÓÉÍÏÇÏ ÏÔ ÒÅÇÉÓÔÒÁ ÂÕË×?

    ïÐÅÒÁÔÏÒ ~ ÐÒÏÉÚ×ÏÄÉÔ ÐÏÉÓË ÒÅÇÕÌÑÒÎÏÇÏ ×ÙÒÁÖÅÎÉÑ, Á ÏÐÅÒÁÔÏÒ ~* ÐÒÏÉÚ×ÏÄÉÔ ÎÅÚÁ×ÉÓÉÍÙÊ ÏÔ ÒÅÇÉÓÔÒÁ ÂÕË× ÐÏÉÓË ÒÅÇÕÌÑÒÎÏÇÏ @@ -1101,37 +788,85 @@ üÔÁ ËÏÎÓÔÒÕËÃÉÑ ÎÅ ÂÕÄÅÔ ÉÓÐÏÌØÚÏ×ÁÔØ ÓÔÁÎÄÁÒÔÎÙÊ ÉÎÄÅËÓ. ïÄÎÁËÏ, ÅÓÌÉ - ×Ù ÓÏÚÄÁÄÉÔÅ ÆÕÎËÃÉÏÎÁÌØÎÙÊ ÉÎÄÅËÓ, ÏÎ ÂÕÄÅÔ ÉÓÐÏÌØÚÏ×ÁÎ: + ×Ù ÓÏÚÄÁÄÉÔÅ ÉÎÄÅËÓ ×ÙÒÁÖÅÎÉÑ, ÏÎ ÂÕÄÅÔ ÉÓÐÏÌØÚÏ×ÁÎ:

         CREATE INDEX tabindex ON tab (lower(col));
     
    +

    åÓÌÉ ×ÙÛÅÕËÁÚÁÎÎÙÊ ÉÎÄÅËÓ ÓÏÚÄÁ£ÔÓÑ ËÁË UNIQUE, ÔÏ + ËÏÌÏÎËÁ, ÄÌÑ ËÏÔÏÒÏÊ ÏÎ ÓÏÚÄÁ£ÔÓÑ ÍÏÖÅÔ ÈÒÁÎÉÔØ ÓÉÍ×ÏÌÙ É × ×ÅÒÈÎÅÍ, + É × ÎÉÖÎÅÍ ÒÅÇÉÓÔÒÅ, ÉÎÄÅÓ ÎÅ ÍÏÖÅÔ ÉÍÅÔØ ÉÄÅÎÔÉÞÎÙÈ ÚÎÁÞÅÎÉÊ, ËÏÔÏÒÙÅ + ÏÔÌÉÞÁÀÔÓÑ ÔÏÌØËÏ ÒÅÇÉÓÔÒÏÍ. þÔÏÂÙ × ËÏÌÏÎËÅ ÍÏÖÎÏ ÂÙÌÏ ÈÒÁÎÉÔØ ÓÉÍ×ÏÌÙ + ÔÏÌØËÏ × ÏÐÒÅÄÅÌ£ÎÎÏÍ ÒÅÇÉÓÔÒÅ, ÉÓÐÏÌØÚÕÊÔÅ ÏÇÒÁÎÉÞÅÎÉÅ + CHECK ÉÌÉ ÐÒÏ×ÅÒËÕ ÞÅÒÅÚ ÔÒÉÇÇÅÒ.

    -

    4.13) ëÁË Ñ ÍÏÇÕ ÏÐÒÅÄÅÌÉÔØ, ÞÔÏ ÚÎÁÞÅÎÉÅ ÐÏÌÑ - ÒÁ×ÎÏ NULL × ËÁËÏÍ-ÌÉÂÏ ÚÁÐÒÏÓÅ?

    +

    4.9) ëÁË ÍÎÅ ÏÐÒÅÄÅÌÉÔØ, ÞÔÏ ÚÎÁÞÅÎÉÅ ÐÏÌÑ ÒÁ×ÎÏ + NULL × ËÁËÏÍ-ÌÉÂÏ ÚÁÐÒÏÓÅ? íÏÇÕ Ñ ÏÔÓÏÒÔÉÒÏ×ÁÔØ ÐÏÌÑ + NULL ÉÌÉ ÎÅÔ?

    ÷Ù ÐÒÏÓÔÏ ÓÒÁ×ÎÉ×ÁÅÔÅ ÚÎÁÞÅÎÉÅ Ó IS NULL É - IS NOT NULL.

    - -

    4.14) ëÁËÏ×Ù ÏÔÌÉÞÉÑ ÍÅÖÄÕ ÒÁÚÎÙÍÉ ÓÉÍ×ÏÌØÎÙÍÉ - ÔÉÐÁÍÉ?

    + IS NOT NULL, ËÁË ÚÄÅÓØ:

    -ôÉÐ            ÷ÎÕÔÒÅÎÎÅÅ ÉÍÑ   úÁÍÅÞÁÎÉÑ
    ---------------------------------------------------
    -VARCHAR(n)      varchar         ÒÁÚÍÅÒ ÚÁÄÁÅÔ ÍÁËÓÉÍÁÌØÎÕÀ ÄÌÉÎÕ, ÎÅÔ ÚÁÐÏÌÎÅÎÉÑ
    -CHAR(n)         bpchar          ÚÁÐÏÌÎÑÅÔÓÑ ÐÕÓÔÏÔÏÊ ÄÏ ÆÉËÓÉÒÏ×ÁÎÎÏÊ ÄÌÉÎÙ
    -TEXT            text            ÎÅÔ ÚÁÄÁ×ÁÅÍÏÇÏ ×ÅÒÈÎÅÇÏ ÏÇÒÁÎÉÞÅÎÉÑ ÉÌÉ ÄÌÉÎÙ
    -BYTEA           bytea           ÍÁÓÓÉ× ÂÁÊÔ ÐÅÒÅÍÅÎÎÏÊ ÄÌÉÎÙ (ÍÏÖÎÏ ÉÓÐÏÌØÚÏ×ÁÔØ null-ÂÁÊÔ ÂÅÚ ÏÐÁÓËÉ)
    -"char"          char            ÏÄÉÎ ÓÉÍ×ÏÌ
    +   SELECT *
    +   FROM tab
    +   WHERE col IS NULL;
     
    +

    þÔÏÂÙ ÏÔÓÏÒÔÉÒÏ×ÁÔØ ÄÁÎÎÙÅ ÐÏ ÚÎÁÞÅÎÉÀ ÉÓÐÏÌØÚÕÊÔÅ ÍÏÄÉÆÉËÁÔÏÒÙ + IS NULL É IS NOT NULL × ×ÙÒÁÖÅÎÉÉ + ORDER BY. ëÏÇÄÁ ÏÎÉ ÂÕÄÕÔ ÇÅÎÅÒÉÒÏ×ÁÔØ ÚÎÁÞÅÎÉÑ + ÉÓÔÉÎÁ, ÔÏ ÐÒÉ ÓÏÒÔÉÒÏ×ËÅ ÏÎÉ ÂÕÄÕÔ ×ÙÛÅ, ÞÅÍ ÚÎÁÞÅÎÉÑ + ÌÏÖØ, ÔÁË ÞÔÏ ÚÁÐÉÓÉ Ó NULL ÂÕÄÕÔ × ÏÔÓÏÒÔÉÒÏ×ÁÎÎÏÍ ÓÐÉÓËÅ Ó×ÅÒÈÕ:

    + +
    +   SELECT *
    +   FROM tab
    +   ORDER BY (col IS NOT NULL);
    +
    + +

    4.10) ëÁËÏ×Ù ÏÔÌÉÞÉÑ ÍÅÖÄÕ ÒÁÚÎÙÍÉ ÓÉÍ×ÏÌØÎÙÍÉ + ÔÉÐÁÍÉ?

    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ôÉÐ÷ÎÕÔÒÅÎÎÅÅ ÉÍÑúÁÍÅÞÁÎÉÑ
    VARCHAR(n)varcharÒÁÚÍÅÒ ÚÁÄÁÅÔ ÍÁËÓÉÍÁÌØÎÕÀ ÄÌÉÎÕ, ÎÅÔ ÚÁÐÏÌÎÅÎÉÑ
    CHAR(n)bpcharÚÁÐÏÌÎÑÅÔÓÑ ÐÕÓÔÏÔÏÊ ÄÏ ÆÉËÓÉÒÏ×ÁÎÎÏÊ ÄÌÉÎÙ
    TEXTtextÎÅÔ ÚÁÄÁ×ÁÅÍÏÇÏ ×ÅÒÈÎÅÇÏ ÏÇÒÁÎÉÞÅÎÉÑ ÉÌÉ ÄÌÉÎÙ
    BYTEAbyteaÍÁÓÓÉ× ÂÁÊÔ ÐÅÒÅÍÅÎÎÏÊ ÄÌÉÎÙ (ÍÏÖÎÏ ÉÓÐÏÌØÚÏ×ÁÔØ null-ÂÁÊÔ ÂÅÚ ÏÐÁÓËÉ)
    "char"charÏÄÉÎ ÓÉÍ×ÏÌ
    +
    +

    ÷ÎÕÔÒÅÎÎÅÅ ÉÍÑ ×Ù ÍÏÖÅÔÅ Õ×ÉÄÅÔØ, ËÏÇÄÁ ÓÍÏÔÒÉÔÅ ÓÉÓÔÅÍÎÙÅ ËÁÔÁÌÏÇÉ É × ÎÅËÏÔÏÒÙÈ ÓÏÏÂÝÅÎÉÑÈ Ï ÏÛÉÂËÁÈ.

    ðÅÒ×ÙÅ ÞÅÔÙÒÅ ÔÉÐÁ Ñ×ÌÑÀÔÓÑ "varlena" ÔÉÐÁÍÉ (Ô.Å., ÐÅÒ×ÙÅ ÞÅÔÙÒÅ ÂÁÊÔÁ ÎÁ ÄÉÓËÅ Ñ×ÌÑÀÔÓÑ ÄÌÉÎÎÏÊ, ÚÁ ËÏÔÏÒÏÊ ÓÌÅÄÕÀÔ ÄÁÎÎÙÅ). ôÁËÉÍ ÏÂÒÁÚÏÍ, ÆÁËÔÉÞÅÓËÉ ÉÓÐÏÌØÚÕÅÍÏÅ ÐÒÏÓÔÒÁÎÓÔ×Ï ÂÏÌØÛÅ, ÞÅÍ - ÏÂÏÚÎÁÞÅÎÎÙÊ ÒÁÚÍÅÒ. ïÄÎÁËÏ, ÜÔÉ ÔÉÐÙ ÄÁÎÎÙÈ ÔÁËÖÅ ÐÏÄÄÁÀÔÓÑ ÓÖÁÔÉÀ - ÉÌÉ ÍÏÇÕÔ ÂÙÔØ ÓÏÈÒÁÎÅÎÙ ÎÅ × ÓÔÒÏËÏÍ ×ÉÄÅ ÞÅÒÅÚ TOAST, + ÏÂÏÚÎÁÞÅÎÎÙÊ ÒÁÚÍÅÒ. ïÄÎÁËÏ, ÄÌÉÎÎÙÅ ÚÎÁÞÅÎÉÑ ÔÁËÖÅ ÓÖÉÍÁÀÔÓÑ, ÔÁË ÞÔÏ ÚÁÎÉÍÁÅÍÏÅ ÄÉÓËÏ×ÏÅ ÐÒÏÓÔÒÁÎÓÔ×Ï ÍÏÖÅÔ ÔÁËÖÅ ÂÙÔØ É ÍÅÎØÛÅ, ÞÅÍ ÏÖÉÄÁÌÏÓØ.

    @@ -1147,8 +882,8 @@ BYTEA bytea ËÏÔÏÒÙÈ ÍÏÇÕÔ ×ËÌÀÞÁÔØ NULL ÂÁÊÔÙ. ÷ÓÅ ÔÉÐÙ ÏÐÉÓÁÎÎÙÅ ÚÄÅÓØ, ÉÍÅÀÔ ÓÈÏÄÎÙÅ ÈÁÒÁËÔÅÒÉÓÔÉËÉ ÐÒÏÉÚ×ÏÄÉÔÅÌØÎÏÓÔÉ.

    -

    4.15.1) ëÁË ÍÎÅ ÓÏÚÄÁÔØ ÐÏÌÅ - serial/Ó-Á×ÔÏ-Õ×ÅÌÉÞÅÎÉÅÍ?

    +

    4.11.1) ëÁË ÍÎÅ ÓÏÚÄÁÔØ ÐÏÌÅ + serial/Ó-Á×ÔÏ-Õ×ÅÌÉÞÅÎÉÅÍ?

    PostgreSQL ÐÏÄÄÅÒÖÉ×ÁÅÔ ÔÉÐ ÄÁÎÎÙÈ SERIAL. ïÎ Á×ÔÏÍÁÔÉÞÅÓËÉ ÓÏÚÄÁÅÔ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔØ. îÁÐÒÉÍÅÒ:

    @@ -1169,20 +904,15 @@ BYTEA bytea óÍÏÔÒÉÔÅ ÐÏÄÒÏÂÎÏÓÔÉ Ï ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔÑÈ ÎÁ ÓÔÒÁÎÉÃÅ ÒÕËÏ×ÏÄÓÔ×Á - ÐÏÓ×ÑÝÅÎÎÏÊ create_sequence. ÷Ù ÔÁËÖÅ ÍÏÖÅÔÅ ÉÓÐÏÌØÚÏ×ÁÔØ - ËÁÖÄÏÅ ÐÏÌÅ OID × ÚÁÐÉÓÉ ËÁË ÕÎÉËÁÌØÎÏÅ ÚÎÁÞÅÎÉÅ. ïÄÎÁËÏ, - ÅÓÌÉ ×ÁÍ ÎÕÖÅÎ ÄÁÍÐ É ÐÅÒÅÚÁÇÒÕÚËÁ ÂÁÚÙ ÄÁÎÎÙÈ, ×ÁÍ ÎÅÏÂÈÏÄÉÍÏ - ÉÓÐÏÌØÚÏ×ÁÔØ ËÏÍÁÎÄÕ pg_dump Ó ÏÐÃÉÅÊ -o ÉÌÉ ÏÐÃÉÀ - COPY WITH OIDS ÄÌÑ ÓÏÈÒÁÎÅÎÉÑ ÚÎÁÞÅÎÉÊ ÐÏÌÑ - OID. + ÐÏÓ×ÑÝÅÎÎÏÊ create_sequence. -

    4.15.2) ëÁË ÍÎÅ ÐÏÌÕÞÉÔØ ÚÎÁÞÅÎÉÅ ÐÒÉ ×ÓÔÁ×ËÅ - SERIAL?

    +

    4.11.2) ëÁË ÍÎÅ ÐÏÌÕÞÉÔØ ÚÎÁÞÅÎÉÅ ÐÒÉ ×ÓÔÁ×ËÅ + SERIAL?

    ïÄÉÎ ÉÚ ÓÐÏÓÏÂÏ× ÓÏÓÔÏÉÔ × ÐÏÌÕÞÅÎÉÉ ÓÌÅÄÕÀÝÅÇÏ ÚÎÁÞÅÎÉÑ SERIAL ÉÚ ÏÂßÅËÔÁ sequence Ó ÐÏÍÏÝØÀ ÆÕÎËÃÉÉ nextval() ÐÅÒÅÄ ×ÓÔÁ×ËÏÊ É ÚÁÔÅÍ ×ÓÔÁ×ÌÑÔØ ÜÔÏ ÚÎÁÞÅÎÉÅ - Ñ×ÎÏ. éÓÐÏÌØÚÕÊÔÅ ÔÁÂÌÉÃÕ-ÐÒÉÍÅÒ × 4.15.1, ÐÒÉÍÅÒ + Ñ×ÎÏ. éÓÐÏÌØÚÕÊÔÅ ÔÁÂÌÉÃÕ-ÐÒÉÍÅÒ × 4.11.1, ÐÒÉÍÅÒ × ÐÓÅ×ÄÏÑÚÙËÅ ÐÏËÁÖÅÔ ËÁË ÜÔÏ ÄÅÌÁÅÔÓÑ:

         new_id = execute("SELECT nextval('person_id_seq')");
    @@ -1205,25 +935,17 @@ BYTEA           bytea           
         new_id = execute("SELECT currval('person_id_seq')");
     
    - é ÎÁËÏÎÅÃ, ×Ù ÍÏÖÅÔÅ ÉÓÐÏÌØÚÏ×ÁÔØ ÚÎÁÞÅÎÉÅ - OID, ×ÏÚÒÁÝÁÅÍÏÅ ÉÚ ÏÐÅÒÔÏÒÁ - INSERT ÞÔÏÂÙ Õ×ÉÄÅÔØ ÚÎÁÞÅÎÉÅ ÐÏ ÕÍÏÌÞÁÎÉÀ, ÞÔÏ - ÐÒÅÄÐÏÌÏÖÉÔÅÌØÎÏ Ñ×ÌÑÅÔÓÑ ÎÁÉÍÅÎÅÅ ÐÅÒÅÎÏÓÉÍÙÍ ÎÁ ÄÒÕÇÉÅ ÐÌÁÔÆÏÒÍÙ - ÒÅÛÅÎÉÅÍ, Ë ÔÏÍÕ ÖÅ ÚÎÁÞÅÎÉÅ oid ÂÕÄÅÔ ÕÒÅÚÁÔØÓÑ, ËÏÇÄÁ ÏÎÏ ÄÏÓÔÉÇÎÅÔ - 4 ÍÉÌÌÉÁÒÄÏ×. ÷ Perl, ÉÓÐÏÌØÚÕÑ DBI Ó ÍÏÄÕÌÅÍ Edmund Mergl'Ñ DBD::Pg, - ÚÎÁÞÅÎÉÅ oid ÓÔÁÎÏ×ÉÔÓÑ ÄÏÓÔÕÐÎÙÍ ÞÅÒÅÚ $sth->{pg_oid_status} - ÐÏÓÌÅ $sth->execute(). -

    4.15.3) îÅ ÍÏÖÅÔ ÌÉ ÐÏÌÕÞÉÔØÓÑ ÔÁË, ÞÔÏ +

    4.11.3) îÅ ÍÏÖÅÔ ÌÉ ÐÏÌÕÞÉÔØÓÑ ÔÁË, ÞÔÏ ÉÓÐÏÌØÚÏ×ÁÎÉÅ currval() É nextval() ÐÒÉ×ÅÄÅÔ Ë - ÚÁÃÉËÌÉÒÏ×ÁÎÉÀ Ó ÄÒÕÇÉÍÉ ÐÏÌØÚÏ×ÁÔÅÌÑÍÉ?

    + ÚÁÃÉËÌÉÒÏ×ÁÎÉÀ Ó ÄÒÕÇÉÍÉ ÐÏÌØÚÏ×ÁÔÅÌÑÍÉ? -

    îÅÔ. currval() ×ÏÚ×ÒÁÝÁÅÔ ÔÅËÕÝÅÅ ÚÎÁÞÅÎÉÅ, ÎÁÚÎÁÞÅÎÎÏÅ ×ÁÛÅÍ - backend'ÏÍ, Á ÎÅ ÄÒÕÇÉÍÉ ÐÏÌØÚÏ×ÁÔÅÌÑÍÉ.

    +

    îÅÔ. currval() ×ÏÚ×ÒÁÝÁÅÔ ÔÅËÕÝÅÅ ÚÎÁÞÅÎÉÅ, ÎÁÚÎÁÞÅÎÎÏÅ ×ÁÛÅÊ + ÓÅÓÓÉÅÊ, Á ÎÅ ÄÒÕÇÉÍÉ ÓÅÓÓÉÑÍÉ.

    -

    4.15.4) ðÏÞÅÍÕ ÞÉÓÌÁ ÉÚ ÍÏÅÊ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔÉ +

    4.11.4) ðÏÞÅÍÕ ÞÉÓÌÁ ÉÚ ÍÏÅÊ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔÉ ÎÅ ÉÓÐÏÌØÚÕÀÔÓÑ ÓÎÏ×Á ÐÒÉ ÏÔÍÅÎÅ ÔÒÁÎÚÁËÃÉÉ? ðÏÞÅÍÕ ÓÏÚÄÁÀÔÓÑ ÒÁÚÒÙ×Ù - ÐÒÉ ÎÕÍÅÒÁÃÉÉ × ËÏÌÏÎËÅ, ÇÄÅ Ñ ÉÓÐÏÌØÚÕÀ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔØ/SERIAL?

    + ÐÒÉ ÎÕÍÅÒÁÃÉÉ × ËÏÌÏÎËÅ, ÇÄÅ Ñ ÉÓÐÏÌØÚÕÀ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔØ/SERIAL?

    äÌÑ ÒÅÁÌÉÚÁÃÉÉ ËÏÎËÕÒÅÔÎÏÓÔÉ, ÚÎÁÞÅÎÉÑ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔÅÊ, ÐÒÉ ÎÅÏÂÈÏÄÉÍÏÓÔÉ ×ÙÄÁÀÔÓÑ ×Ï ×ÒÅÍÑ ÚÁÐÕÓËÁ ÔÒÁÎÚÁËÃÉÊ É ÎÅ ÂÌÏËÉÒÕÀÔÓÑ @@ -1231,79 +953,33 @@ BYTEA bytea ÎÕÍÅÒÁÃÉÉ ÐÒÉ ÏÔÍÅÎÅ ÔÒÁÎÚÁËÃÉÊ.

    -

    4.16) þÔÏ ÔÁËÏÅ OID? þÔÏ ÔÁËÏÅ - TID?

    - -

    ðÏÌÑ OID ÓÌÕÖÁÔ ÕÎÉËÁÌØÎÙÍÉ ÉÄÅÔÉÆÉËÁÔÏÒÁÍÉ ÚÁÐÉÓÅÊ - × PostgreSQL. ëÁÖÄÁÑ ÚÁÐÉÓØ, ËÏÔÏÒÁÑ ÓÏÚÄÁ£ÔÓÑ × PostgreSQL ÐÏÌÕÞÁÅÔ - ÕÎÉËÁÌØÎÙÊ OID. ÷ÓÅ ÚÎÁÞÅÎÉÑ OID - ÇÅÎÅÒÉÒÕÅÍÙÅ ×Ï ×ÒÅÍÑ initdb ÉÍÅÀÔ ÚÎÁÞÅÎÉÑ ÍÅÎØÛÅ 16384 (ÉÚ - include/access/transam.h). ÷ÓÅ ÓÏÚÄÁÎÎÙÅ ÐÏÌØÚÏ×ÁÔÅÌÅÍ - OID ÉÍÅÀÔ ÂïÌØÛÉÅ ÚÎÁÞÅÎÉÅ. ðÏ ÕÍÏÌÞÁÎÉÀ, ×ÓÅ ÜÔÉ - OID Ñ×ÌÑÀÔÓÑ ÕÎÉËÁÌØÎÙÍÉ ÎÅ ÔÏÌØËÏ ×ÎÕÔÒÉ ËÁËÏÊ-ÌÉÂÏ - ÔÁÂÌÉÃÙ ÉÌÉ ÂÁÚÙ ÄÁÎÎÙÈ, ÎÏ É ×ÎÕÔÒÉ ×ÓÅÊ óõâä PostgreSQL.

    - -

    PostgreSQL ÉÓÐÏÌØÚÕÅÔ OID × Ó×ÏÉÈ ×ÎÕÔÒÅÎÎÉÈ ÓÉÓÔÅÍÎÙÈ - ÔÁÂÌÉÃÁÈ ÄÌÑ Ó×ÑÚÉ ÚÁÐÉÓÅÊ É ÔÁÂÌÉÃ. úÎÁÞÅÎÉÑ OID ÍÏÇÕÔ - ÂÙÔØ ÉÓÐÏÌØÚÏ×ÁÎÙ ÄÌÑ ÉÄÅÎÔÉÆÉËÁÃÉÉ ÚÁÄÁÎÎÙÈ ÐÏÌØÚÏ×ÁÔÅÌÅÍ ÚÁÐÉÓÅÊ, - Á ÔÁËÖÅ ÉÓÐÏÌØÚÏ×ÁÔØÓÑ ÐÒÉ Ó×ÑÚÙ×ÁÎÉÑÈ. òÅËÏÍÅÎÄÕÅÔÓÑ ÉÓÐÏÌØÚÏ×ÁÔØ - ÔÉÐ ËÏÌÏÎËÉ OID ÄÌÑ ÈÒÁÎÅÎÉÑ ÚÎÁÞÅÎÉÊ OID - ÷Ù ÍÏÖÅÔÅ ÓÏÚÄÁÔØ ÉÎÄÅËÓ ÎÁ ÐÏÌÅ OID ÄÌÑ ÂÏÌÅÅ ÂÙÓÔÒÏÇÏ - ÄÏÓÔÕÐÁ.

    - -

    úÎÁÞÅÎÉÑ OID ÎÁÚÎÁÞÁÀÔÓÑ ÄÌÑ ×ÓÅÈ ÎÏ×ÙÈ ÚÁÐÉÓÅÊ ÉÚ - ÃÅÎÔÒÁÌØÎÏÊ ÏÂÌÁÓÔÉ, ËÏÔÏÒÙÅ ÉÓÐÏÌØÚÕÀÔÓÑ ×ÓÅÍÉ ×ÓÅÍÉ ÂÁÚÁÍÉ ÄÁÎÎÙÈ. - åÓÌÉ ×Ù ÈÏÔÉÔÅ ÉÚÍÅÎÉÔØ OID ÎÁ ËÁËÏÅ-ÌÉÂÏ ÄÒÕÇÏÅ - ÚÎÁÞÅÎÉÅ ÉÌÉ ÅÓÌÉ ×Ù ÈÏÔÉÔÅ ÓÏÚÄÁÔØ ËÏÐÉÀ ÔÁÂÌÉÃÙ Ó ÔÁËÉÍÉÖÅ - OID, ÔÏ ÜÔÏ ÍÏÖÎÏ ÓÄÅÌÁÔØ ÔÁË:

    -
    -        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 ÈÒÁÎÉÔÓÑ ËÁË 4-È ÂÁÊÔÎÏÅ ÃÅÌÏÅ É ÎÅ ÍÏÖÅÔ ÐÒÅ×ÙÛÁÔØ - ÚÎÁÞÅÎÉÅ × 4 ÍÉÌÌÉÁÒÄÁ. ïÄÎÁËÏ, ÅÝÅ ÎÉËÔÏ ÎÅ ÓÏÏÂÝÉÌ Ï ÔÏÍ, ÞÔÏ ÔÁËÏÅ - ÐÒÏÉÚÏÛÌÏ, ÎÏ ÍÙ ÐÌÁÎÉÒÕÅÍ ÄÏ ÔÏÇÏ ËÁË ÜÔÏ ÓÌÕÞÉÔØÓÑ ÉÚÂÁ×ÉÔÓÑ ÏÔ - ÜÔÏÇÏ ÏÇÒÁÎÉÞÅÎÉÑ.

    - -

    TID ÉÓÐÏÌØÚÕÅÔÓÑ ÄÌÑ ÉÄÅÎÔÉÆÉËÁÃÉÉ ÓÐÅÃÉÁÌØÎÙÈ - ÆÉÚÉÞÅÓËÉÈ ÚÁÐÉÓÅÊ Ó ÂÌÏÞÎÙÍÉ É offset ÚÎÁÞÅÎÉÑÍÉ. TID - ÉÚÍÅÎÑÅÔÓÑ ÐÏÓÌÅ ÔÏÇÏ ËÁË ÚÁÐÉÓÉ ÂÙÌÉ ÉÚÍÅÎÅÎÙ ÉÌÉ ÐÅÒÅÇÒÕÖÅÎÙ. -

    TID ÉÓÐÏÌØÚÕÅÔÓÑ ÉÎÄÅËÓÎÙÍÉ ÚÁÐÉÓÑÍÉ × ËÁÞÅÓÔ×Å - ÕËÁÚÁÔÅÌÑ ÎÁ ÆÉÚÉÞÅÓËÉÅ ÚÁÐÉÓÉ.

    - -

    4.17) þÔÏ ÏÚÎÁÞÁÀÔ ÎÅËÏÔÏÒÙÅ ÔÅÒÍÉÎÙ ÉÓÐÏÌØÚÕÅÍÙÅ × - PostgreSQL?

    - -

    îÅËÏÔÏÒÙÊ ÉÓÈÏÄÎÙÊ ËÏÄ É ÓÔÁÒÁÑ ÄÏËÕÍÅÎÔÁÃÉÑ ÉÓÐÏÌØÚÕÀÔ - ÏÂÝÅÕÐÏÔÒÅÂÉÔÅÌØÎÙÅ ÔÅÒÍÉÎÙ. ÷ÏÔ ÎÅËÏÔÏÒÙÅ ÉÚ ÎÉÈ:

    - -
      -
    • table, relation, class
    • - -
    • row, record, tuple
    • - -
    • column, field, attribute
    • - -
    • retrieve, select
    • - -
    • replace, update
    • - -
    • append, insert
    • +

      4.12) þÔÏ ÔÁËÏÅ OID? þÔÏ ÔÁËÏÅ + CTID?

      -
    • OID, serial value
    • +

      ëÁÖÄÁÑ, ÓÏÚÄÁ×ÁÅÍÁÑ × PostgreSQL ÔÁÂÌÉÞÎÁÑ ÓÔÒÏËÁ, ÐÏÌÕÞÁÅÔ ÕÎÉËÁÌØÎÙÊ + ÉÎÄÅÎÔÉÆÉËÁÔÏÒ OID ÚÁ ÉÓËÌÀÞÅÎÉÅÍ ÓÌÕÞÁÑ ËÏÇÄÁ + ÉÓÐÏÌØÚÏ×ÁÌÏÓØ WITHOUT OIDS. OID - ÜÔÏ + Á×ÔÏÍÁÔÉÞÅÓËÉ ÎÁÚÎÁÞÁÅÍÏÅ ÕÎÉËÁÌØÎÏÅ 4-È ÂÁÊÔÏ×ÏÅ ÃÅÌÏÅ ÞÉÓÌÏ. + ïÄÎÁËÏ, ÐÏÓÌÅ ÔÏÇÏ ËÁË ÅÇÏ ÚÎÁÞÅÎÉÅ ÐÒÅ×ÙÓÉÔ 4 ÍÉÌÌÉÁÒÄÁ, ÚÎÁÞÅÎÉÑ + OID ÎÁÞÉÎÁÀÔ ÄÕÂÌÉÒÏ×ÁÔØÓÑ. PostgreSQL ÉÓÐÏÌØÚÕÅÔ + OID ÄÌÑ Ó×ÑÚÙ×ÁÎÉÑ Ó×ÏÉÈ ×ÎÕÔÒÅÎÎÉÈ ÔÁÂÌÉÃ.

      -
    • portal, cursor
    • +

      äÌÑ ÕÎÉËÁÌØÎÙÈ ÚÎÁÞÅÎÉÊ × ËÏÌÏÎËÁÈ ÔÁÂÌÉÃÙ ÐÏÌØÚÏ×ÁÔÅÌÑ, ÌÕÞÛÉÍ + ÓÐÏÓÏÂÏÍ Ñ×ÌÑÅÔÓÑ ÉÓÐÏÌØÚÏ×ÁÎÉÅ SERIAL ×ÍÅÓÔÏ + OID, ÐÏÔÏÍÕ ÞÔÏ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔÉ SERIAL + ÕÎÉËÁÌØÎÙ ÔÏÌØËÏ ×ÎÕÔÒÉ ÔÁÂÌÉÃÙ É ÔÁËÉÍ ÏÂÒÁÚÏÍ ÍÅÎØÛÅ ÐÏÄ×ÅÒÖÅÎÙ + ÐÅÒÅÐÏÌÎÅÎÉÀ. äÌÑ ÈÒÁÎÅÎÉÑ ÚÎÁÞÅÎÉÊ 8-ÍÉ ÂÁÊÔÎÏÊ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔÉ + ÄÏÓÔÕÐÅÎ ÔÉÐ SERIAL8. -

    • range variable, table name, table alias
    • -
    +

    CTID ÉÓÐÏÌØÚÕÅÔÓÑ ÄÌÑ ÉÄÅÎÔÉÆÉËÁÃÉÉ ÓÐÅÃÉÁÌØÎÙÈ + ÆÉÚÉÞÅÓËÉÈ ÚÁÐÉÓÅÊ Ó ÂÌÏÞÎÙÍÉ É offset ÚÎÁÞÅÎÉÑÍÉ. CTID + ÉÚÍÅÎÑÅÔÓÑ ÐÏÓÌÅ ÔÏÇÏ ËÁË ÓÔÒÏËÉ × ÔÁÂÌÉÃÅ ÂÙÌÉ ÉÚÍÅÎÅÎÙ ÉÌÉ ÐÅÒÅÇÒÕÖÅÎÙ. +

    TID ÉÓÐÏÌØÚÕÅÔÓÑ ÉÎÄÅËÓÎÙÍÉ ÚÁÐÉÓÑÍÉ × ËÁÞÅÓÔ×Å + ÕËÁÚÁÔÅÌÑ ÎÁ ÆÉÚÉÞÅÓËÉÅ ÚÁÐÉÓÉ.

    -

    óÐÉÓÏË ÏÂÝÉÈ ÔÅÒÍÉÎÏ× ÐÏ ÂÁÚÁÍ ÄÁÎÎÙÈ ÍÏÖÎÏ ÎÁÊÔÉ ÎÁ http://hea-www.harvard.edu/MST/simul/software/docs/pkgs/pgsql/glossary/glossary.html

    -

    4.18) ðÏÞÅÍÕ Ñ ÐÏÌÕÞÁÀ ÏÛÉÂËÕ "ERROR: Memory - exhausted in AllocSetAlloc()"?

    +

    4.13) ðÏÞÅÍÕ Ñ ÐÏÌÕÞÁÀ ÏÛÉÂËÕ "ERROR: Memory + exhausted in AllocSetAlloc()"?

    ðÒÅÄÐÏÌÏÖÉÔÅÌØÎÏ Õ ×ÁÓ ÚÁËÏÎÞÉÌÁÓØ ×ÉÒÔÕÁÌØÎÁÑ ÐÁÍÑÔØ ÉÌÉ ÞÔÏ ×ÁÛÅ ÑÄÒÏ ÉÍÅÅÔ ÍÁÌÅÎØËÉÊ ÌÉÍÉÔ ÎÁ ÏÐÒÅÄÅÌÅÎÎÙÅ ÒÅÓÕÒÓÙ. @@ -1322,69 +998,21 @@ BYTEA bytea ËÌÉÅÎÔÏÍ, ÐÏÔÏÍÕ ÞÔÏ backend ×ÏÚ×ÒÁÝÁÅÔ ÓÌÉÛËÏÍ ÂÏÌØÛÏÊ ÏÂßÅÍ ÄÁÎÎÙÈ, ÐÏÐÙÔÁÊÔÅÓØ ×ÙÐÏÌÎÉÔØ ÜÔÕ ËÏÍÁÎÄÕ ÐÅÒÅÄ ÚÁÐÕÓËÏÍ ËÌÉÅÎÔÁ. -

    4.19) ëÁË ÍÎÅ ÕÚÎÁÔØ, ËÁËÁÑ ×ÅÒÓÉÑ PostgreSQL - ÚÁÐÕÝÅÎÁ?

    +

    4.14) ëÁË ÍÎÅ ÕÚÎÁÔØ, ËÁËÁÑ ×ÅÒÓÉÑ PostgreSQL + ÚÁÐÕÝÅÎÁ?

    éÚ psql, ÎÁÂÅÒÉÔÅ SELECT version();

    -

    4.20) ðÏÞÅÍÕ ÐÒÉ ÒÁÂÏÔÅ Ó ÍÏÉÍ ÂÏÌØÛÉÍ ÏÂßÅËÔÏÍ - Ñ ÐÏÌÕÞÁÀ ÏÛÉÂËÕ "invalid large obj descriptor"?

    - -

    ÷ÁÍ ÎÕÖÎÏ ÐÒÉ ÉÓÐÏÌØÚÏ×ÁÎÉÉ ÂÏÌØÛÏÇÏ ÏÂßÅËÔÁ ÐÏÍÅÓÔÉÔØ × ÎÁÞÁÌÅ - BEGIN WORK É × ËÏÎÃÅ COMMIT, Á ×ÎÕÔÒÉ - ÐÏÌÕÞÉ×ÛÅÇÏÓÑ ÂÌÏËÁ lo_open ... lo_close.

    - -

    ÷ ÎÁÓÔÏÑÝÉÊ ÍÏÍÅÎÔ PostgreSQL ÔÒÅÂÕÅÔ, ÞÔÏÂÙ ÐÒÉ ÚÁËÒÙÔÉÉ ÂÏÌØÛÏÇÏ - ÏÂßÅËÔÁ ÐÒÏÉÓÈÏÄÉÌÏ ×ÙÐÏÌÎÅÎÉÅ ÔÒÁÎÚÁËÃÉÉ. ôÁËÉÍ ÏÂÒÁÚÏÍ, ÐÅÒ×ÁÑ ÖÅ - ÐÏÐÙÔËÁ ÓÄÅÌÁÔØ ÞÔÏ-ÌÉÂÏ Ó ÂÏÌØÛÉÍ ÏÂßÅËÔÏÍ, ÎÅ ÓÏÂÌÀÄÁÑ ÄÁÎÎÏÇÏ ÐÒÁ×ÉÌÁ - ÐÒÉ×ÅÄÅÔ Ë ÓÏÏÂÝÅÎÉÀ invalid large obj descriptor, ÔÁË ËÁË - ËÏÄ ×ÙÐÏÌÎÑÀÝÉÊ ÒÁÂÏÔÕ ÎÁÄ ÂÏÌØÛÉÍ ÏÂßÅËÔÏÍ (ÐÏ ËÒÁÊÎÅÊ ÍÅÒÅ × - ÎÁÓÔÏÑÝÉÊ ÍÏÍÅÎÔ) ÂÕÄÅÔ ÇÅÎÅÒÉÒÏ×ÁÔØ ÓÏÏÂÝÅÎÉÅ Ï ÏÛÉÂËÅ ÅÓÌÉ ×Ù ÎÅ - ÉÓÐÏÌØÚÕÅÔÅ ÔÒÁÎÚÁËÃÉÀ.

    -

    åÓÌÉ ×Ù ÉÓÐÏÌØÚÕÅÔÅ ÔÁËÏÊ ÉÎÔÅÒÆÅÊÓ ËÌÉÅÎÔÁ ËÁË ODBC, - ×ÁÍ ×ÏÚÍÏÖÎÏ ÐÏÎÁÄÏÂÉÔÓÑ ÕÓÔÁÎÏ×ÉÔØ auto-commit off.

    - -

    4.21) ëÁË ÍÎÅ ÓÏÚÄÁÔØ ËÏÌÏÎËÕ ËÏÔÏÒÁÑ ÐÏ ÕÍÏÌÞÁÎÉÀ - ÂÕÄÅÔ ÓÏÄÅÒÖÁÔØ ÔÅËÕÝÅÅ ×ÒÅÍÑ?

    +

    4.15) ëÁË ÍÎÅ ÓÏÚÄÁÔØ ËÏÌÏÎËÕ ËÏÔÏÒÁÑ ÐÏ ÕÍÏÌÞÁÎÉÀ + ÂÕÄÅÔ ÓÏÄÅÒÖÁÔØ ÔÅËÕÝÅÅ ×ÒÅÍÑ?

    éÓÐÏÌØÚÕÊÔÅ CURRENT_TIMESTAMP:

    -CREATE TABLE test (x int, modtime timestamp DEFAULT CURRENT_TIMESTAMP );
    -
    -
    - -

    4.22) ðÏÞÅÍÕ ÍÏÉ ÐÏÄÚÁÐÒÏÓÙ, ÉÓÐÏÌØÚÕÀÝÉÅ - IN ÔÁË ÍÅÄÌÅÎÎÏ ÒÁÂÏÔÁÅÀÔ?

    - -

    ÷ ×ÅÒÓÉÑÈ ÄÏ 7.4, ÐÏÄÚÁÐÒÏÓÙ Ó×ÑÚÙ×ÁÌÉÓØ Ó ÒÏÄÉÔÅÌØÓËÉÍÉ ÚÁÐÒÏÓÁÍÉ - ÞÅÒÅÚ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÙÊ ÐÅÒÅÂÏÒ ÒÅÚÕÌØÔÁÔÏ× ÐÏÚÁÐÒÏÓÁ ÄÌÑ ËÁÖÄÏÊ - ÚÁÐÉÓÉ ÒÏÄÉÔÅÌØÓËÏÇÏ ÚÁÐÒÏÓÁ. åÓÌÉ ÐÏÄÚÁÐÒÏÓ ×ÏÚ×ÒÁÝÁÅÔ ÔÏÌØËÏ ÎÅÓËÏÌØËÏ - ÚÁÐÉÓÅÊ, Á ÒÏÄÉÔÅÌØÓËÉÊ ÚÁÐÒÏÓ ×ÏÚ×ÒÁÝÁÅÔ ÍÎÏÇÏ ÚÁÐÉÓÅÊ, - IN ÒÁÂÏÔÁÅÔ ÎÁÉÂÏÌÅÅ ÂÙÓÔÒÏ. þÔÏÂÙ - Õ×ÅÌÉÞÉÔØ ÓËÏÒÏÓÔØ × ÄÒÕÇÉÈ ÚÁÐÒÏÓÁÈ, ÚÁÍÅÎÉÔÅ IN ÎÁ - EXISTS:

    -
    -    SELECT *
    -    FROM tab
    -    WHERE col IN (SELECT subcol FROM subtab);
    -
    - - ÎÁ: -
    -    SELECT *
    -    FROM tab
    -    WHERE EXISTS (SELECT subcol FROM subtab WHERE subcol = col);
    +CREATE TABLE test (x int, modtime TIMESTAMP DEFAULT CURRENT_TIMESTAMP );
     
    - þÔÏÂÙ ÔÁËÁÑ ËÏÎÓÔÒÕËÃÉÑ ÒÁÂÏÔÁÌÁ ÂÙÓÔÒÏ, ËÏÌÏÎËÁ subcol - ÄÏÌÖÎÁ ÂÙÔØ ÐÒÏÉÎÄÅËÓÉÒÏ×ÁÎÁ. - -

    ÷ ×ÅÒÓÉÉ 7.4 É ×ÙÛÅ, IN ÆÁËÔÉÞÅÓËÉ ÉÓÐÏÌØÚÕÅÔ ÔÁËÏÊ ÖÅ - ÍÅÈÁÎÉÚÍ Ó×ÑÚÙ×ÁÎÉÑ ËÁË É ÏÂÙÞÎÙÅ ÚÁÐÒÏÓÙ, ÐÏÜÔÏÍÕ ÐÒÅÄÐÏÞÔÉÔÅÌØÎÙÍ - Ñ×ÌÑÅÔÓÑ ÉÓÐÏÌØÚÏ×ÁÎÉÅ EXISTS

    . - -

    4.23) ëÁË ÍÎÅ ×ÙÐÏÌÎÉÔØ ×ÎÅÛÎÅÅ Ó×ÑÚÙ×ÁÎÉÅ?

    +

    4.16) ëÁË ÍÎÅ ×ÙÐÏÌÎÉÔØ ×ÎÅÛÎÅÅ Ó×ÑÚÙ×ÁÎÉÅ?

    PostgreSQL ÐÏÄÄÅÒÖÉ×ÁÅÔ ×ÎÅÛÎÅÅ Ó×ÑÚÙ×ÁÎÉÅ, ÉÓÐÏÌØÚÕÑ ÓÔÁÎÄÁÒÔÎÙÊ ÓÉÎÔÁËÓÉÓ SQL. ÷ÏÔ Ä×Á ÐÒÉÍÅÒÁ:

    @@ -1400,53 +1028,37 @@ BYTEA bytea

    üÔÏ ÉÄÅÎÔÉÞÎÙÅ ÚÁÐÒÏÓÙ Ó×ÑÚÙ×ÁÎÉÑ t1.col É t2.col, ÔÁËÖÅ ×ÏÚ×ÒÁÝÁÀÔ - ÌÀÂÙÅ ÎÅÓ×ÑÚÁÎÎÙÅ ÚÁÐÉÓÉ × t1 (ËÏÔÏÒÙÅ ÎÅ ÓÏ×ÐÁÄÁÀÔ Ó t2). - RIGHT Ó×ÑÚÙ×ÁÎÉÅ ÄÏÌÖÎÏ ÄÏÂÁ×ÉÔØ ÎÅÓ×ÑÚÁÎÎÙÅ ÚÁÐÉÓÉ + ÌÀÂÙÅ ÎÅÓ×ÑÚÁÎÎÙÅ ÓÔÒÏËÉ × t1 (ËÏÔÏÒÙÅ ÎÅ ÓÏ×ÐÁÄÁÀÔ Ó t2). + RIGHT Ó×ÑÚÙ×ÁÎÉÅ ÄÏÌÖÎÏ ÄÏÂÁ×ÉÔØ ÎÅÓ×ÑÚÁÎÎÙÅ ÓÔÒÏËÉ t2. FULL Ó×ÑÚÙ×ÁÎÉÅ ÄÏÌÖÎÏ ×ÏÚ×ÒÁÔÉÔØ ÓÏ×ÐÁ×ÛÉÅ - ÚÁÐÉÓÉ ÐÌÀÓ ×ÓÅ ÎÅÓ×ÑÚÁÎÎÙÅ ÚÁÐÉÓÉ ÉÚ t1 É t2. óÌÏ×Ï OUTER + ÓÔÒÏËÉ ÐÌÀÓ ×ÓÅ ÎÅÓ×ÑÚÁÎÎÙÅ ÓÔÒÏËÉ ÉÚ t1 É t2. óÌÏ×Ï OUTER Ñ×ÌÑÅÔÓÑ ÎÅÏÂÑÚÁÔÅÌØÎÙÍ É ÎÁÚÎÁÞÁÅÔÓÑ × LEFT, RIGHT É FULL Ó×ÑÚÙ×ÁÎÉÑÈ. ïÂÙÞÎÙÅ Ó×ÑÚÙ×ÁÎÉÑ ÎÁÚÙ×ÁÀÔÓÑ INNER Ó×ÑÚÙ×ÁÎÉÑ.

    -

    ÷ ÐÒÅÄÙÄÕÝÉÈ ×ÅÒÓÉÑÈ, ×ÎÅÛÎÉÅ Ó×ÑÚÙ×ÁÎÉÑ ÍÏÇÌÉ ÂÙÔØ ÜÍÕÌÉÒÏ×ÁÎÙ - ÉÓÐÏÌØÚÕÑ UNION É NOT IN. îÁÐÒÉÍÅÒ, - ËÏÇÄÁ ÐÒÏÉÓÈÏÄÉÔ Ó×ÑÚÙ×ÁÎÉÅ tab1 É tab2, ÓÌÅÄÕÀÝÉÊ - ÚÁÐÒÏÓ ×ÙÐÏÌÎÑÅÔ ×ÎÅÛÎÅÅ Ó×ÑÚÙ×ÁÎÉÅ Ä×ÕÈ ÔÁÂÌÉÃ:
    -
    -

    -
    -    SELECT tab1.col1, tab2.col2
    -    FROM tab1, tab2
    -    WHERE tab1.col1 = tab2.col1
    -    UNION ALL
    -    SELECT tab1.col1, NULL
    -    FROM tab1
    -    WHERE tab1.col1 NOT IN (SELECT tab2.col1 FROM tab2)
    -    ORDER BY col1
    -
    - -

    4.24) ëÁË ×ÙÐÏÌÎÑÔØ ÚÁÐÒÏÓÙ, ÉÓÐÏÌØÚÕÀÝÉÅ ÎÅÓËÏÌØËÏ - ÂÁÚ ÄÁÎÎÙÈ?

    +

    4.17) ëÁË ×ÙÐÏÌÎÑÔØ ÚÁÐÒÏÓÙ, ÉÓÐÏÌØÚÕÀÝÉÅ ÎÅÓËÏÌØËÏ + ÂÁÚ ÄÁÎÎÙÈ?

    îÅ ÓÕÝÅÓÔ×ÕÅÔ ÓÐÏÓÏÂÁ ÓÏÚÄÁÔØ ÚÁÐÒÏÓ Ë ÂÁÚÁÍ ÄÁÎÎÙÈ ÏÔÌÉÞÎÙÍ ÏÔ ÔÅËÕÝÅÊ. ðÏÓËÏÌØËÕ PostgreSQL ÚÁÇÒÕÖÁÅÔ ÓÉÓÔÅÍÎÙÅ ËÁÔÁÌÏÇÉ ÓÐÅÃÉÆÉÞÎÙÅ ÄÌÑ ÂÁÚÙ ÄÁÎÎÙÈ, ÎÅÐÏÎÑÔÎÏ ÄÁÖÅ, ËÁË ÄÏÌÖÅÎ ÓÅÂÑ ×ÅÓÔÉ ÔÁËÏÊ ÍÅÖÂÁÚÏ×ÙÊ ÚÁÐÒÏÓ.

    contrib/dblink ÐÏÚ×ÏÌÑÅÔ ÚÁÐÒÏÓÙ ÍÅÖÄÕ ÂÁÚÁÍÉ, ÉÓÐÏÌØÚÕÑ - ×ÙÚÏ×Ù ÆÕÎËÃÉÊ. òÁÚÕÍÅÅÔÓÑ, ËÌÉÅÎÔ ÍÏÖÅÔ ÏÄÎÏ×ÒÅÍÅÎÎÏ ÕÓÔÁÎÁ×ÌÉ×ÁÔØ + ×ÙÚÏ×Ù ÆÕÎËÃÉÊ. òÁÚÕÍÅÅÔÓÑ, ËÌÉÅÎÔ ÍÏÖÅÔ ÏÄÎÏ×ÒÅÍÅÎÎÏ ÔÁËÖÅ ÕÓÔÁÎÁ×ÌÉ×ÁÔØ ÓÏÅÄÉÅÎÅÎÉÑ Ó ÒÁÚÌÉÞÎÙÍÉ ÂÁÚÁÍÉ ÄÁÎÎÙÈ É ÔÁËÉÈ ÏÂÒÁÚÏÍ ÏÂßÅÄÉÎÑÔØ ÉÎÆÏÒÍÁÃÉÀ ÉÚ ÎÉÈ.

    -

    4.25) ëÁË ÍÎÅ ×ÅÒÎÕÔØ ÉÚ ÆÕÎËÃÉÉ ÎÅÓËÏÌØËÏ ÚÁÐÉÓÅÊ?

    +

    4.18) ëÁË ÍÎÅ ×ÅÒÎÕÔØ ÉÚ ÆÕÎËÃÉÉ ÎÅÓËÏÌØËÏ ÓÔÒÏË ÔÁÂÌÉÃÙ?

    -

    ÷ ×ÅÒÓÉÉ 7.3, ×Ù ÍÏÖÅÔÅ ÌÅÇËÏ ×ÅÒÎÕÔØ ÎÅÓËÏÌØËÏ ÚÁÐÉÓÅÊ ÉÌÉ ËÏÌÏÎÏË ÉÚ - ËÁËÏÊ-ÌÉÂÏ ÆÕÎËÃÉÉ, - - http://techdocs.postgresql.org/guides/SetReturningFunctions.

    +

    ÷Ù ÍÏÖÅÔÅ ÌÅÇËÏ ÉÓÐÏÌØÚÏ×ÁÔØ ÆÕÎËÃÉÉ, ×ÏÚ×ÒÁÝÁÀÝÉÅ ÓÐÉÓÏË, + + http://techdocs.postgresql.org/guides/SetReturningFunctions.

    -

    4.26) ðÏÞÅÍÕ Ñ ÎÅ ÍÏÇÕ ÎÁÄÅÖÎÏ ÓÏÚÄÁ×ÁÔØ/ÕÄÁÌÑÔØ - ×ÒÅÍÅÎÎÙÅ ÔÁÂÌÉÃÙ × ÆÕÎËÃÉÑÈ PL/PgSQL?

    -

    PL/PgSQL ËÜÛÉÒÕÅÔ ÓÏÄÅÒÖÉÍÏÅ ÆÕÎËÃÉÉ É ÏÄÉÎ ÉÚ ÎÅÇÁÔÉ×ÎÙÈ ÜÆÆÅËÔÏ× ÜÔÏÇÏ + +

    4.19) ðÏÞÅÍÕ Ñ ÐÏÌÕÞÁÀ ÏÛÉÂËÕ "relation with OID #### + ÎÅ ÓÕÝÅÓÔ×ÕÅÔ", ËÏÇÄÁ ÏÂÒÁÝÁÀÔÓØ Ë ×ÒÅÍÅÎÎÙÍ ÔÁÂÌÉÃÁÍ × ÆÕÎËÃÉÑÈ PL/PgSQL?

    + +

    PL/PgSQL ËÜÛÉÒÕÅÔ ÓÃÅÎÁÒÉÉ ÆÕÎËÃÉÉ É ÏÄÉÎ ÉÚ ÎÅÇÁÔÉ×ÎÙÈ ÜÆÆÅËÔÏ× ÜÔÏÇÏ ÓÏÓÔÏÉÔ × ÔÏÍ, ÞÔÏ ÅÓÌÉ ÆÕÎËÃÉÑ PL/PgSQL ÏÂÒÁÝÁÅÔÓÑ Ë ×ÒÅÍÅÎÎÏÊ ÔÁÂÌÉÃÅ É ÜÔÁ ÔÁÂÌÉÃÁ ÐÏÚÄÎÅÅ ÕÄÁÌÑÅÔÓÑ É ÐÅÒÅÓÏÚÄÁÅÔÓÑ, Á ÆÕÎËÃÉÑ ÚÁÔÅÍ ×ÙÚÙ×ÁÅÔÓÑ ÓÎÏ×Á, ÔÏ ÅÅ ×ÙÚÏ× ÐÒÉ×ÅÄÅÔ Ë ÏÛÉÂËÅ, ÐÏÔÏÍÕ ÞÔÏ ÓËÜÛÉÒÏ×ÁÎÎÏÅ ÓÏÄÅÒÖÉÍÏÅ @@ -1455,54 +1067,44 @@ BYTEA bytea ÔÁÂÌÉÃÁÍ × PL/PgSQL. éÓÐÏÌØÚÏ×ÁÎÉÅ ÜÔÏÇÏ ÏÐÅÒÁÔÏÒÁ ÚÁÓÔÁ×ÉÔ ÚÁÐÒÏÓ ÐÅÒÅÇÅÎÅÒÉÒÏ×ÁÔØÓÑ ËÁÖÄÙÊ ÒÁÚ.

    -

    4.27) ëÁËÉÅ ÏÐÃÉÉ ÛÉÆÒÏ×ÁÎÉÑ ÓÕÝÅÓÔ×ÕÀÔ? -

    -
      -
    • contrib/pgcrypto ÓÏÄÅÒÖÉÔ ÍÎÏÇÏ ÆÕÎËÃÉÊ ÛÉÆÒÏ×ÁÎÉÑ ÄÌÑ - ÉÓÐÏÌØÚÏ×ÁÎÉÑ × SQL ÚÁÐÒÏÓÁÈ.
    • -
    • äÌÑ ÛÉÆÒÏ×ÁÎÉÑ ÐÅÒÅÄÁ×ÁÅÍÙÈ ÄÁÎÎÙÈ ÏÔ ËÌÉÅÎÔÁ Ë ÓÅÒ×ÅÒÕ, ÎÁ ÓÅÒ×ÅÒÅ - × ÆÁÊÌÅ postgresql.conf, ÏÐÃÉÑ ssl ÄÏÌÖÎÁ ÂÙÔØ ÕÓÔÁÎÏ×ÌÅÎÁ - × true, × ÆÁÊÌÅ pg_hba.conf ÄÏÌÖÎÁ ÂÙÔØ ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÁÑ - ÚÁÐÉÓØ host ÉÌÉ hostssl É ÎÁ ÓÔÏÒÏÎÅ ËÌÉÅÎÔÁ sslmode - ÎÅ ÄÏÌÖÅÎ ÂÙÔØ ÚÁÐÒÅݣΠÞÅÒÅÚ disable. (úÁÍÅÔÉÍ, ÞÔÏ ÔÁËÖÅ - ×ÏÚÍÏÖÎÏ ÉÓÐÏÌØÚÏ×ÁÎÉÅ ÎÅÚÁ×ÉÓÉÍÙÈ ×ÎÅÛÎÉÈ ÛÉÆÒÕÀÝÉÈ ÔÒÁÎÓÐÏÒÔÏ×, ÔÁËÉÈ - ËÁË stunnel ÉÌÉ ssh, ×ÍÅÓÔÏ ÓÏÂÓÔ×ÅÎÎÙÈ SSL ÓÏÅÄÉÎÅÎÉÊ PostgreSQL).
    • -
    • ðÁÒÏÌÉ ÐÏÌØÚÏ×ÁÔÅÌÅÊ Ë ÂÁÚÅ ÄÁÎÎÙÈ Á×ÔÏÍÁÔÉÞÅÓËÉ ÛÉÆÒÕÀÔÓÑ, ÐÒÉ - ÓÏÈÒÁÎÅÎÉÉ × ×ÅÒÓÉÉ 7.3. ÷ ÐÒÅÄÙÄÕÝÉÈ ×ÅÒÓÉÑÈ, ×Ù ÄÏÌÖÎÙ ÒÁÚÒÅÛÉÔØ - ÏÐÃÉÀ PASSWORD_ENCRYPTION × postgresql.conf.
    • -
    • óÅÒ×ÅÒ ÍÏÖÎÏ ÚÁÐÕÓÔÉÔØ, ÉÓÐÏÌØÚÕÑ ÛÉÆÒÏ×ÁÎÎÕÀ ÆÁÊÌÏ×ÕÀ ÓÉÓÔÅÍÕ.
    • -
    -
    - -

    òÁÓÛÉÒÅÎÉÑ PostgreSQL

    - -

    5.1) ñ ÎÁÐÉÓÁÌ ÆÕÎËÃÉÀ ÏÐÒÅÄÅÌÑÅÍÕÀ ÐÏÌØÚÏ×ÁÔÅÌÅÍ. - ëÏÇÄÁ Ñ ÚÁÐÕÓËÁÀ ÅÅ × psql, ÐÏÞÅÍÕ Ñ ÐÏÌÕÞÁÀ core dump?

    - -

    ðÒÏÂÌÅÍÁ ÍÏÖÅÔ ÚÁËÌÀÞÁÔØÓÑ × ÎÅÓËÏÌØËÉÈ ×ÅÝÁÈ. ðÏÐÙÔÁÊÔÅÓØ ÓÐÅÒ×Á - ÐÒÏÔÅÓÔÉÒÏ×ÁÔØ ×ÁÛÕ ÆÕÎËÃÉÀ × ÏÔÄÅÌØÎÏÊ ÓÁÍÏÓÔÏÑÔÅÌØÎÏÊ ÐÒÏÇÒÁÍÍÅ.

    - -

    5.2) ëÁË Ñ ÍÏÇÕ ×ÎÅÓÔÉ ÎÅËÏÔÏÒÙÅ ËÌÁÓÓÎÙÅ ÎÏ×ÙÅ - ÔÉÐÙ É ÆÕÎËÃÉÉ × PostgreSQL?

    -

    ïÔÐÒÁרÔÅ ×ÁÛÉ ÒÁÓÛÉÒÅÎÉÑ × ÓÐÉÓÏË ÒÁÓÓÙÌËÉ pgsql-hackers - É ÏÎÉ ÐÏ ×ÏÚÍÏÖÎÏÓÔÉ ÂÕÄÕÔ ÐÏÍÅÝÅÎÙ × ÐÏÄËÁÔÁÌÏÇ contrib/.

    +

    4.20) ëÁËÉÅ ÅÓÔØ ÒÅÛÅÎÉÑ ÄÌÑ ÒÅÐÌÉËÁÃÉÉ?

    -

    5.3) ëÁË ÍÎÅ ÎÁÐÉÓÁÔØ C ÆÕÎËÃÉÀ, ×ÏÚ×ÒÁÝÁÀÝÕÀ - ÚÁÐÉÓØ?

    - -

    ÷ ×ÅÒÓÉÑÈ PostgreSQL, ÎÁÞÉÎÁÑ Ó 7.3, ÆÕÎËÃÉÉ, ×ÏÚ×ÒÁÝÁÀÝÉÅ ÔÁÂÌÉÃÙ - ÐÏÌÎÏÓÔØÀ ÐÏÄÄÅÒÖÉ×ÁÀÔÓÑ × C, PL/PgSQL É SQL. ðÏÄÒÏÂÎÏÓÔÉ ÓÍÏÔÒÉÔÅ × - òÕËÏ×ÏÄÓÔ×Å ðÒÏÇÒÁÍÍÉÓÔÁ. ðÒÉÍÅÒ ×ÏÚ×ÒÁÝÁÀÝÅÊ ÔÁÂÌÉÃÕ ÆÕÎËÃÉÉ, - ÎÁÐÉÓÁÎÎÏÊ ÎÁ C, ÍÏÖÎÏ ÎÁÊÔÉ × contrib/tablefunc.

    - -

    5.4) ñ ÉÚÍÅÎÉÌ ÉÓÈÏÄÎÙÊ ÆÁÊÌ. ðÏÞÅÍÕ ÐÏÓÌÅ - ÐÅÒÅËÏÍÐÉÌÑÃÉÉ Ñ ÎÅ ×ÉÖÕ ÉÚÍÅÎÅÎÉÊ?

    - -

    æÁÊÌÙ Makefile ÎÅ ÉÍÅÀÔ ÐÒÁ×ÉÌØÎÙÈ ÚÁ×ÉÓÉÍÏÓÔÅÊ ÄÌÑ include - ÆÁÊÌÏ×. ÷Ù ÄÏÌÖÎÙ ×ÙÐÏÌÎÉÔØ make clean É ÚÁÔÅÍ make. - åÓÌÉ ×Ù ÉÓÐÏÌØÚÕÅÔÅ GCC ×Ù ÍÏÖÅÔÅ ÉÓÐÏÌØÚÏ×ÁÔØ ÏÐÃÉÀ - --enable-depend × configure ÞÔÏÂÙ ÐÏÒÕÞÉÔØ ËÏÍÐÉÌÑÔÏÒÕ - Á×ÔÏÍÁÔÉÞÅÓËÉ ÏÔÓÌÅÖÉ×ÁÔØ ÚÁ×ÉÓÉÍÏÓÔÉ.

    +

    èÏÔÑ "ÒÅÐÌÉËÁÃÉÑ" -- ÜÔÏ ÅÄÉÎÙÊ ÔÅÒÍÉÎ, ÅÓÔØ ÎÅÓËÏÌØËÏ ÒÁÚÎÙÈ ÔÅÈÎÏÌÏÇÉÊ + ÄÌÑ ×ÙÐÏÌÎÅÎÉÑ ÒÅÐÌÉËÁÃÉÊ Ó ÒÁÚÎÙÍÉ ÏÓÏÂÅÎÎÏÓÔÑÍÉ ÄÌÑ ËÁÖÄÏÊ.

    + +

    òÅÐÌÉËÁÃÉÑ Master/slave ÐÏÚ×ÏÌÑÅÔ ÉÍÅÔØ ÏÄÉÎ ÇÌÁ×ÎÙÊ (master) ÓÅÒ×ÅÒ + ÄÌÑ ×ÙÐÏÌÎÅÎÉÑ ÚÁÐÒÏÓÏ× ÞÔÅÎÉÑ/ÚÁÐÉÓÉ, × ÔÏ ×ÒÅÍÑ ËÁË ÐÏÄÞÉΣÎÎÙÅ + (slave) ÓÅÒ×ÅÒÁ ÍÏÇÕÔ ÐÒÏÉÚ×ÏÄÉÔØ ÔÏÌØËÏ ÚÁÐÒÏÓÙ + ÞÔÅÎÉÑ/SELECT. îÁÉÂÏÌÅÅ ÐÏÐÕÌÑÒÎÙÍ ÒÅÛÅÎÉÅÍ ÄÌÑ ÒÅÐÌÉËÁÃÉÉ + master-slave × PostgreSQL Ñ×ÌÑÅÔÓÑ + + Slony-I.

    + +

    òÅÐÌÉËÁÃÉÑ Multi-master ÐÏÚ×ÏÌÑÅÔ ×ÙÐÏÌÎÑÔØ ÚÁÐÒÏÓÙ ÞÔÅÎÉÑ/ÚÁÐÉÓÉ + ÎÁ ÎÅÓËÏÌØËÉÈ, ÒÅÐÌÉÃÉÒÕÅÍÙÈ ÄÒÕÇ Ó ÄÒÕÇÏÍ ËÏÍÐØÀÅÔÒÁÈ. üÔÁ ÏÓÏÂÅÎÎÏÓÔØ + ÔÁËÖÅ ÐÒÉ×ÏÄÉÔ Ë ÐÏÔÅÒÅ ÐÒÏÉÚ×ÏÄÉÔÅÌØÎÏÓÔÉ, ÐÏÔÏÍÕ ÞÔÏ ÎÅÏÂÈÏÄÉÍÁ + ÓÉÎÈÒÏÎÉÚÁÃÉÑ ÉÚÍÅÎÅÎÉÊ ÍÅÖÄÕ ÎÅÓËÏÌØËÉÍÉ ÓÅÒ×ÅÒÁÍÉ. îÁÉÂÏÌÅÅ + ÐÏÐÕÌÑÒÎÙÍ ÒÅÛÅÎÉÅÍ ÄÌÑ ÔÁËÏÊ ÒÅÐÌÉËÁÃÉÉ × PostgreSQL Ñ×ÌÑÅÔÓÑ + Pgcluster. + +

    4.21) ðÏÞÅÍÕ ÉÍÅÎÁ ÔÁÂÌÉÃÙ É ËÏÌÏÎÏË ÎÅ + ÒÁÓÐÏÚÎÁÀÔÓÑ × × ÍÏ£Í ÚÁÐÒÏÓÅ?

    + +

    îÁÉÂÏÌÅÅ ÞÁÓÔÏ ÜÔÏ ÐÒÏÉÓÈÏÄÉÔ ÉÚ-ÚÁ ÉÓÐÏÌØÚÏ×ÁÎÉÑ Ä×ÏÊÎÙÈ ËÁ×ÙÞÅË × + ÉÍÅÎÉ ÔÁÂÌÉÃÙ ÉÌÉ ËÏÌÏÎËÉ ÐÒÉ ÓÏÚÄÁÎÉÉ ÔÁÂÌÉÃÙ. ðÒÉ ÉÓÐÏÌØÚÏ×ÁÎÉÉ Ä×ÏÊÎÙÈ + ËÁ×ÙÞÅË, ÉÍÑ ÔÁÂÌÉÃÙ É ËÏÌÏÎËÉ (ËÏÔÏÒÙÅ ÎÁÚÙ×ÁÀÔ ÉÄÅÎÔÉÆÉËÁÔÏÒÁÍÉ) + ÓÏÈÒÁÎÑÀÔÓÑ × + ÒÅÇÉÓÔÒÏ-ÚÁ×ÉÓÉÍÏÍ ×ÉÄÅ; ÜÔÏ ÏÚÎÁÞÁÅÔ, ÞÔÏ ×Ù ÄÏÌÖÎÙ ÉÓÐÏÌØÚÏ×ÁÔØ + Ä×ÏÊÎÙÅ ËÁ×ÙÞËÉ, ËÏÇÄÁ ÕËÁÚÙ×ÁÅÔÅ ÜÔÉ ÉÍÅÎÁ × ÚÁÐÒÏÓÅ. îÅËÏÔÏÒÙÅ + ÉÎÔÅÒÆÅÊÓÙ, ÔÁËÉÅ ËÁË pgAdmin, ×Ï ×ÒÅÍÑ ÓÏÚÄÁÎÉÑ ÔÁÂÌÉÃÙ ÄÏÂÁ×ÌÑÀÔ + Ä×ÏÊÎÙÅ ËÁ×ÙÞËÉ Á×ÔÏÍÁÔÉÞÅÓËÉ. ôÁËÉÍ ÏÂÒÁÚÏÍ, ÞÔÏÂÙ ÉÄÅÎÔÉÆÉËÁÔÏÒÙ + ÒÁÓÐÏÚÎÁ×ÁÌÉÓØ ×Ù ÄÏÌÖÎÙ ÓÌÅÄÏ×ÁÔØ ÏÄÎÏÍÕ ÉÚ ÓÌÅÄÕÀÝÉÈ ÐÒÁ×ÉÌ: +

      +
    • éÚÂÅÇÁÔØ ÉÓÐÏÌØÚÏ×ÁÎÉÑ Ä×ÏÊÎÙÈ ËÁ×ÙÞÅË ÐÒÉ ÓÏÚÄÁÎÉÉ ÔÁÂÌÉÃ
    • +
    • éÓÐÏÌØÚÏ×ÁÔØ × ÉÄÅÎÔÉÆÉËÁÔÏÒÁÈ ÔÏÌØËÏ ÓÉÍ×ÏÌÙ ÎÉÖÎÅÇÏ ÒÅÇÉÓÔÒÁ
    • +
    • éÓÐÏÌØÚÏ×ÁÔØ Ä×ÏÊÎÙÅ ËÁ×ÙÞËÉ ÄÌÑ ÉÄÅÎÔÉÆÉËÁÔÏÒÏ× × ÚÁÐÒÏÓÁÈ
    • +
    + -- 2.39.5