diff options
author | Bruce Momjian | 2002-11-10 19:48:41 +0000 |
---|---|---|
committer | Bruce Momjian | 2002-11-10 19:48:41 +0000 |
commit | 5d283d89cb6142d721c095c28be19056ad620616 (patch) | |
tree | a0d740ceac7f654cfd599de4e76572fe5beac997 | |
parent | 8fee9615ccdfb7ed99de3dfe0d964952ed45d978 (diff) |
Update russian FAQ, from Viktor Vislobokov.
-rw-r--r-- | doc/FAQ_russian | 1994 | ||||
-rw-r--r-- | doc/src/FAQ/FAQ_russian.html | 268 |
2 files changed, 1161 insertions, 1101 deletions
diff --git a/doc/FAQ_russian b/doc/FAQ_russian index 2b2d9d073bf..6243fca042a 100644 --- a/doc/FAQ_russian +++ b/doc/FAQ_russian @@ -1,947 +1,974 @@ - ������ �� ����� ���������� ������� �� PostgreSQL + Otvety na chasto zadavaemye voprosy po PostgreSQL - ���� ���������� ����������: ����� 9 ������� 23:14:53 EDT 2002 + Data poslednego obnovleniya: Voskresen'e 20 Oktyabrya 20:47:14 EDT + 2002 - ���������� ������� ������������: ���� ������ (Bruce Momjian) + Anglijskij variant soprovozhdaet: Bryus Mom'yan (Bruce Momjian) - ������� �� �������: ������ ���������� ([email protected]) + Perevel na russkij: Viktor Vislobokov ([email protected]) - ����� ������ ���������� ������ ��������� ����� ����� �� + Samuyu svezhuyu anglijskuyu versiyu dokumenta mozhno najti na http://www.PostgreSQL.org/docs/faq-english.html. - ������ �� ������� ����������� ��� ���������� �������� ����� ����� �� - http://www.PostgreSQL.org/users-lounge/docs/faq.html. + Otvety na voprosy specifichnye dlya konkretnyh platform mozhno najti + na http://www.PostgreSQL.org/users-lounge/docs/faq.html. _________________________________________________________________ - ����� ������� + Obschie voprosy - 1.1) ��� ����� PostgreSQL? ��� ������������ ��� ��������? - 1.2) ������ ��������� ����� �� PostgreSQL? - 1.3) �� ����� Unix ���������� �������� PostgreSQL? - 1.4) ���������� �� ������ ������������� �� �� Unix �������? - 1.5) ��� ����� ����� PostgreSQL? - 1.6) ��� �������� ���������? - 1.7) ����� ��������� ������? - 1.8) ����� ������������ ������� � �������? - 1.9) ��� ����� ���������� �� ��������� ������� ��� ������������� - ������������? - 1.10) ��� ��������� SQL? - 1.11) ������ �� � PostgreSQL �������� 2000-�� ���� (Y2K)? - 1.12) ��� ������������� � ������� �������������? - 1.13) ��� �������� ��������� �� ������? - 1.14) ��� ���������� PostgreSQL � ������� ����? - 1.15) ��� ������� ���������� ������ PostgreSQL? - - ������� ������������� �� ���������� ����� + 1.1) CHto takoe PostgreSQL? Kak proiznositsya `eto nazvanie? + 1.2) Kakovy avtorskie prava na PostgreSQL? + 1.3) Na kakih Unix platformah rabotaet PostgreSQL? + 1.4) Suschestvuyut li versii portirovannye ne na Unix sistemy? + 1.5) Gde mozhno vzyat' PostgreSQL? + 1.6) Gde poluchit' podderzhku? + 1.7) Kakaya poslednyaya versiya? + 1.8) Kakaya dokumentaciya imeetsya v nalichii? + 1.9) Kak najti informaciyu ob izvestnyh oshibkah ili otsutstvuyuschih + vozmozhnostyah? + 1.10) Kak nauchit'sya SQL? + 1.11) Reshena li v PostgreSQL problema 2000-go goda (Y2K)? + 1.12) Kak prisoedinitsya k komande razrabotchikov? + 1.13) Kak otravit' soobschenie ob oshibke? + 1.14) Kak sravnivat' PostgreSQL s drugimi SUBD? + 1.15) Kak okazat' finansovuyu pomosch' PostgreSQL? + + Voprosy pol'zovatelej po klientskoj chasti - 2.1) ���������� �� ODBC �������� ��� PostgreSQL? - 2.2) ����� ����������� ���������� ��� ������������� PostgreSQL ����� - Web? - 2.3) ���� �� � PostgreSQL ����������� ��������� ������������? - ��������� �������? ���������� ��������� ��� ����� ��������? - 2.4) ����� ����� ����� ����������������� � PostgreSQL? - - ������� ����������������� + 2.1) Suschestvuyut li ODBC drajvera dlya PostgreSQL? + 2.2) Kakie instrumenty suschestvuyut dlya ispol'zovaniya PostgreSQL + cherez Web? + 2.3) Est' li u PostgreSQL graficheskij interfejs pol'zovatelya? + Generator otchetov? Vstroennyj interfejs dlya yazyka zaprosov? + 2.4) Kakie yazyki mogut vzaimodejstvovat' s PostgreSQL? + + Voprosy administrirovaniya - 3.1) ��� ��� ���������� PostgreSQL � ����� �������� �� + 3.1) Kak mne ustanovit' PostgreSQL v mesto otlichnoe ot /usr/local/pgsql? - 3.2) ����� � �������� postmaster, � ������� ��������� Bad System Call - ��� ��������� core dumped. ������? - 3.3) ����� � ������� ��������� postmaster, � ������� ������ - IpcMemoryCreate. ������? - 3.4) ����� � ������� ��������� postmaster, � ������� ������ - IpcSemaphoreCreate. ������? - 3.5) ��� ��� ��������� ������������ � ������ �����������? - 3.6) ����� ��������� ��� ����� ������� ��� ��������� - ������������������? - 3.7) ����� ����������� ��� ������� ���� � �������? - 3.8) ������ � ������� ��������� "Sorry, too many clients" ����� - ������� ������������ � ����? - 3.9) ��� ��� �� ����� pg_sorttempNNN.NN � ���� �������� � ����� - ������? - 3.10) ������ ���������� ������ dump � restore ��� ���������� �������� + 3.2) Kogda ya zapuskayu postmaster, ya poluchayu soobschenie Bad + System Call ili soobschenie core dumped. Pochemu? + 3.3) Kogda ya pytayus' zapustit' postmaster, ya poluchayu oshibki + IpcMemoryCreate. Pochemu? + 3.4) Kogda ya pytayus' zapustit' postmaster, ya poluchayu oshibki + IpcSemaphoreCreate. Pochemu? + 3.5) Kak mne upravlyat' soedineniyami s drugih komp'yuterov? + 3.6) Kakie nastrojki mne nuzhno sdelat' dlya uluchsheniya + proizvoditel'nosti? + 3.7) Kakie vozmozhnosti dlya otladki est' v nalichii? + 3.8) Pochemu ya poluchayu soobschenie "Sorry, too many clients" kogda + pytayus' podklyuchit'sya k baze? + 3.9) CHto nahoditsya v kataloge pgsql_tmp? + 3.10) Pochemu neobhodimo delat' dump i restore pri obnovlenii vypuskov PostgreSQL? - ������� ������������ + Voprosy `ekspluatacii - 4.1) � ��� ������� ����� �������� � ���������� ��������? - 4.2) ��� ��������� SELECT ������ ��� ���������� ������ ������� - �������? - 4.3) ��� �������� ������ ������ ��� ������ ����������� � psql? - 4.4) ��� ������� ������� �� �������? - 4.5) ������ ������������ ������� ��� �������, ������ � ���� ������? - 4.6) ��� ����� ��������� ������������ � ���� ������ ����� ��� - ���������� ������ �� �������� ���������� �����? - 4.7) ��� ��� ���������, ��� ���������� ������ ��� �������, �������, - ���� ������ � ������������? - 4.8) � ���� �������� �������� ������� ��� �� ���������� ������������� - ��������. ������? - 4.9) ��� ���������� �� ��, ��� ����������� ��������� ��� ������? - 4.10) ��� ����� R-tree ������? - 4.11) ��� ����� Genetic Query Optimizer? - 4.12) ��� ��� ��������� ����� ����������� ��������� � ����� - ����������� �� �������� ���� ����� ����������� ���������? ��� ��� - ������������ ������ ��� ������ ������������ �� �������� ����? - 4.13) ��� � ���� ����������, ��� �������� ���� ����� NULL � �����-���� - �������? - 4.14) ������ ������� ����� ������� ����������� ������? - 4.15.1) ��� ��� ������� ���� serial/�-����-�����������? - 4.15.2) ��� ��� �������� �������� ��� ������� SERIAL? - 4.15.3) �� ����� �� ���������� ���, ��� ������������� currval() � - nextval() �������� � �������������� � ������� ��������������? - 4.15.4) ������ ����� �� ���� ������������������ �� ������������ ����� - ��� ������ ����������? ������ ��������� ������� ��� ��������� � - �������, ��� � ��������� ������������������/SERIAL? - 4.16) ��� ����� OID? ��� ����� TID? - 4.17) ��� �������� ��������� ������� ������������ � PostgreSQL? - 4.18) ������ � ������� ������ "ERROR: Memory exhausted in + 4.1) V chem otlichie mezhdu binarnym i normal'nym kursorom? + 4.2) Kak vypolnit' SELECT tol'ko dlya neskol'kih pervyh strochek + zaprosa? + 4.3) Kak poluchit' spisok tablic ili drugih komponentov v psql? + 4.4) Kak udalit' kolonku iz tablicy? + 4.5) Kakovy maksimal'nye razmery dlya zapisej, tablic i bazy dannyh? + 4.6) Kak mnogo diskovogo prostranstva v baze dannyh nuzhno dlya + sohraneniya dannyh iz obychnogo tekstovogo fajla? + 4.7) Kak mne ubedit'sya, chto suschestvuyut nuzhnye mne tablicy, + indeksy, bazy dannyh i pol'zovateli? + 4.8) U menya medlenno rabotayut zaprosy ili ne proishodit + ispol'zovaniya indeksov. Pochemu? + 4.9) Kak posmotret' na to, kak optimizator vypolnyaet moj zapros? + 4.10) CHto takoe R-tree indeks? + 4.11) CHto takoe Genetic Query Optimizer? + 4.12) Kak mne vypolnit' poisk regulyarnogo vyrazheniya i poisk + nezavisimyj ot registra bukv poisk regulyarnogo vyrazheniya? Kak mne + ispol'zovat' indeks dlya poiska nezavisimogo ot registra bukv? + 4.13) Kak ya mogu opredelit', chto znachenie polya ravno NULL v + kakom-libo zaprose? + 4.14) Kakovy otlichiya mezhdu raznymi simvol'nymi tipami? + 4.15.1) Kak mne sozdat' pole serial/s-avto-uvelicheniem? + 4.15.2) Kak mne poluchit' znachenie pri vstavke SERIAL? + 4.15.3) Ne mozhet li poluchit'sya tak, chto ispol'zovanie currval() i + nextval() privedet k zaciklirovaniyu s drugimi pol'zovatelyami? + 4.15.4) Pochemu chisla iz moej posledovatel'nosti ne ispol'zuyutsya + snova pri otmene tranzakcii? Pochemu sozdayutsya razryvy pri numeracii + v kolonke, gde ya ispol'zuyu posledovatel'nost'/SERIAL? + 4.16) CHto takoe OID? CHto takoe TID? + 4.17) CHto oznachayut nekotorye terminy ispol'zuemye v PostgreSQL? + 4.18) Pochemu ya poluchayu oshibku "ERROR: Memory exhausted in AllocSetAlloc()"? - 4.19) ��� ��� ������, ����� ������ PostgreSQL ��������? - 4.20) ������ ��� ������ � ���� ������� �������� � ������� ������ + 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) ��� ��� ������� ������� ������� �� ��������� ����� ��������� - ������� �����? - 4.22) ������ ��� ����������, ������������ IN ��� �������� ���������? - 4.23) ��� ��������� ������� ����������? - 4.24) ��� ��������� �������, ������������ ��������� ��� ������? - 4.25) ��� ��� ������� �� ������� ��������� �������? - 4.26) ������ � �� ���� ������� ���������/������� ��������� ������� � - �������� PL/PgSQL? - 4.27) ����� ����� ���������� ����������? - - ���������� PostgreSQL + 4.21) Kak mne sozdat' kolonku kotoraya po umolchaniyu budet soderzhat' + tekuschee vremya? + 4.22) Pochemu moi podzaprosy, ispol'zuyuschie IN tak medlenno + rabotaeyut? + 4.23) Kak vypolnit' vneshnee svyazyvanie? + 4.24) Kak vypolnyat' zaprosy, ispol'zuyuschie neskol'ko baz dannyh? + 4.25) Kak mne vernut' iz funkcii neskol'ko zapisej? + 4.26) Pochemu ya ne mogu nadezhno sozdavat'/udalyat' vremennye tablicy + v funkciyah PL/PgSQL? + 4.27) Kakie opcii replikacii suschestvuyut? + 4.28) Kakie opcii shifrovaniya suschestvuyut? + + Rasshireniya PostgreSQL - 5.1) � ������� ������� ������������ �������������. ����� � �������� �� - � psql, ������ � ������� dump core? - 5.2) ��� � ���� ������ ��������� �������� ����� ���� � ������� � + 5.1) YA napisal funkciyu opredelyaemuyu pol'zovatelem. Kogda ya + zapuskayu ee v psql, pochemu ya poluchayu dump core? + 5.2) Kak ya mogu vnesti nekotorye klassnye novye tipy i funkcii v PostgreSQL? - 5.3) ��� ��� �������� C �������, ������������ ������? - 5.4) � ������� �������� ����. ������ ����� �������������� � �� ���� - ���������? + 5.3) Kak mne napisat' C funkciyu, vozvraschayuschuyu zapis'? + 5.4) YA izmenil ishodnyj fajl. Pochemu posle perekompilyacii ya ne + vizhu izmenenij? _________________________________________________________________ - ����� ������� + Obschie voprosy - 1.1) ��� ����� PostgreSQL? + 1.1) CHto takoe PostgreSQL? Kak proiznositsya `eto nazvanie? - PostgreSQL ������������ Post-Gres-Q-L (����-����-���-��). - - PostgreSQL - ��� ���������� ���� POSTGRES, ����������������� �������� - ������ ��������� ����. PostgreSQL ������������ ��������� ������ ������ - ������ � �������� ���������� ����� POSTGRES, � �������� ���� �������� - PostQuel �� ����������� ������������ SQL. PostgreSQL - ��� ��������� � - ��������� �������� ����������� �����������. + PostgreSQL proiznositsya Post-Gres-Q-L (Post-Gres-K'yu-`El). + + PostgreSQL - `eto rasshirenie SUBD POSTGRES, issledovatel'skij + prototip novogo pokoleniya SUBD. PostgreSQL odnovremenno sohranyaet + moschnuyu model' dannyh i obschirnoe kolichestvo tipov POSTGRES, i + zameschaet yazyk zaprosov PostQuel na rasshirennoe podmnozhestvo SQL. + PostgreSQL - `eto svobodnoe i polnost'yu otkrytoe programmnoe + obespechenie. + + Razrabotku PostgreSQL vypolnyaet komanda razrabotchikov, vse + uchastniki kotoroj podpisany na spisok rassylki razrabotchikov. V + nastoyaschee vremya, ih koordinatorom yavlyaetsya Mark Fornaj (Marc G. + Fournier) ([email protected]). (Sm. sekciyu 1.6 o tom, kak + podklyuchit'sya k razrabotke). `Eta komanda teper' otvechaet za vsyu + razrabotku PostgreSQL. + + Avtorami PostgreSQL 1.01 yavlyayutsya `Endryu YU (Andrew Yu) i Dzholi + CHen (Jolly Chen). Mnogie drugie vnesli svoj vklad v perenos na drugie + platformy, testirovanie, otladku i rasshirenie `etogo koda. + Pervonachal'nyj kod Postgres, iz kotorogo poyavilsya PostgreSQL, byl + itogom usilij mnogih akademicheskih studentov, neakademicheskih + studentov i mnozhestva raznyh programmistov, rabotavshih pod + rukovodstvom professora Majkla Stounbrejkera (Michael Stonebraker) v + Kalifornijskom universitete, Berkli. + + Pervonachal'noe imya, dannoe v Berkli, bylo Postgres. Kogda v 1995 + godu byla dobavlena funkcional'nost' SQL, `eto imya bylo izmeneno na + Postgres95. No i `eto imya bylo izmeneno v konce 1996 na PostgreSQL. + + 1.2) Kakovy avtorskie prava na PostgreSQL? + + PostgreSQL popadaet pod dejstvie sleduyuschego COPYRIGHT: - ���������� PostgreSQL ��������� �������, ��������� ����� Internet, ��� - ��������� ������� ��������� �� ������ �������� �������������. � - ��������� �����, �� ������������� �������� ���� ������ (Marc G. - Fournier) ([email protected]). (��. ���� � ���, ��� ������������ - � ����������). ��� ������� ������ �������� �� ��� ���������� - PostgreSQL. + Sistema Upravleniya Bazami Dannyh PostgreSQL - �������� PostgreSQL 1.01 �������� ����� � (Andrew Yu) � ����� ��� - (Jolly Chen). ������ ������ ������ ���� ����� � ������� �� ������ - ���������, ������������, ������� � ���������� ����� ����. - �������������� ��� Postgres, �� �������� �������� PostgreSQL, ��� - ������ ������ ������ ������������� ���������, ��������������� - ��������� � ��������� ������ �������������, ���������� ��� - ������������ ���������� ������ ������������� (Michael Stonebraker) � - �������������� ������������, ������. + Portion copyright (c) 1996-2002, PostgreSQL Global Development Group + Portions Copyright (c) 1994-6 Regents of the University of California - �������������� ���, ������ � ������, ���� Postgres. ����� � 1995 ���� - ���� ��������� ���������������� SQL, ��� ��� ���� �������� �� - Postgres95. �� � ��� ��� ���� �������� � ����� 1996 �� PostgreSQL. + Predostavlyayutsya prava na ispol'zovanie, kopirovanie, izmenenie i + rasprostranenie dannogo programmnogo obespecheniya i ego dokumentacii + dlya lyubyh celej, besplatno i bez podpisaniya kakogo-libo + soglasheniya, pri uslovii chto dlya kazhdoj kopii budut predostavleny + dannoe vyshe zamechanie ob avtorskih pravah, tekuschij paragraf i dva + sleduyuschih paragrafa. + + KALIFORNIJSKIJ UNIVERSITET NE NESET NIKAKOJ OTVETSTVENNOSTI ZA LYUBYE + POVREZHDENIYA, VKLYUCHAYA POTERYU DOHODA, NANESENNYE PRYAMYM ILI + NEPRYAMYM, SPECIAL'NYM ILI SLUCHAJNYM ISPOL'ZOVANIEM DANNOGO + PROGRAMMNOGO OBESPECHENIYA ILI EGO DOKUMENTACII, DAZHE ESLI + KALIFORNIJSKIJ UNIVERSITET BYL IZVESCHEN O VOZMOZHNOSTI TAKIH + POVREZHDENIJ. + + KALIFORNIJSKIJ UNIVERSITET SPECIAL'NO OTKAZYVAZYVAETSYA PREDOSTAVLYAT' + LYUBYE GARANTII, VKLYUCHAYA, NO NE OGRANICHIVAYAS' TOL'KO `ETIMI + GARANTIYAMI: NEYAVNYE GARANTII PRIGODNOSTI TOVARA ILI PRIGODNOSTI DLYA + OTDEL'NOJ CELI. DANNOE PROGRAMMNOE OBESPECHENIE PREDOSTAVLYAETSYA NA + OSNOVE PRICIPA "KAK EST'" I KALIFORNIJSKIJ UNIVERSITET NE OBYAZAN + PREDOSTAVLYAT' SOPROVOZHDENIE, PODDERZHKU, OBNOVLENIYA, RASSHIRENIYA + ILI IZMENENIYA. + + Vysheizlozhennoe yavlyaetsya BSD licenziej, klassicheskoj licenziej + programmnogo obespecheniya s otkrytym kodom. `Eta licenziya ne + nakladyvaet ogranichenij na ispol'zovanie ishodnogo koda. Nam + nravitsya `eta licenziya i my ne sobiraemsya eio menyat'. + + 1.3) Na kakih Unix platformah rabotaet PostgreSQL? + + Obychno, PostgreSQL mozhet rabotat' na lyuboj sovremennoj platforme + sovmestimoj s Unix. V instrukcii po ustanovke, vy najdete spisok teh + platform, na kotoryh byli provedeny testovye zapuski PostgreSQL k + momentu vyhoda dannoj versii. - 1.2) ������ ��������� ����� �� PostgreSQL? + 1.4) Suschestvuyut li versii perenesennye ne na Unix sistemy? - PostgreSQL �������� ��� �������� ���������� COPYRIGHT: + Klient - ������� ���������� ������ ������ PostgreSQL + Dlya zapuska na platformah MS Windows vozmozhna kompilyaciya C + biblioteki libpq, psql, drugih interfesov i klientskih prilozhenij. V + `etom sluchae, klient zapuskaetsya na MS Windows i svyazyvaetsya po + TCP/IP s serverom, zapuschennym na odnoj iz podderzhivaemyh Unix + platform. V distributiv vklyuchaetsya fajl win32.mak dlya togo, chtoby + mozhno bylo provesti sborku biblioteki libpq i psql dlya Win32. + PostgreSQL takzhe rabotaet cherez ODBC. - Portion copyright (c) 1996-2002, PostgreSQL Global Development Group - Portions Copyright (c) 1994-6 Regents of the University of California + Server + + Server BD mozhet byt' zapuschen na Windows NT i Win2k, ispol'zuya + biblioteku Cygwin, razrabotannuyu dlya perenosa programmnogo + obespecheniya Unix v NT. Smotrite pgsql/doc/FAQ_MSWIN v distributive + ili MS Windows FAQ na http://www.PostgreSQL.org/docs/faq-mswin.html. + + PostgreSQL, sportirovannyj special'no dlya MS Win NT/2000/XP v + nastoyaschij moment nachal rabotat'. - ��������������� ����� �� �������������, �����������, ��������� � - ��������������� ������� ������������ ����������� � ��� ������������ - ��� ����� �����, ��������� � ��� ���������� ������-���� ����������, - ��� ������� ��� ��� ������ ����� ����� ������������� ������ ���� - ��������� �� ��������� ������, ������� �������� � ��� ��������� - ���������. - - �������������� ����������� �� ����� ������� ��������������� �� ����� - �����������, ������� ������ ������, ���������� ������ ��� ��������, - ����������� ��� ��������� �������������� ������� ������������ - ����������� ��� ��� ������������, ���� ���� �������������� ����������� - ��� ������� � ����������� ����� �����������. - - �������������� ����������� ���������� ���������������� ������������� - ����� ��������, �������, �� �� ������������� ������ ����� ����������: - ������� �������� ����������� ������ ��� ����������� ��� ��������� - ����. ������ ����������� ����������� ��������������� �� ������ ������� - "��� ����" � �������������� ����������� �� ������ ������������� - �������������, ���������, ����������, ���������� ��� ���������. - - �������������� �������� BSD ���������, ������������ ��������� - ������������ ����������� � �������� �����. ��� �������� �� ����������� - ����������� �� ������������� ��������� ����. ��� �������� ��� �������� - � �� �� ���������� ţ ������. - - 1.3) �� ����� Unix ���������� �������� PostgreSQL? - - ������, PostgreSQL ����� �������� �� ����� ����������� ��������� - ����������� � Unix. � ���������� �� ���������, �� ������� ������ ��� - ��������, �� ������� ���� ��������� �������� ������� PostgreSQL � - ������� ������ ������ ������. - - 1.4) ���������� �� ������ ������������ �� �� Unix �������? - - ������ - - ��� ������� �� ���������� MS Windows �������� ���������� C ���������� - libpq, psql � ������ ���������� � �������� ������. � ���� ������, - ������ ����������� �� MS Windows � ����������� �� TCP/IP � ��������, - ���������� �� ����� �� �������������� Unix ��������. � ����������� - ���������� ���� win31.mak ��� ����, ����� ����� ���� �������� ������ - ���������� libpq � psql ��� Win32. PostgreSQL ����� �������� ����� - ODBC. - - ������ - - ������ �� ����� ���� ������� �� Windows NT � Win2k, ��������� - ���������� Cygwin, ������������� ��� �������� ������������ ����������� - Unix � NT. �������� pgsql/doc/FAQ_MSWIN � ������������ ��� MS Windows - FAQ �� ����� �����. �� �� ��������� ���������� ���������� PostgreSQL - �� �����-���� ��������� Microsoft. - - 1.5) ��� ����� ����� PostgreSQL? - - ��������, ���������������� ��������� �������� �� ftp ���� PostgreSQL - ftp://ftp.PostgreSQL.org/pub. ������ ������ �� ������� �� ����� - �������� �����. - - 1.6) ��� �������� ���������? - - �������� ������ ��������: [email protected]. � ��� ����� - ��������� ����� ����, ���������� PostgreSQL. ����� �����������, - ��������� ������ �� ����������� �����, � ������� � ���� ������ (�� � - ����) �������� ��������� ������: + 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: [email protected]. V nem mozhno + obsuzhdat' lyubye temy, kasayuschiesya PostgreSQL. CHtoby + podpisat'sya, otprav'te pis'mo po `elektronnoj pochte, v kotorom v + tele pis'ma (ne v teme) napishite sleduyuschie stroki: subscribe end - �� ����� [email protected]. + na adres [email protected]. - ���������� ������� ������. ����� ����������� �� ����, ��������� ������ - �� ����������� ����� �� �����: - [email protected] � � ���� ������ �������� - ������� �������: + Suschestvuet dajzhest spisok. CHtoby podpisat'sya na nego, otprav'te + pis'mo po `elektronnoj pochte na adres: + [email protected] i v tele pis'ma napishite + strochki strochki: subscribe end - �������� ������������ �����������, ����� � �������� ������ �������� - ��������� ����� 30 �������� ���������. + Dajzhesty otpravlyayutsya podpischikam, kogda v osnovnom spiske + rassylki nakopitsya okolo 30 kilobajt soobschenij. - �������� � ������ �������� ��������� �� �������. ����� ����������� �� - ���� ������, ��������� �� ����������� ����� ������ �� ����� - [email protected] � � ���� ������ �������� ������� - �������: + Dostupen i spisok rassylki soobschenij ob oshibkah. CHtoby + podpisat'sya na `etot spisok, otprav'te po `elektronnoj pochte pis'mo + na adres [email protected] i v tele pis'ma napishite + strochki strochki: subscribe end - ����� ������� ������ �������� � ����������� �������������. ����� - ����������� �� ���� ������, ��������� �� ����������� ����� ������ �� - ����� [email protected] � � ���� ������ �������� - ������� �������: + Takzhe imeetsya spisok rassylki s diskussiyami razrabotchikov. CHtoby + podpisat'sya na `etot spisok, otprav'te po `elektronnoj pochte pis'mo + na adres [email protected] i v tele pis'ma + napishite strochki strochki: subscribe end - �������������� ������ �������� � ��������� � PostgreSQL ����� ����� �� - �������� ��������� PostgreSQL �� ������: + Dopolnitel'nye spiski rassylki i infomaciyu o PostgreSQL mozhno najti + na domashnej stranichke PostgreSQL po adresu: http://www.PostgreSQL.org - ��� ���������� IRC ����� �� EFNet, � ��������� #PostgreSQL. � - ��������� ��� ����������� � ����� ������ ������� Unix irc -c + Esche suschestvuet IRC kanal na EFNet, s nazvaniem #PostgreSQL. YA + ispol'zuyu dlya podklyucheniya k `etomu kanalu komandu Unix irc -c '#PostgreSQL' "$USER" irc.phoenix.net. - ������ ������������ ��������� �������� �������� �� - http://www.postgresql.org/users-lounge/commercial-support.html. + Spisok kommercheskoj podderzhki kompanij dostupen na + http://www.PostgreSQL.org/users-lounge/commercial-support.html. - 1.7) ����� ��������� ������? + 1.7) Kakaya poslednyaya versiya? - ��������� ������ PostgreSQL - ��� ������ 7.2.3. + Poslednij vypusk PostgreSQL - `eto versiya 7.2.3. - �� ��������� ��������� ����� ������ ������ ������ ������. + My planiruem vypuskat' novye versii kazhdye chetyre mesyaca. - 1.8) ����� ������������ ������� � �������? + 1.8) Kakaya dokumentaciya imeetsya v nalichii? - � ����������� ���������� ��������� �����������, �������� ������������ - ����������� man � ��������� ��������� �������� �������. �������� � - ������� /doc. �� ����� ������ ������������� ������������ � �������� �� - ������ http://www.PostgreSQL.org/users-lounge/docs/. - - ���������� ��� ����� �� PostgreSQL ��������� �� ������� - http://www.PostgreSQL.org/docs/awbook.html � - http://www.commandprompt.com/ppbook/. ������ ���� �� PostgreSQL, - ������� ����� ������ �������� �� ������ - http://www.postgresql.org/books/. ����� ����, �� ������ - http://techdocs.postgresql.org/ �� ������ ����� ��������� ����������� - ������ ����������� PostgreSQL. - - psql ����� ��������� ���������� ������ \d ��� ����������� ���������� - �� �����, ����������, ��������, ��������� � �.�. - - ��� ���� �������� ��� ������ ����������. - - 1.9) ��� ����� ���������� �� ��������� ������� ��� ������������� - ������������? + V distributiv vklyuchayutsya razlichnye rukovodstva, stranicy + `elektronnogo rukovodstva man i nekotorye malen'kie testovye primery. + Smotrite v katalog /doc. Vy takzhe mozhete prosmatrivat' dokumentaciyu + v Internet po adresu http://www.PostgreSQL.org/users-lounge/docs/. + + Suschestvuet dve knigi po PostgreSQL dostupnye po adresam + http://www.PostgreSQL.org/docs/awbook.html i + http://www.commandprompt.com/ppbook/. Spisok knig po PostgreSQL, + kotorye mozhno kupit' dostupen po adresu + http://www.ca.PostgreSQL.org/books/. Krome togo, po adresu + http://techdocs.PostgreSQL.org/ vy mozhete najti kollekciyu + tehnicheskih statej posvyaschennyh PostgreSQL. + + psql imeet neskol'ko prekrasnyh komand \d dlya otobrazheniya + informacii po tipam, operatoram, funkciyam, agregatam i t.d. + + Nash sajt soderzhit esche bol'she informacii. + + 1.9) Kak najti informaciyu ob izvestnyh oshibkah ili otsutstvuyuschih + vozmozhnostyah? - PostgreSQL ������������ ����������� �������� SQL-92. �������� ��� - ������ TODO �� ������� ��������� ������, ������������� ������������ � - ������� ������. + PostgreSQL podderzhivaet rasshirennyj podklass SQL-92. Smotrite nash + spisok TODO na predmet izvestnyh oshibok, otsutstvuyuschih + osobennostyah i buduschih planov. - 1.10) ��� ��� ��������� SQL? + 1.10) Kak mne nauchit'sya SQL? - ����� �� PostgreSQL �� http://www.PostgreSQL.org/docs/awbook.html - ������ SQL. ���������� ������ ����� �� PostgreSQL �� - http://www.commandprompt.com/ppbook. ���� ���������� ������� �� - http://www.intermedia.net/support/sql/sqltut.shtm, �� + Kniga po PostgreSQL na http://www.PostgreSQL.org/docs/awbook.html + nauchit SQL. Suschestvuet drugaya kniga po PostgreSQL na + http://www.commandprompt.com/ppbook. Est' prekrasnyj uchebnik na + http://www.intermedia.net/support/sql/sqltut.shtm, na http://ourworld.compuserve.com/homepages/graeme_birchall/HTM_COOK.HTM, - � �� http://sqlcourse.com. + i na http://sqlcourse.com. - ��� ���� ������� - ��� ����� "Teach Yourself SQL in 21 Days, Second - Edition" (����� �������������� SQL �� 21 ����, ������ ��������) �� - http://members.tripod.com/er4ebus/sql/index.htm + 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 - ������ �� ����� ������������� �������� ����� The Practical SQL - Handbook, Bowman, Judith S., et al., Addison-Wesley. ������ �������� + 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) ������ �� � PostgreSQL �������� 2000-�� ���� (Y2K)? + 1.11) Reshena li v PostgreSQL problema 2000-go goda (Y2K)? - ��, �� ����� ������������ ������ ����� 2000 ���� � ����� 2000 �����. + Da, my legko manipuliruem datami posle 2000 goda i pered 2000 godom. - 1.12) ��� ������������� � ������� �������������? + 1.12) Kak prisoedinitsya k komande razrabotchikov? - ��� ������, �������� ��������� ������ �������� ������� � �������� - ������������ ������������� PostgreSQL �� ����� ����� ��� � - ������������. �����, ����������� �� ������ �������� pgsql-hackers � - pgsql-patches. �����, ����������� ����������� (patches) �������� - �������� � ������ pgsql-patches. - - ���������� ������������ ������ �����, ������� ����� ���������� ������� - ��������� � CVS ����� PostgreSQL. ������ �� ���� ����� � ���� ����� - �������� ��� ����� ������������������ �����������, ��� �� ���� - ���������� �������� ��� �������� � ��� ���� ��������� ���������� - ������� ���������, � �� �������, ��� �� �����������, ������� ��� - ������ ����� �������� ��������. - - 1.13) ��� �������� ��������� �� ������?? + Dlya nachala, skachajte poslednyuyu versiyu ishodnyh tekstov i + prochtite dokumentaciyu razrabotchikov PostgreSQL na nashem sajte ili + v distributive. Zatem, podpishites' na spiski rassylki pgsql-hackers i + pgsql-patches. Dalee, otpravlyajte ispravleniya (patches) vysokogo + kachestva v spisok pgsql-patches. + + Suschestvuet ogranichennyj spisok lyudej, kotoryj imeyut privelegiyu + vnosit' izmeneniya v CVS arhiv PostgreSQL. Kazhdyj iz `etih lyudej v + svoe vremya otpravil tak mnogo vysokokachestvennyh ispravlenij, chto + ih bylo nevozmozhno ostavit' bez vnimaniya i oni byli udostoeny + previlegii vnosit' izmeneniya, i my uvereny, chto te ispravleniya, + kotorye oni vnesut budut vysokogo kachestva. + + 1.13) Kak otravit' soobschenie ob oshibke?? - ���������� �������� ��������� PostgreSQL BugTool, �� ������� - ������������� ��������� ���������� � ��� ��� ��������� ��������� �� - ������. + Pozhalujsta posetite stranichku PostgreSQL BugTool na + http://www.PostgreSQL.org/bugs/bugs.php, na kotoroj predostavleny + detal'nye instrukcii o tom kak otpravit' soobschenie ob oshibke. - ����� �� �������� ���������� �� ftp://ftp.PostgreSQL.org/pub �� - ������� ����� ������ ������ PostgreSQL ��� ������. + Takzhe ne zabud'te posmotret' na ftp://ftp.PostgreSQL.org/pub na + predmet bolee svezhih versij PostgreSQL ili zaplat. - 1.14) ��� ���������� PostgreSQL � ������� ����? + 1.14) Kak sravnivat' PostgreSQL s drugimi SUBD? - ���������� ��������� ������� ��������� ������������ �����������: - �����������, ������������������, ����������, ��������� � ����. - - ����������� - PostgreSQL ����� ����������� ������������ �������������� � - ������� ������������ ����, ����� ���: ����������, ����������, - ��������, ������ (views), ������� ���� ��������� ����������� � - ������ ����������. � ��� ���� ��������� �����������, ������� - ��� � ���: ����, ������������ �������������, �������� - ������������, ������� � ����������� ��������������� ���������� - ��� ������ � ���������� ����������. + Suschestvuet neskol'ko metodov sravneniya programmnogo obespecheniya: + vozmozhnosti, proizvoditel'nost', nadezhnost', podderzhka i cena. + + Vozmozhnosti + PostgreSQL imeet bol'shinstvo vozmozhnostej predstavlennyh v + bol'shih kommercheskih SUBD, takie kak: tranzakcii, podzaprosy, + triggery, obzory (views), vneshnij klyuch ssylochnoj + celostnosti i raznye blokirovki. U nas est' nekotorye + vozmozhnosti, kotoryh net u nih: tipy, opredelyaemye + pol'zovatelem, mehanizm nasledovaniya, pravila i konkuretnoe + mnogoversionnoe upravlenie dlya raboty s soderzhimym + blokirovok. - ������������������ - PostgreSQL ����� ������������������ ������ � ������� - ������������� ���� � � ���� � �������� �������� �����, � - �����-�� �������� ������� ������� ��� ���, � �����-�� ��������. - � ��������� � MySQL ��� ��������� ����, �� �������� ��� - ��������� �������/����������, ������ ��� ��������� - ������������. � ����������, MySQL �� ����� �����-���� - ������������ �� ������������ ����, � ������ �����������. �� - ������ ���� �� ���������� � ����������� �����������, �� �� - ����� ���������� ����������� ������������������ � ������ - ��������. ���������� ���������� ��������� � ��������, - ������������ PostgreSQL � MySQL �� - http://openacs.org/why-not-mysql.html + Proizvoditel'nost' + PostgreSQL imeet proizvoditel'nost' shozhuyu s drugimi + kommercheskimi SUBD i s SUBD s otkrytym ishodnym kodom, v + kakih-to aspektah rabotaya bystree chem oni, v kakih-to + medlenee. V sravnenii s MySQL ili linejnymi SUBD, my medlenee + pri operaciyah vstavki/obnovleniya, potomu chto upravlyaem + tranzakciyami. I razumeetsya, MySQL ne imeet kakih-libo + vozmozhnostej iz perechislenyh vyshe, v sekcii Vozmozhnosti. My + delaem upor na nadezhnost' i rasshirennye vozmozhnosti, no my + takzhe prodolzhaem uvelichivat' proizvoditel'nost' s kazhdym + vypuskom. Suschestvuet interesnaya stranichka v Internet, + sravnivayuschaya PostgreSQL i MySQL na + http://openacs.org/philosophy/why-not-mysql.html - ���������� - �� ��������, ��� ���� ���� ������ ���� �������� ��� ��� ������ - �� ����� ������. �� ��������� ��������� ������ �����������, - ���������� ���, ������� �������� ������� ������. ������ ������ - �������� ������ ����-������������ �� ������� ���� � ������� - ������ ������ � ���� ������� �������� ���������� ��� �� ����� - ������������� ����������, ���������� �������, ������� ������ � - ������������� �������������. �� �����, ��� �� ���������� - �������� �� ����, ��� � ������ ����. + Nadezhnost' + My ponimali, chto nasha SUBD dolzhna byt' nadezhnoj ili ona + nichego ne budet stoit'. My staraemsya vypuskat' horosho + proverennyj, stabil'nyj kod, kotoryj soderzhit minimum oshibok. + Kazhdyj vypusk prohodit stadiyu beta-testirovaniya po krajnej + mere v techenii odnogo mesyaca i nasha istoriya vypuskov + pokazyvaet chto my mozhem predostavlyat' stabil'nye, monolitnye + vypuski, kotorye gotovy k produktivnomu ispol'zovaniyu. My + verim, chto my proizvodim proverku ne huzhe, chem u drugih + SUBD. - ��������� - ��� ������ �������� ����������� ������� ������� ������������� � - �������������, ������� ����� ������ ������ ����� ��������� - ��������. � �� �� �����, �� �� ����������� �����-���� - �����������, �� � ������������ ������������ ���� �� ������ - ������ �����������. ������ ������ � �������������, ���������� - �������������, ������������ � �������� ������� ����� ������ - ��������� PostgreSQL ������������� ������ ����. ���������� - ������������ ��������� �� ��������� ��������� ����������, - ������� �������� ��� ��� ���� ��� �����. (�������� ��� �������� - ���������?.) + Podderzhka + Nash spisok rassylki predostavlyaet vozmozhmozhnost' obscheniya + s bol'shoj gruppoj razrabotchikov i pol'zovatelej, kotorye + mogut pomoch' reshit' lyubye voznikshie problemy. V to zhe + vremya, my ne garantiruem kakie-libo ispravleniya, no i + razrabotchiki kommercheskih SUBD ne vsegda delayut + ispravleniya. Pryamoj dostup k razrabotchikam, soobschestvu + pol'zovatelej, rukovodstvam i ishodnym tekstam chasto delayut + podderzhku PostgreSQL prevoshodyaschej drugie SUBD. + Suschestvuet kommercheskaya podderzhka po rezul'tam voznikshih + incidentov, kotoraya dostupna dlya teh komu ona nuzhna. + (Smotrite Sekciyu 1.6.) - ���� - ��� ������� ��������� ��� ��� ������������� ���, � �� ��� - ������������� �������������. �� ������ ��������� ���� ��� � ��� - ������� ��� �����������, �� ����������� ���, ��� ����������� � - ����� �������� ����� BSD, ������� ��������� ����. + Cena + Nash produkt besplaten kak dlya kommercheskogo tak, i ne dlya + kommercheskogo ispol'zovaniya. Vy mozhete dobavlyat' svoj kod v + nash produkt bez ogranichenij, za isklyucheniem teh, chto + opisyvayutsya v nashej licenzii stilya BSD, kotoraya privedena + vyshe. - 1.15) ��� ������� ���������� ������ PostgreSQL? - - PostgreSQL ����� ������������ �������������� � ���� ������ ������� ��� - �� ������ ���������� 6 ��� �����. �� ������ ����������� �� ��� ����� - ����� (Marc Fournier), ������� ������ ��� �������������� � ��������� - �� �� ���������� ���� ���. - - ������������ �������������� ����� ����� ��� �������� � �������� - �������� �����. ��� ������������� �������, ������� ����� ������ - ��������� �������������� �������� �������. - - ����������, ��� �������������� �� �������� �������. ���������� - ��������� ���������� ����������� � ����������� ��������, ������� - ������� �����. ���� �� ��� ���� �������� ����� ������, ������� ����� - �������� � ������ ����� �������, ���������� �������� ��������� - https://store.pgsql.com/shopping/index.php?id=1 � �������� ���� �����. - - ���� �� ��������� ��������� � PostgreSQL, Inc, ����� "contributions" - ������������ ������������� ��� ��������� ������� PostgreSQL � �� - ���������� �����-���� ���������� ��������. ���� ������, �� ������ ��� - ���������, ������� ������ �� ���������� �����. + 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 Fonaya (Marc Fournier), kotoryj sozdal `etu infrastrukturu i + upravlyaet ej na protyazhenii `etih let. + + Kachestvennaya infrastruktura ochen' vazhna dlya proektov s otkrytym + ishodnym kodom. Ona predotvraschaet raskoly, kotorye mogut sil'no + zaderzhat' postupatel'noe dvizhenie proekta. + + Razumeetsya, `eta infrastruktura ne yavlyaetsya deshevoj. Suschestvuet + nekotoroe kolichestvo ezhemesyachnyh i odnorazovyh rashodov, kotorye + trebuyut deneg. Esli vy ili vasha kompaniya imeet den'gi, kotorye + mozhno peredat' v pomosch' nashim usiliyam, pozhalujsta posetite + stranichku https://store.pgsql.com/shopping/ i sdelajte svoj vklad. + + Hotya na stranichke govoritsya o PostgreSQL, Inc, punkt + "contributions" prednaznachen isklyuchitel'no dlya podderzhki proekta + PostgreSQL i ne peredaetsya kakoj-libo konkretnoj kompanii. Esli + hotite, to mozhete `eto proverit', napisav pis'mo na kontaktnyj adres. _________________________________________________________________ - ������� ������������� �� ���������� ����� + Voprosy pol'zovatelej po klientskoj chasti - 2.1) ���������� �� ODBC �������� ��� PostgreSQL? + 2.1) Suschestvuyut li ODBC drajvera dlya PostgreSQL? - ���������� ��� ODBC ��������, PsqlODBC � OpenLink ODBC. + Suschestvuet dva ODBC drajvera, PsqlODBC i OpenLink ODBC. - PsqlODBC ���������� � �����������. ������ ���������� �� ���� �������� - ����� ����� �� ftp://ftp.PostgreSQL.org/pub/odbc/. + PsqlODBC vklyuchaetsya v distributiv. Bol'she informacii ob `etom + drajvere mozhno najti na ftp://ftp.PostgreSQL.org/pub/odbc/. - OpenLink ODBC ����� ����� �� http://www.openlinksw.com. ���� ������� - �������� � �� ����������� ���������� ����������� ������������, - ������������ ODBC, � ����� �������, ODBC �������� ��� PostgreSQL - �������� ��� ������ �� �������������� ��� �������� (Win, Mac, Unix, - VMS). + 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). - �������� ��� ����� ��������� ���� ������� ��� ���� ����� ������������ - ���������, �� ���������� ������ ������ ����� ��������. ����������, - ����������� ������� �� ����� [email protected]. + Vozmozhno oni budut prodavat' svoj produkt tem komu nuzhna + kommercheskaya podderzhka, no besplatnaya versiya vsegda budet + dostupna. Pozhalujsta, napravlyajte voprosy na adres - ����� ���������� ODBC ������ � ����������� ������������. + Takzhe posmotrite ODBC razdel v rukovodstve programmista. - 2.2) ����� ����������� ���������� ��� ������������� PostgreSQL ����� Web? + 2.2) Kakie instrumenty suschestvuyut dlya ispol'zovaniya PostgreSQL cherez + Web? - ���������� �������� �� �������������� ��� ������ � Web ����� ����� ��: - http://www.webreview.com - - ����� ��������� �� http://www.phone.net/home/mwm/hotlist/. + Prekrasnoe vvedenie vo vzaimodejstvie baz dannyh i Web mozhno najti + na: http://www.webreview.com - ��� ���������� � Web, ����� �� ������������ ������������ �������� PHP. - �������� �������� http://www.php.net. + Dlya integracii s Web, odnim iz prevoshodnyh instrumentov yavlyaetsya + PHP. Domashnyaya stanichka http://www.php.net. - ��� ����������� �������, ������ ���������� Perl ����������� � CGI.pm. + Dlya kompleksnyh reshenij, mnogie pol'zuyutsya Perl interfejsom i + CGI.pm ili mod_perl. - 2.3) ���� �� � PostgreSQL ����������� ��������� ������������? ��������� - �������? ���������� ��������� ��� ����� ��������? + 2.3) Est' li u PostgreSQL graficheskij interfejs pol'zovatelya? Generator + otchetov? Vstroennyj interfejs dlya yazyka zaprosov? - � ��� ���� ���������� ������������ ���������, ���������� pgaccess, - ������� �������� ������ ������������. pgaccess ����� ����� ��������� - �������. ��� ��������� http://www.flex.ro/pgaccess + U nas est' prekrasnyj goraficheskij interfejs, nazyvaemyj PgAccess, + kotoryj takzhe mozhno ispol'zovat' kak generator otchetov. Ego + stranichka http://www.pgaccess.org/ - �� ����� �������� ecpg, ������� ������������� ���������� ��������� � - ����� �������� SQL �� C. + My takzhe vklyuchaem ecpg, kotoryj predostavlyaet vstroennyj interfejs + k yazyku zaprosov SQL iz C. - 2.4) ����� ����� ����� ����������������� � PostgreSQL? + 2.4) Kakie yazyki mogut vzaimodejstvovat' s PostgreSQL? - ��� ���: + Vot `eti: * C (libpq) * C++ (libpq++) * Embedded C (ecpg) * Java (jdbc) - * Perl (perl5) + * Perl (DBD::Pg i perl5) * ODBC (odbc) * Python (PyGreSQL) * TCL (libpgtcl) * C Easy API (libpgeasy) - * Embedded HTML (PHP from http://www.php.net) + * PHP ('pg_' functions, Pear::DB) - �������������� ���������� �������� �� ������ - http://www.postgresql.org/interfaces.html. + Dopolnitel'nye interfejsy dostupny po adresu + http://www.PostgreSQL.org/interfaces.html. i + http://gborg.PostgreSQL.org. _________________________________________________________________ - ������� ����������������� + Voprosy administrirovaniya - 3.1) ��� ��� ���������� PostgreSQL � ����� �������� �� /usr/local/pgsql? - - ������� ����� --prefix ����� ���������� configure. - - 3.2) ����� � �������� postmaster, � ������� ��������� Bad System Call ��� - ��������� core dumped. ������? - - ��� ����� ���� ������� ������� ����������, �� ������, ��� ����� - ������� - ��� ��������� � ���, ��� � ����� ���� ����������� ���������� - System V. PostgreSQL �������, ����� ���� ������������ ����������� - ������ � ��������. - - 3.3) ����� � ������� ��������� postmaster, � ������� ������ - IpcMemoryCreate. ������? - - ���� � ��� � ���� ������������ ��������� ����������� ������, ���� - ������ ���� ����� ������� ���������� ��������� ����������� ������. �� - ���������� ��������, ������� ��� ����� ���������� ������� �� - ����������� ����� ������ � �� ���� ��� ����� ������� � backend - ��������� �� ��������� ��� postmaster. ��� ����������� ������, � - ����������� ������� � ��������� �� ���������, ����������� ������� - - ��� ����� 1 ���������. ����������� � ����������� ������ � ��������� - �������� � ����������� �������������� PostgreSQL. - - 3.4) ����� � ������� ��������� postmaster, � ������� ������ - IpcSemaphoreCreate. ������? - - ���� ��� ��������� IpcSemaphoreCreate: semget failed (No space left on - device) �� ��������� ������ ���� ������, ��� ��� �� ������� ���������. - Postgres ������� ���� ������� �� ������������� backend �������. - ��������� �������� �������� ������ postmaster � ����������� �� ������� - ���������� backend ���������. ����������� -N � ��������� ������� ��� - 32, ������� ������� �� ���������. ����� ���������� ������� - ��� - ��������� �������� SEMMNS � SEMMNI � ��������� ����. - - ����������� �������� ����� ����� �������� � ������� ���� �� ����� - ������� � ���� ������. - - ���� �� �������� �����-���� ������ ��������� �� ������, �� ������ - ��������, ��� � ����� ���� ������ �� ��������� ��������� ���������. - �������� ����������� � ����������� ������ � ��������� � ����������� - �������������� PostgreSQL. - - 3.5) ��� ��� ��������� ������������ � ������ �����������? - - �� ���������, PostgreSQL ��������� ������ ���������� �� ��������� - ������ ����� ������ ������ Unix. ������ ������ �� ������ ������������ - � ���� ���� ��� postmaster �� ����� ����� ���� -i � ���� �� ����� - ��������� host-����������� � ����� $PGDATA/pg_hba.conf. ��� �������� - ������ ���������� TCP/IP ����������. - - 3.6) ����� ��������� ��� ����� ������� ��� ��������� ������������������? - - ����������, ������� ����� ��������� �������� ���������� ��������. - ������� EXPLAIN ��������� ��� ���������� ��� PostgreSQL �������������� - ��� ������ � ����� ������� ������������. - - ���� �� ���������� ����� ���������� INSERT, ����������� ����������� - ��������� �� � ������� �����, ��������� ������� COPY. ��� ����������� - �������, ��� ��������� INSERT. ��-������, ��������� ��� ����� - ���������� BEGIN WORK/COMMIT ���� ��������� ����������. ��������� ��� - ����������� ���������� ���������� � ����� ����� ����������. ��� - �������� ���������� ����������. �����, ����������� ��� ��������� � - ������������� ��������, ����� �� ���������� ������� ��������� ������. - - ���������� ��������� ����� ���������. �� ������ ��������� fsync() ��� - ������ postmaster � ������ -o -F. ��� ������������ ������ fsync(), - ������� �������� � ������ ������ �� ���� ����� ������ ����������. - - �� ������ ����� ������������ ��� postmaster ����� -B ��� ���������� - ���������� ������� ����������� ������, ������� ������������ backend - ����������. ���� �� �������� �������� ����� ��������� ������� �������, - �� postmaster ����� �� ���������� ������ ��� �� ���������� ����������� - ���� �� ����� ����������� ������. ������ ����� ����� ������ � 8 - �������� � �� ��������� ���������� 64 ������. - - �� ������ ����� ������������ backend ����� -S ��� ���������� - ������������� ���������� ������, ������� ������������ backend - ��������� ��� ��������� ����������. �������� ��� ����� -S �������� � - ���������� � �� ��������� ����� 512 (�.�. 512K). - - �� ����� ������ ������������ ������� CLUSTER ��� ����������� ������ � - �������� �� ����������� ������. ����������� �������� �� �������� - ����������� �� ������� CLUSTER. - - 3.7) ����� ����������� ��� ������� ���� � �������? - - PostgreSQL ����� ��������� ������������, ����������� �������� - ���������� � ���������, ������� ����� ���� ������������ � ���������� - �����. - - ��-������, ��� ������� configure � ������ --enable-cassert, ������ - ������ assert() ��������� ����������� ������ backend �������� � - ��������� ��������� ��� ������������� �����-���� ��������������. - - � postmaster, � postgres ����� ��������� ���������� �����. ��-������, - ��� ������� postmaster, ���������, ��� ����������� ����� � ����� - ������ �������������� � ���� �������: + 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? + + Po umolchaniyu, PostgreSQL razreshaet tol'ko soedineniya na lokal'noj + mashine cherez sokety domena Unix. Drugie mashiny ne smogut + podklyuchit'sya k baze poka dlya postmaster ne budet zadan flag -i i + poka ne budet razreshena host-avtorizaciya v fajle + $PGDATA/pg_hba.conf. `Eti dejstviya delayut vozmozhnymi TCP/IP + soedineniya. + + 3.6) Kakie nastrojki mne nuzhno sdelat' dlya uluchsheniya + proizvoditel'nosti? + + Nesomnenno, indeksy mogut uvelichit' skorost' vypolneniya zaprosov. + Komanda EXPLAIN pozvolyaet vam posmotret' kak PostgreSQL + interpretiruet vash zapros i kakie indeksy ispol'zuyutsya. + + Esli vy vypolnyaete mnogo operatorov INSERT, rassmotrite vozmozhnost' + vypolnyat' ih v bol'shoj pachke, ispol'zuya komandu COPY. `Eto + znachitel'no bystree, chem otdel'nye INSERT. Vo-vtoryh, operatory vne + bloka tranzakcii BEGIN WORK/COMMIT sami vypolnyayut tranzakciyu. + Podumajte nad vypolneniem neskol'kih operatorov v odnom bloke + tranzakcii. `Eto umen'shit kolichestvo tranzakcij. Takzhe, zadumajtes' + nad udaleniem i peresozdaniem indeksov, kogda vy vypolnyaete bol'shie + izmeneniya dannyh. + + Suschestvuet neskol'ko opcij nastrojki. Vy mozhete zapretit' fsync() + pri starte postmaster s opciej -o -F. `Eto predotvratit vyzovy + fsync(), kotorye privodyat k sbrosu dannyh na disk posle kazhdoj + tranzakcii. + + Vy mozhete takzhe ispol'zovat' dlya postmaster opciyu -B dlya + uvelicheniya kolichestva buferov razdelyaemoj pamyati, kotoraya + ispol'zuetsya backend processami. Esli vy sdelaete znachenie `etogo + parametra slishkom bol'shim, to postmaster mozhet ne zapustitsya + potomu chto vy ischerpaete ogranichenie yadra na ob"em razdelyaemoj + pamyati. Kazhdyj bufer imeet razmer v 8 kilobajt i po umolchaniyu + vydelyaetsya 64 bufera. + + Vy mozhete takzhe ispol'zovat' backend opciyu -S dlya uvelicheniya + maksimal'nogo kolichestva pamyati, kotoroe ispol'zuetsya backend + processom dlya vremennyh sortirovok. Znachenie dlya opcii -S zadaetsya + v kilobajtah i po umolchaniyu ravno 512 (t.e. 512K). + + Vy takzhe mozhete ispol'zovat' komandu CLUSTER dlya gruppirovki dannyh + v tablicah na sovpadayuschij indeks. Podrobnosti smotrite na stranice + rukovodstva po komande CLUSTER. + + 3.7) Kakie vozmozhnosti dlya otladki est' v nalichii? + + PostgreSQL imeet neskol'ko vozmozhnostej, pozvolyayuschie poluchit' + informaciyu o sostoyanii, kotoraya mozhet byt' ispol'zovana v + otladochnyh celyah. + + Vo-pervyh, pri zapuske configure s opciej --enable-cassert, mnogie + vyzovy assert() pozvolyayut otslezhivat' rabotu backend processa i + ostanovku programmy pri vozniknovenii kakih-libo neozhidannostej. + + I postmaster, i postgres imeyut neskol'ko otladochnyh opcij. + Vo-pervyh, pri zapuske postmaster, ubedites', chto standartnyj vyvod i + vyvod oshibok osuschestvlyayutsya v fajl zhurnala: cd /usr/local/pgsql ./bin/postmaster >server.log 2>&1 & - ��� �������� � ��������� ����� server.log � ������� �������� - PostgreSQL. ���� ���� �������� �������� ���������� � ��������� ��� - �������, ��������� �� �������. Postmaster ����� ����� -d, ������� - ��������� �������� ��� ���������������� ����� ��������� ���������. ��� - ����� -d ����������� �����, ������� ������ ������� �������. ������ - ���������, ��� ��� ������� ������� ������� �������� � ��������� ������ - ������� �������� �������. - - ���� postmaster �� �������, �� ������ ��������� postgres backend �� - ��������� ������ � ������ ��� �������� SQL ��������. ��� ������������� - ������ ��� ����� �������. �������, ��� � ���� ������, ������ - ����������� �������� ����� ������, � �� ������ � �������. ���� �� - ����������� ���������� � ����������� ����������, �� ������ - ������������ ����� ��������, ����� ����������, ��� ���������. - ��������� backend ����������� �� �� postmaster, �� �� ����������� � - ���������� ��������� � ������ �������� �������� ����������/backend �� - ����� ���� ��������������. - - ���� postmaster �������, ��������� psql � ����� ����, ����� ������� - PID �������� postgres, ������������ psql. ����������� �������� ��� - ����������� � postgres PID. �� ������ ���������� ����� ���������� � - ��������� � ��������� ������ �� psql. ���� �� ����������� ������� - ������� postgres, �� ������ ���������� PGOPTIONS="-W n", � ����� - ��������� psql. ��� ����� �������� � �������� �������� ������� �� n - ������, � ������� ������� �� ������ ���������� � �������� ��������, - ���������� ����� ����� ���������� � ���������� ������. - - ��������� postgres ����� ����� -s, -A, � -t ������� ����� ���� ����� - ��������� ��� ������� � ��������� ������������������. - - �� ����� ������ �������������� PostgreSQL � ��������������� ��� ����, - ����� ������� ����� ������� ������� ������� �����������. ����� - �������������� backend'� ��������� � �������� pgsql/data/base/dbname. - ���� �������������� ������� ����� ������� � ������� ������� �������. � - Linux ��� ���������� �������������� ��������� ���������� � - -DLINUX_PROFILE. - - 3.8) ������ � ������� ��������� "Sorry, too many clients" ����� ������� - ������������ � ����? - - ��� ����� ��������� ����������� �� ���������� ����������� backend - ��������� ��� ������� postmaster. - - �� ��������� ���������� ����� �� 32 ��������. �� ������ ��������� ���� - ����� ������������ postmaster � ������ ��������� ���������, ������� - ����������� � ����� -N ��� ������� ���� postgresql.conf. - - �������, ��� ���� �� �������� � ����� -N �������� ������ 32, �� �� - ����� ������ ��������� �������� � ����� -B ������� �� ��������� - ����������� � 64; �������� ����� -B ������ ���� �� ������� ���� ����� - ������ �������� ����� -N, � �������� �ݣ ������ ��� ������ - ������������������. ��� �������� ���������� backend ���������, ��� - ����� ������� ���� �� ��������� ��������� ��������� ���� Unix. ��� - ����� ���������, ��� ������������ ���������� ������ ����������� - ������, SHMMAX; ������������ ���������� ���������, SEMMNS � SEMMNI; - ������������ ���������� ���������, NPROC; ������������ ���������� - ��������� �� ������������, MAXUPRC; � ������������ ���������� �������� - ������, NFILE � NINODE. ������� �������� ����������� �� ���������� - backend ��������� ��� ��� � ������� � ���, ����� ����� ������� ������� - ��������. - - � PostgreSQL �� ������ 6.5, ������������ ���������� backend ��������� - ���� 64, � ��������� ����� ���������� ��������� �������������� ����� - ��������� ��������� MaxBackendId � include/storage/sinvaladt.h. - - 3.9) ��� ��� �� ����� pg_sorttempNNN.NN � ���� �������� � ����� ������? - - ��� ��������� �����, ������������ �� ����� ���������� �������. - ��������, ���� ��� ��������� ORDER BY ������ ���� ��������� - ����������, ������� ������� ������ ����� ��� ��������� ��� backend - �������� � ����� -S, �� ��������� ��������� ���� ��� �������� - �������������� ������. - - ��������� ����� ������ ��������� �������������, �� ����� ����� �� - �����������, ���� backend ������� ������ �� ����� ����������. ���� � - ��� �� �������� �� ������ backend ��������, �� �� ������ �������� - ������� ����� pg_tempNNN.NN. - 3.10) ������ ���������� ������ dump � restore ��� ���������� �������� - PostgreSQL? + `Eto privedet k poyavleniyu fajla server.log v glavnom kataloge + PostgreSQL. `Etot fajl soderzhit poleznuyu informaciyu o problemah ili + oshibkah, voznikshih na servere. Postmaster imeet opciyu -d, kotoraya + pozvolyaet poluchat' pri protokolirovanii bolee detal'nuyu infrmaciyu. + Dlya opcii -d ukazyvaetsya chislo, kotoroe zadaet uroven' otladki. + Bud'te ostorozhny, tak kak vysokij uroven' otladki privodit k + generacii fajlov zhurnala bol'shogo razmera. + + Esli postmaster ne zapuschen, vy mozhete zapustit' postgres backend iz + komandnoj stroki i vvesti vash operator SQL napryamuyu. `Eto + rekomenduetsya tol'ko dlya celej otladki. Zametim, chto v `etom + rezhime, zapros zavershaetsya simvolom novoj stroki, a ne tochkoj s + zapyatoj. Esli vy proizvodili kompilyaciyu s otladochnymi simvoloami, + vy mozhete ispol'zovat' lyuboj otladchik, chtoby posmotret', chto + sluchilos'. Poskol'ku backend zapuskaetsya ne iz postmaster, on ne + zapuskaetsya v identichnom okruzhenii i znachit problemy iteracij + blokirovok/backend ne mogut byt' vosproizvedeny. + + Esli postmaster zapuschen, zapustite psql v odnom okne, zatem najdite + PID processa postgres, ispol'zuemyj psql. Ispol'zujte otdadchik dlya + podklyucheniya k postgres PID. Vy mozhete ustanovit' tochki + preryvaniya v otladchike i zapustit' zapros iz psql. Esli vy + proizvodite otladku zapuska postgres, vy mozhete ustanovit' + PGOPTIONS="-W n", i zatem zapustit' psql. `Eta opciya privodit k + zaderzhke processa zapuska na n sekund, v techenie kotoryh vy mozhete + podklyuchit' k processu otladchik, ustanovit' lyubye tochki + preryvaniya i prodolzhit' zapusk. + + Programma postgres imeet opcii -s, -A, i -t kotorye mogut byt' ochen' + poleznymi dlya otladki i izmereniya proizvoditel'nosti. + + Vy takzhe mozhete skompilirovat' PostgreSQL s profilirovaniem dlya + togo, chtoby uvidet' kakie funkcii skol'ko vremeni vypolnyayutsya. + Fajly profilirovaniya backend'a nahodyatsya v kataloge + pgsql/data/base/dbname. Fajl profilirovaniya klienta budet pomeschen v + tekuschij katalog klienta. V Linux dlya vypolneniya profilirovaniya + trebuetsya kompilyacii s -DLINUX_PROFILE. + + 3.8) Pochemu ya poluchayu soobschenie "Sorry, too many clients" kogda + pytayus' podklyuchit'sya k baze? + + Vam nuzhno uvelichit' ogranichenie na kolichestvo konkuretnyh backend + processov pri zapuske postmaster. + + Po umolchaniyu ustanovlen limit na 32 processa. Vy mozhete uvelichit' + `etot limit perezapustiv postmaster s nuzhnym znacheniem processov, + kotoroe ukazyvaetsya v opcii -N ili izmeniv fajl postgresql.conf. + + Zametim, chto esli vy zadadite v opcii -N znachenie bol'she 32, to vy + takzhe dolzhny uvelichit' znachenie v opcii -B kotoroe po umolchaniyu + ustanovleno v 64; Znachenie opcii -B dolzhno byt' po krajnej mere + vdvoe bol'she znacheniya opcii -N, i vozmozhno eschio bol'she dlya + luchshej proizvoditel'nosti. Dlya bol'shego kolichestva backend + processov, vam takzhe neploho bylo by uvelichit' nekotorye parametry + yadra Unix. `Eto takie parametry, kak maksimal'noe kolichestvo blokov + razdelyaemoj pamyati, SHMMAX; maksimal'noe kolichestvo semaforov, + SEMMNS i SEMMNI; maksimal'noe kolichestvo processov, NPROC; + maksimal'noe kolichestvo processov na pol'zovatelya, MAXUPRC; i + maksimal'noe kolichestvo otkrytyh fajlov, NFILE i NINODE. Prichina + sozdaniya ogranicheniya na kolichestvo backend processov kak raz i + sostoit v tom, chtoby vashej sisteme hvatilo resursov. + + V PostgreSQL do versii 6.5, maksimal'noe kolichestvo backend processov + bylo 64, i izmenenie `etogo kolichestva trebovalo perekompilyacii + posle ustanovki konstanty MaxBackendId v include/storage/sinvaladt.h. + + 3.9) CHto nahoditsya v kataloge pgsql_tmp? + + Dannyj katalog soderzhit vremennye fajly, generiruemye obrabotchikom + zaprosa. Naprimer, esli dlya vypolneniya ORDER BY nuzhna sortirovka i + `eta sortirovka trebuet pamyati bol'she, chem dopuskaet parametr -S u + backend'a, to dlya hraneniya dopolnitel'nyh dannyh sozdayutsya + vremennye fajly. + + `Eti vremennye fajly dolzhny udalyat'sya avtomaticheski, no `etogo + mozhet ne proizojti, esli backend ruhnul vo vremya sortirovki. Ostanov + i zapusk servernogo processa obespechit ih udalenie iz kataloga. - ������������ PostgreSQL ������ ������ ��������� ��������� ����� - ������������. ����� ������� ���������� � ������ 7.2 �� 7.2.1 �� - ������� ���������� dump � restore. ������ ��� ������ ���������� - ������� ����� �������� ���������� ������ ��������� ������ � ������ - ������. ��� ��������� ����� ����� ����������� ��������, ��� ��� ��� - ����������� ���������� �������� ������������� ������ ������. ��������� - dump ��������� �������� ������ � ����� �������, ������� ����� ����� - ���� �������� ��� ������������� ������ ����������� �������. - - � ��� ��������, ��� ������ ������ �� ����� �� ��������, ��� ���������� - ���������� ����� ���� ����������� �������� pg_upgrade ��� - ������������� dump/restore. ����������� � ������� ������� ����� ����� - ������������ pg_upgrade ��� ����� �������. + 3.10) Pochemu neobhodimo delat' dump i restore pri obnovlenii vypuskov + PostgreSQL? + + Razrabotchiki PostgreSQL delayut tol'ko nebol'shie izmeneniya mezhdu + podvypuskami. Takim obrazom obnovlenie s versii 7.2 do 7.2.1 ne + trebuet vypolneniya dump i restore. Odnako pri vyhode ocherednogo + vypuska (t.e. pri obnovlenii naprimer, s 7.2 na 7.3) chasto menyaetsya + vnutrennij format sistemnyh tablic i fajlov dannyh. `Eti izmeneniya + chasto nosyat kompleksnyj harakter, tak chto net vozmozhnosti + obespechit' obratnuyu sovmestimost' fajlov dannyh. Vypolenie dump + pozvolyaet poluchit' dannye v obschem formate, kotoryj zatem mozhet + byt' zagruzhen pri ispol'zovanii novogo vnutrennego formata. + + V teh vypuskah, gde format dannyh na diske ne menyaetsya, dlya + provedeniya obnovleniya mozhet byt' ispol'zovan scenarij pg_upgrade + bez ispol'zovaniya dump/restore. Kommentarii k vypusku govorit kogda + mozhno ispol'zovat' pg_upgrade dlya `etogo vypuska. _________________________________________________________________ - ������� ������������ + Voprosy `ekspluatacii - 4.1) � ��� ������� ����� �������� � ���������� ��������? + 4.1) V chem otlichie mezhdu binarnym i normal'nym kursorom? - �������� �������� �� ��������� ����������� ����������� DECLARE. + Smotrite opisanie na stranicah rukovodstva posvyaschennym DECLARE. - 4.2) ��� ��������� SELECT ������ ��� ���������� ������ ������� �������? + 4.2) Kak vypolnit' SELECT tol'ko dlya neskol'kih pervyh strochek zaprosa? - �������� ������� ����������� ����������� FETCH ��� ����������� SELECT - ... LIMIT.... + Smotrite stanicu rukovodstva posvyaschennuyu FETCH ili ispol'zujte + SELECT ... LIMIT.... - ���� ���� �� ������ �������� ������ ������ ��������� �������, ����� - �������� ���� ������. ���������� ������, ������� ����� ORDER BY. ���� - ���� �����-���� ������, ������� ��������� � ORDER BY, PostgreSQL ����� - ������ ������ ��������� ������ ����������� ������� ��� ����� ��������� - ������ ���� �� ����� ������ �������� ������. + 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.3) ��� �������� ������ ������ ��� ������ ����������� � psql? + 4.3) Kak poluchit' spisok tablic ili drugih komponentov v psql? - �� ������ ���������� �������� ��� psql � ����� - pgsql/src/bin/psql/describe.c. �� �������� ������� SQL ������� - ������������ ��� ����� � psql ������, ������������ � �������� ����� - �����. �� ����� ������� ��������� psql � ������ -E ���, ����� ��� - ��������� �������� �������, ������� ��� ���������� ��� ���������� - �������� ���� ������. - - 4.4) ��� ������� ������� �� �������? + Vy mozhete posmotret' ishodnyj kod psql v fajle + pgsql/src/bin/psql/describe.c. On soderzhit komandy SQL kotorye + generiruyutsya pri vvode v psql komand, nachinayuschihsya s obratnoj + kosoj cherty. Vy takzhe moezhete zapustit' psql s opciej -E tak, + chtoby `eta programma vydavala zaprosy, kotorye ona ispol'zuet dlya + vypolneniya zadannyh vami komand. + + 4.4) Kak udalit' kolonku iz tablicy? - �� �� ������������ ALTER TABLE DROP COLUMN, �� ����� ������� ���: + `Eta 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 ... -- ������� ���� ������� �� ����������� ���, ������� ������ ���� -��� + 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; - 4.5) ������ ������������ ������� ��� �������, ������ � ���� ������? - - ���������� ��������� �����������: - ������������ ������ ����? ����������� (���������� ���� �� 1 TB -) - ������������ ������ �������? 16 TB - ������������ ������ ������? 1.6 TB - ������������ ������ ����? 1 GB - ������������ ���������� ������� � �������? ������������ - ������������ ���������� ������� � �������? 250-1600 � ����������� �� ��� -� - ������������ ���������� �������� � �������? ������������ + 4.5) Kakovy maksimal'nye razmery dlya zapisej, tablic i bazy dannyh? + + Suschestvuyut sleduyuschie ogranicheniya: + Maksimal'nyj razmer bazy? neogranichen (suschestvuyut bazy na +1 TB) + Maksimal'nyj razmer tablicy? 16 TB + Maksimal'nyj razmer zapisi? 1.6 TB + Maksimal'nyj razmer polya? 1 GB + Maksimal'noe kolichestvo zapisej v tablice? neogranicheno + Maksimal'noe kolichestvo kolonok v tablice? 250-1600 v zavisimosti ot ti +pa + Maksimal'noe kolichestvo indeksov v tablice? neogranicheno - ����������, ������� "������������" �� ����� ���� �������������� - ��������� �������� �������������� � ��������� ������/���������. ����� - �������� ������������� ���� ����������� �������, ����� ���������� - ������������������. - - ������������ ������ ������� � 16 TB �� ������� ����� ������������ - ������� ������������ ����� ������� ��������. ������� ������� �������� - ��� ��������� ������ �������� � 1 GB, ��� ��� �����������, ������� - ����������� �������� ������� �� �����. - - ������������ ������ ������� � ������������ ���������� ������� ����� - ���� ���������, ���� ������ ����� �� ��������� ����� �������� �� 32k. - - 4.6) ��� ����� ��������� ������������ � ���� ������ ����� ��� ���������� - ������ �� �������� ���������� �����? - - ���� PostgreSQL ����� ������������� ��������� ������������ �� 5 ��� - ������ ��� ���������� ������ �� �������� ���������� �����. - - � �������� �������, ���������� ���� � 100,000 ����� � ������, �� - ������� ����� ����� � ��������� ��������. ��� ���� ����� ������, � - �������, ���������� 20 ����. ������ �������� ����� �������� 2.8 MB. - ������ ���� PostgreSQL, ���������� ��� �� ������ �������� - �������������� 6.4 MB �� �������: - 36 ����: �� ������ ��������� ������ (��������������) - + 24 �����: ���� ���� � ������������� ����� � ���� ��������� ���� - + 4 �����: ��������� �� �������� ��� ���� ������ + Razumeetsya, ponyatie "neogranicheno" na samom dele ogranichivaetsya + dostupnym diskovym prostranistvom i razmerami pamyati/svoppinga. Kogda + znacheniya perechislennye vyshe neopravdano bol'shie, mozhet + postradat' proizvoditel'nost'. + + Maksimal'nyj razmer tablicy v 16 TB ne trebuet chtoby operacionnaya + sistema podderzhivala fajly bol'shih razmerov. Bol'shie tablicy + hranyatsya kak mnozhestvo fajlov razmerom v 1 GB, tak chto + ogranicheniya, kotorye nakladyvaet fajlovaya sistema ne vazhny. + + Maksimal'nyj razmer tablicy i maksimal'noe kolichestvo kolonok mogut + byt' uvelicheny, esli razmer bloka po umolchaniyu budet uvelichen do + 32k. + + 4.6) Kak mnogo diskovogo prostranstva v baze dannyh nuzhno dlya sohraneniya + dannyh iz obychnogo tekstovogo fajla? + + SUBD PostgreSQL mozhet potrebovat'sya diskovogo prostranstva do 5 raz + bol'she dlya sohraneniya dannyh iz prostogo tekstovogo fajla. + + V kachestve primera, rassmotrim fajl v 100,000 strok v kazhdoj, iz + kotoryh celoe chislo i tekstovoe opisanie. Pri `etom dlina teksta, v + srednem, sostavlyaet 20 bajt. Razmer prostogo fajla sostavit 2.8 MB. + Razmer bazy PostgreSQL, soderzhaschej `eti zhe dannye sostavit + priblizitel'no 6.4 MB iz kotoryh: + 36 bajt: na kazhdyj zagolovok zapisi (priblizitel'no) + + 24 bajta: odno pole s celochislennym tipom i odno tekstovoe pole + + 4 bajta: ukazatel' na stranice dlya vsej zapisi ---------------------------------------- - 64 ���� �� ������ + 64 bajt na zapis' - ������ �������� ������ � PostgreSQL ���������� 8192 ���� (8 KB), ��� ���: + Razmer stranicy dannyh v PostgreSQL sostavlyaet 8192 bajt (8 KB), tak chto: - 8192 ���� �� �������� - ------------------- = 128 ������� �� �������� �� (� �����������) - 64 ���� �� ������ + 8192 bajt na stranicu + ------------------- = 128 zapisej na stranicu BD (s okrugleniem) + 64 bajt na zapis' - 100000 ����� ������ - -------------------- = 782 �������� � �� - 128 ������� �� �������� + 100000 strok dannyh + -------------------- = 782 stranicy v BD + 128 zapisej na stranicu -782 �������� �� * 8192 ���� �� �������� = 6,406,144 ���� (6.4 MB) +782 stranicy BD * 8192 bajt na stranicu = 6,406,144 bajt (6.4 MB) - ������� �� ������� ��� �����, �� ��������� ��� ��������� ��� �������� - ���������� ������, ��� ����� ����� ���� ������. - - �������� NULL ����������� � ����� � ������� ��� �������� ����� ���� - �����. - - 4.7) ��� ��� ���������, ��� ���������� ������ ��� �������, �������, ���� - ������ � ������������? - - psql ����� ��������� ������, ������������ � �������� ����� �����, ��� - ���� ����� ������������� ����� ����������. ����������� \? ��� ����, - ����� ������� ��� �������. ����� ���������� ��������� �������, ��� - ������� ���������� �� pg_ � � ������� ����� ���������� ��� ����������. - �ݣ, psql -l ������� ������ ���� ��� ������. - - ����� �������� ���� pgsql/src/tutorial/syscat.source. � ��� - ������������ ������ ��������� SELECT ������� ����� ��� ��������� - ���������� �� ��������� ������ ���� ������. - - 4.8) � ���� �������� �������� ������� ��� �� ���������� ������������� - ��������. ������? - - ������� �� ������������ ��� ������� ������� �������������. ��� - ������������ ������ ���� ������� ������ ������������ ������� � ������ - �������� ������ ��������� ������� ������� � �������. ��� ��������, - ������ ��� ������ � ����� � ����������� ������������ ��� ������������ - �������� ����� ���� ���������, ��� ������� ������ ������� ��� �� - ���������������� ������������. - - ����� ���������� ������������� ������������� ������� ��� �����-���� - �������, PostgreSQL ������ ����� ���������� �� ���� �������. ��� - ���������� ���������� ��� ������������� VACUUM ANALYZE ��� ������ - ANALYZE. ��������� ����������, ����������� ������ � ��� ��� ����� - ������� � ������� � ���� �� ������ ������������ �������, �� �� ����� - ��������� ������ �������. ���������� ����� ������ �� ����������� - ������������ ������� ���������� � ������ ����������. ���� ���������� - ������ ������������ ���������� ��� ��������� ����������� �������. - - ������ ������� �� ������������ ��� ORDER BY ��� ��� ���������� - ����������. ���������������� ������� ��������� �� ����� ����������� - ������ �������, ��� ����� �� �������� � ������� �������. ������, ORDER - BY ����� ������������� � LIMIT � � ���� ������ ������ ����� - ��������������, ��������� ��� ���������� ����� ������������ ��������� - ����� �������. ���������� MAX() � MIN() �� ���������� �������, �� - ������ ������������ ��� ���������� �������� � ORDER BY � LIMIT: + Indeksy ne trebuyut tak mnogo, no poskol'ku oni sozdayutsya dlya + bol'shogo kolichestva dannyh, oni takzhe mogut byt' veliki. + + Znacheniya NULL sohranyayutsya v bitah i po`etomu oni zanimayut ochen' + malo mesta. + + 4.7) Kak mne ubedit'sya, chto suschestvuyut nuzhnye mne tablicy, indeksy, + bazy dannyh i pol'zovateli? + + psql imeet neskol'ko komand, nachinayuschihsya s obratnoj kosoj + cherty, dlya togo chtoby prosmatrivat' takuyu informaciyu. Ispol'zujte + \? dlya togo, chtoby uvidet' `eti komandy. Takzhe suschestvuyut + sistemnye tablicy, imya kotoryh nachinaetsya na pg_ i v kotoryh takzhe + soderzhitsya `eta informaciya. Eschio, psql -l pokazhet spisok vseh + baz dannyh. + + Takzhe smotrite fajl pgsql/src/tutorial/syscat.source. V nem + predstavleny mnogie operatory SELECT kotorye nuzhny dlya polucheniya + informacii iz sistemnyh tablic bazy dannyh. + + 4.8) U menya medlenno rabotayut zaprosy ili ne proishodit ispol'zovaniya + indeksov. Pochemu? + + Indeksy ne ispol'zuyutsya dlya kazhdogo zaprosa avtomaticheski. Oni + ispol'zuyutsya tol'ko esli tablica bol'she minimal'nogo razmera i + zapros vybiraet tol'ko malen'kij procent zapisej v tablice. Tak + ustroeno, potomu chto dostup k disku s primeneniem randomizacii pri + skanirovanii indeksov mozhet byt' medlennee, chem prostoe chtenie + tablicy ili ee posledovatel'noe skanirovanie. + + CHtoby opredelit' neobhodimost' ispol'zovaniya indeksa dlya kakoj-libo + tablicy, PostgreSQL dolzhen imet' statistiku po `etoj tablice. `Eta + statistika sobiraetsya pri ispol'zovanii VACUUM ANALYZE ili prosto + ANALYZE. Ispol'zuya statistiku, optimizator uznaet o tom kak mnogo + zapisej v tablice i esli on dolzhen ispol'zovat' indeksy, to on mozhet + prinimat' luchshie resheniya. Statistika takzhe vliyaet na opredelenie + optimal'nogo poryadka svyazyvaniya i metoda svyazyvaniya. Sbor + statistiki dolzhen periodicheski vypolnyatsya pri izmenenii + soderzhimogo tablicy. + + Obychno indeksy ne ispol'zuyutsya dlya ORDER BY ili dlya vypolneniya + svyazyvanij. Posledovatel'nyj perebor sleduyuschij za yavnoj + sortirovkoj obychno bystree, chem poisk po indeksam v bol'shoj + tablice. Odnako, ORDER BY chasto kombiniruetsya s LIMIT i v `etom + sluchae indeks budet ispol'zovat'sya, poskol'ku pri vypolnenii budet + vozvraschat'sya nebol'shaya chast' tablicy. Fakticheski MAX() i MIN() + ne ispol'zuyut indeksy, no indeks ispol'zuetsya pri postroenii + zaprosov s ORDER BY i LIMIT: SELECT col FROM tab ORDER BY col [ DESC ] - LIMIT 1 + LIMIT 1; - ����� ������������ �������� � ���������, �������� LIKE ��� ~, ������� - ����� ���� ������������ � ��������� �������: - * ������ ������ ������ ������ ��������� � ������� ������� ������, - �.�.: + Kogda ispol'zuyutsya operacii s shablonami, naprimer LIKE ili ~, + indeksy mogut byt' ispol'zovany v sleduyuschih sluchayah: + * Nachalo stroki poiska dolzhno sovpadat' s nachalom iskomoj stroki, + t.e.: + + LIKE shablony ne dolzhny nachinat'sya s %.. + + ~ shablony regulyarnyh vyrazhenij dolzhna nachinat'sya na ^. + * Stroka poiska ne dolzhna nachinat'sya s simvola klassa, t.e. + [a-e]. + * Poisk nezavisimyj ot registra, takoj kak ILIKE i ~* ne ispol'zuet + indeksy. Vmesto nego, ispol'zujte funkcional'nye indeksy, kotorye + opisyvayutsya v sekcii 4.12. + * Vo vremya initdb dolzhna ispol'zovat'sya lokal' po umolchaniyu C. - * LIKE ������� �� ������ ���������� � %. - * - * ~ ������� ���������� ��������� ������ ���������� �� ^. - * - - ������ ������ �� ������ ���������� � ������� ������, �.�. [a-e]. - - �� ������ �������������� ����� ����������� �� �������� ����� ��� - ILIKE � ~. ������ ���� ����������� �������������� �������, ������� - ������� � ���� FAQ ����. - - �� ����� initdb ������ �������������� ������ �� ��������� C. - - 4.9) ��� ���������� �� ��, ��� ����������� ��������� ��� ������? + 4.9) Kak posmotret' na to, kak optimizator vypolnyaet moj zapros? - �������� �������� ����������� ����������� EXPLAIN. + Smotrite stranicu rukovodstva posvyaschennuyu EXPLAIN. - 4.10) ��� ����� R-tree ������? + 4.10) CHto takoe R-tree indeks? - R-tree ������ ������������ ��� �������������� ���������������� ������. - ������ ���� �� ����� ��������� �������� ���������. B-tree ������ - ��������� ������ �������� ��������� � ����� ���������. R-tree ������ - ����� ��������� ��������������� �������. ��������, ���� R-tree ������ - ����� ���� ������� � ������� ���� point, �� ������� ����� ����� - ���������� �������� �� ������ ���� "������� ��� ����� ������ ��������� - ����������������." + 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." - ������������ ��������, ����������� �������������� �������� R-tree ���: + 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. - �� ������ ����� ���� �������� � ����� Stonebraker'� "Readings in + Vy mozhete najti `etot dokument v knige Stonebraker'a "Readings in Database Systems". - ����������� R-tree ����� ��������� ���������� � �������. � ������, - R-tree ����� ���� ��������� ��� ���������� ������� ����������� - ���������. �� ��������, ���������� R-tree ������� ��������� ������ � � - ���, � ������ ������, ��� �����-���� ������������ � ���, ��� ��� - �������. + 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) ��� ����� Genetic Query Optimizer? + 4.11) CHto takoe Genetic Query Optimizer? - ������ GEQO ���������� ������� ����������� �������, ����� ���������� - ���������� ������ ������ ����� Genetic Algorithm (GA). ��� ��������� - ��������� �������� ��������� �� ���������� ����� ������������ �����. - - 4.12) ��� ��� ��������� ����� ����������� ��������� � ����� ����������� �� - �������� ���� ����� ����������� ���������? ��� ��� ������������ ������ ��� - ������ ������������ �� �������� ����? + 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? - �������� ~ ���������� ����� ����������� ���������, � �������� ~* - ���������� ����������� �� �������� ���� ����� ����������� ���������. - ����������� �� �������� ������� LIKE ���������� ILIKE. + Operator ~ proizvodit poisk regulyarnogo vyrazheniya, a operator ~* + proizvodit nezavisimyj ot registra bukv poisk regulyarnogo + vyrazheniya. Nezavisimyj ot registra variant LIKE nazyvaetsya ILIKE. - ����������� �� �������� ��������� ������ ���������� ���: + Nezavisimoe ot registra sravnenie obychno vyrazhaetsya tak: SELECT * FROM tab - WHERE lower(col) = 'abc' + WHERE lower(col) = 'abc'; - ��� ����������� �� ����� ������������ ����������� ������. ������, ���� - �� ��������� �������������� ������, �� ����� �����������: - CREATE INDEX tabindex on tab (lower(col)); + `Eta konstrukciya ne budet ispol'zovat' standartnyj indeks. Odnako, + esli vy sozdadite funkcional'nyj indeks, on budet ispol'zovan: + CREATE INDEX tabindex ON tab (lower(col)); - 4.13) ��� � ���� ����������, ��� �������� ���� ����� NULL � �����-���� - �������? + 4.13) Kak ya mogu opredelit', chto znachenie polya ravno NULL v kakom-libo + zaprose? - �� ������ ����������� �������� � IS NULL � IS NOT NULL. + Vy prosto sravnivaete znachenie s IS NULL i IS NOT NULL. - 4.14) ������ ������� ����� ������� ����������� ������? + 4.14) Kakovy otlichiya mezhdu raznymi simvol'nymi tipami? -��� ���������� ��� ��������� +Tip Vnutrennee imya Zamechaniya -------------------------------------------------- -"char" char 1 ������ -CHAR(#) bpchar ����������� �������� �� ������������� ����� -VARCHAR(#) varchar ������ ������ ������������ �����, ��� ��������� -� -TEXT text ��� ����������� �������� ����������� ��� ����� -BYTEA bytea ������ ���� ���������� ����� (����� ����������� -� null-���� ��� ������) +"char" char 1 simvol +CHAR(n) bpchar zapolnyaetsya pustotoj do fiksirovannoj dliny +VARCHAR(n) varchar razmer zadaet maksimal'nuyu dlinu, net zapolnen +iya +TEXT text net zadavaemogo verhnego ogranicheniya ili dlin +y +BYTEA bytea massiv bajt peremennoj dliny (mozhno ispol'zova +t' null-bajt bez opaski) - ���������� ��� �� ������ �������, ����� �������� ��������� �������� � - � ��������� ���������� �� �������. - - ��������� ������ ���� �������� "varlena" ������ (�.�., ������ ������ - ����� �� ����� �������� �������, �� ������� ������� ������). ����� - �������, ���������� ������������ ������������ ������, ��� ������������ - ������. ������, ��� ���� ������ ����� ��������� ������ ��� ����� ���� - ��������� �� � ������� ���� ����� TOAST, ��� ��� ���������� �������� - ������������ ����� ����� ���� � ������, ��� ���������. - - CHAR() - ��� ������ ������� ��� �������� �����, ������� ������ ����� - ���������� �����. VARCHAR() - ��� ������ �������, ����� ����� ������� - ������ ���������� �����, �� �� ����������� ������������� �������. TEXT - - ��� ������ ������� ��� ����� �������������� �����, � ����������� - ���������� ������ � 1 ��������. BYTEA ��� �������� �������� ������, - �������� ������� ����� �������� NULL �����. - - 4.15.1) ��� ��� ������� ���� serial/�-����-�����������? - - PostgreSQL ������������ ��� ������ SERIAL. �� ������������� ������� - ������������������ � ������ ��� �������. ��������: + Vnutrennee imya vy mozhete uvidet', kogda smotrite sistemnye katalogi + i v nekotoryh soobscheniyah ob oshibkah. + + Poslednie chetyre tipa yavlyayutsya "varlena" tipami (t.e., pervye + chetyre bajta na diske yavlyayutsya dlinnoj, za kotoroj sleduyut + dannye). Takim obrazom, fakticheski ispol'zuemoe prostranstvo bol'she, + chem oboznachennyj razmer. Odnako, `eti tipy dannyh takzhe poddayutsya + szhatiyu ili mogut byt' sohraneny ne v strokom vide cherez TOAST, tak + chto zanimaemoe diskovoe prostranstvo mozhet takzhe byt' i men'she, + chem ozhidalos'. + + CHAR(n) - `eto luchshee reshenie dlya hraneniya strok, kotorye obychno + imeyut odinakovuyu dlinu. VARCHAR(n) - `eto luchshee reshenie, kogda + nuzhno hranit' stroki peremennoj dliny, no ne prevyshayuschie + opredelennogo razmera. TEXT - `eto luchshee reshenie dlya strok + neogranichennoj dliny, s maksimal'no dopustimoj dlinoj v 1 gigabajt. + BYTEA dlya hraneniya binarnyh dannyh, znacheniya kotoryh mogut + vklyuchat' NULL bajty. `Eti tipy imeyut shodnye harakteristiki + proizvoditel'nosti. + + 4.15.1) Kak mne sozdat' pole serial/s-avto-uvelicheniem? + + PostgreSQL podderzhivaet tip dannyh SERIAL. On avtomaticheski sozdaet + posledovatel'nost' i indeks dlya kolonki. Naprimer: CREATE TABLE person ( id SERIAL, name TEXT ); - ������������� ������������� �: + avtomaticheski transliruetsya v: CREATE SEQUENCE person_id_seq; CREATE TABLE person ( id INT4 NOT NULL DEFAULT nextval('person_id_seq'), @@ -949,97 +976,100 @@ BYTEA bytea ������ ���� ���������� ����� (����� ����������� ); CREATE UNIQUE INDEX person_id_key ON person ( id ); - �������� ����������� � ������������������� �� �������� ����������� - ����������� create_sequence. �� ����� ������ ������������ ������ ���� - OID � ������ ��� ���������� ��������. ������, ���� ��� ����� ���� � - ������������ ���� ������, ��� ���������� ������������ ������� pg_dump - � ������ -o ��� ����� COPY WITH OIDS ��� ���������� �������� ���� OID. - - 4.15.2) ��� ��� �������� �������� ��� ������� SERIAL? - - ���� �� �������� ������� � ��������� ���������� �������� SERIAL �� - ������� sequence � ������� ������� nextval() ����� �������� � ����� - ��������� ��� �������� ����. ����������� �������-������ � 4.15.1, - ����� ������� ��� ��� �������� � Perl: - new_id = output of "SELECT nextval('person_id_seq')" - INSERT INTO person (id, name) VALUES (new_id, 'Blaise Pascal'); + Smotrite podrobnosti o posledovatel'nostyah na stranice rukovodstva + posvyaschennoj create_sequence. Vy takzhe mozhete ispol'zovat' kazhdoe + pole OID v zapisi kak unikal'noe znachenie. Odnako, esli vam nuzhen + damp i perezagruzka bazy dannyh, vam neobhodimo ispol'zovat' komandu + pg_dump s opciej -o ili opciyu COPY WITH OIDS dlya sohraneniya + znachenij polya OID. + + 4.15.2) Kak mne poluchit' znachenie pri vstavke SERIAL? + + Odin iz sposobov sostoit v poluchenii sleduyuschego znacheniya SERIAL + iz ob"ekta sequence s pomosch'yu funkcii nextval() pered vstavkoj i + zatem vstavlyat' `eto znachenie yavno. Ispol'zujte tablicu-primer v + 4.15.1, primer v psevdoyazyke pokazhet kak `eto delaetsya: + new_id = execute("SELECT nextval('person_id_seq')"); + execute("INSERT INTO person (id, name) VALUES (new_id, 'Blaise Pascal')"); - ����� �� ������ ����� ��������� ����� �������� � ���������� new_id ��� - ��� ������������� � ������ �������� (�������� ����� ��� ������� ���� - ��� ������� person). �������, ��� ��� ������������� ���������� ������� - SEQUENCE ����� <table>_<serialcolumn>_seq, ��� table � serialcolumn - �������� �������������� ������� ����� ������� � ����� ������� SERIAL. - - � �������� ������������, �� ������ �������� ����������� �������� - SERIAL � ������� ������� currval() ����� ���������� ������� �������� - �������, �������� - INSERT INTO person (name) VALUES ('Blaise Pascal'); - new_id = output of "SELECT currval('person_id_seq')"; + Zatem vy dolzhny takzhe sohranit' novoe znachenie v peremennoj new_id + dlya ego ispol'zovaniya v drugih zaprosah (naprimer takih kak vneshnij + klyuch dlya tablicy person). Zametim, chto imya avtomaticheski + sozdannogo ob"ekta SEQUENCE budet <table>_<serialcolumn>_seq, gde + table i serialcolumn yavlyayutsya sootvetstvenno imenami vashej + tablicy i vashej kolonki SERIAL. + + V kachestve al'ternativy, vy mozhete poluchit' naznachennoe znachenie + SERIAL s pomosch'yu funkcii currval() posle provedeniya obychnoj + operacii vstavki, naprimer + execute("INSERT INTO person (name) VALUES ('Blaise Pascal')"); + new_id = execute("SELECT currval('person_id_seq')"); - � �������, �� ������ ������������ �������� OID, ����������� �� - �������� INSERT ����� ������� �������� �� ���������, ��� - ���������������� �������� �������� ����������� �� ������ ��������� - ��������. � Perl, ��������� DBI � ������� Edmund Mergl'� DBD::Pg, - �������� oid ���������� ��������� ����� $sth->{pg_oid_status} ����� + I nakonec, vy mozhete ispol'zovat' znachenie OID, vozraschaemoe iz + opertora INSERT chtoby uvidet' znachenie po umolchaniyu, chto + predpolozhitel'no yavlyaetsya naimenee perenosimym na drugie platformy + resheniem. V Perl, ispol'zuya DBI s modulei Edmund Mergl'ya DBD::Pg, + znachenie oid stanovitsya dostupnym cherez $sth->{pg_oid_status} posle $sth->execute(). - 4.15.3) �� ����� �� ���������� ���, ��� ������������� currval() � nextval() - �������� � �������������� � ������� ��������������? - - ���. Currval() ���������� ������� ��������, ����������� ����� - backend'��, � �� ������� ��������������. - - 4.15.4) ������ ����� �� ���� ������������������ �� ������������ ����� ��� - ������ ����������? ������ ��������� ������� ��� ��������� � �������, ��� � - ��������� ������������������/SERIAL? - - ��� ���������� �������������, �������� �������������������, ��� - ������������� �������� �� ����� ������� ���������� � �� ����������� �� - ������� ���������� ����������. ��� ����� �������� ������� � ��������� - ��� ������ ����������. - - 4.16) ��� ����� OID? ��� ����� TID? - - ���� OID ������ ����������� ��������������� ������� � PostgreSQL. - ������ ������, ������� ��������� � PostgreSQL �������� ���������� OID. - ��� �������� OID ������������ �� ����� initdb ����� �������� ������ - 16384 (�� backend/access/transam.h). ��� ��������� ������������� OID - ����� ������� ��������. �� ���������, ��� ��� OID �������� ����������� - �� ������ ������ �����-���� ������� ��� ���� ������, �� � ������ ���� - ���� PostgreSQL. - - PostgreSQL ���������� OID � ����� ���������� ��������� �������� ��� - ����� ������� � ������. �������� OID ����� ���� ������������ ��� - ������������� �������� ������������� �������, � ����� �������������� - ��� �����������. ������������� ������������ ��� ������� OID ��� - �������� �������� OID �� ������ ������� ������ �� ���� OID ��� ����� - �������� �������. - - �������� OID ����������� ��� ���� ����� ������� �� ����������� - �������, ������� ������������ ����� ����� ������ ������. ���� �� - ������ �������� OID �� �����-���� ������ �������� ��� ���� �� ������ - ������� ����� ������� � �������� OID, �� ��� ����� ������� ���: + 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? + + 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(old_oid oid, mycol int); SELECT old_oid, mycol INTO new FROM old; COPY new TO '/tmp/pgtable'; DELETE FROM new; COPY new WITH OIDS FROM '/tmp/pgtable'; - OID �������� ��� 4-� ������� ����� � �� ����� ��������� �������� � 4 - ���������. ������, ��� ����� �� ������� � ���, ��� ����� ���������, �� - �� ��������� �� ���� ��� ��� ��������� ��������� �� ����� �����������. + 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 ������������ ��� ������������� ����������� ���������� ������� � - �������� � offset ����������. TID ���������� ����� ���� ��� ������ - ���� �������� ��� �����������. + TID ispol'zuetsya dlya identifikacii special'nyh fizicheskih zapisej s + blochnymi i offset znacheniyami. TID izmenyaetsya posle togo kak + zapisi byli izmeneny ili peregruzheny. - TID ������������ ���������� �������� � �������� ��������� �� - ���������� ������. + TID ispol'zuetsya indeksnymi zapisyami v kachestve ukazatelya na + fizicheskie zapisi. - 4.17) ��� �������� ��������� ������� ������������ � PostgreSQL? + 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 @@ -1050,94 +1080,99 @@ BYTEA bytea ������ ���� ���������� ����� (����� ����������� * portal, cursor * range variable, table name, table alias - ������ ����� �������� �� ����� ������ ����� ����� �� - http://www.comptechnews.com/~reaster/dbdesign.html + 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) ������ � ������� ������ "ERROR: Memory exhausted in AllocSetAlloc()"? + 4.18) Pochemu ya poluchayu oshibku "ERROR: Memory exhausted in + AllocSetAlloc()"? - ���������������� � ��� ����������� ����������� ������ ��� ��� ���� - ���� ����� ��������� ����� �� ������������ �������. ����������� ����� - �������� postmaster ��������� ��������� �������: + 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: ulimit -d 262144 limit datasize 256m - � ����������� �� ���������� �������������� shell, ������ ���� �� - ������ ������ ���������� �������, �� ��� �������� ��� ���������� - ������� ������� ������ �������� � �������� ����� ��������. ��� ������� - �������� ��������� �������� �������� � ���� ��� ��������, ��������� - ����� ţ �������. ���� � ��� �������� �������� � SQL ��������, ������ - ��� backend ���������� ������� ������� ����� ������, ����������� - ��������� ��� ������� ����� �������� �������. - - 4.19) ��� ��� ������, ����� ������ PostgreSQL ��������? + V zavisimosti ot komandnogo interpretatora shell, tol'ko odna iz + dannyh komand vypolnitsya uspeshno, no ona pozvolit vam ustanovit' + bol'shij segment dannyh processa i vozmozhno reshit problemu. `Eta + komanda izmenyaet parametry tekuschego processa i vseh ego potomkov, + sozdannyh posle eio zapuska. Esli u vas voznikla problema s SQL + klientom, potomu chto backend vozvraschaet slishkom bol'shoj ob"em + dannyh, popytajtes' vypolnit' `etu komandu pered zapuskom klienta. + + 4.19) Kak mne uznat', kakaya versiya PostgreSQL zapuschena? - �� psql, �������� select version(); + Iz psql, naberite SELECT version(); - 4.20) ������ ��� ������ � ���� ������� �������� � ������� ������ "invalid - large obj descriptor"? + 4.20) Pochemu pri rabote s moim bol'shim ob"ektom ya poluchayu oshibku + "invalid large obj descriptor"? - ��� ����� ��� ������������� �������� ������� ��������� � ������ BEGIN - WORK � � ����� COMMIT, � ������ ������������� ����� lo_open ... - lo_close. - - � ��������� ������ PostgreSQL �������, ����� ��� �������� �������� - ������� ����������� ���������� ����������. ����� �������, ������ �� - ������� ������� ���-���� � ������� ��������, �� �������� ������� - ������� �������� � ��������� invalid large obj descriptor, ��� ��� ��� - ����������� ������ ��� ������� �������� (�� ������� ���� � ��������� - ������) ����� ������������ ��������� �� ������ ���� �� �� ����������� - ����������. - - ���� �� ����������� ����� ��������� ������� ��� ODBC, ��� �������� - ����������� ���������� auto-commit off. - - 4.21) ��� ��� ������� ������� ������� �� ��������� ����� ��������� ������� - �����? + 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? - ����������� CURRENT_TIMESTAMP: + Ispol'zujte CURRENT_TIMESTAMP: CREATE TABLE test (x int, modtime timestamp DEFAULT CURRENT_TIMESTAMP ); - 4.22) ������ ��� ����������, ������������ IN ��� �������� ���������? - - � ��������� ������, �� ��������� ��������� ��� ������� �������� ����� - ���������������� ������� ���������� ���������� ��� ������ ������ - �������� �������. ���� ��������� ���������� ������ ��������� ������� � - ������� ������ ���������� ����� �������, IN �������� �������� ������. - ����� ��������� �������� � ������ ��������, �������� IN �� EXISTS: -SELECT * + 4.22) Pochemu moi podzaprosy, ispol'zuyuschie IN tak medlenno rabotaeyut? + + V nastoyaschij moment, my svyazyvaem pozaprosy dlya vneshnih zaprosov + cherez posledovatel'nyj perebor rezul'tata podzaprosa dlya kazhdoj + zapisi vneshnego zaprosa. Esli podzapros vozvraschaet tol'ko neskol'ko + zapisej i vneshnij zapros vozvraschaet mnogo zapisej, IN rabotaet + naibolee bystro. CHtoby uvelichit' skorost' v drugih zaprosah, + zamenite IN na EXISTS: + SELECT * FROM tab - WHERE col IN (SELECT subcol FROM subtab) + WHERE col IN (SELECT subcol FROM subtab); - ��: -SELECT * + na: + SELECT * FROM tab - WHERE EXISTS (SELECT subcol FROM subtab WHERE subcol = col) + WHERE EXISTS (SELECT subcol FROM subtab WHERE subcol = col); - ����� ����� ����������� �������� ������, ������� subcol ������ ���� - ����������������. �� �������� ������ ��� ����������� � ������� - �������. + CHtoby takaya konstrukciya rabotala bystro, kolonka subcol dolzhna + byt' proindeksirovana. My nadeemsya ubrat' `eto ogranichenie v + buduschem vypuske. - 4.23) ��� ��� ��������� ������� ����������? + 4.23) Kak mne vypolnit' vneshnee svyazyvanie? - PostgreSQL ������������ ������� ����������, ��������� ����������� - ��������� SQL. ��� ��� �������: + PostgreSQL podderzhivaet vneshnee svyazyvanie, ispol'zuya standartnyj + sintaksis SQL. Vot dva primera: SELECT * FROM t1 LEFT OUTER JOIN t2 ON (t1.col = t2.col); - ��� + ili SELECT * FROM t1 LEFT OUTER JOIN t2 USING (col); - ��� ���������� ������� ���������� t1.col � t2.col, ����� ���������� - ����� ����������� ������ � t1 (������� �� ��������� � t2). RIGHT - ���������� ������ �������� ����������� ������ t2. FULL ���������� - ������ ���������� ��������� ������ ���� ��� ����������� ������ �� t1 � - t2. ����� OUTER �������� �������������� � ����������� � LEFT, RIGHT � - FULL �����������. ������� ���������� ���������� INNER ����������. - - � ���������� �������, ������� ���������� ����� ���� ����������� - ��������� UNION � NOT IN. ��������, ����� ���������� ���������� tab1 � - tab2, ��������� ������ ��������� ������� ���������� ���� ������: + `Eto identichnye zaprosy svyazyvaniya t1.col i t2.col, takzhe + vozvraschayut lyubye nesvyazannye zapisi v t1 (kotorye ne sovpadayut s + t2). RIGHT svyazyvanie dolzhno dobavit' nesvyazannye zapisi t2. FULL + svyazyvanie dolzhno vozvratit' sovpavshie zapisi plyus vse + nesvyazannye zapisi iz t1 i t2. Slovo OUTER yavlyaetsya + neobyazatel'nym i naznachaetsya v LEFT, RIGHT i FULL svyazyvaniyah. + Obychnye svyazyvaniya nazyvayutsya INNER svyazyvaniya. + + V predyduschih versiyah, vneshnie svyazyvaniya mogli byt' `emulirovany + ispol'zuya UNION i NOT IN. Naprimer, kogda proishodit svyazyvanie tab1 + i tab2, sleduyuschij zapros vypolnyaet vneshnee svyazyvanie dvuh + tablic: SELECT tab1.col1, tab2.col2 FROM tab1, tab2 WHERE tab1.col1 = tab2.col1 @@ -1147,67 +1182,86 @@ SELECT * WHERE tab1.col1 NOT IN (SELECT tab2.col1 FROM tab2) ORDER BY col1 - 4.24) ��� ��������� �������, ������������ ��������� ��� ������? - - �� ���������� ������� ������� ������ � ����� ������ �������� �� - �������. ��������� PostgreSQL ��������� ��������� �������� ����������� - ��� ���� ������, ��������� ����, ��� ������ ���� ����� ����� - ���������� ������. - - /contrib/dblink ��������� ������� ����� ������, ��������� ������ - �������. ����������, ������ ����� ������������ ������������� - ����������� � ���������� ������ ������ � ����� ������� ���������� - ���������� �� ���. - - 4.25) ��� ��� ������� �� ������� ��������� �������? - - �� ������ ���������� �� ������� PL/pgSQL ������ �����������, ��������� - refcursors. �������� - http://developer.postgresql.org/docs/postgres/plpgsql-cursors.html, - ������ 23.7.3.3. - - 4.26) ������ � �� ���� ������� ���������/������� ��������� ������� � - �������� PL/PgSQL? - - PL/PgSQL �������� ���������� ������� � ���� �� ���������� �������� - ����� ������� � ���, ��� ���� ������� PL/PgSQL ���������� � ��������� - ������� � ��� ������� ������� ��������� � �������������, � ������� - ����� ���������� �����, �� �� ����� �������� � ������, ������ ��� - ������������� ���������� ������� �������� ��������� �� ������ - ��������� �������. ����� ������ ��� ��������, ����������� EXECUTE ��� - ������� � ��������� �������� � PL/PgSQL. ������������� ����� ��������� - �������� ������ ������������������ ������ ���. - - 4.27) ����� ����� ���������� ����������? - - ���� ��������� ������� ��� ���������� ���� master/slave. ��� ��������� - ������������� ������ ������ ������� ��� �������� ��������� � ���� - ������, � slave ������� ������ ��������� ������ ������ �� ����. + 4.24) 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' + soedieneniya s razlichnymi bazami dannyh i takih obrazom ob"edinyat' + informaciyu iz nih. + + 4.25) Kak mne vernut' iz funkcii neskol'ko zapisej? + + Vy mozhete vozvraschat' iz funkcij PL/pgSQL spiski rezul'tatov, + ispol'zuya refcursors. Smotrite + http://www.PostgreSQL.org/idocs/index.php?plpgsql-cursors.html, + sekciyu 23.7.3.3. + + 4.26) Pochemu ya ne mogu nadezhno sozdavat'/udalyat' vremennye tablicy v + funkciyah PL/PgSQL? + + PL/PgSQL k`eshiruet soderzhimoe funkcii i odin iz negativnyh `effektov + `etogo sostoit v tom, chto esli funkciya PL/PgSQL obraschaetsya k + vremennoj tablice i `eta tablica pozdnee udalyaetsya i peresozdaetsya, + a funkciya zatem vyzyvaetsya snova, to ee vyzov privedet k oshibke, + potomu chto sk`eshirovannoe soderzhimoe funkcii soderzhit ukazatel' na + staruyu vremennuyu tablicu. CHtoby reshit' `etu problemu, ispol'zujte + EXECUTE dlya dostupa k vremennym tablicam v PL/PgSQL. Ispol'zovanie + `etogo operatora zastavit zapros peregenerirovat'sya kazhdyj raz. + + 4.27) Kakie opcii replikacii suschestvuyut? + + Est' neskol'ko opcij dlya replikacii tipa master/slave. Oni dopuskayut + ispol'zovanie tol'ko master servera dlya vneseniya izmenenij v bazu + dannyh, a slave servery prosto pozvolyayut chitat' dannye iz bazy. Ob + `etom chitajte zdes': + http://gborg.PostgreSQL.org/genpage?replication_research. O replikacii + s neskol'kimi master serverami chitajte zdes': + http://gborg.PostgreSQL.org/project/pgreplication/projdisplay.php. + + 4.28) Kakie opcii shifrovaniya suschestvuyut? + + * contrib/pgcrypto soderzhit mnogo funkcij shifrovaniya dlya + ispol'zovaniya v SQL zaprosah. + * Est' tol'ko odin sposob shifrovaniya dannyh, peredavaemyh ot + klienta k serveru, cherez ispol'zovanie hostssl v pg_hba.conf. + * Paroli pol'zovatelej k baze dannyh avtomaticheski shifruyutsya, + pri sohranenii v versii 7.3. V predyduschih versiyah, vy dolzhny + razreshit' opciyu PASSWORD_ENCRYPTION v postgresql.conf. + * Server mozhno zapustit', ispol'zuya shifrovannuyu fajlovuyu + sistemu. _________________________________________________________________ - ���������� PostgreSQL + Rasshireniya PostgreSQL - 5.1) � ������� ������� ������������ �������������. ����� � �������� �� � - psql, ������ � ������� dump core? + 5.1) YA napisal funkciyu opredelyaemuyu pol'zovatelem. Kogda ya zapuskayu + ee v psql, pochemu ya poluchayu dump core? - �������� ����� ����������� � ���������� �����. ����������� ������ - �������������� ���� ������� � ��������� ��������������� ���������. + Problema mozhet zaklyuchat'sya v neskol'kih veschah. Popytajtes' + sperva protestirovat' vashu funkciyu v otdel'noj samostoyatel'noj + programme. - 5.2) ��� � ���� ������ ��������� �������� ����� ���� � ������� � + 5.2) Kak ya mogu vnesti nekotorye klassnye novye tipy i funkcii v PostgreSQL? - ��������� ���� ���������� � ������ �������� pgsql-hackers � ��� �� - ����������� ����� �������� � ���������� contrib/. + Otprav'te vashi rasshireniya v spisok rassylki pgsql-hackers i oni po + vozmozhnosti budut pomescheny v podkatalog contrib/. - 5.3) ��� ��� �������� C �������, ������������ ������? + 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) � ������� �������� ����. ������ ����� �������������� � �� ���� - ���������? + 5.4) YA izmenil ishodnyj fajl. Pochemu posle perekompilyacii ya ne vizhu + izmenenij? - ����� Makefile �� ����� ���������� ������������ ��� include ������. �� - ������ ��������� make clean � ����� make. ���� �� ����������� GCC �� - ������ ������������ ����� --enable-depend � configure ����� �������� - ����������� ������������� ����������� �����������. + 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. diff --git a/doc/src/FAQ/FAQ_russian.html b/doc/src/FAQ/FAQ_russian.html index a5c22f0a471..ffe0a225aed 100644 --- a/doc/src/FAQ/FAQ_russian.html +++ b/doc/src/FAQ/FAQ_russian.html @@ -2,11 +2,10 @@ <HTML> <!-- DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN" --> - <!-- HTML --> <HEAD> <META name="generator" content="HTML Tidy, see www.w3.org"> - + <META http-equiv="Content-Type" content="text/html; charset=koi8-r"> <TITLE>PostgreSQL FAQ</TITLE> </HEAD> @@ -14,7 +13,7 @@ alink="#0000ff"> <H1>������ �� ����� ���������� ������� �� PostgreSQL</H1> - <P>���� ���������� ����������: ����� 9 ������� 23:14:53 EDT 2002</P> + <P>���� ���������� ����������: ����������� 20 ������� 20:47:14 EDT 2002</P> <P>���������� ������� ������������: ���� ������ (Bruce Momjian) (<A href= "mailto:[email protected]">[email protected]</A>)<BR> @@ -32,8 +31,7 @@ <HR> <H2 align="center">����� �������</H2> - <A href="#1.1">1.1</A>) ��� ����� PostgreSQL? ��� ������������ ��� - ��������?<BR> + <A href="#1.1">1.1</A>) ��� ����� PostgreSQL? ��� ������������ ��� ��������?<BR> <A href="#1.2">1.2</A>) ������ ��������� ����� �� PostgreSQL?<BR> <A href="#1.3">1.3</A>) �� ����� Unix ���������� �������� PostgreSQL?<BR> <A href="#1.4">1.4</A>) ���������� �� ������ ������������� �� �� Unix �������?<BR> @@ -80,8 +78,7 @@ <A href="#3.7">3.7</A>) ����� ����������� ��� ������� ���� � �������?<BR> <A href="#3.8">3.8</A>) ������ � ������� ��������� <I>"Sorry, too many clients"</I> ����� ������� ������������ � ����?<BR> - <A href="#3.9">3.9</A>) ��� ��� �� ����� <I>pg_sorttempNNN.NN</I> - � ���� �������� � ����� ������?<BR> + <A href="#3.9">3.9</A>) ��� ��������� � �������� <I>pgsql_tmp</I>?<BR> <A href="#3.10">3.10</A>) ������ ���������� ������ dump � restore ��� ���������� �������� PostgreSQL?<BR> @@ -143,6 +140,7 @@ <A href="#4.26">4.26</A>) ������ � �� ���� ������� ���������/������� ��������� ������� � �������� PL/PgSQL?<BR> <A href="#4.27">4.27</A>) ����� ����� ���������� ����������?<BR> + <A href="#4.28">4.28</A>) ����� ����� ���������� ����������?<BR> <H2 align="center">���������� PostgreSQL</H2> <A href="#5.1">5.1</A>) � ������� ������� ������������ �������������. @@ -158,7 +156,7 @@ <H2 align="center">����� �������</H2> - <H4><A name="1.1">1.1</A>) ��� ����� PostgreSQL?</H4> + <H4><A name="1.1">1.1</A>) ��� ����� PostgreSQL? ��� ������������ ��� ��������?</H4> <P>PostgreSQL ������������ <I>Post-Gres-Q-L (����-����-���-��)</I>.</P> @@ -169,13 +167,12 @@ ����������� ������������ <SMALL>SQL</SMALL>. PostgreSQL - ��� ��������� � ��������� �������� ����������� �����������.</P> - <P>���������� PostgreSQL ��������� �������, - ��������� ����� Internet, ��� ��������� ������� ��������� �� ������ - �������� �������������. � ��������� �����, �� ������������� - �������� ���� ������ (Marc G. Fournier) (<A href= + <P>���������� PostgreSQL ��������� ������� �������������, ��� ��������� + ������� ��������� �� ������ �������� �������������. � ��������� �����, + �� ������������� �������� ���� ������ (Marc G. Fournier) (<A href= "mailto:[email protected]">[email protected]</A>). (��. - ���� � ���, ��� ������������ � ����������). ��� ������� ������ - �������� �� ��� ���������� PostgreSQL.</P> + ������ <A href="#1.6">1.6</A> � ���, ��� ������������ � ����������). + ��� ������� ������ �������� �� ��� ���������� PostgreSQL.</P> <P>�������� PostgreSQL 1.01 �������� ����� � (Andrew Yu) � ����� ��� (Jolly Chen). ������ ������ ������ ���� ����� � ������� �� ������ @@ -240,10 +237,10 @@ <P><STRONG>������</STRONG></P> <P>��� ������� �� ���������� MS Windows �������� ���������� C - ���������� <I>libpq</I>, psql � ������ ���������� � �������� ������. + ���������� <I>libpq</I>, psql, ������ ���������� � ���������� ����������. � ���� ������, ������ ����������� �� MS Windows � ����������� �� TCP/IP � ��������, ���������� �� ����� �� �������������� Unix - ��������. � ����������� ���������� ���� <I>win31.mak</I> ��� ����, + ��������. � ����������� ���������� ���� <I>win32.mak</I> ��� ����, ����� ����� ���� �������� ������ ���������� <I>libpq</I> � <I>psql</I> ��� Win32. PostgreSQL ����� �������� ����� <SMALL>ODBC</SMALL>.</P> @@ -252,10 +249,12 @@ <P>������ �� ����� ���� ������� �� Windows NT � Win2k, ��������� ���������� Cygwin, ������������� ��� �������� ������������ ����������� Unix - � NT. �������� <I>pgsql/doc/FAQ_MSWIN</I> � ������������ ��� <A href= - "http://www.postgresql.org/docs/faq-mswin.html">MS Windows FAQ</A> - �� ����� �����. �� �� ��������� ���������� ���������� PostgreSQL - �� �����-���� ��������� Microsoft.</P> + � NT. �������� <I>pgsql/doc/FAQ_MSWIN</I> � ������������ ��� + MS Windows FAQ �� <A href="http://www.postgresql.org/docs/faq-mswin.html"> + http://www.PostgreSQL.org/docs/faq-mswin.html</A>.</P> + + <P>PostgreSQL, �������������� ���������� ��� MS Win NT/2000/XP � + ��������� ������ ����� ��������.</P> <H4><A name="1.5">1.5</A>) ��� ����� ����� PostgreSQL?</H4> @@ -321,7 +320,7 @@ <P>������ ������������ ��������� �������� �������� �� <A href= - "http://www.postgresql.org/users-lounge/commercial-support.html">http://www.postgresql.org/users-lounge/commercial-support.html</A>.</P> + "http://www.postgresql.org/users-lounge/commercial-support.html">http://www.PostgreSQL.org/users-lounge/commercial-support.html</A>.</P> <H4><A name="1.7">1.7</A>) ����� ��������� ������?</H4> @@ -341,8 +340,8 @@ "http://www.PostgreSQL.org/docs/awbook.html">http://www.PostgreSQL.org/docs/awbook.html</A> � <a href="http://www.commandprompt.com/ppbook/">http://www.commandprompt.com/ppbook/</a>. ������ ���� �� PostgreSQL, ������� ����� ������ �������� �� ������ - <a href="http://www.postgresql.org/books/">http://www.postgresql.org/books/</a>. - ����� ����, �� ������ <a href="http://techdocs.postgresql.org">http://techdocs.postgresql.org/</a> + <a href="http://www.ca.postgresql.org/books/">http://www.ca.PostgreSQL.org/books/</a>. + ����� ����, �� ������ <a href="http://techdocs.postgresql.org">http://techdocs.PostgreSQL.org/</a> �� ������ ����� ��������� ����������� ������ ����������� PostgreSQL.</p> @@ -405,8 +404,8 @@ <H4><A name="1.13">1.13</A>) ��� �������� ��������� �� ������??</H4> - <P>���������� �������� ��������� <A href= - "http://www.postgresql.org/bugs/bugs.php">PostgreSQL BugTool</A>, + <P>���������� �������� ��������� PostgreSQL BugTool �� <A href= + "http://www.postgresql.org/bugs/bugs.php">http://www.PostgreSQL.org/bugs/bugs.php</A>, �� ������� ������������� ��������� ���������� � ��� ��� ��������� ��������� �� ������.</P> @@ -445,9 +444,8 @@ �� ������ ���� �� ���������� � ����������� �����������, �� �� ����� ���������� ����������� ������������������ � ������ ��������. ���������� ���������� ��������� � ��������, ������������ PostgreSQL � MySQL �� - <A href="http://openacs.org/why-not-mysql.html"> - - http://openacs.org/why-not-mysql.html</A><BR> + <A href="http://openacs.org/philosophy/why-not-mysql.html"> + http://openacs.org/philosophy/why-not-mysql.html</A><BR> <BR> </DD> @@ -467,15 +465,15 @@ <DT><B>���������</B></DT> - <DD>��� ������ �������� ����������� ������� ������� ������������� - � �������������, ������� ����� ������ ������ ����� ��������� - ��������. � �� �� �����, �� �� ����������� �����-���� �����������, - �� � ������������ ������������ <SMALL>����</SMALL> �� ������ ������ - �����������. ������ ������ � �������������, ���������� �������������, - ������������ � �������� ������� ����� ������ ��������� PostgreSQL - ������������� ������ <SMALL>����</SMALL>. ���������� ������������ - ��������� �� ��������� ��������� ����������, ������� �������� ��� - ��� ���� ��� �����. (�������� <A href="#1.6">��� �������� ���������?</A>.)<BR> + <DD>��� ������ �������� ������������� �������������� ������� � + ������� ������� ������������� � �������������, ������� ����� ������ ������ + ����� ��������� ��������. � �� �� �����, �� �� ����������� �����-���� + �����������, �� � ������������ ������������ <SMALL>����</SMALL> �� ������ + ������ �����������. ������ ������ � �������������, ���������� + �������������, ������������ � �������� ������� ����� ������ ��������� + PostgreSQL ������������� ������ <SMALL>����</SMALL>. ���������� + ������������ ��������� �� ��������� ��������� ����������, ������� + �������� ��� ��� ���� ��� �����. (�������� <A href="#1.6">������ 1.6</A>.)<BR> <BR> </DD> @@ -493,7 +491,7 @@ PostgreSQL?</H4> <P>PostgreSQL ����� ������������ �������������� � ���� ������ ������� - ��� �� ������ ���������� 6 ��� �����. �� ������ ����������� �� + ��� �� ������ ���������� � 1996 ����. �� ������ ����������� �� ��� ����� ����� (Marc Fournier), ������� ������ ��� �������������� � ��������� �� �� ���������� ���� ���.</P> @@ -505,8 +503,8 @@ ��������� ���������� ����������� � ����������� ��������, ������� ������� �����. ���� �� ��� ���� �������� ����� ������, ������� ����� �������� � ������ ����� �������, ���������� �������� ��������� - <A href="https://store.pgsql.com/shopping/index.php?id=1"> - https://store.pgsql.com/shopping/index.php?id=1</A> + <A href="https://store.pgsql.com/shopping/"> + https://store.pgsql.com/shopping/</A> � �������� ���� �����.</P> <P>���� �� ��������� ��������� � PostgreSQL, Inc, ����� @@ -549,29 +547,23 @@ <P>���������� �������� �� �������������� ��� ������ � Web ����� ����� ��: <A href="http://www.webreview.com">http://www.webreview.com</A></P> - <P>����� ��������� �� <A href= - "http://www.phone.net/home/mwm/hotlist/">http://www.phone.net/home/mwm/hotlist/.</A></P> - <P>��� ���������� � Web, ����� �� ������������ ������������ �������� PHP. - �������� �������� <A - href="http://www.php.net">http://www.php.net</A>.</P> + �������� �������� <A href="http://www.php.net">http://www.php.net</A>.</P> - <P>��� ����������� �������, ������ ���������� Perl ����������� � CGI.pm.</P> + <P>��� ����������� �������, ������ ���������� Perl ����������� � CGI.pm ��� mod_perl.</P> <H4><A name="2.3">2.3</A>) ���� �� � PostgreSQL ����������� ��������� ������������? ��������� �������? ���������� ��������� ��� ����� ��������?</H4> <P>� ��� ���� ���������� ������������ ���������, ���������� - <I>pgaccess</I>, ������� �������� ������ ������������. <I>pgaccess</I> - ����� ����� ��������� �������. ��� ��������� <A href= - "http://www.flex.ro/pgaccess">http://www.flex.ro/pgaccess</A></P> + PgAccess, ������� ����� ����� ������������ ��� ��������� �������. + ��� ��������� <A href="http://www.pgaccess.org">http://www.pgaccess.org/</A></P> <P>�� ����� �������� <I>ecpg</I>, ������� ������������� ���������� ��������� � ����� �������� SQL �� C.</P> - <H4><A name="2.4">2.4</A>) ����� ����� ����� ����������������� � - PostgreSQL?</H4> + <H4><A name="2.4">2.4</A>) ����� ����� ����� ����������������� � PostgreSQL?</H4> <P>��� ���:</P> @@ -584,7 +576,7 @@ <LI>Java (jdbc)</LI> - <LI>Perl (perl5)</LI> + <LI>Perl (DBD::Pg � perl5)</LI> <LI>ODBC (odbc)</LI> @@ -594,11 +586,12 @@ <LI>C Easy API (libpgeasy)</LI> - <LI>Embedded <SMALL>HTML</SMALL> (<A href= - "http://www.php.net">PHP from http://www.php.net</A>)</LI> + <LI>PHP ('pg_' functions, Pear::DB)</LI> </UL> - <P>�������������� ���������� �������� �� ������ <A href="http://www.postgresql.org/interfaces.html"> - http://www.postgresql.org/interfaces.html.</A> + <P>�������������� ���������� �������� �� ������ + <A href="http://www.postgresql.org/interfaces.html">http://www.PostgreSQL.org/interfaces.html.</A> + � + <A href="http://gborg.postgresql.org/">http://gborg.PostgreSQL.org</a>. </P> <HR> @@ -671,7 +664,7 @@ <P>���� �� ���������� ����� ���������� <SMALL>INSERT</SMALL>, ����������� ����������� ��������� �� � ������� �����, ��������� ������� <SMALL>COPY</SMALL>. ��� ����������� �������, ��� ��������� - <SMALL>INSERT.</SMALL> ��-������, ��������� ��� ����� ���������� + <SMALL>INSERT</SMALL>. ��-������, ��������� ��� ����� ���������� <SMALL>BEGIN WORK/COMMIT</SMALL> ���� ��������� ����������. ��������� ��� ����������� ���������� ���������� � ����� ����� ����������. ��� �������� ���������� ����������. �����, ����������� ��� ��������� @@ -740,7 +733,7 @@ <P>���� <I>postmaster</I> �������, ��������� <I>psql</I> � ����� ����, ����� ������� <SMALL>PID</SMALL> �������� <I>postgres</I>, ������������ <I>psql</I>. ����������� �������� ��� ����������� � - <I>postgres</I> <SMALL>PID.</SMALL> �� ������ ���������� ����� + <I>postgres</I> <SMALL>PID</SMALL>. �� ������ ���������� ����� ���������� � ��������� � ��������� ������ �� <I>psql</I>. ���� �� ����������� ������� ������� <I>postgres</I>, �� ������ ���������� PGOPTIONS="-W n", � ����� ��������� <I>psql</I>. ��� ����� �������� @@ -781,7 +774,7 @@ ���������, <SMALL>SEMMNS</SMALL> � <SMALL>SEMMNI;</SMALL> ������������ ���������� ���������, <SMALL>NPROC;</SMALL> ������������ ���������� ��������� �� ������������, <SMALL>MAXUPRC;</SMALL> � ������������ - ���������� �������� ������, <SMALL>NFILE</SMALL> � <SMALL>NINODE.</SMALL> + ���������� �������� ������, <SMALL>NFILE</SMALL> � <SMALL>NINODE</SMALL>. ������� �������� ����������� �� ���������� backend ��������� ��� ��� � ������� � ���, ����� ����� ������� ������� ��������.</P> @@ -789,38 +782,35 @@ ���� 64, � ��������� ����� ���������� ��������� �������������� ����� ��������� ��������� MaxBackendId � <I>include/storage/sinvaladt.h</I>.</P> - <H4><A name="3.9">3.9</A>) ��� ��� �� ����� <I>pg_sorttempNNN.NN</I> - � ���� �������� � ����� ������?</H4> - - <P>��� ��������� �����, ������������ �� ����� ���������� �������. - ��������, ���� ��� ��������� <SMALL>ORDER BY</SMALL> ������ ���� - ��������� ����������, ������� ������� ������ ����� ��� ��������� - ��� backend �������� � ����� <I>-S</I>, �� ��������� ��������� ���� ��� - �������� �������������� ������.</P> + <H4><A name="3.9">3.9</A>) ��� ��������� � �������� <I>pgsql_tmp</I>?</H4> - <P>��������� ����� ������ ��������� �������������, �� ����� ����� - �� �����������, ���� backend ������� ������ �� ����� ����������. - ���� � ��� �� �������� �� ������ backend ��������, �� �� ������ - �������� ������� ����� pg_tempNNN.NN.</P> + <P>������ ������� �������� ��������� �����, ������������ ������������ + �������. ��������, ���� ��� ���������� <small>ORDER BY</small> ����� + ���������� � ��� ���������� ������� ������ ������, ��� ��������� �������� <i>-S</i> + � backend'�, �� ��� �������� �������������� ������ ��������� ��������� + �����.</P> + + <P>��� ��������� ����� ������ ��������� �������������, �� ����� ����� �� + ���������, ���� backend ������ �� ����� ����������. ������� � ������ + ���������� �������� ��������� �� �������� �� ��������.</P> - <A name="3.10">3.10</A>) ������ ���������� ������ dump � restore ��� - ���������� �������� PostgreSQL?<BR> + <H4><A name="3.10">3.10</A>) ������ ���������� ������ dump � restore ��� + ���������� �������� PostgreSQL?</H4> <P>������������ PostgreSQL ������ ������ ��������� ��������� ����� ������������. ����� ������� ���������� � ������ 7.2 �� 7.2.1 �� ������� - ���������� dump � restore. ������ ��� ������ ���������� ������� ����� - �������� ���������� ������ ��������� ������ � ������ ������. ��� - ��������� ����� ����� ����������� ��������, ��� ��� ��� ����������� - ���������� �������� ������������� ������ ������. ��������� dump - ��������� �������� ������ � ����� �������, ������� ����� ����� ���� - �������� ��� ������������� ������ ����������� �������.</P> + ���������� dump � restore. ������ ��� ������ ���������� ������� + (�.�. ��� ���������� ��������, � 7.2 �� 7.3) ����� �������� ���������� + ������ ��������� ������ � ������ ������. ��� ��������� ����� ����� + ����������� ��������, ��� ��� ��� ����������� ���������� �������� + ������������� ������ ������. ��������� dump ��������� �������� ������ + � ����� �������, ������� ����� ����� ���� �������� ��� ������������� + ������ ����������� �������.</P> - <P> - � ��� ��������, ��� ������ ������ �� ����� �� ��������, ��� ���������� + <P>� ��� ��������, ��� ������ ������ �� ����� �� ��������, ��� ���������� ���������� ����� ���� ����������� �������� <i>pg_upgrade</i> ��� ������������� dump/restore. ����������� � ������� ������� ����� ����� - ������������ <i>pg_upgrade</i> ��� ����� �������. - </P> + ������������ <i>pg_upgrade</i> ��� ����� �������.</P> <HR> <H2 align="center">������� ������������</H2> @@ -857,7 +847,8 @@ <H4><A name="4.4">4.4</A>) ��� ������� ������� �� �������?</H4> - <P>�� �� ������������ <SMALL>ALTER TABLE DROP COLUMN,</SMALL> �� + <P>��� ���������������� ���� ��������� � ������ 7.3 � ���������� + <small>ALTER TABLE DROP COLUMN</small>. � ������ �������, ����� ������� ���:</P> <PRE> BEGIN; @@ -981,21 +972,21 @@ SELECT col FROM tab ORDER BY col [ DESC ] - LIMIT 1 + LIMIT 1; </pre> <P>����� ������������ �������� � ���������, �������� <SMALL>LIKE</SMALL> - ��� <I>~</I>, ������� ����� ���� ������������ � ��������� �������: - </P><UL> - <LI>������ ������ ������ ������ ��������� � ������� ������� ������, �.�.:</LI> + ��� <I>~</I>, ������� ����� ���� ������������ � ��������� �������:</P> <UL> - <LI><small>LIKE</small> ������� �� ������ ���������� � <i>%.</i><LI> - <LI><i>~</i> ������� ���������� ��������� ������ ���������� �� <i>^.</i><LI> - </UL> + <LI>������ ������ ������ ������ ��������� � ������� ������� ������, �.�.: + <UL> + <LI><small>LIKE</small> ������� �� ������ ���������� � <i>%.</i>.</LI> + <LI><i>~</i> ������� ���������� ��������� ������ ���������� �� <i>^</i>.</LI> + </UL></LI> <LI>������ ������ �� ������ ���������� � ������� ������, �.�. [a-e].</LI> - <LI>�� ������ �������������� ����� ����������� �� �������� ����� ��� - <small>ILIKE</small> � <i>~</i>. ������ ���� ����������� �������������� - �������, ������� ������� � ���� FAQ ����.</LI> + <LI>����� ����������� �� ��������, ����� ��� <small>ILIKE</small> � + <i>~*</i> �� ���������� �������. ������ ����, ����������� �������������� + �������, ������� ����������� � ������ <A href="#4.12">4.12</A>.</LI> <LI>�� ����� <i>initdb</i> ������ �������������� ������ �� ��������� <i>C</i>. </UL> @@ -1053,13 +1044,13 @@ <PRE> SELECT * FROM tab - WHERE lower(col) = 'abc' + WHERE lower(col) = 'abc'; </PRE> ��� ����������� �� ����� ������������ ����������� ������. ������, ���� �� ��������� �������������� ������, �� ����� �����������: <PRE> - CREATE INDEX tabindex on tab (lower(col)); + CREATE INDEX tabindex ON tab (lower(col)); </PRE> <H4><A name="4.13">4.13</A>) ��� � ���� ����������, ��� �������� ���� @@ -1074,8 +1065,8 @@ ��� ���������� ��� ��������� -------------------------------------------------- "char" char 1 ������ -CHAR(#) bpchar ����������� �������� �� ������������� ����� -VARCHAR(#) varchar ������ ������ ������������ �����, ��� ���������� +CHAR(n) bpchar ����������� �������� �� ������������� ����� +VARCHAR(n) varchar ������ ������ ������������ �����, ��� ���������� TEXT text ��� ����������� �������� ����������� ��� ����� BYTEA bytea ������ ���� ���������� ����� (����� ������������ null-���� ��� ������) </PRE> @@ -1091,13 +1082,14 @@ BYTEA bytea ������ ���� ���������� ����� (����� ������������ ��� ��� ���������� �������� ������������ ����� ����� ���� � ������, ��� ���������.</P> - <P><SMALL>CHAR()</SMALL> - ��� ������ ������� ��� �������� �����, ������� - ������ ����� ���������� �����. <SMALL>VARCHAR()</SMALL> - ��� ������ + <P><SMALL>CHAR(n)</SMALL> - ��� ������ ������� ��� �������� �����, ������� + ������ ����� ���������� �����. <SMALL>VARCHAR(n)</SMALL> - ��� ������ �������, ����� ����� ������� ������ ���������� �����, �� �� ����������� ������������� �������. <SMALL>TEXT</SMALL> - ��� ������ ������� ��� ����� �������������� �����, � ����������� ���������� ������ � 1 ��������. <SMALL>BYTEA</SMALL> ��� �������� �������� ������, �������� ������� - ����� �������� <SMALL>NULL</SMALL> �����.</P> + ����� �������� <SMALL>NULL</SMALL> �����. ��� ���� ����� ������� + �������������� ������������������.</P> <H4><A name="4.15.1">4.15.1</A>) ��� ��� ������� ���� serial/�-����-�����������?</H4> @@ -1136,11 +1128,11 @@ BYTEA bytea ������ ���� ���������� ����� (����� ������������ <P>���� �� �������� ������� � ��������� ���������� �������� <SMALL>SERIAL</SMALL> �� ������� sequence � ������� ������� <I>nextval()</I> <I>�����</I> �������� � ����� ��������� ��� �������� - ����. ����������� �������-������ � <A href="#4.15.1">4.15.1</A>, ����� - ������� ��� ��� �������� � Perl:</P> + ����. ����������� �������-������ � <A href="#4.15.1">4.15.1</A>, ������ + � ����������� ������� ��� ��� ��������:</P> <PRE> - new_id = output of "SELECT nextval('person_id_seq')" - INSERT INTO person (id, name) VALUES (new_id, 'Blaise Pascal'); + new_id = execute("SELECT nextval('person_id_seq')"); + execute("INSERT INTO person (id, name) VALUES (new_id, 'Blaise Pascal')"); </PRE> ����� �� ������ ����� ��������� ����� �������� � ���������� @@ -1152,11 +1144,11 @@ BYTEA bytea ������ ���� ���������� ����� (����� ������������ ������� ����� ������� � ����� ������� <SMALL>SERIAL</SMALL>. <P>� �������� ������������, �� ������ �������� ����������� �������� - <SMALL>SERIAL</SMALL> � ������� ������� <I>currval</I>() + <SMALL>SERIAL</SMALL> � ������� ������� <I>currval()</I> <I>�����</I> ���������� ������� �������� �������, ��������</P> <PRE> - INSERT INTO person (name) VALUES ('Blaise Pascal'); - new_id = output of "SELECT currval('person_id_seq')"; + execute("INSERT INTO person (name) VALUES ('Blaise Pascal')"); + new_id = execute("SELECT currval('person_id_seq')"); </PRE> � �������, �� ������ ������������ �������� @@ -1171,7 +1163,7 @@ BYTEA bytea ������ ���� ���������� ����� (����� ������������ ������������� <I>currval()</I> � <I>nextval()</I> �������� � �������������� � ������� ��������������?</H4> - <P>���. Currval() ���������� ������� ��������, ����������� ����� + <P>���. <i>currval()</i> ���������� ������� ��������, ����������� ����� backend'��, � �� ������� ��������������.</P> <H4><A name="4.15.4">4.15.4</A>) ������ ����� �� ���� ������������������ @@ -1191,7 +1183,7 @@ BYTEA bytea ������ ���� ���������� ����� (����� ������������ � PostgreSQL. ������ ������, ������� ��������� � PostgreSQL �������� ���������� <SMALL>OID</SMALL>. ��� �������� <SMALL>OID</SMALL> ������������ �� ����� <I>initdb</I> ����� �������� ������ 16384 (�� - <I>backend/access/transam.h</I>). ��� ��������� ������������� + <I>include/access/transam.h</I>). ��� ��������� ������������� <SMALL>OID</SMALL> ����� ������� ��������. �� ���������, ��� ��� <SMALL>OID</SMALL> �������� ����������� �� ������ ������ �����-���� ������� ��� ���� ������, �� � ������ ���� ���� PostgreSQL.</P> @@ -1215,13 +1207,12 @@ BYTEA bytea ������ ���� ���������� ����� (����� ������������ COPY new TO '/tmp/pgtable'; DELETE FROM new; COPY new WITH OIDS FROM '/tmp/pgtable'; +</PRE> <!-- CREATE TABLE new_table (mycol int); INSERT INTO new_table (oid, mycol) SELECT oid, mycol FROM old_table; --> -</PRE> - - <P><SMALL>OID</SMALL> �������� ��� 4-� ������� ����� � �� ����� ��������� + <P>O<SMALL>ID</SMALL> �������� ��� 4-� ������� ����� � �� ����� ��������� �������� � 4 ���������. ������, ��� ����� �� ������� � ���, ��� ����� ���������, �� �� ��������� �� ���� ��� ��� ��������� ��������� �� ����� �����������.</P> @@ -1258,8 +1249,7 @@ BYTEA bytea ������ ���� ���������� ����� (����� ������������ <LI>range variable, table name, table alias</LI> </UL> - <P>������ ����� �������� �� ����� ������ ����� ����� �� <A href= - "http://www.comptechnews.com/~reaster/dbdesign.html">http://www.comptechnews.com/~reaster/dbdesign.html</A></P> + <P>������ ����� �������� �� ����� ������ ����� ����� �� <A href="http://hea-www.harvard.edu/MST/simul/software/docs/pkgs/pgsql/glossary/glossary.html">http://hea-www.harvard.edu/MST/simul/software/docs/pkgs/pgsql/glossary/glossary.html</A></P> <H4><A name="4.18">4.18</A>) ������ � ������� ������ <I>"ERROR: Memory exhausted in AllocSetAlloc()"</I>?</H4> @@ -1284,7 +1274,7 @@ BYTEA bytea ������ ���� ���������� ����� (����� ������������ <H4><A name="4.19">4.19</A>) ��� ��� ������, ����� ������ PostgreSQL ��������?</H4> - <P>�� <I>psql</I>, �������� <CODE>select version();</CODE></P> + <P>�� <I>psql</I>, �������� <CODE>SELECT version();</CODE></P> <H4><A name="4.20">4.20</A>) ������ ��� ������ � ���� ������� �������� � ������� ������ <I>"invalid large obj descriptor"</I>?</H4> @@ -1324,18 +1314,16 @@ BYTEA bytea ������ ���� ���������� ����� (����� ������������ ��������� �������� � ������ ��������, �������� <CODE>IN</CODE> �� <CODE>EXISTS</CODE>:</P> <PRE> -<CODE>SELECT * + SELECT * FROM tab - WHERE col IN (SELECT subcol FROM subtab) -</CODE> + WHERE col IN (SELECT subcol FROM subtab); </PRE> ��: <PRE> -<CODE>SELECT * + SELECT * FROM tab - WHERE EXISTS (SELECT subcol FROM subtab WHERE subcol = col) -</CODE> + WHERE EXISTS (SELECT subcol FROM subtab WHERE subcol = col); </PRE> ����� ����� ����������� �������� ������, ������� <CODE>subcol</CODE> @@ -1390,7 +1378,7 @@ BYTEA bytea ������ ���� ���������� ����� (����� ������������ ��������� PostgreSQL ��������� ��������� �������� ����������� ��� ���� ������, ��������� ����, ��� ������ ���� ����� ����� ���������� ������.</P> - <P><I>/contrib/dblink</I> ��������� ������� ����� ������, ��������� + <P><I>contrib/dblink</I> ��������� ������� ����� ������, ��������� ������ �������. ����������, ������ ����� ������������ ������������� ����������� � ���������� ������ ������ � ����� ������� ���������� ���������� �� ���.</P> @@ -1399,8 +1387,8 @@ BYTEA bytea ������ ���� ���������� ����� (����� ������������ <P>�� ������ ���������� �� ������� PL/pgSQL ������ �����������, ��������� <i>refcursors</i>. �������� <A - href="http://developer.postgresql.org/docs/postgres/plpgsql-cursors.html"> - http://developer.postgresql.org/docs/postgres/plpgsql-cursors.html,</a> + href="http://www.postgresql.org/idocs/index.php?plpgsql-cursors.html"> + http://www.PostgreSQL.org/idocs/index.php?plpgsql-cursors.html</a>, ������ 23.7.3.3.</P> <H4><A name="4.26">4.26</A>) ������ � �� ���� ������� ���������/������� @@ -1416,10 +1404,26 @@ BYTEA bytea ������ ���� ���������� ����� (����� ������������ <H4><A name="4.27">4.27</A>) ����� ����� ���������� ����������?</H4> - <P>���� ��������� ������� ��� ���������� ���� master/slave. ��� ��������� - ������������� ������ ������ ������� ��� �������� ��������� � ���� ������, - � slave ������� ������ ��������� ������ ������ �� ����.</P> - + <P>���� ��������� ����� ��� ���������� ���� master/slave. ��� ��������� + ������������� ������ master ������� ��� �������� ��������� � ���� ������, + � slave ������� ������ ��������� ������ ������ �� ����. �� ���� ������� + �����: <A href="http://gborg.postgresql.org/genpage?replication_research"> + http://gborg.PostgreSQL.org/genpage?replication_research</A>. � ���������� + � ����������� master ��������� ������� �����: + <a href="http://gborg.postgresql.org/project/pgreplication/projdisplay.php">http://gborg.PostgreSQL.org/project/pgreplication/projdisplay.php</A>.</P> + + <h4><a name="4.28">4.28</a>) ����� ����� ���������� ����������? + </h4> + <ul> + <li><i>contrib/pgcrypto</i> �������� ����� ������� ���������� ��� + ������������� � <small>SQL</small> ��������.</li> + <li>���� ������ ���� ������ ���������� ������, ������������ �� ������� + � �������, ����� ������������� <i>hostssl</i> � <i>pg_hba.conf</i>.</li> + <li>������ ������������� � ���� ������ ������������� ���������, ��� + ���������� � ������ 7.3. � ���������� �������, �� ������ ��������� + ����� <i>PASSWORD_ENCRYPTION</i> � <i>postgresql.conf</i>.</li> + <li>������ ����� ���������, ��������� ����������� �������� �������.</li> + </ul> <HR> <H2 align="center">���������� PostgreSQL</H2> @@ -1439,8 +1443,10 @@ BYTEA bytea ������ ���� ���������� ����� (����� ������������ <H4><A name="5.3">5.3</A>) ��� ��� �������� C �������, ������������ ������?</H4> - <P>��� ������� ������� ��������� ��� ��� ������ ������� �� ��������� - ������ ���, ���� � �������� ��� ��������.</P> + <P>� ������� PostgreSQL, ������� � 7.3, �������, ������������ ������� + ��������� �������������� � C, PL/PgSQL � SQL. ����������� �������� � + ����������� ������������. ������ ������������ ������� �������, + ���������� �� C, ����� ����� � <i>contrib/tablefunc</i>.</P> <H4><A name="5.4">5.4</A>) � ������� �������� ����. ������ ����� �������������� � �� ���� ���������?</H4> |