-Èasto kladené dotazy (FAQ) PostgreSQL
-=====================================
-
-Obecné otázky
-=============
-1.1 Co je PostgreSQL? Jak se vyslovuje?
-1.2 Jaká je licence na PostgreSQL?
-1.3 Na kterých Unixex lze spustit PostgreSQL?
-1.4 Které ne-unixové platformy jsou podporované?
-1.5 Kde mohu získat PostgreSQL?
-1.6 Kde mohu získat podporu?
-1.7 Kde je poslední verze?
-1.8 Jaká je dostupná dokumentace?
-1.9 Kde najdu seznam známých chyb nebo nepodporovaných vlastností?
-1.10 Jak se mohu nauèit SQL?
-
-1.11 Nemá PostgreSQL problémy s rokem 2000?
-1.12 Jak se pøipojit k vývojáøskému týmu?
-1.13 Kam podat report o chybì?
-1.14 Jak je na tom PostgreSQL v porovnání s jinými databázemi?
-1.15 Jak lze finanènì pomoci PostgreSQL?
-
-User client dotazy
-==================
-2.1 Kde naleznu ODBC ovladaèe pro PostgreSQL?
-2.2 Jaké nástroje lze pou¾ít pro PostgreSQL a web?
-2.3 Existuje grafické rozhraní pro PostgreSQL?
-2.4 Které programovací jazyky mají podporu pro PostgreSQL?
-
-Administrativní dotazy
-======================
-3.1 Jak nainstalovat PostgreSQL jinam ne¾ do /usr/local/pgsql?
-3.2 Pøi startu postmaster, dostanu chybové hlá¹ení Bad System Call nebo
-core dump. Proè? 3.3 Pøi startu postmastera dostanu hlá¹ení o chybì
-IpcMemoryCreate. Proè? 3.4 Pøi startu postmastera dostanu hlá¹ení o
-chybì IpcSemaphoreCreate. Proè? 3.5 Jak povolit nebo zakázat pøístup z
-jiných stanic? 3.6 Jak ladit databázový stroj na lep¹í výkon?
-
-3.7 Jaké jsou mo¾nosti ladìní?
-3.8 Proè dostanu "Sorry, too many clients", kdy¾ se zkou¹ím pøipojit?
-3.9 K èemu slou¾í adresáø pgsql_tmp?
-
-3.10 Proè je po¾adováno dump a obnovení (load) databáze bìhem upgrade
-mezi velkými verzemi PostgreSQL?
-
-Provozní dotazy
-===============
-4.1 Èím se li¹í binární a normální kurzor?
-4.2 Jak získat pouze první øádek dotazu? Náhodný øádek?
-4.3 Jak získám seznam tabulek nebo jinak jak jej získá psql?
-4.4 Jak odstraním sloupec tabulky, jak zmìním jeho typ?
-4.5 Jaká je maximální velikost øádku, tabulky a databáze?
-4.6 Kolik diskového prostoru je potøeba k ulo¾ení dat z normálního
-textového souboru? 4.7 Jak získám seznam vytvoøených tabulek, indexù,
-databází? 4.8 Mùj dotaz je pomalý a nepou¾ívá vytvoøené indexy. Proè?
-4.9 Jak zjistím, jak optimizer dotazu vyhodnocuje mùj dotaz?
-
-4.10 Co to je R-tree index?
-4.11 Co je Genetic Query Optimizer?
-4.12 Jak provést vyhledávání regulárního výrazu case sensitiv,
-insensitiv? Jak pou¾ít index pro case insensitive vyhledávání? 4.13 Jak
-v dotazu detekovat, ¾e polo¾ka je NULL? 4.14 Jaké jsou rozdíly mezi
-rùznými znakovými typy? 4.15.1 Jak vytvoøit serial/auto-increment pole?
-4.15.2 Jak získat hodnotu SERIAL po vlo¾ení øádku?
-
-4.15.3 Nepovede currval() a nextval() k rozhození podmínek pøi soubìhu s
-jinými u¾ivateli? 4.15.4 Proè není vygenerované èíslo pou¾ito pøi
-pøeru¹ení transakce? Proè vznikají díry v èíslování vlastní
-sekvencí/SERIAL sloupce? 4.16 Co to je OID? Co je to TID?
-
-4.17 Jaký je význam nìkterých výrazù pou¾itých v PostgreSQL?
-4.18 Proè jsem získal chybové hlá¹ení "ERROR: Memory exhausted in
-AllocSetAlloc()"? 4.19 Jak se dozvím, kterou verzi PostgreSQL pou¾ívám?
-4.20 Proè operace s velkými objekty konèí "invalid large obj
-descriptor"? 4.21 Jak vytvoøit sloupec obsahující implicitnì aktuální
-datum? 4.22 Proè jsou moje vnoøené dotazy pou¾ívající IN tak pomalé?
-4.23 Jak provést vnìj¹í spojení (outer join)?
-
-4.24 Jak provést dotaz napøíè nìkolika databázemi?
-4.25 Mù¾e funkce vrátit více øádkù nebo sloupcù?
-4.26 Proè nelze spolehlivì vytváøet a ru¹it doèasné tabulky v PL/pgSQL
-funkcích? 4.27 Jaké jsou mo¾nosti replikace databází?
-
-4.28 Jaké jsou mo¾nosti ¹ifrování databází?
-
-Roz¹iøování PostgreSQL
-======================
-5.1 Napsal jsem UDF funkci, PostgreSQL v¹ak konèí dump core?
-5.2 Jak mohu pøispìt nìjakými ¹ikovnými datovými typy a funkcemi do
-PostgreSQL? 5.3 Jak napsat funkci v C vracející ntici?
-
-5.4 Modifikoval jsem zdrojové soubory. Tato zmìna nebyla pøi rekompilaci
-vzata v potaz. Proè?
-------------------------------------------------------------------------
-
-Obecné otázky
-=============
-
-1.1 Co je PostgreSQL? Jak se vyslovuje?
----------------------------------------
-
-PostgreSQL se vyslovuje Post-Gres-Q-L.
-
-PostgreSQL vychází z databáze POSTGRES - výzkumného prototypu DBMS nové
-generace. Z postgresu byl pøevzat silný datový model a bohatý soubor
-datových typù a jeho dotazovací jazyk PostQuel byl nahrazen roz¹íøenou
-podmno¾inou jazyka SQL. PostgreSQL lze pou¾ívat bez omezení a jeho
-zdrojové kódy jsou volnì k dispozici.
-
-PostgreSQL vyvýjí tým vývojáøù pøihlá¹ených do vývojáøské konference
-PostgreSQL. Souèasným koordinátorem je Marc G. Fournier. (Odpovìï 1.6. -
-jak se zapojit). Tento tým je zodpovìdný za ve¹kerý vývoj PostgreSQL.
-
-Autory první verze PostgreSQL 1.01 byli Andrew Yu and Jolly Chen. Do
-portace, testování, ladìní a roz¹iøování kódu se zapojilo mnoho dal¹ích
-vývojáøù . Pùvodni kód Postgresu, ze kterého PostgreSQL vychází, je
-výsledkem úsilí mnoha studentù a programátorù pracujících pod vedením
-prof. Michaela Stonebrakera na University of California v Berkley.
-
-Pùvodní název software z Berkley byl Postgres. Po pøidání jazyka SQL se
-název zmìnil na Postgres95. Koncem roku 1996 byl RDBMS pøejmenován na
-PostgreSQL.
-
-1.2 Jaká je licence na PostgreSQL?
-----------------------------------
-
-PostgreSQL je pøedmìtem následujících autorských práv:
-
-Dílèí copyright (c) 1996-2002, PostgreSQL Global Development Group
-
-Dílèí copyright (c) 1994-6, Regents of the University of California
-
-Udìluje se oprávnìní k u¾ití, rozmno¾ování, provádìní úprav a
-roz¹iøování tohoto softwaru a dokumentace k nìmu, pro jakékoli úèely,
-bez licenèního poplatku a bez písemné licenèní smlouvy, za podmínky, ¾e
-na v¹ech jeho kopiích je uvedeno oznámení o vý¹e uvedených právech,
-jako¾ i obsah tohoto a dvou následujících odstavcù.
-
-THE UNIVERSITY OF CALIFORNIA ("KALIFORNSKÁ UNIVERZITA") NENÍ V ®ÁDNÉM
-PØÍPADÌ ODPOVÌDNA ®ÁDNÉ TØETÍ OSOBÌ ZA PØÍMOU, NEPØÍMOU, ZVLÁ©TNÍ,
-NAHODILOU NEBO VýSLEDNOU ©KODU, VÈETNÌ U©LÉHO ZISKU, ZPùSOBENOU U®ITÍM
-TOHOTO SOFTWARU A DOKUMENTACE K NÌMU, A TO I V PØÍPADÌ, ®E THE
-UNIVERSITY OF CALIFORNIA BYLA INFORMOVÁNA O MO®NOSTI VZNIKU TAKOVÉ
-©KODY.
-
-THE UNIVERSITY OF CALIFORNIA ZEJMÉNA NEPOSKYTUJE JAKÉKOLI ZÁRUKY, A TO
-NEJEN ZÁRUKY OBCHODOVATELNOSTI A VHODNOSTI TOHOTO VýROBKU KE SPECIFICKýM
-ÚÈELùM. NÍ®E UVEDENý SOFTWARE JE POSKYTNUT "JAK STOJÍ A LE®Í" A THE
-UNIVERSITY OF CALIFORNIA NENÍ POVINNA ZAJISTIT JEHO ÚDR®BU, PODPORU,
-AKTUALIZACI, VYLEP©ENÍ NEBO MODIFIKACI.
-
-Vý¹e uvedené je BSD licence, bì¾ná licence otevøeného zdroje. Není zde
-¾ádné omezení ohlednì u¾ití kódu zdroje. Jsme s tím spokojeni a nemáme v
-úmyslu na této skuteènosti cokoli mìnit.
-
-1.3 Na kterých Unixex lze spustit PostgreSQL?
----------------------------------------------
-
-PostgreSQL bì¾í na v¹ech moderních unixových platformách. V instalaèních
-instrukcích naleznete aktuální seznam v¹ech platforem na kterých byla
-testováním ovìøena funkcionalita PostgreSQL.
-
-1.4 Které ne-unixové platformy jsou podporované?
-------------------------------------------------
-
-Klient
-------
-
-Knihovna libpq, psql a nìkteré dal¹í moduly byly pøelo¾eny pro MS
-Windows. Klienta lze provozovat na MS Windows, ten prostøednictvím
-TCP/IP protokolu komunikuje se serverem bì¾ícím na nìkteré z
-podporovaných Unixových platforem. K pøekladu lze pou¾ít win32.mak a
-Win32 knihovny libpq a psql. K databázi PostgerSQL lze pøistupovat skrze
-rozhraní ODBC.
-
-Server
-------
-
-Server mù¾e být na WindowsNT a Win2k provozován pouze s knihovnou
-Cygwin, Cygnus Unix/NT porting library. Na nativním portu pro MS Win
-NT/2000/XP se pracuje. Existující port pro Novell Netware 6 naleznete na
-http://forge.novell.com.
-
-1.5 Kde mohu získat PostgreSQL?
--------------------------------
-
-Primárním anonymním ftp serverem pro PostgreSQL je
-ftp://ftp.PostgreSQL.org/pub . Seznam zrcadel naleznete na na¹ich
-webových stránkách.
-
-1.6 Kde mohu získat podporu?
-----------------------------
-
-diskuzím ohlednì PostgreSQL. Pøihlásíte se zasláním mailu obsahující
-následující øádky v tìle dopisu (nikoliv v záhlaví - subjectu)
-
-subscribe
-end
-
-
-Mù¾ete si vy¾ádat denní pøehled (diggest), který má zhruba 30K dennì
-zpráv.
-
-Konference psql-bugs je urèena k zasílání zpráv o chybách. Pro
-pøihlá¹ení po¹lete mail se stejným obsahem jako v pøedchozím pøípadì na
-
-Do vývojáøské konference se pøihlásíte odesláním dopisu s ji¾ zmiòovaným
-
-Seznam dal¹ích konferencí naleznete na stránkách PostgreSQL
-http://www.postgresql.org
-
-1.7 Kde je poslední verze?
---------------------------
-
-Poslední verzí je PostgreSQL 7.4.. Plánujeme uvolnit velkou verzi
-ka¾dých ¹est a¾ osm mìsícù.
-
-1.8 Jaká je dostupná dokumentace?
----------------------------------
-
-Rùzné manuály, manuálové stránky a nìkolik malých testovacích pøíkladù
-jsou souèásti distribuce. Podívejte se do adresáøe /doc. Manuály jsou
-pøístupné online na http://www.PostgreSQL.org/docs.
-
-Na adresách http://www.PostgreSQL.org/docs/awbook.html a
-http://www.commandprompt.com/ppbook/ naleznezte dvì online knihy o
-PostgreSQL. Seznam dostupné literatury je na
-http://techdocs.PostgreSQL.org/techdocs/bookreviews.php. Soubor
-technických èlánkù s tematikou PostgresQL najdete na
-http://techdocs.PostgreSQL.org/.
-
-psql má u¾iteèný metapøíkaz \d slou¾ící k zobrazení informací o typech,
-operátorech, funkcí, agregaèních funkcí atd.
-
-Více dokumentace naleznete na na¹ich webových stránkách.
-
-1.9 Kde najdu seznam známých chyb nebo nepodporovaných vlastností?
-------------------------------------------------------------------
-
-PostgreSQL podporuje roz¹íøenou podmno¾inu SQL-92. V na¹em TODO [1]
-najdete seznam známých chyb, chybìjících vlastností a seznam vlastností,
-které budou do systému implementovány v budoucnu (vèetnì priorit).
-
-1.10 Jak se mohu nauèit SQL?
-----------------------------
-
-V knize The PostgreSQL book na
-http://www.PostgreSQL.org/docs/awbook.html je vysvìtlen jazyk SQL (vy¹la
-èesky). Dal¹í dostupnou knihou je http://www.commandprompt.com/ppbook.
-Kvalitní návody naleznete na
-http://www.intermedia.net/support/sql/sqltut.shtm, na
-http://www.intermedia.net/support/sql/sqltut.shtm [2] , a na
-http://sqlcourse.com.
-
-Dal¹í je Teach Yourself SQL in 21 days, Second Edition na
-http://members.tripod.com/er4ebus/sql/index.htm.
-
-Mnoho u¾ivatelù doporuèuje The Practical SQL Handbook, Bowman, Judith
-S., et al., Addison-Wesley. Jiní preferují The Complete Reference SQL,
-Groff et al., McGraw-Hill.
-
-1.11 Nemá PostgreSQL problémy s rokem 2000?
--------------------------------------------
-
-Nemá, mù¾eme pracovat s datumy po roce 2000 na¹eho letopoètu i pøed
-rokem 2000 pø.n.l.
-
-1.12 Jak se pøipojit k vývojáøskému týmu?
------------------------------------------
-
-Nejdøíve si stáhnìte nejnovìj¹í zdroje a pøeètìte si vývojáøskou
-dokumentaci na na¹em webu nebo v distribuci. Pak se pøihla¹te do
-konferencí pgsql-hackers a pgsql-patches. Kvalitní záplaty posílejte do
-pgsql-patches.
-
-Právo commit má v cvs archivu asi tøinácti lidí. Ka¾dý z nich poslal
-mnoho kvalitních záplat, tak¾e tehdej¹í commiters mìli jistotu, ¾e budou
-pøedkládat jenom kvalitní záplaty a mohli jim pøedìlit vìt¹í práva.
-
-1.13 Kam podat report o chybì?
-------------------------------
-
-Nav¹tivte na¹i PostgreSQL BugTool stránku na
-http://www.PostgreSQL.org/bugs/bugs.php, která obsahuje návod a smìrnice
-jak podat chybový report.
-
-Ovìøte si na na¹em ftp serveru ftp://ftp.PostgreSQL.org/pub, zda-li máte
-nejnovìj¹í verzi PostgreSQL a zda-li k ní neexistují nìjaké záplaty.
-
-1.14 Jak je na tom PostgreSQL v porovnání s jinými databázemi?
---------------------------------------------------------------
-
-Existuje nìkolik hledisek jak porovnávat software: vlastnosti, výkon,
-spolehlivost, podpora a cena.
-
-Vlastnosti
-----------
-
-PostgreSQL má hodnì spoleèných vlastností s velkými komerèními DBMS,
-napø. transakce, vnoøené dotazy, spou¹tì, pohledy, kontrolu referenèní
-integrity a sofistikované zamykání. Podporuje nìkteré vlastnosti, které
-tyto systémy nemají, u¾ivatelem definované typy, dìdiènost, pravidla,
-MVCC redukující zamykání.
-
-Výkon
------
-
-Výkonnostnì je na tom PostgreSQL podobnì jako dal¹í komerèní ale i open
-source databáze, v nìèem je rychlej¹í, jindy pomalej¹í. V porovnání s
-MySQL a podobnými databázovými systémy je PostgreSQL rychlej¹í pøi
-víceu¾ivatelském pøístupu, slo¾itìj¹ích dotazech a zatí¾ení read/write
-dotazy. MySQL je rychlej¹í v jednodu¹¹ích dotazech s malým poètem
-u¾ivatelù. Navíc, MySQL nepodporuje mnohé vlatnosti zmínìné v sekci
-vlastnosti. Zapracovali jsme na spolehlivosti a podporovaných
-vlastnostech, a výkon zvy¹ujeme v ka¾dé verzi. Zajímavou stránku
-porovnávající PostgreSQL a MySQL naleznete na
-http://openacs.org/philosophy/why-not-mysql.html. Za vývojem MySQL není
-Open Source komunita, ale komerèní spoleènost, pøesto¾e svoje produkty
-distribuuje jako Open Source.
-
-Spolehlivost
-------------
-
-Jsme si vìdomi, ¾e databáze musí být spolehlivá, jinak je nepou¾itelná.
-Sna¾íme se zveøejòovat dobøe otestovaný, stabilní kód s minimem chyb.
-Ka¾dá verze je více ne¾ mìsíc v beta testování, a na¹e historie verzí
-ukazuje, ¾e mù¾eme nabídnout stabilní, solidní verze, které jsou
-pøipraveny pro reálné nasazení. V této oblasti jsme srovnatelní s
-dal¹ími databázemi.
-
-Podpora
--------
-
-Na na¹í mailové konferenci mù¾ete kontaktovat velkou skupinu vývojáøù a
-u¾ivatelù.problémù. Nemù¾eme garantovat opravu, nicménì komerèní
-databáze také ne v¾dy nabídnou opravu. Podle ohlasù je na¹e podpora
-hodnocena lépe ne¾ u jiných DBMS a to díky pøímému kontaktu s vývojáøi,
-velkou komunitou u¾ivatelù, kvalitními manuály a pøístupným zdrojovým
-kódem. Pro u¾ivatele, kteøí vy¾adují podporu ke konkrétním pøípadùm,
-existuje placená podpora (FAQ sekce 1.6).
-
-Cena
-----
-
-PosgreSQL lze volnì pou¾ívat pro nekomerèní i komerèní pou¾ití. Mù¾ete
-do svých produktù pøidat ná¹ kód bez omezení, respektive v souladu s
-podmínkami na¹í licenèní smlouvy (v duchu BSD licence).
-
-1.15 Jak lze finanènì pomoci PostgreSQL?
-----------------------------------------
-
-PosgreSQL má prvotøídní infrastrukturu od na¹eho zaèátku v roce 1996.
-Vdìèíme za to Marku Fournierovi, který zalo¾il a spravoval tuto
-infrastrukturu nìkolik let.
-
-Kvalitní infrastruktura je velice dùle¾itá pro ka¾dý open source
-projekt. Pøedchází nedorozumìním, která velice zdr¾ují pokrok v
-projektu.
-
-Tato infrastruktura není laciná. K jejímu zaji¹tìní je tøeba stále
-hradit urèité mìsíèní a jednorázové èástky. Pokud máte Vy nebo Va¹e
-spoleènost peníze, které nám mù¾ete darovat, obra»e se na
-http://store.pgsql.com/shopping/ a darujte je.
-
-Aèkoliv webová stránka zmiòuje PostgreSQL, Inc. vklady jsou urèeny pouze
-k podpoøe projektu PostgreSQL a nepodporují ¾ádnou existující
-spoleènost. Pokud to vy¾adujete, mù¾ete poslat kontrolu na na¹i
-kontaktní adresu.
-
-Pokud máte pøíklad úspì¹ného nasazení PostgreSQL, pøihla¹tì se na ná¹
-advocacy site na http://advocacy.postgresql.org.
-
-------------------------------------------------------------------------
-
-User client dotazy
-==================
-
-2.1 Kde naleznu ODBC ovladaèe pro PostgreSQL?
----------------------------------------------
-
-Pro PostgreSQL existují dva ODBC ovladaèe - PsqlODBC a OpenLink ODBC.
-
-PsqlODBC je ke sta¾ení na
-http://gborg.postgresql.org/project/psqlodbc/projdisplay.php.
-
-OpenLink mù¾ete získat na http://www.openlinksw.com. Spolupracuje s
-jejich klientským programovým vybavením a je dostupný pro v¹echny jimi
-podporované platformy (Win, Mac, Unix, VMS).
-
-Tento ovladaè je urèen pro ty, kteøí vy¾adují podporu komerèní kvality,
-nicménì freeware verze je dostupná a funkèní. Dotazy zasílejte na
-
-2.2 Jaké nástroje lze pou¾ít pro PostgreSQL a web?
---------------------------------------------------
-
-Pìkný úvod do databázových technologií zabezpeèujících chod webových
-stránek najdete na http://www.webreview.com.
-
-Pro tvorbu webu existuje excelentní rozhraní PHP, které naleznete na
-http://www.php.net.
-
-Pro slo¾itìj¹í pøípady se èasto pou¾ívá Perl a CGI.pm nebo mod_perl.
-
-2.3 Existuje grafické rozhraní pro PostgreSQL?
-----------------------------------------------
-
-Pro PostgreSQL existuje nìkolik grafických rozhraní: PgAccess
-(http://www.php.net), PgAdmin (http://www.php.net), RHDB Admin
-(http://sources.redhat.com/rhdb/) a Rekall (
-http://www.thekompany.com/products/rekall/). Dále existuje PHPPgAdmin
-(http://phppgadmin.sourceforge.net/) rozhraní PostgreSQL zalo¾ené na web
-technologii.
-
-Úplnìj¹í seznam najdete na
-http://techdocs.postgresql.org/guides/GUITools.
-
-2.4 Které programovací jazyky mají podporu pro PostgreSQL?
-----------------------------------------------------------
-
-Vìt¹ina programovacích jazykù obsahuje rozhraní pro PostgreSQL.
-Podívejte se do roz¹iøujících modulù Va¹eho programovacího jazyka.
-
-Distribuce PostgreSQL obsahuje tato rozhraní:
-
- - C (libpq)
- - Embbedded C (ecpg)
- - Java (jdbc)
- - Python (PyGreSQL)
- - TCL (libpgtcl)
-
-Dal¹í rozhraní jsou dostupná na http://gborg.postgresql.org v sekci
-Drivers/Interfaces.
-
-------------------------------------------------------------------------
-
-Administrativní dotazy
-======================
-
-3.1 Jak nainstalovat PostgreSQL jinam ne¾ do /usr/local/pgsql?
---------------------------------------------------------------
-
-Pou¾ijte volbu --prefix pøi spu¹tìní configure
-
-3.2 Pøi startu postmaster, dostanu chybové hlá¹ení Bad System Call nebo core dump. Proè?
-----------------------------------------------------------------------------------------
-
-Dùvody mohou být rùzné, ale nejprve zkontrolujte, zda Vá¹ systém
-podporuje System V extensions. PostgreSQL vy¾aduje v jádøe podporu
-sdílené pamìti a semaforù.
-
-3.3 Pøi startu postmastera dostanu hlá¹ení o chybì IpcMemoryCreate. Proè?
--------------------------------------------------------------------------
-
-Buïto nemáte správnì nakonfigurovanou sdílenou pamì» v jádøe nebo musite
-zvìt¹it její velikost. Potøebná velikost je závislá na architektuøe a na
-tom, kolik pamì»ových bufferù a backendù máte povoleno pro postmastera.
-Pro vìt¹inu systémù s pøeddefinovaným poètem backendù a pamì»ových
-bufferù je minimum zhruba 1MB. V
-http://www.postgresql.org/docs/view.php?version=current&idoc=1&file=kern
-el-resources.html [3] naleznete podrobnìj¹í informace o sdílené pamìti a
-semaforech.
-
-3.4 Pøi startu postmastera dostanu hlá¹ení o chybì IpcSemaphoreCreate. Proè?
-----------------------------------------------------------------------------
-
-Pokud dostane chybovou zprávu IpcSemaphoreCreate: semget failed (No
-space left on device), pak va¹e jádro nemá dost volných semaforù.
-PostgreSQL vy¾aduje jeden semafor pro ka¾dý backend v pozadí. Doèasným
-øe¹ením je start postmastera s limitem backendù. Pou¾ijte pøepínaè -N s
-hodnotou men¹í ne¾ 32. Úplným øe¹ením je zvý¹ení hodnot SEMMNS a SEMMNI
-jadra.
-
-Nefunkèní semafory mohou zpùsobit pád bìhem intenzivních databázových
-operací.
-
-Pokud se tato chyba vyskytuje je¹tì nìkde jinde, mo¾ná nemáte vùbec
-nakonfigurovány semafory ve va¹em jádøe. V PostgreSQL Administrator's
-Guide najdete podrobnìj¹í popis po¾adavkù na sdílenou pamìt a semafory.
-
-3.5 Jak povolit nebo zakázat pøístup z jiných stanic?
------------------------------------------------------
-
-Pøi výchozím nastavení PostgreSQL odepøe pøístup z jiných stanic ne¾
-lokální s pou¾itím UDP. Databáze se zpøístupní jiným stanicím nastavením
-pøepínaèe -i postmastera a povolením stanice a urèením re¾imu
-autentifikace v $PGDATA/pg_hba.conf. Tím se povolí TCP/IP spojení.
-ZASTARALÉ
-
-3.6 Jak ladit databázový stroj na lep¹í výkon?
-----------------------------------------------
-
-Urèitì pomohou indexy. Pøíkaz EXPLAIN zobrazí zpùsob interpretace Va¹eho
-dotazu a pou¾ití indexù.
-
-Pøi vìt¹í dávce INSERTù uva¾ujte o náhradì pøíkazem COPY. Ten je mnohem
-rychlej¹í ne¾li samotný INSERT. Ka¾dý pøíkaz mimo blok BEGIN WORK/COMMIT
-se provádí ve vlastní transakci. Zva¾te, zda-li by se nedalo nìkolik
-pøíkazù spojit do jedné transakce. Tím se sní¾í re¾ie na transakce. Pøed
-provedením rozsáhlých zmìn zru¹te indexy, které po dokonèení zmìn opìt
-vytvoøte.
-
-Máte nìkolik dal¹ích mo¾ností, jak zlep¹it výkon. Mù¾ete zakázat fsyn()
-pøi startu postmastera pøepínaèi -o -F. Tyto pøepínaèe zabrání fsync(),
-tj. zápisu na disk po ka¾dé transakci.
-
-Mù¾ete zvý¹it velikost pamì»ových bufferù pou¾itých backendy tj.
-parametr -B postmasteru. Pokud ale tato hodnota bude pøíli¹ velká, tak
-mo¾ná nespustíte postmastera jeliko¾ dosáhnete limitu sdílené pamìti.
-Ka¾dý buffer má 8K a implicitnì je 64 bufferù.
-
-Dále mù¾ete pou¾ít pøepínaè -S k zvý¹ení limitu pamìti pro backendy na
-doèasné tøídìní. Hodnota je mínìna v kilobytech a výchozí nastavení je
-512, tj. 512K.
-
-Mù¾ete pou¾ít pøíkaz CLUSTER, který uspoøádá fyzicky data v tabulkách
-podle indexu. Více na manuálových stránkách pøíkazu CLUSTER.
-
-3.7 Jaké jsou mo¾nosti ladìní?
-------------------------------
-
-Máte nìkolik mo¾ností jak se dostat k u¾iteèným stavovým informacím.
-
-Zaprvé, pøi pøekladu pou¾ijte pøepínaè --enable-cassert, tím se zapne
-monitorování a následné zastavení aplikace, kdy¾ se proces v backendu
-dostane do neoèekávaného stavu.
-
-Jak postmaster tak postgres má nìkolik pøepínaèù umo¾òujících ladìní.
-Postmaster nastartujte tak, abyste si byli jisti, ¾e je standartní
-výstup a standartní chybový výstup pøesmìrován do souboru logu,
-napøíklad:
-
-cd /usr/local/pgsql
-./bin/postmaster > server.log 2>&1 &
-
-Tím se vytvoøí log v adresáøi PostgreSQL, Tento soubor obsahuje u¾iteèné
-informace o problémech a chybách vyskytlých se na serveru. Postmaster má
-pøepínaè -d urèující, jak podrobné mají být reportované informace, tj.
-debug level. Pozor, pøi velké hodnotì debug levelu rychle roste velikost
-souboru logu.
-
-Pokud nebì¾í postmaster, mù¾ete spustit backend PostgreSQL z pøíkazové
-øádky a napsat svùj SQL dotaz pøímo v backendu (doporuèeno pouze pro
-ladìní). Dotaz je v tomto pøípadì ukonèen novou øádkou, nikoliv
-støedníkem. Pokud máte aplikaci pøelo¾enou s ladícími symboly, mù¾ete
-pou¾ít debbuger k monitorování procesu. Pokud není backend spu¹tìn
-postmasterem, pak nebì¾í ve svém obvyklém prostøedí a tudí¾ nìkteré
-problémy dané interakcí mezi backendy nemohou být nasimulovány.
-
-Pokud bì¾í postmaster, spus»e psql v jednom oknì a pak si zjistìte PID
-procesu postgres pou¾itého psql. V debuggeru sepøipojte k postgresql
-PID. Pak nastavte breakpointy v debuggeru a zadejte dotaz v psql. Pokud
-ladíte startup postgresu, pak nastavte PGOPTIONS="-W n" a spus»e psql.
-Tento pøepínaè zpùsobí pauzu n sekund, tak¾e budete mít èas se pøipojit
-k procesu, a nastavit breakpointy a pokraèovat v startup posloupnosti.
-
-Pro ladìní a mìøení výkonu mohou být u¾iteèné pøepínaèe -s, -A a -t
-programu postgres (backend).
-
-Mù¾ete provést pøeklad s profilací, tak abyste vidìli kolik èasu
-zabírají jednotlivé funkce. Soubory s profily backendù jsou ulo¾eny v
-adresáøi pgsql/data/base/dbname. Profil klienta pak v jeho aktuálním
-adresáøi. Korektní profilace v prostøedí Linux po¾aduje konfiguraci
-systému s parametrem -DLINUX_PROFILE.
-
-3.8 Proè dostanu "Sorry, too many clients", kdy¾ se zkou¹ím pøipojit?
----------------------------------------------------------------------
-
-Zvy¹te limit postmastera na maximální poèet souèasnì spu¹tìných
-backendù.
-
-Výchozí hodnota je 32 backendù. Tuto hodnotu zvý¹íte zastavením a
-opìtovným spu¹tìním postmastera s parametrem -N nebo úpravou
-postgresql.conf.
-
-Pøi zvý¹ení hodnoty -N nad 32 musíte zvý¹it hodnotu -B nad výchozí 64,
--B musí být minimálnì dvakrát vìt¹í, nebo je¹tì lépe více. Pravdìpodobnì
-zjistíte, ¾e pro velký poèet procesù backendu je nutné zvý¹it nìkteré
-parametry jádra. Jsou to pøedev¹ím maximální velikost sdílené pamìti
-SHMMAX, maximální poèet semafórù SEMMNS a SEMMNI, maximální poèet
-procesù NPROC, maximální poèet procesù u¾ivatele MAXUPRC a maximální
-poèet otevøených souborù NFILE a NINODE. Dùvod pro omezení maximálního
-poètu backendù je fakt, ¾e by mohlo dojít k vyèerpání zdrojù Va¹eho
-systému.
-
-3.9 K èemu slou¾í adresáø pgsql_tmp?
-------------------------------------
-
-Tento adresáø obsahuje doèasné soubory vytvoøené exekutorem dotazù.
-Napøíklad, kdy¾ je nutné tøídìní k zaji¹tìní ORDER BY a tøídìní má vìt¹í
-nároky na prostor ne¾ povoluje parametr -S backendu, pak je vytvoøen
-doèasný soubor k ulo¾ení extra údajù.
-
-Doèasné soubory jsou obvykle mazány automaticky, ale mù¾e se stát, ¾e
-bìhem tøídìní server spadne. Zastavení a dal¹í start postmastera zajistí
-odstranìní souborù s tìchto adresáøù.
-
-3.10 Proè je po¾adováno dump a obnovení (load) databáze bìhem upgrade mezi velkými verzemi PostgreSQL?
-------------------------------------------------------------------------------------------------------
-
-PostgreSQL se minimálnì mìní bìhem malých verzí, tak¾e napø. pøi upgrade
-z 7.2 na 7.2.1 není nutné dump a load databáze. Ale velké verze èasto
-mìní interní formát systémových tabulek a datových souborù. Tyto zmìny
-jsou natolik rozsáhlé, ¾e nelze zajistit zpìtnou kompatibilitu pro
-datové soubory. Dump ulo¾í data v obecném formátu, tak¾e mohou být
-naètena a pou¾ívána v novém interním formátu.
-
-------------------------------------------------------------------------
-
-Provozní dotazy
-===============
-
-4.1 Èím se li¹í binární a normální kurzor?
-------------------------------------------
-
-Popis najdete v manuálové stránce DECLARE
-
-4.2 Jak získat pouze první øádek dotazu? Náhodný øádek?
--------------------------------------------------------
-
-Podívejte se do man. stránky pøíkazu FETCH, nebo pou¾ijte SELECT ...
-LIMIT ...
-
-Není nutné zpracovávat celý dotaz, kdy¾ potøebujete pouze nìkolik
-prvních øádkù. Pokud existuje index ORDER BY, PostgreSQL je schopen
-pøeru¹it zpracování dotazu po získání po¾adovaného poètu øádkù.
-
-K získání náhodného øádku pou¾ijte:
-
-SELECT col FROM tab
- ORDER BY random() LIMIT 1;
-
-4.3 Jak získám seznam tabulek nebo jinak jak jej získá psql?
-------------------------------------------------------------
-
-Podívejte se do zdrojových kódù psql do souboru
-pgsql/src/bin/psql/describe.c. Ten obsahuje SQL pøíkazy, které se
-pou¾ívají v psql metapøíkazech. Dále mù¾ete spustit psql s pøepínaèem
--E, který zpùsobí zobrazení ka¾dého dotazu, které zpracování metapøíkazu
-vyvolá.
-
-4.4 Jak odstraním sloupec tabulky, jak zmìním jeho typ?
--------------------------------------------------------
-
-Poèínaje verzí 7.3 mù¾ete pou¾ít pøíkaz ALTER TABLE DROP COLUMN. Ve
-star¹ích verzích mù¾ete pou¾ít následující postup:
-
-BEGIN;
-LOCK TABLE old_table;
-SELECT ... -- mimo sloupec, který chceme odstranit
- INTO TABLE new_table;
-DROP TABLE old_table;
-ALTER TABLE new_table RENAME TO old_table;
-COMMIT;
-
-Pro zmìnu typu sloupce je tøeba provést:
-
-BEGIN;
-ALTER TABLE tab ADD COLUMN new_col new_data_type;
-UPDATE tab SET new_col = CAST(old_col AS new_data_type;
-ALTER TABLE tab DROP COLUMN old_col;
-COMMIT;
-
-Poté proveïte VACUUM FULL tab - uvolníte tím diskový prostor zabraný
-nyní ji¾ neplatnými øádky.
-
-4.5 Jaká je maximální velikost øádku, tabulky a databáze?
----------------------------------------------------------
-
-PostgreSQL má tato omezení:
-
- Maximální velikost databáze: neomezena (existují 32TB db)
-
- Maximálné velikost tabulky: 32 TB
-
- Maximální velikost øádky: 1.6 TB
-
- Maximální velikost polo¾ky 1 GB
-
- Maximální poèet øádkù v tabulce: neomezeno
-
- Maximální poèet sloupcù v tabulce: 250-1600 podle typù
-
- Maximální poèet indexù na tabulce: neomezeno
-
-Ve skuteènosti nic není neomezeno, limitem bývá v¾dy dostupná disková
-pamì» nebo velikost operaèní pamìti. Pokud máte nìkterou z tìchto hodnot
-neobvykle velkou, mù¾e dojít ke sní¾ení výkonu.
-
-Maximální velikost tabulky je 32 TB a nevy¾aduje podporu velkých souborù
-operaèním systémem. Velké tabulky se ukládají do nìkolika 1 GB souborù
-tak¾e limity souborového systému nejsou podstatné.
-
-Maximální velikost tabulky a maximální poèet sloupcù mù¾eme
-zeètyønásobit nastavením velikosti bloku na 32K.
-
-4.6 Kolik diskového prostoru je potøeba k ulo¾ení dat z normálního textového souboru?
--------------------------------------------------------------------------------------
-
-PostgreSQL vy¾aduje a¾ pìtinásobek diskového prostoru k ulo¾ení dat z
-textového souboru.
-
-Napøíklad, uva¾ujme soubor se 100 tisíci øádky obsahující na ka¾dé øádce
-celé èíslo a textový popis. Text je v prùmìru dvacet bytù dlouhý.
-Textový soubor bude 2.8 MB dlouhý. Velikost databáze obsahující
-odpovídající data bude zhruba 6.4 MB.
-
- 36 bytù: hlavièka øádku (pøibli¾nì)
- 24 bytù: jedna celoèíselná polo¾ka a jedna textová
- 4 byty: ukazatel na stránku k ntici
-------------------------------------------------------
- 64 bytù na øádek
-
-Velikost datové stránky PostgreSQL je 8KB
-
- 8192 bytù na stránce
----------------------- = 128 øádek na stránku
- 64 bytù za øádek
-
-100000 øádek
--------------------- = 782 stránek (zaokrouhleno nahoru)
-128 øádek na stránce
-
-782 * 8192 = 6, 406, 144 bytù (6.4 MB)
-
-Indexy nemají tak velkou re¾ii, ale mohou být také velké, proto¾e
-obsahují indexovaná data.
-
-Hodnoty NULL jsou ulo¾eny v bitmapách, tak¾e spotøebují jen velmi málo
-diskového prostoru.
-
-4.7 Jak získám seznam vytvoøených tabulek, indexù, databází?
-------------------------------------------------------------
-
-psql má sadu metapøíkazù k zobrazení tìchto informací. Jejich seznam
-získáte pøíkazem \?. Dále se mù¾ete podívat na obsah systémových tabulek
-zaèínajících pg_. Spu¹tìní psql s parametrem -l provede výpis názvù
-v¹ech databází.
-
-Soubor pgsql/src/tutorial/syscat.source obsahuje SELECTy pøistupující k
-systémovým tabulkámm.
-
-4.8 Mùj dotaz je pomalý a nepou¾ívá vytvoøené indexy. Proè?
------------------------------------------------------------
-
-Ka¾dý dotaz nemusí nutnì pou¾ít existující indexy. Index se pou¾ije
-tehdy, kdy¾ je tabulka vìt¹í ne¾ urèitá minimální velikost, a dotaz
-vybírá pouze procentuálnì malou èást øádkù tabulky. To proto, ¾e náhodný
-pøístup k disku daný ètením indexu mù¾e být pomalej¹í ne¾ lineární ètení
-tabulky nebo sekvenèní ètení,
-
-PostgreSQL rozhoduje o pou¾ití indexù na základì statistiky pøístupù k
-tabulce. Tyto statistiky se shroma¾ïují pøíkazy VACUUM ANALYZE nebo
-ANALYZE. Díky statistikám má optimizer informaci o poètu øádek v tabulce
-a mù¾e lépe rozhodnout o pou¾ití indexù. Statistiky se uplatní pøi
-urèení optimálního poøadí a metody spojení tabulek. Statistiky by se
-mìli aktualizovat opakovanì, tak jak se mìní obsah tabulek.
-
-Indexy nejsou obyèejnì pou¾ity pro setøídìní nebo spojení tabulek.
-Sekvenèní zpracování následované explicitním tøídìním je obyèejnì
-rychlej¹í ne¾ indexní ètení na velké tabulce.
-
-Jinak je tomu v pøípadì pou¾ití LIMIT a ORDER BY, pøi kterém se vìt¹inou
-index pou¾ije, výsledkem je pouze malá èást tabulky. Funkce MAX() a
-MIN() nepou¾ívají indexy, ale je mo¾né tuté¾ hodnotu získat
-
-SELECT col FROM tab
- ORDER BY col [ DESC ] LIMIT 1;
-
-Pokud si myslíte, ¾e optimizer mylnì zvolil sekvenèní prohledávání
-tabulky, pou¾ijte pøíkaz SET enable_seqscan TO 'off' a zkuste zda je
-indexní prohledávání rychlej¹í.
-
-Pøi vyhledávání na základì vzoru jako je napø. operátor LIKE nebo ~ se
-indexy pou¾íjí pouze za urèitých skuteèností:
-
- - zaèátek hledaného vzoru musí být ukotven k zaèátku, tj.
-
- * vzor LIKE nesmí zaèínat %
- * regulární výraz musí zaèínat ^
-
- - vzor nesmí zaèínat intervalem, napø. [a-e]
-
- - vyhledávaní, které není Case sensitiv nepou¾ívá indexy.
- Mù¾ete ale pou¾ít funkcionální indexy, které jsou posány v sekci
- 4.12
- - pøi inicializaci databáze (initdb) musí být pou¾ito C locale
- (pozn. pøekladatele - tudí¾ v na¹ich podmínkách nepou¾itelné,
- nepracovalo by èeské tøídìní).
-
-4.9 Jak zjistím, jak optimizer dotazu vyhodnocuje mùj dotaz?
-------------------------------------------------------------
-
-Podívejte se do manuálové stránky pøíkazu EXPLAIN.
-
-4.10 Co to je R-tree index?
----------------------------
-
-R-tree index se pou¾ívá pro indexování prostorových dat. Hash index
-nemù¾e obslou¾it prohledávání oblastí. B-tree index mù¾e øídit vyhledání
-oblastí v jedné dimenzi. R-tree index mù¾e podporovat hledání v
-multidimenzionálních datech. Pou¾ijeme-li napøíklad R-tree index na
-atributy typu point, pak systém mù¾e efektivnì odpovìdìt na dotaz -
-vyber v¹echny body uvnitø obdélníkù.
-
-Pùvodní návrh R-tree je 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
-
-Tyto materiály naleznete v Stonebraker's "Readings in Database Systems".
-
-Vestavìné R-tree mù¾e slou¾it k indexaci polygonù a oblastí. Teoreticky
-mù¾eme R-tree pou¾ít i pro více dimenzí (jiné ne¾ 3D). Ve skuteènosti
-ale takové roz¹íøení R-tree vy¾aduje trochu práce a ve souèastnosti
-chybí dokumentace jak na to.
-
-4.11 Co je Genetic Query Optimizer?
------------------------------------
-
-GEQO modul urychluje optimalizaci dotazù pøi spojování mno¾ství tabulek
-metodou Genetických algoritmù (GA). To umo¾òuje získat velkého mno¾ství
-variant spojení pøi neúplném prohledáváním.
-
-4.12 Jak provést vyhledávání regulárního výrazu case sensitiv,
-insensitiv? Jak pou¾ít index pro case insensitive vyhledávání?
-
-Operátor ~ slou¾í k porování s regulárním výrazem, jeho modifikace *~
-pøedstavuje case insensitive vyhledávání. Jedná se o obdobu LIKE a
-ILIKE.
-
-Pro vyhledávání bez ohledu na velká malá písmena pou¾ijeme
-
-SELECT * FROM tab
- WHERE lower(col) = 'abc';
-
-V tomto pøípadì se nepou¾ije standardní index. Nicménì, pou¾ije se
-funkcionální index, pokud jej vytvoøíte
-
-CREATE INDEX tabindex ON tab (lower(col));
-
-4.13 Jak v dotazu detekovat, ¾e polo¾ka je NULL?
-------------------------------------------------
-
-Urèíte pomocí IS NULL nebo IS NOT NULL
-
-4.14 Jaké jsou rozdíly mezi rùznými znakovými typy?
----------------------------------------------------
+ Èasto kladené dotazy (FAQ) PostgreSQL
+
+ Poslední aktualizace: Støeda 23. èervna 21:10:00 EST 2004
+
+
+
+ Aktuální verzi tohoto dokumentu naleznete na adrese:
+ http://www.PostgreSQL.org/docs/faqs/FAQ.html. Èeský pøeklad na adrese:
+ http://www.PostgreSQL.org/docs/faqs/FAQ_czech.html.
+
+ Odpovìdi na dotazy relevantní ke konkrétním platformám lze nalézt na
+ adrese: http://www.PostgreSQL.org/docs/index.html.
+ _________________________________________________________________
+
+ Obecné otázky
+
+ 1.1) Co je PostgreSQL? Jak se vyslovuje?
+ 1.2) Jaká je licence na PostgreSQL?
+ 1.3) Na kterých Unixex lze spustit PostgreSQL?
+ 1.4) Které ne-unixové platformy jsou podporované?
+ 1.5) Kde mohu získat PostgreSQL?
+ 1.6) Kde mohu získat podporu?
+ 1.7) Kde je poslední verze?
+ 1.8) Jaká je dostupná dokumentace?
+ 1.9) Kde najdu seznam známých chyb nebo nepodporovaných vlastností?
+ 1.10) Jak se mohu nauèit SQL?
+ 1.11) Nemá PostgreSQL problémy s rokem 2000?
+ 1.12) Jak se pøipojit k vývojáøskému týmu?
+ 1.13) Kam podat report o chybì?
+ 1.14) Jak je na tom PostgreSQL v porovnání s jinými databázemi?
+ 1.15) Jak lze finanènì pomoci PostgreSQL?
+
+ User client dotazy
+
+ 2.1) Kde naleznu ODBC ovladaèe pro PostgreSQL?
+ 2.2) Jaké nástroje lze pou¾ít pro PostgreSQL a web?
+ 2.3) Existuje grafické rozhraní pro PostgreSQL?
+ 2.4) Které programovací jazyky mají podporu pro PostgreSQL?
+
+ Administrativní dotazy
+
+ 3.1) Jak nainstalovat PostgreSQL jinam ne¾ do /usr/local/pgsql?
+ 3.2) Pøi startu postmaster, dostanu chybové hlá¹ení Bad System Call
+ nebo core dump. Proè?
+ 3.3) Pøi startu postmastera dostanu hlá¹ení o chybì IpcMemoryCreate.
+ Proè?
+ 3.4) Pøi startu postmastera dostanu hlá¹ení o chybì
+ IpcSemaphoreCreate. Proè?
+ 3.5) Jak povolit nebo zakázat pøístup z jiných stanic?
+ 3.6) Jak ladit databázový stroj na lep¹í výkon?
+ 3.7) Jaké jsou mo¾nosti ladìní?
+ 3.8) Proè dostanu "Sorry, too many clients", kdy¾ se zkou¹ím pøipojit?
+ 3.9) K èemu slou¾í adresáø pgsql_tmp?
+ 3.10) Proè je po¾adováno dump a obnovení (load) databáze bìhem upgrade
+ mezi velkými verzemi PostgreSQL?
+
+ Provozní dotazy
+
+ 4.1) Èím se li¹í binární a normální kurzor?
+ 4.2) Jak získat pouze první øádek dotazu? Náhodný øádek?
+ 4.3) Jak získám seznam tabulek nebo jinak jak jej získá psql?
+ 4.4) Jak odstraním sloupec tabulky, jak zmìním jeho typ?
+ 4.5) Jaká je maximální velikost øádku, tabulky a databáze?
+ 4.6) Kolik diskového prostoru je potøeba k ulo¾ení dat z normálního
+ textového souboru?
+ 4.7) Jak získám seznam vytvoøených tabulek, indexù, databází?
+ 4.8) Mùj dotaz je pomalý a nepou¾ívá vytvoøené indexy. Proè?
+ 4.9) Jak zjistím, jak optimizer dotazu vyhodnocuje mùj dotaz?
+ 4.10) Co to je R-tree index?
+ 4.11) Co je Genetic Query Optimizer?
+ 4.12) Jak provést vyhledávání regulárního výrazu case sensitiv,
+ insensitiv? Jak pou¾ít index pro case insensitive vyhledávání?
+ 4.13) Jak v dotazu detekovat, ¾e polo¾ka je NULL?
+ 4.14) Jaké jsou rozdíly mezi rùznými znakovými typy?
+ 4.15.1) Jak vytvoøit serial/auto-increment pole?
+ 4.15.2) Jak získat hodnotu SERIAL po vlo¾ení øádku?
+ 4.15.3) Nepovede currval() a nextval() k rozhození podmínek pøi
+ soubìhu s jinými u¾ivateli?
+ 4.15.4) Proè není vygenerované èíslo pou¾ito pøi pøeru¹ení transakce?
+ Proè vznikají díry v èíslování vlastní sekvencí/SERIAL sloupce?
+ 4.16) Co to je OID? Co je to TID?
+ 4.17) Jaký je význam nìkterých výrazù pou¾itých v PostgreSQL?
+ 4.18) Proè jsem získal chybové hlá¹ení "ERROR: Memory exhausted in
+ AllocSetAlloc()"?
+ 4.19) Jak se dozvím, kterou verzi PostgreSQL pou¾ívám?
+ 4.20) Proè operace s velkými objekty konèí "invalid large obj
+ descriptor"?
+ 4.21) Jak vytvoøit sloupec obsahující implicitnì aktuální datum?
+ 4.22) Proè jsou moje vnoøené dotazy pou¾ívající IN tak pomalé?
+ 4.23) Jak provést vnìj¹í spojení (outer join)?
+ 4.24) Jak provést dotaz napøíè nìkolika databázemi?
+ 4.25) Mù¾e funkce vrátit více øádkù nebo sloupcù?
+ 4.26) Proè nelze spolehlivì vytváøet a ru¹it doèasné tabulky v
+ PL/pgSQL funkcích?
+ 4.27) Jaké jsou mo¾nosti replikace databází?
+ 4.28) Jaké jsou mo¾nosti ¹ifrování databází?
+
+ Roz¹iøování PostgreSQL
+
+ 5.1) Napsal jsem UDF funkci, PostgreSQL v¹ak konèí dump core?
+ 5.2) Jak mohu pøispìt nìjakými ¹ikovnými datovými typy a funkcemi do
+ PostgreSQL?
+ 5.3) Jak napsat funkci v C vracející ntici?
+ 5.4) Modifikoval jsem zdrojové soubory. Tato zmìna nebyla pøi
+ rekompilaci vzata v potaz. Proè?
+ _________________________________________________________________
+
+ Obecné otázky
+
+ 1.1) Co je PostgreSQL? Jak se vyslovuje?
+
+ PostgreSQL se vyslovuje Post-Gres-Q-L. Zvukový záznam je dostupný na
+ adrese .
+
+ PostgreSQL vychází z databáze POSTGRES (a stále je nìkdy oznaèován
+ zjednodu¹enì jako Postgres) - výzkumného prototypu DBMS nové generace.
+ Z postgresu byl pøevzat silný datový model a bohatý soubor datových
+ typù a jeho dotazovací jazyk PostQuel byl nahrazen roz¹íøenou
+ podmno¾inou jazyka SQL. PostgreSQL lze pou¾ívat bez omezení a jeho
+ zdrojové kódy jsou volnì k dispozici.
+
+ PostgreSQL vyvýjí tým vývojáøù pøihlá¹ených do vývojáøské konference
+ PostgreSQL. Souèasným koordinátorem je Marc G. Fournier
+ zodpovìdný za ve¹kerý vývoj PostgreSQL. Jedná se o veøejný projekt,
+ který není øízen ¾ádnou firmou. Pokud se chcete zapojit, pøeètìte si
+ developer's FAQ na adrese
+ http://www.PostgreSQL.org/docs/faqs/FAQ_DEV.html
+
+ Autory první verze PostgreSQL 1.01 byli Andrew Yu and Jolly Chen. Do
+ portace, testování, ladìní a roz¹iøování kódu se zapojilo mnoho
+ dal¹ích vývojáøù . Pùvodni kód Postgresu, ze kterého PostgreSQL
+ vychází, je výsledkem úsilí mnoha studentù a programátorù pracujících
+ pod vedením prof. Michaela Stonebrakera na University of California v
+ Berkley.
+
+ Pùvodní název software z Berkley byl Postgres. Po pøidání jazyka SQL
+ se název zmìnil na Postgres95. Koncem roku 1996 byl RDBMS pøejmenován
+ na PostgreSQL.
+
+ 1.2) Jaká je licence na PostgreSQL?
+
+ PostgreSQL je pøedmìtem následujících autorských práv:
+
+ Dílèí Copyright (c) 1996-2005, PostgreSQL Global Development Group
+ Dílèí Copyright (c) 1994-6, Regents of the University of California
+
+ Udìluje se oprávnìní k u¾ití, rozmno¾ování, provádìní úprav a
+ roz¹iøování tohoto softwaru a dokumentace k nìmu, pro jakékoli úèely,
+ bez licenèního poplatku a bez písemné licenèní smlouvy, za podmínky,
+ ¾e na v¹ech jeho kopiích je uvedeno oznámení o vý¹e uvedených právech,
+ jako¾ i obsah tohoto a dvou následujících odstavcù.
+
+ THE UNIVERSITY OF CALIFORNIA ("KALIFORNSKÁ UNIVERZITA") NENÍ V ®ÁDNÉM
+ PØÍPADÌ ODPOVÌDNA ®ÁDNÉ TØETÍ OSOBÌ ZA PØÍMOU, NEPØÍMOU, ZVLÁ©TNÍ,
+ NAHODILOU NEBO VÝSLEDNOU ©KODU, VÈETNÌ U©LÉHO ZISKU, ZPùSOBENOU U®ITÍM
+ TOHOTO SOFTWARU A DOKUMENTACE K NÌMU, A TO I V PØÍPADÌ, ®E THE
+ UNIVERSITY OF CALIFORNIA BYLA INFORMOVÁNA O MO®NOSTI VZNIKU TAKOVÉ
+ ©KODY.
+
+ HE UNIVERSITY OF CALIFORNIA ZEJMÉNA NEPOSKYTUJE JAKÉKOLI ZÁRUKY, A TO
+ NEJEN ZÁRUKY OBCHODOVATELNOSTI A VHODNOSTI TOHOTO VýROBKU KE
+ SPECIFICKýM ÚÈELùM. NÍ®E UVEDENý SOFTWARE JE POSKYTNUT "JAK STOJÍ A
+ LE®Í" A THE UNIVERSITY OF CALIFORNIA NENÍ POVINNA ZAJISTIT JEHO
+ ÚDR®BU, PODPORU, AKTUALIZACI, VYLEP©ENÍ NEBO MODIFIKACI.
+
+ Vý¹e uvedené je BSD licence, bì¾ná licence otevøeného zdroje. Není zde
+ ¾ádné omezení ohlednì u¾ití kódu zdroje. Jsme s tím spokojeni a nemáme
+ v úmyslu na této skuteènosti cokoli mìnit.
+
+ 1.3) Na kterých Unixex lze spustit PostgreSQL?
+
+ PostgreSQL bì¾í na v¹ech moderních unixových platformách. V
+ instalaèních instrukcích naleznete aktuální seznam v¹ech platforem na
+ kterých byla testováním ovìøena funkcionalita PostgreSQL.
+
+ 1.4) Které ne-unixové platformy jsou podporované?
+
+ Klient
+
+ Knihovna libpq, psql a nìkteré dal¹í moduly byly pøelo¾eny pro MS
+ Windows. Klienta lze provozovat na MS Windows, ten prostøednictvím
+ TCP/IP protokolu komunikuje se serverem bì¾ícím na nìkteré z
+ podporovaných Unixových platforem. K pøekladu lze pou¾ít win32.mak a
+ Win32 knihovny libpq a psql. K databázi PostgerSQL lze pøistupovat
+ skrze rozhraní ODBC.
+
+ Server
+
+ Server mù¾e být na WindowsNT a Win2k provozován pouze s knihovnou
+ Cygwin, Cygnus Unix/NT porting library. Více pgsql/doc/FAQ_MSWIN v
+ distribuci nebo MS Windows FAQ na adrese
+ http://www.PostgreSQL.org/docs/faqs/text/FAQ_MSWIN.
+
+ Na nativním portu pro MS Win NT/2000/XP se pracuje. Dal¹í informace o
+ aktuálním stavu PostgreSQL pro Windows naleznet na adrese
+ http://techdocs.postgresql.org/guides/Windows a
+ http://momjian.postgresql.org/main/writings/pgsql/win32.html.
+
+ Existující port pro Novell Netware 6 naleznete na
+ http://forge.novell.com.
+
+ 1.5) Kde mohu získat PostgreSQL?
+
+ Primárním anonymním ftp serverem pro PostgreSQL je
+ ftp://ftp.PostgreSQL.org/pub. Seznam zrcadel naleznete na na¹ich
+ webových stránkách.
+
+ 1.6) Kde mohu získat podporu?
+
+ diskuzím ohlednì PostgreSQL. Pøihlásíte se zasláním mailu obsahující
+ následující øádky v tìle dopisu (nikoliv v záhlaví - subjectu):
+ subscribe
+ end
+
+
+ Mù¾ete si vy¾ádat denní pøehled (diggest), který má zhruba 30K dennì
+ zpráv.
+
+ Konference psql-bugs je urèena k zasílání zpráv o chybách. Pro
+ pøihlá¹ení po¹lete mail se stejným obsahem jako v pøedchozím pøípadì
+
+ Do vývojáøské konference se pøihlásíte odesláním dopisu s ji¾
+
+ Seznam dal¹ích konferencí naleznete na stránkách PostgreSQL:
+
+ http://www.postgresql.org
+
+ 1.7) Jaká je poslední verze?
+
+ Poslední verze PostgreSQL je 7.4.3. Plánujeme uvolnit významnou verzi
+ ka¾dých ¹est a¾ osm mìsícù.
+
+ 1.8) Jaká je dostupná dokumentace?
+
+ Rùzné manuály, manuálové stránky a nìkolik malých testovacích pøíkladù
+ jsou souèásti distribuce. Podívejte se do adresáøe /doc. Manuály jsou
+ pøístupné online na http://www.PostgreSQL.org/docs.
+
+ Na adresách http://www.PostgreSQL.org/docs/awbook.html a
+ http://www.commandprompt.com/ppbook/ naleznezte dvì online knihy o
+ PostgreSQL. Seznam dostupné literatury je na
+ http://techdocs.PostgreSQL.org/techdocs/bookreviews.php. Soubor
+ technických èlánkù s tematikou PostgresQL najdete na
+ http://techdocs.PostgreSQL.org/.
+
+ psql má u¾iteèný metapøíkaz \d slou¾ící k zobrazení informací o
+ typech, operátorech, funkcí, agregaèních funkcí atd.
+
+ Více dokumentace naleznete na na¹ich webových stránkách.
+
+ 1.9) Kde najdu seznam známých chyb nebo nepodporovaných vlastností?
+
+ PostgreSQL podporuje roz¹íøenou podmno¾inu SQL-92. V na¹em TODO
+ najdete seznam známých chyb, chybìjících vlastností a seznam
+ vlastností, které budou do systému implementovány v budoucnu (vèetnì
+ priorit).
+
+ 1.10) Jak se mohu nauèit SQL?
+
+ V knize The PostgreSQL book na
+ http://www.PostgreSQL.org/docs/awbook.html je vysvìtlen jazyk SQL
+ (vy¹la èesky). Dal¹í dostupnou knihou je
+ http://www.commandprompt.com/ppbook. Kvalitní návody naleznete na
+ http://www.intermedia.net/support/sql/sqltut.shtm, a na
+ http://sqlcourse.com.
+
+ Dal¹í je Teach Yourself SQL in 21 days, Second Edition na
+ http://members.tripod.com/er4ebus/sql/index.htm.
+
+ Mnoho u¾ivatelù doporuèuje The Practical SQL Handbook, Bowman, Judith
+ S., et al., Addison-Wesley. Jiní preferují The Complete Reference SQL,
+ Groff et al., McGraw-Hill.
+
+ 1.11) Nemá PostgreSQL problémy s rokem 2000?
+
+ Nemá, mù¾eme pracovat s datumy po roce 2000 na¹eho letopoètu i pøed
+ rokem 2000 pø.n.l.
+
+ 1.12) Jak se pøipojit k vývojáøskému týmu?
+
+ Nejdøíve si stáhnìte nejnovìj¹í zdroje a pøeètìte si vývojáøskou
+ dokumentaci na na¹em webu nebo v distribuci. Pak se pøihla¹te do
+ konferencí pgsql-hackers a pgsql-patches. Kvalitní záplaty posílejte
+ do pgsql-patches.
+
+ Právo commit má v CVS archivu asi tøinácti lidí. Ka¾dý z nich poslal
+ mnoho kvalitních záplat, tak¾e tehdej¹í commiters mìli jistotu, ¾e
+ budou pøedkládat jenom kvalitní záplaty a mohli jim pøedìlit vìt¹í
+ práva.
+
+ 1.13) Kam podat report o chybì?
+
+ Nav¹tivte na¹i PostgreSQL BugTool stránku na
+ http://www.PostgreSQL.org/bugs/bugs.php, která obsahuje návod a
+ smìrnice jak podat chybový report.
+
+ Ovìøte si na na¹em ftp serveru ftp://ftp.PostgreSQL.org/pub, zda-li
+ máte nejnovìj¹í verzi PostgreSQL a zda-li k ní neexistují nìjaké
+ záplaty.
+
+ 1.14) Jak je na tom PostgreSQL v porovnání s jinými databázemi?
+
+ Existuje nìkolik hledisek jak porovnávat software: vlastnosti, výkon,
+ spolehlivost, podpora a cena.
+
+ Vlastnosti
+ PostgreSQL má hodnì spoleèných vlastností s velkými komerèními
+ DBMS, napø. transakce, vnoøené dotazy, spou¹tì, pohledy,
+ kontrolu referenèní integrity a sofistikované zamykání.
+ Podporuje nìkteré vlastnosti, které tyto systémy nemají,
+ u¾ivatelem definované typy, dìdiènost, pravidla, MVCC
+ redukující zamykání.
+
+ Výkon
+ Výkonnostnì je na tom PostgreSQL podobnì jako dal¹í komerèní
+ ale i open source databáze, v nìèem je rychlej¹í, jindy
+ pomalej¹í. V porovnání s MySQL a podobnými databázovými systémy
+ je PostgreSQL rychlej¹í pøi víceu¾ivatelském pøístupu,
+ slo¾itìj¹ích dotazech a zatí¾ení read/write dotazy. MySQL je
+ rychlej¹í v jednodu¹¹ích dotazech s malým poètem u¾ivatelù.
+ Navíc, MySQL nepodporuje mnohé vlatnosti zmínìné v sekci
+ vlastnosti. Zapracovali jsme na spolehlivosti a podporovaných
+ vlastnostech, a výkon zvy¹ujeme v ka¾dé verzi. Zajímavou
+ stránku porovnávající PostgreSQL a MySQL naleznete na
+ http://openacs.org/philosophy/why-not-mysql.html. Za vývojem
+ MySQL není Open Source komunita, ale komerèní spoleènost,
+ pøesto¾e svoje produkty distribuuje jako Open Source.
+
+ Spolehlivost
+ Jsme si vìdomi, ¾e databáze musí být spolehlivá, jinak je
+ nepou¾itelná. Sna¾íme se zveøejòovat dobøe otestovaný, stabilní
+ kód s minimem chyb. Ka¾dá verze je více ne¾ mìsíc v beta
+ testování, a na¹e historie verzí ukazuje, ¾e mù¾eme nabídnout
+ stabilní, solidní verze, které jsou pøipraveny pro reálné
+ nasazení. V této oblasti jsme srovnatelní s dal¹ími databázemi.
+
+ Podpora
+ Na na¹í mailové konferenci mù¾ete kontaktovat velkou skupinu
+ vývojáøù a u¾ivatelù.problémù. Nemù¾eme garantovat opravu,
+ nicménì komerèní databáze také ne v¾dy nabídnou opravu. Podle
+ ohlasù je na¹e podpora hodnocena lépe ne¾ u jiných DBMS a to
+ díky pøímému kontaktu s vývojáøi, velkou komunitou u¾ivatelù,
+ kvalitními manuály a pøístupným zdrojovým kódem. Pro u¾ivatele,
+ kteøí vy¾adují podporu ke konkrétním pøípadùm, existuje placená
+ podpora (FAQ sekce 1.6).
+
+ Cena
+ PosgreSQL lze volnì pou¾ívat pro nekomerèní i komerèní pou¾ití.
+ Mù¾ete do svých produktù pøidat ná¹ kód bez omezení, respektive
+ v souladu s podmínkami na¹í licenèní smlouvy (v duchu BSD
+ licence).
+
+ 1.15) Jak lze finanènì pomoci PostgreSQL?
+
+ PosgreSQL má prvotøídní infrastrukturu od na¹eho zaèátku v roce 1996.
+ Vdìèíme za to Marku Fournierovi, který zalo¾il a spravoval tuto
+ infrastrukturu nìkolik let.
+
+ Kvalitní infrastruktura je velice dùle¾itá pro ka¾dý open source
+ projekt. Pøedchází nedorozumìním, která velice zdr¾ují pokrok v
+ projektu.
+
+ Tato infrastruktura není laciná. K jejímu zaji¹tìní je tøeba stále
+ hradit urèité mìsíèní a jednorázové èástky. Pokud máte Vy nebo Va¹e
+ spoleènost peníze, které nám mù¾ete darovat, obra»e se na
+ http://store.pgsql.com/shopping/ a darujte je.
+
+ Aèkoliv webová stránka zmiòuje PostgreSQL, Inc. vklady jsou urèeny
+ pouze k podpoøe projektu PostgreSQL a nepodporují ¾ádnou existující
+ spoleènost. Pokud to vy¾adujete, mù¾ete poslat kontrolu na na¹i
+ kontaktní adresu.
+ _________________________________________________________________
+
+ Pokud máte pøíklad úspì¹ného nasazení PostgreSQL, pøihla¹tì se na ná¹
+ advocacy site na http://advocacy.postgresql.org.
+
+ User client dotazy
+
+ 2.1) Kde naleznu ODBC ovladaèe pro PostgreSQL?
+
+ Pro PostgreSQL existují dva ODBC ovladaèe - PsqlODBC a OpenLink ODBC.
+
+ PsqlODBC je ke sta¾ení na
+ http://gborg.postgresql.org/project/psqlodbc/projdisplay.php.
+
+ OpenLink mù¾ete získat na http://www.openlinksw.com. Spolupracuje s
+ jejich klientským programovým vybavením a je dostupný pro v¹echny jimi
+ podporované platformy (Win, Mac, Unix, VMS).
+
+ Tento ovladaè je urèen pro ty, kteøí vy¾adují podporu komerèní
+ kvality, nicménì freeware verze je dostupná a funkèní. Dotazy
+
+ 2.2) Jaké nástroje lze pou¾ít pro PostgreSQL a web?
+
+ Pìkný úvod do databázových technologií zabezpeèujících chod webových
+ stránek najdete na http://www.webreview.com.
+
+ Pro tvorbu webu existuje excelentní rozhraní PHP, které naleznete na
+ http://www.php.net.
+
+ Pro slo¾itìj¹í pøípady se èasto pou¾ívá Perl a CGI.pm nebo mod_perl.
+
+ 2.3) Existuje grafické rozhraní pro PostgreSQL?
+
+ Pro PostgreSQL existuje nìkolik grafických rozhraní: PgAccess
+ (http://www.php.net), PgAdmin III (http://www.php.net), RHDB Admin
+ (http://sources.redhat.com/rhdb/) a Rekall (
+ http://www.thekompany.com/products/rekall/). Dále je¹tì PhpPgAdmin
+ (http://phppgadmin.sourceforge.net/) co¾ je rozhraní PostgreSQL
+ zalo¾ené na web technologii.
+
+ Úplnìj¹í seznam najdete na
+ http://techdocs.postgresql.org/guides/GUITools.
+
+ 2.4) Které programovací jazyky mají podporu pro PostgreSQL?
+
+ Vìt¹ina programovacích jazykù obsahuje rozhraní pro PostgreSQL.
+ Podívejte se do roz¹iøujících modulù Va¹eho programovacího jazyka.
+
+ Distribuce PostgreSQL obsahuje tato rozhraní:
+ * C (libpq)
+ * Embbedded C (ecpg)
+ * Java (jdbc)
+ * Python (PyGreSQL)
+ * TCL (libpgtcl)
+
+ Dal¹í rozhraní jsou dostupná na http://gborg.postgresql.org v sekci
+ Drivers/Interfaces.
+ _________________________________________________________________
+
+ Administrativní dotazy
+
+ 3.1) Jak nainstalovat PostgreSQL jinam ne¾ do /usr/local/pgsql?
+
+ Pou¾ijte volbu --prefix pøi spu¹tìní configure.
+
+ 3.2) Pøi startu postmaster, dostanu chybové hlá¹ení Bad System Call nebo
+ core dump. Proè?
+
+ Dùvody mohou být rùzné, ale nejprve zkontrolujte, zda Vá¹ systém
+ podporuje System V extensions. PostgreSQL vy¾aduje v jádøe podporu
+ sdílené pamìti a semaforù.
+
+ 3.3) Pøi startu postmastera dostanu hlá¹ení o chybì IpcMemoryCreate. Proè?
+
+ Buïto nemáte správnì nakonfigurovanou sdílenou pamì» v jádøe nebo
+ musite zvìt¹it její velikost. Potøebná velikost je závislá na
+ architektuøe a na tom, kolik pamì»ových bufferù a backendù máte
+ povoleno pro postmastera. Pro vìt¹inu systémù s pøeddefinovaným poètem
+ backendù a pamì»ových bufferù je minimum zhruba 1MB. V PostgreSQL
+ Administrator's Guide naleznete podrobnìj¹í informace o sdílené pamìti
+ a semaforech.
+
+ 3.4) Pøi startu postmastera dostanu hlá¹ení o chybì IpcSemaphoreCreate.
+ Proè?
+
+ Pokud dostane chybovou zprávu IpcSemaphoreCreate: semget failed (No
+ space left on device), pak va¹e jádro nemá dost volných semaforù.
+ PostgreSQL vy¾aduje jeden semafor pro ka¾dý backend v pozadí. Doèasným
+ øe¹ením je start postmaster s limitem backendù. Pou¾ijte pøepínaè -N s
+ hodnotou men¹í ne¾ 32. Úplným øe¹ením je zvý¹ení hodnot SEMMNS a
+ SEMMNI jadra.
+
+ Nefunkèní semafory mohou zpùsobit pád bìhem intenzivních databázových
+ operací.
+
+ Pokud se tato chyba vyskytuje je¹tì nìkde jinde, mo¾ná nemáte vùbec
+ nakonfigurovány semafory ve va¹em jádøe. V PostgreSQL Administrator's
+ Guide najdete podrobnìj¹í popis po¾adavkù na sdílenou pamìt a
+ semafory.
+
+ 3.5) Jak povolit nebo zakázat pøístup z jiných stanic?
+
+ Pøi výchozím nastavení PostgreSQL odepøe pøístup z jiných stanic ne¾
+ lokální s pou¾itím UDP. Pøístup z jiných strojù není mo¾ný dokud jej
+ nepovolíte nastavením tcpip_socket v postgresql.conf a urèením zpùsobu
+ autentifikace v $PGDATA/pg_hba.conf.
+
+ 3.6) Jak ladit databázový stroj na lep¹í výkon?
+
+ Urèitì pomohou indexy. Pøíkaz EXPLAIN ANALYZE Vám umo¾ní sledovat jak
+ PostgreSQL interpretuje Vá¹ dotaz a které indexy pou¾ívá.
+
+ Pøi vìt¹í dávce INSERTù uva¾ujte o náhradì pøíkazem COPY. Ten je
+ mnohem rychlej¹í ne¾li samotný INSERT. Ka¾dý pøíkaz mimo blok BEGIN
+ WORK/COMMIT se provádí ve vlastní transakci. Zva¾te, zda-li by se
+ nedalo nìkolik pøíkazù spojit do jedné transakce. Tím se sní¾í re¾ie
+ na transakce. Pøed provedením rozsáhlých zmìn zru¹te indexy, které po
+ dokonèení zmìn opìt vytvoøte.
+
+ Máte nìkolik dal¹ích mo¾ností, jak zlep¹it výkon. Mù¾ete zakázat
+ fsyn() pøi startu postmastera pøepínaèi -o -F. Tyto pøepínaèe zabrání
+ fsync(), tj. zápisu na disk po ka¾dé transakci.
+
+ Mù¾ete zvý¹it velikost pamì»ových bufferù pou¾itých backendy tj.
+ parametr -B postmasteru. Pokud ale tato hodnota bude pøíli¹ velká, tak
+ mo¾ná nespustíte postmastera jeliko¾ dosáhnete limitu sdílené pamìti.
+ Ka¾dý buffer má 8K a implicitnì je 64 bufferù.
+
+ Dále mù¾ete pou¾ít pøepínaè -S k zvý¹ení limitu pamìti pro backendy na
+ doèasné tøídìní. Hodnota je mínìna v kilobytech a výchozí nastavení je
+ 512, tj. 512K.
+
+ Mù¾ete pou¾ít pøíkaz CLUSTER, který uspoøádá fyzicky data v tabulkách
+ podle indexu. Více na manuálových stránkách pøíkazu CLUSTER.
+
+ 3.7) Jaké jsou mo¾nosti ladìní?
+
+ Máte nìkolik mo¾ností jak se dostat k u¾iteèným stavovým informacím.
+
+ Zaprvé, pøi pøekladu pou¾ijte pøepínaè --enable-cassert, tím se zapne
+ monitorování a následné zastavení aplikace, kdy¾ se proces v backendu
+ dostane do neoèekávaného stavu.
+
+ Jak postmaster tak postgres má nìkolik pøepínaèù umo¾òujících ladìní.
+ Postmaster nastartujte tak, abyste si byli jisti, ¾e je standartní
+ výstup a standartní chybový výstup pøesmìrován do souboru logu,
+ napøíklad:
+ cd /usr/local/pgsql
+ ./bin/postmaster > server.log 2>&1 &
+
+ Tím se vytvoøí log v adresáøi PostgreSQL, Tento soubor obsahuje
+ u¾iteèné informace o problémech a chybách vyskytlých se na serveru.
+ Postmaster má pøepínaè -d urèující, jak podrobné mají být reportované
+ informace, tj. debug level. Pozor, pøi velké hodnotì debug levelu
+ rychle roste velikost souboru logu.
+
+ Pokud nebì¾í postmaster, mù¾ete spustit backend PostgreSQL z pøíkazové
+ øádky a napsat svùj SQL dotaz pøímo v backendu (doporuèeno pouze pro
+ ladìní). Dotaz je v tomto pøípadì ukonèen novou øádkou, nikoliv
+ støedníkem. Pokud máte aplikaci pøelo¾enou s ladícími symboly, mù¾ete
+ pou¾ít debbuger k monitorování procesu. Pokud není backend spu¹tìn
+ postmasterem, pak nebì¾í ve svém obvyklém prostøedí a tudí¾ nìkteré
+ problémy dané interakcí mezi backendy nemohou být nasimulovány.
+
+ Pokud bì¾í postmaster, spus»e psql v jednom oknì a pak si zjistìte PID
+ procesu postgres pou¾itého psql. V debuggeru sepøipojte k postgresql
+ PID. Pak nastavte breakpointy v debuggeru a zadejte dotaz v psql.
+ Pokud ladíte startup postgresu, pak nastavte PGOPTIONS="-W n" a spus»e
+ psql. Tento pøepínaè zpùsobí pauzu n sekund, tak¾e budete mít èas se
+ pøipojit k procesu, a nastavit breakpointy a pokraèovat v startup
+ posloupnosti.
+
+ Pro ladìní a mìøení výkonu mohou být u¾iteèné pøepínaèe -s, -A a -t
+ programu postgres (backend).
+
+ Mù¾ete provést pøeklad s profilací, tak abyste vidìli kolik èasu
+ zabírají jednotlivé funkce. Soubory s profily backendù jsou ulo¾eny v
+ adresáøi pgsql/data/base/dbname. Profil klienta pak v jeho aktuálním
+ adresáøi. Korektní profilace v prostøedí Linux po¾aduje konfiguraci
+ systému s parametrem -DLINUX_PROFILE.
+
+ 3.8) Proè dostanu "Sorry, too many clients", kdy¾ se zkou¹ím pøipojit?
+
+ Zvy¹te limit postmastera na maximální poèet souèasnì spu¹tìných
+ backendù.
+
+ Výchozí hodnota je 32 backendù. Tuto hodnotu zvý¹íte zastavením a
+ opìtovným spu¹tìním postmastera s parametrem -N nebo úpravou
+ postgresql.conf.
+
+ Pøi zvý¹ení hodnoty -N nad 32 musíte zvý¹it hodnotu -B nad výchozí 64,
+ -B musí být minimálnì dvakrát vìt¹í, nebo je¹tì lépe více.
+ Pravdìpodobnì zjistíte, ¾e pro velký poèet procesù backendu je nutné
+ zvý¹it nìkteré parametry jádra. Jsou to pøedev¹ím maximální velikost
+ sdílené pamìti SHMMAX, maximální poèet semafórù SEMMNS a SEMMNI,
+ maximální poèet procesù NPROC, maximální poèet procesù u¾ivatele
+ MAXUPRC a maximální poèet otevøených souborù NFILE a NINODE. Dùvod pro
+ omezení maximálního poètu backendù je fakt, ¾e by mohlo dojít k
+ vyèerpání zdrojù Va¹eho systému.
+
+ 3.9) K èemu slou¾í adresáø pgsql_tmp?
+
+ Tento adresáø obsahuje doèasné soubory vytvoøené exekutorem dotazù.
+ Napøíklad, kdy¾ je nutné tøídìní k zaji¹tìní ORDER BY a tøídìní má
+ vìt¹í nároky na prostor ne¾ povoluje parametr -S backendu, pak je
+ vytvoøen doèasný soubor k ulo¾ení extra údajù.
+
+ Doèasné soubory jsou obvykle mazány automaticky, ale mù¾e se stát, ¾e
+ bìhem tøídìní server spadne. Zastavení a dal¹í start postmastera
+ zajistí odstranìní souborù s tìchto adresáøù.
+
+ 3.10) Proè je po¾adováno dump a obnovení (load) databáze bìhem upgrade mezi
+ velkými verzemi PostgreSQL?
+
+ PostgreSQL se minimálnì mìní bìhem malých verzí, tak¾e napø. pøi
+ upgrade z 7.2 na 7.2.1 není nutné dump a load databáze. Ale výynamné
+ verze èasto mìní interní formát systémových tabulek a datových
+ souborù. Tyto zmìny jsou natolik rozsáhlé, ¾e nelze zajistit zpìtnou
+ kompatibilitu pro datové soubory. Dump ulo¾í data v obecném formátu,
+ tak¾e mohou být naètena a pou¾ívána v novém interním formátu.
+ _________________________________________________________________
+
+ Provozní dotazy
+
+ 4.1) Èím se li¹í binární a normální kurzor?
+
+ Popis najdete v manuálové stránce DECLARE
+
+ 4.2) Jak získat pouze první øádek dotazu? Náhodný øádek?
+
+ Podívejte se do man. stránky pøíkazu FETCH, nebo pou¾ijte SELECT ...
+ LIMIT ...
+
+ I kdy¾ potøebujete získat pouze prvních nìkolik øádkù, je tøeba
+ zpracovat v¹echna data, napø. pokud dotaz má ORDER BY. Pokud v¹ak
+ existuje index, který odpovídá ORDER BY, PostgreSQL mù¾e získat pouze
+ prvních n øádkù a ukonèit zpracování dotazu.
+
+ K získání náhodného øádku pou¾ijte:
+ SELECT col
+ FROM tab
+ ORDER BY random()
+ LIMIT 1;
+
+ 4.3) Jak získám seznam tabulek nebo jinak jak jej získá psql?
+
+ Pøíkaz \dt v psql zobrazí seznam tabulek. Úplný seznam pøíkazù psql
+ dostanete pøíkazem \?. Také se mù¾ete podívat do zdrojových kódù psql
+ do souboru pgsql/src/bin/psql/describe.c. Ten obsahuje SQL pøíkazy,
+ které se pou¾ívají v psql metapøíkazech. Dále mù¾ete spustit psql s
+ pøepínaèem -E, který zpùsobí zobrazení ka¾dého dotazu, které
+ zpracování metapøíkazu vyvolá. PostgreSQL nabízí SQLi INFORMATION
+ SCHEMA s tabulkami obsahující informace o databázi.
+
+ 4.4) Jak odstraním sloupec tabulky, jak zmìním jeho typ?
+
+ Poèínaje verzí 7.3 mù¾ete pou¾ít pøíkaz ALTER TABLE DROP COLUMN. Ve
+ star¹ích verzích mù¾ete pou¾ít následující postup:
+ BEGIN;
+ LOCK TABLE old_table;
+ SELECT ... -- mimo sloupec, který chceme odstranit
+ INTO TABLE new_table;
+ DROP TABLE old_table;
+ ALTER TABLE new_table RENAME TO old_table;
+ COMMIT;
+
+ Pro zmìnu typu sloupce je tøeba provést:
+ BEGIN;
+ ALTER TABLE tab ADD COLUMN new_col new_data_type;
+ UPDATE tab SET new_col = CAST(old_col AS new_data_type;
+ ALTER TABLE tab DROP COLUMN old_col;
+ COMMIT;
+
+ Poté proveïte VACUUM FULL tab - uvolníte tím diskový prostor zabraný
+ nyní ji¾ neplatnými øádky.
+
+ 4.5) Jaká je maximální velikost øádku, tabulky a databáze?
+
+ PostgreSQL má tato omezení:
+ Maximální velikost databáze: neomezena (existují 32TB db)
+ Maximálné velikost tabulky: 32 TB
+ Maximální velikost øádky: 1.6 TB
+ Maximální velikost polo¾ky 1 GB
+ Maximální poèet øádkù v tabulce: neomezeno
+ Maximální poèet sloupcù v tabulce: 250-1600 podle typù
+ Maximální poèet indexù na tabulce: neomezeno
+
+ Ve skuteènosti nic není neomezeno, limitem bývá v¾dy dostupná disková
+ pamì» nebo velikost operaèní pamìti. Pokud máte nìkterou z tìchto
+ hodnot neobvykle velkou, mù¾e dojít ke sní¾ení výkonu.
+
+ Maximální velikost tabulky je 32 TB a nevy¾aduje podporu velkých
+ souborù operaèním systémem. Velké tabulky se ukládají do nìkolika 1 GB
+ souborù tak¾e limity souborového systému nejsou podstatné.
+
+ Maximální velikost tabulky a maximální poèet sloupcù mù¾eme
+ zeètyønásobit nastavením velikosti bloku na 32K.
+
+ 4.6) Kolik diskového prostoru je potøeba k ulo¾ení dat z
+
+ normálního textového souboru?
+
+ PostgreSQL vy¾aduje a¾ pìtinásobek diskového prostoru k ulo¾ení dat z
+ textového souboru.
+
+ Napøíklad, uva¾ujme soubor se 100 tisíci øádky obsahující na ka¾dé
+ øádce celé èíslo a textový popis. Text je v prùmìru dvacet bytù
+ dlouhý. Textový soubor bude 2.8 MB dlouhý. Velikost databáze
+ obsahující odpovídající data bude zhruba 6.4 MB.
+ 36 bytù: hlavièka øádku (pøibli¾nì)
+ 24 bytù: jedna celoèíselná polo¾ka a jedna textová
+ + 4 byty: ukazatel na stránku k ntici
+ ------------------------------------------------------
+ 64 bytù na øádek
+
+ Velikost datové stránky PostgreSQL je 8KB
+
+ 8192 bytù na stránce
+ ---------------------- = 128 øádek na stránku
+ 64 bytù za øádek
+
+ 100000 øádek
+ -------------------- = 782 stránek (zaokrouhleno nahoru)
+ 128 øádek na stránce
+
+ 782 * 8192 = 6, 406, 144 bytù (6.4 MB)
+
+ Indexy nemají tak velkou re¾ii, ale mohou být také velké, proto¾e
+ obsahují indexovaná data.
+
+ Hodnoty NULL jsou ulo¾eny v bitmapách, tak¾e spotøebují jen velmi málo
+ diskového prostoru.
+
+ 4.7) Jak získám seznam vytvoøených tabulek, indexù, databází?
+
+ psql má sadu metapøíkazù k zobrazení tìchto informací. Jejich seznam
+ získáte pøíkazem \?. Dále se mù¾ete podívat na obsah systémových
+ tabulek zaèínajících pg_. Spu¹tìní psql s parametrem -l provede výpis
+ názvù v¹ech databází.
+
+ Soubor pgsql/src/tutorial/syscat.source obsahuje SELECTy pøistupující
+ k systémovým tabulkámm.
+
+ 4.8) Mùj dotaz je pomalý a nepou¾ívá vytvoøené indexy. Proè?
+
+ Ka¾dý dotaz nemusí nutnì pou¾ít existující indexy. Index se pou¾ije
+ tehdy, kdy¾ je tabulka vìt¹í ne¾ urèitá minimální velikost, a dotaz
+ vybírá pouze procentuálnì malou èást øádkù tabulky. To proto, ¾e
+ náhodný pøístup k disku daný ètením indexu mù¾e být pomalej¹í ne¾
+ lineární ètení tabulky nebo sekvenèní ètení.
+
+ PostgreSQL rozhoduje o pou¾ití indexù na základì statistiky pøístupù k
+ tabulce. Tyto statistiky se shroma¾ïují pøíkazy VACUUM ANALYZE nebo
+ ANALYZE. Díky statistikám má optimizer informaci o poètu øádek v
+ tabulce a mù¾e lépe rozhodnout o pou¾ití indexù. Statistiky se uplatní
+ pøi urèení optimálního poøadí a metody spojení tabulek. Statistiky by
+ se mìli aktualizovat opakovanì, tak jak se mìní obsah tabulek.
+
+ Indexy nejsou obyèejnì pou¾ity pro setøídìní nebo spojení tabulek.
+ Sekvenèní zpracování následované explicitním tøídìním je obyèejnì
+ rychlej¹í ne¾ indexní ètení na velké tabulce.
+
+ Jinak je tomu v pøípadì pou¾ití LIMIT a ORDER BY, pøi kterém se
+ vìt¹inou index pou¾ije, výsledkem je pouze malá èást tabulky. Funkce
+ MAX() a MIN() nepou¾ívají indexy, ale je mo¾né tuté¾ hodnotu získat:
+ SELECT col
+ FROM tab
+ ORDER BY col [ DESC ]
+ LIMIT 1;
+
+ Pokud si myslíte, ¾e optimizer mylnì zvolil sekvenèní prohledávání
+ tabulky, pou¾ijte pøíkaz SET enable_seqscan TO 'off' a zkuste zda je
+ indexní prohledávání rychlej¹í.
+
+ Pøi vyhledávání na základì vzoru jako je napø. operátor LIKE nebo ~ se
+ indexy pou¾íjí pouze za urèitých skuteèností:
+ * zaèátek hledaného vzoru musí být ukotven k zaèátku, tj.
+ + vzor LIKE nesmí zaèínat %
+ + ~ regulární výraz musí zaèínat ^
+ * vzor nesmí zaèínat intervalem, napø. [a-e]
+ * vyhledávaní, které není Case sensitiv jako je ILIKE nebo ~*
+ nepou¾ívá indexy. Mù¾ete ale pou¾ít funkcionální indexy, které
+ jsou posány v sekci 4.12
+ * pøi inicializaci databáze (initdb) musí být pou¾ito C locale
+ (pozn. pøekladatele - tudí¾ v na¹ich podmínkách nepou¾itelné,
+ nepracovalo by èeské tøídìní).
+
+ 4.9) Jak zjistím, jak optimizer dotazu vyhodnocuje mùj dotaz?
+
+ Podívejte se do manuálové stránky pøíkazu EXPLAIN.
+
+ 4.10) Co to je R-tree index?
+
+ R-tree index se pou¾ívá pro indexování prostorových dat. Hash index
+ nemù¾e obslou¾it prohledávání oblastí. B-tree index mù¾e øídit
+ vyhledání oblastí v jedné dimenzi. R-tree index mù¾e podporovat
+ hledání v multidimenzionálních datech. Pou¾ijeme-li napøíklad R-tree
+ index na atributy typu point, pak systém mù¾e efektivnì odpovìdìt na
+ dotaz - vyber v¹echny body uvnitø obdélníkù.
+
+ Pùvodní návrh R-tree je 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
+
+ Tyto materiály naleznete v Stonebraker's "Readings in Database
+ Systems".
+
+ Vestavìné R-tree mù¾e slou¾it k indexaci polygonù a oblastí.
+ Teoreticky mù¾eme R-tree pou¾ít i pro více dimenzí (jiné ne¾ 3D). Ve
+ skuteènosti ale takové roz¹íøení R-tree vy¾aduje trochu práce a ve
+ souèastnosti chybí dokumentace jak na to.
+
+ 4.11) Co je Genetic Query Optimizer?
+
+ GEQO modul urychluje optimalizaci dotazù pøi spojování mno¾ství
+ tabulek metodou Genetických algoritmù (GA). To umo¾òuje získat velkého
+ mno¾ství variant spojení pøi neúplném prohledáváním.
+
+ 4.12) Jak provést vyhledávání regulárního výrazu case sensitiv, insensitiv?
+ Jak pou¾ít index pro case insensitive vyhledávání?
+
+ Operátor ~ slou¾í k porování s regulárním výrazem, jeho modifikace *~
+ pøedstavuje case insensitive vyhledávání. Jedná se o obdobu LIKE a
+ ILIKE.
+
+ Pro vyhledávání bez ohledu na velká malá písmena pou¾ijeme:
+ SELECT *
+ FROM tab
+ WHERE lower(col) = 'abc';
+
+ V tomto pøípadì se nepou¾ije standardní index. Nicménì, pou¾ije se
+ funkcionální index, pokud jej vytvoøíte:
+ CREATE INDEX tabindex ON tab (lower(col));
+
+ 4.13) Jak v dotazu detekovat, ¾e polo¾ka je NULL?
+
+ Urèíte pomocí IS NULL nebo IS NOT NULL
+
+ 4.14) Jaké jsou rozdíly mezi rùznými znakovými typy?
+
Typ Interní název Poznámka
--------------------------------------------------------------------------
VARCHAR(n) varchar omezeno maximální délkou, bez doplnìní mezerami
BYTEA bytea pole bytù (bezpeènì lze ulo¾it i znak NULL)
"char" char jeden znak
-S interními názvy se setkáte v systémovém katalogu a v nìkterých
-chybových hlá¹eních.
-
-První ètyøi uvedené typy jsou tzv. varlena typy (tj. první ètyøi byty na
-disku nesou údaj o délce, následují samotná data). Proto skuteèný
-pou¾itý prostor je v¾dy o nìco málo vìt¹í ne¾ deklarovaná délka. Naopak,
-tyto datové typy jsou komprimovánty TOASTem, tak¾e prostor na disku mù¾e
-být ni¾¹í ne¾ je oèekáváno.
-
-VARCHAR(n) je vhodný pro ukládání textù prommìné délky s pevnì
-stanovenou maximální délkou. TEXT je pro øetìzce bez omezení délky s
-maximem jeden gigabajt.
-
-CHAR(n) slou¾í k ukládání øetìzcù stejné délky. CHAR(n) doplní prázdné
-znaky do specifikované délky, zatímco VARCHAR(n) ulo¾í pouze pøedané
-znaky. BYTEA je urèeno pro ukládání binárních dat, vèetnì NULL byte.
-V¹echny zde popsané typy mají podobné výkonnostní charakteristiky.
-
-4.15.1 Jak vytvoøit serial/auto-increment pole?
------------------------------------------------
-
-PostgreSQL podporuje typ SERIAL. Pøi jeho pou¾ití se automaticky vytvoøí
-SEQUENCE a index na sloupci (Pro vy¹¹í verze to neplatí OVÌØIT).
-Napøíklad:
-
-CREATE TABLE person (
- id SERIAL,
- name TEXT
-);
-
-je automaticky pøevedeno do
-
-CREATE SEQUENCE person_id_seq;
-CREATE TABLE person (
- id INT4 NOT NULL DEFAULT nextval('person_id_seq'),
- name TEXT
-);
-CREATE UNIQUE INDEX person_id_key ON person(id);
-
-Viz dokumentace create_sequence v manuálových stránkách. Dále mù¾ete
-pou¾ít unikátní hodnotu OID ka¾dého øádku. Potom ale musíte spou¹tìt
-pg_dump s pøepínaèem -o, tak aby zùstaly zachovány hodnoty OID (u
-pøíkazu copy COPY WITH OIDS).
-
-4.15.2 Jak získat hodnotu SERIAL po vlo¾ení øádku?
---------------------------------------------------
-
-Jednou z mo¾ností je získat budoucí hodnotu SERIAL funkcí nextval pøed
-samotným vlo¾ením a pak ji vlo¾it explicitnì. Napøíklad v jakémsi
-pseudojazyku
-
-newid = execute("SELECT nextval('person_id_seq')");
-execute("INSERT INTO person (id, name) VALUES (new_id, 'Blaise Pascal')");
-
-Mù¾ete pak je¹tì pou¾ít hodnotu newid v dal¹ích dotazech, napø. jako
-hodnotu cizího klíèe. Název automaticky vytvoøené sekvence je
-tabulka_sloupec_seq.
-
-Alternativnì mù¾ete získat hodnotu poslednì generovou sekvencí funkcí
-currval() po vlo¾ení
-
-execute("INSERT INTO person (name) VALUES ('Blaise Pascal')");
-new_id = execute("SELECT currval('person_id_seq')");
-
-Koneènì mù¾ete pou¾ít OID hodnotu vrácenou pøíkazem INSERT, ale to je
-pravdìpodobnì nejménì pøenositelné øe¹ení. V Perlu pøi pou¾ití DBI
-modulu Edmunda Mergleho DBD:Pg oid hodnotu získáme $sth->{pg_oid_status}
-po ka¾dém $sth->execute().
-
-4.15.3 Nepovede currval() a nextval() k rozhození podmínek pøi soubìhu s jinými u¾ivateli?
-------------------------------------------------------------------------------------------
-
-Nikoliv, currval() vrací hodnotu naposledy generovanou ve va¹em
-backendu, a ta tudí¾ není spoleèná v¹em u¾ivatelùm.
-
-4.15.4 Proè není vygenerované èíslo pou¾ito pøi pøeru¹ení transakce?
-Proè vznikají díry v èíslování vlastní sekvencí/SERIAL sloupce?
-
-K zaji¹tìní efektivnosti soubìhu, jsou hodnoty posloupnosti, kdy¾ se o
-nì po¾ádá, a sekvence není zamèena do ukonèení transakce. To zpùsobuje
-díry v èíslování ze zru¹ených transakcí.
-
-4.16 Co to je OID? Co je to TID?
---------------------------------
-
-Ka¾dý øádek vytvoøený v PostgreSQL získá jedineèné OID. V¹echna OID
-generovaná bìhem inicializace databáze jsou men¹í ne¾ 16384
-(include/access/transam.h). V¹echna OID generovaná na po¾adavek
-u¾ivatele jsou rovna nebo vy¹¹í této hodnotì. Normálnì, v¹echna OID jsou
-jedineèná nejen uvnitø tabulky nebo databáze, ale v rámci celé instalace
-PostgreSQL
-
-PostgreSQL pou¾ívá OID ve svém interním systému tabulek k vytvoøení
-relací. Tato OID mohou být pou¾ita k identifikaci konkrétního u¾ivatele
-a pou¾ita v spojení. Pro OID hodnoty je doporuèen typ OID. Nad tímto
-sloupcem mù¾ete vytvoøit index pro urychlení pøístupu.
-
-OID jsou dána v¹em øádkùm z centrální oblasti a jsou pou¾ita v ka¾dé
-databázi. Pokud potøebujete zmìnit OID, nebo chcete zkopírovat tabulku s
-pùvodními OID, lze pou¾ít
-
-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 jsou ulo¾ena jako 4bajtový integer a pøeteèou po ètyøech miliardách.
-Nebylo hlá¹eno, ¾e by se tak nìkdy stalo, pøesto ale plánujeme odstranit
-tento limit døív ne¾ se tak stane.
-
-TID se pou¾ívají i identifikaci fyzických øádkù s hodnotou bloku a
-offsetu. TIDs se mìní modifikací øádkù (pou¾ívá se jako ukazatel indexu
-fyzického øádku).
-
-4.17 Jaký je význam nìkterých výrazù pou¾itých v PostgreSQL?
-------------------------------------------------------------
-
-V nìkterých zdrojových kódech nebo star¹í dokumentaci se mù¾ete setkat s
-následujícími výrazy, které mají ¹ir¹í význam. Zde je pøíklad nekterých:
-
- - tabulka, relace, tøída (table, relation, class)
- - øádek, záznam, ntice (row, record, tuple)
- - sloupec, polo¾ka, atribut (column, field, attribute)
- - vyhledání, výbìr (retrieve, select)
-
- - náhrada, úprava (replace, update)
- - pøidání, vkládání (append, insert)
- - OID, serial value (OID, serial value)
- - portal, kurzor (portal, cursor)
- - range variable, jméno tabulky, alias tabulky (range
- variable, table name, table alias)
-
-seznam tìchto výrazù mù¾ete nalézt na
-http://hea-www.harvard.edu/MST/simul/software/docs/pkgs/pgsql/glossary/g
-lossary.html.
-
-4.18 Proè jsem získal chybové hlá¹ení "ERROR: Memory exhausted in AllocSetAlloc()"?
------------------------------------------------------------------------------------
-
-Pravdìpodobnì do¹lo k vyèerpání virtuální pamì»i na Va¹em systému, nebo
-jádro má nízký limit pro urèité zdroje. Vyzkou¹ejte pøed startem
-posmatera
-
-ulimit -d 262144
-limit datasize 256m
-
-Zále¾í na Va¹em shellu, zda budou tyto pøíkazy úspì¹né, mìly by zvý¹it
-limit datového segmentu pro Va¹e procesy a umo¾nit tak dokonèení dotazu.
-Tyto pøíkazy se aplikují na aktuální proces a v¹echny synovské procesy
-vytvoøené po provedení pøíkazu. Pokud máte problémy s SQL klientem
-proto¾e backend vrací pøíli¹ mnoho dat, zkuste zvý¹it limity pøed
-startem klienta.
-
-4.19 Jak se dozvím, kterou verzi PostgreSQL pou¾ívám?
------------------------------------------------------
-
-V psql spus»te
-
-SELECT version();
-
-4.20 Proè operace s velkými objekty konèí "invalid large obj descriptor"?
--------------------------------------------------------------------------
-
-V¹echny operace s velkými objekty - lo_open, lo_close, ... musíte
-spou¹tìt v transakci, tj. mezi pøíkazy BEGIN WORK a COMMIT.
-
-PostgreSQL uvolòuje handle velkých objektù pøi skonèení transakce. Pokud
-budete pracovat s velkými objekty mimo transakci, pravdìpodobnì
-dostanete toto chybové hlá¹ení, proto¾e handle ji¾ budou neplatné.
-
-Pokud pou¾íváte interface podobné ODBC musíte nastavit set auto_commit
-off
-
-4.21 Jak vytvoøit sloupec obsahující implicitnì aktuální datum?
----------------------------------------------------------------
-
-Pou¾ijte CURRENT_TIMESTAMP
+ S interními názvy se setkáte v systémovém katalogu a v nìkterých
+ chybových hlá¹eních.
+
+ První ètyøi uvedené typy jsou tzv. varlena typy (tj. první ètyøi byty
+ na disku nesou údaj o délce, následují samotná data). Proto skuteèný
+ pou¾itý prostor je v¾dy o nìco málo vìt¹í ne¾ deklarovaná délka.
+ Naopak, tyto datové typy jsou komprimovánty TOASTem, tak¾e prostor na
+ disku mù¾e být ni¾¹í ne¾ je oèekáváno.
+
+ VARCHAR(n) je vhodný pro ukládání textù prommìné délky s pevnì
+ stanovenou maximální délkou. TEXT je pro øetìzce bez omezení délky s
+ maximem jeden gigabajt.
+
+ CHAR(n) slou¾í k ukládání øetìzcù stejné délky. CHAR(n) doplní prázdné
+ znaky do specifikované délky, zatímco VARCHAR(n) ulo¾í pouze pøedané
+ znaky. BYTEA je urèeno pro ukládání binárních dat, vèetnì NULL byte.
+ V¹echny zde popsané typy mají podobné výkonnostní charakteristiky.
+
+ 4.15.1) Jak vytvoøit serial/auto-increment pole?
+
+ PostgreSQL podporuje typ SERIAL. Pøi jeho pou¾ití se automaticky
+ vytvoøí SEQUENCE. Napøíklad:
+ CREATE TABLE person (
+ id SERIAL,
+ name TEXT
+ );
+
+ je automaticky pøevedeno do
+ CREATE SEQUENCE person_id_seq;
+ CREATE TABLE person (
+ id INT4 NOT NULL DEFAULT nextval('person_id_seq'),
+ name TEXT
+ );
+ CREATE UNIQUE INDEX person_id_key ON person(id);
+
+ Viz dokumentace create_sequence v manuálových stránkách. Dále mù¾ete
+ pou¾ít unikátní hodnotu OID ka¾dého øádku. Potom ale musíte spou¹tìt
+ pg_dump s pøepínaèem -o, tak aby zùstaly zachovány hodnoty OID (u
+ pøíkazu copy COPY WITH OIDS).
+
+ 4.15.2) Jak získat hodnotu SERIAL po vlo¾ení øádku?
+
+ Jednou z mo¾ností je získat budoucí hodnotu SERIAL funkcí nextval()
+ pøed samotným vlo¾ením a pak ji vlo¾it explicitnì. Napøíklad v jakémsi
+ pseudojazyku:
+ newid = execute("SELECT nextval('person_id_seq')");
+ execute("INSERT INTO person (id, name) VALUES (new_id, 'Blaise Pascal')");
+
+ Mù¾ete pak je¹tì pou¾ít hodnotu newid v dal¹ích dotazech, napø. jako
+ hodnotu cizího klíèe. Název automaticky vytvoøené sekvence je
+ tabulka_sloupec_seq.
+
+ Alternativnì mù¾ete získat hodnotu poslednì generovou sekvencí funkcí
+ currval() po vlo¾ení:
+ execute("INSERT INTO person (name) VALUES ('Blaise Pascal')");
+ new_id = execute("SELECT currval('person_id_seq')");
+
+ Koneènì mù¾ete pou¾ít OID hodnotu vrácenou pøíkazem INSERT, ale to je
+ pravdìpodobnì nejménì pøenositelné øe¹ení. V Perlu pøi pou¾ití DBI
+ modulu Edmunda Mergleho DBD:Pg oid hodnotu získáme
+ $sth->{pg_oid_status} po ka¾dém $sth->execute().
+
+ 4.15.3) Nepovede currval() a nextval() k rozhození podmínek pøi soubìhu s
+ jinými u¾ivateli?
+
+ Nikoliv, currval() vrací hodnotu naposledy generovanou ve va¹em
+ backendu, a ta tudí¾ není spoleèná v¹em u¾ivatelùm.
+
+ 4.15.4) Proè není vygenerované èíslo pou¾ito pøi pøeru¹ení transakce? Proè
+ vznikají díry v èíslování vlastní sekvencí/SERIAL sloupce?
+
+ K zaji¹tìní efektivnosti soubìhu, jsou hodnoty posloupnosti, kdy¾ se o
+ nì po¾ádá, a sekvence není zamèena do ukonèení transakce. To zpùsobuje
+ díry v èíslování ze zru¹ených transakcí.
+
+ 4.16) Co to je OID? Co je to TID?
+
+ Ka¾dý øádek vytvoøený v PostgreSQL získá jedineèné OID. V¹echna OID
+ generovaná bìhem inicializace databáze jsou men¹í ne¾ 16384
+ (include/access/transam.h). V¹echna OID generovaná na po¾adavek
+ u¾ivatele jsou rovna nebo vy¹¹í této hodnotì. Normálnì, v¹echna OID
+ jsou jedineèná nejen uvnitø tabulky nebo databáze, ale v rámci celé
+ instalace PostgreSQL
+
+ PostgreSQL pou¾ívá OID ve svém interním systému tabulek k vytvoøení
+ relací. Tato OID mohou být pou¾ita k identifikaci konkrétního
+ u¾ivatele a pou¾ita v spojení. Pro OID hodnoty je doporuèen typ OID.
+ Nad tímto sloupcem mù¾ete vytvoøit index pro urychlení pøístupu.
+
+ OID jsou dána v¹em øádkùm z centrální oblasti a jsou pou¾ita v ka¾dé
+ databázi. Pokud potøebujete zmìnit OID, nebo chcete zkopírovat tabulku
+ s pùvodními OID, lze pou¾ít:
+ 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 jsou ulo¾ena jako 4bajtový integer a pøeteèou po ètyøech
+ miliardách. Nebylo hlá¹eno, ¾e by se tak nìkdy stalo, pøesto ale
+ plánujeme odstranit tento limit døív ne¾ se tak stane.
+
+ TID se pou¾ívají i identifikaci fyzických øádkù s hodnotou bloku a
+ offsetu. TIDs se mìní modifikací øádkù (pou¾ívá se jako ukazatel
+ indexu fyzického øádku).
+
+ 4.17) Jaký je význam nìkterých výrazù pou¾itých v PostgreSQL?
+
+ V nìkterých zdrojových kódech nebo star¹í dokumentaci se mù¾ete setkat
+ s následujícími výrazy, které mají ¹ir¹í význam. Zde je pøíklad
+ nekterých:
+ * tabulka, relace, tøída (table, relation, class)
+ * øádek, záznam, ntice (row, record, tuple)
+ * sloupec, polo¾ka, atribut (column, field, attribute)
+ * vyhledání, výbìr (retrieve, select)
+ * náhrada, úprava (replace, update)
+ * pøidání, vkládání (append, insert)
+ * OID, serial value (OID, serial value)
+ * portal, kurzor (portal, cursor)
+ * range variable, jméno tabulky, alias tabulky (range variable,
+ table name, table alias)
+
+ seznam tìchto výrazù mù¾ete nalézt na
+ http://hea-www.harvard.edu/MST/simul/software/docs/pkgs/pgsql/glossary
+ /glossary.html.
+
+ 4.18) Proè jsem získal chybové hlá¹ení "ERROR: Memory exhausted in
+ AllocSetAlloc()"?
+
+ Pravdìpodobnì do¹lo k vyèerpání virtuální pamì»i na Va¹em systému,
+ nebo jádro má nízký limit pro urèité zdroje. Vyzkou¹ejte pøed startem
+ posmatera
+ ulimit -d 262144
+ limit datasize 256m
+
+ Zále¾í na Va¹em shellu, zda budou tyto pøíkazy úspì¹né, mìly by zvý¹it
+ limit datového segmentu pro Va¹e procesy a umo¾nit tak dokonèení
+ dotazu. Tyto pøíkazy se aplikují na aktuální proces a v¹echny synovské
+ procesy vytvoøené po provedení pøíkazu. Pokud máte problémy s SQL
+ klientem proto¾e backend vrací pøíli¹ mnoho dat, zkuste zvý¹it limity
+ pøed startem klienta.
+
+ 4.19) Jak se dozvím, kterou verzi PostgreSQL pou¾ívám?
+
+ V psql spus»te SELECT version();
+
+ 4.20) Proè operace s velkými objekty konèí "invalid large obj descriptor"?
+
+ V¹echny operace s velkými objekty - lo_open, lo_close, ... musíte
+ spou¹tìt v transakci, tj. mezi pøíkazy BEGIN WORK a COMMIT.
+
+ PostgreSQL uvolòuje handle velkých objektù pøi skonèení transakce.
+ Pokud budete pracovat s velkými objekty mimo transakci, pravdìpodobnì
+ dostanete toto chybové hlá¹ení, proto¾e handle ji¾ budou neplatné.
+ Pokud pou¾íváte interface podobné ODBC musíte nastavit set auto_commit
+ off.
+
+ 4.21) Jak vytvoøit sloupec obsahující implicitnì aktuální datum?
+
+ Pou¾ijte CURRENT_TIMESTAMP:
CREATE TABLE test (x int, modtime timestamp DEFAULT CURRENT_TIMESTAMP );
-4.22 Proè jsou moje vnoøené dotazy pou¾ívající IN tak pomalé?
--------------------------------------------------------------
-
-Aktuálnì spojujeme tabulky se sekvenèním skenováním výsledku pro ka¾dý
-øádek vnìj¹ího dotazu. Pokud vnoøený dotaz má pouze nìkolik øádkù a
-vnìj¹í dotaz vrací hodnì øádek, IN je rychlé. V jiných pøípadech
-nahraïte IN EXISTS:
-
-SELECT * FROM tab
- WHERE col IN (SELECT subcol FROM subtab);
-
-takto
-
-SELECT * FROM tab
- WHERE EXISTS (SELECT subcol FROM subtab WHERE subcol = col);
-
-Pro urychlení vytvoøete index pro subcol. Tento výkonnostní problém byl
-odstranìn ve verzi 7.4.
-
-4.23 Jak provést vnìj¹í spojení (outer join)?
----------------------------------------------
-
-PostgreSQL podporuje vnìj¹í spojení tabulek standardními SQL pøíkazy.
-Zde jsou dva pøíklady:
-
-SELECT * FROM t1 LEFT OUTER JOIN t2 ON (t1.col = t2.col);
-
-nebo
-
-SELECT * FROM t1 LEFT OUTER JOIN USING (col);
-
-Tyto identické dotazy napojí t1.col na t2.col a je¹tì pøidá nepøipojené
-øádky z t1 (které nemají obdoby v t2). Pravé spojení (RIGHT JOIN) pøidá
-nepøipojené øádky z t2. FULL JOIN vrátí v¹echny øádky, vèetnì
-nepøipojených z tbulek t1 a t2. Klíèové slovo OUTER je nepovinné a vá¾e
-se na LEFT, RIGHT a FULL join. Bì¾né spojení se nazývá INNER JOIN.
-
-V døívìj¹ích verzích se vnìj¹í spojení tabulek mohlo simulovat pomocí
-UNION a NOT IN. Napøíklad pro spojení tabulek tab1 a tab2, je
-následující dotaz ekvivalentní k vnìj¹ímu spojení dvou tabulek:
-
-SELECT tab1.col2, tab2.col2 FROM tab1, tab2
- WHERE tab1.col1 = tab2.col1
-UNION ALL
-SELECT tab1.col2, NULL FROM tab1
- WHERE tab1.col1 NOT IN (SELECT tab2.col1 FROM tab2)
-ORDER BY col1;
-
-4.24 Jak provést dotaz napøíè nìkolika databázemi?
---------------------------------------------------
-
-PostgreSQL nenabízí ¾ádný zpùsob, jak se dotázat do jiné databáze ne¾ do
-aktuální. Doplnìk contrib/dblink umo¾òuje dotaz do cizí databáze
-prostøednictvím funkce. Na stranì klienta není problém si otevøít více
-simultálních pøístupù do rùzných databází a spojovat výsledek na stranì
-klienta.
-
-4.25 Mù¾e funkce vrátit více øádkù nebo sloupcù?
-------------------------------------------------
-
-V PostgreSQL 7.3 mù¾ete jednodu¹e vracet více øádkù nebo sloupcù z
-funkce, viz:
-http://techdocs.postgresql.org/guides/SetReturningFunctions.
-
-4.26 Proè nelze spolehlivì vytváøet a ru¹it doèasné tabulky v PL/pgSQL funkcích?
---------------------------------------------------------------------------------
-
-Pøelo¾ený kód PL/pgSQL funkce je ulo¾en ve vyrovnávací pamìti, tj.
-funkce je pøekládána pouze pøi zmìnì kódu, nikoliv pøed ka¾dým voláním
-funkce. Nechtìným vedlej¹ím efektem je, ¾e volání funkce sel¾e, kdy¾ se
-funkce odkazuje na doèasnou tabulku, pokud tato tabulka byla od pøekladu
-funkce zru¹ena (aèkoliv ji¾ byla znovu vytvoøena a existuje). Jediným
-øe¹ením problému je pøístup k doèasné tabulce pomocí EXECUTE, tj.
-dynamické provádìní dotazu. Tento pøíkaz zajistí opakovaný pøeklad
-dotazu pøi ka¾dém volání funkce.
-
-4.27 Jaké jsou mo¾nosti replikace databází?
--------------------------------------------
-
-Existuje nìkolik dostupných øe¹ení master/slave replikací. Ty povolují
-modifikace master databáze a slave databázím umo¾òují pouze ètení. Na
-konci http://gborg.PostgreSQL.org/genpage?replication_research najdete
-jejich seznam. Na øe¹ení multi-master replikaci se pracuje na
-http://gborg.PostgreSQL.org/project/pgreplication/projdisplay.php.
-
-4.28 Jaké jsou mo¾nosti ¹ifrování databází?
--------------------------------------------
- -
-
- contrib/pgcrypto obsahuje ¹ifrovací funkce pou¾itelné v SQL
- dotazech.
-
- -
-
- K ¹ifrování pøenosu dat z klienta na server, musí být server
- pøelo¾en s podporou ssl a pøepínaè sslv postgresql.conf musí být
- nastaven na hodnotu true. Klient musí mít vytvoøen záznam hostssl v
- pg_hba.conf a také mít povolen re¾im ssl. Lze pou¾ít i jiné
- prostøedky, nejen nativní podporu ssl v PostgreSQL, napø. stunel a
- ssh.
-
- -
-
- Hesla u¾ivatelù databáze jsou za¹ifrována poèínaje verzí 7.3. Ve
- star¹ích verzích toto chování muselo být vynuceno volbou
- PASSWORD_ENCRYPTION v postgresql.conf
-
- -
-
- Server mù¾e bì¾et na ¹ifrovaném souborovém systému.
-
-------------------------------------------------------------------------
-
-Roz¹iøování PostgreSQL
-======================
-
-5.1 Napsal jsem UDF funkci, PostgreSQL v¹ak konèí dump core?
-------------------------------------------------------------
-
-Problém mù¾e být zpùsoben mnoha okolnostmi. Vyzkou¹ejte si svoji funkci
-nejdøíve v nìjaké jednoduché aplikaci.
-
-5.2 Jak mohu pøispìt nìjakými ¹ikovnými datovými typy a funkcemi do PostgreSQL?
--------------------------------------------------------------------------------
-
-Po¹lete své roz¹íøení do konference pgsql-hackers, a ono pak mo¾ná
-skonèí v podadresáøi contrib.
-
-5.3 Jak napsat funkci v C vracející ntici?
-------------------------------------------
-
-Funkce vracející tabulky jsou podporované PostgreSQL 7.3 a vy¹¹í pro
-jazyky C, PL/PgSQL a SQL. Více naleznete v The Programmer's Guide.
-Pøíklady tìchto funkcí pro C naleznete v contrib/tablefunc.
-
-5.4 Modifikoval jsem zdrojové soubory. Tato zmìna nebyla pøi rekompilaci vzata v potaz. Proè?
----------------------------------------------------------------------------------------------
-
-Makefile nemá informace o závislostech mezi hlavièkovými soubory. Musíte
-provést make clean a pak make. Pokud pou¾íváte gcc, mù¾ete pou¾ít
-pøepínaè --enable-depend pøíkazu configure k automatickému øe¹ení
-závislostí pøekladaèem.
-
-
-[1] http://developer.postgresql.org/todo.php
-[2] http://ourworld.compuserve.com/homepages/graeme_birchall/HTM_COOK.HTM
-[3] http://postgresql.ok.cz/PostgreSQL%20Administrator%27sGuide
-
+ 4.22) Proè jsou moje vnoøené dotazy pou¾ívající IN tak pomalé?
+
+ Døívìj¹í verze (pøed 7.4) spojovali vnoøené dotazy k vnìj¹ím
+ sekvenèním ètením výsledku poddotazu pro ka¾dý øádek vnìj¹ího dotazu.
+ Pokud poddotaz vrátil nìkolik málo øádkù IN bylo rychlé. Pro ostatní
+ pøípady je vhodné nahradit IN EXISTS:
+ SELECT *
+ FROM tab
+ WHERE col IN (SELECT subcol FROM subtab);
+
+ na:
+ SELECT *
+ FROM tab
+ WHERE EXISTS (SELECT subcol FROM subtab WHERE subcol = col);
+
+ Pro urychlení vytvoøete index pro subcol.
+
+ Ve verzi 7.4 a pozdìj¹ích, IN pou¾ívá stejnì sofistikovanou techniku
+ spojování tabulek jako ostatní dotazy a je preferovaný pøed EXISTS.
+
+ 4.23) Jak provést vnìj¹í spojení (outer join)?
+
+ PostgreSQL podporuje vnìj¹í spojení tabulek standardními SQL pøíkazy.
+ Zde jsou dva pøíklady:
+ SELECT *
+ FROM t1 LEFT OUTER JOIN t2 ON (t1.col = t2.col);
+
+ nebo
+ SELECT *
+ FROM t1 LEFT OUTER JOIN USING (col);
+
+ Tyto identické dotazy napojí t1.col na t2.col a je¹tì pøidá
+ nepøipojené øádky z t1 (které nemají obdoby v t2). Pravé spojení
+ (RIGHT JOIN) pøidá nepøipojené øádky z t2. FULL JOIN vrátí v¹echny
+ øádky, vèetnì nepøipojených z tbulek t1 a t2. Klíèové slovo OUTER je
+ nepovinné a vá¾e se na LEFT, RIGHT a FULL join. Bì¾né spojení se
+ nazývá INNER JOIN.
+
+ V døívìj¹ích verzích se vnìj¹í spojení tabulek mohlo simulovat pomocí
+ UNION a NOT IN. Napøíklad pro spojení tabulek tab1 a tab2, je
+ následující dotaz ekvivalentní k vnìj¹ímu spojení dvou tabulek:
+ SELECT tab1.col2, tab2.col2
+ FROM tab1, tab2
+ WHERE tab1.col1 = tab2.col1
+ UNION ALL
+ SELECT tab1.col2, NULL
+ FROM tab1
+ WHERE tab1.col1 NOT IN (SELECT tab2.col1 FROM tab2)
+ ORDER BY col1;
+
+ 4.24) Jak provést dotaz z více databází?
+
+ PostgreSQL nepodporuje dotazy do jiné ne¾ aktuální databáze.
+
+ contrib/dblink nabízí funkce umo¾òující provedení dotazu v jiné
+ databázi. Klient si mù¾e otevøít simultální pøipojení do rùzných db
+ bez omezení.
+
+ 4.25) Mù¾e funkce vrátit více øádkù nebo sloupcù?
+
+ V PostgreSQL 7.3 mù¾ete jednodu¹e vracet více øádkù nebo sloupcù z
+ funkce, viz:
+ http://techdocs.postgresql.org/guides/SetReturningFunctions.
+
+ 4.26) Proè nelze spolehlivì vytváøet a ru¹it doèasné tabulky v PL/pgSQL
+ funkcích?
+
+ Pøelo¾ený kód PL/pgSQL funkce je ulo¾en ve vyrovnávací pamìti, tj.
+ funkce je pøekládána pouze pøi zmìnì kódu, nikoliv pøed ka¾dým voláním
+ funkce. Nechtìným vedlej¹ím efektem je, ¾e volání funkce sel¾e, kdy¾
+ se funkce odkazuje na doèasnou tabulku, pokud tato tabulka byla od
+ pøekladu funkce zru¹ena (aèkoliv ji¾ byla znovu vytvoøena a existuje).
+ Jediným øe¹ením problému je pøístup k doèasné tabulce pomocí EXECUTE,
+ tj. dynamické provádìní dotazu. Tento pøíkaz zajistí opakovaný pøeklad
+ dotazu pøi ka¾dém volání funkce.
+
+ 4.27) Jaké jsou mo¾nosti replikace databází?
+
+ Existuje nìkolik dostupných øe¹ení master/slave replikací, tj umo¾òují
+ modifikace master databáze a slave databázím umo¾òují pouze ètení. Na
+ konci http://gborg.PostgreSQL.org/genpage?replication_research najdete
+ jejich seznam. Na øe¹ení multi-master replikaci se pracuje na
+ http://gborg.PostgreSQL.org/project/pgreplication/projdisplay.php.
+
+ 4.28) Jaké jsou mo¾nosti ¹ifrování databází?
+
+ * contrib/pgcrypto obsahuje ¹ifrovací funkce pou¾itelné v SQL
+ dotazech.
+ * K ¹ifrování pøenosu dat z klienta na server, musí být server
+ pøelo¾en s podporou ssl a pøepínaè ssl v postgresql.conf musí být
+ nastaven na hodnotu true. Klient musí mít vytvoøen záznam hostssl
+ v pg_hba.conf a také mít povolen re¾im ssl. Lze pou¾ít i jiné
+ prostøedky, nejen nativní podporu ssl v PostgreSQL, napø. stunel a
+ ssh.
+ * Hesla u¾ivatelù databáze jsou za¹ifrována poèínaje verzí 7.3. Ve
+ star¹ích verzích toto chování muselo být vynuceno volbou
+ PASSWORD_ENCRYPTION v postgresql.conf
+ * Server mù¾e bì¾et na ¹ifrovaném souborovém systému.
+ _________________________________________________________________
+
+ Roz¹iøování PostgreSQL
+
+ 5.1) Napsal jsem UDF funkci, PostgreSQL v¹ak konèí dump core?
+
+ Problém mù¾e být zpùsoben mnoha okolnostmi. Vyzkou¹ejte si svoji
+ funkci nejdøíve v nìjaké jednoduché aplikaci.
+
+ 5.2) Jak mohu pøispìt nìjakými ¹ikovnými datovými typy a funkcemi do
+ PostgreSQL?
+
+ Po¹lete své roz¹íøení do konference pgsql-hackers, a ono pak mo¾ná
+ skonèí v podadresáøi contrib.
+
+ 5.3) Jak napsat funkci v C vracející ntici?
+
+ Funkce vracející tabulky jsou podporované PostgreSQL 7.3 a vy¹¹í pro
+ jazyky C, PL/PgSQL a SQL. Více naleznete v The Programmer's Guide.
+ Pøíklady tìchto funkcí pro C naleznete v contrib/tablefunc.
+
+ 5.4) Modifikoval jsem zdrojové soubory. Tato zmìna nebyla pøi rekompilaci
+ vzata v potaz. Proè?
+
+ Makefile nemá informace o závislostech mezi hlavièkovými soubory.
+ Musíte provést make clean a pak make. Pokud pou¾íváte gcc, mù¾ete
+ pou¾ít pøepínaè --enable-depend pøíkazu configure k automatickému
+ øe¹ení závislostí pøekladaèem.
-PostgreSQL FAQسوالاتي كه اغلب در مورد PostgreSQL پرسيده مي شوند
-تاريخ آخرين اصلاح اين فايل: 28 شهریور 1383 هجری شمسی
-نگهدارنده اصلي فايل (زبان انگليسي)در حال حاضر : Bruce Momjian
-آخرين نسخه اين فايل را ميتوانيد از اين آدرس بگيريد
-http://www.PostgreSQL.org/docs/faqs/FAQ.html
-سوالاتي كه در مورد يك سکوی(پلتفرم) خاص است در اين آدرس جواب داده شده اند
-http://www.PostgreSQL.org/docs/index.html
-
-
-
-سوالات عمومي
-1.1) PostgreSQL چيست و چگونه بايد آن را تلفظ كرد؟
-1.2) قانون كپي رايت (حقوق معنوي) در مورد PostgreSQL به چه صورت است؟
-1.3) PostgreSQL روي چه نوع يونيكسهايي اجرا ميشود؟
-1.4) روي چه محيطهاي غير يونيكسي ميتوان آن را اجرا كرد؟
-1.5) PostgreSQL را از كجا ميتوانم بگيرم؟
-1.6) از كجا خدمات پشتيباني بگيرم؟
-1.7) آخرين نسخه اعلام شده چيست؟
-1.8) چه مستندات و راهنمائيهايي وجود دارند؟
-1.9) چگونه ميتوانم ازاشكالات شناخته شده و يا امكاناتي كه در اين پايگاه داده
-وجود ندارد مطلع شوم؟
-1.10) چگونه ميتوانم زبان SQL را ياد بگيرم؟
-1.11) آيا PostgreSQL مشكل Y2K دارد يا خير؟
-1.12) چگونه ميتوانم به تيم برنامه نويس PostgreSQL ملحق شوم؟
-1.13) چگونه ميتوانم يك اشكال را به گروه برنامه نويس اعلام كنم؟
-1.14) وضعيت PostgreSQL در مقايسه با ساير DBMSها به چه صورت است؟
-1.15) من چگونه ميتوانم از نظر مالي به PostgreSQL كمك كنم؟
-
-سوالات مربوط به استفاده از پايگاه داده
-2.1) آيا هيچ درايور ODBC براي PostgreSQL وجود دارد؟
-2.2) چه ابزارهايي براي استفاده از PostgreSQL با صفحات وب وجود دارد؟
-2.3) آيا PostgreSQL يك واسط كاربري گرافيكي دارد؟
-2.4) با چه زبانهاي برنامهنويسي ميتوان با PostgreSQL ارتباط برقرار كرد؟
-
-سوالات مربوط به راهبري
-3.1) چگونه ميتوانم PostgreSQL را در شاخهاي غير از /usr/local/pgsql/ نصب كنم؟
-3.2) چرا موقعي كه من برنامه postmaster را اجرا مي كنم پيام Bad system call و
-يا core dump ميگيرم؟
-3.3) چرا موقعي كه من سعي ميكنم برنامه postmaster را اجرا كنم خطاي
-IpcMemoryCreate ميگيرم؟
-3.4) چرا موقعي كه من سعي ميكنم برنامه postmaster را اجرا كنم خطاي
-IpcSemaphoreCreate ميگيرم؟
-3.5) چگونه ميتوانم اتصالات ساير ماشينها را كنترل كنم؟
-3.6) براي كارايي بالاتر و بهتر پايگاه داده من چه تنظيماتي را بايد انجام دهم؟
-3.7) چه امكاناتي براي پيدا كردن اشكال وجود دارد؟
-3.8) چرا موقعي كه من ميخواهم به پايگاه داده وصل شوم پيام "Sorry, too many
-clients" ميگيرم؟
-3.9) در شاخه pgsql_tmp چه چيزي قرار دارد؟
-3.10) چرا براي به روز كردن نسخه پايگاه داده من بايد كل داده ها را dump و مجدداً
-restore كنم؟
-3.11) از چه سخت افزاري بايد استفاده كنم؟
-
-سوالات عملياتي
-4.1) تفاوت بين binary cursors و Normal cursors چيست؟
-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) تفاوت بين گونههاي مختلف character چيست؟
-4.15.1) چگونه ميتوانم يك فيلد سريال يا افزايشي ايجاد كنم؟
-4.15.2) چگونه ميتوانم مقدار يك درج سريالي را بدانم؟
-4.15.3) آیا توابع ()nextval و ()currval منجر به ایجاد شرایط race برای سایر
-کاربران می شوند؟
-4.15.4) چرا اعداد سریالی مربوط به تراکنشهای abort شده مجدداً استفاده نمی شود؟
-چرا بین اعداد سریالی یک فاصله خالی ایجاد می شود؟
-4.16) OID و TID چه هستند؟
-4.17) معني بعضي از ترمها و كلماتي كه در PostgreSQL استفاده ميشود چيست؟
-4.18) چرا من خطاي "ERROR: Memory exhausted in AllocSetAlloc" ميگيرم؟
-4.19) از كجا تشخيص دهم كه ويرايش يا نسخه PostgreSQLيي كه من استفاده ميكنم چيست؟
-4.20) چرا در حین اجرای عملیات روی large-objectها خطای "invalid large obj
-descriptor"به وجود می آید؟
-4.21) چگونه يك ستون ايجاد كنم كه مقدار زمان جاري را به عنوان مقدار پيشفرض داشته
-باشد؟
-4.22) چرا زير درخواستهايي كه از IN استفاده ميكنند كند هستند؟
-4.23) چگونه ميتوانم يك الحاق خارجي (outer join) انجام دهم؟
-4.24) چگونه ميتوان درخواستهايي از چند پايگاه داده توليد كرد؟
-4.25) چگونه خروجي يك تابع ميتواند چند رديف يا ستون باشد؟
-4.26) در توابع PL/PgSQL چرا نميتوان با اطمينان جداول موقت را ايجاد يا حذف كرد؟
-4.27) چه گزينههايي براي تكرار (replication) وجود دارد؟
-4.28) چه گزينههايي براي رمزنگاري وجود دارد؟
-
-توسعه PostgreSQL
-5.1) من يك تابع نوشتهام. چگونه آن را در psql اجرا كنم؟ چرا با اجراي آن core
-dump ميگيرم؟
-5.2) چگونه ميتوانم در توليد نوعها و توابع جديد و جالب براي PostgreSQL همكاري
-و مشاركت داشته باشم.
-5.3) چگونه ميتوانم يك تابع به زبان C بنويسم كه خروجي آن يك tuple (چند تايي)
-باشد؟
-5.4) من يك فايل منبع را عوض كرده ام چرا در عمليات كامپيل مجدد آن تغيير ديده
-نميشود؟
-
-
-
-
-سوالات عمومي
-1.1) PostgreSQL چيست و چگونه آن را بايد تلفظ كرد؟
-PostgreSQL به صورت Post-Gres-Q-L تلفظ ميشود. يك فايل صوتي در آدرس
-http://www.postfresql.org/postgresql.mp3 براي كساني كه مايلند تلفظ صحيح را
-بشنوند وجود دارد.
-PostgreSQL از روي سيستم مديريت پايگاه داده POSTGRES توسعه داده شده است (هنوز هم
-بعضي مواقع براي سادگي به آن Postgres گفته ميشود) كه يك نمونه تحقيقاتي از پايگاه
-دادههاي نسل بعد است. PostgreSQL همان الگوي داده قوي و انواع داده را حفظ كرده
-است ولي زبان PostQuel را با يك زيرمجموعه پيشرفته از SQL جايگزين كرده است.
-PostgreSQL متن باز بوده و متن كامل آن در دسترس است.
-PostgreSQL توسط يك تيم برنامهنويس كه همگي در گروه پست الكترونيك برنامهنويسان
-PostgreSQL عضو هستند، انجام ميشود. هماهنگ كننده اصلي در حال حاضر Marc G.
-اين تيم قسمت 1.6 را ببينيد). اين تيم در حاضر مسئوليت تمام مسائل مربوط به
-برنامهنويسي PostgreSQL را بر عهده دارد. اين يك پروژه گروهي است و تحت كنترل هيچ
-شركتي نيست. براي اطلاعات بيشتر در مورد اين تيم به آدرس
-http://www.PostgreSQL.org/docs/faqs/FAQ_DEV.html مراجعه كنيد.
-اولين نسخه PostgreSQL توسط Andrew Yu and Jolly Chen به وجود آمد. افراد بسياري
-در توسعه و رفع اشكال و انتقال آن شركت كردهاند. متن اصلي Postgres كه PostgreSQL
-از روي آن نوشته شده است، توسط تعداد زيادي دانشجوي كارشناسي ارشدو دانشجوي
-كارشناسي و تيم برنامهنويسي كه تحت نظر پروفسور Michael Stonebrake در دانشگاه
-بركلي،كاليفرنيا كار ميكردهاند نوشته شده است.
-نام اصلي نرم افزار در دانشگاه بركلي Postgres بود. در سال 1995 بعد از اضافه شدن
-SQL نام آن به Postgres95 تغيير داده شد. در سال 1996 نام آن به PostgreSQL تغيير
-داده شد.
-1.2) قوانين كپي رايت در مورد PostgreSQL به چه صورت است؟
-PostgreSQL تحت قانون كپي رايت زير قرار دارد:
-PostgreSQL Data Base Management System
-Portions copyright (c) 1996-2004, PostgreSQL Global Development Group Portions
-Copyright (c) 1994-6 Regents of the University of California
-Permission to use, copy, modify, and distribute this software and its
-documentation for any purpose, without fee, and without a written agreement is
-hereby granted, provided that the above copyright notice and this paragraph and
-the following two paragraphs appear in all copies.
-IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY FOR
-DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING LOST
-PROFITS, ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF
-THE UNIVERSITY OF CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
-PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND
-THE UNIVERSITY OF CALIFORNIA HAS NO OBLIGATIONS TO PROVIDE MAINTENANCE, SUPPORT,
-UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
-قانون بالا ليسانس BSD كه يك ليسانس كلاسيك براي متنهاي باز است ميباشد. هيچ
-محدوديتي در مورد نحوه استفاده از متن در آن ديده نميشود. ما آن را دوست داريم و
-هيچ قصدي براي تغيير آن نداريم.
-1.3) PostgreSQL روي چه نوع يونيكسهايي اجرا ميشود؟
-در حالت كلي PostgreSQL روي هر پلتفرم (سكوي) سازگار با يونيكس اجرا ميشود. ليست
-پلتفرمهايي كه تاكنون PostgreSQL روي آنها نصب و تست شده است درقسمت دستورالعملهاي
-نصب آمده است.
-1.4) روي چه محيطهاي غير يونيكسي ميتوان آن را اجرا كرد؟
-Client
-ميتوان psql, كتابخانه libpq و ساير واسطها و برنامههاي كاربردي را طوري كامپيل
-كرد كه روي محيطهاي ويندوز نيز اجرا شوند. در اين حالت Client روي ويندوز اجرا
-ميشود و از طربق شبكه و پروتكل TCP/IP با يك سرور كه روي يك پلتفرم لينوكس در حال
-اجراست ارتباط برقرار ميكند.يك فايل win32.mak همراه با كدهاي PostgreSQL وجود
-دارد كه براي كامپيل كردن كتابخانه libpq و برنامه psql ميباشد. PostgreSQL
-همچنين امكان ارتباط به صورت ODBC را نيز دارد.
-Server
-با استفاده از Cygwin و كتابخانه Cygnus ميتوان پايگاه داده را روي ويندوز NT و
-يا Win2K اجرا كرد.براي ديدن اطلاعات بيشتر فايل pgsql/doc/FAQ_MSWIN را كه بهمراه
-توزبعهاي PostgreSQL آمده است ببينيد و يا اينكه به اين صفحه
-http://www.PostgreSQL.org/docs/faqs/text/FAQ_MSWIN مراجعه كنيد.
-در حال حاضر يك عمليات انتقال PostgreSQL به روي سكوهاي Win NT/2000/XP در جريان
-است. براي ديدن وضعيت اين پروژه به سايتهاي
-http://momjian.postgresql.org/main/writings/pgsql/win32.htm و
-http://techdocs.postgresql.org/guides/Windows مراجعه كنيد.
-همچنين يك عمليات انتقال بر روي Novell Netware 6 نيز در حال انجام است كه در سايت
-http://forge.novell.com ميتوانيد اطلاعات بيشتر را ببينيد.
-1.5) PostgreSQL را از كجا ميتوانم بگيرم؟
-PostgreSQL را از سايت اصلي آن ftp://ftp.PostgreSQL.org/pub ميتوانيد بگيريد.
-در صفحه اصلي سايت ليست ساير آدرسهايي كه ميتوانيد PostgreSQL را از آنها بگيريد
-آمده است.
-1.6) از كجا خدمات پشتيباني بگيرم؟
-موضوعات مختلف در زمينه PostgreSQL است. براي عضو شدن در اين گروه پستي يك نامه
-الكترونيكي به آدرس گروه با محتوياتی كه در ادامه آمده است ارسال كنيد. در قسمت
-Subject چيزي ننويسيد.
+s+w+a+l+a+t+y+ k+h+ a+i+l+b+ d+r+ m+w+r+d+ PostgreSQL p+r+s+y+d+h+ m+y+ snw+n+d +
+
+ t+a+r+y+x+ aMx+r+y+n+ a+c+l+a+hk a+y+n+ f+a+y+l+: 28 snh+r+یw+r+
+ 1383 h+g+r+ی snm+s+ی
+
+ n+gfh+d+a+r+n+d+h+ a+c+l+y+ f+a+y+l+ (z+b+a+n+ a+n+gfl+y+s+y+)d+r+
+
+ n+gfh+d+a+r+n+d+h+ f+a+y+l+ b+h+ z+b+a+n+ f+a+r+s+y+:
+ m+h+r+g+r+d+ی
+
+ aMx+r+y+n+ n+s+x+h+ a+y+n+ f+a+y+l+ r+a+ m+y+t+w+a+n+y+d+ a+z+ a+y+n+
+ aMd+r+s+ b+gfy+r+y+d+ http://www.PostgreSQL.org/docs/faqs/FAQ.html
+
+ s+w+a+l+a+t+y+ k+h+ d+r+ m+w+r+d+ y+k+
+ s+کw+ی(p+l+t+f+r+m+) x+a+c+ a+s+t+ d+r+ a+y+n+ aMd+r+s+
+ g+w+a+b+ d+a+d+h+ snd+h+ a+n+d+
+ http://www.PostgreSQL.org/docs/index.html
+ _________________________________________________________________
+
+ s+w+a+l+a+t+ e+m+w+m+y+
+
+ 1.1) PostgreSQL tcy+s+t+ w+ tcgfw+n+h+ b+a+y+d+ aMn+ r+a+ t+l+f+zH
+ k+r+d+?+
+ 1.2) q+a+n+w+n+ k+p+y+ r+a+y+t+ (hkq+w+q+ m+e+n+w+y+) d+r+ m+w+r+d+
+ PostgreSQL b+h+ tch+ c+w+r+t+ a+s+t+?+
+ 1.3) PostgreSQL r+w+y+ tch+ n+w+e+ y+w+n+y+k+s+h+a+y+y+ a+g+r+a+ m+y+
+ snw+d+?+
+ 1.4) r+w+y+ tch+ m+hky+tjh+a+y+ i+y+r+ y+w+n+y+k+s+y+ m+y+t+w+a+n+
+ aMn+ r+a+ a+g+r+a+ k+r+d+?+
+ 1.5) PostgreSQL r+a+ a+z+ k+g+a+ m+y+t+w+a+n+m+ b+gfy+r+m+?+
+ 1.6) a+z+ k+g+a+ x+d+m+a+t+ p+snt+y+b+a+n+y+ b+gfy+r+m+?+
+ 1.7) aMx+r+y+n+ n+s+x+h+ a+e+l+a+m+ snd+h+ tcy+s+t+?+
+ 1.8) tch+ m+s+t+n+d+a+t+ w+ r+a+h+n+m+a+yHy+h+a+y+y+ w+g+w+d+
+ d+a+r+n+d+?+
+ 1.9) tcgfw+n+h+ m+y+t+w+a+n+m+ a+z+a+snk+a+l+a+t+ snn+a+x+t+h+ snd+h+
+ w+ y+a+ a+m+k+a+n+a+t+y+ k+h+ d+r+ a+y+n+ p+a+y+gfa+h+ d+a+d+h+
+ w+g+w+d+ n+d+a+r+d+ m+tjl+e+ snw+m+?+
+ 1.10) tcgfw+n+h+ m+y+t+w+a+n+m+ z+b+a+n+ SQL r+a+ y+a+d+ b+gfy+r+m+?+
+ 1.11) aMy+a+ PostgreSQL m+snk+l+ Y2K d+a+r+d+ y+a+ x+y+r+?+
+ 1.12) tcgfw+n+h+ m+y+t+w+a+n+m+ b+h+ t+y+m+ b+r+n+a+m+h+ n+w+y+s+
+ PostgreSQL m+l+hkq+ snw+m+?+
+ 1.13) tcgfw+n+h+ m+y+t+w+a+n+m+ y+k+ a+snk+a+l+ r+a+ b+h+ gfr+w+h+
+ b+r+n+a+m+h+ n+w+y+s+ a+e+l+a+m+ k+n+m+?+
+ 1.14) w+dde+y+t+ PostgreSQL d+r+ m+q+a+y+s+h+ b+a+ s+a+y+r+ DBMSh+a+
+ b+h+ tch+ c+w+r+t+ a+s+t+?+
+ 1.15) m+n+ tcgfw+n+h+ m+y+t+w+a+n+m+ a+z+ n+zHr+ m+a+l+y+ b+h+
+ PostgreSQL k+m+k+ k+n+m+?+
+
+ s+w+a+l+a+t+ m+r+b+w+tj b+h+ a+s+t+f+a+d+h+ a+z+ p+a+y+gfa+h+ d+a+d+h+
+
+ 2.1) aMy+a+ h+y+tc d+r+a+y+w+r+ ODBC b+r+a+y+ PostgreSQL w+g+w+d+
+ d+a+r+d+?+
+ 2.2) tch+ a+b+z+a+r+h+a+y+y+ b+r+a+y+ a+s+t+f+a+d+h+ a+z+ PostgreSQL
+ b+a+ c+f+hka+t+ w+b+ w+g+w+d+ d+a+r+d+?+
+ 2.3) aMy+a+ PostgreSQL y+k+ w+a+s+tj k+a+r+b+r+y+ gfr+a+f+y+k+y+
+ d+a+r+d+?+
+ 2.4) b+a+ tch+ z+b+a+n+h+a+y+ b+r+n+a+m+h+n+w+y+s+y+ m+y+t+w+a+n+ b+a+
+ PostgreSQL a+r+t+b+a+tj b+r+q+r+a+r+ k+r+d+?+
+
+ s+w+a+l+a+t+ m+r+b+w+tj b+h+ r+a+h+b+r+y+
+
+ 3.1) tcgfw+n+h+ m+y+t+w+a+n+m+ PostgreSQL r+a+ d+r+ sna+x+h+a+y+
+ i+y+r+ a+z+ /usr/local/pgsql/ n+c+b+ k+n+m+?+
+ 3.2) tcr+a+ m+w+q+e+y+ k+h+ m+n+ b+r+n+a+m+h+ postmaster r+a+ a+g+r+a+
+ m+y+ k+n+m+ p+y+a+m+ Bad system call w+ y+a+ core dump m+y+gfy+r+m+?+
+ 3.3) tcr+a+ m+w+q+e+y+ k+h+ m+n+ s+e+y+ m+y+k+n+m+ b+r+n+a+m+h+
+ postmaster r+a+ a+g+r+a+ k+n+m+ x+tja+y+ IpcMemoryCreate m+y+
+ gfy+r+m+?+
+ 3.4) tcr+a+ m+w+q+e+y+ k+h+ m+n+ s+e+y+ m+y+k+n+m+ b+r+n+a+m+h+
+ postmaster r+a+ a+g+r+a+ k+n+m+ x+tja+y+ IpcSemaphoreCreate m+y+
+ gfy+r+m+?+
+ 3.5) tcgfw+n+h+ m+y+t+w+a+n+m+ a+t+c+a+l+a+t+ s+a+y+r+ m+a+sny+n+h+a+
+ r+a+ k+n+t+r+l+ k+n+m+?+
+ 3.6) b+r+a+y+ k+a+r+a+y+y+ b+a+l+a+t+r+ w+ b+h+t+r+ p+a+y+gfa+h+
+ d+a+d+h+ m+n+ tch+ t+n+zHy+m+a+t+y+ r+a+ b+a+y+d+ a+n+g+a+m+ d+h+m+?+
+ 3.7) tch+ a+m+k+a+n+a+t+y+ b+r+a+y+ p+y+d+a+ k+r+d+n+ a+snk+a+l+
+ w+g+w+d+ d+a+r+d+?+
+ 3.8) tcr+a+ m+w+q+e+y+ k+h+ m+n+ m+y+x+w+a+h+m+ b+h+ p+a+y+gfa+h+
+ d+a+d+h+ w+c+l+ snw+m+ p+y+a+m+ "Sorry, too many clients" m+y+
+ gfy+r+m+?+
+ 3.9) d+r+ sna+x+h+ pgsql_tmp tch+ tcy+z+y+ q+r+a+r+ d+a+r+d+?+
+ 3.10) tcr+a+ b+r+a+y+ b+h+ r+w+z+ k+r+d+n+ n+s+x+h+ p+a+y+gfa+h+
+ d+a+d+h+ m+n+ b+a+y+d+ k+l+ d+a+d+h+ h+a+ r+a+ dump w+ m+g+d+d+a+:+
+ restore k+n+m+?+
+ 3.11) a+z+ tch+ s+x+t+ a+f+z+a+r+y+ b+a+y+d+ a+s+t+f+a+d+h+ k+n+m+?+
+
+ s+w+a+l+a+t+ e+m+l+y+a+t+y+
+
+ 4.1) t+f+a+w+t+ b+y+n+ binary cursors w+ Normal cursors tcy+s+t+?+
+ 4.2) m+n+ tcgfw+n+h+ m+y+t+w+a+n+m+ f+q+tj r+w+y+ tcn+d+ r+d+y+f+
+ a+w+l+ y+a+ y+k+ r+d+y+f+ t+c+a+d+f+y+ d+r+x+w+a+s+t+ SELECT
+ b+z+n+m+?+
+ 4.3) m+n+ tcgfw+n+h+ m+y+t+w+a+n+m+ l+y+s+t+y+ a+z+ g+d+a+w+l+ y+a+
+ s+a+y+r+ tcy+z+h+a+y+y+ k+h+ d+r+ psql w+g+w+d+ d+a+r+d+ r+a+
+ b+b+y+n+m+?+
+ 4.4) tcgfw+n+h+ y+k+ s+t+w+n+ g+d+w+l+ r+a+ hkdkf+ m+y+k+n+y+d+?+
+ tcgfw+n+h+ n+w+e+ d+a+d+h+ aMn+ r+a+ e+w+dd k+n+y+m+?+
+ 4.5) hkd+a+k+tkr+ a+n+d+a+z+h+ y+k+ r+d+y+f+,+ g+d+w+l+ w+ x+w+d+
+ p+a+y+gfa+h+ d+a+d+h+ tcq+d+r+ a+s+t+?+
+ 4.6) tcq+d+r+ f+dda+y+ d+y+s+k+ s+x+t+ b+r+a+y+ dkx+y+r+h+ k+r+d+n+
+ d+a+d+h+h+a+y+ y+k+ f+a+y+l+ m+t+n+y+ m+w+r+d+ n+y+a+z+ a+s+t+?+
+ 4.7) tcgfw+n+h+ m+y+t+w+a+n+m+ b+f+h+m+m+ k+h+ tch+ k+a+r+b+r+a+n+,+
+ p+a+y+gfa+h+ d+a+d+h+,+ n+m+a+y+h+ w+ g+d+a+w+l+y+ d+r+ s+y+s+t+m+
+ t+e+r+y+f+ snd+h+ a+s+t+?+
+ 4.8) tcr+a+ d+r+x+w+a+s+t+h+a+y+ m+n+ k+n+d+ a+g+r+a+ m+y+snw+n+d+
+ y+a+ tcr+a+ a+z+ n+m+a+y+h+ h+a+ a+s+t+f+a+d+h+ n+m+y+k+n+n+d+?+
+ 4.9) tcgfw+n+h+ m+y+t+w+a+n+m+ n+hkw+h+ b+r+r+s+y+ d+r+x+w+a+s+t+ r+a+
+ t+w+s+tj b+h+y+n+h+s+a+z+ d+r+x+w+a+s+t+h+a+ m+sna+h+d+h+ k+n+m+?+
+ 4.10) n+m+a+y+h+ R-tree tcy+s+t+?+
+ 4.11) b+h+y+n+h+ s+a+z+ t+k+w+y+n+y+ d+r+x+w+a+s+t+ tcy+s+t+?+
+ (Genetic Query Optimizer)
+ 4.12) tcgfw+n+h+ a+z+ e+b+a+r+a+t+ m+n+zHm+ b+r+a+y+ g+s+t+g+w+
+ a+s+t+f+a+d+h+ k+n+m+?+ tcgfw+n+h+ g+s+t+g+w+y+y+ a+n+g+a+m+ d+h+m+
+ k+h+ hks+a+s+ b+h+ m+t+n+ n+b+a+snd+?+ tcgfw+n+h+ b+r+a+y+ y+k+
+ g+s+t+g+w+y+ i+y+r+ hks+a+s+ b+h+ m+t+n+ a+z+ n+m+a+y+h+
+ a+s+t+f+a+d+h+ k+n+m+?+
+ 4.13) tcgfw+n+h+ m+y+t+w+a+n+m+ d+r+ y+k+ d+r+x+w+a+s+t+ t+snx+y+c+
+ d+h+m+ k+h+ y+k+ f+y+l+d+ NULL a+s+t+?+
+ 4.14) t+f+a+w+t+ b+y+n+ gfw+n+h+h+a+y+ m+x+t+l+f+ character tcy+s+t+?+
+ 4.15.1) tcgfw+n+h+ m+y+t+w+a+n+m+ y+k+ f+y+l+d+ s+r+y+a+l+ y+a+
+ a+f+z+a+y+sny+ a+y+g+a+d+ k+n+m+?+
+ 4.15.2) tcgfw+n+h+ m+y+t+w+a+n+m+ m+q+d+a+r+ y+k+ d+r+g+ s+r+y+a+l+y+
+ r+a+ b+d+a+n+m+?+
+ 4.15.3) aMیa+ t+w+a+b+e+ ()nextval w+ ()currval m+n+g+r+ b+h+
+ a+یg+a+d+ snr+a+یtj race b+r+a+ی s+a+یr+
+ کa+r+b+r+a+n+ m+ی snw+n+d+?+
+ 4.15.4) tcr+a+ a+e+d+a+d+ s+r+یa+l+ی m+r+b+w+tj b+h+
+ t+r+a+کn+snh+a+ی abort snd+h+ m+g+d+d+a+:+ a+s+t+f+a+d+h+
+ n+m+ی snw+d+?+ tcr+a+ b+یn+ a+e+d+a+d+
+ s+r+یa+l+ی یک f+a+c+l+h+ x+a+l+ی
+ a+یg+a+d+ m+ی snw+d+?+
+ 4.16) OID w+ TID tch+ h+s+t+n+d+?+
+ 4.17) m+e+n+y+ b+e+ddy+ a+z+ t+r+m+h+a+ w+ k+l+m+a+t+y+ k+h+ d+r+
+ PostgreSQL a+s+t+f+a+d+h+ m+y+snw+d+ tcy+s+t+?+
+ 4.18) tcr+a+ m+n+ x+tja+y+ "ERROR: Memory exhausted in AllocSetAlloc"
+ m+y+gfy+r+m+?+
+ 4.19) a+z+ k+g+a+ t+snx+y+c+ d+h+m+ k+h+ w+y+r+a+y+sn y+a+ n+s+x+h+
+ PostgreSQLy+y+ k+h+ m+n+ a+s+t+f+a+d+h+ m+y+k+n+m+ tcy+s+t+?+
+ 4.20) tcr+a+ d+r+ hkیn+ a+g+r+a+ی e+m+l+یa+t+
+ r+w+ی large-objecth+a+ x+tja+ی "invalid large obj
+ descriptor"b+h+ w+g+w+d+ m+ی aMیd+?+
+ 4.21) tcgfw+n+h+ y+k+ s+t+w+n+ a+y+g+a+d+ k+n+m+ k+h+ m+q+d+a+r+
+ z+m+a+n+ g+a+r+y+ r+a+ b+h+ e+n+w+a+n+ m+q+d+a+r+ p+y+snf+r+dd
+ d+a+snt+h+ b+a+snd+?+
+ 4.22) tcr+a+ z+y+r+ d+r+x+w+a+s+t+h+a+y+y+ k+h+ a+z+ IN a+s+t+f+a+d+h+
+ m+y+k+n+n+d+ k+n+d+ h+s+t+n+d+?+
+ 4.23) tcgfw+n+h+ m+y+t+w+a+n+m+ y+k+ a+l+hka+q+ x+a+r+g+y+ (outer
+ join) a+n+g+a+m+ d+h+m+?+
+ 4.24) tcgfw+n+h+ m+y+t+w+a+n+ d+r+x+w+a+s+t+h+a+y+y+ a+z+ tcn+d+
+ p+a+y+gfa+h+ d+a+d+h+ t+w+l+y+d+ k+r+d+?+
+ 4.25) tcgfw+n+h+ x+r+w+g+y+ y+k+ t+a+b+e+ m+y+t+w+a+n+d+ tcn+d+
+ r+d+y+f+ y+a+ s+t+w+n+ b+a+snd+?+
+ 4.26) d+r+ t+w+a+b+e+ PL/PgSQL tcr+a+ n+m+y+t+w+a+n+ b+a+
+ a+tjm+y+n+a+n+ g+d+a+w+l+ m+w+q+t+ r+a+ a+y+g+a+d+ y+a+ hkdkf+
+ k+r+d+?+
+ 4.27) tch+ gfz+y+n+h+h+a+y+y+ b+r+a+y+ t+k+r+a+r+ (replication)
+ w+g+w+d+ d+a+r+d+?+
+ 4.28) tch+ gfz+y+n+h+h+a+y+y+ b+r+a+y+ r+m+z+n+gfa+r+y+ w+g+w+d+
+ d+a+r+d+?+
+
+ t+w+s+e+h+ PostgreSQL
+
+ 5.1) m+n+ y+k+ t+a+b+e+ n+w+snt+h+a+m+. tcgfw+n+h+ aMn+ r+a+ d+r+ psql
+ a+g+r+a+ k+n+m+?+ tcr+a+ b+a+ a+g+r+a+y+ aMn+ core dump m+y+gfy+r+m+?+
+ 5.2) tcgfw+n+h+ m+y+t+w+a+n+m+ d+r+ t+w+l+y+d+ n+w+e+h+a+ w+
+ t+w+a+b+e+ g+d+y+d+ w+ g+a+l+b+ b+r+a+y+ PostgreSQL h+m+k+a+r+y+ w+
+ m+sna+r+k+t+ d+a+snt+h+ b+a+snm+.
+ 5.3) tcgfw+n+h+ m+y+t+w+a+n+m+ y+k+ t+a+b+e+ b+h+ z+b+a+n+ C
+ b+n+w+y+s+m+ k+h+ x+r+w+g+y+ aMn+ y+k+ tuple (tcn+d+ t+a+y+y+)
+ b+a+snd+?+
+ 5.4) m+n+ y+k+ f+a+y+l+ m+n+b+e+ r+a+ e+w+dd k+r+d+h+ a+m+ tcr+a+ d+r+
+ e+m+l+y+a+t+ k+a+m+p+y+l+ m+g+d+d+ aMn+ t+i+y+y+r+ d+y+d+h+ n+m+y+
+ snw+d+?+
+ _________________________________________________________________
+
+ s+w+a+l+a+t+ e+m+w+m+y+
+
+ 1.1) PostgreSQL tcy+s+t+ w+ tcgfw+n+h+ aMn+ r+a+ b+a+y+d+ t+l+f+zH k+r+d+?+
+
+ PostgreSQL b+h+ c+w+r+t+ Post-Gres-Q-L t+l+f+zH m+y+snw+d+. y+k+
+ f+a+y+l+ c+w+t+y+ d+r+ aMd+r+s+
+ http://www.postfresql.org/postgresql.mp3 b+r+a+y+ k+s+a+n+y+ k+h+
+ m+a+y+l+n+d+ t+l+f+zH c+hky+hk r+a+ b+snn+w+n+d+ w+g+w+d+ d+a+r+d+.
+
+ PostgreSQL a+z+ r+w+y+ s+y+s+t+m+ m+d+y+r+y+t+ p+a+y+gfa+h+ d+a+d+h+
+ POSTGRES t+w+s+e+h+ d+a+d+h+ snd+h+ a+s+t+ (h+n+w+z+ h+m+ b+e+ddy+
+ m+w+a+q+e+ b+r+a+y+ s+a+d+gfy+ b+h+ aMn+ Postgres gff+t+h+ m+y+snw+d+)
+ k+h+ y+k+ n+m+w+n+h+ t+hkq+y+q+a+t+y+ a+z+ p+a+y+gfa+h+ d+a+d+h+h+a+y+
+ n+s+l+ b+e+d+ a+s+t+. PostgreSQL h+m+a+n+ a+l+gfw+y+ d+a+d+h+ q+w+y+
+ w+ a+n+w+a+e+ d+a+d+h+ r+a+ hkf+zH k+r+d+h+ a+s+t+ w+l+y+ z+b+a+n+
+ PostQuel r+a+ b+a+ y+k+ z+y+r+m+g+m+w+e+h+ p+y+snr+f+t+h+ a+z+ SQL
+ g+a+y+gfz+y+n+ k+r+d+h+ a+s+t+. PostgreSQL m+t+n+ b+a+z+ b+w+d+h+ w+
+ m+t+n+ k+a+m+l+ aMn+ d+r+ d+s+t+r+s+ a+s+t+.
+
+ PostgreSQL t+w+s+tj y+k+ t+y+m+ b+r+n+a+m+h+n+w+y+s+ k+h+ h+m+gfy+
+ d+r+ gfr+w+h+ p+s+t+ a+l+k+t+r+w+n+y+k+ b+r+n+a+m+h+n+w+y+s+a+n+
+ PostgreSQL e+ddw+ h+s+t+n+d+,+ a+n+g+a+m+ m+y+snw+d+. h+m+a+h+n+gf
+ k+n+n+d+h+ a+c+l+y+ d+r+ hka+l+ hka+ddr+ Marc G. Fournier b+h+
+ n+hkw+h+ m+l+hkq+ snd+n+ b+h+ a+y+n+ t+y+m+ q+s+m+t+ 1.6 r+a+
+ b+b+y+n+y+d+). a+y+n+ t+y+m+ d+r+ hka+ddr+ m+s+yHw+l+y+t+ t+m+a+m+
+ m+s+a+yHl+ m+r+b+w+tj b+h+ b+r+n+a+m+h+n+w+y+s+y+ PostgreSQL r+a+ b+r+
+ e+h+d+h+ d+a+r+d+. a+y+n+ y+k+ p+r+w+zjh+ gfr+w+h+y+ a+s+t+ w+ t+hkt+
+ k+n+t+r+l+ h+y+tc snr+k+t+y+ n+y+s+t+. b+r+a+y+ a+tjl+a+e+a+t+
+ b+y+snt+r+ d+r+ m+w+r+d+ a+y+n+ t+y+m+ b+h+ aMd+r+s+
+ http://www.PostgreSQL.org/docs/faqs/FAQ_DEV.html m+r+a+g+e+h+
+ k+n+y+d+.
+
+ a+w+l+y+n+ n+s+x+h+ PostgreSQL t+w+s+tj Andrew Yu and Jolly Chen b+h+
+ w+g+w+d+ aMm+d+. a+f+r+a+d+ b+s+y+a+r+y+ d+r+ t+w+s+e+h+ w+ r+f+e+
+ a+snk+a+l+ w+ a+n+t+q+a+l+ aMn+ snr+k+t+ k+r+d+h+a+n+d+. m+t+n+
+ a+c+l+y+ Postgres k+h+ PostgreSQL a+z+ r+w+y+ aMn+ n+w+snt+h+ snd+h+
+ a+s+t+,+ t+w+s+tj t+e+d+a+d+ z+y+a+d+y+ d+a+n+sng+w+y+
+ k+a+r+snn+a+s+y+ a+r+snd+w+ d+a+n+sng+w+y+ k+a+r+snn+a+s+y+ w+ t+y+m+
+ b+r+n+a+m+h+n+w+y+s+y+ k+h+ t+hkt+ n+zHr+ p+r+w+f+s+w+r+ Michael
+ Stonebrake d+r+ d+a+n+sngfa+h+ b+r+k+l+y+,+k+a+l+y+f+r+n+y+a+ k+a+r+
+ m+y+k+r+d+h+a+n+d+ n+w+snt+h+ snd+h+ a+s+t+.
+
+ n+a+m+ a+c+l+y+ n+r+m+ a+f+z+a+r+ d+r+ d+a+n+sngfa+h+ b+r+k+l+y+
+ Postgres b+w+d+. d+r+ s+a+l+ 1995 b+e+d+ a+z+ a+dda+f+h+ snd+n+ SQL
+ n+a+m+ aMn+ b+h+ Postgres95 t+i+y+y+r+ d+a+d+h+ snd+. d+r+ s+a+l+ 1996
+ n+a+m+ aMn+ b+h+ PostgreSQL t+i+y+y+r+ d+a+d+h+ snd+.
+
+ 1.2) q+w+a+n+y+n+ k+p+y+ r+a+y+t+ d+r+ m+w+r+d+ PostgreSQL b+h+ tch+
+ c+w+r+t+ a+s+t+?+
+
+ PostgreSQL t+hkt+ q+a+n+w+n+ k+p+y+ r+a+y+t+ z+y+r+ q+r+a+r+ d+a+r+d+:
+
+ PostgreSQL Data Base Management System
+
+ Portions Copyright (c) 1996-2005, PostgreSQL Global Development Group
+ Portions Copyright (c) 1994-6 Regents of the University of California
+
+ Permission to use, copy, modify, and distribute this software and its
+ documentation for any purpose, without fee, and without a written
+ agreement is hereby granted, provided that the above copyright notice
+ and this paragraph and the following two paragraphs appear in all
+ copies.
+
+ IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY
+ FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES,
+ INCLUDING LOST PROFITS, ARISING OUT OF THE USE OF THIS SOFTWARE AND
+ ITS DOCUMENTATION, EVEN IF THE UNIVERSITY OF CALIFORNIA HAS BEEN
+ ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES,
+ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE
+ PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE UNIVERSITY OF
+ CALIFORNIA HAS NO OBLIGATIONS TO PROVIDE MAINTENANCE, SUPPORT,
+ UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
+
+ q+a+n+w+n+ b+a+l+a+ l+y+s+a+n+s+ BSD k+h+ y+k+ l+y+s+a+n+s+
+ k+l+a+s+y+k+ b+r+a+y+ m+t+n+h+a+y+ b+a+z+ a+s+t+ m+y+b+a+snd+. h+y+tc
+ m+hkd+w+d+y+t+y+ d+r+ m+w+r+d+ n+hkw+h+ a+s+t+f+a+d+h+ a+z+ m+t+n+
+ d+r+ aMn+ d+y+d+h+ n+m+y+snw+d+. m+a+ aMn+ r+a+ d+w+s+t+ d+a+r+y+m+ w+
+ h+y+tc q+c+d+y+ b+r+a+y+ t+i+y+y+r+ aMn+ n+d+a+r+y+m+.
+
+ 1.3) PostgreSQL r+w+y+ tch+ n+w+e+ y+w+n+y+k+s+h+a+y+y+ a+g+r+a+ m+y+
+ snw+d+?+
+
+ d+r+ hka+l+t+ k+l+y+ PostgreSQL r+w+y+ h+r+ p+l+t+f+r+m+ (s+k+w+y+)
+ s+a+z+gfa+r+ b+a+ y+w+n+y+k+s+ a+g+r+a+ m+y+snw+d+. l+y+s+t+
+ p+l+t+f+r+m+h+a+y+y+ k+h+ t+a+k+n+w+n+ PostgreSQL r+w+y+ aMn+h+a+
+ n+c+b+ w+ t+s+t+ snd+h+ a+s+t+ d+r+q+s+m+t+ d+s+t+w+r+a+l+e+m+l+h+a+y+
+ n+c+b+ aMm+d+h+ a+s+t+.
+
+ 1.4) r+w+y+ tch+ m+hky+tjh+a+y+ i+y+r+ y+w+n+y+k+s+y+ m+y+t+w+a+n+ aMn+
+ r+a+ a+g+r+a+ k+r+d+?+
+
+ Client
+
+ m+y+t+w+a+n+ psql, k+t+a+b+x+a+n+h+ libpq w+ s+a+y+r+ w+a+s+tjh+a+ w+
+ b+r+n+a+m+h+h+a+y+ k+a+r+b+r+d+y+ r+a+ tjw+r+y+ k+a+m+p+y+l+ k+r+d+
+ k+h+ r+w+y+ m+hky+tjh+a+y+ w+y+n+d+w+z+ n+y+z+ a+g+r+a+ snw+n+d+. d+r+
+ a+y+n+ hka+l+t+ Client r+w+y+ w+y+n+d+w+z+ a+g+r+a+ m+y+snw+d+ w+ a+z+
+ tjr+b+q+ snb+k+h+ w+ p+r+w+t+k+l+ TCP/IP b+a+ y+k+ s+r+w+r+ k+h+
+ r+w+y+ y+k+ p+l+t+f+r+m+ l+y+n+w+k+s+ d+r+ hka+l+ a+g+r+a+s+t+
+ a+r+t+b+a+tj b+r+q+r+a+r+ m+y+k+n+d+.y+k+ f+a+y+l+ win32.mak
+ h+m+r+a+h+ b+a+ k+d+h+a+y+ PostgreSQL w+g+w+d+ d+a+r+d+ k+h+ b+r+a+y+
+ k+a+m+p+y+l+ k+r+d+n+ k+t+a+b+x+a+n+h+ libpq w+ b+r+n+a+m+h+ psql m+y+
+ b+a+snd+. PostgreSQL h+m+tcn+y+n+ a+m+k+a+n+ a+r+t+b+a+tj b+h+
+ c+w+r+t+ ODBC r+a+ n+y+z+ d+a+r+d+.
+
+ Server
+
+ b+a+ a+s+t+f+a+d+h+ a+z+ Cygwin w+ k+t+a+b+x+a+n+h+ Cygnus m+y+
+ t+w+a+n+ p+a+y+gfa+h+ d+a+d+h+ r+a+ r+w+y+ w+y+n+d+w+z+ NT w+ y+a+
+ Win2K a+g+r+a+ k+r+d+.b+r+a+y+ d+y+d+n+ a+tjl+a+e+a+t+ b+y+snt+r+
+ f+a+y+l+ pgsql/doc/FAQ_MSWIN r+a+ k+h+ b+h+m+r+a+h+ t+w+z+b+e+h+a+y+
+ PostgreSQL aMm+d+h+ a+s+t+ b+b+y+n+y+d+ w+ y+a+ a+y+n+k+h+ b+h+ a+y+n+
+ c+f+hkh+ http://www.PostgreSQL.org/docs/faqs/text/FAQ_MSWIN
+ m+r+a+g+e+h+ k+n+y+d+.
+
+ d+r+ hka+l+ hka+ddr+ y+k+ e+m+l+y+a+t+ a+n+t+q+a+l+ PostgreSQL b+h+
+ r+w+y+ s+k+w+h+a+y+ Win NT/2000/XP d+r+ g+r+y+a+n+ a+s+t+. b+r+a+y+
+ d+y+d+n+ w+dde+y+t+ a+y+n+ p+r+w+zjh+ b+h+ s+a+y+t+h+a+y+
+ http://momjian.postgresql.org/main/writings/pgsql/win32.htm w+
+ http://techdocs.postgresql.org/guides/Windows m+r+a+g+e+h+ k+n+y+d+.
+
+ h+m+tcn+y+n+ y+k+ e+m+l+y+a+t+ a+n+t+q+a+l+ b+r+ r+w+y+ Novell Netware
+ 6 n+y+z+ d+r+ hka+l+ a+n+g+a+m+ a+s+t+ k+h+ d+r+ s+a+y+t+
+ http://forge.novell.com m+y+t+w+a+n+y+d+ a+tjl+a+e+a+t+ b+y+snt+r+
+ r+a+ b+b+y+n+y+d+.
+
+ 1.5) PostgreSQL r+a+ a+z+ k+g+a+ m+y+t+w+a+n+m+ b+gfy+r+m+?+
+
+ PostgreSQL r+a+ a+z+ s+a+y+t+ a+c+l+y+ aMn+
+ ftp://ftp.PostgreSQL.org/pub m+y+t+w+a+n+y+d+ b+gfy+r+y+d+. d+r+
+ c+f+hkh+ a+c+l+y+ s+a+y+t+ l+y+s+t+ s+a+y+r+ aMd+r+s+h+a+y+y+ k+h+
+ m+y+t+w+a+n+y+d+ PostgreSQL r+a+ a+z+ aMn+h+a+ b+gfy+r+y+d+ aMm+d+h+
+ a+s+t+.
+
+ 1.6) a+z+ k+g+a+ x+d+m+a+t+ p+snt+y+b+a+n+y+ b+gfy+r+m+?+
+
+ a+y+n+ gfr+w+h+ b+r+a+y+ b+hktk d+r+ m+w+r+d+ m+w+ddw+e+a+t+
+ m+x+t+l+f+ d+r+ z+m+y+n+h+ PostgreSQL a+s+t+. b+r+a+y+ e+ddw+ snd+n+
+ d+r+ a+y+n+ gfr+w+h+ p+s+t+y+ y+k+ n+a+m+h+ a+l+k+t+r+w+n+y+k+y+ b+h+
+ aMd+r+s+ gfr+w+h+ b+a+ m+hkt+w+y+a+t+ی k+h+ d+r+ a+d+a+m+h+
+ aMm+d+h+ a+s+t+ a+r+s+a+l+ k+n+y+d+. d+r+ q+s+m+t+ Subject tcy+z+y+
+ n+n+w+y+s+y+d+.
+
subscribe
end
-همچنين يك گروه پستي هم به صورت ارسال چكيده پيامها وجود دارد. براي عضو شدن در اين
-گروه يك نامه با محتويات زير به این آدرس ارسال كنيد.
+
+
+ h+m+tcn+y+n+ y+k+ gfr+w+h+ p+s+t+y+ h+m+ b+h+ c+w+r+t+ a+r+s+a+l+
+ tck+y+d+h+ p+y+a+m+h+a+ w+g+w+d+ d+a+r+d+. b+r+a+y+ e+ddw+ snd+n+ d+r+
+ a+y+n+ gfr+w+h+ y+k+ n+a+m+h+ b+a+ m+hkt+w+y+a+t+ z+y+r+ b+h+
+ a+یn+ aMd+r+s+ a+r+s+a+l+ k+n+y+d+.
+
subscribe
end
-در اين گروه هر موقع حجم نامهها به 30 كيلوبايت رسيد براي تمام اعضاء ارسال
-ميشود.
-گروه پستي بررسي اِشكالات هم وجود دارد. براي عضو شدن در اين گروه يك نامه با
+
+ d+r+ a+y+n+ gfr+w+h+ h+r+ m+w+q+e+ hkg+m+ n+a+m+h+h+a+ b+h+ 30
+ k+y+l+w+b+a+y+t+ r+s+y+d+ b+r+a+y+ t+m+a+m+ a+e+dda+H' a+r+s+a+l+ m+y+
+ snw+d+.
+
+ gfr+w+h+ p+s+t+y+ b+r+r+s+y+ a+1+snk+a+l+a+t+ h+m+ w+g+w+d+ d+a+r+d+.
+ b+r+a+y+ e+ddw+ snd+n+ d+r+ a+y+n+ gfr+w+h+ y+k+ n+a+m+h+ b+a+
+ a+r+s+a+l+ k+n+y+d+.
+
subscribe
end
-گروه پستي مخصوص توسعه دهندگان (برنامهنويسان) نيز وجوددارد. براي عضويت در اين
-گروه يك نامه به آدرس زير با محتويات مشخص شده ارسال كنيد.
+
+ gfr+w+h+ p+s+t+y+ m+x+c+w+c+ t+w+s+e+h+ d+h+n+d+gfa+n+ (b+r+n+a+m+h+
+ n+w+y+s+a+n+) n+y+z+ w+g+w+d+d+a+r+d+. b+r+a+y+ e+ddw+y+t+ d+r+ a+y+n+
+ gfr+w+h+ y+k+ n+a+m+h+ b+h+ aMd+r+s+ z+y+r+ b+a+ m+hkt+w+y+a+t+
+ m+snx+c+ snd+h+ a+r+s+a+l+ k+n+y+d+.
+
subscribe
end
-گروههاي پستي ديگري نيز در زمينه PostgreSQL وجود دارد كه ميتوانيد در سايت
-http://www.postgresql.org ببينيد.
-همچنين يك كانال IRC روي Freenode و EFNet بنام PostgreSQL# وجود دارد. شما
-ميتوانيد از فرمان يونيكسي irc -c '#PostgreSQL' "$USER" irc.phoenix.net. يا irc
--c '#PostgreSQL' "$USER" irc.freenode.net استفاده كنيد.
-ليست شركتهايي كه از طريق آنها ميتوانيد خدمات پشتيباني تجاري در زمينه PostgreSQL
-دريافت كنيد در اين آدرس http://techdocs.postgresql.org/companies.php موجود است.
-1.7) آخرين نسخه اعلام شده چيست؟
-آخرين نسخه PostgreSQL كه وجود دارد 7.4.3 است.
-هدف ما آن است كه هر 6 ماه تا 8 ماه يك نسخه جديد ارائه شود.
-1.8) چه مستندات و راهنمائيهايي وجود دارند؟
-چندين كتابچه و صفحات راهنما و مثالهاي كوچك همراه با متن اصلي PostgreSQL در شاخه
-doc وجود دارد. براي ديدن صفحات راهنما ميتوانيد به سايت
-http://www.PostgreSQL.org/docs نيز مراجعه نماييد.
-دو كتاب در زمينه PostgreSQL در آدرسهاي
-http://www.PostgreSQL.org/docs/awbook.htm و http://www.commandprompt.com/ppbook
-وجود دارد. ليستي از كتابهايي كه قابل خريد است در آدرس
-http://techdocs.PostgreSQL.org/techdocs/bookreviews.php وجود دارد. همچنين ليستي
-از مقالات فني در مورد PostgreSQL در آدرس http://techdocs.PostgreSQL.org وجود
-دارد.
-برنامه psql يك دستور d\ دارد كه اطلاعاتي در مورد انواع دادههاي قابل تعريف و
-عملگرها و توابع و ... به ما نشان ميدهد. در سايت اصلي ما اطلاعات بيشتري را
-ميتوانيد پيدا كنيد.
-1.9) چگونه ميتوانم ازاشكالات شناخته شده و يا امكاناتي كه در اين پايگاه داده
-وجود ندارد مطلع شوم؟
-PostgreSQL يك زير مجموعه پيشرفته از SQL-92 را پشتيباني ميكند. در ليست TODO
-اِشكالات شناخته شده يا امكاناتي كه وجود ندارد و يا برنامههاي آينده آمده است.
-1.10) چگونه ميتوانم زبان SQL را ياد بگيرم؟
-كتاب PostgreSQL در آدرس SQL http://www.PostgreSQL.org/docs/awbook.html را آموزش
-ميدهد. همچنين يك كتاب در آدرس http://www.commandprompt.com/ppbook وجود دارد. يك
-راهنماي خيلي خوب هم در سايتهاي
-http://www.intermedia.net/support/sql/sqltut.shtm و
-http://ourworld.compuserve.com/homepages/graeme_birchall/HTM_COOK.HTM و
-http://sqlcourse.com در مورد SQL وجود دارد.
-كتاب ديگري كه ميتوان براي يادگيري SQL از آن استفاده كرد كتاب "SQL را در 21 روز
-ياد بگيريد، ويرايش دوم" در سايت http://members.tripod.com/er4ebus/sql/index.htm
-ميباشد.
-تعداد زيادي از كاربران كتاب The Practical SQL را ترجيح ميدهند. كتاب ديگر The
-Complete Refrence SQL انتشارات McGraw-Hill ميباشد.
-1.11) آيا PostgreSQL مشكل Y2K دارد يا خير؟
-خير،PostgreSQL با تاريخهاي قبل و بعد از 2000 مشكلي ندارد.
-1.12) چگونه ميتوانم به تيم برنامه نويس PostgreSQL ملحق شوم؟
-ابتدا،آخرين سورس را دونلود كرده و مستندات مربوط به برنامهنويسي PostgreSQL را
-در سايت مطالعه كنيد. سپس به گروههاي پستي pgsql-patches و pgsql-hackers عضو
-شويد. در مرحله آخر وصلههاي با كيفيت بالا را به pgsql-patches ارسال كنيد.
-تعداد زيادي از برنامهنويسان وجود دارند كه امتياز انجام تغييرات در cvs را
-دارند. هر كدام از آنها تعداد زيادي وصله با كيفيت بالا به گروه ارسال كردهاند
-كه اعتماد گردانندگان PostgreSQL را به دست آوردهاند.
-1.13) چگونه ميتوانم يك اِشكال را به گروه برنامه نويس اعلام كنم؟
-لطفاً صفحه مربوط به اِشكالات PostgreSQL را در سايت
-http://www.PostgreSQL.org/bugs/bugs.php مشاهده كنيد. در اين سايت نحوه گزارش و
-ارسال يك اشكال توضيح داده شده است.
- همچنين براي ديدن نسخههاي جديدتر PostgreSQL و يا وجود يك وصله جديد از سايت
-ftp://ftp.PostgreSQL.org/pub بازديد كنيد.
-1.14) وضعيت PostgreSQL در مقايسه با ساير DBMSها به چه صورت است؟
-راههاي مختلفي براي اندازهگيري و مقايسه نرمافزارها وجود دارد كه عبارتند از
-امكانات، كارايي، قابليت اعتماد، پشتيباني و قيمت
- امكانات
- PostgreSQL بيشتر امكانات موجود در سيستمهاي پايگاه داده تجاري بزرگ نظير
- transactions, subselets, triggers, views, foreign key referential integrity
- و sophisticated locking را دارد. در PostgreSQL امكاناتي وجود دارد كه
- پايگاههاي داده ديگر آن را ندارند نظير user-defined typesو Inheritanceو
- rulesو multi-version concurrency control
-
- كارايي
- كارايي PostgreSQL در حد بقيه سيستمهاي تجاري و متن باز است. در بعضي
- موارد سريعتر و در بعضي موارد از آنها كندتر است. در مقايسه با MySQL براي
- كاربران بيشتر و درخواستهاي پيچيده و بار زياد خواندن/نوشتن سريعتر است. در
- درخواستهاي ساده SELECT از MySQL كندتر است. البته MySQL خيلي از امكانات
- PostgreSQL كه در بالا به آن اشاره شد را ندارد. هدف اصلي ما امكانات و قابليت
- اعتماد بالاست در ضمن آنكه تلاش ميكنيم تا كارايي آن نيز بهبود يابد. در آدرس
- http://openacs.org/philosophy/why-not-mysql.html يك مقايسه جالب بين MySQL و
- PostgreSQL وجود دارد. از طرف ديگر MySQL يك شركت است كه محصول خود را به صورت
- متن باز ارائه ميكند ولي براي نرمافزار غير متن باز خود احتياج به ليسانس تجاري
- دارد بر خلاف PostgreSQL كه يك گروه كاملاً متن باز هستند.
-
- قابليت اطمينان
- ما فكر ميكنيم كه يك سيستم پايگاه دادهاي كه مطمئن نباشد ارزشي ندارد. ما
- تمام تلاشمان را براي ارائه كدهاي پايداري كه به خوبي تست شده باشند و كمترين
- اِشكالات را داشته باشند ميكنيم. هر نسخه جديدي كه ارائه ميشود حداقل يك ماه
- را در مرحله تست بتا ميگذراند. ما بر اين باور هستيم كه قابليت اطمينان
- PostgreSQL در مقايسه با ساير سيستمهاي پايگاه داده قابل توجه است و
- نسخههايي كه تاكنون ارائه شده است نشان ميدهد كه ما توانايي ارائه يك سيستم
- قوي و محكم و مطمئن را كه آماده بهرهبرداري است داريم.
- پشتيباني
- گروههاي پستي ما امكان ارتباط و تماس به گروه بزرگي از برنامه نويسان و كاربران
- را ميدهد كه ميتوانند در حل مشكلات به ديگران كمك كنند. دسترسي مستقيم به
- برنامهنويسان و گروههاي كاربران و راهنماها و كداصلي باعث ميشود كه پشتيباني
- PostgreSQL نسبت به ساير پايگاههاي داده به نحو بهتري انجام شود. همچنين امكان
- ارائه خدمات پشتيباني به صورت تجاري نيز وجود دارد. براي ديدن اطلاعات بيشتر به
- FAQ section 1.6 مراجعه كنيد.
- قيمت
- هم براي استفاده تجاري و هم غير تجاري هيچ هزينهاي نبايد پرداخت شود. هيچ
- محدوديتي براي انجام تغييرات در PostgreSQL توسط استفاده كنندگان وجود ندارد به
- جز مواردي كه در ليسانس BSD به آن اشاره شده است.
-1.15) من چگونه ميتوانم از نظر مالي به PostgreSQL كمك كنم؟
-PostgreSQL داراي يك ساختار تشكيلاتي درجه اول است كه آن را مديون Marc Fournier
-است كه اين ساختار را ايجاد كرده است.
-كيفيت يك ساختار براي يك پروژه متن باز بسيار اهميت دارد. يك ساختار خوب ميتواند
-مانع از حوادثي شود كه در حركت روبهجلوي پروژه خللي وارد ميكنند.
-البته اين ساختار تشكيلاتي ارزان نيست. هزينههاي ثابت ماهانه و روزمره براي
-نگهداري و حفظ اين ساختار مورد نياز است. اگر شما يا شركت شما مايل است كه از نظر
-مالي به اين حركت كمك كند لطفاً به سايت http://store.pgsql.com/shopping مراجعه
-كرده و كمك خود را اهدا كنيد.
-هر چند در صفحه اصلي عبارت PostgreSQL,Inc ذكر شده است ولي مشاركت عمدتاً براي
-پشتيباني از پروژه PostgreSQL مي باشد و نه براي يك شركت مشخص. اگر ترجيح ميدهيد
-ميتوانيد يك چك به آدرس مشخص شده ارسال كنيد.
-اگر يك استفاده موفق از PostgreSQL سراغ داريد لطفاً آن را به سايت
-http://advocacy.postgresql.org گزارش دهيد.
-
-
-سوالات مربوط به استفاده از پايگاه داده
-2.1) آيا هيچ درايور ODBC براي PostgreSQL وجود دارد؟
-دو درايور ODBC بنامهاي psqlODBC و OpenLink براي PostgreSQL وجود دارد.
-براي گرفتن psqlODBC به سايت
-http://gborg.postgresql.org/project/psqlodbc/projdisplay.php مراجعه كنيد.
-OpenLlink را از اين سايت http://www.openlinksw.com ميتوانيد بگيريد. اين درايور
-با نرمافزارهاي مختلف ODBC كار ميكند بنابراين شما قادر خواهيد بود با استفاده از
-OpenLink روي اكثر سكوهايي كه نرمافزارODBCدارند بدون مشكل به PostgreSQL نيز
-متصل شويد.
-اين محصول به كساني كه احتياج به خدمات پشتيباني تجاري دارند فروخته ميشود. ولي
-نسخه آزاد اين نرمافزار هميشه در درسترس ميباشد. براي كسب اطلاعات بيشتر سوالات
-2.2) چه ابزارهايي براي استفاده از PostgreSQL با صفحات وب وجود دارد؟
-در سايت http://www.webreview.com براي استفاده از PostgreSQL در صفحات وب
-راهنماييهاي خوبي وجود دارد.
-براي تركيب و استفاده در صفحات وب زبان PHP يك واسط بسيار مناسب است. اطلاعات
-بيشتر راجع به PHPدر سايت http://www.php.net وجود دارد.
-مثالهايي نيز با استفاده از Perl و CGI.pm و mod_perl وجود دارد.
-2.3) آيا PostgreSQL يك واسط كاربري گرافيكي دارد؟
-چند نرم افزار گرافيكي براي PostgreSQL وجود دارد كه شامل pgAccess درسايت
-http://www.pgaccess.org و pgAdmin III در سايت http://www.pgadmin.org و RHDB
-Admin در سايت http://sources.redhat.com/rhdb و Rekall در سايت
-http://www.thekompany.com/products/rekall ميباشد. همچنين يك phpPgAdmin هم در
-سايت http://phppgadmin.sourceforge.net وجود دارد كه يك واسط وبي براي مديريت
-PostgreSQL ميباشد.
-براي ديدن اطلاعات بيشتر راجع به نرمافزارهاي گرافيكي براي PostgreSQL به آدرس
-http://techdocs.postgresql.org/guides/GUITools مراجعه كنيد.
-2.4) با چه زبانهاي برنامهنويسي ميتوان با PostgreSQL ارتباط برقرار كرد؟
-بيشتر زبانهاي برنامهنويسي ميتوانند با PostgreSQL ارتباط برقرار كنند. به همراه
- سورس PostgreSQL تعدادي از واسطهاي مورد نياز براي ارتباط با پايگاه داده از طريق
-زبانهاي مختلف آمده است كه در زير ليست آنها را مشاهده ميكنيد.
- C (libpq)
- Embedded C (ecpg)
- Java (jdbc)
- Python (PyGreSQL)
- TCL (libpgtcl)
-واسطهاي ديگر در سايت http://gborg.postgresql.org در قسمت Drivers/Interfaces وجود
-دارد.
-
-
-
-سوالات مديريتي
-3.1) چگونه ميتوانم PostgreSQL را در شاخهاي غير از /usr/local/pgsql/ نصب كنم؟
-موقع اجراي دستور configure از گزينه prefix-- استفاده كنيد.
-3.2) چرا موقعي كه من برنامه postmaster را اجرا مي كنم پيام Bad system call و
-يا core dump ميگيرم؟
-به دلايل مختلف ممكن است اين اتفاق بيفتد. اما در قدم اول شما مطمئن شويد كه كه
-امكانات اضافه System V در كرنل شما نصب شده باشد. PostgreSQL براي اجرا شدن نياز
-به استفاده از امكانات حافظه مشترك و سمافورها دارد.
-3.3) چرا موقعي كه من سعي ميكنم برنامه postmaster را اجرا كنم خطاي
-IpcMemoryCreate ميگيرم؟
-احتمالاً قسمت ايجاد حافظه مشترك در كرنل به درستي تنظيم نشده است و يا اينكه بايد
-فضاي حافظه اشتراكي در كرنل را زياد كرد. ميزان دقيق حافظه مشترك مورد نياز بسته به
-معماري و نحوه استفاده از بافرها توسط برنامه postmaster دارد. براي بيشتر سيستمها
-كه با تنظيمات پيشفرض كار ميكنند مقدار اين حافظه حدود 1 مگابايت است. براي ديدن
-اطلاعات بيشتر راجع به حافظه مشترك و سمافور به PostgreSQL Administrator's Guide
-مراجعه كنيد.
-3.4) چرا موقعي كه من سعي ميكنم برنامه postmaster را اجرا كنم خطاي
-IpcSemaphoreCreate ميگيرم؟
-اگر پيغام خطا (pcSemaphoreCreate: semget failed (No space left on device باشد
-به اين معني است كه تعداد سمافورهاي تنظيم شده در كرنل كافي نيست. PostgreSQL براي
-هر فرايندي كه در backend اجرا ميشود به يك سمافور نياز دارد. يك راه حل موقت براي
-اين مسئله آن است كه postmaster را با اعمال محدوديت روي تعداد فرايندهايي كه
-ميتواند ايجاد كند اجرا كنيم. براي اينكار از گزينه N- و يك عدد كمتر از 32
-استفاده كنيد. راه حل دائمي اين مشكل آن است كه پارامترهاي SEMMNS, SEMMNI كرنل را
-افزايش دهيم.
-در زمان دسترسي خيلي زياد به پايگاه داده، سمافورهاي نامعتبر ميتوانند باعث
-crash كردن سيستم شوند.
-اگر پيغام خطا چيز ديگري باشد احتمالاً به دليل آن است كه كرنل از سمافورها
-پشتيباني نميكند. براي ديدن اطلاعات بيشتر راهنماي مديريتي PostgreSQL را مطالعه
-كنيد.
-3.5) چگونه ميتوانم اتصالات ساير ماشينها را كنترل كنم؟
-به صورت پيش فرض فقط از ماشيني كه PostgreSQL روي آن در حال اجراست ميتوان با
-استفاده از سوكتهاي يونيكسي به آن متصل شد. ساير ماشينها قادر نيستند به
-PostgreSQL متصل شوند مگر آنكه گزينه tcp_sockets در فايل postgresql.conf فعال شده
-و همچنين با اصلاح فايل PGDATA/ph_hba.conf هويتشناسي مبتني بر ميزبان نيز فعال
-شود. با اين كار ميتوان اتصالات TCP/IP به PostgreSQL ايجاد كرد.
-3.6) براي كارايي بالاتر و بهتر پايگاه داده من چه تنظيماتي را بايد انجام دهم؟
-به طور حتم استفاده از انديسها باعث بالا رفتن سرعت پاسخگويي به درخواستها خواهد
-شد. دستور EXPLAIN ANALYZE به شما امكان ديدن نحوه پردازش يك دستور توسط PostgreSQL
-را ميدهد.
-اگر شما تعداد زيادي INSERT داريد سعي كنيد آنها را با قرار دادن در يك فايل با
-دستور COPY اجرا كنيد. اين دستور به مراتب از INSERT سريعتر است. حتيالامكان سعي
-كنيد از تراكنشها استفاده نكنيد. تراكنشها مجموعه دستوراتي هستند كه بيند BEGIN و
-COMMIT ميآيند. اگر يك دستور به صورت عادي اجرا شود PostgreSQL خود آن دستور را
-به صورت يك تراكنش مستقل نگاه كرده و اجرا ميكند. موقعی كه تغييرات زيادي در
-پايگاه داده انجام ميشود انديسهاي قبلي را حذف و مجدداً ايجاد كنيد.
-استفاده از گزينه o -F- در فرمان postmaster باعث غير فعال كردن ()fsync ميشود.
-اين دستور بعد از هر تراكنش اطلاعات را روي هاردديسك منتقل ميكند.
-براي افزايش تعداد بافرهاي حافظه اشتراكي از گزينه B- به همراه فرمان postmaster
-استفاده كنيد. توجه كنيد كه اگر اين عدد خيلي بزرگ باشد ممكن است postmaster اصلاً
-اجرا نشود. هر بافر 8 كيلو بايت حافظه نياز دارد و تعداد بافرها به طور پيش فرض 64
-است.
-همچنين ميتوان با گزينه S- ميزان حافظهاي كه براي مرتبسازيهاي موقت توسط
-PostgreSQL استفاده ميشود را افزايش داد. مقدار پيش فرض 512 كيلو بايت است.
-استفاده از دستور CLUSTER نيز براي بالا بردن كارايي موثر ا ست. دستور راهنماي
-CLUSTER اطلاعات بيشتري در اين زمينه به شما ميدهد.
-3.7) چه امكاناتي براي پيدا كردن اشكال وجود دارد؟
-PostgerSQL امكانات مختلفي براي گزارش دادن وضعيت خود دارد كه براي اشكال زدايي
-ميتوان از آنها استفاده كرد.
-با استفاده از گزينه enable-assert-- تعداد زيادي ()assert براي مونيتور كردن و
-توقف برنامه در صورت بروز خطاهاي ناخواسته فعال ميشود.
-هم Postmaster و هم postgres گزينههاي زيادي براي اشكال زدايي دارند. موقعي كه
-postmaster را اجرا ميكنيد خروجي استاندارد و خطا را سمت فايل log ارسال كنيد.
+ gfr+w+h+h+a+y+ p+s+t+y+ d+y+gfr+y+ n+y+z+ d+r+ z+m+y+n+h+ PostgreSQL
+ w+g+w+d+ d+a+r+d+ k+h+ m+y+t+w+a+n+y+d+ d+r+ s+a+y+t+
+ http://www.postgresql.org b+b+y+n+y+d+.
+
+ h+m+tcn+y+n+ y+k+ k+a+n+a+l+ IRC r+w+y+ Freenode w+ EFNet b+n+a+m+
+ PostgreSQL# w+g+w+d+ d+a+r+d+. snm+a+ m+y+t+w+a+n+y+d+ a+z+ f+r+m+a+n+
+ y+w+n+y+k+s+y+ irc -c '#PostgreSQL' "$USER" irc.phoenix.net. y+a+ irc
+ -c '#PostgreSQL' "$USER" irc.freenode.net a+s+t+f+a+d+h+ k+n+y+d+.
+
+ l+y+s+t+ snr+k+t+h+a+y+y+ k+h+ a+z+ tjr+y+q+ aMn+h+a+ m+y+t+w+a+n+y+d+
+ x+d+m+a+t+ p+snt+y+b+a+n+y+ t+g+a+r+y+ d+r+ z+m+y+n+h+ PostgreSQL
+ d+r+y+a+f+t+ k+n+y+d+ d+r+ a+y+n+ aMd+r+s+
+ http://techdocs.postgresql.org/companies.php m+w+g+w+d+ a+s+t+.
+
+ 1.7) aMx+r+y+n+ n+s+x+h+ a+e+l+a+m+ snd+h+ tcy+s+t+?+
+
+ aMx+r+y+n+ n+s+x+h+ PostgreSQL k+h+ w+g+w+d+ d+a+r+d+ 7.4.3 a+s+t+.
+
+ h+d+f+ m+a+ aMn+ a+s+t+ k+h+ h+r+ 6 m+a+h+ t+a+ 8 m+a+h+ y+k+ n+s+x+h+
+ g+d+y+d+ a+r+a+yHh+ snw+d+.
+
+ 1.8) tch+ m+s+t+n+d+a+t+ w+ r+a+h+n+m+a+yHy+h+a+y+y+ w+g+w+d+ d+a+r+n+d+?+
+
+ tcn+d+y+n+ k+t+a+b+tch+ w+ c+f+hka+t+ r+a+h+n+m+a+ w+ m+tka+l+h+a+y+
+ k+w+tck+ h+m+r+a+h+ b+a+ m+t+n+ a+c+l+y+ PostgreSQL d+r+ sna+x+h+ doc
+ w+g+w+d+ d+a+r+d+. b+r+a+y+ d+y+d+n+ c+f+hka+t+ r+a+h+n+m+a+ m+y+
+ t+w+a+n+y+d+ b+h+ s+a+y+t+ http://www.PostgreSQL.org/docs n+y+z+
+ m+r+a+g+e+h+ n+m+a+y+y+d+.
+
+ d+w+ k+t+a+b+ d+r+ z+m+y+n+h+ PostgreSQL d+r+ aMd+r+s+h+a+y+
+ http://www.PostgreSQL.org/docs/awbook.htm w+
+ http://www.commandprompt.com/ppbook w+g+w+d+ d+a+r+d+. l+y+s+t+y+ a+z+
+ k+t+a+b+h+a+y+y+ k+h+ q+a+b+l+ x+r+y+d+ a+s+t+ d+r+ aMd+r+s+
+ http://techdocs.PostgreSQL.org/techdocs/bookreviews.php w+g+w+d+
+ d+a+r+d+. h+m+tcn+y+n+ l+y+s+t+y+ a+z+ m+q+a+l+a+t+ f+n+y+ d+r+
+ m+w+r+d+ PostgreSQL d+r+ aMd+r+s+ http://techdocs.PostgreSQL.org
+ w+g+w+d+ d+a+r+d+.
+
+ b+r+n+a+m+h+ psql y+k+ d+s+t+w+r+ d\ d+a+r+d+ k+h+ a+tjl+a+e+a+t+y+
+ d+r+ m+w+r+d+ a+n+w+a+e+ d+a+d+h+h+a+y+ q+a+b+l+ t+e+r+y+f+ w+
+ e+m+l+gfr+h+a+ w+ t+w+a+b+e+ w+ ... b+h+ m+a+ n+sna+n+ m+y+d+h+d+.
+ d+r+ s+a+y+t+ a+c+l+y+ m+a+ a+tjl+a+e+a+t+ b+y+snt+r+y+ r+a+ m+y+
+ t+w+a+n+y+d+ p+y+d+a+ k+n+y+d+.
+
+ 1.9) tcgfw+n+h+ m+y+t+w+a+n+m+ a+z+a+snk+a+l+a+t+ snn+a+x+t+h+ snd+h+ w+
+ y+a+ a+m+k+a+n+a+t+y+ k+h+ d+r+ a+y+n+ p+a+y+gfa+h+ d+a+d+h+ w+g+w+d+
+ n+d+a+r+d+ m+tjl+e+ snw+m+?+
+
+ PostgreSQL y+k+ z+y+r+ m+g+m+w+e+h+ p+y+snr+f+t+h+ a+z+ SQL-92 r+a+
+ p+snt+y+b+a+n+y+ m+y+k+n+d+. d+r+ l+y+s+t+ TODO a+1+snk+a+l+a+t+
+ snn+a+x+t+h+ snd+h+ y+a+ a+m+k+a+n+a+t+y+ k+h+ w+g+w+d+ n+d+a+r+d+ w+
+ y+a+ b+r+n+a+m+h+h+a+y+ aMy+n+d+h+ aMm+d+h+ a+s+t+.
+
+ 1.10) tcgfw+n+h+ m+y+t+w+a+n+m+ z+b+a+n+ SQL r+a+ y+a+d+ b+gfy+r+m+?+
+
+ k+t+a+b+ PostgreSQL d+r+ aMd+r+s+ SQL
+ http://www.PostgreSQL.org/docs/awbook.html r+a+ aMm+w+z+sn m+y+d+h+d+.
+ h+m+tcn+y+n+ y+k+ k+t+a+b+ d+r+ aMd+r+s+
+ http://www.commandprompt.com/ppbook w+g+w+d+ d+a+r+d+. y+k+
+ r+a+h+n+m+a+y+ x+y+l+y+ x+w+b+ h+m+ d+r+ s+a+y+t+h+a+y+
+ http://www.intermedia.net/support/sql/sqltut.shtm w+
+ http://ourworld.compuserve.com/homepages/graeme_birchall/HTM_COOK.HTM
+ w+ http://sqlcourse.com d+r+ m+w+r+d+ SQL w+g+w+d+ d+a+r+d+.
+
+ k+t+a+b+ d+y+gfr+y+ k+h+ m+y+t+w+a+n+ b+r+a+y+ y+a+d+gfy+r+y+ SQL a+z+
+ aMn+ a+s+t+f+a+d+h+ k+r+d+ k+t+a+b+ "SQL r+a+ d+r+ 21 r+w+z+ y+a+d+
+ b+gfy+r+y+d+,+ w+y+r+a+y+sn d+w+m+" d+r+ s+a+y+t+
+ http://members.tripod.com/er4ebus/sql/index.htm m+y+b+a+snd+.
+
+ t+e+d+a+d+ z+y+a+d+y+ a+z+ k+a+r+b+r+a+n+ k+t+a+b+ The Practical SQL
+ r+a+ t+r+g+y+hk m+y+d+h+n+d+. k+t+a+b+ d+y+gfr+ The Complete Refrence
+ SQL a+n+t+sna+r+a+t+ McGraw-Hill m+y+b+a+snd+.
+
+ 1.11) aMy+a+ PostgreSQL m+snk+l+ Y2K d+a+r+d+ y+a+ x+y+r+?+
+
+ x+y+r+,+PostgreSQL b+a+ t+a+r+y+x+h+a+y+ q+b+l+ w+ b+e+d+ a+z+ 2000
+ m+snk+l+y+ n+d+a+r+d+.
+
+ 1.12) tcgfw+n+h+ m+y+t+w+a+n+m+ b+h+ t+y+m+ b+r+n+a+m+h+ n+w+y+s+
+ PostgreSQL m+l+hkq+ snw+m+?+
+
+ a+b+t+d+a+,+aMx+r+y+n+ s+w+r+s+ r+a+ d+w+n+l+w+d+ k+r+d+h+ w+
+ m+s+t+n+d+a+t+ m+r+b+w+tj b+h+ b+r+n+a+m+h+n+w+y+s+y+ PostgreSQL r+a+
+ d+r+ s+a+y+t+ m+tja+l+e+h+ k+n+y+d+. s+p+s+ b+h+ gfr+w+h+h+a+y+
+ p+s+t+y+ pgsql-patches w+ pgsql-hackers e+ddw+ snw+y+d+. d+r+
+ m+r+hkl+h+ aMx+r+ w+c+l+h+h+a+y+ b+a+ k+y+f+y+t+ b+a+l+a+ r+a+ b+h+
+ pgsql-patches a+r+s+a+l+ k+n+y+d+.
+
+ t+e+d+a+d+ z+y+a+d+y+ a+z+ b+r+n+a+m+h+n+w+y+s+a+n+ w+g+w+d+
+ d+a+r+n+d+ k+h+ a+m+t+y+a+z+ a+n+g+a+m+ t+i+y+y+r+a+t+ d+r+ cvs r+a+
+ d+a+r+n+d+. h+r+ k+d+a+m+ a+z+ aMn+h+a+ t+e+d+a+d+ z+y+a+d+y+ w+c+l+h+
+ b+a+ k+y+f+y+t+ b+a+l+a+ b+h+ gfr+w+h+ a+r+s+a+l+ k+r+d+h+a+n+d+ k+h+
+ a+e+t+m+a+d+ gfr+d+a+n+n+d+gfa+n+ PostgreSQL r+a+ b+h+ d+s+t+
+ aMw+r+d+h+a+n+d+.
+
+ 1.13) tcgfw+n+h+ m+y+t+w+a+n+m+ y+k+ a+1+snk+a+l+ r+a+ b+h+ gfr+w+h+
+ b+r+n+a+m+h+ n+w+y+s+ a+e+l+a+m+ k+n+m+?+
+
+ l+tjf+a+:+ c+f+hkh+ m+r+b+w+tj b+h+ a+1+snk+a+l+a+t+ PostgreSQL r+a+
+ d+r+ s+a+y+t+ http://www.PostgreSQL.org/bugs/bugs.php m+sna+h+d+h+
+ k+n+y+d+. d+r+ a+y+n+ s+a+y+t+ n+hkw+h+ gfz+a+r+sn w+ a+r+s+a+l+ y+k+
+ a+snk+a+l+ t+w+ddy+hk d+a+d+h+ snd+h+ a+s+t+.
+
+ h+m+tcn+y+n+ b+r+a+y+ d+y+d+n+ n+s+x+h+h+a+y+ g+d+y+d+t+r+ PostgreSQL
+ w+ y+a+ w+g+w+d+ y+k+ w+c+l+h+ g+d+y+d+ a+z+ s+a+y+t+
+ ftp://ftp.PostgreSQL.org/pub b+a+z+d+y+d+ k+n+y+d+.
+
+ 1.14) w+dde+y+t+ PostgreSQL d+r+ m+q+a+y+s+h+ b+a+ s+a+y+r+ DBMSh+a+ b+h+
+ tch+ c+w+r+t+ a+s+t+?+
+
+ r+a+h+h+a+y+ m+x+t+l+f+y+ b+r+a+y+ a+n+d+a+z+h+gfy+r+y+ w+
+ m+q+a+y+s+h+ n+r+m+a+f+z+a+r+h+a+ w+g+w+d+ d+a+r+d+ k+h+
+ e+b+a+r+t+n+d+ a+z+ a+m+k+a+n+a+t+,+ k+a+r+a+y+y+,+ q+a+b+l+y+t+
+ a+e+t+m+a+d+,+ p+snt+y+b+a+n+y+ w+ q+y+m+t+
+
+ a+m+k+a+n+a+t+
+ PostgreSQL b+y+snt+r+ a+m+k+a+n+a+t+ m+w+g+w+d+ d+r+
+ s+y+s+t+m+h+a+y+ p+a+y+gfa+h+ d+a+d+h+ t+g+a+r+y+
+ b+z+r+gf n+zHy+r+ transactions, subselets, triggers,
+ views, foreign key referential integrity w+ sophisticated
+ locking r+a+ d+a+r+d+. d+r+ PostgreSQL a+m+k+a+n+a+t+y+
+ w+g+w+d+ d+a+r+d+ k+h+ p+a+y+gfa+h+h+a+y+ d+a+d+h+
+ d+y+gfr+ aMn+ r+a+ n+d+a+r+n+d+ n+zHy+r+ user-defined
+ typesw+ Inheritancew+ rulesw+ multi-version concurrency
+ control
+
+
+
+ k+a+r+a+y+y+
+
+ k+a+r+a+y+y+ PostgreSQL d+r+ hkd+ b+q+y+h+ s+y+s+t+m+
+ h+a+y+ t+g+a+r+y+ w+ m+t+n+ b+a+z+ a+s+t+. d+r+ b+e+ddy+
+ m+w+a+r+d+ s+r+y+e+t+r+ w+ d+r+ b+e+ddy+ m+w+a+r+d+ a+z+
+ aMn+h+a+ k+n+d+t+r+ a+s+t+. d+r+ m+q+a+y+s+h+ b+a+ MySQL
+ b+r+a+y+ k+a+r+b+r+a+n+ b+y+snt+r+ w+ d+r+x+w+a+s+t+h+a+y+
+ p+y+tcy+d+h+ w+ b+a+r+ z+y+a+d+ x+w+a+n+d+n+/n+w+snt+n+
+ s+r+y+e+t+r+ a+s+t+. d+r+ d+r+x+w+a+s+t+h+a+y+ s+a+d+h+ SELECT
+ a+z+ MySQL k+n+d+t+r+ a+s+t+. a+l+b+t+h+ MySQL x+y+l+y+ a+z+
+ a+m+k+a+n+a+t+ PostgreSQL k+h+ d+r+ b+a+l+a+ b+h+ aMn+
+ a+sna+r+h+ snd+ r+a+ n+d+a+r+d+. h+d+f+ a+c+l+y+ m+a+
+ a+m+k+a+n+a+t+ w+ q+a+b+l+y+t+ a+e+t+m+a+d+ b+a+l+a+s+t+ d+r+
+ ddm+n+ aMn+k+h+ t+l+a+sn m+y+k+n+y+m+ t+a+ k+a+r+a+y+y+ aMn+
+ n+y+z+ b+h+b+w+d+ y+a+b+d+. d+r+ aMd+r+s+
+ http://openacs.org/philosophy/why-not-mysql.html y+k+
+ m+q+a+y+s+h+ g+a+l+b+ b+y+n+ MySQL w+ PostgreSQL w+g+w+d+
+ d+a+r+d+. a+z+ tjr+f+ d+y+gfr+ MySQL y+k+ snr+k+t+ a+s+t+ k+h+
+ m+hkc+w+l+ x+w+d+ r+a+ b+h+ c+w+r+t+ m+t+n+ b+a+z+ a+r+a+yHh+
+ m+y+k+n+d+ w+l+y+ b+r+a+y+ n+r+m+a+f+z+a+r+ i+y+r+ m+t+n+
+ b+a+z+ x+w+d+ a+hkt+y+a+g+ b+h+ l+y+s+a+n+s+ t+g+a+r+y+
+ d+a+r+d+ b+r+ x+l+a+f+ PostgreSQL k+h+ y+k+ gfr+w+h+
+ k+a+m+l+a+:+ m+t+n+ b+a+z+ h+s+t+n+d+.
+
+
+
+ q+a+b+l+y+t+ a+tjm+y+n+a+n+
+ m+a+ f+k+r+ m+y+k+n+y+m+ k+h+ y+k+ s+y+s+t+m+
+ p+a+y+gfa+h+ d+a+d+h+a+y+ k+h+ m+tjm+yHn+ n+b+a+snd+
+ a+r+z+sny+ n+d+a+r+d+. m+a+ t+m+a+m+ t+l+a+snm+a+n+ r+a+
+ b+r+a+y+ a+r+a+yHh+ k+d+h+a+y+ p+a+y+d+a+r+y+ k+h+ b+h+
+ x+w+b+y+ t+s+t+ snd+h+ b+a+snn+d+ w+ k+m+t+r+y+n+
+ a+1+snk+a+l+a+t+ r+a+ d+a+snt+h+ b+a+snn+d+ m+y+k+n+y+m+.
+ h+r+ n+s+x+h+ g+d+y+d+y+ k+h+ a+r+a+yHh+ m+y+snw+d+
+ hkd+a+q+l+ y+k+ m+a+h+ r+a+ d+r+ m+r+hkl+h+ t+s+t+ b+t+a+
+ m+y+gfdkr+a+n+d+. m+a+ b+r+ a+y+n+ b+a+w+r+ h+s+t+y+m+
+ k+h+ q+a+b+l+y+t+ a+tjm+y+n+a+n+ PostgreSQL d+r+
+ m+q+a+y+s+h+ b+a+ s+a+y+r+ s+y+s+t+m+h+a+y+ p+a+y+gfa+h+
+ d+a+d+h+ q+a+b+l+ t+w+g+h+ a+s+t+ w+ n+s+x+h+h+a+y+y+
+ k+h+ t+a+k+n+w+n+ a+r+a+yHh+ snd+h+ a+s+t+ n+sna+n+ m+y+
+ d+h+d+ k+h+ m+a+ t+w+a+n+a+y+y+ a+r+a+yHh+ y+k+
+ s+y+s+t+m+ q+w+y+ w+ m+hkk+m+ w+ m+tjm+yHn+ r+a+ k+h+
+ aMm+a+d+h+ b+h+r+h+b+r+d+a+r+y+ a+s+t+ d+a+r+y+m+.
+
+ p+snt+y+b+a+n+y+
+ gfr+w+h+h+a+y+ p+s+t+y+ m+a+ a+m+k+a+n+ a+r+t+b+a+tj w+
+ t+m+a+s+ b+h+ gfr+w+h+ b+z+r+gfy+ a+z+ b+r+n+a+m+h+
+ n+w+y+s+a+n+ w+ k+a+r+b+r+a+n+ r+a+ m+y+d+h+d+ k+h+ m+y+
+ t+w+a+n+n+d+ d+r+ hkl+ m+snk+l+a+t+ b+h+ d+y+gfr+a+n+
+ k+m+k+ k+n+n+d+. d+s+t+r+s+y+ m+s+t+q+y+m+ b+h+
+ b+r+n+a+m+h+n+w+y+s+a+n+ w+ gfr+w+h+h+a+y+ k+a+r+b+r+a+n+
+ w+ r+a+h+n+m+a+h+a+ w+ k+d+a+c+l+y+ b+a+e+tk m+y+snw+d+
+ k+h+ p+snt+y+b+a+n+y+ PostgreSQL n+s+b+t+ b+h+ s+a+y+r+
+ p+a+y+gfa+h+h+a+y+ d+a+d+h+ b+h+ n+hkw+ b+h+t+r+y+
+ a+n+g+a+m+ snw+d+. h+m+tcn+y+n+ a+m+k+a+n+ a+r+a+yHh+
+ x+d+m+a+t+ p+snt+y+b+a+n+y+ b+h+ c+w+r+t+ t+g+a+r+y+
+ n+y+z+ w+g+w+d+ d+a+r+d+. b+r+a+y+ d+y+d+n+
+ a+tjl+a+e+a+t+ b+y+snt+r+ b+h+ FAQ section 1.6
+ m+r+a+g+e+h+ k+n+y+d+.
+
+ q+y+m+t+
+ h+m+ b+r+a+y+ a+s+t+f+a+d+h+ t+g+a+r+y+ w+ h+m+ i+y+r+
+ t+g+a+r+y+ h+y+tc h+z+y+n+h+a+y+ n+b+a+y+d+ p+r+d+a+x+t+
+ snw+d+. h+y+tc m+hkd+w+d+y+t+y+ b+r+a+y+ a+n+g+a+m+
+ t+i+y+y+r+a+t+ d+r+ PostgreSQL t+w+s+tj a+s+t+f+a+d+h+
+ k+n+n+d+gfa+n+ w+g+w+d+ n+d+a+r+d+ b+h+ g+z+ m+w+a+r+d+y+
+ k+h+ d+r+ l+y+s+a+n+s+ BSD b+h+ aMn+ a+sna+r+h+ snd+h+
+ a+s+t+.
+
+ 1.15) m+n+ tcgfw+n+h+ m+y+t+w+a+n+m+ a+z+ n+zHr+ m+a+l+y+ b+h+ PostgreSQL
+ k+m+k+ k+n+m+?+
+
+ PostgreSQL d+a+r+a+y+ y+k+ s+a+x+t+a+r+ t+snk+y+l+a+t+y+ d+r+g+h+
+ a+w+l+ a+s+t+ k+h+ aMn+ r+a+ m+d+y+w+n+ Marc Fournier a+s+t+ k+h+
+ a+y+n+ s+a+x+t+a+r+ r+a+ a+y+g+a+d+ k+r+d+h+ a+s+t+.
+
+ k+y+f+y+t+ y+k+ s+a+x+t+a+r+ b+r+a+y+ y+k+ p+r+w+zjh+ m+t+n+ b+a+z+
+ b+s+y+a+r+ a+h+m+y+t+ d+a+r+d+. y+k+ s+a+x+t+a+r+ x+w+b+ m+y+
+ t+w+a+n+d+ m+a+n+e+ a+z+ hkw+a+d+tky+ snw+d+ k+h+ d+r+ hkr+k+t+
+ r+w+b+h+g+l+w+y+ p+r+w+zjh+ x+l+l+y+ w+a+r+d+ m+y+k+n+n+d+.
+
+ a+l+b+t+h+ a+y+n+ s+a+x+t+a+r+ t+snk+y+l+a+t+y+ a+r+z+a+n+ n+y+s+t+.
+ h+z+y+n+h+h+a+y+ tka+b+t+ m+a+h+a+n+h+ w+ r+w+z+m+r+h+ b+r+a+y+
+ n+gfh+d+a+r+y+ w+ hkf+zH a+y+n+ s+a+x+t+a+r+ m+w+r+d+ n+y+a+z+ a+s+t+.
+ a+gfr+ snm+a+ y+a+ snr+k+t+ snm+a+ m+a+y+l+ a+s+t+ k+h+ a+z+ n+zHr+
+ m+a+l+y+ b+h+ a+y+n+ hkr+k+t+ k+m+k+ k+n+d+ l+tjf+a+:+ b+h+ s+a+y+t+
+ http://store.pgsql.com/shopping m+r+a+g+e+h+ k+r+d+h+ w+ k+m+k+ x+w+d+
+ r+a+ a+h+d+a+ k+n+y+d+.
+
+ h+r+ tcn+d+ d+r+ c+f+hkh+ a+c+l+y+ e+b+a+r+t+ PostgreSQL,Inc dkk+r+
+ snd+h+ a+s+t+ w+l+y+ m+sna+r+k+t+ e+m+d+t+a+:+ b+r+a+y+
+ p+snt+y+b+a+n+y+ a+z+ p+r+w+zjh+ PostgreSQL m+y+ b+a+snd+ w+ n+h+
+ b+r+a+y+ y+k+ snr+k+t+ m+snx+c+. a+gfr+ t+r+g+y+hk m+y+d+h+y+d+ m+y+
+ t+w+a+n+y+d+ y+k+ tck+ b+h+ aMd+r+s+ m+snx+c+ snd+h+ a+r+s+a+l+
+ k+n+y+d+.
+
+ a+gfr+ y+k+ a+s+t+f+a+d+h+ m+w+f+q+ a+z+ PostgreSQL s+r+a+i+
+ d+a+r+y+d+ l+tjf+a+:+ aMn+ r+a+ b+h+ s+a+y+t+
+ http://advocacy.postgresql.org gfz+a+r+sn d+h+y+d+.
+ _________________________________________________________________
+
+ s+w+a+l+a+t+ m+r+b+w+tj b+h+ a+s+t+f+a+d+h+ a+z+ p+a+y+gfa+h+ d+a+d+h+
+
+ 2.1) aMy+a+ h+y+tc d+r+a+y+w+r+ ODBC b+r+a+y+ PostgreSQL w+g+w+d+
+ d+a+r+d+?+
+
+ d+w+ d+r+a+y+w+r+ ODBC b+n+a+m+h+a+y+ psqlODBC w+ OpenLink b+r+a+y+
+ PostgreSQL w+g+w+d+ d+a+r+d+.
+
+ b+r+a+y+ gfr+f+t+n+ psqlODBC b+h+ s+a+y+t+
+ http://gborg.postgresql.org/project/psqlodbc/projdisplay.php
+ m+r+a+g+e+h+ k+n+y+d+.
+
+ OpenLlink r+a+ a+z+ a+y+n+ s+a+y+t+ http://www.openlinksw.com m+y+
+ t+w+a+n+y+d+ b+gfy+r+y+d+. a+y+n+ d+r+a+y+w+r+ b+a+ n+r+m+
+ a+f+z+a+r+h+a+y+ m+x+t+l+f+ ODBC k+a+r+ m+y+k+n+d+ b+n+a+b+r+a+y+n+
+ snm+a+ q+a+d+r+ x+w+a+h+y+d+ b+w+d+ b+a+ a+s+t+f+a+d+h+ a+z+ OpenLink
+ r+w+y+ a+k+tkr+ s+k+w+h+a+y+y+ k+h+ n+r+m+a+f+z+a+r+ODBCd+a+r+n+d+
+ b+d+w+n+ m+snk+l+ b+h+ PostgreSQL n+y+z+ m+t+c+l+ snw+y+d+.
+
+ a+y+n+ m+hkc+w+l+ b+h+ k+s+a+n+y+ k+h+ a+hkt+y+a+g+ b+h+ x+d+m+a+t+
+ p+snt+y+b+a+n+y+ t+g+a+r+y+ d+a+r+n+d+ f+r+w+x+t+h+ m+y+snw+d+. w+l+y+
+ n+s+x+h+ aMz+a+d+ a+y+n+ n+r+m+a+f+z+a+r+ h+m+y+snh+ d+r+ d+r+s+t+r+s+
+ m+y+b+a+snd+. b+r+a+y+ k+s+b+ a+tjl+a+e+a+t+ b+y+snt+r+ s+w+a+l+a+t+
+ n+m+a+y+y+d+.
+
+ 2.2) tch+ a+b+z+a+r+h+a+y+y+ b+r+a+y+ a+s+t+f+a+d+h+ a+z+ PostgreSQL b+a+
+ c+f+hka+t+ w+b+ w+g+w+d+ d+a+r+d+?+
+
+ d+r+ s+a+y+t+ http://www.webreview.com b+r+a+y+ a+s+t+f+a+d+h+ a+z+
+ PostgreSQL d+r+ c+f+hka+t+ w+b+ r+a+h+n+m+a+y+y+h+a+y+ x+w+b+y+
+ w+g+w+d+ d+a+r+d+.
+
+ b+r+a+y+ t+r+k+y+b+ w+ a+s+t+f+a+d+h+ d+r+ c+f+hka+t+ w+b+ z+b+a+n+
+ PHP y+k+ w+a+s+tj b+s+y+a+r+ m+n+a+s+b+ a+s+t+. a+tjl+a+e+a+t+
+ b+y+snt+r+ r+a+g+e+ b+h+ PHPd+r+ s+a+y+t+ http://www.php.net w+g+w+d+
+ d+a+r+d+.
+
+ m+tka+l+h+a+y+y+ n+y+z+ b+a+ a+s+t+f+a+d+h+ a+z+ Perl w+ CGI.pm w+
+ mod_perl w+g+w+d+ d+a+r+d+.
+
+ 2.3) aMy+a+ PostgreSQL y+k+ w+a+s+tj k+a+r+b+r+y+ gfr+a+f+y+k+y+ d+a+r+d+?+
+
+ tcn+d+ n+r+m+ a+f+z+a+r+ gfr+a+f+y+k+y+ b+r+a+y+ PostgreSQL w+g+w+d+
+ d+a+r+d+ k+h+ sna+m+l+ pgAccess d+r+s+a+y+t+ http://www.pgaccess.org
+ w+ pgAdmin III d+r+ s+a+y+t+ http://www.pgadmin.org w+ RHDB Admin d+r+
+ s+a+y+t+ http://sources.redhat.com/rhdb w+ Rekall d+r+ s+a+y+t+
+ http://www.thekompany.com/products/rekall m+y+b+a+snd+. h+m+tcn+y+n+
+ y+k+ phpPgAdmin h+m+ d+r+ s+a+y+t+ http://phppgadmin.sourceforge.net
+ w+g+w+d+ d+a+r+d+ k+h+ y+k+ w+a+s+tj w+b+y+ b+r+a+y+ m+d+y+r+y+t+
+ PostgreSQL m+y+b+a+snd+.
+
+ b+r+a+y+ d+y+d+n+ a+tjl+a+e+a+t+ b+y+snt+r+ r+a+g+e+ b+h+ n+r+m+
+ a+f+z+a+r+h+a+y+ gfr+a+f+y+k+y+ b+r+a+y+ PostgreSQL b+h+ aMd+r+s+
+ http://techdocs.postgresql.org/guides/GUITools m+r+a+g+e+h+ k+n+y+d+.
+
+ 2.4) b+a+ tch+ z+b+a+n+h+a+y+ b+r+n+a+m+h+n+w+y+s+y+ m+y+t+w+a+n+ b+a+
+ PostgreSQL a+r+t+b+a+tj b+r+q+r+a+r+ k+r+d+?+
+
+ b+y+snt+r+ z+b+a+n+h+a+y+ b+r+n+a+m+h+n+w+y+s+y+ m+y+t+w+a+n+n+d+ b+a+
+ PostgreSQL a+r+t+b+a+tj b+r+q+r+a+r+ k+n+n+d+. b+h+ h+m+r+a+h+
+ s+w+r+s+ PostgreSQL t+e+d+a+d+y+ a+z+ w+a+s+tjh+a+y+ m+w+r+d+ n+y+a+z+
+ b+r+a+y+ a+r+t+b+a+tj b+a+ p+a+y+gfa+h+ d+a+d+h+ a+z+ tjr+y+q+
+ z+b+a+n+h+a+y+ m+x+t+l+f+ aMm+d+h+ a+s+t+ k+h+ d+r+ z+y+r+ l+y+s+t+
+ aMn+h+a+ r+a+ m+sna+h+d+h+ m+y+k+n+y+d+.
+ * C (libpq)
+ * Embedded C (ecpg)
+ * Java (jdbc)
+ * Python (PyGreSQL)
+ * TCL (libpgtcl)
+
+ w+a+s+tjh+a+y+ d+y+gfr+ d+r+ s+a+y+t+ http://gborg.postgresql.org d+r+
+ q+s+m+t+ Drivers/Interfaces w+g+w+d+ d+a+r+d+.
+ _________________________________________________________________
+
+ s+w+a+l+a+t+ m+d+y+r+y+t+y+
+
+ 3.1) tcgfw+n+h+ m+y+t+w+a+n+m+ PostgreSQL r+a+ d+r+ sna+x+h+a+y+ i+y+r+
+ a+z+ /usr/local/pgsql/ n+c+b+ k+n+m+?+
+
+ m+w+q+e+ a+g+r+a+y+ d+s+t+w+r+ configure a+z+ gfz+y+n+h+ prefix--
+ a+s+t+f+a+d+h+ k+n+y+d+.
+
+ 3.2) tcr+a+ m+w+q+e+y+ k+h+ m+n+ b+r+n+a+m+h+ postmaster r+a+ a+g+r+a+ m+y+
+ k+n+m+ p+y+a+m+ Bad system call w+ y+a+ core dump m+y+gfy+r+m+?+
+
+ b+h+ d+l+a+y+l+ m+x+t+l+f+ m+m+k+n+ a+s+t+ a+y+n+ a+t+f+a+q+
+ b+y+f+t+d+. a+m+a+ d+r+ q+d+m+ a+w+l+ snm+a+ m+tjm+yHn+ snw+y+d+ k+h+
+ k+h+ a+m+k+a+n+a+t+ a+dda+f+h+ System V d+r+ k+r+n+l+ snm+a+ n+c+b+
+ snd+h+ b+a+snd+. PostgreSQL b+r+a+y+ a+g+r+a+ snd+n+ n+y+a+z+ b+h+
+ a+s+t+f+a+d+h+ a+z+ a+m+k+a+n+a+t+ hka+f+zHh+ m+snt+r+k+ w+
+ s+m+a+f+w+r+h+a+ d+a+r+d+.
+
+ 3.3) tcr+a+ m+w+q+e+y+ k+h+ m+n+ s+e+y+ m+y+k+n+m+ b+r+n+a+m+h+ postmaster
+ r+a+ a+g+r+a+ k+n+m+ x+tja+y+ IpcMemoryCreate m+y+gfy+r+m+?+
+
+ a+hkt+m+a+l+a+:+ q+s+m+t+ a+y+g+a+d+ hka+f+zHh+ m+snt+r+k+ d+r+
+ k+r+n+l+ b+h+ d+r+s+t+y+ t+n+zHy+m+ n+snd+h+ a+s+t+ w+ y+a+ a+y+n+k+h+
+ b+a+y+d+ f+dda+y+ hka+f+zHh+ a+snt+r+a+k+y+ d+r+ k+r+n+l+ r+a+
+ z+y+a+d+ k+r+d+. m+y+z+a+n+ d+q+y+q+ hka+f+zHh+ m+snt+r+k+ m+w+r+d+
+ n+y+a+z+ b+s+t+h+ b+h+ m+e+m+a+r+y+ w+ n+hkw+h+ a+s+t+f+a+d+h+ a+z+
+ b+a+f+r+h+a+ t+w+s+tj b+r+n+a+m+h+ postmaster d+a+r+d+. b+r+a+y+
+ b+y+snt+r+ s+y+s+t+m+h+a+ k+h+ b+a+ t+n+zHy+m+a+t+ p+y+snf+r+dd k+a+r+
+ m+y+k+n+n+d+ m+q+d+a+r+ a+y+n+ hka+f+zHh+ hkd+w+d+ 1 m+gfa+b+a+y+t+
+ a+s+t+. b+r+a+y+ d+y+d+n+ a+tjl+a+e+a+t+ b+y+snt+r+ r+a+g+e+ b+h+
+ hka+f+zHh+ m+snt+r+k+ w+ s+m+a+f+w+r+ b+h+ PostgreSQL Administrator's
+ Guide m+r+a+g+e+h+ k+n+y+d+.
+
+ 3.4) tcr+a+ m+w+q+e+y+ k+h+ m+n+ s+e+y+ m+y+k+n+m+ b+r+n+a+m+h+ postmaster
+ r+a+ a+g+r+a+ k+n+m+ x+tja+y+ IpcSemaphoreCreate m+y+gfy+r+m+?+
+
+ a+gfr+ p+y+i+a+m+ x+tja+ (pcSemaphoreCreate: semget failed (No space
+ left on device b+a+snd+ b+h+ a+y+n+ m+e+n+y+ a+s+t+ k+h+ t+e+d+a+d+
+ s+m+a+f+w+r+h+a+y+ t+n+zHy+m+ snd+h+ d+r+ k+r+n+l+ k+a+f+y+ n+y+s+t+.
+ PostgreSQL b+r+a+y+ h+r+ f+r+a+y+n+d+y+ k+h+ d+r+ backend a+g+r+a+
+ m+y+snw+d+ b+h+ y+k+ s+m+a+f+w+r+ n+y+a+z+ d+a+r+d+. y+k+ r+a+h+ hkl+
+ m+w+q+t+ b+r+a+y+ a+y+n+ m+s+yHl+h+ aMn+ a+s+t+ k+h+ postmaster r+a+
+ b+a+ a+e+m+a+l+ m+hkd+w+d+y+t+ r+w+y+ t+e+d+a+d+ f+r+a+y+n+d+h+a+y+y+
+ k+h+ m+y+t+w+a+n+d+ a+y+g+a+d+ k+n+d+ a+g+r+a+ k+n+y+m+. b+r+a+y+
+ a+y+n+k+a+r+ a+z+ gfz+y+n+h+ N- w+ y+k+ e+d+d+ k+m+t+r+ a+z+ 32
+ a+s+t+f+a+d+h+ k+n+y+d+. r+a+h+ hkl+ d+a+yHm+y+ a+y+n+ m+snk+l+ aMn+
+ a+s+t+ k+h+ p+a+r+a+m+t+r+h+a+y+ SEMMNS, SEMMNI k+r+n+l+ r+a+
+ a+f+z+a+y+sn d+h+y+m+.
+
+ d+r+ z+m+a+n+ d+s+t+r+s+y+ x+y+l+y+ z+y+a+d+ b+h+ p+a+y+gfa+h+
+ d+a+d+h+,+ s+m+a+f+w+r+h+a+y+ n+a+m+e+t+b+r+ m+y+t+w+a+n+n+d+ b+a+e+tk
+ crash k+r+d+n+ s+y+s+t+m+ snw+n+d+.
+
+ a+gfr+ p+y+i+a+m+ x+tja+ tcy+z+ d+y+gfr+y+ b+a+snd+ a+hkt+m+a+l+a+:+
+ b+h+ d+l+y+l+ aMn+ a+s+t+ k+h+ k+r+n+l+ a+z+ s+m+a+f+w+r+h+a+
+ p+snt+y+b+a+n+y+ n+m+y+k+n+d+. b+r+a+y+ d+y+d+n+ a+tjl+a+e+a+t+
+ b+y+snt+r+ r+a+h+n+m+a+y+ m+d+y+r+y+t+y+ PostgreSQL r+a+ m+tja+l+e+h+
+ k+n+y+d+.
+
+ 3.5) tcgfw+n+h+ m+y+t+w+a+n+m+ a+t+c+a+l+a+t+ s+a+y+r+ m+a+sny+n+h+a+ r+a+
+ k+n+t+r+l+ k+n+m+?+
+
+ b+h+ c+w+r+t+ p+y+sn f+r+dd f+q+tj a+z+ m+a+sny+n+y+ k+h+ PostgreSQL
+ r+w+y+ aMn+ d+r+ hka+l+ a+g+r+a+s+t+ m+y+t+w+a+n+ b+a+ a+s+t+f+a+d+h+
+ a+z+ s+w+k+t+h+a+y+ y+w+n+y+k+s+y+ b+h+ aMn+ m+t+c+l+ snd+. s+a+y+r+
+ m+a+sny+n+h+a+ q+a+d+r+ n+y+s+t+n+d+ b+h+ PostgreSQL m+t+c+l+ snw+n+d+
+ m+gfr+ aMn+k+h+ gfz+y+n+h+ tcp_sockets d+r+ f+a+y+l+ postgresql.conf
+ f+e+a+l+ snd+h+ w+ h+m+tcn+y+n+ b+a+ a+c+l+a+hk f+a+y+l+
+ PGDATA/ph_hba.conf h+w+y+t+snn+a+s+y+ m+b+t+n+y+ b+r+ m+y+z+b+a+n+
+ n+y+z+ f+e+a+l+ snw+d+. b+a+ a+y+n+ k+a+r+ m+y+t+w+a+n+ a+t+c+a+l+a+t+
+ TCP/IP b+h+ PostgreSQL a+y+g+a+d+ k+r+d+.
+
+ 3.6) b+r+a+y+ k+a+r+a+y+y+ b+a+l+a+t+r+ w+ b+h+t+r+ p+a+y+gfa+h+ d+a+d+h+
+ m+n+ tch+ t+n+zHy+m+a+t+y+ r+a+ b+a+y+d+ a+n+g+a+m+ d+h+m+?+
+
+ b+h+ tjw+r+ hkt+m+ a+s+t+f+a+d+h+ a+z+ a+n+d+y+s+h+a+ b+a+e+tk
+ b+a+l+a+ r+f+t+n+ s+r+e+t+ p+a+s+x+gfw+y+y+ b+h+ d+r+x+w+a+s+t+h+a+
+ x+w+a+h+d+ snd+. d+s+t+w+r+ EXPLAIN ANALYZE b+h+ snm+a+ a+m+k+a+n+
+ d+y+d+n+ n+hkw+h+ p+r+d+a+z+sn y+k+ d+s+t+w+r+ t+w+s+tj PostgreSQL
+ r+a+ m+y+d+h+d+.
+
+ a+gfr+ snm+a+ t+e+d+a+d+ z+y+a+d+y+ INSERT d+a+r+y+d+ s+e+y+ k+n+y+d+
+ aMn+h+a+ r+a+ b+a+ q+r+a+r+ d+a+d+n+ d+r+ y+k+ f+a+y+l+ b+a+
+ d+s+t+w+r+ COPY a+g+r+a+ k+n+y+d+. a+y+n+ d+s+t+w+r+ b+h+ m+r+a+t+b+
+ a+z+ INSERT s+r+y+e+t+r+ a+s+t+. hkt+y+a+l+a+m+k+a+n+ s+e+y+ k+n+y+d+
+ a+z+ t+r+a+k+n+snh+a+ a+s+t+f+a+d+h+ n+k+n+y+d+. t+r+a+k+n+snh+a+
+ m+g+m+w+e+h+ d+s+t+w+r+a+t+y+ h+s+t+n+d+ k+h+ b+y+n+d+ BEGIN w+ COMMIT
+ m+y+aMy+n+d+. a+gfr+ y+k+ d+s+t+w+r+ b+h+ c+w+r+t+ e+a+d+y+ a+g+r+a+
+ snw+d+ PostgreSQL x+w+d+ aMn+ d+s+t+w+r+ r+a+ b+h+ c+w+r+t+ y+k+
+ t+r+a+k+n+sn m+s+t+q+l+ n+gfa+h+ k+r+d+h+ w+ a+g+r+a+ m+y+k+n+d+.
+ m+w+q+e+ی k+h+ t+i+y+y+r+a+t+ z+y+a+d+y+ d+r+ p+a+y+gfa+h+
+ d+a+d+h+ a+n+g+a+m+ m+y+snw+d+ a+n+d+y+s+h+a+y+ q+b+l+y+ r+a+ hkdkf+
+ w+ m+g+d+d+a+:+ a+y+g+a+d+ k+n+y+d+.
+
+ a+s+t+f+a+d+h+ a+z+ gfz+y+n+h+ o -F- d+r+ f+r+m+a+n+ postmaster
+ b+a+e+tk i+y+r+ f+e+a+l+ k+r+d+n+ ()fsync m+y+snw+d+. a+y+n+
+ d+s+t+w+r+ b+e+d+ a+z+ h+r+ t+r+a+k+n+sn a+tjl+a+e+a+t+ r+a+ r+w+y+
+ h+a+r+d+d+y+s+k+ m+n+t+q+l+ m+y+k+n+d+.
+
+ b+r+a+y+ a+f+z+a+y+sn t+e+d+a+d+ b+a+f+r+h+a+y+ hka+f+zHh+
+ a+snt+r+a+k+y+ a+z+ gfz+y+n+h+ B- b+h+ h+m+r+a+h+ f+r+m+a+n+
+ postmaster a+s+t+f+a+d+h+ k+n+y+d+. t+w+g+h+ k+n+y+d+ k+h+ a+gfr+
+ a+y+n+ e+d+d+ x+y+l+y+ b+z+r+gf b+a+snd+ m+m+k+n+ a+s+t+ postmaster
+ a+c+l+a+:+ a+g+r+a+ n+snw+d+. h+r+ b+a+f+r+ 8 k+y+l+w+ b+a+y+t+
+ hka+f+zHh+ n+y+a+z+ d+a+r+d+ w+ t+e+d+a+d+ b+a+f+r+h+a+ b+h+ tjw+r+
+ p+y+sn f+r+dd 64 a+s+t+.
+
+ h+m+tcn+y+n+ m+y+t+w+a+n+ b+a+ gfz+y+n+h+ S- m+y+z+a+n+ hka+f+zHh+
+ a+y+ k+h+ b+r+a+y+ m+r+t+b+s+a+z+y+h+a+y+ m+w+q+t+ t+w+s+tj PostgreSQL
+ a+s+t+f+a+d+h+ m+y+snw+d+ r+a+ a+f+z+a+y+sn d+a+d+. m+q+d+a+r+ p+y+sn
+ f+r+dd 512 k+y+l+w+ b+a+y+t+ a+s+t+.
+
+ a+s+t+f+a+d+h+ a+z+ d+s+t+w+r+ CLUSTER n+y+z+ b+r+a+y+ b+a+l+a+
+ b+r+d+n+ k+a+r+a+y+y+ m+w+tkr+ a+ s+t+. d+s+t+w+r+ r+a+h+n+m+a+y+
+ CLUSTER a+tjl+a+e+a+t+ b+y+snt+r+y+ d+r+ a+y+n+ z+m+y+n+h+ b+h+ snm+a+
+ m+y+d+h+d+.
+
+ 3.7) tch+ a+m+k+a+n+a+t+y+ b+r+a+y+ p+y+d+a+ k+r+d+n+ a+snk+a+l+ w+g+w+d+
+ d+a+r+d+?+
+
+ PostgerSQL a+m+k+a+n+a+t+ m+x+t+l+f+y+ b+r+a+y+ gfz+a+r+sn d+a+d+n+
+ w+dde+y+t+ x+w+d+ d+a+r+d+ k+h+ b+r+a+y+ a+snk+a+l+ z+d+a+y+y+ m+y+
+ t+w+a+n+ a+z+ aMn+h+a+ a+s+t+f+a+d+h+ k+r+d+.
+
+ b+a+ a+s+t+f+a+d+h+ a+z+ gfz+y+n+h+ enable-assert-- t+e+d+a+d+
+ z+y+a+d+y+ ()assert b+r+a+y+ m+w+n+y+t+w+r+ k+r+d+n+ w+ t+w+q+f+
+ b+r+n+a+m+h+ d+r+ c+w+r+t+ b+r+w+z+ x+tja+h+a+y+ n+a+x+w+a+s+t+h+
+ f+e+a+l+ m+y+snw+d+.
+
+ h+m+ Postmaster w+ h+m+ postgres gfz+y+n+h+h+a+y+ z+y+a+d+y+ b+r+a+y+
+ a+snk+a+l+ z+d+a+y+y+ d+a+r+n+d+. m+w+q+e+y+ k+h+ postmaster r+a+
+ a+g+r+a+ m+y+k+n+y+d+ x+r+w+g+y+ a+s+t+a+n+d+a+r+d+ w+ x+tja+ r+a+
+ s+m+t+ f+a+y+l+ log a+r+s+a+l+ k+n+y+d+.
+
cd /usr/local/pgsql
./bin/postmaster >server.log 2>&1 &
-اين كار يك فايل log در بالاترين شاخه PostgreSQL ايجاد ميكند. اين فايل حاوي
-اطلاعات مفيدي در مورد مسائل و خطاهايي است كه براي سرور اتفاق افتاده است. براي
-ديدن جزئيات بيشتر ميتوان از d- به همراه فرمان postmaster استفاده كرد. گزينه
-d- همچنين يك عدد ميگيرد كه نشان دهنده سطح جزئياتي است كه در Logفايل نوشته
-ميشود. با بالابردن اين عدد حجم اطلاعات توليد شده در Logفايل نيز افزايش مييابد.
-اگر postmaster در حال اجرا نباشد، ميتوانيم postgres را به طور مستقيم از خط
-فرمان اجرا كرده و دستورات SQL را به آن بدهيم. اين كار فقط براي اشكاليابي توصيه
-ميشود. توجه كنيد كه در اين حالت يك دستور با كاراكتر newline خاتمه پيدا ميكند و
-نه با ;. اگر postmaster را با امكانات اشكاليابي كامپيل كرده باشيد ميتوانيد با
-استفاده از يك برنامه اشكالياب اجراي برنامه را مونيتور كنيد.
-اگر postmaster در حال اجرا باشد با دستور psql ميتوان به postgres متصل شد. با
-پيدا كردن PID فرايند postgres كه psql به آن متصل شده است ميتوان آن را مونيتور
-كرد. براي اينكار بايد يك برنامه اشكالياب را به آن pid متصل كرد. اگر بخواهيم
-بالا آمدن postgres را مونيتور كنيم كافي است "PGOPTIONS="-W n و psql را اجرا
-كنيم. اين كار باعث ميشود كه postgres با n ثانيه تاخير اجرا شود و در اين فاصله
-شما ميتوانيد برنامه اشكالياب را به آن متصل كرده و با قرار دادن يك نقطه توقف
-روند اجراي آن را مونيتور كنيد.
-postgres گزينههاي s- و A- و t- دارد كه براي پيدا كردن اشكالات بسيار مناسب
-هستند.
-شما ميتوانيد postgreSQL را با امكانات profiling كامپيل كنيد. اين كار باعث
-ميشود كه زمان اجراي دقيق هر تابع در برنامه مشخص شود. خروجيهاي توليد شده در اين
-حالت در فايل DLINUX_PROFILE. ريخته ميشود.
-3.8) چرا موقعي كه من ميخواهم به پايگاه داده وصل شوم پيام "Sorry, too many
-clients" ميگيرم؟
-شما بايد حداكثر تعداد فرايندهاي همزمان postmaster را افزايش دهيد. مقدار پيش فرض
-32 است. براي افزايش آن ميتوان از گزينه N- استفاده كرد و يا فايل postgresql.conf
-را اصلاح نمود
-توجه كنيد كه اگر N- مقداري بيشتر از 32 داشته باشد بايد مقدار B- را نيز افزايش
-دهيم. اين مقدار بايد حداقل دو برابر مقدار N- باشد. براي اعداد خيلي بالا بايد
-بعضي از پارامترهاي كرنل را نيز اصلاح كرد. پارامترهايي نظير حداكثر اندازه حافظه
-اشتراكي SHMMAX ، حداكثر تعداد سمافورها SEMMNI و SEMMNS ، حداكثر تعداد فرايندها
-NPROC، حداكثر فرايندهاي يك كاربر MAXUPRC و حداكثر فايلهاي باز NFILE و NINODE.
-يكي از دلايلي كه تعداد اتصالات همزمان postgreSQL محدود است آن است كه نيازهاي
-PostgreSQL بيش از منابع موجود سيستم نباشد.
-3.9) در شاخه pgsql_tmp چه چيزي قرار دارد؟
-دراين شاخه فايلهاي موقتي قرار دارد كه با اجراي درخواستها به وجود آمده است. به
-عنوان مثال اگر براي اجراي دستور order by نياز به انجام مرتب سازي باشد و در صورتي
-كه حافظه مشخص شده با گزينه S- براي اينكار كافي نباشد سيستم يك فايل موقت در اين
-شاخه ايجاد ميكند تا عمل مرتب سازي را انجام دهد.
-فايلهاي موقت معمولاً به صورت اتوماتيك پاك ميشود اما اگر postgreSQL در حين مرتب
-سازي crash كند آن فايلها باقي ميمانند. با stop و start كردن برنامه postmaster
-اين فايلها پاك ميشوند.
-3.10) چرا براي به روز كردن نسخه پايگاه داده من بايد كل داده ها را dump و مجدداً
-restore كنم؟
-تيم برنامه نويس postgreSQL در نسخههاي ارائه شده كه فقط minor آنها متفاوت است
-فقط تغييرات كوچكي اعمال ميكنند؛ بنابراين براي به روز كردن از نسخه 7.2به 7.2.1
-نيازي به dump و restore نيست. اما در نسخههايي كه major آنها تغيير ميكند غالباً
-ساختار داخلي جداول و فايلهاي داده تغيير ميكند. اين تغييرات معمولاً پيچيده
-هستند. براي انتقال دادههاي موجود در پايگاه داده در اين حالت بايد از dump و
-restore استفاده كرد.
-در نسخههايي كه ساختار روي ديسك تغييري نميكند مي توان از برنامه pg_upgrade براي
-به روز كردن پايگاه داده استفاده كرد بدون اينكه نيازي به استفاده از dump و
-restore باشد. در يادداشتي كه به همراه هر توزيع ميآيد ذكر شده است كه آيا برنامه
-pg_upgrade براي اين توزيع وجود دارد يا خير.
-3.11) از چه سخت افزاري بايد استفاده كنم؟
-
-چون اكثر سختافزارهاي PC سازگار هستند مردم فكر ميكنند كه كيفيت آنها نيز يكسان
-است. در حاليكه اينطور نيست. استفاده از هاردهاي SCSI و حافظههاي ECC و مادربردهاي
-با كيفيت بالا نسبت به سخت افزارهاي ارزانتر نتايج بهتري از نظر كارايي و پايداري
-سيستم بهمراه خواهد داشت. PostgreSQL روي بيشتر سخت افزارها اجرا ميشود اما اگر
-كارايي و اطمينان فاكتورهاي مهمي هستند بايد سخت افزار مناسب استفاده شود. در
-گروههاي پستي در مورد سخت افزار مناسب و انتخاب آن بحث شده است.
-
-
-سوالات عملياتي
-4.1) تفاوت بين binary cursors و Normal cursors چيست؟
-راهنماي دستور DECLARE را مطالعه كنيد.
-4.2) من چگونه ميتوانم فقط روي چند رديف اول يا يك رديف تصادفي درخواست SELECT
-بزنم؟
-راهنماي دستور FETCH يا SELECT...LIMIT را ببينيد.
-در واقع كل درخواست بايد بررسي و ارزيابي شود حتي اگر شما فقط چند رديف اول را
-بخواهيد. براي مثال درخواست ORDER BY را در نظر بگيريد. اگر انديس يا نمايهاي براي
-ORDER BY وجود داشته باشد،postgreSQL ممكن است بتواند فقط چند سطر اول درخواستي
-را ارزيابي كند و يا اينكه كل درخواست پردازش شود تا تعداد رديفهاي درخواستي توليد
-شود.
-براي انتخاب يك سطر تصادفي به روش زير عمل ميكنيم:
+ a+y+n+ k+a+r+ y+k+ f+a+y+l+ log d+r+ b+a+l+a+t+r+y+n+ sna+x+h+
+ PostgreSQL a+y+g+a+d+ m+y+k+n+d+. a+y+n+ f+a+y+l+ hka+w+y+
+ a+tjl+a+e+a+t+ m+f+y+d+y+ d+r+ m+w+r+d+ m+s+a+yHl+ w+ x+tja+h+a+y+y+
+ a+s+t+ k+h+ b+r+a+y+ s+r+w+r+ a+t+f+a+q+ a+f+t+a+d+h+ a+s+t+. b+r+a+y+
+ d+y+d+n+ g+z+yHy+a+t+ b+y+snt+r+ m+y+t+w+a+n+ a+z+ d- b+h+ h+m+r+a+h+
+ f+r+m+a+n+ postmaster a+s+t+f+a+d+h+ k+r+d+. gfz+y+n+h+ d-
+ h+m+tcn+y+n+ y+k+ e+d+d+ m+y+gfy+r+d+ k+h+ n+sna+n+ d+h+n+d+h+ s+tjhk
+ g+z+yHy+a+t+y+ a+s+t+ k+h+ d+r+ Logf+a+y+l+ n+w+snt+h+ m+y+snw+d+.
+ b+a+ b+a+l+a+b+r+d+n+ a+y+n+ e+d+d+ hkg+m+ a+tjl+a+e+a+t+ t+w+l+y+d+
+ snd+h+ d+r+ Logf+a+y+l+ n+y+z+ a+f+z+a+y+sn m+y+y+a+b+d+.
+
+ a+gfr+ postmaster d+r+ hka+l+ a+g+r+a+ n+b+a+snd+,+ m+y+t+w+a+n+y+m+
+ postgres r+a+ b+h+ tjw+r+ m+s+t+q+y+m+ a+z+ x+tj f+r+m+a+n+ a+g+r+a+
+ k+r+d+h+ w+ d+s+t+w+r+a+t+ SQL r+a+ b+h+ aMn+ b+d+h+y+m+. a+y+n+
+ k+a+r+ f+q+tj b+r+a+y+ a+snk+a+l+y+a+b+y+ t+w+c+y+h+ m+y+snw+d+.
+ t+w+g+h+ k+n+y+d+ k+h+ d+r+ a+y+n+ hka+l+t+ y+k+ d+s+t+w+r+ b+a+
+ k+a+r+a+k+t+r+ newline x+a+t+m+h+ p+y+d+a+ m+y+k+n+d+ w+ n+h+ b+a+ ;.
+ a+gfr+ postmaster r+a+ b+a+ a+m+k+a+n+a+t+ a+snk+a+l+y+a+b+y+
+ k+a+m+p+y+l+ k+r+d+h+ b+a+sny+d+ m+y+t+w+a+n+y+d+ b+a+ a+s+t+f+a+d+h+
+ a+z+ y+k+ b+r+n+a+m+h+ a+snk+a+l+y+a+b+ a+g+r+a+y+ b+r+n+a+m+h+ r+a+
+ m+w+n+y+t+w+r+ k+n+y+d+.
+
+ a+gfr+ postmaster d+r+ hka+l+ a+g+r+a+ b+a+snd+ b+a+ d+s+t+w+r+ psql
+ m+y+t+w+a+n+ b+h+ postgres m+t+c+l+ snd+. b+a+ p+y+d+a+ k+r+d+n+ PID
+ f+r+a+y+n+d+ postgres k+h+ psql b+h+ aMn+ m+t+c+l+ snd+h+ a+s+t+ m+y+
+ t+w+a+n+ aMn+ r+a+ m+w+n+y+t+w+r+ k+r+d+. b+r+a+y+ a+y+n+k+a+r+
+ b+a+y+d+ y+k+ b+r+n+a+m+h+ a+snk+a+l+y+a+b+ r+a+ b+h+ aMn+ pid
+ m+t+c+l+ k+r+d+. a+gfr+ b+x+w+a+h+y+m+ b+a+l+a+ aMm+d+n+ postgres r+a+
+ m+w+n+y+t+w+r+ k+n+y+m+ k+a+f+y+ a+s+t+ "PGOPTIONS="-W n w+ psql r+a+
+ a+g+r+a+ k+n+y+m+. a+y+n+ k+a+r+ b+a+e+tk m+y+snw+d+ k+h+ postgres
+ b+a+ n tka+n+y+h+ t+a+x+y+r+ a+g+r+a+ snw+d+ w+ d+r+ a+y+n+ f+a+c+l+h+
+ snm+a+ m+y+t+w+a+n+y+d+ b+r+n+a+m+h+ a+snk+a+l+y+a+b+ r+a+ b+h+ aMn+
+ m+t+c+l+ k+r+d+h+ w+ b+a+ q+r+a+r+ d+a+d+n+ y+k+ n+q+tjh+ t+w+q+f+
+ r+w+n+d+ a+g+r+a+y+ aMn+ r+a+ m+w+n+y+t+w+r+ k+n+y+d+.
+
+ postgres gfz+y+n+h+h+a+y+ s- w+ A- w+ t- d+a+r+d+ k+h+ b+r+a+y+
+ p+y+d+a+ k+r+d+n+ a+snk+a+l+a+t+ b+s+y+a+r+ m+n+a+s+b+ h+s+t+n+d+.
+
+ snm+a+ m+y+t+w+a+n+y+d+ postgreSQL r+a+ b+a+ a+m+k+a+n+a+t+ profiling
+ k+a+m+p+y+l+ k+n+y+d+. a+y+n+ k+a+r+ b+a+e+tk m+y+snw+d+ k+h+ z+m+a+n+
+ a+g+r+a+y+ d+q+y+q+ h+r+ t+a+b+e+ d+r+ b+r+n+a+m+h+ m+snx+c+ snw+d+.
+ x+r+w+g+y+h+a+y+ t+w+l+y+d+ snd+h+ d+r+ a+y+n+ hka+l+t+ d+r+ f+a+y+l+
+ DLINUX_PROFILE. r+y+x+t+h+ m+y+snw+d+.
+
+ 3.8) tcr+a+ m+w+q+e+y+ k+h+ m+n+ m+y+x+w+a+h+m+ b+h+ p+a+y+gfa+h+ d+a+d+h+
+ w+c+l+ snw+m+ p+y+a+m+ "Sorry, too many clients" m+y+gfy+r+m+?+
+
+ snm+a+ b+a+y+d+ hkd+a+k+tkr+ t+e+d+a+d+ f+r+a+y+n+d+h+a+y+
+ h+m+z+m+a+n+ postmaster r+a+ a+f+z+a+y+sn d+h+y+d+. m+q+d+a+r+ p+y+sn
+ f+r+dd 32 a+s+t+. b+r+a+y+ a+f+z+a+y+sn aMn+ m+y+t+w+a+n+ a+z+
+ gfz+y+n+h+ N- a+s+t+f+a+d+h+ k+r+d+ w+ y+a+ f+a+y+l+ postgresql.conf
+ r+a+ a+c+l+a+hk n+m+w+d+
+
+ t+w+g+h+ k+n+y+d+ k+h+ a+gfr+ N- m+q+d+a+r+y+ b+y+snt+r+ a+z+ 32
+ d+a+snt+h+ b+a+snd+ b+a+y+d+ m+q+d+a+r+ B- r+a+ n+y+z+ a+f+z+a+y+sn
+ d+h+y+m+. a+y+n+ m+q+d+a+r+ b+a+y+d+ hkd+a+q+l+ d+w+ b+r+a+b+r+
+ m+q+d+a+r+ N- b+a+snd+. b+r+a+y+ a+e+d+a+d+ x+y+l+y+ b+a+l+a+ b+a+y+d+
+ b+e+ddy+ a+z+ p+a+r+a+m+t+r+h+a+y+ k+r+n+l+ r+a+ n+y+z+ a+c+l+a+hk
+ k+r+d+. p+a+r+a+m+t+r+h+a+y+y+ n+zHy+r+ hkd+a+k+tkr+ a+n+d+a+z+h+
+ hka+f+zHh+ a+snt+r+a+k+y+ SHMMAX ,+ hkd+a+k+tkr+ t+e+d+a+d+
+ s+m+a+f+w+r+h+a+ SEMMNI w+ SEMMNS ,+ hkd+a+k+tkr+ t+e+d+a+d+
+ f+r+a+y+n+d+h+a+ NPROC,+ hkd+a+k+tkr+ f+r+a+y+n+d+h+a+y+ y+k+
+ k+a+r+b+r+ MAXUPRC w+ hkd+a+k+tkr+ f+a+y+l+h+a+y+ b+a+z+ NFILE w+
+ NINODE. y+k+y+ a+z+ d+l+a+y+l+y+ k+h+ t+e+d+a+d+ a+t+c+a+l+a+t+
+ h+m+z+m+a+n+ postgreSQL m+hkd+w+d+ a+s+t+ aMn+ a+s+t+ k+h+
+ n+y+a+z+h+a+y+ PostgreSQL b+y+sn a+z+ m+n+a+b+e+ m+w+g+w+d+ s+y+s+t+m+
+ n+b+a+snd+.
+
+ 3.9) d+r+ sna+x+h+ pgsql_tmp tch+ tcy+z+y+ q+r+a+r+ d+a+r+d+?+
+
+ d+r+a+y+n+ sna+x+h+ f+a+y+l+h+a+y+ m+w+q+t+y+ q+r+a+r+ d+a+r+d+ k+h+
+ b+a+ a+g+r+a+y+ d+r+x+w+a+s+t+h+a+ b+h+ w+g+w+d+ aMm+d+h+ a+s+t+. b+h+
+ e+n+w+a+n+ m+tka+l+ a+gfr+ b+r+a+y+ a+g+r+a+y+ d+s+t+w+r+ order by
+ n+y+a+z+ b+h+ a+n+g+a+m+ m+r+t+b+ s+a+z+y+ b+a+snd+ w+ d+r+ c+w+r+t+y+
+ k+h+ hka+f+zHh+ m+snx+c+ snd+h+ b+a+ gfz+y+n+h+ S- b+r+a+y+
+ a+y+n+k+a+r+ k+a+f+y+ n+b+a+snd+ s+y+s+t+m+ y+k+ f+a+y+l+ m+w+q+t+
+ d+r+ a+y+n+ sna+x+h+ a+y+g+a+d+ m+y+k+n+d+ t+a+ e+m+l+ m+r+t+b+
+ s+a+z+y+ r+a+ a+n+g+a+m+ d+h+d+.
+
+ f+a+y+l+h+a+y+ m+w+q+t+ m+e+m+w+l+a+:+ b+h+ c+w+r+t+ a+t+w+m+a+t+y+k+
+ p+a+k+ m+y+snw+d+ a+m+a+ a+gfr+ postgreSQL d+r+ hky+n+ m+r+t+b+
+ s+a+z+y+ crash k+n+d+ aMn+ f+a+y+l+h+a+ b+a+q+y+ m+y+m+a+n+n+d+. b+a+
+ stop w+ start k+r+d+n+ b+r+n+a+m+h+ postmaster a+y+n+ f+a+y+l+h+a+
+ p+a+k+ m+y+snw+n+d+.
+
+ 3.10) tcr+a+ b+r+a+y+ b+h+ r+w+z+ k+r+d+n+ n+s+x+h+ p+a+y+gfa+h+ d+a+d+h+
+ m+n+ b+a+y+d+ k+l+ d+a+d+h+ h+a+ r+a+ dump w+ m+g+d+d+a+:+ restore k+n+m+?+
+
+ t+y+m+ b+r+n+a+m+h+ n+w+y+s+ postgreSQL d+r+ n+s+x+h+h+a+y+ a+r+a+yHh+
+ snd+h+ k+h+ f+q+tj minor aMn+h+a+ m+t+f+a+w+t+ a+s+t+ f+q+tj
+ t+i+y+y+r+a+t+ k+w+tck+y+ a+e+m+a+l+ m+y+k+n+n+d+;+ b+n+a+b+r+a+y+n+
+ b+r+a+y+ b+h+ r+w+z+ k+r+d+n+ a+z+ n+s+x+h+ 7.2b+h+ 7.2.1 n+y+a+z+y+
+ b+h+ dump w+ restore n+y+s+t+. a+m+a+ d+r+ n+s+x+h+h+a+y+y+ k+h+ major
+ aMn+h+a+ t+i+y+y+r+ m+y+k+n+d+ i+a+l+b+a+:+ s+a+x+t+a+r+ d+a+x+l+y+
+ g+d+a+w+l+ w+ f+a+y+l+h+a+y+ d+a+d+h+ t+i+y+y+r+ m+y+k+n+d+. a+y+n+
+ t+i+y+y+r+a+t+ m+e+m+w+l+a+:+ p+y+tcy+d+h+ h+s+t+n+d+. b+r+a+y+
+ a+n+t+q+a+l+ d+a+d+h+h+a+y+ m+w+g+w+d+ d+r+ p+a+y+gfa+h+ d+a+d+h+ d+r+
+ a+y+n+ hka+l+t+ b+a+y+d+ a+z+ dump w+ restore a+s+t+f+a+d+h+ k+r+d+.
+
+ d+r+ n+s+x+h+h+a+y+y+ k+h+ s+a+x+t+a+r+ r+w+y+ d+y+s+k+ t+i+y+y+r+y+
+ n+m+y+k+n+d+ m+y+ t+w+a+n+ a+z+ b+r+n+a+m+h+ pg_upgrade b+r+a+y+ b+h+
+ r+w+z+ k+r+d+n+ p+a+y+gfa+h+ d+a+d+h+ a+s+t+f+a+d+h+ k+r+d+ b+d+w+n+
+ a+y+n+k+h+ n+y+a+z+y+ b+h+ a+s+t+f+a+d+h+ a+z+ dump w+ restore
+ b+a+snd+. d+r+ y+a+d+d+a+snt+y+ k+h+ b+h+ h+m+r+a+h+ h+r+ t+w+z+y+e+
+ m+y+aMy+d+ dkk+r+ snd+h+ a+s+t+ k+h+ aMy+a+ b+r+n+a+m+h+ pg_upgrade
+ b+r+a+y+ a+y+n+ t+w+z+y+e+ w+g+w+d+ d+a+r+d+ y+a+ x+y+r+.
+
+ 3.11) a+z+ tch+ s+x+t+ a+f+z+a+r+y+ b+a+y+d+ a+s+t+f+a+d+h+ k+n+m+?+
+
+ tcw+n+ a+k+tkr+ s+x+t+a+f+z+a+r+h+a+y+ PC s+a+z+gfa+r+ h+s+t+n+d+
+ m+r+d+m+ f+k+r+ m+y+k+n+n+d+ k+h+ k+y+f+y+t+ aMn+h+a+ n+y+z+
+ y+k+s+a+n+ a+s+t+. d+r+ hka+l+y+k+h+ a+y+n+tjw+r+ n+y+s+t+.
+ a+s+t+f+a+d+h+ a+z+ h+a+r+d+h+a+y+ SCSI w+ hka+f+zHh+h+a+y+ ECC w+
+ m+a+d+r+b+r+d+h+a+y+ b+a+ k+y+f+y+t+ b+a+l+a+ n+s+b+t+ b+h+ s+x+t+
+ a+f+z+a+r+h+a+y+ a+r+z+a+n+t+r+ n+t+a+y+g+ b+h+t+r+y+ a+z+ n+zHr+
+ k+a+r+a+y+y+ w+ p+a+y+d+a+r+y+ s+y+s+t+m+ b+h+m+r+a+h+ x+w+a+h+d+
+ d+a+snt+. PostgreSQL r+w+y+ b+y+snt+r+ s+x+t+ a+f+z+a+r+h+a+ a+g+r+a+
+ m+y+snw+d+ a+m+a+ a+gfr+ k+a+r+a+y+y+ w+ a+tjm+y+n+a+n+
+ f+a+k+t+w+r+h+a+y+ m+h+m+y+ h+s+t+n+d+ b+a+y+d+ s+x+t+ a+f+z+a+r+
+ m+n+a+s+b+ a+s+t+f+a+d+h+ snw+d+. d+r+ gfr+w+h+h+a+y+ p+s+t+y+ d+r+
+ m+w+r+d+ s+x+t+ a+f+z+a+r+ m+n+a+s+b+ w+ a+n+t+x+a+b+ aMn+ b+hktk
+ snd+h+ a+s+t+.
+ _________________________________________________________________
+
+ s+w+a+l+a+t+ e+m+l+y+a+t+y+
+
+ 4.1) t+f+a+w+t+ b+y+n+ binary cursors w+ Normal cursors tcy+s+t+?+
+
+ r+a+h+n+m+a+y+ d+s+t+w+r+ DECLARE r+a+ m+tja+l+e+h+ k+n+y+d+.
+
+ 4.2) m+n+ tcgfw+n+h+ m+y+t+w+a+n+m+ f+q+tj r+w+y+ tcn+d+ r+d+y+f+ a+w+l+
+ y+a+ y+k+ r+d+y+f+ t+c+a+d+f+y+ d+r+x+w+a+s+t+ SELECT b+z+n+m+?+
+
+ r+a+h+n+m+a+y+ d+s+t+w+r+ FETCH y+a+ SELECT...LIMIT r+a+
+ b+b+y+n+y+d+.
+
+ d+r+ w+a+q+e+ k+l+ d+r+x+w+a+s+t+ b+a+y+d+ b+r+r+s+y+ w+
+ a+r+z+y+a+b+y+ snw+d+ hkt+y+ a+gfr+ snm+a+ f+q+tj tcn+d+ r+d+y+f+
+ a+w+l+ r+a+ b+x+w+a+h+y+d+. b+r+a+y+ m+tka+l+ d+r+x+w+a+s+t+ ORDER BY
+ r+a+ d+r+ n+zHr+ b+gfy+r+y+d+. a+gfr+ a+n+d+y+s+ y+a+ n+m+a+y+h+a+y+
+ b+r+a+y+ ORDER BY w+g+w+d+ d+a+snt+h+ b+a+snd+,+postgreSQL m+m+k+n+
+ a+s+t+ b+t+w+a+n+d+ f+q+tj tcn+d+ s+tjr+ a+w+l+ d+r+x+w+a+s+t+y+ r+a+
+ a+r+z+y+a+b+y+ k+n+d+ w+ y+a+ a+y+n+k+h+ k+l+ d+r+x+w+a+s+t+
+ p+r+d+a+z+sn snw+d+ t+a+ t+e+d+a+d+ r+d+y+f+h+a+y+ d+r+x+w+a+s+t+y+
+ t+w+l+y+d+ snw+d+.
+
+ b+r+a+y+ a+n+t+x+a+b+ y+k+ s+tjr+ t+c+a+d+f+y+ b+h+ r+w+sn z+y+r+
+ e+m+l+ m+y+k+n+y+m+:
+
SELECT col
FROM tab
ORDER BY random()
LIMIT 1;
-4.3) من چگونه ميتوانم ليستي از جداول يا ساير چيزهايي كه در psql وجود دارد را
-ببينم؟
-براي ديدن ليست جداول دستور dt\ را در برنامه psql استفاده كنيد. براي ديدن ليست
-كامل فرمانها ?\ را اجرا كنيد. راه ديگر خواندن متن برنامه psql است كه در شاخه
-pgsql/src/bin/psql/describe.c قرار دارد. اين فايل حاوي فرامين SQLيي است كه
-خروجي را براي دستوراتي كه با \در psql شروع ميشوند توليد ميكنند. راه ديگر
-اجراي psql با گزينه E-است. اينكار باعث ميشود كه psql قبل از اجرا هر دستور
-SQLمتناظر آن را نشان دهد. PostgreSQLهمچنين يك برنامه SQLi دارد كه ميتوان با
-استفاده از آن اطلاعات داخلي پايگاه داده را استخراج كرد.
-4.4) چگونه يك ستون جدول را حذف ميكنيد؟ چگونه نوع داده آن را عوض كنيم؟
-حذف يك ستون در توزيع 7.3 با استفاده از دستور ALTER TABLE DROP COLUMN اضافه شده
-است. در نسخههاي قبلي به روش زير عمل كنيد:
+
+ 4.3) m+n+ tcgfw+n+h+ m+y+t+w+a+n+m+ l+y+s+t+y+ a+z+ g+d+a+w+l+ y+a+
+ s+a+y+r+ tcy+z+h+a+y+y+ k+h+ d+r+ psql w+g+w+d+ d+a+r+d+ r+a+ b+b+y+n+m+?+
+
+ b+r+a+y+ d+y+d+n+ l+y+s+t+ g+d+a+w+l+ d+s+t+w+r+ dt\ r+a+ d+r+
+ b+r+n+a+m+h+ psql a+s+t+f+a+d+h+ k+n+y+d+. b+r+a+y+ d+y+d+n+ l+y+s+t+
+ k+a+m+l+ f+r+m+a+n+h+a+ ?\ r+a+ a+g+r+a+ k+n+y+d+. r+a+h+ d+y+gfr+
+ x+w+a+n+d+n+ m+t+n+ b+r+n+a+m+h+ psql a+s+t+ k+h+ d+r+ sna+x+h+
+ pgsql/src/bin/psql/describe.c q+r+a+r+ d+a+r+d+. a+y+n+ f+a+y+l+
+ hka+w+y+ f+r+a+m+y+n+ SQLy+y+ a+s+t+ k+h+ x+r+w+g+y+ r+a+ b+r+a+y+
+ d+s+t+w+r+a+t+y+ k+h+ b+a+ \d+r+ psql snr+w+e+ m+y+snw+n+d+ t+w+l+y+d+
+ m+y+k+n+n+d+. r+a+h+ d+y+gfr+ a+g+r+a+y+ psql b+a+ gfz+y+n+h+ E-
+ a+s+t+. a+y+n+k+a+r+ b+a+e+tk m+y+snw+d+ k+h+ psql q+b+l+ a+z+
+ a+g+r+a+ h+r+ d+s+t+w+r+ SQLm+t+n+a+zHr+ aMn+ r+a+ n+sna+n+ d+h+d+.
+ PostgreSQLh+m+tcn+y+n+ y+k+ b+r+n+a+m+h+ SQLi d+a+r+d+ k+h+ m+y+
+ t+w+a+n+ b+a+ a+s+t+f+a+d+h+ a+z+ aMn+ a+tjl+a+e+a+t+ d+a+x+l+y+
+ p+a+y+gfa+h+ d+a+d+h+ r+a+ a+s+t+x+r+a+g+ k+r+d+.
+
+ 4.4) tcgfw+n+h+ y+k+ s+t+w+n+ g+d+w+l+ r+a+ hkdkf+ m+y+k+n+y+d+?+
+ tcgfw+n+h+ n+w+e+ d+a+d+h+ aMn+ r+a+ e+w+dd k+n+y+m+?+
+
+ hkdkf+ y+k+ s+t+w+n+ d+r+ t+w+z+y+e+ 7.3 b+a+ a+s+t+f+a+d+h+ a+z+
+ d+s+t+w+r+ ALTER TABLE DROP COLUMN a+dda+f+h+ snd+h+ a+s+t+. d+r+
+ n+s+x+h+h+a+y+ q+b+l+y+ b+h+ r+w+sn z+y+r+ e+m+l+ k+n+y+d+:
+
BEGIN;
LOCK TABLE old_table;
- SELECT ... -- تمام ستونها غير از ستوني كه ميخواهيد آن را حذف كنيد را در اينجا بياوريد
+ SELECT ... -- t+m+a+m+ s+t+w+n+h+a+ i+y+r+ a+z+ s+t+w+n+y+ k+h+ m+y+x+w+a+h+y+d+ aMn+ r+a+ hkdkf+ k+n+y+d+ r+a+ d+r+ a+y+n+g+a+ b+y+a+w+r+y+d+
INTO TABLE new_table
FROM old_table;
DROP TABLE old_table;
ALTER TABLE new_table RENAME TO old_table;
COMMIT;
-براي عوض كردن نوع داده يك ستون به روش زير عمل كنيد:
+
+ b+r+a+y+ e+w+dd k+r+d+n+ n+w+e+ d+a+d+h+ y+k+ s+t+w+n+ b+h+ r+w+sn
+ z+y+r+ e+m+l+ k+n+y+d+:
+
BEGIN;
ALTER TABLE tab ADD COLUMN new_col new_data_type;
UPDATE tab SET new_col = CAST(old_col AS new_data_type);
ALTER TABLE tab DROP COLUMN old_col;
COMMIT;
-4.5) حداكثر اندازه يك رديف، جدول و خود پايگاه داده چقدر است؟
-محدوديتها عبارتند از:
- حداكثر اندازه پايگاه داده نامحدود (تا 32 ترابايت وجود دارد)
- حداكثر اندازه يك جدول 32 ترابايت
- حداكثر ا ندازه يك رديف 1.6 ترابايت
- حداكثر اندازه يك فيلد 1 گيگا بايت
- حداكثر اندازه رديفهاي يك جدول نا محدود
- حداكثر ستونهاي يك جدول بسته به نوع جدول بين 250 تا 6000
- حداكثر انديسهاي يك جدول نا محدود
-البته در حالت نامحدود نيز ما محدود به حجم هاردديسك و فضاي حافظه خواهيم بود. در
-صورتي که مقادير مشخص شده به عنوان نامحدود به صورت غير معمولي بزرك شوند كارايي
-سيستم كاهش خواهد يافت.
-براي ذخيره كردن جداول با اندازه خيلي بزرگ نيازي نيست كه سيستم عامل امكان ايجاد
-فايلهاي بزرگ را داشته باشد. بلكه جداول خيلي بزرگ به صورت فايلهايي به حجم يك گيگا
-بايت نگاهداري ميشوند.
-اگر اندازه بلوكهاي داده را برابر 32 كيلو بايت قرار دهيم حداكثر اندازه جدول و
-حداكثر تعداد ستونها 4 برابر خواهد شد.
-4.6) چقدر فضاي ديسك سخت براي ذخيره كردن دادههاي يك فايل متني مورد نياز است؟
-يك پايگاه داده PostgreSQL تا 5 برابر فضايي روي هاردديسك براي نگاهداري يك فايل
-متني نياز دارد.
-به عنوان مثال يك فايل با 100000 خط را در نظر بگيريد كه در هر خط يك عدد صحيح و يك
-توضيح متني آمده است. فرض كنيد كه رشته متني به طور متوسط 20 بايت باشد. اندازه
-فايل برابر 2.8 مگا بايت خواهد بود ولي PostgreSQL براي نگاهداري اين فايل به 6.4
-مگا بايت اطلاعات نياز خواهد داشت.
- 32 bytes: اندازه سرايند هر خط به طور تقريبي
- 24 bytes: يك عدد صحيح و يك رشته 24 بايتي
- + 4 bytes: اشاره گر روي صفحه به يك چندتايي
+
+ 4.5) hkd+a+k+tkr+ a+n+d+a+z+h+ y+k+ r+d+y+f+,+ g+d+w+l+ w+ x+w+d+
+ p+a+y+gfa+h+ d+a+d+h+ tcq+d+r+ a+s+t+?+
+
+ m+hkd+w+d+y+t+h+a+ e+b+a+r+t+n+d+ a+z+:
+
+ hkd+a+k+tkr+ a+n+d+a+z+h+ p+a+y+gfa+h+ d+a+d+h+ n+a+m+hkd+w+d+(t+a+ 32 t+r+a+b+a+y+t+ w+g+w+d+ d+a+r+d+)
+ hkd+a+k+tkr+ a+n+d+a+z+h+ y+k+ g+d+w+l+ 32 t+r+a+b+a+y+t+
+ hkd+a+k+tkr+ a+ n+d+a+z+h+ y+k+ r+d+y+f+ 1.6 t+r+a+b+a+y+t+
+ hkd+a+k+tkr+ a+n+d+a+z+h+ y+k+ f+y+l+d+ 1 gfy+gfa+ b+a+y+t+
+ hkd+a+k+tkr+ a+n+d+a+z+h+ r+d+y+f+h+a+y+ y+k+ g+d+w+l+ n+a+ m+hkd+w+d+
+ hkd+a+k+tkr+ s+t+w+n+h+a+y+ y+k+ g+d+w+l+ b+s+t+h+ b+h+ n+w+e+ g+d+w+l+ b+y+n+ 250 t+a+ 6000
+ hkd+a+k+tkr+ a+n+d+y+s+h+a+y+ y+k+ g+d+w+l+ n+a+ m+hkd+w+d+
+
+ a+l+b+t+h+ d+r+ hka+l+t+ n+a+m+hkd+w+d+ n+y+z+ m+a+ m+hkd+w+d+ b+h+
+ hkg+m+ h+a+r+d+d+y+s+k+ w+ f+dda+y+ hka+f+zHh+ x+w+a+h+y+m+ b+w+d+.
+ d+r+ c+w+r+t+y+ کh+ m+q+a+d+y+r+ m+snx+c+ snd+h+ b+h+ e+n+w+a+n+
+ n+a+m+hkd+w+d+ b+h+ c+w+r+t+ i+y+r+ m+e+m+w+l+y+ b+z+r+k+ snw+n+d+
+ k+a+r+a+y+y+ s+y+s+t+m+ k+a+h+sn x+w+a+h+d+ y+a+f+t+.
+
+ b+r+a+y+ dkx+y+r+h+ k+r+d+n+ g+d+a+w+l+ b+a+ a+n+d+a+z+h+ x+y+l+y+
+ b+z+r+gf n+y+a+z+y+ n+y+s+t+ k+h+ s+y+s+t+m+ e+a+m+l+ a+m+k+a+n+
+ a+y+g+a+d+ f+a+y+l+h+a+y+ b+z+r+gf r+a+ d+a+snt+h+ b+a+snd+. b+l+k+h+
+ g+d+a+w+l+ x+y+l+y+ b+z+r+gf b+h+ c+w+r+t+ f+a+y+l+h+a+y+y+ b+h+
+ hkg+m+ y+k+ gfy+gfa+ b+a+y+t+ n+gfa+h+d+a+r+y+ m+y+snw+n+d+.
+
+ a+gfr+ a+n+d+a+z+h+ b+l+w+k+h+a+y+ d+a+d+h+ r+a+ b+r+a+b+r+ 32
+ k+y+l+w+ b+a+y+t+ q+r+a+r+ d+h+y+m+ hkd+a+k+tkr+ a+n+d+a+z+h+ g+d+w+l+
+ w+ hkd+a+k+tkr+ t+e+d+a+d+ s+t+w+n+h+a+ 4 b+r+a+b+r+ x+w+a+h+d+ snd+.
+
+ 4.6) tcq+d+r+ f+dda+y+ d+y+s+k+ s+x+t+ b+r+a+y+ dkx+y+r+h+ k+r+d+n+
+ d+a+d+h+h+a+y+ y+k+ f+a+y+l+ m+t+n+y+ m+w+r+d+ n+y+a+z+ a+s+t+?+
+
+ y+k+ p+a+y+gfa+h+ d+a+d+h+ PostgreSQL t+a+ 5 b+r+a+b+r+ f+dda+y+y+
+ r+w+y+ h+a+r+d+d+y+s+k+ b+r+a+y+ n+gfa+h+d+a+r+y+ y+k+ f+a+y+l+
+ m+t+n+y+ n+y+a+z+ d+a+r+d+.
+
+ b+h+ e+n+w+a+n+ m+tka+l+ y+k+ f+a+y+l+ b+a+ 100000 x+tj r+a+ d+r+
+ n+zHr+ b+gfy+r+y+d+ k+h+ d+r+ h+r+ x+tj y+k+ e+d+d+ c+hky+hk w+ y+k+
+ t+w+ddy+hk m+t+n+y+ aMm+d+h+ a+s+t+. f+r+dd k+n+y+d+ k+h+ r+snt+h+
+ m+t+n+y+ b+h+ tjw+r+ m+t+w+s+tj 20 b+a+y+t+ b+a+snd+. a+n+d+a+z+h+
+ f+a+y+l+ b+r+a+b+r+ 2.8 m+gfa+ b+a+y+t+ x+w+a+h+d+ b+w+d+ w+l+y+
+ PostgreSQL b+r+a+y+ n+gfa+h+d+a+r+y+ a+y+n+ f+a+y+l+ b+h+ 6.4 m+gfa+
+ b+a+y+t+ a+tjl+a+e+a+t+ n+y+a+z+ x+w+a+h+d+ d+a+snt+.
+
+ 32 bytes: a+n+d+a+z+h+ s+r+a+y+n+d+ h+r+ x+tj b+h+ tjw+r+ t+q+r+y+b+y+
+ 24 bytes: y+k+ e+d+d+ c+hky+hk w+ y+k+ r+snt+h+ 24 b+a+y+t+y+
+ + 4 bytes: a+sna+r+h+ gfr+ r+w+y+ c+f+hkh+ b+h+ y+k+ tcn+d+t+a+y+y+
----------------------------------------
- 60 bytes در هر رديف
+ 60 bytes d+r+ h+r+ r+d+y+f+
-اندازه صفحات داده در PostgreSQL برابر با 8 كيلو بايت است
- 8192 تعداد بايتها در هر صفحه
- ------------------- = 136 تعداد رديفها در يك صفحه پايگاه داده
- 60 تعداد بايتهاي هر رديف
+a+n+d+a+z+h+ c+f+hka+t+ d+a+d+h+ d+r+ PostgreSQL b+r+a+b+r+ b+a+ 8 k+y+l+w+ b+a+y+t+ a+s+t+
+ 8192 t+e+d+a+d+ b+a+y+t+h+a+ d+r+ h+r+ c+f+hkh+
+ ------------------- = 136 t+e+d+a+d+ r+d+y+f+h+a+ d+r+ y+k+ c+f+hkh+ p+a+y+gfa+h+ d+a+d+h+
+ 60 t+e+d+a+d+ b+a+y+t+h+a+y+ h+r+ r+d+y+f+
- 100000 تعداد رديفها
- -------------------- = تعدادصفحات پايگاه داده
- 128 تعداد رديفها در هر صفحه
+ 100000 t+e+d+a+d+ r+d+y+f+h+a+
+ -------------------- = t+e+d+a+d+c+f+hka+t+ p+a+y+gfa+h+ d+a+d+h+
+ 128 t+e+d+a+d+ r+d+y+f+h+a+ d+r+ h+r+ c+f+hkh+
-735 تعداد صفحات * 8192 تعداد بايتهاي هر صفحه = 6,021,120 مگا بايت
-سربار انديسها يا نمايهها از اين مقدار كمتر است ولي چون شامل خود دادهها هم هست
-ممکن است اندازه آنها هم بزرگ شود.
-NULLها به صورت bitmap ذخيره ميشوند و از اينرو فضاي بسيار كمي را اشغال ميكنند.
-4.7) چگونه ميتوانم بفهمم كه چه كاربران، پايگاه داده، نمايه و جداولي در سيستم
-تعريف شده است؟
-psql تعداد زيادي دستور دارد كه با \ شروع ميشوند و اين اطلاعات را در اختيار ما
-قرار ميدهند. براي ديدن آنها دستور ?\ را اجرا كنيد. همچنين جداول سيستمي كه نام
-آنها با pg_ شروع ميشود نيز اين اطلاعات را در خود دارند. اجراي برنامه psql با
-گزينه l- نيز باعث نشان دادن ليست تمام پايگاههاي داده ميشود.
-همچنين فايل pgsql/src/tutorial/syscat.source نيز فرمانهاي SELECT كه با استفاده
-از آن ميتوان اطلاعات پايگاه داده را استخراج كرد شرح داده است.
-4.8) چرا درخواستهاي من كند اجرا ميشوند يا چرا از نمايه ها استفاده نميكنند؟
-به طور معمول براي درخواستها از نمايهها استفاده نميشود. تنها در صورتي از
-نمايهها استفاده ميشود كه اندازه جدول از يك اندازه حداقل بزرگتر باشد و درخواست
-هم فقط قسمتي از رديفهاي جدول را انتخاب كرده باشد. دليل اين كار آن است كه
-دسترسيهاي تصادفي به هاردديسك كه به خاطر نمايهها ايجاد ميشود ممكن است از
-خواندن مستقيم جدول يا خواندن ترتيبي ركوردها كندتر باشد.
-براي تعيين اينكه از نمايه استفاده شود يا خير، PostgreSQL بايد اطلاعات آماري را
-در مورد يك جدول بداند. اين اطلاعات توسط دستور ANALYZE و VACUUM ANALYZE به دست
-ميآيد. با استفاده از اين اطلاعات، بهينه ساز از تعداد رديفهاي يك جدول اطلاع
-پيدا ميكند و بهتر ميتواند تعيين كند كه آيا از نمايه استفاده شود يا خير.
-اطلاعات آماري همچنين براي تعيين ترتيب الحاق و روشهاي الحاق به صورت بهينه نيز
-كاربرد دارد. جمع آوري اطلاعات آماري بايد به صورت دورهاي همزمان با تغيير
-دادههاي جدول انجام شود.
-نمايهها به طور معمول همراه با دستور ORDER BY به كار برده نميشوند. براي يك جدول
-بزرگ يك پيمايش ترتيبي همراه با دستور مرتب سازي از به كار بردن نمايهها سريعتر
-خواهد بود.
-اما اگر همراه با ORDER BY از LIMIT استفاده شود اغلب از نمايهها استفاده ميشود
-چون فقط قسمتي از جدول برگردانده ميشود. در حقيقت هر چند توابع ()MIN و ()MAX از
-نمايهها استفاده نميكنند ولي ميتوانيم با استفاده از دستور زير با استفاده از
-نمايهها و دستور ORDER BY و LIMIT ، آنها را به دست آوريم.
+735 t+e+d+a+d+ c+f+hka+t+ * 8192 t+e+d+a+d+ b+a+y+t+h+a+y+ h+r+ c+f+hkh+ = 6,021,120 m+gfa+ b+a+y+t+
+
+ s+r+b+a+r+ a+n+d+y+s+h+a+ y+a+ n+m+a+y+h+h+a+ a+z+ a+y+n+ m+q+d+a+r+
+ k+m+t+r+ a+s+t+ w+l+y+ tcw+n+ sna+m+l+ x+w+d+ d+a+d+h+h+a+ h+m+ h+s+t+
+ m+m+کn+ a+s+t+ a+n+d+a+z+h+ aMn+h+a+ h+m+ b+z+r+gf snw+d+.
+
+ NULLh+a+ b+h+ c+w+r+t+ bitmap dkx+y+r+h+ m+y+snw+n+d+ w+ a+z+
+ a+y+n+r+w+ f+dda+y+ b+s+y+a+r+ k+m+y+ r+a+ a+sni+a+l+ m+y+k+n+n+d+.
+
+ 4.7) tcgfw+n+h+ m+y+t+w+a+n+m+ b+f+h+m+m+ k+h+ tch+ k+a+r+b+r+a+n+,+
+ p+a+y+gfa+h+ d+a+d+h+,+ n+m+a+y+h+ w+ g+d+a+w+l+y+ d+r+ s+y+s+t+m+
+ t+e+r+y+f+ snd+h+ a+s+t+?+
+
+ psql t+e+d+a+d+ z+y+a+d+y+ d+s+t+w+r+ d+a+r+d+ k+h+ b+a+ \ snr+w+e+
+ m+y+snw+n+d+ w+ a+y+n+ a+tjl+a+e+a+t+ r+a+ d+r+ a+x+t+y+a+r+ m+a+
+ q+r+a+r+ m+y+d+h+n+d+. b+r+a+y+ d+y+d+n+ aMn+h+a+ d+s+t+w+r+ ?\ r+a+
+ a+g+r+a+ k+n+y+d+. h+m+tcn+y+n+ g+d+a+w+l+ s+y+s+t+m+y+ k+h+ n+a+m+
+ aMn+h+a+ b+a+ pg_ snr+w+e+ m+y+snw+d+ n+y+z+ a+y+n+ a+tjl+a+e+a+t+
+ r+a+ d+r+ x+w+d+ d+a+r+n+d+. a+g+r+a+y+ b+r+n+a+m+h+ psql b+a+
+ gfz+y+n+h+ l- n+y+z+ b+a+e+tk n+sna+n+ d+a+d+n+ l+y+s+t+ t+m+a+m+
+ p+a+y+gfa+h+h+a+y+ d+a+d+h+ m+y+snw+d+.
+
+ h+m+tcn+y+n+ f+a+y+l+ pgsql/src/tutorial/syscat.source n+y+z+
+ f+r+m+a+n+h+a+y+ SELECT k+h+ b+a+ a+s+t+f+a+d+h+ a+z+ aMn+ m+y+
+ t+w+a+n+ a+tjl+a+e+a+t+ p+a+y+gfa+h+ d+a+d+h+ r+a+ a+s+t+x+r+a+g+
+ k+r+d+ snr+hk d+a+d+h+ a+s+t+.
+
+ 4.8) tcr+a+ d+r+x+w+a+s+t+h+a+y+ m+n+ k+n+d+ a+g+r+a+ m+y+snw+n+d+ y+a+
+ tcr+a+ a+z+ n+m+a+y+h+ h+a+ a+s+t+f+a+d+h+ n+m+y+k+n+n+d+?+
+
+ b+h+ tjw+r+ m+e+m+w+l+ b+r+a+y+ d+r+x+w+a+s+t+h+a+ a+z+ n+m+a+y+h+h+a+
+ a+s+t+f+a+d+h+ n+m+y+snw+d+. t+n+h+a+ d+r+ c+w+r+t+y+ a+z+ n+m+a+y+h+
+ h+a+ a+s+t+f+a+d+h+ m+y+snw+d+ k+h+ a+n+d+a+z+h+ g+d+w+l+ a+z+ y+k+
+ a+n+d+a+z+h+ hkd+a+q+l+ b+z+r+gft+r+ b+a+snd+ w+ d+r+x+w+a+s+t+ h+m+
+ f+q+tj q+s+m+t+y+ a+z+ r+d+y+f+h+a+y+ g+d+w+l+ r+a+ a+n+t+x+a+b+
+ k+r+d+h+ b+a+snd+. d+l+y+l+ a+y+n+ k+a+r+ aMn+ a+s+t+ k+h+
+ d+s+t+r+s+y+h+a+y+ t+c+a+d+f+y+ b+h+ h+a+r+d+d+y+s+k+ k+h+ b+h+
+ x+a+tjr+ n+m+a+y+h+h+a+ a+y+g+a+d+ m+y+snw+d+ m+m+k+n+ a+s+t+ a+z+
+ x+w+a+n+d+n+ m+s+t+q+y+m+ g+d+w+l+ y+a+ x+w+a+n+d+n+ t+r+t+y+b+y+
+ r+k+w+r+d+h+a+ k+n+d+t+r+ b+a+snd+.
+
+ b+r+a+y+ t+e+y+y+n+ a+y+n+k+h+ a+z+ n+m+a+y+h+ a+s+t+f+a+d+h+ snw+d+
+ y+a+ x+y+r+,+ PostgreSQL b+a+y+d+ a+tjl+a+e+a+t+ aMm+a+r+y+ r+a+ d+r+
+ m+w+r+d+ y+k+ g+d+w+l+ b+d+a+n+d+. a+y+n+ a+tjl+a+e+a+t+ t+w+s+tj
+ d+s+t+w+r+ ANALYZE w+ VACUUM ANALYZE b+h+ d+s+t+ m+y+aMy+d+. b+a+
+ a+s+t+f+a+d+h+ a+z+ a+y+n+ a+tjl+a+e+a+t+,+ b+h+y+n+h+ s+a+z+ a+z+
+ t+e+d+a+d+ r+d+y+f+h+a+y+ y+k+ g+d+w+l+ a+tjl+a+e+ p+y+d+a+ m+y+k+n+d+
+ w+ b+h+t+r+ m+y+t+w+a+n+d+ t+e+y+y+n+ k+n+d+ k+h+ aMy+a+ a+z+
+ n+m+a+y+h+ a+s+t+f+a+d+h+ snw+d+ y+a+ x+y+r+. a+tjl+a+e+a+t+
+ aMm+a+r+y+ h+m+tcn+y+n+ b+r+a+y+ t+e+y+y+n+ t+r+t+y+b+ a+l+hka+q+ w+
+ r+w+snh+a+y+ a+l+hka+q+ b+h+ c+w+r+t+ b+h+y+n+h+ n+y+z+ k+a+r+b+r+d+
+ d+a+r+d+. g+m+e+ aMw+r+y+ a+tjl+a+e+a+t+ aMm+a+r+y+ b+a+y+d+ b+h+
+ c+w+r+t+ d+w+r+h+a+y+ h+m+z+m+a+n+ b+a+ t+i+y+y+r+ d+a+d+h+h+a+y+
+ g+d+w+l+ a+n+g+a+m+ snw+d+.
+
+ n+m+a+y+h+h+a+ b+h+ tjw+r+ m+e+m+w+l+ h+m+r+a+h+ b+a+ d+s+t+w+r+ ORDER
+ BY b+h+ k+a+r+ b+r+d+h+ n+m+y+snw+n+d+. b+r+a+y+ y+k+ g+d+w+l+
+ b+z+r+gf y+k+ p+y+m+a+y+sn t+r+t+y+b+y+ h+m+r+a+h+ b+a+ d+s+t+w+r+
+ m+r+t+b+ s+a+z+y+ a+z+ b+h+ k+a+r+ b+r+d+n+ n+m+a+y+h+h+a+
+ s+r+y+e+t+r+ x+w+a+h+d+ b+w+d+.
+
+ a+m+a+ a+gfr+ h+m+r+a+h+ b+a+ ORDER BY a+z+ LIMIT a+s+t+f+a+d+h+
+ snw+d+ a+i+l+b+ a+z+ n+m+a+y+h+h+a+ a+s+t+f+a+d+h+ m+y+snw+d+ tcw+n+
+ f+q+tj q+s+m+t+y+ a+z+ g+d+w+l+ b+r+gfr+d+a+n+d+h+ m+y+snw+d+. d+r+
+ hkq+y+q+t+ h+r+ tcn+d+ t+w+a+b+e+ ()MIN w+ ()MAX a+z+ n+m+a+y+h+h+a+
+ a+s+t+f+a+d+h+ n+m+y+k+n+n+d+ w+l+y+ m+y+t+w+a+n+y+m+ b+a+
+ a+s+t+f+a+d+h+ a+z+ d+s+t+w+r+ z+y+r+ b+a+ a+s+t+f+a+d+h+ a+z+
+ n+m+a+y+h+h+a+ w+ d+s+t+w+r+ ORDER BY w+ LIMIT ,+ aMn+h+a+ r+a+ b+h+
+ d+s+t+ aMw+r+y+m+.
+
SELECT col
FROM tab
ORDER BY col [ DESC ]
LIMIT 1;
-اگر شما فكر ميكنيد كه بهينه ساز سيستم در انتخاب پيمايش ترتيبي اشتباه كرده است
-با دستور 'SET enable_seqscan TO 'off' ميتوانيد ببينيد آيا استفاده از نمايهها
-باعث افزايش سرعت درخواستها خواهد شد يا خير.
-استفاده از نمايهها هنگامي كه از علائم ويژه نظير LIKE و ~ استفاده ميكنيد فقط در
-بعضي شرايط خاص كه در اينجا ذكر شده است ممكن است:
- ابتداي رشته جستجو بايد به طور صريح مشخص باشد براي مثال:
-- دستورات LIKE نبايد با علامت % شروع شوند
-- الگوهاي منظمي كه با ~ ميآيد حتماً بايد با علامت ^ شروع شود
- رشته جستجو نبايد با يك مجموعه از كاراكترها مثل [a-e] شروع شود
- جستجوهاي غيرحساس به متن مثل ILIKE و *~ از نمايهها استفاده نميكنند. در عوض
- از توابع نمايهاي كه در قسمت 4.12 توضيح داده شد استفاده ميكنند.
- مقدار پيش فرض locale بايد در initdb استفاده شود.
-4.9) چگونه ميتوانم نحوه بررسي درخواست را توسط بهينهساز درخواستها مشاهده كنم؟
-راهنماي دستور EXPLAIN را نگاه كنيد.
-4.10) نمايه R-tree چيست؟
-از نمايه R-Tree براي انديس كردن دادههاي فاصلهاي استفاده ميشود. يك نمايه hash
-نميتواند جستجوهاي محدودهاي را انجام دهد. نمايه "B-tree" نيز براي انجام جستجوي
-محدودهاي در يك جهت قابل استفاده است. اما R-Tree ميتواند دادههاي چند بعدي را
-نيز پشتيباني كند. براي مثال اگر از نمايه R-tree براي گونه Point استفاده شود
-سرعت درخواستهايي نظير "select all points within a bounding rectangle" به مراتب
-افزايش مييابد.
-مقالهاي كه طراحي R-tree را توضيح داده است
-Guttman, A. "R-trees: A Dynamic Index Structure for Spatial Searching."
-Proceedings of the 1984 ACM SIGMOD Int'l Conf on Mgmt of Data, 45-57.
-R-tree ميتواند چندضلعيها و چند وجهي را پشتيباني كند. در تئوري، R-tree ميتواند
-تعداد بعدهاي بالاتري را نيز پشتيباني كند. در عمل توسعه R-tree نياز به كار
-بيشتري دارد.
-4.11) بهينه ساز تكويني درخواست چيست؟ (Genetic Query Optimizer)
-استفاده از GEQO سرعت بهينه سازي درخواست را هنگاميكه تعداد زيادي جدول را با
-استفاده از الگوريتم ژنتيك الحاق ميكنيم افزايش ميدهد.
-4.12) چگونه از عبارات منظم براي جستجو استفاده كنم؟ چگونه جستجويي انجام دهم كه
-حساس به متن نباشد؟ چگونه براي يك جستجوي غير حساس به متن از نمايه استفاده كنم؟
-براي جستجوي عبارت منظم از عملگر ~ استفاده ميكنيم. براي جستجوي غير حساس به متن
-از عملگر *~ و يا ILIKE استفاده ميكنيم.
-روش ديگر انجام جستجوي غير حساس به متن در زير نشان داده شده است.
+
+ a+gfr+ snm+a+ f+k+r+ m+y+k+n+y+d+ k+h+ b+h+y+n+h+ s+a+z+ s+y+s+t+m+
+ d+r+ a+n+t+x+a+b+ p+y+m+a+y+sn t+r+t+y+b+y+ a+snt+b+a+h+ k+r+d+h+
+ a+s+t+ b+a+ d+s+t+w+r+ 'SET enable_seqscan TO 'off' m+y+t+w+a+n+y+d+
+ b+b+y+n+y+d+ aMy+a+ a+s+t+f+a+d+h+ a+z+ n+m+a+y+h+h+a+ b+a+e+tk
+ a+f+z+a+y+sn s+r+e+t+ d+r+x+w+a+s+t+h+a+ x+w+a+h+d+ snd+ y+a+ x+y+r+.
+
+ a+s+t+f+a+d+h+ a+z+ n+m+a+y+h+h+a+ h+n+gfa+m+y+ k+h+ a+z+ e+l+a+yHm+
+ w+y+zjh+ n+zHy+r+ LIKE w+ ~ a+s+t+f+a+d+h+ m+y+k+n+y+d+ f+q+tj d+r+
+ b+e+ddy+ snr+a+y+tj x+a+c+ k+h+ d+r+ a+y+n+g+a+ dkk+r+ snd+h+ a+s+t+
+ m+m+k+n+ a+s+t+:
+ * a+b+t+d+a+y+ r+snt+h+ g+s+t+g+w+ b+a+y+d+ b+h+ tjw+r+ c+r+y+hk
+ m+snx+c+ b+a+snd+ b+r+a+y+ m+tka+l+:
+
+ - d+s+t+w+r+a+t+ LIKE n+b+a+y+d+ b+a+ e+l+a+m+t+ % snr+w+e+ snw+n+d+
+
+ - a+l+gfw+h+a+y+ m+n+zHm+y+ k+h+ b+a+ ~ m+y+aMy+d+ hkt+m+a+:+ b+a+y+d+
+ b+a+ e+l+a+m+t+ ^ snr+w+e+ snw+d+
+ * r+snt+h+ g+s+t+g+w+ n+b+a+y+d+ b+a+ y+k+ m+g+m+w+e+h+ a+z+
+ k+a+r+a+k+t+r+h+a+ m+tkl+ [a-e] snr+w+e+ snw+d+
+ * g+s+t+g+w+h+a+y+ i+y+r+hks+a+s+ b+h+ m+t+n+ m+tkl+ ILIKE w+ *~
+ a+z+ n+m+a+y+h+h+a+ a+s+t+f+a+d+h+ n+m+y+k+n+n+d+. d+r+ e+w+dd
+ a+z+ t+w+a+b+e+ n+m+a+y+h+a+y+ k+h+ d+r+ q+s+m+t+ 4.12 t+w+ddy+hk
+ d+a+d+h+ snd+ a+s+t+f+a+d+h+ m+y+k+n+n+d+.
+ * m+q+d+a+r+ p+y+sn f+r+dd locale b+a+y+d+ d+r+ initdb
+ a+s+t+f+a+d+h+ snw+d+.
+
+ 4.9) tcgfw+n+h+ m+y+t+w+a+n+m+ n+hkw+h+ b+r+r+s+y+ d+r+x+w+a+s+t+ r+a+
+ t+w+s+tj b+h+y+n+h+s+a+z+ d+r+x+w+a+s+t+h+a+ m+sna+h+d+h+ k+n+m+?+
+
+ r+a+h+n+m+a+y+ d+s+t+w+r+ EXPLAIN r+a+ n+gfa+h+ k+n+y+d+.
+
+ 4.10) n+m+a+y+h+ R-tree tcy+s+t+?+
+
+ a+z+ n+m+a+y+h+ R-Tree b+r+a+y+ a+n+d+y+s+ k+r+d+n+ d+a+d+h+h+a+y+
+ f+a+c+l+h+a+y+ a+s+t+f+a+d+h+ m+y+snw+d+. y+k+ n+m+a+y+h+ hash n+m+y+
+ t+w+a+n+d+ g+s+t+g+w+h+a+y+ m+hkd+w+d+h+a+y+ r+a+ a+n+g+a+m+ d+h+d+.
+ n+m+a+y+h+ "B-tree" n+y+z+ b+r+a+y+ a+n+g+a+m+ g+s+t+g+w+y+
+ m+hkd+w+d+h+a+y+ d+r+ y+k+ g+h+t+ q+a+b+l+ a+s+t+f+a+d+h+ a+s+t+.
+ a+m+a+ R-Tree m+y+t+w+a+n+d+ d+a+d+h+h+a+y+ tcn+d+ b+e+d+y+ r+a+
+ n+y+z+ p+snt+y+b+a+n+y+ k+n+d+. b+r+a+y+ m+tka+l+ a+gfr+ a+z+
+ n+m+a+y+h+ R-tree b+r+a+y+ gfw+n+h+ Point a+s+t+f+a+d+h+ snw+d+
+ s+r+e+t+ d+r+x+w+a+s+t+h+a+y+y+ n+zHy+r+ "select all points within a
+ bounding rectangle" b+h+ m+r+a+t+b+ a+f+z+a+y+sn m+y+y+a+b+d+.
+
+ m+q+a+l+h+a+y+ k+h+ tjr+a+hky+ R-tree r+a+ t+w+ddy+hk d+a+d+h+ a+s+t+
+
+ 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.
+
+ R-tree m+y+t+w+a+n+d+ tcn+d+ddl+e+y+h+a+ w+ tcn+d+ w+g+h+y+ r+a+
+ p+snt+y+b+a+n+y+ k+n+d+. d+r+ t+yHw+r+y+,+ R-tree m+y+t+w+a+n+d+
+ t+e+d+a+d+ b+e+d+h+a+y+ b+a+l+a+t+r+y+ r+a+ n+y+z+ p+snt+y+b+a+n+y+
+ k+n+d+. d+r+ e+m+l+ t+w+s+e+h+ R-tree n+y+a+z+ b+h+ k+a+r+
+ b+y+snt+r+y+ d+a+r+d+.
+
+ 4.11) b+h+y+n+h+ s+a+z+ t+k+w+y+n+y+ d+r+x+w+a+s+t+ tcy+s+t+?+ (Genetic
+ Query Optimizer)
+
+ a+s+t+f+a+d+h+ a+z+ GEQO s+r+e+t+ b+h+y+n+h+ s+a+z+y+ d+r+x+w+a+s+t+
+ r+a+ h+n+gfa+m+y+k+h+ t+e+d+a+d+ z+y+a+d+y+ g+d+w+l+ r+a+ b+a+
+ a+s+t+f+a+d+h+ a+z+ a+l+gfw+r+y+t+m+ zjn+t+y+k+ a+l+hka+q+ m+y+
+ k+n+y+m+ a+f+z+a+y+sn m+y+d+h+d+.
+
+ 4.12) tcgfw+n+h+ a+z+ e+b+a+r+a+t+ m+n+zHm+ b+r+a+y+ g+s+t+g+w+
+ a+s+t+f+a+d+h+ k+n+m+?+ tcgfw+n+h+ g+s+t+g+w+y+y+ a+n+g+a+m+ d+h+m+ k+h+
+ hks+a+s+ b+h+ m+t+n+ n+b+a+snd+?+ tcgfw+n+h+ b+r+a+y+ y+k+ g+s+t+g+w+y+
+ i+y+r+ hks+a+s+ b+h+ m+t+n+ a+z+ n+m+a+y+h+ a+s+t+f+a+d+h+ k+n+m+?+
+
+ b+r+a+y+ g+s+t+g+w+y+ e+b+a+r+t+ m+n+zHm+ a+z+ e+m+l+gfr+ ~
+ a+s+t+f+a+d+h+ m+y+k+n+y+m+. b+r+a+y+ g+s+t+g+w+y+ i+y+r+ hks+a+s+
+ b+h+ m+t+n+ a+z+ e+m+l+gfr+ *~ w+ y+a+ ILIKE a+s+t+f+a+d+h+ m+y+
+ k+n+y+m+.
+
+ r+w+sn d+y+gfr+ a+n+g+a+m+ g+s+t+g+w+y+ i+y+r+ hks+a+s+ b+h+ m+t+n+
+ d+r+ z+y+r+ n+sna+n+ d+a+d+h+ snd+h+ a+s+t+.
SELECT *
FROM tab
WHERE lower(col) = 'abc';
-اين از نمايههاي استاندارد استفاده نميكند. ولي شما مي توانيد با دستور زير يك
-نمايه ايجاد كنيد و از آن استفاده كنيد.
+
+ a+y+n+ a+z+ n+m+a+y+h+h+a+y+ a+s+t+a+n+d+a+r+d+ a+s+t+f+a+d+h+ n+m+y+
+ k+n+d+. w+l+y+ snm+a+ m+y+ t+w+a+n+y+d+ b+a+ d+s+t+w+r+ z+y+r+ y+k+
+ n+m+a+y+h+ a+y+g+a+d+ k+n+y+d+ w+ a+z+ aMn+ a+s+t+f+a+d+h+ k+n+y+d+.
CREATE INDEX tabindex ON tab (lower(col));
-4.13) چگونه ميتوانم در يك درخواست تشخيص دهم كه يك فيلد NULL است؟
-با استفاده از توابع IS NULL و IS NOT NULL ميتوانيم NULL بودن يك فيلد را تست
-كنيم.
-4.14) تفاوت بين گونههاي مختلف character چيست؟
+
+ 4.13) tcgfw+n+h+ m+y+t+w+a+n+m+ d+r+ y+k+ d+r+x+w+a+s+t+ t+snx+y+c+ d+h+m+
+ k+h+ y+k+ f+y+l+d+ NULL a+s+t+?+
+
+ b+a+ a+s+t+f+a+d+h+ a+z+ t+w+a+b+e+ IS NULL w+ IS NOT NULL m+y+
+ t+w+a+n+y+m+ NULL b+w+d+n+ y+k+ f+y+l+d+ r+a+ t+s+t+ k+n+y+m+.
+
+ 4.14) t+f+a+w+t+ b+y+n+ gfw+n+h+h+a+y+ m+x+t+l+f+ character tcy+s+t+?+
+
Type Internal Name Notes
--------------------------------------------------
-VARCHAR(n) varchar اندازه، حداكثر طول را نشان مي دهد بدون اضافه شدن كاراكتر اضافه
-CHAR(n) bpchar كاراكترهاي بلانك براي پر شدن طول مشخص شده استفاده ميشود
-TEXT text حداكثر طول را مشخص نميكند
-BYTEA bytea آرايهاي از بايت با طول متغير
-"char" char يك كاراكتر
-نام داخلي گونهها را در system catalogue و بعضي از پيغامهاي خطا ميتوان ديد.
-چهار گونه اول همگي از نوع varlena هستند (4 بايت اول روي ديسك طول را مشخص ميكند
-كه به دنبال آن دادهها قرار دارند.)بنابراين فضاي واقعي استفاده شده روي ديسك از
-اندازه تعريف شده بيشتر است. اما اين گونهها را ميتوان فشرده كرد كه اينكار باعث
-ميشود فضاي كمتري روي ديسك اشغال كنند.
-براي ذخيره رشتههاي با طول متغير(VARCHAR(n بهترين انتخاب است. در اين گونه
-حداكثر طول رشته محدود است بر خلاف text كه هيچ محدوديتي روي حداكثر اندازه رشته
-نميگذارد.(در اين گونه حداكثر طول يك رشته يك گيگا بايت خواهد بود)
-گونه (CHAR(n براي ذخيره دادههاي با طول يكسان است.يك گونهي (CHAR(n با
-كاراكترهاي بلانك (خالي) پر ميشود تا به طول مشخص شده برسد در حاليكه گونه VARCHAR
-كاراكترها را به همان صورت كه هستند ذخيره ميكند. گونه BYTEA براي ذخيره دادههاي
-باينري است به خصوص دادههاي باينري كه شامل بايتهاي NULL هستند. از نظر كارايي
-تمام اين گونهها يكسان هستند.
-4.15.1) چگونه ميتوانم يك فيلد سريال يا افزايشي ايجاد كنم؟
-PostgreSQL از دادههاي سريال پشتيباني ميكند. براي ايجاد يك فيلد سريال (براي
-داشتن يك فيلد منحصر به فرد براي هر رديف )به روش زير عمل كنيد:
- CREATE TABLE person (
- id SERIAL,
- name TEXT
+VARCHAR(n) varchar a+n+d+a+z+h+,+ hkd+a+k+tkr+ tjw+l+ r+a+ n+sna+n+ m+y+ d+h+d+ b+d+w+n+ a+dda+f+h+ snd+n+ k+a+r+a+k+t+r+ a+dda+f+h+
+CHAR(n) bpchar k+a+r+a+k+t+r+h+a+y+ b+l+a+n+k+ b+r+a+y+ p+r+ snd+n+ tjw+l+ m+snx+c+ snd+h+ a+s+t+f+a+d+h+ m+y+snw+d+
+TEXT text hkd+a+k+tkr+ tjw+l+ r+a+ m+snx+c+ n+m+y+k+n+d+
+BYTEA bytea aMr+a+y+h+a+y+ a+z+ b+a+y+t+ b+a+ tjw+l+ m+t+i+y+r+
+"char" char y+k+ k+a+r+a+k+t+r+
+
+ n+a+m+ d+a+x+l+y+ gfw+n+h+h+a+ r+a+ d+r+ system catalogue w+ b+e+ddy+
+ a+z+ p+y+i+a+m+h+a+y+ x+tja+ m+y+t+w+a+n+ d+y+d+.
+
+ tch+a+r+ gfw+n+h+ a+w+l+ h+m+gfy+ a+z+ n+w+e+ varlena h+s+t+n+d+ (4
+ b+a+y+t+ a+w+l+ r+w+y+ d+y+s+k+ tjw+l+ r+a+ m+snx+c+ m+y+k+n+d+ k+h+
+ b+h+ d+n+b+a+l+ aMn+ d+a+d+h+h+a+ q+r+a+r+ d+a+r+n+d+.)
+ b+n+a+b+r+a+y+n+ f+dda+y+ w+a+q+e+y+ a+s+t+f+a+d+h+ snd+h+ r+w+y+
+ d+y+s+k+ a+z+ a+n+d+a+z+h+ t+e+r+y+f+ snd+h+ b+y+snt+r+ a+s+t+. a+m+a+
+ a+y+n+ gfw+n+h+h+a+ r+a+ m+y+t+w+a+n+ f+snr+d+h+ k+r+d+ k+h+
+ a+y+n+k+a+r+ b+a+e+tk m+y+snw+d+ f+dda+y+ k+m+t+r+y+ r+w+y+ d+y+s+k+
+ a+sni+a+l+ k+n+n+d+.
+
+ b+r+a+y+ dkx+y+r+h+ r+snt+h+h+a+y+ b+a+ tjw+l+ m+t+i+y+r+(VARCHAR(n
+ b+h+t+r+y+n+ a+n+t+x+a+b+ a+s+t+. d+r+ a+y+n+ gfw+n+h+ hkd+a+k+tkr+
+ tjw+l+ r+snt+h+ m+hkd+w+d+ a+s+t+ b+r+ x+l+a+f+ text k+h+ h+y+tc
+ m+hkd+w+d+y+t+y+ r+w+y+ hkd+a+k+tkr+ a+n+d+a+z+h+ r+snt+h+ n+m+y+
+ gfdka+r+d+.(d+r+ a+y+n+ gfw+n+h+ hkd+a+k+tkr+ tjw+l+ y+k+ r+snt+h+
+ y+k+ gfy+gfa+ b+a+y+t+ x+w+a+h+d+ b+w+d+)
+
+ gfw+n+h+ (CHAR(n b+r+a+y+ dkx+y+r+h+ d+a+d+h+h+a+y+ b+a+ tjw+l+
+ y+k+s+a+n+ a+s+t+.y+k+ gfw+n+h+y+ (CHAR(n b+a+ k+a+r+a+k+t+r+h+a+y+
+ b+l+a+n+k+ (x+a+l+y+) p+r+ m+y+snw+d+ t+a+ b+h+ tjw+l+ m+snx+c+ snd+h+
+ b+r+s+d+ d+r+ hka+l+y+k+h+ gfw+n+h+ VARCHAR k+a+r+a+k+t+r+h+a+ r+a+
+ b+h+ h+m+a+n+ c+w+r+t+ k+h+ h+s+t+n+d+ dkx+y+r+h+ m+y+k+n+d+. gfw+n+h+
+ BYTEA b+r+a+y+ dkx+y+r+h+ d+a+d+h+h+a+y+ b+a+y+n+r+y+ a+s+t+ b+h+
+ x+c+w+c+ d+a+d+h+h+a+y+ b+a+y+n+r+y+ k+h+ sna+m+l+ b+a+y+t+h+a+y+ NULL
+ h+s+t+n+d+. a+z+ n+zHr+ k+a+r+a+y+y+ t+m+a+m+ a+y+n+ gfw+n+h+h+a+
+ y+k+s+a+n+ h+s+t+n+d+.
+
+ 4.15.1) tcgfw+n+h+ m+y+t+w+a+n+m+ y+k+ f+y+l+d+ s+r+y+a+l+ y+a+
+ a+f+z+a+y+sny+ a+y+g+a+d+ k+n+m+?+
+
+ PostgreSQL a+z+ d+a+d+h+h+a+y+ s+r+y+a+l+ p+snt+y+b+a+n+y+ m+y+k+n+d+.
+ b+r+a+y+ a+y+g+a+d+ y+k+ f+y+l+d+ s+r+y+a+l+ (b+r+a+y+ d+a+snt+n+ y+k+
+ f+y+l+d+ m+n+hkc+r+ b+h+ f+r+d+ b+r+a+y+ h+r+ r+d+y+f+ )b+h+ r+w+sn
+ z+y+r+ e+m+l+ k+n+y+d+:
+ CREATE TABLE person (
+ id SERIAL,
+ name TEXT
);
-دستور بالا به طور اتوماتيک به دستور زير تبديل ميشود:
+
+ d+s+t+w+r+ b+a+l+a+ b+h+ tjw+r+ a+t+w+m+a+t+y+ک b+h+ d+s+t+w+r+
+ z+y+r+ t+b+d+y+l+ m+y+snw+d+:
CREATE SEQUENCE person_id_seq;
- CREATE TABLE person (
+ CREATE TABLE person (
id INT4 NOT NULL DEFAULT nextval('person_id_seq'),
- name TEXT
+ name TEXT
);
-براي ديدن اطلاعات بيشتر به راهنماي دستور create_sequence مراجعه كنيد. همچنين
-ميتوان از OIDهر رديف به عنوان يك مقدار منحصر به فرد استفاده كرد. اما در اين
-حالت براي dump كردن و reloadكردن پايگاه داده بايد دستور pg_dumps را با گزينه
-o- اجرا كنيد.
-4.15.2) چگونه ميتوانم مقدار يك درج سريالي را بدانم؟
-يك روش براي گرفتن مقدار بعدي يك فيلد سريال استفاده از تابع ()nextval است. در شبه
-كُدي كه در ادامه آمده است روش انجام اين كار نشان داده شده است:
+
+ b+r+a+y+ d+y+d+n+ a+tjl+a+e+a+t+ b+y+snt+r+ b+h+ r+a+h+n+m+a+y+
+ d+s+t+w+r+ create_sequence m+r+a+g+e+h+ k+n+y+d+. h+m+tcn+y+n+ m+y+
+ t+w+a+n+ a+z+ OIDh+r+ r+d+y+f+ b+h+ e+n+w+a+n+ y+k+ m+q+d+a+r+
+ m+n+hkc+r+ b+h+ f+r+d+ a+s+t+f+a+d+h+ k+r+d+. a+m+a+ d+r+ a+y+n+
+ hka+l+t+ b+r+a+y+ dump k+r+d+n+ w+ reloadk+r+d+n+ p+a+y+gfa+h+
+ d+a+d+h+ b+a+y+d+ d+s+t+w+r+ pg_dumps r+a+ b+a+ gfz+y+n+h+ o- a+g+r+a+
+ k+n+y+d+.
+
+ 4.15.2) tcgfw+n+h+ m+y+t+w+a+n+m+ m+q+d+a+r+ y+k+ d+r+g+ s+r+y+a+l+y+ r+a+
+ b+d+a+n+m+?+
+
+ y+k+ r+w+sn b+r+a+y+ gfr+f+t+n+ m+q+d+a+r+ b+e+d+y+ y+k+ f+y+l+d+
+ s+r+y+a+l+ a+s+t+f+a+d+h+ a+z+ t+a+b+e+ ()nextval a+s+t+. d+r+ snb+h+
+ k+'+d+y+ k+h+ d+r+ a+d+a+m+h+ aMm+d+h+ a+s+t+ r+w+sn a+n+g+a+m+ a+y+n+
+ k+a+r+ n+sna+n+ d+a+d+h+ snd+h+ a+s+t+:
new_id = execute("SELECT nextval('person_id_seq')");
execute("INSERT INTO person (id, name) VALUES (new_id, 'Blaise Pascal')");
-با اجراي دستور فوق مقدار جديد را در متغير new_id نيز خواهيدداشت كه ميتوانيد آن
-را در بقيه درخواستها نيز استفاده كنيد. توجه داشته باشيد كه نام SEQUENCEيي كه به
-طور اتوماتيك ايجاد شده است به صورت table_serialcolumn_seq خواهد بود. كه در آن
-table نام جدول و serialcolumn نام فيلد سريال جدول ميباشد.
-براي ديدن مقدار نسبت داده شده به فيلد سريال نيز ميتوان از تابع () currval به
-صورت زير استفاده كرد.
+
+ b+a+ a+g+r+a+y+ d+s+t+w+r+ f+w+q+ m+q+d+a+r+ g+d+y+d+ r+a+ d+r+
+ m+t+i+y+r+ new_id n+y+z+ x+w+a+h+y+d+d+a+snt+ k+h+ m+y+t+w+a+n+y+d+
+ aMn+ r+a+ d+r+ b+q+y+h+ d+r+x+w+a+s+t+h+a+ n+y+z+ a+s+t+f+a+d+h+
+ k+n+y+d+. t+w+g+h+ d+a+snt+h+ b+a+sny+d+ k+h+ n+a+m+ SEQUENCEy+y+ k+h+
+ b+h+ tjw+r+ a+t+w+m+a+t+y+k+ a+y+g+a+d+ snd+h+ a+s+t+ b+h+ c+w+r+t+
+ table_serialcolumn_seq x+w+a+h+d+ b+w+d+. k+h+ d+r+ aMn+ table n+a+m+
+ g+d+w+l+ w+ serialcolumn n+a+m+ f+y+l+d+ s+r+y+a+l+ g+d+w+l+ m+y+
+ b+a+snd+.
+
+ b+r+a+y+ d+y+d+n+ m+q+d+a+r+ n+s+b+t+ d+a+d+h+ snd+h+ b+h+ f+y+l+d+
+ s+r+y+a+l+ n+y+z+ m+y+t+w+a+n+ a+z+ t+a+b+e+ () currval b+h+ c+w+r+t+
+ z+y+r+ a+s+t+f+a+d+h+ k+r+d+.
execute("INSERT INTO person (name) VALUES ('Blaise Pascal')");
new_id = execute("SELECT currval('person_id_seq')");
-و سرانجام شما ميتوانيد از مقدار OID كه خروجي دستور INSERT است براي ديدن مقدار
-پيش فرض استفاده كنيد. هر چند اين روش در همه پلتفرمها قابل استفاده نيست و ضمن
-اينكه فيلد oid بعد از عدد 4 ميليارد دوباره صفر ميشود. در زبان perl با استفاده
-از DBI و DBD::Pg مقدار oidرا ميتوانيد به اين شكل استخراج كنيد: بعد از اجراي
-()st->execute$ مقدار oid در متغير sth->pg_oid_status$ ذخيره خواهد شد.
-4.15.3) آیا توابع ()nextval و ()currval منجر به ایجاد شرایط race برای سایر
-کاربران می شوند؟
-خیر، استفاده از این توابع شرایط race را به وجود نمی آورد.
-4.15.4) چرا اعداد سریالی مربوط به تراکنشهای abort شده مجدداً استفاده نمی شود؟
-چرا بین اعداد سریالی یک فاصله خالی ایجاد می شود؟
-برای بالا بردن امکان اجرای همزمان تراکنشها، اعداد سریالی به محض اجرای تراکنش به
-آنها تخصیص می یابد در این حالت اگر بعضی از تراکنشها abort شوند بین اعداد سریالی
-استفاده شده یک فاصله خالی به وجود می آید.
-4.16) OID و TID چه هستند؟
-OID راه حل PostgreSQL برای داشتن یک شناسه منحصر به فرد برای هر ردیف است. هر ردیف
-جدیدی که ایجاد می شود یک OID منحصر به فرد به آن اختصاص می یابد. تمام OIDهایی که
-در حین initdb ایجاد می شوند از 16384 کمتر هستند و OIDهایی بعداً تولید می شود از
-این عدد بزرگتر خواهد بود. نکته مهم آن است که OIDها نه تنها در یک جدول شبیه
-نیستند بلکه در کل پایگاه داده هیچ دو ردیفی دارای OID یکسان نخواهد بود.
-PostgreSQL از OID در سیستم داخلی خود برای ایجاد ارتباط بین ردیفهای جداول مختلف
-استفاده می کند. توصیه می شود که یک ستون از نوع OID برای ذخیره این فیلد در جدول
-ایجاد کنید. ساختن یک نمایه برای این فیلد باعث دسترسی سریعتر به آن خواهد شد.
-تمام پایگاههای داده در PostgreSQL برای گرفتن OID جدید از یک ناحیه مرکزی استفاده
-می کند. ولی اگر بخواهیم OID را به روش دیگری بگیریم و یا اینکه در حین کپی کردن یک
-جدول بخواهیم OIDهای اصلی آن تغییر نکند به روش زیر می توانیم عمل کنیم:
+ w+ s+r+a+n+g+a+m+ snm+a+ m+y+t+w+a+n+y+d+ a+z+ m+q+d+a+r+ OID k+h+
+ x+r+w+g+y+ d+s+t+w+r+ INSERT a+s+t+ b+r+a+y+ d+y+d+n+ m+q+d+a+r+
+ p+y+sn f+r+dd a+s+t+f+a+d+h+ k+n+y+d+. h+r+ tcn+d+ a+y+n+ r+w+sn d+r+
+ h+m+h+ p+l+t+f+r+m+h+a+ q+a+b+l+ a+s+t+f+a+d+h+ n+y+s+t+ w+ ddm+n+
+ a+y+n+k+h+ f+y+l+d+ oid b+e+d+ a+z+ e+d+d+ 4 m+y+l+y+a+r+d+
+ d+w+b+a+r+h+ c+f+r+ m+y+snw+d+. d+r+ z+b+a+n+ perl b+a+ a+s+t+f+a+d+h+
+ a+z+ DBI w+ DBD::Pg m+q+d+a+r+ oidr+a+ m+y+t+w+a+n+y+d+ b+h+ a+y+n+
+ snk+l+ a+s+t+x+r+a+g+ k+n+y+d+: b+e+d+ a+z+ a+g+r+a+y+ ()st->execute$
+ m+q+d+a+r+ oid d+r+ m+t+i+y+r+ sth->pg_oid_status$ dkx+y+r+h+
+ x+w+a+h+d+ snd+.
+
+ 4.15.3) aMیa+ t+w+a+b+e+ ()nextval w+ ()currval m+n+g+r+ b+h+
+ a+یg+a+d+ snr+a+یtj race b+r+a+ی s+a+یr+
+ کa+r+b+r+a+n+ m+ی snw+n+d+?+
+
+ x+یr+,+ a+s+t+f+a+d+h+ a+z+ a+یn+ t+w+a+b+e+
+ snr+a+یtj race r+a+ b+h+ w+g+w+d+ n+m+ی aMw+r+d+.
+
+ 4.15.4) tcr+a+ a+e+d+a+d+ s+r+یa+l+ی m+r+b+w+tj b+h+
+ t+r+a+کn+snh+a+ی abort snd+h+ m+g+d+d+a+:+ a+s+t+f+a+d+h+
+ n+m+ی snw+d+?+ tcr+a+ b+یn+ a+e+d+a+d+ s+r+یa+l+ی
+ یک f+a+c+l+h+ x+a+l+ی a+یg+a+d+ m+ی snw+d+?+
+
+ b+r+a+ی b+a+l+a+ b+r+d+n+ a+m+کa+n+ a+g+r+a+ی
+ h+m+z+m+a+n+ t+r+a+کn+snh+a+,+ a+e+d+a+d+ s+r+یa+l+ی
+ b+h+ m+hkdd a+g+r+a+ی t+r+a+کn+sn b+h+ aMn+h+a+
+ t+x+c+یc+ m+ی یa+b+d+ d+r+ a+یn+ hka+l+t+
+ a+gfr+ b+e+ddی a+z+ t+r+a+کn+snh+a+ abort snw+n+d+
+ b+یn+ a+e+d+a+d+ s+r+یa+l+ی a+s+t+f+a+d+h+ snd+h+
+ یک f+a+c+l+h+ x+a+l+ی b+h+ w+g+w+d+ m+ی
+ aMیd+.
+
+ 4.16) OID w+ TID tch+ h+s+t+n+d+?+
+
+ OID r+a+h+ hkl+ PostgreSQL b+r+a+ی d+a+snt+n+ یک
+ snn+a+s+h+ m+n+hkc+r+ b+h+ f+r+d+ b+r+a+ی h+r+ r+d+یf+
+ a+s+t+. h+r+ r+d+یf+ g+d+یd+ی کh+
+ a+یg+a+d+ m+ی snw+d+ یک OID m+n+hkc+r+ b+h+
+ f+r+d+ b+h+ aMn+ a+x+t+c+a+c+ m+ی یa+b+d+. t+m+a+m+
+ OIDh+a+یی کh+ d+r+ hkیn+ initdb
+ a+یg+a+d+ m+ی snw+n+d+ a+z+ 16384 کm+t+r+ h+s+t+n+d+
+ w+ OIDh+a+یی b+e+d+a+:+ t+w+l+یd+ m+ی snw+d+
+ a+z+ a+یn+ e+d+d+ b+z+r+gft+r+ x+w+a+h+d+ b+w+d+. n+کt+h+
+ m+h+m+ aMn+ a+s+t+ کh+ OIDh+a+ n+h+ t+n+h+a+ d+r+ یک
+ g+d+w+l+ snb+یh+ n+یs+t+n+d+ b+l+کh+ d+r+ کl+
+ p+a+یgfa+h+ d+a+d+h+ h+یtc d+w+ r+d+یf+ی
+ d+a+r+a+ی OID یکs+a+n+ n+x+w+a+h+d+ b+w+d+.
+
+ PostgreSQL a+z+ OID d+r+ s+یs+t+m+ d+a+x+l+ی x+w+d+
+ b+r+a+ی a+یg+a+d+ a+r+t+b+a+tj b+یn+
+ r+d+یf+h+a+ی g+d+a+w+l+ m+x+t+l+f+ a+s+t+f+a+d+h+
+ m+ی کn+d+. t+w+c+یh+ m+ی snw+d+ کh+
+ یک s+t+w+n+ a+z+ n+w+e+ OID b+r+a+ی dkx+یr+h+
+ a+یn+ f+یl+d+ d+r+ g+d+w+l+ a+یg+a+d+
+ کn+یd+. s+a+x+t+n+ یک n+m+a+یh+
+ b+r+a+ی a+یn+ f+یl+d+ b+a+e+tk d+s+t+r+s+ی
+ s+r+یe+t+r+ b+h+ aMn+ x+w+a+h+d+ snd+.
+
+ t+m+a+m+ p+a+یgfa+h+h+a+ی d+a+d+h+ d+r+ PostgreSQL
+ b+r+a+ی gfr+f+t+n+ OID g+d+یd+ a+z+ یک
+ n+a+hkیh+ m+r+کz+ی a+s+t+f+a+d+h+ m+ی
+ کn+d+. w+l+ی a+gfr+ b+x+w+a+h+یm+ OID r+a+ b+h+
+ r+w+sn d+یgfr+ی b+gfیr+یm+ w+ یa+
+ a+یn+کh+ d+r+ hkیn+ کp+ی کr+d+n+
+ یک g+d+w+l+ b+x+w+a+h+یm+ OIDh+a+ی
+ a+c+l+ی aMn+ t+i+ییr+ n+کn+d+ b+h+ r+w+sn
+ z+یr+ m+ی t+w+a+n+یm+ e+m+l+ کn+یm+:
+
+
CREATE TABLE new_table(mycol int);
SELECT oid AS old_oid, mycol INTO tmp_table FROM old_table;
COPY tmp_table TO '/tmp/pgtable';
COPY new_table WITH OIDS FROM '/tmp/pgtable';
DROP TABLE tmp_table;
-OID یک عدد صحیح 4 بایتی است و بنابراین حداکثر مقدار آن 4 میلیارد خواهد بود و بعد
-از آن مقدار آن سرریز خواهد شد. البته تا کنون برای کسی این اتفاق نیفتاده است و
-تصمیم گرداندگان PostgreSQL آن است که قبل از آنکه این اتفاق رخ دهد این مشکل را
-برطرف کنند.
-TIDها برای شناسایی محل فیزیکی یک ردیف بر اساس بلوک و آفست می باشد. TIDها بعد از
-تغییر پیدا کردن یک ردیف و یا بازخوانی آن عوض می شوند. TIDها توسط نمایه ها
-استفاده می شوند.
-4.17) معني بعضي از ترمها و كلماتي كه در PostgreSQL استفاده ميشود چيست؟
-لیست برخی از ترمها و کلماتی که استفاده می شوند:
- table, relation, class :کلاس، رابطه، جدول
- row, record, tuple چندتایی، رکورد، ردیف
- column, field, attribute صفت، فیلد، ستون
- retrieve, select انتخاب، خواندن
- replace, updateبه روز کردن، جایگزینی
- append, insert درج، اضافه کردن
- OID, serial value مقدار سریال
- portal, cursor
- range variable, table name, table alias
-یک لیست عمومی از ترمهای مورد استفاده در پایگاه داده در آدرس
-http://hea-www.harvard.edu/MST/simul/software/docs/pkgs/pgsql/glossary/glossary.htm
-وجود دارد.
-4.18) چرا من خطاي "ERROR: Memory exhausted in AllocSetAlloc" ميگيرم؟
-این خطا احتمالاً یا به خاطر تمام شدن حافظه مجازی سیستم شماست و یا اینکه کرنل
-برای برنامه ها در مورد میزان استفاده از حافظه مجازی محدودیت اعمال کرده است. قبل
-از اجرای برنامه اصلی یکی از دستورات زیر را اجرا کنید.
+
+ OID یک e+d+d+ c+hkیhk 4 b+a+یt+ی a+s+t+
+ w+ b+n+a+b+r+a+یn+ hkd+a+کtkr+ m+q+d+a+r+ aMn+ 4
+ m+یl+یa+r+d+ x+w+a+h+d+ b+w+d+ w+ b+e+d+ a+z+ aMn+
+ m+q+d+a+r+ aMn+ s+r+r+یz+ x+w+a+h+d+ snd+. a+l+b+t+h+ t+a+
+ کn+w+n+ b+r+a+ی کs+ی a+یn+ a+t+f+a+q+
+ n+یf+t+a+d+h+ a+s+t+ w+ t+c+m+یm+ gfr+d+a+n+d+gfa+n+
+ PostgreSQL aMn+ a+s+t+ کh+ q+b+l+ a+z+ aMn+کh+ a+یn+
+ a+t+f+a+q+ r+x+ d+h+d+ a+یn+ m+snکl+ r+a+ b+r+tjr+f+
+ کn+n+d+.
+
+ TIDh+a+ b+r+a+ی snn+a+s+a+یی m+hkl+
+ f+یz+یکی یک r+d+یf+ b+r+
+ a+s+a+s+ b+l+w+ک w+ aMf+s+t+ m+ی b+a+snd+. TIDh+a+ b+e+d+
+ a+z+ t+i+ییr+ p+یd+a+ کr+d+n+ یک
+ r+d+یf+ w+ یa+ b+a+z+x+w+a+n+ی aMn+ e+w+dd
+ m+ی snw+n+d+. TIDh+a+ t+w+s+tj n+m+a+یh+ h+a+
+ a+s+t+f+a+d+h+ m+ی snw+n+d+.
+
+ 4.17) m+e+n+y+ b+e+ddy+ a+z+ t+r+m+h+a+ w+ k+l+m+a+t+y+ k+h+ d+r+
+ PostgreSQL a+s+t+f+a+d+h+ m+y+snw+d+ tcy+s+t+?+
+
+ l+یs+t+ b+r+x+ی a+z+ t+r+m+h+a+ w+ کl+m+a+t+ی
+ کh+ a+s+t+f+a+d+h+ m+ی snw+n+d+:
+ * table, relation, class :کl+a+s+,+ r+a+b+tjh+,+ g+d+w+l+
+ * row, record, tuple tcn+d+t+a+یی,+ r+کw+r+d+,+
+ r+d+یf+
+ * column, field, attribute c+f+t+,+ f+یl+d+,+ s+t+w+n+
+ * retrieve, select a+n+t+x+a+b+,+ x+w+a+n+d+n+
+ * replace, updateb+h+ r+w+z+ کr+d+n+,+
+ g+a+یgfz+یn+ی
+ * append, insert d+r+g+,+ a+dda+f+h+ کr+d+n+
+ * OID, serial value m+q+d+a+r+ s+r+یa+l+
+ * portal, cursor
+ * range variable, table name, table alias
+
+ یک l+یs+t+ e+m+w+m+ی a+z+ t+r+m+h+a+ی
+ m+w+r+d+ a+s+t+f+a+d+h+ d+r+ p+a+یgfa+h+ d+a+d+h+ d+r+ aMd+r+s+
+ http://hea-www.harvard.edu/MST/simul/software/docs/pkgs/pgsql/glossary
+ /glossary.htm w+g+w+d+ d+a+r+d+.
+
+ 4.18) tcr+a+ m+n+ x+tja+y+ "ERROR: Memory exhausted in AllocSetAlloc" m+y+
+ gfy+r+m+?+
+
+ a+یn+ x+tja+ a+hkt+m+a+l+a+:+ یa+ b+h+ x+a+tjr+ t+m+a+m+
+ snd+n+ hka+f+zHh+ m+g+a+z+ی s+یs+t+m+ snm+a+s+t+ w+
+ یa+ a+یn+کh+ کr+n+l+ b+r+a+ی
+ b+r+n+a+m+h+ h+a+ d+r+ m+w+r+d+ m+یz+a+n+ a+s+t+f+a+d+h+ a+z+
+ hka+f+zHh+ m+g+a+z+ی m+hkd+w+d+یt+ a+e+m+a+l+
+ کr+d+h+ a+s+t+. q+b+l+ a+z+ a+g+r+a+ی b+r+n+a+m+h+
+ a+c+l+ی یکی a+z+ d+s+t+w+r+a+t+ z+یr+
+ r+a+ a+g+r+a+ کn+یd+.
+
ulimit -d 262144
limit datasize 256m
-بسته به نوع شل یکی از این دستورات ممکن است با موفقیت اجرا شود. با اجرای آن دستور
-محدودیت حافظه مجازی برای برنامه ها برداشته شده و با این کار احتمالاً درخواستی که
-قبلاً خطا می داده است اجرا خواهد شد.
-4.19) از كجا تشخيص دهم كه ويرايش يا نسخه PostgreSQLيي كه من استفاده ميكنم چيست؟
-با اجرای دستور ()SELECT version
-4.20) چرا حین اجرای عملیات روی large-objectها خطای "invalid large obj
-descriptor"به وجود می آید؟
-شما باید قبل از شروع دستوراتی که با large-objectها کار می کنند BEGIN و بعد از
-آنها هم یک END بگذارید. در حال حاضر PostgreSQL هندل large-objectها را در زمان
-نهایی شدن تراکنش (commitشدن) می بندد. به همین دلیل اولین تلاش برای انجام هر کاری
-با هندل منجر به خطای invalid large obj descriptor خواهد شد. برای جلوگیری از این
-خطا حتماً باید از یک تراکنش استفاده کنید. این کار همانطور که قبلاً گفته شد با
-استفاده از قرار دادن BEGIN و END در ابتدا و انتهای دستورات انجام می شود.
-اگر این خطا را در حین استفاده از یک درایور ODBC دریافت کردید احتمالاً باید این
-دستور را اجرا کنید: set auto-commit off
-4.21) چگونه يك ستون ايجاد كنم كه مقدار زمان جاري را به عنوان مقدار پيشفرض داشته
-باشد؟
-از CURRENT_TIMESTAMP استفاده کنید در مثال زیر نحوه انجام این کار نشان داده شده
-است:
+
+ b+s+t+h+ b+h+ n+w+e+ snl+ یکی a+z+ a+یn+
+ d+s+t+w+r+a+t+ m+m+کn+ a+s+t+ b+a+ m+w+f+q+یt+ a+g+r+a+
+ snw+d+. b+a+ a+g+r+a+ی aMn+ d+s+t+w+r+ m+hkd+w+d+یt+
+ hka+f+zHh+ m+g+a+z+ی b+r+a+ی b+r+n+a+m+h+ h+a+
+ b+r+d+a+snt+h+ snd+h+ w+ b+a+ a+یn+ کa+r+ a+hkt+m+a+l+a+:+
+ d+r+x+w+a+s+t+ی کh+ q+b+l+a+:+ x+tja+ m+ی d+a+d+h+
+ a+s+t+ a+g+r+a+ x+w+a+h+d+ snd+.
+
+ 4.19) a+z+ k+g+a+ t+snx+y+c+ d+h+m+ k+h+ w+y+r+a+y+sn y+a+ n+s+x+h+
+ PostgreSQLy+y+ k+h+ m+n+ a+s+t+f+a+d+h+ m+y+k+n+m+ tcy+s+t+?+
+
+ b+a+ a+g+r+a+ی d+s+t+w+r+ ()SELECT version
+
+ 4.20) tcr+a+ hkیn+ a+g+r+a+ی e+m+l+یa+t+ r+w+ی
+ large-objecth+a+ x+tja+ی "invalid large obj descriptor"b+h+ w+g+w+d+
+ m+ی aMیd+?+
+
+ snm+a+ b+a+یd+ q+b+l+ a+z+ snr+w+e+ d+s+t+w+r+a+t+ی
+ کh+ b+a+ large-objecth+a+ کa+r+ m+ی کn+n+d+
+ BEGIN w+ b+e+d+ a+z+ aMn+h+a+ h+m+ یک END
+ b+gfdka+r+یd+. d+r+ hka+l+ hka+ddr+ PostgreSQL h+n+d+l+
+ large-objecth+a+ r+a+ d+r+ z+m+a+n+ n+h+a+یی snd+n+
+ t+r+a+کn+sn (commitsnd+n+) m+ی b+n+d+d+. b+h+
+ h+m+یn+ d+l+یl+ a+w+l+یn+ t+l+a+sn b+r+a+ی
+ a+n+g+a+m+ h+r+ کa+r+ی b+a+ h+n+d+l+ m+n+g+r+ b+h+
+ x+tja+ی invalid large obj descriptor x+w+a+h+d+ snd+.
+ b+r+a+ی g+l+w+gfیr+ی a+z+ a+یn+ x+tja+
+ hkt+m+a+:+ b+a+یd+ a+z+ یک t+r+a+کn+sn
+ a+s+t+f+a+d+h+ کn+یd+. a+یn+ کa+r+
+ h+m+a+n+tjw+r+ کh+ q+b+l+a+:+ gff+t+h+ snd+ b+a+ a+s+t+f+a+d+h+
+ a+z+ q+r+a+r+ d+a+d+n+ BEGIN w+ END d+r+ a+b+t+d+a+ w+
+ a+n+t+h+a+ی d+s+t+w+r+a+t+ a+n+g+a+m+ m+ی snw+d+.
+
+ a+gfr+ a+یn+ x+tja+ r+a+ d+r+ hkیn+ a+s+t+f+a+d+h+ a+z+
+ یک d+r+a+یw+r+ ODBC d+r+یa+f+t+
+ کr+d+یd+ a+hkt+m+a+l+a+:+ b+a+یd+ a+یn+
+ d+s+t+w+r+ r+a+ a+g+r+a+ کn+یd+: set auto-commit off
+
+ 4.21) tcgfw+n+h+ y+k+ s+t+w+n+ a+y+g+a+d+ k+n+m+ k+h+ m+q+d+a+r+ z+m+a+n+
+ g+a+r+y+ r+a+ b+h+ e+n+w+a+n+ m+q+d+a+r+ p+y+snf+r+dd d+a+snt+h+ b+a+snd+?+
+
+ a+z+ CURRENT_TIMESTAMP a+s+t+f+a+d+h+ کn+یd+ d+r+
+ m+tka+l+ z+یr+ n+hkw+h+ a+n+g+a+m+ a+یn+ کa+r+
+ n+sna+n+ d+a+d+h+ snd+h+ a+s+t+:
+
CREATE TABLE test (x int, modtime timestamp DEFAULT CURRENT_TIMESTAMP );
-4.22) چرا "زير درخواستهايي" كه از IN استفاده ميكنند كند هستند؟
-در نسخه های قبل از 7.4 عمل الحاق زیر درخواست و درخواست اصلی به این صورت انجام می
-شود که نتایج به دست آمده از زیر درخواست به صورت ترتیبی برای هر ردیف اعمال می
-شود. اگر زیردرخواست ردیف های کمی را به عنوان خروجی برگرداند و درخواست بیرونی
-ردیف های زیادی را شامل شود استفاده از IN بهترین روش است در غیر اینصورت بهتر است
-از EXISTS استفاده شود
+ 4.22) tcr+a+ "z+y+r+ d+r+x+w+a+s+t+h+a+y+y+" k+h+ a+z+ IN a+s+t+f+a+d+h+
+ m+y+k+n+n+d+ k+n+d+ h+s+t+n+d+?+
+
+ d+r+ n+s+x+h+ h+a+ی q+b+l+ a+z+ 7.4 e+m+l+ a+l+hka+q+
+ z+یr+ d+r+x+w+a+s+t+ w+ d+r+x+w+a+s+t+ a+c+l+ی b+h+
+ a+یn+ c+w+r+t+ a+n+g+a+m+ m+ی snw+d+ کh+
+ n+t+a+یg+ b+h+ d+s+t+ aMm+d+h+ a+z+ z+یr+ d+r+x+w+a+s+t+
+ b+h+ c+w+r+t+ t+r+t+یb+ی b+r+a+ی h+r+ r+d+یf+
+ a+e+m+a+l+ m+ی snw+d+. a+gfr+ z+یr+d+r+x+w+a+s+t+
+ r+d+یf+ h+a+ی کm+ی r+a+ b+h+ e+n+w+a+n+
+ x+r+w+g+ی b+r+gfr+d+a+n+d+ w+ d+r+x+w+a+s+t+
+ b+یr+w+n+ی r+d+یf+ h+a+ی z+یa+d+ی
+ r+a+ sna+m+l+ snw+d+ a+s+t+f+a+d+h+ a+z+ IN b+h+t+r+یn+ r+w+sn
+ a+s+t+ d+r+ i+یr+ a+یn+c+w+r+t+ b+h+t+r+ a+s+t+ a+z+
+ EXISTS a+s+t+f+a+d+h+ snw+d+
+
SELECT *
FROM tab
WHERE col IN (SELECT subcol FROM subtab);
-به:
+
+ b+h+:
+
SELECT *
FROM tab
WHERE EXISTS (SELECT subcol FROM subtab WHERE subcol = col);
-برای اجرای سریع این درخواست باید برای ستون subcol نمایه ایجاد شده باشد.
-در نسخه های بعد از 7.4 IN برای الحاق از همان تکنیک پیچیده مورد استفاده در
-دستورات معمولی استفاده می کند و بنابراین استفاده از آن نسبت به EXISTS ارجحیت
-دارد.
-4.23) چگونه ميتوانم يك الحاق خارجي (outer join) انجام دهم؟
-برای انجام الحاق خارجی به روش زیر عمل کنید:
+
+ b+r+a+ی a+g+r+a+ی s+r+یe+ a+یn+ d+r+x+w+a+s+t+
+ b+a+یd+ b+r+a+ی s+t+w+n+ subcol n+m+a+یh+
+ a+یg+a+d+ snd+h+ b+a+snd+.
+
+ d+r+ n+s+x+h+ h+a+ی b+e+d+ a+z+ 7.4 IN b+r+a+ی a+l+hka+q+
+ a+z+ h+m+a+n+ t+کn+یک p+یtcیd+h+
+ m+w+r+d+ a+s+t+f+a+d+h+ d+r+ d+s+t+w+r+a+t+ m+e+m+w+l+ی
+ a+s+t+f+a+d+h+ m+ی کn+d+ w+ b+n+a+b+r+a+یn+
+ a+s+t+f+a+d+h+ a+z+ aMn+ n+s+b+t+ b+h+ EXISTS a+r+g+hkیt+
+ d+a+r+d+.
+
+ 4.23) tcgfw+n+h+ m+y+t+w+a+n+m+ y+k+ a+l+hka+q+ x+a+r+g+y+ (outer join)
+ a+n+g+a+m+ d+h+m+?+
+
+ b+r+a+ی a+n+g+a+m+ a+l+hka+q+ x+a+r+g+ی b+h+ r+w+sn
+ z+یr+ e+m+l+ کn+یd+:
+
SELECT *
FROM t1 LEFT OUTER JOIN t2 ON (t1.col = t2.col);
-یا
+
+ یa+
+
SELECT *
FROM t1 LEFT OUTER JOIN t2 USING (col);
-درخواستهای بالا t1.col , t2.col را به هم الحاق می کند و همچنین ردیفهای t1 که
-نظیر آنها در t2 نبوده است را نیز برمی گرداند. اگر از RIGHT استفاده شود نتیجه بر
-عکس است. یعنی ردیفهای t2 که نظیر آنها در t1 نباشد را نشان می دهد و اگر از FULL
-استفاده شود نتیجه هم شامل ردیفهای t1 است و هم شامل ردیفهای t2. استفاده از کلمه
-OUTER اختیاری است چرا که این کلمه به طور ضمنی در دستورهای LEFT, RIGHT, FULL وجود
-دارد.
-در نسخه های قبلی پایگاه داده می توانیم الحاق خارجی را به کمک دستورهای UNION, NOT
-IN شبیه سازی کنیم. این کار در مثال زیر نشان داده شده است:
+ d+r+x+w+a+s+t+h+a+ی b+a+l+a+ t1.col , t2.col r+a+ b+h+ h+m+
+ a+l+hka+q+ m+ی کn+d+ w+ h+m+tcn+یn+
+ r+d+یf+h+a+ی t1 کh+ n+zHیr+ aMn+h+a+ d+r+ t2
+ n+b+w+d+h+ a+s+t+ r+a+ n+یz+ b+r+m+ی gfr+d+a+n+d+. a+gfr+
+ a+z+ RIGHT a+s+t+f+a+d+h+ snw+d+ n+t+یg+h+ b+r+ e+کs+
+ a+s+t+. یe+n+ی r+d+یf+h+a+ی t2 کh+
+ n+zHیr+ aMn+h+a+ d+r+ t1 n+b+a+snd+ r+a+ n+sna+n+ m+ی
+ d+h+d+ w+ a+gfr+ a+z+ FULL a+s+t+f+a+d+h+ snw+d+ n+t+یg+h+ h+m+
+ sna+m+l+ r+d+یf+h+a+ی t1 a+s+t+ w+ h+m+ sna+m+l+
+ r+d+یf+h+a+ی t2. a+s+t+f+a+d+h+ a+z+ کl+m+h+ OUTER
+ a+x+t+یa+r+ی a+s+t+ tcr+a+ کh+ a+یn+
+ کl+m+h+ b+h+ tjw+r+ ddm+n+ی d+r+ d+s+t+w+r+h+a+ی
+ LEFT, RIGHT, FULL w+g+w+d+ d+a+r+d+.
+
+ d+r+ n+s+x+h+ h+a+ی q+b+l+ی p+a+یgfa+h+ d+a+d+h+
+ m+ی t+w+a+n+یm+ a+l+hka+q+ x+a+r+g+ی r+a+ b+h+
+ کm+ک d+s+t+w+r+h+a+ی UNION, NOT IN snb+یh+
+ s+a+z+ی کn+یm+. a+یn+ کa+r+ d+r+
+ m+tka+l+ z+یr+ n+sna+n+ d+a+d+h+ snd+h+ a+s+t+:
+
SELECT tab1.col1, tab2.col2
FROM tab1, tab2
WHERE tab1.col1 = tab2.col1
FROM tab1
WHERE tab1.col1 NOT IN (SELECT tab2.col1 FROM tab2)
ORDER BY col1
-4.24) چگونه ميتوان درخواستهايي از چند پايگاه داده توليد كرد؟
-در حال حاضر این کار امکان پذیر نیست. PostgreSQL فقط امکان درخواست از پایگاه داده
-ای را می دهد که در حال حاضر به آن متصل باشید و نمیتوان به طور همزمان از دو
-پایگاه داده استفاده کرد. البته یک برنامه کاربردی خود می تواند به طور همزمان دو
-پایگاه داده را مورد استفاده قرار داده و نتایج را با هم ترکیب کند ولی نمی تواند
-در یک درخواست به هر دو پایگاه داده رجوع کند.
-4.25) چگونه خروجي يك تابع ميتواند چند رديف يا ستون باشد؟
-در نسخه 7.3 خروجی یک تابع می تواند چند ردیف یا چند ستون باشد. برای دیدن اطلاعات
-بیشتر به سایت زیر مراجعه
-کنید:http://techdocs.postgresql.org/guides/SetReturningFunctions
-4.26) در توابع PL/PgSQL چرا نميتوان با اطمينان جداول موقت را ايجاد يا حذف كرد؟
-PL/PgSQL محتوای توابع را ذخیره (cache) می کند. یک اثر بد جانبی این کار آن است که
-اگر در تابع از یک جدول موقت استفاده شود و بعداً آن جدول حذف و یک جدول جدید به
-جای آن ایجاد شود، در فراخوانی مجدد آن تابع، محتوای ذخیره شده تابع هنوز به جدول
-قدیمی اشاره می کند و بنابراین اجرای تابع با اشکال مواجه می شود. راه حل این مشکل
-آن است که برای جداول موقت از دستور EXECUTE استفاده شود که این کار سبب می شود که
-درخواست برای هر بار اجرا مجدداً پیمایش و تفسیر شود.
-4.27) چه گزينههايي براي تكرار (replication) وجود دارد؟
-There are several master/slave replication options available. These allow only
-the master to make database changes and the slave can only do database reads.
-The bottom of http://gborg.PostgreSQL.org/genpage?replication_research lists
-them. A multi-master replication solution is being worked on at
-http://gborg.PostgreSQL.org/project/pgreplication/projdisplay.php.
-4.28) چه گزينههايي براي رمزنگاري وجود دارد؟
- contrib/pgcrypto شامل توابع رمزنگاری زیادی است که می توان از آنها در دستورات
- SQL استفاده کرد.
- برای رمز کردن ارتباط بین client و server پایگاه داده حتماً گزینه SSL را بر
- روی پایگاه داده فعال کنیم.
- در نسخه 7.3 به بعد کلمات عبور کاربران به طور اتوماتیک به صورت رمز شده ذخیره می
- شود ولی در نسخه های قبلی باید گزینه PASSWORD_ENCRYPTION را در
- فایلpostgresql.conf فعال کنیم.
- می توان پایگاههای داده را روی یک فایل سیستم رمزشده نگاهداری کرد
-
-
-Extending PostgreSQL
-5.1) من يك تابع نوشتهام. چگونه آن را در psql اجرا كنم؟ چرا با اجراي آن core
-dump ميگيرم؟
-دلایل مختلفی می تواند باعث بروز این مشکل شود. اما قبل از همه، تابع خود را به
-صورت جدا تست کنید.
-5.2) چگونه ميتوانم در توليد نوعها و توابع جديد و جالب براي PostgreSQL همكاري
-و مشاركت داشته باشم؟
-کد خود را به گروه پستی pgsql-hackers ارسال کنید.
-5.3) چگونه ميتوانم يك تابع به زبان C بنويسم كه خروجي آن يك tuple (چند تايي)
-باشد؟
-در نسخه های 7.3 به بعد یک تابع می تواند یک جدول را به عنوان خروجی برگرداند. این
-ویژگی در توابعی که به زبانهای C و PL/PgSQL نوشته میشوند به طور کامل وجود دارد.
-راهنما برنامه نویسان را مطالعه کنید. یک مثال از نحوه برگرداندن یک جدول به عنوان
-خروجی در contrib/tablefunc آمده است.
-5.4) من يك فايل منبع را عوض كرده ام چرا در عمليات كامپيل مجدد آن، تغيير ديده
-نميشود؟
-Makefile برای فایلهای include شده وابستگیها را به درستی نشان نمی دهد. برای
-اطمینان از اینکه فایلی که عوض کرده اید حتماً دوباره کامپیل میشود دستور make
-clean را اجرا کنید. اگر از کامپیلر gcc استفاده می کنید می توانید از گزینه
-enable-depend-- در موقع اجرای برنامه configure استفاده کنید این گزینه باعث می
-شود که وابستگیها به طور اتوماتیک تولید شود.
\ No newline at end of file
+ 4.24) tcgfw+n+h+ m+y+t+w+a+n+ d+r+x+w+a+s+t+h+a+y+y+ a+z+ tcn+d+
+ p+a+y+gfa+h+ d+a+d+h+ t+w+l+y+d+ k+r+d+?+
+
+ d+r+ hka+l+ hka+ddr+ a+یn+ کa+r+ a+m+کa+n+
+ p+dkیr+ n+یs+t+. PostgreSQL f+q+tj a+m+کa+n+
+ d+r+x+w+a+s+t+ a+z+ p+a+یgfa+h+ d+a+d+h+ a+ی r+a+
+ m+ی d+h+d+ کh+ d+r+ hka+l+ hka+ddr+ b+h+ aMn+ m+t+c+l+
+ b+a+snیd+ w+ n+m+یt+w+a+n+ b+h+ tjw+r+ h+m+z+m+a+n+ a+z+
+ d+w+ p+a+یgfa+h+ d+a+d+h+ a+s+t+f+a+d+h+ کr+d+. a+l+b+t+h+
+ یک b+r+n+a+m+h+ کa+r+b+r+d+ی x+w+d+ m+ی
+ t+w+a+n+d+ b+h+ tjw+r+ h+m+z+m+a+n+ d+w+ p+a+یgfa+h+ d+a+d+h+
+ r+a+ m+w+r+d+ a+s+t+f+a+d+h+ q+r+a+r+ d+a+d+h+ w+ n+t+a+یg+ r+a+
+ b+a+ h+m+ t+r+کیb+ کn+d+ w+l+ی n+m+ی
+ t+w+a+n+d+ d+r+ یک d+r+x+w+a+s+t+ b+h+ h+r+ d+w+
+ p+a+یgfa+h+ d+a+d+h+ r+g+w+e+ کn+d+.
+
+ 4.25) tcgfw+n+h+ x+r+w+g+y+ y+k+ t+a+b+e+ m+y+t+w+a+n+d+ tcn+d+ r+d+y+f+
+ y+a+ s+t+w+n+ b+a+snd+?+
+
+ d+r+ n+s+x+h+ 7.3 x+r+w+g+ی یک t+a+b+e+ m+ی
+ t+w+a+n+d+ tcn+d+ r+d+یf+ یa+ tcn+d+ s+t+w+n+ b+a+snd+.
+ b+r+a+ی d+یd+n+ a+tjl+a+e+a+t+ b+یsnt+r+ b+h+
+ s+a+یt+ z+یr+ m+r+a+g+e+h+
+ کn+یd+:http://techdocs.postgresql.org/guides/SetReturningF
+ unctions
+
+ 4.26) d+r+ t+w+a+b+e+ PL/PgSQL tcr+a+ n+m+y+t+w+a+n+ b+a+ a+tjm+y+n+a+n+
+ g+d+a+w+l+ m+w+q+t+ r+a+ a+y+g+a+d+ y+a+ hkdkf+ k+r+d+?+
+
+ PL/PgSQL m+hkt+w+a+ی t+w+a+b+e+ r+a+ dkx+یr+h+ (cache)
+ m+ی کn+d+. یک a+tkr+ b+d+ g+a+n+b+ی
+ a+یn+ کa+r+ aMn+ a+s+t+ کh+ a+gfr+ d+r+ t+a+b+e+
+ a+z+ یک g+d+w+l+ m+w+q+t+ a+s+t+f+a+d+h+ snw+d+ w+
+ b+e+d+a+:+ aMn+ g+d+w+l+ hkdkf+ w+ یک g+d+w+l+
+ g+d+یd+ b+h+ g+a+ی aMn+ a+یg+a+d+ snw+d+,+ d+r+
+ f+r+a+x+w+a+n+ی m+g+d+d+ aMn+ t+a+b+e+,+ m+hkt+w+a+ی
+ dkx+یr+h+ snd+h+ t+a+b+e+ h+n+w+z+ b+h+ g+d+w+l+
+ q+d+یm+ی a+sna+r+h+ m+ی کn+d+ w+
+ b+n+a+b+r+a+یn+ a+g+r+a+ی t+a+b+e+ b+a+ a+snکa+l+
+ m+w+a+g+h+ m+ی snw+d+. r+a+h+ hkl+ a+یn+ m+snکl+
+ aMn+ a+s+t+ کh+ b+r+a+ی g+d+a+w+l+ m+w+q+t+ a+z+
+ d+s+t+w+r+ EXECUTE a+s+t+f+a+d+h+ snw+d+ کh+ a+یn+
+ کa+r+ s+b+b+ m+ی snw+d+ کh+ d+r+x+w+a+s+t+
+ b+r+a+ی h+r+ b+a+r+ a+g+r+a+ m+g+d+d+a+:+ p+یm+a+یsn
+ w+ t+f+s+یr+ snw+d+.
+
+ 4.27) tch+ gfz+y+n+h+h+a+y+y+ b+r+a+y+ t+k+r+a+r+ (replication) w+g+w+d+
+ d+a+r+d+?+
+
+ There are several master/slave replication options available. These
+ allow only the master to make database changes and the slave can only
+ do database reads. The bottom of
+ http://gborg.PostgreSQL.org/genpage?replication_research lists them. A
+ multi-master replication solution is being worked on at
+ http://gborg.PostgreSQL.org/project/pgreplication/projdisplay.php.
+
+ 4.28) tch+ gfz+y+n+h+h+a+y+y+ b+r+a+y+ r+m+z+n+gfa+r+y+ w+g+w+d+ d+a+r+d+?+
+
+ * contrib/pgcrypto sna+m+l+ t+w+a+b+e+ r+m+z+n+gfa+r+ی
+ z+یa+d+ی a+s+t+ کh+ m+ی t+w+a+n+ a+z+
+ aMn+h+a+ d+r+ d+s+t+w+r+a+t+ SQL a+s+t+f+a+d+h+ کr+d+.
+ * b+r+a+ی r+m+z+ کr+d+n+ a+r+t+b+a+tj b+یn+ client
+ w+ server p+a+یgfa+h+ d+a+d+h+ hkt+m+a+:+ gfz+یn+h+
+ SSL r+a+ b+r+ r+w+ی p+a+یgfa+h+ d+a+d+h+ f+e+a+l+
+ کn+یm+.
+ * d+r+ n+s+x+h+ 7.3 b+h+ b+e+d+ کl+m+a+t+ e+b+w+r+
+ کa+r+b+r+a+n+ b+h+ tjw+r+ a+t+w+m+a+t+یک b+h+
+ c+w+r+t+ r+m+z+ snd+h+ dkx+یr+h+ m+ی snw+d+
+ w+l+ی d+r+ n+s+x+h+ h+a+ی q+b+l+ی b+a+یd+
+ gfz+یn+h+ PASSWORD_ENCRYPTION r+a+ d+r+
+ f+a+یl+postgresql.conf f+e+a+l+ کn+یm+.
+ * m+ی t+w+a+n+ p+a+یgfa+h+h+a+ی d+a+d+h+ r+a+
+ r+w+ی یک f+a+یl+ s+یs+t+m+
+ r+m+z+snd+h+ n+gfa+h+d+a+r+ی کr+d+
+ _________________________________________________________________
+
+ Extending PostgreSQL
+
+ 5.1) m+n+ y+k+ t+a+b+e+ n+w+snt+h+a+m+. tcgfw+n+h+ aMn+ r+a+ d+r+ psql
+ a+g+r+a+ k+n+m+?+ tcr+a+ b+a+ a+g+r+a+y+ aMn+ core dump m+y+gfy+r+m+?+
+
+ d+l+a+یl+ m+x+t+l+f+ی m+ی t+w+a+n+d+ b+a+e+tk
+ b+r+w+z+ a+یn+ m+snکl+ snw+d+. a+m+a+ q+b+l+ a+z+ h+m+h+,+
+ t+a+b+e+ x+w+d+ r+a+ b+h+ c+w+r+t+ g+d+a+ t+s+t+ کn+یd+.
+
+ 5.2) tcgfw+n+h+ m+y+t+w+a+n+m+ d+r+ t+w+l+y+d+ n+w+e+h+a+ w+ t+w+a+b+e+
+ g+d+y+d+ w+ g+a+l+b+ b+r+a+y+ PostgreSQL h+m+k+a+r+y+ w+ m+sna+r+k+t+
+ d+a+snt+h+ b+a+snm+?+
+
+ کd+ x+w+d+ r+a+ b+h+ gfr+w+h+ p+s+t+ی pgsql-hackers
+ a+r+s+a+l+ کn+یd+.
+
+ 5.3) tcgfw+n+h+ m+y+t+w+a+n+m+ y+k+ t+a+b+e+ b+h+ z+b+a+n+ C b+n+w+y+s+m+
+ k+h+ x+r+w+g+y+ aMn+ y+k+ tuple (tcn+d+ t+a+y+y+) b+a+snd+?+
+
+ d+r+ n+s+x+h+ h+a+ی 7.3 b+h+ b+e+d+ یک t+a+b+e+
+ m+ی t+w+a+n+d+ یک g+d+w+l+ r+a+ b+h+ e+n+w+a+n+
+ x+r+w+g+ی b+r+gfr+d+a+n+d+. a+یn+ w+یzjgfی
+ d+r+ t+w+a+b+e+ی کh+ b+h+ z+b+a+n+h+a+ی C w+
+ PL/PgSQL n+w+snt+h+ m+یsnw+n+d+ b+h+ tjw+r+ کa+m+l+
+ w+g+w+d+ d+a+r+d+. r+a+h+n+m+a+ b+r+n+a+m+h+ n+w+یs+a+n+ r+a+
+ m+tja+l+e+h+ کn+یd+. یک m+tka+l+ a+z+ n+hkw+h+
+ b+r+gfr+d+a+n+d+n+ یک g+d+w+l+ b+h+ e+n+w+a+n+
+ x+r+w+g+ی d+r+ contrib/tablefunc aMm+d+h+ a+s+t+.
+
+ 5.4) m+n+ y+k+ f+a+y+l+ m+n+b+e+ r+a+ e+w+dd k+r+d+h+ a+m+ tcr+a+ d+r+
+ e+m+l+y+a+t+ k+a+m+p+y+l+ m+g+d+d+ aMn+,+ t+i+y+y+r+ d+y+d+h+ n+m+y+
+ snw+d+?+
+
+ Makefile b+r+a+ی f+a+یl+h+a+ی include snd+h+
+ w+a+b+s+t+gfیh+a+ r+a+ b+h+ d+r+s+t+ی n+sna+n+ n+m+ی
+ d+h+d+. b+r+a+ی a+tjm+یn+a+n+ a+z+ a+یn+کh+
+ f+a+یl+ی کh+ e+w+dd کr+d+h+ a+یd+
+ hkt+m+a+:+ d+w+b+a+r+h+ کa+m+p+یl+ m+یsnw+d+
+ d+s+t+w+r+ make clean r+a+ a+g+r+a+ کn+یd+. a+gfr+ a+z+
+ کa+m+p+یl+r+ gcc a+s+t+f+a+d+h+ m+ی
+ کn+یd+ m+ی t+w+a+n+یd+ a+z+ gfz+یn+h+
+ enable-depend-- d+r+ m+w+q+e+ a+g+r+a+ی b+r+n+a+m+h+ configure
+ a+s+t+f+a+d+h+ کn+یd+ a+یn+ gfz+یn+h+ b+a+e+tk
+ m+ی snw+d+ کh+ w+a+b+s+t+gfیh+a+ b+h+ tjw+r+
+ a+t+w+m+a+t+یک t+w+l+یd+ snw+d+.
-PostgreSQL(¥Ý¥¹¥È¥°¥ì¥¹¡¦¥¥å¡¼¡¦¥¨¥ë)¤Ë¤Ä¤¤¤Æ¤è¤¯¤¢¤ë¼ÁÌä¤È¤½¤Î²òÅú(FAQ)
-¸¶Ê¸ºÇ½ª¹¹¿·Æü: Sun Jan 9 14:44:04 EST 2005
-
-Maintainer of Japanese Translation: Jun Kuwamura (juk at PostgreSQL.jp)
-
-¤³¤Îʸ½ñ¤ÎºÇ¿·ÈÇ¤Ï "http://www.postgresql.org/files/documentation/faqs/
-FAQ.html"> http://www.postgresql.org/files/documentation/faqs/FAQ.html
-
-¤Ç¸«¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
-
-¥×¥é¥Ã¥È¥Û¡¼¥à¤ËÆÃͤμÁÌä¤Ë¤Ä¤¤¤Æ¤Ï: "http://www.postgresql.org/docs/faq/">
-http://www.postgresql.org/docs/faq/
-
-
-¤Ë²óÅú¤¬¤¢¤ê¤Þ¤¹¡£
-
-(°Ê²¼¡¢Ìõ¼Ô¤Ë¤è¤ëÃí¼á¤ò [ÌõÃí¡§ ¤È ] ¤È¤Ç°Ï¤ó¤Çµ¤·¤Þ¤¹¡£)
+ PostgreSQL(¥Ý¥¹¥È¥°¥ì¥¹¡¦¥¥å¡¼¡¦¥¨¥ë)¤Ë¤Ä¤¤¤Æ¤è¤¯¤¢¤ë¼ÁÌä¤È¤½¤Î²òÅú(FAQ)
+
+ ¸¶Ê¸ºÇ½ª¹¹¿·Æü: Sun Jan 9 14:44:04 EST 2005
+
+ Maintainer of Japanese Translation: Jun Kuwamura (juk at
+ PostgreSQL.jp)
+
+ ¤³¤Îʸ½ñ¤ÎºÇ¿·ÈǤÏ
+ http://www.postgresql.org/files/documentation/faqs/FAQ.html
+ ¤Ç¸«¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
+
+ ¥×¥é¥Ã¥È¥Û¡¼¥à¤ËÆÃͤμÁÌä¤Ë¤Ä¤¤¤Æ¤Ï:
+ http://www.postgresql.org/docs/faq/
+ ¤Ë²óÅú¤¬¤¢¤ê¤Þ¤¹¡£
+(°Ê²¼¡¢Ìõ¼Ô¤Ë¤è¤ëÃí¼á¤ò [ÌõÃí¡§ ¤È ] ¤È¤Ç°Ï¤ó¤Çµ¤·¤Þ¤¹¡£)
[ÌõÃí¡§
ÆüËܸìÈÇÀ½ºî¤Ë¤Ä¤¤¤Æ¤Î¥á¥â¤ÏºÇ¸åÈø¤Ø°Üư¤·¤Þ¤·¤¿¡£
http://www.rccm.co.jp/~juk/pgsql/
http://www.linux.or.jp/JF/
- ¤³¤ÎÏÂÌõ¤Ë¤Ä¤¤¤Æ¤ªµ¤¤Å¤¤ÎÅÀ¤Ï(juk at PostgreSQL.jp)¤Þ¤Ç¥á¡¼¥ë¤Ç¤ª´ó¤»²¼¤µ¤¤¡£
+ ¤³¤ÎÏÂÌõ¤Ë¤Ä¤¤¤Æ¤ªµ¤¤Å¤¤ÎÅÀ¤Ï(juk at PostgreSQL.jp)¤Þ¤Ç¥á¡¼¥ë¤Ç¤ª´ó¤»²¼¤µ¤¤¡£
2005ǯ01·î12Æü ·¬Â¼ ½á
]
-
-¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬
-
- °ìÈÌŪ¤Ê¼ÁÌä
-
-1.1) PostgreSQL¤È¤Ï²¿¤Ç¤¹¤«¡©²¿¤ÈÆÉ¤ß¤Þ¤¹¤«¡©
-1.2) PostgreSQL¤ÎÃøºî¸¢¤Ï¤É¤¦¤Ê¤Ã¤Æ¤Þ¤¹¤«¡©
-1.3) PostgreSQL¤Îưºî¤¹¤ëUnix¥×¥é¥Ã¥È¥Û¡¼¥à¤Ï¡©
-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) ¾¤ÎDBMS¤ÈÈæ¤Ù¤ÆPostgreSQL¤Ï¤É¤¦¤Ê¤Î¤Ç¤¹¤«¡©
-1.15) PostgreSQL¤ò»ñ¶âÌ̤DZç½õ¤¹¤ë¤Ë¤Ï¤É¤¦¤¹¤ì¤Ð¤è¤¤¤Ç¤¹¤«¡©
-
- ¥æ¡¼¥¶¡¼¡¦¥¯¥é¥¤¥¢¥ó¥È¤Î¼ÁÌä
-
-2.1) PostgreSQL ¤Î ODBC ¥É¥é¥¤¥Ð¡¼¤Ï¤¢¤ê¤Þ¤¹¤«¡©
-2.2) PostgreSQL ¤ò Web ¥Ú¡¼¥¸¤ÈÏ¢·È¤µ¤»¤ë¤Ë¤Ï¤É¤ó¤Ê¥Ä¡¼¥ë¤¬¤¢¤ê¤Þ¤¹¤«¡©
-2.3) PostgreSQL ¤Ë¥°¥é¥Õ¥£¥«¥ë¡¦¥æ¡¼¥¶¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹¤Ï¤¢¤ê¤Þ¤¹¤«¡©
-2.4) ¤É¤Î¤è¤¦¤Ê¸À¸ì¤Ç PostgreSQL ¤ÈÄÌ¿®¤Ç¤¤¹¤«¡©
-
- ´ÉÍý¾å¤Î¼ÁÌä
-
-3.1) ¤É¤Î¤è¤¦¤Ë¤¹¤ì¤Ð /usr/local/pgsql °Ê³°¤Î¾ì½ê¤Ë¥¤¥ó¥¹¥È¡¼¥ë¤Ç¤¤Þ¤¹¤«¡©
-3.2) postmaster ¤òÁö¤é¤»¤ë¤È¡¢ Bad System Call ¤È¤«¥³¥¢¡¦¥À¥ó¥×¤·¤¿¤È¤Î¥á¥Ã¥»¡¼
-¥¸¤¬½Ð¤Þ¤¹¡£¤Ê¤¼¤Ç¤¹¤«¡©
-3.3) postmaster ¤òÁö¤é¤»¤è¤¦¤È¤¹¤ë¤È¡¢ IpcMemoryCreate ¥¨¥é¡¼¤¬½Ð¤Þ¤¹¡£¤Ê¤¼¤Ç¤¹
-¤«¡©
-3.4) postmaster¤òÁö¤é¤»¤è¤¦¤È¤¹¤ë¤È¡¢ IpcSemaphoreCreate ¥¨¥é¡¼¤¬½Ð¤Þ¤¹¡£¤Ê¤¼¤Ç
-¤¹¤«¡©
-3.5) ¾¤Î¥Û¥¹¥È¤«¤é¤ÎÀܳ¤Ï¤É¤Î¤è¤¦¤ËÀ©¸æ¤·¤Þ¤¹¤«¡©
-3.6) ¤è¤êÎɤ¤Àǽ¤òÆÀ¤ë¤¿¤á¤Ë¤Ï¡¢¥Ç¡¼¥¿¥Ù¡¼¥¹¡¦¥¨¥ó¥¸¥ó¤ò¤É¤Î¤è¤¦¤ËÄ´À°¤¹¤ì¤ÐÎÉ
-¤¤¤Ç¤¹¤«¡©
-3.7) ¤É¤Î¤è¤¦¤Ê¥Ç¥Ð¥°µ¡Ç½¤¬»È¤¨¤Þ¤¹¤«¡©
-3.8) Àܳ¤·¤è¤¦¤È¤¹¤ë¤È¤¤Ë 'Sorry, too many clients' ¤¬½Ð¤ë¤Î¤Ï¤Ê¤¼¤Ç¤¹¤«¡©
-3.9) pgsql_tmp ¥Ç¥£¥ì¥¯¥È¥ê¤ÎÃæ¤Ë¤Ï²¿¤¬¤¢¤ê¤Þ¤¹¤«¡©
-3.10) PostgreSQL¤Î¥á¥¸¥ã¡¼¥ê¥ê¡¼¥¹¤ò¥¢¥Ã¥×¥Ç¡¼¥È¤¹¤ë¤Î¤Ë¥À¥ó¥×¤È¥ê¥¹¥È¥¢¤ò¤·¤Ê
-¤¯¤Æ¤Ï¤Ê¤é¤Ê¤¤¤Î¤Ï¤Ê¤¼¤Ç¤¹¤«¡©
-3.11) ¥Ï¡¼¥É¥¦¥§¥¢¤Ë¤Ï¤É¤ó¤Ê¥³¥ó¥Ô¥å¡¼¥¿¤ò»È¤¨¤Ð¤è¤¤¤Ç¤¹¤«¡©
-
- Áàºî¾å¤Î¼ÁÌä
-
-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) °äÅÁŪÌ䤤¹ç¤ï¤»ºÇŬ²½¤È¤Ï²¿¤Ç¤¹¤«¡©
-4.12) Àµµ¬É½¸½¤Ç¤Î¸¡º÷¤äÂçʸ»ú¤È¾®Ê¸»ú¤È¤ò¶èÊ̤·¤Ê¤¤Àµµ¬É½¸½¸¡º÷¤Ï¤É¤Î¤è¤¦¤Ë¼Â
-¸½¤·¤Þ¤¹¤«¡©Âçʸ»ú¤È¾®Ê¸»ú¤È¤ò¶èÊ̤·¤Ê¤¤¸¡º÷¤Î¤¿¤á¤Î¥¤¥ó¥Ç¥Ã¥¯¥¹¤Ï¤É¤Î¤è¤¦¤Ë»È
-¤¤¤Þ¤¹¤«¡©
-4.13) Ì䤤¹ç¤ï¤»¤ÎÃæ¤Ç¡¢¥Õ¥£¡¼¥ë¥É¤¬ NULL ¤Ç¤¢¤ë¤³¤È¤ò¸¡½Ð¤¹¤ë¤Ë¤Ï¤É¤¦¤·¤Þ¤¹¤«
-¡©
-4.14) ¿§¡¹¤Êʸ»ú·¿¤Î¤½¤ì¤¾¤ì¤Î°ã¤¤¤Ï²¿¤Ç¤¹¤«¡©
-4.15.1) ÄÌÈÖ(serial)¡¿¼«Æ°Áýʬ¥Õ¥£¡¼¥ë¥É¤Ï¤É¤Î¤è¤¦¤Ë¤Ä¤¯¤ê¤Þ¤¹¤«¡©
-4.15.2) SERIAL¥Ç¡¼¥¿·¿¤ËÁÞÆþ¤µ¤ì¤ëÃͤϡ¢¤É¤¦¤¹¤ì¤ÐÆÀ¤é¤ì¤Þ¤¹¤«¡©
-4.15.3) currval() ¤Ï¾¤Î¥æ¡¼¥¶¤È¤Î¶¥¹ç¾õÂ֤˴٤뤳¤È¤Ï¤Ê¤¤¤Ç¤¹¤«¡©
-4.15.4) ¥È¥é¥ó¥¶¥¯¥·¥ç¥ó¤¬ÃæÃǤ·¤¿¤È¤¤Ë¤â¤¦¤¤¤Á¤É¥·¡¼¥±¥ó¥¹Èֹ椬»È¤ï¤ì¤Ê¤¤¤Î
-¤Ï¤Ê¤¼¤Ç¤¹¤«¡©¥·¡¼¥±¥ó¥¹¡¿SERIAL¥«¥é¥à¤Ë¶õ¤¤¬¤¢¤ë¤Î¤Ï¤Ê¤¼¤Ç¤¹¤«¡©
-4.16) OID ¤È¤Ï²¿¤Ç¤¹¤«¡© TID ¤È¤Ï²¿¤Ç¤¹¤«¡©
-4.17) PostgreSQL ¤Ç»È¤ï¤ì¤ë¤¤¤¯¤Ä¤«¤ÎÍѸì¤Î°ÕÌ£¤Ï²¿¤Ç¤¹¤«¡©
-4.18) ¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸ "ERROR: Memory exhausted in AllocSetAlloc()"¤¬½Ð¤ë¤Î¤Ï¤Ê
-¤¼¤Ç¤¹¤«¡©
-4.19) ¤É¤Î¥Ð¡¼¥¸¥ç¥ó¤Î PostgreSQL ¤òÁö¤é¤»¤Æ¤¤¤ë¤Î¤«¤òÄ´¤Ù¤ë¤Ë¤Ï¤É¤¦¤·¤Þ¤¹¤«¡©
-4.20) ¥é¡¼¥¸¥ª¥Ö¥¸¥§¥¯¥È¤ÎÁàºî¤Ç¡¢invalid large obj descriptor¤È½Ð¤ë¤Î¤Ï¤Ê¤¼¤Ç
-¤¹¤«¡©
-4.21) ¸½ºß¤Î»þ¹ï¤¬¥Ç¥Õ¥©¥ë¥È¤È¤Ê¤ë¤è¤¦¤Ê¥«¥é¥à¤Ï¤É¤Î¤è¤¦¤Ë¤Ä¤¯¤ê¤Þ¤¹¤«¡©
-4.22) ¤Ê¤¼¡¢IN¤ò»È¤¦ÉûÌ䤤¹ç¤ï¤»¤¬¤È¤Æ¤âÃÙ¤¤¤Î¤Ç¤¹¤«¡©
-4.23) ³°Éô·ë¹ç(outer join)¤Ï¤É¤Î¤è¤¦¤Ë¼Â¸½¤·¤Þ¤¹¤«?
-4.24) Ê£¿ô¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¤ò»È¤¦Ì䤤¹ç¤ï¤»¤Ï¤É¤Î¤è¤¦¤Ë¤¹¤ì¤Ð¤Ç¤¤Þ¤¹¤«¡©
-4.25) ´Ø¿ô¤ÇÊ£¿ô¤Î¥í¥¦¤Þ¤¿¤Ï¥«¥é¥à¤òÊÖ¤¹¤Ë¤Ï¤É¤¦¤·¤Þ¤¹¤«¡©
-4.26) ¤Ê¤¼¡¢PL/PgSQL ´Ø¿ô¤ÎÃæ¤«¤é°ì»þ¥Æ¡¼¥Ö¥ë¤ò³Î¼Â¤Ë create/drop ¤¹¤ë¤³¤È¤¬¤Ç
-¤¤Ê¤¤¤Î¤Ç¤·¤ç¤¦¤«¡©
-4.27) ¤É¤Î¤è¤¦¤Ê°Å¹æ²½¥ª¥×¥·¥ç¥ó¤òÍøÍѤǤ¤Þ¤¹¤«?
-
- PostgreSQL¤Î³ÈÄ¥¤Ë¤Ä¤¤¤Æ¤Î¼ÁÌä
-
-5.1) ¼«Ê¬¤Ç½ñ¤¤¤¿¥æ¡¼¥¶ÄêµÁ´Ø¿ô¤ò psql ¤ÎÃæ¤Ç¼Â¹Ô¤¹¤ë¤È¥³¥¢¡¦¥À¥ó¥×¤·¤Æ¤·¤Þ¤¦¤Î
-¤Ï¤Ê¤¼¤Ç¤¹¤«¡©
-5.2) PostgreSQL ÍѤ˽ñ¤¤¤¿¤Á¤ç¤Ã¤ÈÁÇŨ¤Ê¿·¤·¤¤·¿¤ä´Ø¿ô¤òÄ󶡤·¤Æ¥×¥í¥¸¥§¥¯¥È¤Ë
-¹×¸¥¤·¤¿¤¤¤Î¤Ç¤¹¤¬¡©
-5.3) ¥¿¥×¥ë¤òÊÖ¤¹ C¸À¸ì¤Î´Ø¿ô¤Ï¤É¤Î¤è¤¦¤Ë½ñ¤¤Þ¤¹¤«¡©
-5.4) ¥½¡¼¥¹¡¦¥Õ¥¡¥¤¥ë¤òÊѹ¹¤·¤Þ¤·¤¿¡£ºÆ¥³¥ó¥Ñ¥¤¥ë¤·¤Æ¤âÊѲ½¤¬¸«¤é¤ì¤Ê¤¤¤Î¤Ï¤Ê¤¼
-¤Ç¤¹¤«¡©
-
-¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬
-
- °ìÈÌŪ¤Ê¼ÁÌä
-
-1.1) PostgreSQL ¤È¤Ï²¿¤Ç¤¹¤«¡©²¿¤ÈÆÉ¤ß¤Þ¤¹¤«¡©
-
-PostgreSQL¤ÏPost-Gres-Q-L(¥Ý¥¹¥È - ¥°¥ì¥¹ - ¥¥å¡¼ - ¥¨¥ë) ¤Èȯ²»¤·¤Þ¤¹¡£
-
-PostgreSQL ¤Ï¼¡À¤Âå DBMS ¸¦µæÍѤΥץí¥È¥¿¥¤¥×¤Ç¤¢¤Ã¤¿ POSTGRES ¥Ç¡¼¥¿¥Ù¡¼¥¹´ÉÍý
-¥·¥¹¥Æ¥à¤Î²þÎÉÈǤǤ¹¡Ê¤³¤Î¤¿¤á¡¢º£¤Ç¤â¤È¤¤É¤ "Postgres" ¤È¸Æ¤Ð¤ì¤ë¤³¤È¤¬¤¢¤ê
-¤Þ¤¹¡Ë¡£PostgreSQL ¤Ï POSTGRES ¤Î¶¯ÎϤʥǡ¼¥¿¡¦¥â¥Ç¥ë¤ÈËÉ٤ʥǡ¼¥¿¡¦¥¿¥¤¥×(·¿)
-¤òÊÝ»ý¤·¤Ê¤¬¤é¡¢POSTGRES ¤Ç»È¤ï¤ì¤¿ PostQuel Ì䤤¹ç¤ï¤»¸À¸ì¤ò¡¢³ÈÄ¥¤·¤¿ SQL ¤Î
-¥µ¥Ö¥»¥Ã¥È¤ËÃÖ¤´¹¤¨¤Æ¤¤¤Þ¤¹¡£PostgreSQL ¤Ï̵ÎÁ¤Ç´°Á´¤Ê¥½¡¼¥¹¤òÍøÍѤǤ¤Þ¤¹¡£
-
-PostgreSQL ¤Î³«È¯¤Ï¡¢PostgreSQL ³«È¯¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤Ë»²²Ã¤·¤Æ¤¤¤ë³«È¯¼Ôã¤Î¥Á
-¡¼¥à¤Ç¤¹¤Ù¤Æ¹Ô¤Ê¤ï¤ì¤Æ¤¤¤Þ¤¹¡£¸½ºß¤ÎºÂĹ¤Ï Marc G. Fournier (
-¡¼¥à¤¬ PostgreSQL ³«È¯¤Î¤¹¤Ù¤Æ¤ÎÌÌÅݤò¤ß¤Æ¤¤¤Þ¤¹¡£¤³¤Î¥Á¡¼¥à¤Ï¥³¥ß¥å¥Ë¥Æ¥£¥×¥í
-¥¸¥§¥¯¥È¤Ç¤¢¤ê¡¢¤¤¤«¤Ê¤ë´ë¶È¤Ë¤è¤Ã¤Æ¤âÀ©¸æ¤ò¼õ¤±¤Þ¤»¤ó¡£»²²Ã¤·¤¿¤±¤ì¤Ð¡¢ http:/
-/www.postgresql.org/files/documentation/faqs/FAQ_DEV.html ¤Ë¤¢¤ë³«È¯¼Ô¸þ¤±¤ÎFAQ
-¤ò¸«¤Æ¤¯¤À¤µ¤¤¡£
-
-Postgres95-1.01 ¤ÎÃæ¿´Åª¤Ê³«È¯¼Ô¤Ï Andrew Yu ¤È Jolly Chen ¤Ç¤·¤¿¤¬¡¢¤½¤Î¾ÂçÀª
-¤Î¿Í¡¹¤¬¤³¤Î¥³¡¼¥É¤Î°Ü¿¢¡¢¥Æ¥¹¥È¡¢¥Ç¥Ð¥°¡¢¤ª¤è¤Ó¡¢²þÎɤ˻²²Ã¤·¤Þ¤·¤¿¡£
-PostgreSQL ¤ÎÇÉÀ¸¸µ¥³¡¼¥É¤Ç¤¢¤ë Postgres ¤Ï¥«¥ê¥Õ¥©¥ë¥Ë¥¢Âç³Ø¥Ð¡¼¥¯¥ì¥¤¹»¤Ë¤ª¤¤
-¤Æ¡¢ Michael Stonebraker ¶µ¼ø¤Î»Ø´ø¤Î¤â¤È¡¢Â¿¤¯¤Î³ØÀ¸¡¢Â´¶ÈÀ¸¡¢ËÜ¿¦¤Î¥×¥í¥°¥é¥Þ
-¤¿¤Á¤ÎÅØÎϤˤè¤êºî¤é¤ì¤Þ¤·¤¿¡£
-
-¥Ð¡¼¥¯¥ì¥¤¤Ë¤ª¤±¤ë¤³¤Î¥½¥Õ¥È¥¦¥§¥¢¤Î¤â¤È¤Î̾Á°¤Ï Postgres ¤Ç¤·¤¿¤¬¡¢SQL ¤Îµ¡Ç½
-¤¬Äɲ䵤줿 1995 ǯ¤Ë¤½¤Î̾Á°¤Ï Postgres95 ¤ËÊѹ¹¤µ¤ì¡¢1996 ǯ¤Î½ª¤ê¤Ë¤½¤Î̾Á°
-¤Ï PostgreSQL ¤ËÊѹ¹¤µ¤ì¤Þ¤·¤¿¡£
-
-1.2) PostgreSQL ¤ÎÃøºî¸¢¤Ï¤É¤¦¤Ê¤Ã¤Æ¤Þ¤¹¤«¡©
-
-PostgreSQL ¤Ï²¼µ¤ÎÃøºî¸¢¤Ë½¾¤¤¤Þ¤¹¡£
-
+ _________________________________________________________________
+
+ °ìÈÌŪ¤Ê¼ÁÌä
+
+ 1.1) PostgreSQL¤È¤Ï²¿¤Ç¤¹¤«¡© ²¿¤ÈÆÉ¤ß¤Þ¤¹¤«¡©
+ 1.2) PostgreSQL¤ÎÃøºî¸¢¤Ï¤É¤¦¤Ê¤Ã¤Æ¤Þ¤¹¤«¡©
+ 1.3) PostgreSQL¤Îưºî¤¹¤ëUnix¥×¥é¥Ã¥È¥Û¡¼¥à¤Ï¡©
+ 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) ¾¤ÎDBMS¤ÈÈæ¤Ù¤ÆPostgreSQL¤Ï¤É¤¦¤Ê¤Î¤Ç¤¹¤«¡©
+ 1.15) PostgreSQL¤ò»ñ¶âÌ̤DZç½õ¤¹¤ë¤Ë¤Ï¤É¤¦¤¹¤ì¤Ð¤è¤¤¤Ç¤¹¤«¡©
+
+ ¥æ¡¼¥¶¡¼¡¦¥¯¥é¥¤¥¢¥ó¥È¤Î¼ÁÌä
+
+ 2.1) PostgreSQL ¤Î ODBC ¥É¥é¥¤¥Ð¡¼¤Ï¤¢¤ê¤Þ¤¹¤«¡©
+ 2.2) PostgreSQL ¤ò Web
+ ¥Ú¡¼¥¸¤ÈÏ¢·È¤µ¤»¤ë¤Ë¤Ï¤É¤ó¤Ê¥Ä¡¼¥ë¤¬¤¢¤ê¤Þ¤¹¤«¡©
+ 2.3) PostgreSQL ¤Ë¥°¥é¥Õ¥£¥«¥ë¡¦¥æ¡¼¥¶¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹¤Ï¤¢¤ê¤Þ¤¹¤«¡©
+ 2.4) ¤É¤Î¤è¤¦¤Ê¸À¸ì¤Ç PostgreSQL ¤ÈÄÌ¿®¤Ç¤¤¹¤«¡©
+
+ ´ÉÍý¾å¤Î¼ÁÌä
+
+ 3.1) ¤É¤Î¤è¤¦¤Ë¤¹¤ì¤Ð /usr/local/pgsql °Ê³°¤Î¾ì½ê¤Ë¥¤¥ó¥¹¥È¡¼¥ë¤Ç¤
+ ¤Þ¤¹¤«¡©
+ 3.2) postmaster ¤òÁö¤é¤»¤ë¤È¡¢ Bad System Call
+ ¤È¤«¥³¥¢¡¦¥À¥ó¥×¤·¤¿¤È¤Î¥á¥Ã¥»¡¼¥¸¤¬½Ð¤Þ¤¹¡£¤Ê¤¼¤Ç¤¹¤«¡©
+ 3.3) postmaster ¤òÁö¤é¤»¤è¤¦¤È¤¹¤ë¤È¡¢ IpcMemoryCreate
+ ¥¨¥é¡¼¤¬½Ð¤Þ¤¹¡£¤Ê¤¼¤Ç¤¹¤«¡©
+ 3.4) postmaster¤òÁö¤é¤»¤è¤¦¤È¤¹¤ë¤È¡¢ IpcSemaphoreCreate
+ ¥¨¥é¡¼¤¬½Ð¤Þ¤¹¡£¤Ê¤¼¤Ç¤¹¤«¡©
+ 3.5) ¾¤Î¥Û¥¹¥È¤«¤é¤ÎÀܳ¤Ï¤É¤Î¤è¤¦¤ËÀ©¸æ¤·¤Þ¤¹¤«¡©
+ 3.6) ¤è¤êÎɤ¤À
+ ǽ¤òÆÀ¤ë¤¿¤á¤Ë¤Ï¡¢¥Ç¡¼¥¿¥Ù¡¼¥¹¡¦¥¨¥ó¥¸¥ó¤ò¤É¤Î¤è¤¦¤ËÄ´À°¤¹¤ì¤ÐÎɤ¤¤Ç¤¹
+ ¤«¡©
+ 3.7) ¤É¤Î¤è¤¦¤Ê¥Ç¥Ð¥°µ¡Ç½¤¬»È¤¨¤Þ¤¹¤«¡©
+ 3.8) Àܳ¤·¤è¤¦¤È¤¹¤ë¤È¤¤Ë 'Sorry, too many clients'
+ ¤¬½Ð¤ë¤Î¤Ï¤Ê¤¼¤Ç¤¹¤«¡©
+ 3.9) pgsql_tmp ¥Ç¥£¥ì¥¯¥È¥ê¤ÎÃæ¤Ë¤Ï²¿¤¬¤¢¤ê¤Þ¤¹¤«¡©
+ 3.10)
+ PostgreSQL¤Î¥á¥¸¥ã¡¼¥ê¥ê¡¼¥¹¤ò¥¢¥Ã¥×¥Ç¡¼¥È¤¹¤ë¤Î¤Ë¥À¥ó¥×¤È¥ê¥¹¥È¥¢¤ò¤·
+ ¤Ê¤¯¤Æ¤Ï¤Ê¤é¤Ê¤¤¤Î¤Ï¤Ê¤¼¤Ç¤¹¤«¡©
+ 3.11) ¥Ï¡¼¥É¥¦¥§¥¢¤Ë¤Ï¤É¤ó¤Ê¥³¥ó¥Ô¥å¡¼¥¿¤ò»È¤¨¤Ð¤è¤¤¤Ç¤¹¤«¡©
+
+ Áàºî¾å¤Î¼ÁÌä
+
+ 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) °äÅÁŪÌ䤤¹ç¤ï¤»ºÇŬ²½¤È¤Ï²¿¤Ç¤¹¤«¡©
+ 4.12)
+ Àµµ¬É½¸½¤Ç¤Î¸¡º÷¤äÂçʸ»ú¤È¾®Ê¸»ú¤È¤ò¶èÊ̤·¤Ê¤¤Àµµ¬É½¸½¸¡º÷¤Ï¤É¤Î¤è¤¦¤Ë
+ ¼Â¸½¤·¤Þ¤¹¤«¡©Âçʸ»ú¤È¾®Ê¸»ú¤È¤ò¶èÊ̤·¤Ê¤¤¸¡º÷¤Î¤¿¤á¤Î¥¤¥ó¥Ç¥Ã¥¯¥¹¤Ï¤É
+ ¤Î¤è¤¦¤Ë»È¤¤¤Þ¤¹¤«¡©
+ 4.13) Ì䤤¹ç¤ï¤»¤ÎÃæ¤Ç¡¢¥Õ¥£¡¼¥ë¥É¤¬ NULL
+ ¤Ç¤¢¤ë¤³¤È¤ò¸¡½Ð¤¹¤ë¤Ë¤Ï¤É¤¦¤·¤Þ¤¹¤«¡©
+ 4.14) ¿§¡¹¤Êʸ»ú·¿¤Î¤½¤ì¤¾¤ì¤Î°ã¤¤¤Ï²¿¤Ç¤¹¤«¡©
+ 4.15.1) ÄÌÈÖ(serial)¡¿¼«Æ°Áýʬ¥Õ¥£¡¼¥ë¥É¤Ï¤É¤Î¤è¤¦¤Ë¤Ä¤¯¤ê¤Þ¤¹¤«¡©
+ 4.15.2) SERIAL¥Ç¡¼¥¿·¿¤ËÁÞÆþ¤µ¤ì¤ëÃͤϡ¢¤É¤¦¤¹¤ì¤ÐÆÀ¤é¤ì¤Þ¤¹¤«¡©
+ 4.15.3) currval() ¤Ï¾¤Î¥æ¡¼¥¶¤È¤Î¶¥¹ç¾õÂ֤˴٤뤳¤È¤Ï¤Ê¤¤¤Ç¤¹¤«¡©
+ 4.15.4) ¥È¥é¥ó¥¶¥¯¥·¥ç¥ó¤¬ÃæÃǤ·¤¿¤È¤
+ ¤Ë¤â¤¦¤¤¤Á¤É¥·¡¼¥±¥ó¥¹Èֹ椬»È¤ï¤ì¤Ê¤¤¤Î¤Ï¤Ê¤¼¤Ç¤¹¤«¡©¥·¡¼¥±¥ó¥¹¡¿SERI
+ AL¥«¥é¥à¤Ë¶õ¤¤¬¤¢¤ë¤Î¤Ï¤Ê¤¼¤Ç¤¹¤«¡©
+ 4.16) OID ¤È¤Ï²¿¤Ç¤¹¤«¡© TID ¤È¤Ï²¿¤Ç¤¹¤«¡©
+ 4.17) PostgreSQL ¤Ç»È¤ï¤ì¤ë¤¤¤¯¤Ä¤«¤ÎÍѸì¤Î°ÕÌ£¤Ï²¿¤Ç¤¹¤«¡©
+ 4.18) ¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸ "ERROR: Memory exhausted in
+ AllocSetAlloc()"¤¬½Ð¤ë¤Î¤Ï¤Ê¤¼¤Ç¤¹¤«¡©
+ 4.19) ¤É¤Î¥Ð¡¼¥¸¥ç¥ó¤Î PostgreSQL
+ ¤òÁö¤é¤»¤Æ¤¤¤ë¤Î¤«¤òÄ´¤Ù¤ë¤Ë¤Ï¤É¤¦¤·¤Þ¤¹¤«¡©
+ 4.20) ¥é¡¼¥¸¥ª¥Ö¥¸¥§¥¯¥È¤ÎÁàºî¤Ç¡¢invalid large obj
+ descriptor¤È½Ð¤ë¤Î¤Ï¤Ê¤¼¤Ç¤¹¤«¡©
+ 4.21)
+ ¸½ºß¤Î»þ¹ï¤¬¥Ç¥Õ¥©¥ë¥È¤È¤Ê¤ë¤è¤¦¤Ê¥«¥é¥à¤Ï¤É¤Î¤è¤¦¤Ë¤Ä¤¯¤ê¤Þ¤¹¤«¡©
+ 4.22) ¤Ê¤¼¡¢IN¤ò»È¤¦ÉûÌ䤤¹ç¤ï¤»¤¬¤È¤Æ¤âÃÙ¤¤¤Î¤Ç¤¹¤«¡©
+ 4.23) ³°Éô·ë¹ç(outer join)¤Ï¤É¤Î¤è¤¦¤Ë¼Â¸½¤·¤Þ¤¹¤«?
+ 4.24) Ê£¿ô¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¤ò»È¤¦Ì䤤¹ç¤ï¤»¤Ï¤É¤Î¤è¤¦¤Ë¤¹¤ì¤Ð¤Ç¤¤Þ¤¹¤«¡©
+ 4.25) ´Ø¿ô¤ÇÊ£¿ô¤Î¥í¥¦¤Þ¤¿¤Ï¥«¥é¥à¤òÊÖ¤¹¤Ë¤Ï¤É¤¦¤·¤Þ¤¹¤«¡©
+ 4.26) ¤Ê¤¼¡¢PL/PgSQL ´Ø¿ô¤ÎÃæ¤«¤é°ì»þ¥Æ¡¼¥Ö¥ë¤ò³Î¼Â¤Ë create/drop
+ ¤¹¤ë¤³¤È¤¬¤Ç¤¤Ê¤¤¤Î¤Ç¤·¤ç¤¦¤«¡©
+ 4.27) ¤É¤Î¤è¤¦¤Ê°Å¹æ²½¥ª¥×¥·¥ç¥ó¤òÍøÍѤǤ¤Þ¤¹¤«?
+
+ PostgreSQL¤Î³ÈÄ¥¤Ë¤Ä¤¤¤Æ¤Î¼ÁÌä
+
+ 5.1) ¼«Ê¬¤Ç½ñ¤¤¤¿¥æ¡¼¥¶ÄêµÁ´Ø¿ô¤ò psql
+ ¤ÎÃæ¤Ç¼Â¹Ô¤¹¤ë¤È¥³¥¢¡¦¥À¥ó¥×¤·¤Æ¤·¤Þ¤¦¤Î¤Ï¤Ê¤¼¤Ç¤¹¤«¡©
+ 5.2) PostgreSQL
+ ÍѤ˽ñ¤¤¤¿¤Á¤ç¤Ã¤ÈÁÇŨ¤Ê¿·¤·¤¤·¿¤ä´Ø¿ô¤òÄ󶡤·¤Æ¥×¥í¥¸¥§¥¯¥È¤Ë¹×¸¥¤·¤¿
+ ¤¤¤Î¤Ç¤¹¤¬¡©
+ 5.3) ¥¿¥×¥ë¤òÊÖ¤¹ C¸À¸ì¤Î´Ø¿ô¤Ï¤É¤Î¤è¤¦¤Ë½ñ¤¤Þ¤¹¤«¡©
+ 5.4)
+ ¥½¡¼¥¹¡¦¥Õ¥¡¥¤¥ë¤òÊѹ¹¤·¤Þ¤·¤¿¡£ºÆ¥³¥ó¥Ñ¥¤¥ë¤·¤Æ¤âÊѲ½¤¬¸«¤é¤ì¤Ê¤¤¤Î¤Ï
+ ¤Ê¤¼¤Ç¤¹¤«¡©
+ _________________________________________________________________
+
+ °ìÈÌŪ¤Ê¼ÁÌä
+
+ 1.1) PostgreSQL ¤È¤Ï²¿¤Ç¤¹¤«¡© ²¿¤ÈÆÉ¤ß¤Þ¤¹¤«¡©
+
+ PostgreSQL¤ÏPost-Gres-Q-L(¥Ý¥¹¥È - ¥°¥ì¥¹ - ¥¥å¡¼ - ¥¨¥ë)
+ ¤Èȯ²»¤·¤Þ¤¹¡£
+
+ PostgreSQL ¤Ï¼¡À¤Âå DBMS ¸¦µæÍѤΥץí¥È¥¿¥¤¥×¤Ç¤¢¤Ã¤¿ POSTGRES
+ ¥Ç¡¼¥¿¥Ù¡¼¥¹´ÉÍý¥·¥¹¥Æ¥à¤Î²þÎÉÈǤǤ¹¡Ê¤³¤Î¤¿¤á¡¢º£¤Ç¤â¤È¤¤É¤
+ "Postgres" ¤È¸Æ¤Ð¤ì¤ë¤³¤È¤¬¤¢¤ê¤Þ¤¹¡Ë¡£PostgreSQL ¤Ï POSTGRES
+ ¤Î¶¯ÎϤʥǡ¼¥¿¡¦¥â¥Ç¥ë¤ÈË
+ É٤ʥǡ¼¥¿¡¦¥¿¥¤¥×(·¿)¤òÊÝ»ý¤·¤Ê¤¬¤é¡¢POSTGRES ¤Ç»È¤ï¤ì¤¿ PostQuel
+ Ì䤤¹ç¤ï¤»¸À¸ì¤ò¡¢³ÈÄ¥¤·¤¿ SQL ¤Î¥µ¥Ö¥»¥Ã¥È¤ËÃÖ¤
+ ´¹¤¨¤Æ¤¤¤Þ¤¹¡£PostgreSQL ¤Ï̵ÎÁ¤Ç´°Á´¤Ê¥½¡¼¥¹¤òÍøÍѤǤ¤Þ¤¹¡£
+
+ PostgreSQL ¤Î³«È¯¤Ï¡¢PostgreSQL
+ ³«È¯¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤Ë»²²Ã¤·¤Æ¤¤¤ë³«È¯¼Ôã¤Î¥Á¡¼¥à¤Ç¤¹¤Ù¤Æ¹Ô¤Ê¤ï¤ì¤Æ¤¤
+ )¤Ç¤¹¡£(²¼µ¤Î1.6Àá¤Ë»²²Ã¤Î»ÅÊý¤¬¤¢¤ê¤Þ¤¹¡£)¸½ºß¡¢¤³¤Î¥Á¡¼¥à¤¬
+ PostgreSQL
+ ³«È¯¤Î¤¹¤Ù¤Æ¤ÎÌÌÅݤò¤ß¤Æ¤¤¤Þ¤¹¡£¤³¤Î¥Á¡¼¥à¤Ï¥³¥ß¥å¥Ë¥Æ¥£¥×¥í¥¸¥§¥¯¥È¤Ç
+ ¤¢¤ê¡¢¤¤¤«¤Ê¤ë´ë¶È¤Ë¤è¤Ã¤Æ¤âÀ©¸æ¤ò¼õ¤±¤Þ¤»¤ó¡£»²²Ã¤·¤¿¤±¤ì¤Ð¡¢
+ http://www.postgresql.org/files/documentation/faqs/FAQ_DEV.html
+ ¤Ë¤¢¤ë³«È¯¼Ô¸þ¤±¤ÎFAQ¤ò¸«¤Æ¤¯¤À¤µ¤¤¡£
+
+ Postgres95-1.01 ¤ÎÃæ¿´Åª¤Ê³«È¯¼Ô¤Ï Andrew Yu ¤È Jolly Chen
+ ¤Ç¤·¤¿¤¬¡¢¤½¤Î¾ÂçÀª¤Î¿Í¡¹¤¬¤³¤Î¥³¡¼¥É¤Î°Ü¿¢¡¢¥Æ¥¹¥È¡¢¥Ç¥Ð¥°¡¢¤ª¤è¤Ó¡¢
+ ²þÎɤ˻²²Ã¤·¤Þ¤·¤¿¡£PostgreSQL ¤ÎÇÉÀ¸¸µ¥³¡¼¥É¤Ç¤¢¤ë Postgres
+ ¤Ï¥«¥ê¥Õ¥©¥ë¥Ë¥¢Âç³Ø¥Ð¡¼¥¯¥ì¥¤¹»¤Ë¤ª¤¤¤Æ¡¢ Michael Stonebraker
+ ¶µ¼ø¤Î»Ø´ø¤Î¤â¤È¡¢Â¿¤¯¤Î³ØÀ¸¡¢Â´¶ÈÀ¸¡¢ËÜ¿¦¤Î¥×¥í¥°¥é¥Þ¤¿¤Á¤ÎÅØÎϤˤè¤ê
+ ºî¤é¤ì¤Þ¤·¤¿¡£
+
+ ¥Ð¡¼¥¯¥ì¥¤¤Ë¤ª¤±¤ë¤³¤Î¥½¥Õ¥È¥¦¥§¥¢¤Î¤â¤È¤Î̾Á°¤Ï Postgres
+ ¤Ç¤·¤¿¤¬¡¢SQL ¤Îµ¡Ç½¤¬Äɲ䵤줿 1995 ǯ¤Ë¤½¤Î̾Á°¤Ï Postgres95
+ ¤ËÊѹ¹¤µ¤ì¡¢1996 ǯ¤Î½ª¤ê¤Ë¤½¤Î̾Á°¤Ï PostgreSQL ¤ËÊѹ¹¤µ¤ì¤Þ¤·¤¿¡£
+
+ 1.2) PostgreSQL ¤ÎÃøºî¸¢¤Ï¤É¤¦¤Ê¤Ã¤Æ¤Þ¤¹¤«¡©
+
+ PostgreSQL ¤Ï²¼µ¤ÎÃøºî¸¢¤Ë½¾¤¤¤Þ¤¹¡£
[ÌõÃí¡§
- ÀµÊ¸¤Ï±Ñ¸ì¤Ç¤¹¡£»²¹Í¤È¤·¤Æ¡¢Ìõʸ¤òÊ»µ·ÇºÜ¤·¤Þ¤¹¡£
+ ÀµÊ¸¤Ï±Ñ¸ì¤Ç¤¹¡£»²¹Í¤È¤·¤Æ¡¢Ìõʸ¤òÊ»µ·ÇºÜ¤·¤Þ¤¹¡£
]
-PostgreSQL Data Base Management System
-
-Portions Copyright (c) 1996-2005, PostgreSQL Global Development Group Portions
-Copyright (c) 1994-6 Regents of the University of California
-
-Permission to use, copy, modify, and distribute this software and its
-documentation for any purpose, without fee, and without a written agreement is
-hereby granted, provided that the above copyright notice and this paragraph and
-the following two paragraphs appear in all copies.
-
-IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY FOR
-DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING LOST
-PROFITS, ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF
-THE UNIVERSITY OF CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
-DAMAGE.
-
-THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
-PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND
-THE UNIVERSITY OF CALIFORNIA HAS NO OBLIGATIONS TO PROVIDE MAINTENANCE,
-SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
-
+ PostgreSQL Data Base Management System
+
+ Portions Copyright (c) 1996-2005, PostgreSQL Global Development Group
+ Portions Copyright (c) 1994-6 Regents of the University of California
+
+ Permission to use, copy, modify, and distribute this software and its
+ documentation for any purpose, without fee, and without a written
+ agreement is hereby granted, provided that the above copyright notice
+ and this paragraph and the following two paragraphs appear in all
+ copies.
+
+ IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY
+ FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES,
+ INCLUDING LOST PROFITS, ARISING OUT OF THE USE OF THIS SOFTWARE AND
+ ITS DOCUMENTATION, EVEN IF THE UNIVERSITY OF CALIFORNIA HAS BEEN
+ ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES,
+ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE
+ PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE UNIVERSITY OF
+ CALIFORNIA HAS NO OBLIGATIONS TO PROVIDE MAINTENANCE, SUPPORT,
+ UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
POSTGRESQL ¥Ç¡¼¥¿¥Ù¡¼¥¹´ÉÍý¥·¥¹¥Æ¥à
ÉôÊ¬ÅªÃøºî¸¢ (c) 1996-2004, PostgreSQL¹ñºÝ³«È¯¥Á¡¼¥à
ÉôÊ¬ÅªÃøºî¸¢ (c) 1994-6 ¥«¥ê¥Õ¥©¥ë¥Ë¥¢Âç³ØËܹ»
- ËÜ¥½¥Õ¥È¥¦¥§¥¢¤ª¤è¤Ó¤½¤Îʸ½ñ°ì¼°¤Ï¾åµ¤ÎÃøºî¸¢É½¼¨¤È¡¢¤³¤Îʸ¾Ï
+ ËÜ¥½¥Õ¥È¥¦¥§¥¢¤ª¤è¤Ó¤½¤Îʸ½ñ°ì¼°¤Ï¾åµ¤ÎÃøºî¸¢É½¼¨¤È¡¢¤³¤Îʸ¾Ï
¤ª¤è¤Ó¤³¤ì¤Ë³¤¯Æó¤Ä¤ÎÃÊÍÁ´¤Æ¤ÎÊ£À½¤ËźÉÕ¤µ¤ì¤Æ¤¤¤ë¸Â¤ê¤Ë¤ª¤¤
¤Æ¡¢»ÈÍÑ¡¢Ê£À½¡¢½¤Àµ¤ª¤è¤ÓÇÛÉդεö²Ä¤ò¡¢¤¤¤«¤Ê¤ëÌÜŪ¤Ç¤¢¤Ã¤Æ¤â¡¢
̵½þ¤Ç¤«¤ÄƱ°Õ½ñ̵¤·¤Ë¹Ô¤Ê¤¨¤ë¤³¤È¤ò¤³¤³¤Ëǧ¤á¤Þ¤¹¡£
¤ò¼õ¤±¤Æ¤¤¤¿¤È¤·¤Æ¤â¡¢°ìÀÚ¤ÎÀÕǤ¤òÉ餤¤Þ¤»¤ó¡£
¥«¥ê¥Õ¥©¥ë¥Ë¥¢Âç³Ø¤Ï¡¢¾¦ÍÑÌÜŪ¤Ë¤ª¤±¤ë°ÅÌÛ¤ÎÊݾڤȡ¢ÆÃÄêÌÜŪ¤Ç
- ¤ÎŬ¹çÀ¤Ë´Ø¤·¤Æ¤Ï¤â¤È¤è¤ê¡¢¤³¤ì¤é¤Ë¸Â¤é¤º¡¢¤¤¤«¤Ê¤ëÊݾڤâÊü´þ¤¹
+ ¤ÎŬ¹çÀ¤Ë´Ø¤·¤Æ¤Ï¤â¤È¤è¤ê¡¢¤³¤ì¤é¤Ë¸Â¤é¤º¡¢¤¤¤«¤Ê¤ëÊݾڤâÊü´þ¤¹
¤ë¤³¤È¤òÌÀ¸À¤·¤Þ¤¹¡£°Ê²¼¤ËÍѰդµ¤ì¤¿¥½¥Õ¥È¥¦¥§¥¢¤Ï¡Ö¤½¤Î¤Þ¤Þ¡×¤ò
´ðËܸ¶Íý¤È¤·¡¢¥«¥ê¥Õ¥©¥ë¥Ë¥¢Âç³Ø¤Ï¤½¤ì¤ò°Ý»ý¡¢»Ù±ç¡¢¹¹¿·¡¢²þÎɤ¢
¤ë¤¤¤Ï½¤Àµ¤¹¤ëµÁ̳¤òÉ餤¤Þ¤»¤ó¡£
[ÌõÃí¡§
- Ãøºî¸¢¤Ë´Ø¤¹¤ëÀµÊ¸¤Ï¾åµ¤Î±Ñ¸ì¤Ë¤è¤ëɽµ¤Ç¤¹¡£ÆüËܸìÌõ¤Ï¤¢¤¯¤Þ¤Ç
+ Ãøºî¸¢¤Ë´Ø¤¹¤ëÀµÊ¸¤Ï¾åµ¤Î±Ñ¸ì¤Ë¤è¤ëɽµ¤Ç¤¹¡£ÆüËܸìÌõ¤Ï¤¢¤¯¤Þ¤Ç
»²¹Í¤Ç¤¹¡£
]
-¾åµ¤ÏBSD¥é¥¤¥»¥ó¥¹¤Ç¸Å¤¥ª¡¼¥×¥ó¥½¡¼¥¹¤Î¥é¥¤¥»¥ó¥¹¤Ç¤¹¡£¥½¡¼¥¹¥³¡¼¥É¤¬¤É¤Î¤è¤¦
-¤Ë»È¤ï¤ì¤è¤¦¤È¤âÀ©¸Â¤·¤Þ¤»¤ó¡£¹¥¤Þ¤·¤¤¤³¤È¤Ê¤Î¤Ç¡¢²æ¡¹¤â¤½¤ì¤òÊѤ¨¤ë¤Ä¤â¤ê¤Ï¤¢
-¤ê¤Þ¤»¤ó¡£
-
-1.3) PostgreSQL ¤Îưºî´Ä¶¤Ï¡©
-
-°ìÈÌŪ¤Ë¡¢ºÇ¶á¤ÎUnix¸ß´¹¥×¥é¥Ã¥È¥Û¡¼¥à¤Ç¤¢¤ì¤ÐPostgreSQL¤ò²ÔƯ¤µ¤»¤é¤ì¤ë¤Ï¤º¤Ç
-¤¹¡£¥ê¥ê¡¼¥¹¤Î»þÅÀ¤Ç¼ÂºÝ¤Ë¥Æ¥¹¥È¤ò¹Ô¤Ê¤Ã¤¿¤³¤È¤ÎÊó¹ð¤¬¤Ê¤µ¤ì¤¿¥×¥é¥Ã¥È¥Û¡¼¥à¤Ë
-¤Ä¤¤¤Æ¤Ï¥¤¥ó¥¹¥È¡¼¥ë¼ê°ú½ñ¤ËÎóµó¤·¤Æ¤¢¤ê¤Þ¤¹¡£
-
-1.4) Unix°Ê³°¤Î°Ü¿¢ÈǤǻȤ¨¤ë¤â¤Î¤Ï¡©
-
-¥Ð¡¼¥¸¥ç¥ó8.0¤Ë¤Ê¤ê¡¢PostgreSQL ¤Ï¡¢Win2000, WinXP, Win2003¤Ê¤É¤Î Microsoft
-Windows NT¥Ù¡¼¥¹¤Î¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¥·¥¹¥Æ¥à¤Ç¥Í¥¤¥Æ¥£¥Ö¤ËÁö¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤·¤¿¡£
-¥Ñ¥Ã¥±¡¼¥¸¤Ë¤Ê¤Ã¤¿¥¤¥ó¥¹¥È¡¼¥é¤¬¡¢http://pgfoundry.org/projects/pginstaller¤«¤é
-Æþ¼ê¤Ç¤¤Þ¤¹¡£ Windows (Win95, Win98, WinMe)¤Ê¤É¡¢MSDOS¥Ù¡¼¥¹¤Î¥Ð¡¼¥¸¥ç¥ó¤Ç¤Ï¡¢
-Cygwin ¤ò»È¤Ã¤ÆPostgreSQL¤òÁö¤é¤»¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
-
+ ¾åµ¤ÏBSD¥é¥¤¥»¥ó¥¹¤Ç¸Å¤¥ª¡¼¥×¥ó¥½¡¼¥¹¤Î¥é¥¤¥»¥ó¥¹¤Ç¤¹¡£¥½¡¼¥¹¥³¡¼¥É
+ ¤¬¤É¤Î¤è¤¦¤Ë»È¤ï¤ì¤è¤¦¤È¤âÀ©¸Â¤·¤Þ¤»¤ó¡£¹¥¤Þ¤·¤¤¤³¤È¤Ê¤Î¤Ç¡¢²æ¡¹¤â¤½¤ì
+ ¤ò ÊѤ¨¤ë¤Ä¤â¤ê¤Ï¤¢¤ê¤Þ¤»¤ó¡£
+
+ 1.3) PostgreSQL ¤Îưºî´Ä¶¤Ï¡©
+
+ °ìÈÌŪ¤Ë¡¢ºÇ¶á¤ÎUnix¸ß´¹¥×¥é¥Ã¥È¥Û¡¼¥à¤Ç¤¢¤ì¤ÐPostgreSQL¤ò²ÔƯ¤µ¤»¤é¤ì
+ ¤ë¤Ï¤º¤Ç¤¹¡£¥ê¥ê¡¼¥¹¤Î»þÅÀ¤Ç¼ÂºÝ¤Ë¥Æ¥¹¥È¤ò¹Ô¤Ê¤Ã¤¿¤³¤È¤ÎÊó¹ð¤¬¤Ê¤µ¤ì¤¿
+ ¥×¥é¥Ã¥È¥Û¡¼¥à¤Ë¤Ä¤¤¤Æ¤Ï¥¤¥ó¥¹¥È¡¼¥ë¼ê°ú½ñ¤ËÎóµó¤·¤Æ¤¢¤ê¤Þ¤¹¡£
+
+ 1.4) Unix°Ê³°¤Î°Ü¿¢ÈǤǻȤ¨¤ë¤â¤Î¤Ï¡©
+
+ ¥Ð¡¼¥¸¥ç¥ó8.0¤Ë¤Ê¤ê¡¢PostgreSQL ¤Ï¡¢Win2000, WinXP, Win2003¤Ê¤É¤Î
+ Microsoft Windows
+ NT¥Ù¡¼¥¹¤Î¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¥·¥¹¥Æ¥à¤Ç¥Í¥¤¥Æ¥£¥Ö¤ËÁö¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤·¤¿¡£
+ ¥Ñ¥Ã¥±¡¼¥¸¤Ë¤Ê¤Ã¤¿¥¤¥ó¥¹¥È¡¼¥é¤¬¡¢http://pgfoundry.org/projects/pginst
+ aller¤«¤éÆþ¼ê¤Ç¤¤Þ¤¹¡£ Windows (Win95, Win98,
+ WinMe)¤Ê¤É¡¢MSDOS¥Ù¡¼¥¹¤Î¥Ð¡¼¥¸¥ç¥ó¤Ç¤Ï¡¢Cygwin
+ ¤ò»È¤Ã¤ÆPostgreSQL¤òÁö¤é¤»¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
[ÌõÃí
pgInstaller ¤ÎÆþ¼ê¤ÏFTP¥ß¥é¡¼¥µ¥¤¥È¤Î win32 ¥Ç¥£¥ì¥¯¥È¥ê¤«¤é¤â²Äǽ¤Ç¤¹¡£
http://www.postgresql.org/mirrors-ftp.html
]
-¼¡¤Î¥µ¥¤¥È¤Ë Novell Netware 6 ¤Ø¤Î°Ü¿¢¤â¤¢¤ê¤Þ¤¹¡£ http://forge.novell.com ¤Þ¤¿
-¡¢OS/2 (eComStation) ¥Ð¡¼¥¸¥ç¥ó¤Ï¡¢ http://hobbes.nmsu.edu/cgi-bin/h-search?sh=
-1&button=Search&key=postgreSQL&stype=all&sort=type&dir=%2F¤Ë¤¢¤ê¤Þ¤¹¡£
-
-
-1.5) PostgreSQL ¤Ï¤É¤³¤«¤éÆþ¼ê¤Ç¤¤Þ¤¹¤«¡©
-
-PostgreSQL ¤ÎÂ縵¤Î anonymous ftp ¥µ¥¤¥È¤Ï ftp://ftp.PostgreSQL.org/pub/ ¤Ç¤¹¡£
-¥ß¥é¡¼¥µ¥¤¥È¤Ë¤Ä¤¤¤Æ¤Ï¡¢²æ¡¹¤Î¥á¥¤¥ó Web ¥Ú¡¼¥¸¤ò¤´Í÷²¼¤µ¤¤¡£
-
+ ¼¡¤Î¥µ¥¤¥È¤Ë Novell Netware 6 ¤Ø¤Î°Ü¿¢¤â¤¢¤ê¤Þ¤¹¡£
+ http://forge.novell.com ¤Þ¤¿¡¢OS/2 (eComStation) ¥Ð¡¼¥¸¥ç¥ó¤Ï¡¢
+ http://hobbes.nmsu.edu/cgi-bin/h-search?sh=1&button=Search&key=postgre
+ SQL&stype=all&sort=type&dir=%2F¤Ë¤¢¤ê¤Þ¤¹¡£
+
+ 1.5) PostgreSQL ¤Ï¤É¤³¤«¤éÆþ¼ê¤Ç¤¤Þ¤¹¤«¡©
+
+ PostgreSQL ¤ÎÂ縵¤Î anonymous ftp ¥µ¥¤¥È¤Ï
+ ftp://ftp.PostgreSQL.org/pub/ ¤Ç¤¹¡£
+ ¥ß¥é¡¼¥µ¥¤¥È¤Ë¤Ä¤¤¤Æ¤Ï¡¢²æ¡¹¤Î¥á¥¤¥ó Web ¥Ú¡¼¥¸¤ò¤´Í÷²¼¤µ¤¤¡£
[ÌõÃí:
°Ê²¼¤ÏÆüËܤΥߥ顼¥µ¥¤¥È¤Ç¤¹:
Japan: ftp://ring.aist.go.jp/pub/misc/db/PostgreSQL/
]
-1.6) ¥µ¥Ý¡¼¥È¤Ï¤É¤³¤Ç¼õ¤±¤é¤ì¤Þ¤¹¤«¡©
-
-¤ë¤³¤È¤Ç¤¢¤ì¤ÐµÄÏÀ¤¬¤Ç¤¤Þ¤¹¡£¤³¤Î¥ê¥¹¥È¤Ø¤Î»²²Ã¤Ï¡¢ÅŻҥ᡼¥ë¤ÎËÜʸ(Subject ¹Ô
-¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó)¤Ë¼¡¤Î£²¹Ô¤ò½ñ¤¤¤Æ¡¢
-
+ 1.6) ¥µ¥Ý¡¼¥È¤Ï¤É¤³¤Ç¼õ¤±¤é¤ì¤Þ¤¹¤«¡©
+
+ ¼çÍפʥ᡼¥ê¥ó¥°¡¦¥ê¥¹¥È¤Ï:
+ ¤Ë´Ø¤¹¤ë¤³¤È¤Ç¤¢¤ì¤ÐµÄÏÀ¤¬¤Ç¤
+ ¤Þ¤¹¡£¤³¤Î¥ê¥¹¥È¤Ø¤Î»²²Ã¤Ï¡¢ÅŻҥ᡼¥ë¤ÎËÜʸ(Subject
+ ¹Ô¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó)¤Ë¼¡¤Î£²¹Ô¤ò½ñ¤¤¤Æ¡¢
subscribe
end
-
-¥À¥¤¥¸¥§¥¹¥ÈÈǤΥ᡼¥ê¥ó¥°¡¦¥ê¥¹¥È¤â¤¢¤ê¤Þ¤¹¡£¤³¤Î¥ê¥¹¥È¤Ø¤Î»²²Ã¤Ï "ËÜʸ"¤Ë¡§
-
+
+ ¥À¥¤¥¸¥§¥¹¥ÈÈǤΥ᡼¥ê¥ó¥°¡¦¥ê¥¹¥È¤â¤¢¤ê¤Þ¤¹¡£¤³¤Î¥ê¥¹¥È¤Ø¤Î»²²Ã¤Ï
+ "ËÜʸ"¤Ë¡§
subscribe
end
-¡£
-
-¥À¥¤¥¸¥§¥¹¥ÈÈǤϡ¢¥á¥¤¥ó¥ê¥¹¥È¤Ç¼õ¿®¤¹¤ë¥á¥Ã¥»¡¼¥¸¤¬ 30k ÄøÅÙί¤ëËè¤Ë¥À¥¤¥¸¥§¥¹
-¥ÈÈǥꥹ¥È¤Î¥á¥ó¥Ð¡¼¤ËÁ÷ÉÕ¤µ¤ì¤Þ¤¹¡£
-
-¥Ð¥°¥ì¥Ý¡¼¥ÈÍѤΥ᡼¥ê¥ó¥°¥ê¥¹¥È¤â¤¢¤ê¤Þ¤¹¡£¤³¤Î¥ê¥¹¥È¤Ø¤Î»²²Ã¤Ï "ËÜʸ" ¤Ë¡§
-
+ ¤ØÅŻҥ᡼¥ë¤òÁ÷¤Ã¤Æ²¼¤µ¤¤¡£
+
+ ¥À¥¤¥¸¥§¥¹¥ÈÈǤϡ¢¥á¥¤¥ó¥ê¥¹¥È¤Ç¼õ¿®¤¹¤ë¥á¥Ã¥»¡¼¥¸¤¬ 30k
+ ÄøÅÙί¤ëËè¤Ë¥À¥¤¥¸¥§¥¹¥ÈÈǥꥹ¥È¤Î¥á¥ó¥Ð¡¼¤ËÁ÷ÉÕ¤µ¤ì¤Þ¤¹¡£
+
+ ¥Ð¥°¥ì¥Ý¡¼¥ÈÍѤΥ᡼¥ê¥ó¥°¥ê¥¹¥È¤â¤¢¤ê¤Þ¤¹¡£¤³¤Î¥ê¥¹¥È¤Ø¤Î»²²Ã¤Ï
+ "ËÜʸ" ¤Ë¡§
subscribe
end
-
-³«È¯¼Ô¤ÎµÄÏÀ¤Î¤¿¤á¤Î¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤âÍøÍѤǤ¤Þ¤¹¡£¤³¤Î¥ê¥¹¥È¤Ø¤Î»²²Ã¤ÏÅŻҥá
-¡¼¥ë¤ÎËÜʸ¤Ë¡§
-
+
+ ³«È¯¼Ô¤ÎµÄÏÀ¤Î¤¿¤á¤Î¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤âÍøÍѤǤ
+ ¤Þ¤¹¡£¤³¤Î¥ê¥¹¥È¤Ø¤Î»²²Ã¤ÏÅŻҥ᡼¥ë¤ÎËÜʸ¤Ë¡§
subscribe
end
-
-http://www.PostgreSQL.org
-
-¥á¥¸¥ã¡¼¤ÊIRC ¥Á¥ã¥ó¥Í¥ë¤Ï¡¢Freenode (irc.freenode.net)¤Î #PostgreSQL ¤È¤¤¤¦¥Á
-¥ã¥ó¥Í¥ë¤Ç¤¹¡£ UNIX ¥³¥Þ¥ó¥É¤Ç¡¢ irc -c '#PostgreSQL' "$USER" irc.freenode.net.
-¤ò»È¤Ã¤Æ»²²Ã¤Ç¤¤Þ¤¹¡£Æ±¤¸¥Í¥Ã¥È¥ï¡¼¥¯¤Ë¡¢¥¹¥Ú¥¤¥ó¸ì¤Î¥Á¥ã¥ó¥Í¥ë(#
-postgresql-es)¤â¤¢¤ê¡¢¥Õ¥é¥ó¥¹¸ì¤Î¥Á¥ã¥ó¥Í¥ë(#postgresqlfr)¤â¤¢¤ê¤Þ¤¹¡£ EFNet¤Ë
-¤âPostgreSQL¥Á¥ã¥ó¥Í¥ë¤¬¤¢¤ê¤Þ¤¹¡£
-
+ ¤¤¡£
+
+ PostgreSQL ¤Ë¤Ä¤¤¤Æ¤â¤Ã¤È¾Ü¤·¤¯ÃΤꤿ¤±¤ì¤Ð¡¢¼¡¤Î PostgreSQL
+ WWW¥Û¡¼¥à¥Ú¡¼¥¸¤«¤é¤¿¤É¤ì¤Þ¤¹¡§
+
+ http://www.PostgreSQL.org
+
+ ¥á¥¸¥ã¡¼¤ÊIRC ¥Á¥ã¥ó¥Í¥ë¤Ï¡¢Freenode (irc.freenode.net)¤Î #PostgreSQL
+ ¤È¤¤¤¦¥Á¥ã¥ó¥Í¥ë¤Ç¤¹¡£ UNIX ¥³¥Þ¥ó¥É¤Ç¡¢ irc -c '#PostgreSQL' "$USER"
+ irc.freenode.net. ¤ò»È¤Ã¤Æ»²²Ã¤Ç¤¤Þ¤¹¡£
+ Ʊ¤¸¥Í¥Ã¥È¥ï¡¼¥¯¤Ë¡¢¥¹¥Ú¥¤¥ó¸ì¤Î¥Á¥ã¥ó¥Í¥ë(#postgresql-es)¤â¤¢
+ ¤ê¡¢¥Õ¥é¥ó¥¹¸ì¤Î¥Á¥ã¥ó¥Í¥ë(#postgresqlfr)¤â¤¢¤ê¤Þ¤¹¡£
+ EFNet¤Ë¤âPostgreSQL¥Á¥ã¥ó¥Í¥ë¤¬¤¢¤ê¤Þ¤¹¡£
[ÌõÃí:
1999ǯ7·î23Æü¡¢ÆüËܥݥ¹¥È¥°¥ì¥¹¥æ¡¼¥¶¡¼²ñ¡¢Î¬¾ÎJPUG¤¬ÀßΩ¤µ¤ì¤Þ¤·¤¿¡£
- JPUG ¤ÏÈó±ÄÍøÁÈ¿¥¤Ç¡¢PostgreSQL¤òÍøÍѤ¹¤ë¿Íã¤ÎÁê¸ß¶¨ÎϤξì¤È¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£
+ JPUG ¤ÏÈó±ÄÍøÁÈ¿¥¤Ç¡¢PostgreSQL¤òÍøÍѤ¹¤ë¿Íã¤ÎÁê¸ß¶¨ÎϤξì¤È¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£
(2003ǯ5·î17Æü¡¢¡ÖÆüËÜPostgreSQL¥æ¡¼¥¶²ñ¡×¤Ë̾¾Î¤ò²þ¤á¤Þ¤·¤¿¡£)
Àµ²ñ°÷¤Î²ñÈñ¤Ï̵ÎÁ¤Ç¤¹¤¬¡¢¶¨»¿²ñ°÷¤Î²ñÈñ¤È²ñ°÷¤ÎÀѶËŪ¤Ê¹×¸¥¤¬²ñ¤Î±¿±Ä¤ò½õ¤±¤Æ¤¤¤Þ¤¹¡£
¾Ü¤·¤¯¤Ï¡¢JPUG ¤ÎWeb ¥µ¥¤¥È:
ÆüËܸì¤ÎIRC¥Á¥ã¥ó¥Í¥ë '#PostgreSQL*jp' ¤â¸ºß¤·¤Þ¤¹¡£
-¾¦ÍÑ¥µ¥Ý¡¼¥È²ñ¼Ò¤Î¥ê¥¹¥È¤Ïhttp://techdocs.postgresql.org/companies.php¤Ë¤¢¤ê¤Þ
-¤¹¡£
-
-1.7) ºÇ¿·ÈǤϤɤì¤Ç¤¹¤«
-
-PostgreSQL ¤ÎºÇ¿·ÈǤϥС¼¥¸¥ç¥ó 7.4.6 ¤Ç¤¹¡£
-
-²æ¡¹¤Ï¡¢6¡Á8¥«·îËè¤Ë¥á¥¸¥ã¡¼¥ê¥ê¡¼¥¹¤ò¹Ô¤Ê¤¦¤³¤È¤ò·×²è¤·¤Æ¤¤¤Þ¤¹¡£
-
-1.8) ¤É¤Î¤è¤¦¤Êʸ½ñ¤¬¤¢¤ê¤Þ¤¹¤«¡©
-
-ÇÛÉÕ¤ÎÃæ¤Ë¡¢¤¤¤¯¤Ä¤«¤Î¥Þ¥Ë¥å¥¢¥ë¤È¥ª¥ó¥é¥¤¥ó¡¦¥Þ¥Ë¥å¥¢¥ë(¥Þ¥Ë¥å¥¢¥ë¡¦¥Ú¡¼¥¸)¤ª
-¤è¤Ó¤¤¤¯¤Ä¤«¤Î¾®¤µ¤Ê¥Æ¥¹¥ÈÎãÂ꤬´Þ¤Þ¤ì¤Þ¤¹¡£/doc ¥Ç¥£¥ì¥¯¥È¥ê¤ò¤´Í÷²¼¤µ¤¤¡£¤Þ¤¿
-¡¢¥Þ¥Ë¥å¥¢¥ë¤Ï¡¢http://www.ca.PostgreSQL.org/docs/¤Ç¥ª¥ó¥é¥¤¥ó¤Ç¤â±ÜÍ÷¤Ç¤¤Þ¤¹
-¡£
-
+ ¾¦ÍÑ¥µ¥Ý¡¼¥È²ñ¼Ò¤Î¥ê¥¹¥È¤Ïhttp://techdocs.postgresql.org/companies.php
+ ¤Ë¤¢¤ê¤Þ¤¹¡£
+
+ 1.7) ºÇ¿·ÈǤϤɤì¤Ç¤¹¤«
+
+ PostgreSQL ¤ÎºÇ¿·ÈǤϥС¼¥¸¥ç¥ó 7.4.6 ¤Ç¤¹¡£
+
+ ²æ¡¹¤Ï¡¢6¡Á8¥«·îËè¤Ë¥á¥¸¥ã¡¼¥ê¥ê¡¼¥¹¤ò¹Ô¤Ê¤¦¤³¤È¤ò·×²è¤·¤Æ¤¤¤Þ¤¹¡£
+
+ 1.8) ¤É¤Î¤è¤¦¤Êʸ½ñ¤¬¤¢¤ê¤Þ¤¹¤«¡©
+
+ ÇÛÉÕ¤ÎÃæ¤Ë¡¢¤¤¤¯¤Ä¤«¤Î¥Þ¥Ë¥å¥¢¥ë¤È¥ª¥ó¥é¥¤¥ó¡¦¥Þ¥Ë¥å¥¢¥ë(¥Þ¥Ë¥å¥¢¥ë¡¦¥
+ Ú¡¼¥¸)¤ª¤è¤Ó¤¤¤¯¤Ä¤«¤Î¾®¤µ¤Ê¥Æ¥¹¥ÈÎãÂ꤬´Þ¤Þ¤ì¤Þ¤¹¡£/doc
+ ¥Ç¥£¥ì¥¯¥È¥ê¤ò¤´Í÷²¼¤µ¤¤¡£¤Þ¤¿¡¢¥Þ¥Ë¥å¥¢¥ë¤Ï¡¢http://www.ca.PostgreSQL
+ .org/docs/¤Ç¥ª¥ó¥é¥¤¥ó¤Ç¤â±ÜÍ÷¤Ç¤¤Þ¤¹¡£
[ÌõÃí:
¡Ê³ô¡ËSRA¤ÈÆüËÜPostgreSQL¥æ¡¼¥¶²ñ¤ÇËÝÌõ¤µ¤ì¡¢
¡ÖPostgreSQL ¥ª¥Õ¥£¥·¥ã¥ë¥Þ¥Ë¥å¥¢¥ë¡×
¤È¤·¤Æ½ÐÈǤµ¤ì¤Æ¤¤¤Þ¤¹¡£
]
-¥ª¥ó¥é¥¤¥ó¤Ç»²¾È¤Ç¤¤ë PostgreSQL ¤ÎËܤâ2ºý¤¢¤ê¤Þ¤¹¡£http://www.PostgreSQL.org/
-docs/awbook.html
-
+ ¥ª¥ó¥é¥¤¥ó¤Ç»²¾È¤Ç¤¤ë PostgreSQL
+ ¤ÎËܤâ2ºý¤¢¤ê¤Þ¤¹¡£http://www.PostgreSQL.org/docs/awbook.html
[ÌõÃí:
ÆüËܥݥ¹¥È¥°¥ì¥¹¥æ¡¼¥¶¡¼²ñ¤Î ¡ÖPostgreSQL BookËÝÌõʬ²Ê²ñ¡×
¤Ë¤ÆËÝÌõ¤µ¤ì¤Þ¤·¤¿¡£
]
-¤ª¤è¤Ó¡¢ http://www.commandprompt.com/ppbook/ ¤Ç¤¹¡£¹ØÆþ²Äǽ¤Ê½ñÀÒ¤ÎÌÜÏ¿¤Ï¡¢
-http://techdocs.PostgreSQL.org/techdocs/bookreviews.php ¤Ë¤¢¤ê¤Þ¤¹¡£ PostgreSQL
-µ»½Ñ¾ðÊóµ»ö¤â¡¢http://techdocs.PostgreSQL.org/ ¤Ë¤¢¤ê¤Þ¤¹¡£
-
-[ÌõÃí: ÏÂÌõʸ½ñ¤Ï¡¢ÆüËܥݥ¹¥È¥°¥ì¥¹¥æ¡¼¥¶¡¼²ñ¤Îhttp://www.postgresql.jp/
-document/ ¤ò¤´¤é¤ó²¼¤µ¤¤¡£ ]
-
-¥³¥Þ¥ó¥É¥é¥¤¥ó¤Î¥¯¥é¥¤¥¢¥ó¥È¥×¥í¥°¥é¥àpsql ¤â¡¢·¿¡¢±é»»»Ò¡¢´Ø¿ô¡¢½¸Ì󡢤½¤Î¾¤Î
-¾ðÊó¤ò¤ª¸«¤»¤¹¤ë¡¢¤¤¤¯¤Ä¤«¤ÎÁÇÀ²¤é¤·¤¤ \d ¥³¥Þ¥ó¥É¤ò»ý¤Á¤Þ¤¹¡£ - \? ¤ò»È¤¦¤ÈÍø
-ÍѲÄǽ¤Ê¥³¥Þ¥ó¥É¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£
-
-²æ¡¹¤Î Web ¥µ¥¤¥È¤Ë¤Ï¡¢¤â¤Ã¤ÈÂô»³¤Îʸ½ñ¤¬¤¢¤ê¤Þ¤¹¡£
-
-1.9) ´ûÃΤΥХ°¤ä̤¤À̵¤¤µ¡Ç½¤Ï¤É¤¦¤ä¤Ã¤Æ¸«¤Ä¤±¤Þ¤¹¤«¡©
-
-PostgreSQL¤Ï³ÈÄ¥¤µ¤ì¤¿SQL-92¤Î¥µ¥Ö¥»¥Ã¥È¤ò¥µ¥Ý¡¼¥È¤·¤Þ¤¹¡£²æ¡¹¤Î¥Ú¡¼¥¸¤Î TODO
-¥ê¥¹¥È¤Ë¡¢´ûÃΤΥХ°¤ä·çÍǽ¤ä¾Íè·×²è¤Ë¤Ä¤¤¤Æ¤Îµ½Ò¤¬¤¢¤ê¤Þ¤¹¡£
-
-1.10) SQL ¤Ï¤É¤¦¤¹¤ì¤Ð³Ø¤Ù¤Þ¤¹¤«¡©
-
-http://www.PostgreSQL.org/docs/awbook.html ¤Ë¤¢¤ëPostgreSQLËÜ¤Ç SQL ¤ò¶µ¤¨¤Æ¤¤
-¤Þ¤¹¡£
-
+ ¤ª¤è¤Ó¡¢ http://www.commandprompt.com/ppbook/ ¤Ç¤¹¡£
+ ¹ØÆþ²Äǽ¤Ê½ñÀÒ¤ÎÌÜÏ¿¤Ï¡¢http://techdocs.PostgreSQL.org/techdocs/bookre
+ views.php ¤Ë¤¢¤ê¤Þ¤¹¡£ PostgreSQL µ»½Ñ¾ðÊóµ
+ »ö¤â¡¢http://techdocs.PostgreSQL.org/ ¤Ë¤¢¤ê¤Þ¤¹¡£
+
+ [ÌõÃí:
+ ÏÂÌõʸ½ñ¤Ï¡¢ÆüËܥݥ¹¥È¥°¥ì¥¹¥æ¡¼¥¶¡¼²ñ¤Îhttp://www.postgresql.jp/docum
+ ent/ ¤ò¤´¤é¤ó²¼¤µ¤¤¡£ ]
+
+ ¥³¥Þ¥ó¥É¥é¥¤¥ó¤Î¥¯¥é¥¤¥¢¥ó¥È¥×¥í¥°¥é¥àpsql
+ ¤â¡¢·¿¡¢±é»»»Ò¡¢´Ø¿ô¡¢½¸Ì󡢤½¤Î¾¤Î¾ðÊó¤ò¤ª¸«¤»¤¹¤ë¡¢¤¤¤¯¤Ä¤«¤ÎÁÇÀ²¤é
+ ¤·¤¤ \d ¥³¥Þ¥ó¥É¤ò»ý¤Á¤Þ¤¹¡£ - \?
+ ¤ò»È¤¦¤ÈÍøÍѲÄǽ¤Ê¥³¥Þ¥ó¥É¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£
+
+ ²æ¡¹¤Î Web ¥µ¥¤¥È¤Ë¤Ï¡¢¤â¤Ã¤ÈÂô»³¤Îʸ½ñ¤¬¤¢¤ê¤Þ¤¹¡£
+
+ 1.9) ´ûÃΤΥХ°¤ä̤¤À̵¤¤µ¡Ç½¤Ï¤É¤¦¤ä¤Ã¤Æ¸«¤Ä¤±¤Þ¤¹¤«¡©
+
+ PostgreSQL¤Ï³ÈÄ¥¤µ¤ì¤¿SQL-92¤Î¥µ¥Ö¥»¥Ã¥È¤ò¥µ¥Ý¡¼¥È¤·¤Þ¤¹¡£
+ ²æ¡¹¤Î¥Ú¡¼¥¸¤Î TODO ¥ê¥¹¥È¤Ë¡¢´ûÃΤΥХ°¤ä·çÍǽ¤ä¾
+ Íè·×²è¤Ë¤Ä¤¤¤Æ¤Îµ½Ò¤¬¤¢¤ê¤Þ¤¹¡£
+
+ 1.10) SQL ¤Ï¤É¤¦¤¹¤ì¤Ð³Ø¤Ù¤Þ¤¹¤«¡©
+
+ http://www.PostgreSQL.org/docs/awbook.html ¤Ë¤¢¤ëPostgreSQLËÜ¤Ç SQL
+ ¤ò¶µ¤¨¤Æ¤¤¤Þ¤¹¡£
[ÌõÃí:
ÆüËܥݥ¹¥È¥°¥ì¥¹¥æ¡¼¥¶¡¼²ñ¤Î ¡ÖPostgreSQL BookËÝÌõʬ²Ê²ñ¡×
¤Ë¤ÆËÝÌõ¤µ¤ì½ÐÈǤµ¤ì¤Æ¤¤¤Þ¤¹¡£
]
-¤½¤Î¾¤Ë¤â PostgreSQLËܤȤ·¤Æ¡¢http://www.commandprompt.com/ppbook ¤¬¤¢¤ê¤Þ¤¹¡£
-ÁÇÀ²¤é¤·¤¤¼ê°ú½ñ¤Ï¡¢http://www.intermedia.net/support/sql/sqltut.shtm, http://
-ourworld.compuserve.com/homepages/graeme_birchall/HTM_COOK.HTM, ¤½¤·¤Æ¡¢http://
-sqlcourse.com ¤Ë¤¢¤ê¤Þ¤¹¡£
-
-¤½¤Î¾¤Ç¤Ï¡¢ "Teach Yourself SQL in 21 Days, Second Edition" ¤¬ http://
-members.tripod.com/er4ebus/sql/index.htm¤Ë¤¢¤ê¤Þ¤¹¡£
-
-¿¤¯¤Î¥æ¡¼¥¶¤Ë¡¢ The Practical SQL Handbook, Bowman Judith S. et al.,
-Addison-Wesley ¤¬¹¥É¾¤Ç¤¹¡£¤½¤Î¾¤Ë¡¢The Complete Reference SQL, Groff et al.,
-McGraw-Hill ¤Î¤è¤¦¤Ê¤Î¤â¤¢¤ê¤Þ¤¹¡£
-
+ ¤½¤Î¾¤Ë¤â PostgreSQLËܤȤ·¤Æ¡¢http://www.commandprompt.com/ppbook
+ ¤¬¤¢¤ê¤Þ¤¹¡£
+ ÁÇÀ²¤é¤·¤¤¼ê°ú½ñ¤Ï¡¢http://www.intermedia.net/support/sql/sqltut.shtm,
+ http://ourworld.compuserve.com/homepages/graeme_birchall/HTM_COOK.HTM,
+ ¤½¤·¤Æ¡¢http://sqlcourse.com ¤Ë¤¢¤ê¤Þ¤¹¡£
+
+ ¤½¤Î¾¤Ç¤Ï¡¢ "Teach Yourself SQL in 21 Days, Second Edition" ¤¬
+ http://members.tripod.com/er4ebus/sql/index.htm¤Ë¤¢¤ê¤Þ¤¹¡£
+
+ ¿¤¯¤Î¥æ¡¼¥¶¤Ë¡¢ The Practical SQL Handbook, Bowman Judith S. et al.,
+ Addison-Wesley ¤¬¹¥É¾¤Ç¤¹¡£ ¤½¤Î¾¤Ë¡¢The Complete Reference SQL,
+ Groff et al., McGraw-Hill ¤Î¤è¤¦¤Ê¤Î¤â¤¢¤ê¤Þ¤¹¡£
[ÌõÃí:
ÀаæÃ£É×»á¤Ë¤è¤ëÆüËܸì¤Î»²¹Íʸ¸¥¤Î¾Ò²ð¥Ú¡¼¥¸
http://www.SRA.co.jp/people/t-ishii/PostgreSQL/doc-jp/index.html
¤¬¤¢¤ê¤Þ¤¹(¤ä¤ä¸Å¤¤2000ǯÈÇ)¡£
ËÙÅÄÎѱѻá¤Î¡ÖPostgreSQLÆüËܸì¥Þ¥Ë¥å¥¢¥ë¡×
http://www.net-newbie.com/
- ¤Ç¤Ï¥ª¥ó¥é¥¤¥ó¥Þ¥Ë¥å¥¢¥ë¤Î¸¡º÷¤¬¤Ç¤¤Þ¤¹¡£
+ ¤Ç¤Ï¥ª¥ó¥é¥¤¥ó¥Þ¥Ë¥å¥¢¥ë¤Î¸¡º÷¤¬¤Ç¤¤Þ¤¹¡£
´Ý»³ÉÔÆóÉ×»á¤ÎUNIX ¥Ç¡¼¥¿¥Ù¡¼¥¹ÆþÌç
http://www.wakhok.ac.jp/DB/DB.html
- ¤â¥ª¥ó¥é¥¤¥ó¤ÇÆÉ¤à¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
+ ¤â¥ª¥ó¥é¥¤¥ó¤ÇÆÉ¤à¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
]
-1.11) PostgreSQL¤ÏÀ¾Îñ2000ǯÌäÂê(Y2K)¤ËÂбþ¤·¤Æ¤¤¤Þ¤¹¤«¡©
-
-Âбþ¤·¤Æ¤Þ¤¹¡£À¾Îñ2000ǯ¤è¤ê¸å¤ÎÆüÉդ⡢µª¸µÁ°2000ǯ¤è¤êÁ°¤ÎÆüÉդ⡢´Êñ¤Ë°·¤¨
-¤Þ¤¹¡£
-
-1.12) ³«È¯¥Á¡¼¥à¤Ë¤Ï¤É¤Î¤è¤¦¤Ë»²²Ã¤·¤Þ¤¹¤«¡©
-
-¤Þ¤ººÇ½é(£±ÈÖÌÜ)¤Ë¡¢ºÇ¿·¤Î¥½¡¼¥¹¤ò¥À¥¦¥ó¥í¡¼¥É¤·¡¢²æ¡¹¤Î Web ¥µ¥¤¥È¤«ÇÛÉۤ˴ޤÞ
-¤ì¤Æ¤¤¤ëPostgreSQL Developers¤Îʸ½ñ¤òÆÉ¤ß¤Þ¤¹¡££²ÈÖÌܤˡ¢pgsql-hackers ¤È
-pgsql-patches ¥á¡¼¥ê¥ó¥°¡¦¥ê¥¹¥È¤ò¹ØÆÉ(subscribe)¤·¤Þ¤¹¡££³ÈÖÌܤˡ¢¹âÉʼÁ¤Î¥Ñ¥Ã
-¥Á¤òpgsql-patches¤Ëȯ¿®¤·¤Þ¤¹¡£
-
-¤ª¤è¤½½½¿Í¤Á¤ç¤Ã¤È¤Î¿Í㤬¡¢PostgreSQL CVS¥¢¡¼¥«¥¤¥Ö¤Ë¥³¥ß¥Ã¥È¤¹¤ë¸¢¸Â¤ò»ý¤Ã¤Æ
-¤¤¤Þ¤¹¡£¤½¤Î¤½¤ì¤¾¤ì¤Î¿Í㤬Âô»³¤Î¹âÉʼÁ¤Ê¥Ñ¥Ã¥Á¤òȯ¿®¤¹¤ë¤Î¤Ç¡¢¸½ºß¥³¥ß¥Ã¥¿¡¼
-¤È¤Ê¤Ã¤Æ¤¤¤ë¿Íã¤Ï¤½¤ì¤ËÄɤ¤ÉÕ¤¯¤Î¤¬ÂçÊѤǤ¹¤¬¡¢²æ¡¹¤ÏÈà¤é¤¬¥³¥ß¥Ã¥È¤·¤¿¥Ñ¥Ã¥Á
-¤Ï¹âÉʼÁ¤Ç¤¢¤ë¤È³Î¿®¤·¤Æ¤¤¤Þ¤¹¡£
-
-1.13) ¥Ð¥°¥ì¥Ý¡¼¥È¤Ï¤É¤Î¤è¤¦¤Ëȯ¿®¤·¤Þ¤¹¤«¡©
-
-http://www.postgresql.org/support/submitbug ¤ÎPostgreSQL ¥Ð¥°¥Õ¥©¡¼¥à¤òˬ¤ì¤Æ²¼
-¤µ¤¤¡£¥Ð¥°¥ì¥Ý¡¼¥È¤òÄó½Ð¤¹¤ë»ÅÊý¤Ë¤Ä¤¤¤Æ¤Î¼ê°ú¤È»Ø¿Ë¤¬¤¢¤ê¤Þ¤¹¡£
-
-¤½¤ì¤ÈƱ»þ¤Ë ftp ¥µ¥¤¥È ftp://ftp.PostgreSQL.org/pub/¤Ç¡¢¤â¤Ã¤È¿·¤·¤¤¥Ð¡¼¥¸¥ç¥ó
-¤Î PostgreSQL ¤¢¤ë¤¤¤Ï¥Ñ¥Ã¥Á¤ò¤µ¤¬¤·¤Æ¤ß¤Æ²¼¤µ¤¤¡£
-
-1.14) ¾¤ÎDBMS¤ÈÈæ¤Ù¤ÆPostgreSQL¤Ï¤É¤¦¤Ê¤Î¤Ç¤¹¤«¡©
-
-¥½¥Õ¥È¥¦¥§¥¢¤ò·×¤ëÊýË¡¤Ë¤Ï¤¤¤¯¤Ä¤«¤¢¤ê¤Þ¤¹¡£µ¡Ç½¤ÈÀǽ¤È¿®ÍêÀ¤È¥µ¥Ý¡¼¥È¤È²Á³Ê
-¤Ç¤¹¡£
-
-µ¡Ç½(Features)
- PostgreSQL¤Ï¡¢¥È¥é¥ó¥¶¥¯¥·¥ç¥ó¡¢ÉûÌ䤤¹ç¤ï¤»¡¢¥È¥ê¥¬¡¼¡¢¥Ó¥å¡¼¡¢³°Éô¥¡¼À°
- ¹çÀ»²¾È¡¢¤ª¤è¤Ó¡¢ÀöÎý¤µ¤ì¤¿¥í¥Ã¥¯µ¡¹½¤Ê¤É¡¢Â絬ÌϾ¦ÍÑDBMS¤¬»ý¤Äµ¡Ç½¤ò¤Û¤È
- ¤ó¤É»ý¤Ã¤Æ¤¤¤Þ¤¹¡£¤µ¤é¤Ë PostgreSQL¤Ï¡¢¥æ¡¼¥¶ÄêµÁ·¿¡¢·Ñ¾µ¡¢¥ë¡¼¥ë¡¢¤½¤ì¤«¤é
- ¡¢¥í¥Ã¥¯¶¥¹ç¤ò½Ì¾®¤¹¤ë¥Þ¥ë¥Á¥Ð¡¼¥¸¥ç¥óƱ»þÀÀ©¸æ¤Ê¤É¡¢¾¦ÍÑDBMS¤â»ý¤Á¹ç¤ï¤»
- ¤Ê¤¤¤è¤¦¤Êµ¡Ç½¤ò¤¤¤¯¤Ä¤«»ý¤Á¹ç¤ï¤»¤Æ¤¤¤Þ¤¹¡£
-Àǽ(Performance)
- PostgreSQL¤Ï¾¤Î¾¦ÍѤ¢¤ë¤¤¤Ï¥ª¡¼¥×¥ó¥½¡¼¥¹¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¤È¸ß³Ñ¤ÎÀǽ¤â»ý¤Á
- ¤Þ¤¹¡£¤¢¤ëÌ̤ǤϤè¤êÁᤫ¤Ã¤¿¤ê¡¢¤Û¤«¤ÎÌ̤ǤϤè¤êÃÙ¤«¤Ã¤¿¤ê¤·¤Þ¤¹¡£MySQL¤Ê¤É
- ¤ÎÆÃ²½·¿¥Ç¡¼¥¿¥Ù¡¼¥¹¡¦¥·¥¹¥Æ¥à¤Ë¤¯¤é¤Ù¤Æ¡¢PostgreSQL ¤ÏÊ£¿ô¥æ¡¼¥¶¤äÊ£»¨¤ÊÌä
- ¤¤¹ç¤ï¤»¡¢¤Þ¤¿¡¢ read/write Ì䤤¹ç¤ï¤»¤Î¥í¡¼¥É¤¬¤è¤ê¹â®¤Ç¤¹¡£MySQL¤Ï¾¯¤Ê¤¤
- ¥æ¡¼¥¶¤Ç¤Îñ½ã¤Ê SELECT Ì䤤¹ç¤ï¤»¤Ç¤Ï¹â®¤Ç¤¹¡£¤â¤Á¤í¤ó¡¢MySQL¤Ë¤Ï¾åµ¤Î
- Features¤ÎÀá¤Ë¼¨¤¹¤è¤¦¤Êµ¡Ç½¤Ï¤Û¤È¤ó¤É¤¢¤ê¤Þ¤»¤ó¡£²æ¡¹¤Ï¡¢PostgreSQL¤Ë½ÀÆð
- À¤Èµ¡Ç½À¤òÁȤ߹þ¤ß¤Ê¤¬¤é¤â¡¢À䤨¤ºÀǽ¤Î²þÁ±¤ò³¤±¤Æ¤¤¤Þ¤¹¡£
-¿®ÍêÀ(Reliability)
- ²æ¡¹¤Ï¡¢DBMS¤Î¿®ÍêÀ¤¬¹â¤¯¤Ê¤¯¤Æ¤Ï¤½¤Î²ÁÃͤ¬Ìµ¤¤¤³¤È¤òÍý²ò¤·¤Æ¤Þ¤¹¡£½½Ê¬¥Æ
- ¥¹¥È¤·¤Æ¡¢°ÂÄꤷ¤¿¥³¡¼¥É¤ò¥Ð¥°¤òºÇ¾®¤Ë¤·¤Æ¤«¤é¥ê¥ê¡¼¥¹¤¹¤ë¤è¤¦¤ËÅØ¤á¤Æ¤Þ¤¹
- ¡£¤½¤ì¤¾¤ì¤Î¥ê¥ê¡¼¥¹¤Ï¾¯¤Ê¤¯¤È¤â1¥«·î°Ê¾å¤Î¥Ù¡¼¥¿¡¦¥Æ¥¹¥È¤ò¹Ô¤Ê¤¤¡¢¤³¤ì¤Þ¤Ç
- ¤Î¥ê¥ê¡¼¥¹¤ÎÍúÎò¤¬¡¢À½ÉÊÈǤȤ·¤Æ°ÂÄꤷ¤¿·ø¸Ç¤Ê¥ê¥ê¡¼¥¹¤Ç¤¢¤ë¤³¤È¤òʪ¸ì¤Ã¤Æ
- ¤¤¤Þ¤¹¡£¤³¤ÎʬÌî¤Ç¤Ï¡¢Â¾¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¤ÈÈæ¤Ù¤Æ¤â½¿§¤¬¤Ê¤¤¤³¤È¤Ë¼«¿®¤ò»ý¤Ã
- ¤Æ¤¤¤Þ¤¹¡£
-¥µ¥Ý¡¼¥È(Support)
- ²æ¡¹¤Î¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤Ï¡¢Áø¶ø¤¹¤ë¤¤¤«¤Ê¤ëÌäÂê¤Ë¤Ä¤¤¤Æ¤â²ò·è¤Ø¤Î¼ê½õ¤±¤ò¤·
- ¤Æ¤¯¤ì¤ë¡¢³«È¯¼Ô¤ä¥æ¡¼¥¶¤ÎÂ礤ʽ¸¤Þ¤ê¤Ø¤ÎÀÜÅÀ¤òÄ󶡤·¤Æ¤¤¤Þ¤¹¡£²æ¡¹¤ÏÌäÂê
- ¤Î²ò·è¤òÊݾڤ¹¤ë¤³¤È¤Ï¤Ç¤¤Þ¤»¤ó¤¬¡¢¾¦Íѥǡ¼¥¿¥Ù¡¼¥¹¤Ç¤¢¤Ã¤Æ¤â¾ï¤Ë²ò·è¤µ¤ì
- ¤ë¤ï¤±¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£³«È¯¼Ô¤ä¡¢¥æ¡¼¥¶¡¦¥³¥ß¥å¥Ë¥Æ¥£¡¢¥Þ¥Ë¥å¥¢¥ëÎà¡¢¤½¤ì¤Ë
- ¡¢¥½¡¼¥¹¥³¡¼¥É¤Ê¤É¤ØÄ¾ÀÜ¥¢¥¯¥»¥¹¤Ç¤¤ë¤³¤È¤Ë¤è¤Ã¤Æ¡¢PostgreSQL¤Î¥µ¥Ý¡¼¥È¤Ï
- ¡¢Â¾¤ÎDBMS¥µ¥Ý¡¼¥È¤è¤ê¤âÍ¥¤ì¤¿¤â¤Î¤È¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£¸æÍ×˾¤ËÅú¤¨¤Æ¡¢»öÊÁËè¤Î
- ¾¦ÍÑ¥µ¥Ý¡¼¥È¤Ê¤É¤â¤¢¤ê¤Þ¤¹¡ÊFAQ1.6Àá¤ò¤´Í÷²¼¤µ¤¤¡Ë¡£
-²Á³Ê(Price)
- PostgreSQL¤ÎÍøÍѤϡ¢¾¦ÍѤǤâÈó¾¦ÍѤǤ⡢¤¹¤Ù¤ÆÌµÎÁ¤Ç¤¹¡£¾åµ¤Ë¼¨¤·¤Æ¤¢¤ëBSD
- ¥¹¥¿¥¤¥ë¤Î»ÈÍѵöÂú¤Ë³°¤ì¤Ê¤¤¸Â¤ê¡¢PostgreSQL¤Î¥³¡¼¥É¤òÀ©¸Â̵¤·¤Ç¾¦ÉʤËÁȤß
- ¹þ¤à¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
-
-1.15) PostgreSQL¤ò»ñ¶âÌ̤DZç½õ¤¹¤ë¤Ë¤Ï¤É¤¦¤¹¤ì¤Ð¤è¤¤¤Ç¤¹¤«¡©
-
-PostgreSQL¤Ï¡¢²æ¡¹¤¬»Ï¤á¤¿ 1996ǯ°ÊÍè¡¢ºÇ¹â¥¯¥é¥¹¤Î¾ðÊó´ðÈפò»ý¤Ã¤Æ¤¤¤Þ¤¹¡£¤³¤ì
-¤Ï¤¹¤Ù¤Æ¡¢Marc Fournie¤µ¤ó¤Î¤ª¤«¤²¤Ç¡¢Èà¤Ï¤³¤Î´ðÈפòÁϤê½Ð¤·¡¢²¿Ç¯¤Ë¤â¤ï¤¿¤Ã¤Æ
-´ÉÍý¤·¤Æ¤¤Þ¤·¤¿¡£
-
-¼Á¤ÎÎɤ¤´ðÈפϡ¢¥ª¡¼¥×¥ó¥½¡¼¥¹¡¦¥×¥í¥¸¥§¥¯¥È¤Ë¤È¤Ã¤Æ¤Ï¤È¤Æ¤âÂçÀڤʤâ¤Î¤Ç¡¢¥×¥í
-¥¸¥§¥¯¥È¤¬Á°¿Ê¤¹¤ëÀª¤¤¤ò¼º¤Ã¤ÆÊ¬Îö¤¹¤ë¤Î¤ò²óÈò¤·¤Þ¤¹¡£
-
-¤â¤Á¤í¤ó¡¢¤³¤Î´ðÈפϰ¤¤¤â¤Î¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£°Ý»ý¤·Â³¤±¤ë¤¿¤á¤Ë¤ÏËè·î¤¢¤ë¤¤¤Ï°ì
-»þŪ¤Ë·ÐÈñ¤¬¤«¤«¤ê¤Þ¤¹¡£¤â¤·¡¢¤¢¤Ê¤¿¤ä¤¢¤Ê¤¿¤Î²ñ¼Ò¤Ë¡¢¤³¤¦¤·¤¿ÅØÎϤΤ¿¤á¤Î»ñ¶â
-¤Î±ç½õ¤ò»Ü¤¹¤³¤È¤¬¤Ç¤¤ë¤è¤¦¤Ç¤·¤¿¤é¡¢http://store.pgsql.com/shopping/¤«¤é´óÉÕ
-¤ò¤ª´ê¤¤¤·¤Þ¤¹¡£
-
-¤Þ¤¿¡¢Web¥Ú¡¼¥¸¤Ë¤Ï PostgreSQL,Inc ¤È¤¢¤ê¤Þ¤¹¤¬¡¢¤½¤³¤Î "¹×¸¥(contributions)"¤È
-¤¤¤¦¹àÌܤϡ¢ PostgreSQL ¥×¥í¥¸¥§¥¯¥È¤ò»Ù±ç¤¹¤ë¤À¤±¤Î¤¿¤á¤Ç¡¢·è¤·¤ÆÆÃÄê¤Î²ñ¼Ò¤Î
-¤¿¤á¤Î»ñ¶â¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£¤â¤·¡¢¾®ÀÚ¼ê(check)¤ÎÊý¤¬ÅÔ¹ç¤è¤±¤ì¤ÐÏ¢ÍíÀè¤Î½»½ê¤Ø¤ª
-Á÷¤ê²¼¤µ¤¤¡£
-
-¤µ¤é¤Ë¡¢PostgreSQL¤ò»È¤Ã¤¿À®¸ù»öÎã¤ò¤ª»ý¤Á¤Ç¤¢¤ì¤Ð¡¢¤¼¤Ò¡¢¤ï¤ì¤ï¤ì¤Î»öÎã¾Ò²ð¥ê
-
-¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬
-
- ¥æ¡¼¥¶¡¼¡¦¥¯¥é¥¤¥¢¥ó¥È¤Î¼ÁÌä
-
-2.1) PostgreSQL ¤Î¤¿¤á¤Î ODBC ¥É¥é¥¤¥Ð¡¼¤Ï¤¢¤ê¤Þ¤¹¤«¡©
-
-PsqlODBC ¤È OpenLink ODBC ¤ÎÆó¤Ä¤Î ODBC ¥É¥é¥¤¥Ð¡¼¤¬ÍøÍѲÄǽ¤Ç¤¹¡£
-
-PsqlODBC ¤Ï¼¡¤Î¾ì½ê¤«¤é¥À¥¦¥ó¥í¡¼¥É¤Ç¤¤Þ¤¹¡£ http://gborg.postgresql.org/
-project/psqlodbc/projdisplay.php
-
-OpenLink ODBC ¤Ï http://www.openlinksw.com/¤«¤éÆþ¼ê¤Ç¤¤Þ¤¹¡£É¸½àŪ¤Ê ODBC ¥¯¥é
-¥¤¥¢¥ó¥È¡¦¥½¥Õ¥È¥¦¥§¥¢¤Ç»È¤¨¤Þ¤¹¤Î¤Ç¡¢»Ù±ç¤·¤Æ¤¤¤ë¤¹¤Ù¤Æ¤Î¥×¥é¥Ã¥È¥Û¡¼¥à(Win,
-Mac, Unix, VMS)¤«¤é PostgreSQL ¤Î ODBC ¤¬ÍøÍѤǤ¤Þ¤¹¡£
-
-¤¿¤Ö¤óÈà¤é¤Ï¡¢¾¦ÍÑÉʼÁ¤Î¥µ¥Ý¡¼¥È¤ÎɬÍפʿ͡¹¤ËÇä¤Ã¤Æ¤¤¤ë¤È»×¤¤¤Þ¤¹¤¬¡¢¥Õ¥ê¡¼¥¦
-²¼¤µ¤¤¡£
-
-Programmer's Guide ¤Î ODBC ¤Î¾Ï¤â¤´Í÷¤¯¤À¤µ¤¤¡£
-
-2.2) PostgreSQL ¤ò Web ¥Ú¡¼¥¸¤ÈÏ¢·È¤µ¤»¤ë¤Ë¤Ï¤É¤ó¤Ê¥Ä¡¼¥ë¤¬¤¢¤ê¤Þ¤¹¤«¡©
-
-¥Ç¡¼¥¿¥Ù¡¼¥¹¤ò΢¤Ë»ý¤Ä Web ¥Ú¡¼¥¸¤Ë¤Ä¤¤¤Æ¤ÎÁÇÀ²¤é¤·¤¤¾Ò²ð¤¬¡¢
-http://www.webreview.com¤Ë¤¢¤ê¤Þ¤¹¡£
-
-Web ¤Ø¤Î³ÈÄ¥¤Î¤¿¤á¤Ë¤Ï¡¢PHP ¤¬Âî±Û¤·¤¿¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹¤È¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£http://
-www.php.net/¤Ë¤¢¤ê¤Þ¤¹¡£
-
+ 1.11) PostgreSQL¤ÏÀ¾Îñ2000ǯÌäÂê(Y2K)¤ËÂбþ¤·¤Æ¤¤¤Þ¤¹¤«¡©
+
+ Âбþ¤·¤Æ¤Þ¤¹¡£À¾Îñ2000ǯ¤è¤ê¸å¤ÎÆüÉդ⡢µª¸µÁ°2000ǯ¤è¤êÁ°¤ÎÆüÉդ⡢´Ê
+ ñ¤Ë°·¤¨¤Þ¤¹¡£
+
+ 1.12) ³«È¯¥Á¡¼¥à¤Ë¤Ï¤É¤Î¤è¤¦¤Ë»²²Ã¤·¤Þ¤¹¤«¡©
+
+ ¤Þ¤ººÇ½é(£±ÈÖÌÜ)¤Ë¡¢ºÇ¿·¤Î¥½¡¼¥¹¤ò¥À¥¦¥ó¥í¡¼¥É¤·¡¢²æ¡¹¤Î Web
+ ¥µ¥¤¥È¤«ÇÛÉÛ¤Ë´Þ¤Þ¤ì¤Æ¤¤¤ëPostgreSQL Developers¤Îʸ½ñ¤òÆÉ¤ß¤Þ¤¹¡£
+ £²ÈÖÌܤˡ¢pgsql-hackers ¤È pgsql-patches
+ ¥á¡¼¥ê¥ó¥°¡¦¥ê¥¹¥È¤ò¹ØÆÉ(subscribe)¤·¤Þ¤¹¡£
+ £³ÈÖÌܤˡ¢¹âÉʼÁ¤Î¥Ñ¥Ã¥Á¤òpgsql-patches¤Ëȯ¿®¤·¤Þ¤¹¡£
+
+ ¤ª¤è¤½½½¿Í¤Á¤ç¤Ã¤È¤Î¿Í㤬¡¢PostgreSQL
+ CVS¥¢¡¼¥«¥¤¥Ö¤Ë¥³¥ß¥Ã¥È¤¹¤ë¸¢¸Â¤ò»ý¤Ã¤Æ¤¤¤Þ¤¹¡£
+ ¤½¤Î¤½¤ì¤¾¤ì¤Î¿Í㤬Âô»³¤Î¹âÉʼÁ¤Ê¥Ñ¥Ã¥Á¤òȯ¿®¤¹¤ë¤Î¤Ç¡¢¸½ºß¥³¥ß¥Ã¥¿¡¼
+ ¤È¤Ê¤Ã¤Æ¤¤¤ë¿Íã¤Ï¤½¤ì¤ËÄɤ¤ÉÕ¤¯¤Î¤¬ÂçÊѤǤ¹¤¬¡¢²æ¡¹¤ÏÈà¤é¤¬¥³¥ß¥Ã¥È¤·
+ ¤¿¥Ñ¥Ã¥Á¤Ï¹âÉʼÁ¤Ç¤¢¤ë¤È³Î¿®¤·¤Æ¤¤¤Þ¤¹¡£
+
+ 1.13) ¥Ð¥°¥ì¥Ý¡¼¥È¤Ï¤É¤Î¤è¤¦¤Ëȯ¿®¤·¤Þ¤¹¤«¡©
+
+ http://www.postgresql.org/support/submitbug ¤ÎPostgreSQL
+ ¥Ð¥°¥Õ¥©¡¼¥à¤òˬ¤ì¤Æ²¼¤µ¤¤¡£
+ ¥Ð¥°¥ì¥Ý¡¼¥È¤òÄó½Ð¤¹¤ë»ÅÊý¤Ë¤Ä¤¤¤Æ¤Î¼ê°ú¤È»Ø¿Ë¤¬¤¢¤ê¤Þ¤¹¡£
+
+ ¤½¤ì¤ÈƱ»þ¤Ë ftp ¥µ¥¤¥È
+ ftp://ftp.PostgreSQL.org/pub/¤Ç¡¢¤â¤Ã¤È¿·¤·¤¤¥Ð¡¼¥¸¥ç¥ó¤Î PostgreSQL
+ ¤¢¤ë¤¤¤Ï¥Ñ¥Ã¥Á¤ò¤µ¤¬¤·¤Æ¤ß¤Æ²¼¤µ¤¤¡£
+
+ 1.14) ¾¤ÎDBMS¤ÈÈæ¤Ù¤ÆPostgreSQL¤Ï¤É¤¦¤Ê¤Î¤Ç¤¹¤«¡©
+
+ ¥½¥Õ¥È¥¦¥§¥¢¤ò·×¤ëÊýË¡¤Ë¤Ï¤¤¤¯¤Ä¤«¤¢¤ê¤Þ¤¹¡£µ¡Ç½¤ÈÀǽ¤È¿®ÍêÀ
+ ¤È¥µ¥Ý¡¼¥È¤È²Á³Ê¤Ç¤¹¡£
+
+ µ¡Ç½(Features)
+ PostgreSQL¤Ï¡¢¥È¥é¥ó¥¶¥¯¥·¥ç¥ó¡¢ÉûÌ䤤¹ç¤ï¤»¡¢¥È¥ê¥¬¡¼¡¢¥Ó¥å¡¼¡
+ ¢³°Éô¥¡¼À°¹çÀ
+ »²¾È¡¢¤ª¤è¤Ó¡¢ÀöÎý¤µ¤ì¤¿¥í¥Ã¥¯µ¡¹½¤Ê¤É¡¢Â絬ÌϾ¦ÍÑDBMS¤¬»ý¤Äµ¡Ç
+ ½¤ò¤Û¤È¤ó¤É»ý¤Ã¤Æ¤¤¤Þ¤¹¡£¤µ¤é¤Ë
+ PostgreSQL¤Ï¡¢¥æ¡¼¥¶ÄêµÁ·¿¡¢·Ñ¾µ¡¢¥ë¡¼¥ë¡¢¤½¤ì¤«¤é¡¢¥í¥Ã¥¯¶¥¹ç¤
+ ò½Ì¾®¤¹¤ë¥Þ¥ë¥Á¥Ð¡¼¥¸¥ç¥óƱ»þÀ
+ À©¸æ¤Ê¤É¡¢¾¦ÍÑDBMS¤â»ý¤Á¹ç¤ï¤»¤Ê¤¤¤è¤¦¤Êµ¡Ç½¤ò¤¤¤¯¤Ä¤«»ý¤Á¹ç¤ï¤
+ »¤Æ¤¤¤Þ¤¹¡£
+
+ Àǽ(Performance)
+ PostgreSQL¤Ï¾¤Î¾¦ÍѤ¢¤ë¤¤¤Ï¥ª¡¼¥×¥ó¥½¡¼¥¹¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¤È¸ß³Ñ¤
+ ÎÀ
+ ǽ¤â»ý¤Á¤Þ¤¹¡£¤¢¤ëÌ̤ǤϤè¤êÁᤫ¤Ã¤¿¤ê¡¢¤Û¤«¤ÎÌ̤ǤϤè¤êÃÙ¤«¤Ã¤
+ ¿¤ê¤·¤Þ¤¹¡£MySQL¤Ê¤É¤ÎÆÃ²½·¿¥Ç¡¼¥¿¥Ù¡¼¥¹¡¦¥·¥¹¥Æ¥à¤Ë¤¯¤é¤Ù¤Æ¡¢P
+ ostgreSQL ¤ÏÊ£¿ô¥æ¡¼¥¶¤äÊ£»¨¤ÊÌ䤤¹ç¤ï¤»¡¢¤Þ¤¿¡¢ read/write
+ Ì䤤¹ç¤ï¤»¤Î¥í¡¼¥É¤¬¤è¤ê¹â®¤Ç¤¹¡£MySQL¤Ï¾¯¤Ê¤¤¥æ¡¼¥¶¤Ç¤Îñ½ã¤Ê
+ SELECT Ì䤤¹ç¤ï¤»¤Ç¤Ï¹â®¤Ç¤¹¡£¤â¤Á¤í¤ó¡¢MySQL¤Ë¤Ï¾åµ
+ ¤ÎFeatures¤ÎÀá¤Ë¼¨¤¹¤è¤¦¤Êµ¡Ç½¤Ï¤Û¤È¤ó¤É¤¢¤ê¤Þ¤»¤ó¡£²æ¡¹¤Ï¡¢Pos
+ tgreSQL¤Ë½ÀÆðÀ¤Èµ¡Ç½À¤òÁȤ߹þ¤ß¤Ê¤¬¤é¤â¡¢À䤨¤ºÀ
+ ǽ¤Î²þÁ±¤ò³¤±¤Æ¤¤¤Þ¤¹¡£
+
+ ¿®ÍêÀ(Reliability)
+ ²æ¡¹¤Ï¡¢DBMS¤Î¿®ÍêÀ
+ ¤¬¹â¤¯¤Ê¤¯¤Æ¤Ï¤½¤Î²ÁÃͤ¬Ìµ¤¤¤³¤È¤òÍý²ò¤·¤Æ¤Þ¤¹¡£½½Ê¬¥Æ¥¹¥È¤·¤Æ¡
+ ¢°ÂÄꤷ¤¿¥³¡¼¥É¤ò¥Ð¥°¤òºÇ¾®¤Ë¤·¤Æ¤«¤é¥ê¥ê¡¼¥¹¤¹¤ë¤è¤¦¤ËÅØ¤á¤Æ¤Þ
+ ¤¹¡£¤½¤ì¤¾¤ì¤Î¥ê¥ê¡¼¥¹¤Ï¾¯¤Ê¤¯¤È¤â1¥«·î°Ê¾å¤Î¥Ù¡¼¥¿¡¦¥Æ¥¹¥È¤ò¹Ô
+ ¤Ê¤¤¡¢¤³¤ì¤Þ¤Ç¤Î¥ê¥ê¡¼¥¹¤ÎÍúÎò¤¬¡¢À½ÉÊÈǤȤ·¤Æ°ÂÄꤷ¤¿·ø¸Ç¤Ê¥ê¥
+ ꡼¥¹¤Ç¤¢¤ë¤³¤È¤òʪ¸ì¤Ã¤Æ¤¤¤Þ¤¹¡£¤³¤ÎʬÌî¤Ç¤Ï¡¢Â¾¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹
+ ¤ÈÈæ¤Ù¤Æ¤â½¿§¤¬¤Ê¤¤¤³¤È¤Ë¼«¿®¤ò»ý¤Ã¤Æ¤¤¤Þ¤¹¡£
+
+ ¥µ¥Ý¡¼¥È(Support)
+ ²æ¡¹¤Î¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤Ï¡¢Áø¶ø¤¹¤ë¤¤¤«¤Ê¤ëÌäÂê¤Ë¤Ä¤¤¤Æ¤â²ò·è¤Ø¤
+ μê½õ¤±¤ò¤·¤Æ¤¯¤ì¤ë¡¢³«È¯¼Ô¤ä¥æ¡¼¥¶¤ÎÂç¤
+ ¤Ê½¸¤Þ¤ê¤Ø¤ÎÀÜÅÀ¤òÄ󶡤·¤Æ¤¤¤Þ¤¹¡£²æ¡¹¤ÏÌäÂê¤Î²ò·è¤òÊݾڤ¹¤ë¤³¤
+ ȤϤǤ
+ ¤Þ¤»¤ó¤¬¡¢¾¦Íѥǡ¼¥¿¥Ù¡¼¥¹¤Ç¤¢¤Ã¤Æ¤â¾ï¤Ë²ò·è¤µ¤ì¤ë¤ï¤±¤Ç¤Ï¤¢¤ê¤
+ Þ¤»¤ó¡£³«È¯¼Ô¤ä¡¢¥æ¡¼¥¶¡¦¥³¥ß¥å¥Ë¥Æ¥£¡¢¥Þ¥Ë¥å¥¢¥ëÎà¡¢¤½¤ì¤Ë¡¢¥½
+ ¡¼¥¹¥³¡¼¥É¤Ê¤É¤ØÄ¾ÀÜ¥¢¥¯¥»¥¹¤Ç¤
+ ¤ë¤³¤È¤Ë¤è¤Ã¤Æ¡¢PostgreSQL¤Î¥µ¥Ý¡¼¥È¤Ï¡¢Â¾¤ÎDBMS¥µ¥Ý¡¼¥È¤è¤ê¤âÍ
+ ¥¤ì¤¿¤â¤Î¤È¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£¸æÍ×˾¤ËÅú¤¨¤Æ¡¢»öÊÁËè¤Î¾¦ÍÑ¥µ¥Ý¡¼¥È¤Ê
+ ¤É¤â¤¢¤ê¤Þ¤¹¡ÊFAQ1.6Àá¤ò¤´Í÷²¼¤µ¤¤¡Ë¡£
+
+ ²Á³Ê(Price)
+ PostgreSQL¤ÎÍøÍѤϡ¢¾¦ÍѤǤâÈó¾¦ÍѤǤ⡢¤¹¤Ù¤ÆÌµÎÁ¤Ç¤¹¡£¾åµ
+ ¤Ë¼¨¤·¤Æ¤¢¤ëBSD¥¹¥¿¥¤¥ë¤Î»ÈÍѵöÂú¤Ë³°¤ì¤Ê¤¤¸Â¤ê¡¢PostgreSQL¤Î¥³
+ ¡¼¥É¤òÀ©¸Â̵¤·¤Ç¾¦ÉʤËÁȤ߹þ¤à¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
+
+ 1.15) PostgreSQL¤ò»ñ¶âÌ̤DZç½õ¤¹¤ë¤Ë¤Ï¤É¤¦¤¹¤ì¤Ð¤è¤¤¤Ç¤¹¤«¡©
+
+ PostgreSQL¤Ï¡¢²æ¡¹¤¬»Ï¤á¤¿ 1996ǯ°ÊÍè¡¢ºÇ¹â¥¯¥é¥¹¤Î¾ðÊó´ðÈפò»ý¤Ã¤Æ¤¤
+ ¤Þ¤¹¡£¤³¤ì¤Ï¤¹¤Ù¤Æ¡¢Marc
+ Fournie¤µ¤ó¤Î¤ª¤«¤²¤Ç¡¢Èà¤Ï¤³¤Î´ðÈפòÁϤê½Ð¤·¡¢²¿Ç¯¤Ë¤â¤ï¤¿¤Ã¤Æ´ÉÍý¤·¤
+ Ƥ¤Þ¤·¤¿¡£
+
+ ¼Á¤ÎÎɤ¤´ðÈפϡ¢¥ª¡¼¥×¥ó¥½¡¼¥¹¡¦¥×¥í¥¸¥§¥¯¥È¤Ë¤È¤Ã¤Æ¤Ï¤È¤Æ¤âÂçÀڤʤâ¤Î
+ ¤Ç¡¢¥×¥í¥¸¥§¥¯¥È¤¬Á°¿Ê¤¹¤ëÀª¤¤¤ò¼º¤Ã¤ÆÊ¬Îö¤¹¤ë¤Î¤ò²óÈò¤·¤Þ¤¹¡£
+
+ ¤â¤Á¤í¤ó¡¢¤³¤Î´ðÈפϰ¤¤¤â¤Î¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£°Ý»ý¤·Â³¤±¤ë¤¿¤á¤Ë¤ÏËè·î¤¢
+ ¤ë¤¤¤Ï°ì»þŪ¤Ë·ÐÈñ¤¬¤«¤«¤ê¤Þ¤¹¡£¤â¤·¡¢¤¢¤Ê¤¿¤ä¤¢¤Ê¤¿¤Î²ñ¼Ò¤Ë¡¢¤³¤¦¤·¤¿
+ ÅØÎϤΤ¿¤á¤Î»ñ¶â¤Î±ç½õ¤ò»Ü¤¹¤³¤È¤¬¤Ç¤
+ ¤ë¤è¤¦¤Ç¤·¤¿¤é¡¢http://store.pgsql.com/shopping/¤«¤é´óÉÕ¤ò¤ª´ê¤¤¤·¤Þ¤¹
+ ¡£
+
+ ¤Þ¤¿¡¢Web¥Ú¡¼¥¸¤Ë¤Ï PostgreSQL,Inc ¤È¤¢¤ê¤Þ¤¹¤¬¡¢¤½¤³¤Î
+ "¹×¸¥(contributions)"¤È¤¤¤¦¹àÌܤϡ¢ PostgreSQL
+ ¥×¥í¥¸¥§¥¯¥È¤ò»Ù±ç¤¹¤ë¤À¤±¤Î¤¿¤á¤Ç¡¢·è¤·¤ÆÆÃÄê¤Î²ñ¼Ò¤Î¤¿¤á¤Î»ñ¶â¤Ç¤Ï¤¢
+ ¤ê¤Þ¤»¤ó¡£¤â¤·¡¢¾®ÀÚ¼ê(check)¤ÎÊý¤¬ÅÔ¹ç¤è¤±¤ì¤ÐÏ¢ÍíÀè¤Î½»½ê¤Ø¤ªÁ÷¤ê²¼¤
+ µ¤¤¡£
+
+ ¤µ¤é¤Ë¡¢PostgreSQL¤ò»È¤Ã¤¿À®¸ù»öÎã¤ò¤ª»ý¤Á¤Ç¤¢¤ì¤Ð¡¢¤¼¤Ò¡¢¤ï¤ì¤ï¤ì¤Î
+ _________________________________________________________________
+
+ ¥æ¡¼¥¶¡¼¡¦¥¯¥é¥¤¥¢¥ó¥È¤Î¼ÁÌä
+
+ 2.1) PostgreSQL ¤Î¤¿¤á¤Î ODBC ¥É¥é¥¤¥Ð¡¼¤Ï¤¢¤ê¤Þ¤¹¤«¡©
+
+ PsqlODBC ¤È OpenLink ODBC ¤ÎÆó¤Ä¤Î ODBC ¥É¥é¥¤¥Ð¡¼¤¬ÍøÍѲÄǽ¤Ç¤¹¡£
+
+ PsqlODBC ¤Ï¼¡¤Î¾ì½ê¤«¤é¥À¥¦¥ó¥í¡¼¥É¤Ç¤¤Þ¤¹¡£
+ http://gborg.postgresql.org/project/psqlodbc/projdisplay.php
+
+ OpenLink ODBC ¤Ï http://www.openlinksw.com/¤«¤éÆþ¼ê¤Ç¤¤Þ¤¹¡£É¸½àŪ¤Ê
+ ODBC
+ ¥¯¥é¥¤¥¢¥ó¥È¡¦¥½¥Õ¥È¥¦¥§¥¢¤Ç»È¤¨¤Þ¤¹¤Î¤Ç¡¢»Ù±ç¤·¤Æ¤¤¤ë¤¹¤Ù¤Æ¤Î¥×¥é¥Ã¥È
+ ¥Û¡¼¥à(Win, Mac, Unix, VMS)¤«¤é PostgreSQL ¤Î ODBC ¤¬ÍøÍѤǤ¤Þ¤¹¡£
+
+ ¤¿¤Ö¤óÈà¤é¤Ï¡¢¾¦ÍÑÉʼÁ¤Î¥µ¥Ý¡¼¥È¤ÎɬÍפʿ͡¹¤ËÇä¤Ã¤Æ¤¤¤ë¤È»×¤¤¤Þ¤¹¤¬¡¢
+ ¥Õ¥ê¡¼¥¦¥§¥¢ÈǤϤ¤¤Ä¤Ç¤âÆþ¼ê²Äǽ¤Î¤è¤¦¤Ç¤¹¡£¼ÁÌä¤Ï¡¢postgres95@openlin
+ k.co.uk ¤ØÁ÷¤Ã¤Æ²¼¤µ¤¤¡£
+
+ Programmer's Guide ¤Î ODBC ¤Î¾Ï¤â¤´Í÷¤¯¤À¤µ¤¤¡£
+
+ 2.2) PostgreSQL ¤ò Web ¥Ú¡¼¥¸¤ÈÏ¢·È¤µ¤»¤ë¤Ë¤Ï¤É¤ó¤Ê¥Ä¡¼¥ë¤¬¤¢¤ê¤Þ¤¹¤«¡©
+
+ ¥Ç¡¼¥¿¥Ù¡¼¥¹¤ò΢¤Ë»ý¤Ä Web ¥Ú¡¼¥¸¤Ë¤Ä¤¤¤Æ¤ÎÁÇÀ²¤é¤·¤¤¾Ò²ð¤¬¡¢
+ http://www.webreview.com¤Ë¤¢¤ê¤Þ¤¹¡£
+
+ Web ¤Ø¤Î³ÈÄ¥¤Î¤¿¤á¤Ë¤Ï¡¢PHP
+ ¤¬Âî±Û¤·¤¿¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹¤È¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£http://www.php.net/¤Ë¤¢¤ê¤Þ¤
+ ¹¡£
[ÌõÃí:
- PHP¤Ë´Ø¤¹¤ëÆüËܸì¤Î¾ðÊó¤Ï¡¢2000ǯ4·î19Æü¤Ëȯ¤·¤¿ÆüËÜPHP¥æ¡¼¥¶²ñ¤Î¥µ¥¤¥È
+ PHP¤Ë´Ø¤¹¤ëÆüËܸì¤Î¾ðÊó¤Ï¡¢2000ǯ4·î19Æü¤Ëȯ¤·¤¿ÆüËÜPHP¥æ¡¼¥¶²ñ¤Î¥µ¥¤¥È
http://www.php.gr.jp/
¤¢¤ë¤¤¤Ï¡¢×¢Àî Îव¤ó¤Î¥µ¥¤¥È
http://www.geocities.jp/rui_hirokawa/php/
¤Ë¤«¤Ê¤ê¤Þ¤È¤á¤é¤ì¤Æ¤¤¤Þ¤¹¡£
]
-½èÍý¤¬Ê£»¨¤Ê¾ì¹ç¡¢Â¿¤¯¤Î¿Í¤Ï Perl ¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹¤È CGI.pm ¤« mod_perl ¤ò»È¤¤
-¤Þ¤¹¡£
-
+ ½èÍý¤¬Ê£»¨¤Ê¾ì¹ç¡¢Â¿¤¯¤Î¿Í¤Ï Perl ¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹¤È CGI.pm ¤«
+ mod_perl ¤ò»È¤¤¤Þ¤¹¡£
[ÌõÃí:
WDB ¤Ï¡¢Web ¤«¤é DataBase ¤Ø¤Î Perl ¤Î Interface ¤Ç¤¹¡£
wdb-p95 ¤Ø¤Î¥ê¥ó¥¯¤ÏÀÚ¤ì¤Æ¤·¤Þ¤Ã¤Æ¤¤¤Þ¤¹¡£¤ª¤½¤é¤¯¡¢Perl DBI ·Ðͳ¤Ç DBD::Pg ¤ÎÍøÍѤ¬²Äǽ¤È»×¤ï¤ì¤Þ¤¹¡£
¤È¤¬¤¢¤ê¤Þ¤¹¡£¤½¤Î·Ð°Þ¤Ï¤è¤¯¤ï¤«¤ê¤Þ¤»¤ó¡£
]
-2.3) PostgreSQL ¤Ë¥°¥é¥Õ¥£¥«¥ë¡¦¥æ¡¼¥¶¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹¤Ï¤¢¤ê¤Þ¤¹¤«¡©
-
-¤â¤Á¤í¤ó¡¢PostgreSQL ¤Ø¤Î¥°¥é¥Õ¥£¥«¥ë¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹¤¬¤¤¤¯¤Ä¤«¤¢¤ê¤Þ¤¹¡£¤½¤ÎÃæ
-¤ËPgAccess http://www.pgaccess.org ¤â´Þ¤Þ¤ì¤Þ¤¹¡£ PgAdmin III (http://
-www.pgadmin.org)¤â¤¢¤ê¤Þ¤¹¡£ RHDB Admin (http://sources.redhat.com/rhdb/ )¡¢
-TORA (http://www.globecom.net/tora/ (ÉôʬŪ¤Ë¾¦ÍÑ)) ¤ª¤è¤Ó¡¢ Rekall ( http://
-www.thekompany.com/products/rekall/, proprietary)¤â¤¢¤ê¤Þ¤¹¡£ PhpPgAdmin (
-http://phppgadmin.sourceforge.net/ ) ¤ÏPostgreSQL¤Ø¤ÎWeb¥Ù¡¼¥¹¤Î¥¤¥ó¥¿¡¼¥Õ¥§¥¤
-¥¹¤òÄ󶡤·¤Þ¤¹¡£
-
-¤è¤ê¾ÜºÙ¤Ê¥ê¥¹¥È¤Ë¤Ä¤¤¤Æ¤Ï¡¢http://techdocs.postgresql.org/guides/GUITools ¤ò¤´
-Í÷¤¯¤À¤µ¤¤¡£
-
-2.4) ¤É¤Î¤è¤¦¤Ê¸À¸ì¤Ç PostgreSQL ¤ÈÄÌ¿®¤Ç¤¤¹¤«¡©
-
-¿Íµ¤¤Î¤¢¤ë¤Û¤È¤ó¤É¤Î¸À¸ì¤ÏPostgreSQL¤Ø¤Î¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹¤ò»ý¤Ã¤Æ¤¤¤Þ¤¹¡£¤¢¤Ê¤¿
-¤¬»È¤¦¥×¥í¥°¥é¥ß¥ó¥°¸À¸ì¤Î³ÈÄ¥¥â¥¸¥å¡¼¥ë¤Î¥ê¥¹¥È¤òÇÁ¤¤¤Æ¤ß¤Æ¤¯¤À¤µ¤¤¡£
-
-°Ê²¼¤Î¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹¤ÏPostgreSQL¤ÎÇÛÉÛ¤Ë´Þ¤Þ¤ì¤Æ¤¤¤Þ¤¹¡£
-
- ¡¦ C (libpq)
- ¡¦ Ëä¤á¹þ¤ßC (ecpg)
- ¡¦ Java (jdbc)
- ¡¦ Python (PyGreSQL)
- ¡¦ TCL (libpgtcl)
-
-¤½¤Î¾¤ÎÍøÍѲÄǽ¤Ê¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹¤Ï http://gborg.postgresql.org ¤ÎDrivers/
-Interfaces¤Î¥»¥¯¥·¥ç¥ó¤Ë¤¢¤ê¤Þ¤¹¡£
-
+ 2.3) PostgreSQL ¤Ë¥°¥é¥Õ¥£¥«¥ë¡¦¥æ¡¼¥¶¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹¤Ï¤¢¤ê¤Þ¤¹¤«¡©
+
+ ¤â¤Á¤í¤ó¡¢PostgreSQL
+ ¤Ø¤Î¥°¥é¥Õ¥£¥«¥ë¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹¤¬¤¤¤¯¤Ä¤«¤¢¤ê¤Þ¤¹¡£ ¤½¤ÎÃæ¤ËPgAccess
+ http://www.pgaccess.org ¤â´Þ¤Þ¤ì¤Þ¤¹¡£ PgAdmin III
+ (http://www.pgadmin.org)¤â¤¢¤ê¤Þ¤¹¡£ RHDB Admin
+ (http://sources.redhat.com/rhdb/ )¡¢TORA
+ (http://www.globecom.net/tora/ (ÉôʬŪ¤Ë¾¦ÍÑ)) ¤ª¤è¤Ó¡¢ Rekall (
+ http://www.thekompany.com/products/rekall/, proprietary)¤â¤¢¤ê¤Þ ¤¹¡£
+ PhpPgAdmin ( http://phppgadmin.sourceforge.net/ )
+ ¤ÏPostgreSQL¤Ø¤ÎWeb¥Ù¡¼¥¹¤Î ¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹¤òÄ󶡤·¤Þ¤¹¡£
+
+ ¤è¤ê¾ÜºÙ¤Ê¥ê¥¹¥È¤Ë¤Ä¤¤¤Æ¤Ï¡¢http://techdocs.postgresql.org/guides/GUIT
+ ools ¤ò¤´Í÷¤¯¤À¤µ¤¤¡£
+
+ 2.4) ¤É¤Î¤è¤¦¤Ê¸À¸ì¤Ç PostgreSQL ¤ÈÄÌ¿®¤Ç¤¤¹¤«¡©
+
+ ¿Íµ¤¤Î¤¢¤ë¤Û¤È¤ó¤É¤Î¸À¸ì¤ÏPostgreSQL¤Ø¤Î¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹¤ò»ý¤Ã¤Æ¤¤¤Þ¤¹
+ ¡£
+ ¤¢¤Ê¤¿¤¬»È¤¦¥×¥í¥°¥é¥ß¥ó¥°¸À¸ì¤Î³ÈÄ¥¥â¥¸¥å¡¼¥ë¤Î¥ê¥¹¥È¤òÇÁ¤¤¤Æ¤ß¤Æ¤¯¤À
+ ¤µ¤¤¡£
+
+ °Ê²¼¤Î¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹¤ÏPostgreSQL¤ÎÇÛÉÛ¤Ë´Þ¤Þ¤ì¤Æ¤¤¤Þ¤¹¡£
+ * C (libpq)
+ * Ëä¤á¹þ¤ßC (ecpg)
+ * Java (jdbc)
+ * Python (PyGreSQL)
+ * TCL (libpgtcl)
+
+ ¤½¤Î¾¤ÎÍøÍѲÄǽ¤Ê¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹¤Ï http://gborg.postgresql.org
+ ¤ÎDrivers/Interfaces¤Î¥»¥¯¥·¥ç¥ó¤Ë¤¢¤ê¤Þ¤¹¡£
[ÌõÃí¡§
±Ê°Â¸ç»Ë¤µ¤ó¤Ï Palm ÈǤΠlibpq ¤ò³«È¯¤µ¤ì¤Þ¤·¤¿¡£
http://www.snaga.org/libpq/
]
-
-¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬
-
- ´ÉÍý¾å¤Î¼ÁÌä
-
-3.1) ¤É¤Î¤è¤¦¤Ë¤¹¤ì¤Ð /usr/local/pgsql °Ê³°¤Î¾ì½ê¤Ë¥¤¥ó¥¹¥È¡¼¥ë¤Ç¤¤Þ¤¹¤«¡©
-
-´Êñ¤ÊÊýË¡¤Ï¡¢ configure ¤òÁö¤é¤»¤ë¤È¤¤Ë --prefix ¥ª¥×¥·¥ç¥ó¤ò»ØÄꤹ¤ë¤³¤È¤Ç¤¹
-¡£
-
-3.2) postmaster ¤òÁö¤é¤»¤ë¤È¡¢Bad System Call ¤È¤«¥³¥¢¡¦¥À¥ó¥×¤·¤¿¤È¤Î¥á¥Ã¥»¡¼
-¥¸¤¬½Ð¤Þ¤¹¡£¤Ê¤¼¤Ç¤¹¤«¡©
-
-¤µ¤Þ¤¶¤Þ¤ÊÌäÂ꤬¹Í¤¨¤é¤ì¤Þ¤¹¤¬¡¢¤Þ¤ººÇ½é¤Ë¤¢¤Ê¤¿¤Î¥«¡¼¥Í¥ë¤Ë System V IPC ¤Î³È
-Ä¥¤¬¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Æ¤¤¤ë¤«¤ò³Îǧ¤·¤Æ¸«¤Æ¤¯¤À¤µ¤¤¡£PostgreSQL ¤Ï¥«¡¼¥Í¥ë¤Ë¤è¤ë
-¶¦Í¥á¥â¥ê¡¼¤È¥»¥Þ¥Õ¥©¤Î¥µ¥Ý¡¼¥È¤òɬÍפȤ·¤Þ¤¹¡£
-
-3.3) postmaster ¤òÁö¤é¤»¤è¤¦¤È¤¹¤ë¤È¡¢IpcMemoryCreate ¥¨¥é¡¼¤¬½Ð¤Þ¤¹¡£¤Ê¤¼¤Ç¤¹
-¤«¡©
-
-¥«¡¼¥Í¥ë¤¬¶¦Í¥á¥â¥ê¡¼¤ò»ý¤ÄÀßÄê¤Ë¤Ê¤Ã¤Æ¤¤¤Ê¤«¤Ã¤¿¤«¡¢¤Ç¤Ê¤±¤ì¤Ð¡¢¥«¡¼¥Í¥ë¤ËÂÐ
-¤·¤Æ»È¤¨¤ë¶¦Í¥á¥â¥ê¡¼¤ÎÂ礤µ¤òÂ礤¯ÀßÄꤹ¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£¶ñÂÎŪ¤ÊÂ礤µ¤Ï
-¡¢»È¤Ã¤Æ¤¤¤ë¥¢¡¼¥¥Æ¥¯¥Á¥ã¤Èpostmaster ¤òÁö¤é¤»¤ë¤È¤¤ËÀßÄꤹ¤ë¥Ð¥Ã¥Õ¥¡¤Î¿ô¤È¥Ð
-¥Ã¥¯¥¨¥ó¥É¥×¥í¥»¥¹¤Ë°Í¸¤·¤Þ¤¹¡£¤Û¤È¤ó¤É¤Î¥·¥¹¥Æ¥à¤Ç¤Ï¡¢´ûÄêÃͤΥХåե¡¥µ¥¤¥º
-¤Î¤Þ¤Þ¤Ç¡¢¾¯¤Ê¤¯¤È¤âÌó1MB¤¬É¬ÍפǤ¹¡£ PostgreSQL Administrator's Guide/Server
-Run-time Environment/Managing Kernel Resources ¤Ë¶¦Í¥á¥â¥ê¡¼¤È¥»¥Þ¥Õ¥©¤Ë¤Ä¤¤¤Æ
-¤Î¾ðÊó¤Î¾ÜºÙ¤¬¤¢¤ê¤Þ¤¹¤Î¤Ç¤´Í÷¤¯¤À¤µ¤¤¡£
-
-3.4) postmaster¤òÁö¤é¤»¤è¤¦¤È¤¹¤ë¤È¡¢IpcSemaphoreCreate ¥¨¥é¡¼¤¬½Ð¤Þ¤¹¡£¤Ê¤¼¤Ç
-¤¹¤«¡©
-
-¤â¤·¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤¬IpcSemaphoreCreate: semget failed (No space left on
-device)¤Ç¤¢¤ì¤Ð¡¢¥«¡¼¥Í¥ë¤¬½½Ê¬¤Ê¥»¥Þ¥Õ¥©¤ò»È¤¨¤ë¤è¤¦¤Ë¹½À®¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£
-Postgres¤ÏÀøºßŪ¤Ê¥Ð¥Ã¥¯¥¨¥ó¥É¥×¥í¥»¥¹Ëè¤Ë°ì¤Ä¤Î¥»¥Þ¥Õ¥©¤òɬÍפȤ·¤Þ¤¹¡£¤È¤ê¤¢
-¤¨¤º¤Î²ò·èºö¤Ïpostmaster¤òµ¯Æ°¤¹¤ë¤È¤¤Ë¡¢¥Ð¥Ã¥¯¥¨¥ó¥É¥×¥í¥»¥¹¤Î¿ô¤ò¤è¤ê¾¯¤Ê¤¯
-À©¸Â¤ò¤¹¤ë¤³¤È¤Ç¤¹¡£´ûÄêÃͤÎ32¤è¤ê¾®¤µ¤Ê¿ô¤Î¥Ñ¥é¥á¡¼¥¿¤ò-N¤Ç»È¤¤¤Þ¤¹¡£¤è¤ê¹±µ×
-Ū¤Ê²ò·èºö¤Ï¡¢¥«¡¼¥Í¥ë¤ÎSEMMNS ¤È SEMMNI ¥Ñ¥é¥á¡¼¥¿¤òÁý¤ä¤¹¤³¤È¤Ç¤¹¡£
-
-ÁàºîÉÔǽ¤Î¥»¥Þ¥Õ¥©¤â²áÅ٤ʥǡ¼¥¿¥Ù¡¼¥¹¥¢¥¯¥»¥¹¤Î´Ö¤Ë¥¯¥é¥Ã¥·¥å¤òµ¯¤³¤¹²ÄǽÀ¤¬
-¤¢¤ê¤Þ¤¹¡£
-
-¤â¤·¡¢¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤¬¤Ê¤Ë¤«Â¾¤Î¤â¤Î¤Ç¤¢¤ì¤Ð¡¢¥«¡¼¥Í¥ë¤Î¹½À®¤Ç¤Þ¤Ã¤¿¤¯¥»¥Þ¥Õ
-¥©¤Î¥µ¥Ý¡¼¥È¤ò¤·¤Æ¤¤¤Ê¤¤¤«¤â¤·¤ì¤Þ¤»¤ó¡£ PostgreSQL Administrator's Guide ¤Ë¶¦
-Í¥á¥â¥ê¡¼¤È¥»¥Þ¥Õ¥©¤Ë¤Ä¤¤¤Æ¤Î¾ðÊó¤Î¾ÜºÙ¤¬¤¢¤ê¤Þ¤¹¡£
-
-3.5) ¾¤Î¥Û¥¹¥È¤«¤é¤ÎÀܳ¤Ï¤É¤Î¤è¤¦¤ËÀ©¸æ¤·¤Þ¤¹¤«¡©
-
-´ûÄêÃͤǤϡ¢PostgreSQL ¤Ï Unix ¥É¥á¥¤¥ó¥½¥±¥Ã¥È¡¢¤Þ¤¿¤Ï¡¢TCP/IPÀܳ¤Î¥í¡¼¥«¥ë¥Þ
-¥·¥ó¤«¤é¤ÎÀܳ¤·¤«µö¤·¤Þ¤»¤ó¡£postgresql.conf ¤ÎÃæ¤Î listen_addresses ¤ò½¤Àµ¤·
-¡¢¤«¤Ä¡¢$PGDATA/pg_hba.conf ¥Õ¥¡¥¤¥ë¤òŬÀڤ˾¤·¤Æ¡¢¥Û¥¹¥È¼çƳ·¿Ç§¾Ú¤ò͸ú¤Ë¤·
-¤Ê¤¤¤«¤®¤ê¤Ï¡¢Â¾¤Î¥Þ¥·¥ó¤«¤é¤ÏÀܳ¤Ç¤¤Ê¤¤¤Ç¤·¤ç¤¦¡£
-
-3.6) ¤è¤êÎɤ¤Àǽ¤òÆÀ¤ë¤¿¤á¤Ë¤Ï¡¢¥Ç¡¼¥¿¥Ù¡¼¥¹¡¦¥¨¥ó¥¸¥ó¤ò¤É¤Î¤è¤¦¤ËÄ´À°¤¹¤ì¤ÐÎÉ
-¤¤¤Ç¤¹¤«¡©
-
-³Î¤«¤Ë¥¤¥ó¥Ç¥Ã¥¯¥¹¤ÏÌ䤤¹ç¤ï¤»¤Î®ÅÙ¤òÁý¤·¤Þ¤¹¡£EXPLAIN ANALYZE¥³¥Þ¥ó¥É¤Ç
-PostgreSQL ¤¬¤É¤Î¤è¤¦¤Ë¤¢¤Ê¤¿¤ÎÌ䤤¹ç¤ï¤»¤òËÝÌõ¤·¤Æ¤¤¤ë¤«¤ò¸«¤ë¤³¤È¤¬¤Ç¤¡¢¤½¤·
-¤Æ¡¢¤É¤Î¥¤¥ó¥Ç¥Ã¥¯¥¹¤¬»È¤ï¤ì¤Æ¤¤¤ë¤«¤ò¸«¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
-
-¤â¤· INSERT ¤ò¿ÍѤ·¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢COPY ¥³¥Þ¥ó¥É¤ò»È¤Ã¤ÆÂ礤ʥХåÁ½èÍý¤Ç¤½¤ì¤ò
-¹Ô¤Ê¤¦¤³¤È¤ò¸¡Æ¤¤·¤Æ²¼¤µ¤¤¡£¤³¤ì¤Ï¡¢INSERT ¤òÊÌ¡¹¤Ë¹Ô¤Ê¤¦¤è¤ê¤â¤Ã¤È¹â®¤Ç¤¹¡£¼¡
-¤Ë¡¢BEGIN WORK/COMMIT ¤Î¥È¥é¥ó¥¶¥¯¥·¥ç¥ó¡¦¥Ö¥í¥Ã¥¯¤ÎÃæ¤Ë̵¤¤Ê¸¤Ï¡¢¤½¤ì¤é¼«¿È¤¬
-¤½¤ì¤¾¤ì¤Î¥È¥é¥ó¥¶¥¯¥·¥ç¥ó¤ËÆþ¤Ã¤Æ¤¤¤ë¤È¸«¤Ê¤µ¤ì¤Þ¤¹¡£¤¤¤¯¤Ä¤«¤Îʸ¤ò°ì¤Ä¤Î¥È¥é
-¥ó¥¶¥¯¥·¥ç¥ó¡¦¥Ö¥í¥Ã¥¯¤ÎÃæ¤Ç¹Ô¤Ê¤¦¤³¤È¤ò¹Í¤¨¤Æ²¼¤µ¤¤¡£¤³¤ì¤Ë¤è¤ê¥È¥é¥ó¥¶¥¯¥·¥ç
-¥ó¤Î¥ª¡¼¥Ð¡¼¥Ø¥Ã¥É¤¬¸º¤ê¤Þ¤¹¡£¤Þ¤¿¡¢Â礤ʥǡ¼¥¿¤ÎÊѹ¹¤ò¹Ô¤Ê¤¦ºÝ¤Ï¥¤¥ó¥Ç¥Ã¥¯¥¹
-¤ò°ìÅÙ³°¤·¤Æ¡¢ºî¤êľ¤¹¤³¤È¤ò¹Í¤¨¤Æ¤ß¤Æ²¼¤µ¤¤¡£
-
-Administration Guide/Server Run-time Environment/Run-time Configuration¤Ë¤Ï¡¢¥Á
-¥å¡¼¥Ë¥ó¥°¤Î¥ª¥×¥·¥ç¥ó¤¬¤¤¤¯¤Ä¤«¤¢¤ê¤Þ¤¹¡£fsync¥ª¥×¥·¥ç¥ó¤Çfsync() ¤ò̵¸ú¤Ë¤¹¤ë
-¤³¤È¤¬¤Ç¤¤Þ¤¹¡£¤³¤ì¤Ë¤è¤Ã¤Æ¡¢³Æ¥È¥é¥ó¥¶¥¯¥·¥ç¥óËè¤Ë fsync() ¤Ç¥Ç¥£¥¹¥¯¤ò¹¹¿·¤¹
-¤ë¤Î¤ò»ß¤á¤µ¤»¤Þ¤¹¡£
-
-shared_buffers¥ª¥×¥·¥ç¥ó¤ò»È¤Ã¤Æ¥Ð¥Ã¥¯¥¨¥ó¥É¡¦¥×¥í¥»¥¹¤Ë¤è¤ê»È¤ï¤ì¤ë¶¦Í¥á¥â¥ê
-¡¼¡¦¥Ð¥Ã¥Õ¥¡¤òÂ礤¯¤¹¤ë¤³¤È¤â¤Ç¤¤Þ¤¹¡£¤â¤·¡¢¤³¤Î¥Ñ¥é¥á¡¼¥¿¤ò¹â¤¯¤·¤¹¤®¤ë¤È¡¢
-¥«¡¼¥Í¥ë¤Î¶¦Í¥á¥â¥ê¡¼¶õ´Ö¤ÎÀ©¸ÂÃͤò±Û¤¨¤Æ¤·¤Þ¤¦¤¿¤á¤Ë postmaster ¤¬Áö¤é¤Ê¤¯¤Ê
-¤ë¤Ç¤·¤ç¤¦¡£´ûÄêÃͤǤϡ¢¤½¤ì¤¾¤ì¤Î¥Ð¥Ã¥Õ¥¡¤ÎÂ礤µ¤Ï 8K ¤Ç¡¢¥Ð¥Ã¥Õ¥¡¿ô¤Ï 1000
-¤Ç¤¹¡£
-
-sort_mem (PostgreSQL 8.0¤«¤é¤Ï: work_mem)¥ª¥×¥·¥ç¥ó¤ò»È¤Ã¤Æ¡¢¤½¤ì¤¾¤ì¤Î¥Ð¥Ã¥¯¥¨
-¥ó¥É¡¦¥×¥í¥»¥¹¤¬°ì»þŪ¤ÊʤÙÂØ¤¨¤Ë¤è¤Ã¤Æ»È¤¦¥á¥â¥ê¡¼¤ÎºÇÂ祵¥¤¥º¤òÁý¤ä¤¹¤³¤È¤â
-¤Ç¤¤Þ¤¹¡£´ûÄêÃÍ¤Ï 1024 (¤¹¤Ê¤ï¤Á¡¢1MB)¤Ç¤¹¡£
-
-¤Þ¤¿¡¢CLUSTER ¥³¥Þ¥ó¥É¤ò»È¤Ã¤Æ¡¢¥Æ¡¼¥Ö¥ë¤Î¥Ç¡¼¥¿¤ò¥¤¥ó¥Ç¥Ã¥¯¥¹¤Ë¹ç¤ï¤»¤ë¤¿¤á¤Ë
-¥°¥ë¡¼¥×²½¤¹¤ë¤³¤È¤â¤Ç¤¤Þ¤¹¡£¾Ü¤·¤¯¤Ï¡¢¥ª¥ó¥é¥¤¥ó¥Þ¥Ë¥å¥¢¥ë¤Ç CLUSTER ¤ò¸«¤Æ²¼
-¤µ¤¤¡£
-
-3.7) ¤É¤Î¤è¤¦¤Ê¥Ç¥Ð¥°µ¡Ç½¤¬»È¤¨¤Þ¤¹¤«¡©
-
-PostgreSQL ¤Ï¡¢¥Ç¥Ð¥°¤Î¤¿¤á¤Ë°ÕÌ£¤Î¤¢¤ë¡¢¾õÂÖ¾ðÊó¤òÊó¹ð¤¹¤ë¤¤¤¯¤Ä¤«¤Îµ¡Ç½¤ò»ý¤Á
-¤Þ¤¹¡£
-
-¤Þ¤º¡¢--enable-cassert ¥ª¥×¥·¥ç¥ó¤Ç configure ¤òÁö¤é¤»¤Þ¤¹¡£¤½¤¦¤·¤Æ¥³¥ó¥Ñ¥¤¥ë
-¤¹¤ë¤³¤È¤Ë¤è¤ê¡¢Âô»³¤Î assert() ¤¬¡¢¥Ð¥Ã¥¯¥¨¥ó¥É¤Î¿ÊĽ¾õ¶·¤ò´Æ»ë¤·¡¢²¿¤«Í½´ü¤»
-¤Ì¤³¤È¤¬µ¯¤¤ë¤È¥×¥í¥°¥é¥à¤òÄä»ß¤¹¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£
-
-postmaster ¤È postgres ¤ÎξÊý¤Ç¤¤¤¯¤Ä¤«¤Î¥Ç¥Ð¥°¡¦¥ª¥×¥·¥ç¥ó¤ÎÍøÍѤ¬¤Ç¤¤Þ¤¹¡£¤Þ
-¤º¡¢¼¡¤Î¤è¤¦¤Ë postmaster ¤òµ¯Æ°¤¹¤ë¤È¤¤Ï¤¤¤Ä¤Ç¤â¡¢É¸½à½ÐÎϤȥ¨¥é¡¼½ÐÎϤò¥í¥°
-¡¦¥Õ¥¡¥¤¥ë¤ËÁ÷¤ë¤è¤¦¤Ë¤·¤Æ¤¢¤ë¤³¤È¤ò³Î¤«¤á¤Æ²¼¤µ¤¤¡£
-
+ _________________________________________________________________
+
+ ´ÉÍý¾å¤Î¼ÁÌä
+
+ 3.1) ¤É¤Î¤è¤¦¤Ë¤¹¤ì¤Ð /usr/local/pgsql °Ê³°¤Î¾ì½ê¤Ë¥¤¥ó¥¹¥È¡¼¥ë¤Ç¤¤Þ¤¹¤«¡©
+
+ ´Êñ¤ÊÊýË¡¤Ï¡¢ configure ¤òÁö¤é¤»¤ë¤È¤¤Ë --prefix
+ ¥ª¥×¥·¥ç¥ó¤ò»ØÄꤹ¤ë¤³¤È¤Ç¤¹¡£
+
+ 3.2) postmaster ¤òÁö¤é¤»¤ë¤È¡¢Bad System Call
+ ¤È¤«¥³¥¢¡¦¥À¥ó¥×¤·¤¿¤È¤Î¥á¥Ã¥»¡¼¥¸¤¬½Ð¤Þ¤¹¡£¤Ê¤¼¤Ç¤¹¤«¡©
+
+ ¤µ¤Þ¤¶¤Þ¤ÊÌäÂ꤬¹Í¤¨¤é¤ì¤Þ¤¹¤¬¡¢¤Þ¤ººÇ½é¤Ë¤¢¤Ê¤¿¤Î¥«¡¼¥Í¥ë¤Ë System V
+ IPC ¤Î³ÈÄ¥¤¬¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Æ¤¤¤ë¤«¤ò³Îǧ¤·¤Æ¸«¤Æ¤¯¤À¤µ¤¤¡£PostgreSQL
+ ¤Ï¥«¡¼¥Í¥ë¤Ë¤è¤ë¶¦Í¥á¥â¥ê¡¼¤È¥»¥Þ¥Õ¥©¤Î¥µ¥Ý¡¼¥È¤òɬÍפȤ·¤Þ¤¹¡£
+
+ 3.3) postmaster ¤òÁö¤é¤»¤è¤¦¤È¤¹¤ë¤È¡¢IpcMemoryCreate
+ ¥¨¥é¡¼¤¬½Ð¤Þ¤¹¡£¤Ê¤¼¤Ç¤¹¤«¡©
+
+ ¥«¡¼¥Í¥ë¤¬¶¦Í
+ ¥á¥â¥ê¡¼¤ò»ý¤ÄÀßÄê¤Ë¤Ê¤Ã¤Æ¤¤¤Ê¤«¤Ã¤¿¤«¡¢¤Ç¤Ê¤±¤ì¤Ð¡¢¥«¡¼¥Í¥ë¤ËÂФ·¤Æ»È
+ ¤¨¤ë¶¦Í¥á¥â¥ê¡¼¤ÎÂ礤µ¤òÂ礤¯ÀßÄꤹ¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£¶ñÂÎŪ¤ÊÂç¤
+ ¤µ¤Ï¡¢»È¤Ã¤Æ¤¤¤ë¥¢¡¼¥¥Æ¥¯¥Á¥ã¤Èpostmaster ¤òÁö¤é¤»¤ë¤È¤
+ ¤ËÀßÄꤹ¤ë¥Ð¥Ã¥Õ¥¡¤Î¿ô¤È¥Ð¥Ã¥¯¥¨¥ó¥É¥×¥í¥»¥¹¤Ë°Í¸¤·¤Þ¤¹¡£¤Û¤È¤ó¤É¤Î¥·
+ ¥¹¥Æ¥à¤Ç¤Ï¡¢´ûÄêÃͤΥХåե¡¥µ¥¤¥º¤Î¤Þ¤Þ¤Ç¡¢¾¯¤Ê¤¯¤È¤âÌó1MB¤¬É¬ÍפǤ¹¡
+ £ PostgreSQL Administrator's Guide/Server Run-time
+ Environment/Managing Kernel Resources ¤Ë¶¦Í
+ ¥á¥â¥ê¡¼¤È¥»¥Þ¥Õ¥©¤Ë¤Ä¤¤¤Æ¤Î¾ðÊó¤Î¾ÜºÙ¤¬¤¢¤ê¤Þ¤¹¤Î¤Ç¤´Í÷¤¯¤À¤µ¤¤¡£
+
+ 3.4) postmaster¤òÁö¤é¤»¤è¤¦¤È¤¹¤ë¤È¡¢IpcSemaphoreCreate
+ ¥¨¥é¡¼¤¬½Ð¤Þ¤¹¡£¤Ê¤¼¤Ç¤¹¤«¡©
+
+ ¤â¤·¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤¬IpcSemaphoreCreate: semget failed (No space left
+ on
+ device)¤Ç¤¢¤ì¤Ð¡¢¥«¡¼¥Í¥ë¤¬½½Ê¬¤Ê¥»¥Þ¥Õ¥©¤ò»È¤¨¤ë¤è¤¦¤Ë¹½À®¤µ¤ì¤Æ¤¤¤Þ¤
+ »¤ó¡£Postgres¤ÏÀøºßŪ¤Ê¥Ð¥Ã¥¯¥¨¥ó¥É¥×¥í¥»¥¹Ëè¤Ë°ì¤Ä¤Î¥»¥Þ¥Õ¥©¤òɬÍפȤ
+ ·¤Þ¤¹¡£¤È¤ê¤¢¤¨¤º¤Î²ò·èºö¤Ïpostmaster¤òµ¯Æ°¤¹¤ë¤È¤
+ ¤Ë¡¢¥Ð¥Ã¥¯¥¨¥ó¥É¥×¥í¥»¥¹¤Î¿ô¤ò¤è¤ê¾¯¤Ê¤¯À©¸Â¤ò¤¹¤ë¤³¤È¤Ç¤¹¡£´ûÄêÃͤÎ32
+ ¤è¤ê¾®¤µ¤Ê¿ô¤Î¥Ñ¥é¥á¡¼¥¿¤ò-N¤Ç»È¤¤¤Þ¤¹¡£¤è¤ê¹±µ×Ū¤Ê²ò·èºö¤Ï¡¢¥«¡¼¥Í¥ë
+ ¤ÎSEMMNS ¤È SEMMNI ¥Ñ¥é¥á¡¼¥¿¤òÁý¤ä¤¹¤³¤È¤Ç¤¹¡£
+
+ ÁàºîÉÔǽ¤Î¥»¥Þ¥Õ¥©¤â²áÅ٤ʥǡ¼¥¿¥Ù¡¼¥¹¥¢¥¯¥»¥¹¤Î´Ö¤Ë¥¯¥é¥Ã¥·¥å¤ò
+ µ¯¤³¤¹²ÄǽÀ¤¬¤¢¤ê¤Þ¤¹¡£
+
+ ¤â¤·¡¢¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤¬¤Ê¤Ë¤«Â¾¤Î¤â¤Î¤Ç¤¢¤ì¤Ð¡¢¥«¡¼¥Í¥ë¤Î¹½À®¤Ç¤Þ¤Ã¤¿
+ ¤¯¥»¥Þ¥Õ¥©¤Î¥µ¥Ý¡¼¥È¤ò¤·¤Æ¤¤¤Ê¤¤¤«¤â¤·¤ì¤Þ¤»¤ó¡£ PostgreSQL
+ Administrator's Guide ¤Ë¶¦Í
+ ¥á¥â¥ê¡¼¤È¥»¥Þ¥Õ¥©¤Ë¤Ä¤¤¤Æ¤Î¾ðÊó¤Î¾ÜºÙ¤¬¤¢¤ê¤Þ¤¹¡£
+
+ 3.5) ¾¤Î¥Û¥¹¥È¤«¤é¤ÎÀܳ¤Ï¤É¤Î¤è¤¦¤ËÀ©¸æ¤·¤Þ¤¹¤«¡©
+
+ ´ûÄêÃͤǤϡ¢PostgreSQL ¤Ï Unix
+ ¥É¥á¥¤¥ó¥½¥±¥Ã¥È¡¢¤Þ¤¿¤Ï¡¢TCP/IPÀܳ¤Î¥í¡¼¥«¥ë¥Þ¥·¥ó¤«¤é¤ÎÀܳ¤·¤«µö¤·
+ ¤Þ¤»¤ó¡£postgresql.conf ¤ÎÃæ¤Î listen_addresses
+ ¤ò½¤Àµ¤·¡¢¤«¤Ä¡¢$PGDATA/pg_hba.conf
+ ¥Õ¥¡¥¤¥ë¤òŬÀڤ˾¤·¤Æ¡¢¥Û¥¹¥È¼çƳ·¿Ç§¾Ú¤òÍ
+ ¸ú¤Ë¤·¤Ê¤¤¤«¤®¤ê¤Ï¡¢Â¾¤Î¥Þ¥·¥ó¤«¤é¤ÏÀܳ¤Ç¤¤Ê¤¤¤Ç¤·¤ç¤¦¡£
+
+ 3.6) ¤è¤êÎɤ¤À
+ ǽ¤òÆÀ¤ë¤¿¤á¤Ë¤Ï¡¢¥Ç¡¼¥¿¥Ù¡¼¥¹¡¦¥¨¥ó¥¸¥ó¤ò¤É¤Î¤è¤¦¤ËÄ´À°¤¹¤ì¤ÐÎɤ¤¤Ç¤¹¤«¡©
+
+ ³Î¤«¤Ë¥¤¥ó¥Ç¥Ã¥¯¥¹¤ÏÌ䤤¹ç¤ï¤»¤Î®ÅÙ¤òÁý¤·¤Þ¤¹¡£EXPLAIN
+ ANALYZE¥³¥Þ¥ó¥É¤Ç PostgreSQL
+ ¤¬¤É¤Î¤è¤¦¤Ë¤¢¤Ê¤¿¤ÎÌ䤤¹ç¤ï¤»¤òËÝÌõ¤·¤Æ¤¤¤ë¤«¤ò¸«¤ë¤³¤È¤¬¤Ç¤
+ ¡¢¤½¤·¤Æ¡¢¤É¤Î¥¤¥ó¥Ç¥Ã¥¯¥¹¤¬»È¤ï¤ì¤Æ¤¤¤ë¤«¤ò¸«¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
+
+ ¤â¤· INSERT ¤ò¿ÍѤ·¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢COPY ¥³¥Þ¥ó¥É¤ò»È¤Ã¤ÆÂç¤
+ ¤Ê¥Ð¥Ã¥Á½èÍý¤Ç¤½¤ì¤ò¹Ô¤Ê¤¦¤³¤È¤ò¸¡Æ¤¤·¤Æ²¼¤µ¤¤¡£¤³¤ì¤Ï¡¢INSERT
+ ¤òÊÌ¡¹¤Ë¹Ô¤Ê¤¦¤è¤ê¤â¤Ã¤È¹â®¤Ç¤¹¡£¼¡¤Ë¡¢BEGIN WORK/COMMIT
+ ¤Î¥È¥é¥ó¥¶¥¯¥·¥ç¥ó¡¦¥Ö¥í¥Ã¥¯¤ÎÃæ¤Ë̵¤¤Ê¸¤Ï¡¢¤½¤ì¤é¼«¿È¤¬¤½¤ì¤¾¤ì¤Î¥È¥é
+ ¥ó¥¶¥¯¥·¥ç¥ó¤ËÆþ¤Ã¤Æ¤¤¤ë¤È¸«¤Ê¤µ¤ì¤Þ¤¹¡£¤¤¤¯¤Ä¤«¤Îʸ¤ò°ì¤Ä¤Î¥È¥é¥ó¥¶¥¯
+ ¥·¥ç¥ó¡¦¥Ö¥í¥Ã¥¯¤ÎÃæ¤Ç¹Ô¤Ê¤¦¤³¤È¤ò¹Í¤¨¤Æ²¼¤µ¤¤¡£¤³¤ì¤Ë¤è¤ê¥È¥é¥ó¥¶¥¯¥·
+ ¥ç¥ó¤Î¥ª¡¼¥Ð¡¼¥Ø¥Ã¥É¤¬¸º¤ê¤Þ¤¹¡£¤Þ¤¿¡¢Âç¤
+ ¤Ê¥Ç¡¼¥¿¤ÎÊѹ¹¤ò¹Ô¤Ê¤¦ºÝ¤Ï¥¤¥ó¥Ç¥Ã¥¯¥¹¤ò°ìÅÙ³°¤·¤Æ¡¢ºî¤êľ¤¹¤³¤È¤ò¹Í¤¨
+ ¤Æ¤ß¤Æ²¼¤µ¤¤¡£
+
+ Administration Guide/Server Run-time Environment/Run-time
+ Configuration¤Ë¤Ï¡¢
+ ¥Á¥å¡¼¥Ë¥ó¥°¤Î¥ª¥×¥·¥ç¥ó¤¬¤¤¤¯¤Ä¤«¤¢¤ê¤Þ¤¹¡£fsync¥ª¥×¥·¥ç¥ó¤Çfsync()
+ ¤ò̵¸ú¤Ë¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£¤³¤ì¤Ë¤è¤Ã¤Æ¡¢³Æ¥È¥é¥ó¥¶¥¯¥·¥ç¥óËè¤Ë
+ fsync() ¤Ç¥Ç¥£¥¹¥¯¤ò¹¹¿·¤¹¤ë¤Î¤ò»ß¤á¤µ¤»¤Þ¤¹¡£
+
+ shared_buffers¥ª¥×¥·¥ç¥ó¤ò»È¤Ã¤Æ¥Ð¥Ã¥¯¥¨¥ó¥É¡¦¥×¥í¥»¥¹¤Ë¤è¤ê»È¤ï¤ì¤ë¶¦
+ Í¥á¥â¥ê¡¼¡¦¥Ð¥Ã¥Õ¥¡¤òÂ礤¯¤¹¤ë¤³¤È¤â¤Ç¤
+ ¤Þ¤¹¡£¤â¤·¡¢¤³¤Î¥Ñ¥é¥á¡¼¥¿¤ò¹â¤¯¤·¤¹¤®¤ë¤È¡¢¥«¡¼¥Í¥ë¤Î¶¦Í
+ ¥á¥â¥ê¡¼¶õ´Ö¤ÎÀ©¸ÂÃͤò±Û¤¨¤Æ¤·¤Þ¤¦¤¿¤á¤Ë postmaster
+ ¤¬Áö¤é¤Ê¤¯¤Ê¤ë¤Ç¤·¤ç¤¦¡£´ûÄêÃͤǤϡ¢¤½¤ì¤¾¤ì¤Î¥Ð¥Ã¥Õ¥¡¤ÎÂ礤µ¤Ï 8K
+ ¤Ç¡¢¥Ð¥Ã¥Õ¥¡¿ô¤Ï 1000 ¤Ç¤¹¡£
+
+ sort_mem (PostgreSQL 8.0¤«¤é¤Ï:
+ work_mem)¥ª¥×¥·¥ç¥ó¤ò»È¤Ã¤Æ¡¢¤½¤ì¤¾¤ì¤Î¥Ð¥Ã¥¯¥¨¥ó¥É¡¦¥×¥í¥»¥¹¤¬°ì»þŪ¤
+ ÊʤÙÂØ¤¨¤Ë¤è¤Ã¤Æ»È¤¦¥á¥â¥ê¡¼¤ÎºÇÂ祵¥¤¥º¤òÁý¤ä¤¹¤³¤È¤â¤Ç¤¤Þ¤¹¡£
+ ´ûÄêÃÍ¤Ï 1024 (¤¹¤Ê¤ï¤Á¡¢1MB)¤Ç¤¹¡£
+
+ ¤Þ¤¿¡¢CLUSTER
+ ¥³¥Þ¥ó¥É¤ò»È¤Ã¤Æ¡¢¥Æ¡¼¥Ö¥ë¤Î¥Ç¡¼¥¿¤ò¥¤¥ó¥Ç¥Ã¥¯¥¹¤Ë¹ç¤ï¤»¤ë¤¿¤á¤Ë¥°¥ë¡¼
+ ¥×²½¤¹¤ë¤³¤È¤â¤Ç¤¤Þ¤¹¡£¾Ü¤·¤¯¤Ï¡¢¥ª¥ó¥é¥¤¥ó¥Þ¥Ë¥å¥¢¥ë¤Ç CLUSTER
+ ¤ò¸«¤Æ²¼¤µ¤¤¡£
+
+ 3.7) ¤É¤Î¤è¤¦¤Ê¥Ç¥Ð¥°µ¡Ç½¤¬»È¤¨¤Þ¤¹¤«¡©
+
+ PostgreSQL
+ ¤Ï¡¢¥Ç¥Ð¥°¤Î¤¿¤á¤Ë°ÕÌ£¤Î¤¢¤ë¡¢¾õÂÖ¾ðÊó¤òÊó¹ð¤¹¤ë¤¤¤¯¤Ä¤«¤Îµ¡Ç½¤ò»ý¤Á¤Þ
+ ¤¹¡£
+
+ ¤Þ¤º¡¢--enable-cassert ¥ª¥×¥·¥ç¥ó¤Ç configure
+ ¤òÁö¤é¤»¤Þ¤¹¡£¤½¤¦¤·¤Æ¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤³¤È¤Ë¤è¤ê¡¢Âô»³¤Î assert()
+ ¤¬¡¢¥Ð¥Ã¥¯¥¨¥ó¥É¤Î¿ÊĽ¾õ¶·¤ò´Æ»ë¤·¡¢²¿¤«Í½´ü¤»¤Ì¤³¤È¤¬µ¯¤
+ ¤ë¤È¥×¥í¥°¥é¥à¤òÄä»ß¤¹¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£
+
+ postmaster ¤È postgres
+ ¤ÎξÊý¤Ç¤¤¤¯¤Ä¤«¤Î¥Ç¥Ð¥°¡¦¥ª¥×¥·¥ç¥ó¤ÎÍøÍѤ¬¤Ç¤¤Þ¤¹¡£¤Þ¤º¡¢¼¡¤Î¤è¤¦¤Ë
+ postmaster ¤òµ¯Æ°¤¹¤ë¤È¤
+ ¤Ï¤¤¤Ä¤Ç¤â¡¢É¸½à½ÐÎϤȥ¨¥é¡¼½ÐÎϤò¥í¥°¡¦¥Õ¥¡¥¤¥ë¤ËÁ÷¤ë¤è¤¦¤Ë¤·¤Æ¤¢¤ë¤³
+ ¤È¤ò³Î¤«¤á¤Æ²¼¤µ¤¤¡£
cd /usr/local/pgsql
./bin/postmaster >server.log 2>&1 &
-¤³¤ì¤Ë¤è¤ê PostgreSQL ¤ÎºÇ¾åÉô¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ë server.log ¥Õ¥¡¥¤¥ë¤¬ÃÖ¤«¤ì¤Þ¤¹
-¡£¤³¤Î¥Õ¥¡¥¤¥ë¤Ï¥µ¡¼¥Ð¡¼¤¬Áø¶ø¤·¤¿ÌäÂê¤ä¥¨¥é¡¼¤Ë¤Ä¤¤¤ÆÍÍѤʾðÊó¤ò´Þ¤ß¤Þ¤¹¡£
-Postmaster ¤Ï¹¹¤Ë¾ÜºÙ¤Ê¾ðÊó¤òÊó¹ð¤¹¤ë¤¿¤á¤Î -d ¥ª¥×¥·¥ç¥ó¤ò»ý¤Á¤Þ¤¹¡£¤½¤Î -d ¥ª
-¥×¥·¥ç¥ó¤Ï¡¢¥Ç¥Ð¥°¡¦¥ì¥Ù¥ë¤ò»ØÄꤷ¤Þ¤¹¡£¹â¤¤¥Ç¥Ð¥°¡¦¥ì¥Ù¥ë¤Ç¤Ï¡¢Âç¤¤Ê¥í¥°¥Õ¥¡
-¥¤¥ë¤òÀ¸À®¤¹¤ë¤³¤È¤ËÃí°Õ¤·¤Ê¤¯¤Æ¤Ï¤Ê¤ê¤Þ¤»¤ó¡£
-
-¤â¤·¡¢postmaster¤¬Áö¤Ã¤Æ¤¤¤Ê¤±¤ì¤Ð¡¢postgres¥Ð¥Ã¥¯¥¨¥ó¥É¤ò¥³¥Þ¥ó¥É¥é¥¤¥ó¤«¤éÁö
-¤é¤»¤ë¤³¤È¤¬¤Ç¤¡¢Ä¾ÀÜSQLʸ¤ò¥¿¥¤¥×¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£¤³¤Î¤ä¤ê¤«¤¿¤Ï¡¢¥Ç¥Ð¥°ÌÜ
-Ū¤Î¤È¤¤À¤±¤ª¾©¤á¤·¤Þ¤¹¡£¥»¥ß¥³¥í¥ó¤Ç¤Ï¤Ê¤¯¡¢²þ¹Ô¤¬Ì䤤¹ç¤ï¤»¤Î½ª¤ê¤Ë¤Ê¤ë¤³¤È
-¤ËÃí°Õ¤·¤Æ¤¯¤À¤µ¤¤¡£¤â¤·¡¢¥Ç¥Ð¥°¥·¥ó¥Ü¥ë¤òÆþ¤ì¤Æ¥³¥ó¥Ñ¥¤¥ë¤·¤Æ¤¤¤ì¤Ð¡¢¥Ç¥Ð¥Ã¥¬
-¤ò»È¤Ã¤Æ²¿¤¬µ¯¤¤Æ¤¤¤ë¤«¤ò¸«¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£postmaster ¤«¤é¥Ð¥Ã¥¯¥¨¥ó¥É¤ò³«»Ï
-¤·¤¿¤ï¤±¤Ç¤Ï¤Ê¤¤¤Î¤Ç¡¢ÆÈΩ¤Ê´Ä¶¤ÇÁö¤Ã¤Æ¤¤¤ë¤Î¤Ç¤Ï¤Ê¤¯¥í¥Ã¥¯¡¿¥Ð¥Ã¥¯¥¨¥ó¥É¤È¤Î
-ÂÐÏäÎÌäÂ꤬½ÅÊ£¤¹¤ë¤³¤È¤Ï¤¢¤ê¤Þ¤»¤ó¡£
-
-¤â¤·¡¢postmaster¤¬Áö¤Ã¤Æ¤¤¤ì¤Ð¡¢¤¢¤ë¥¦¥£¥ó¥É¥¦¤Çpsql¤ò³«»Ï¤¹¤ë¤È¡¢
-
-SELECT pg_backend_pid()
-
-¤ò»È¤Ã¤Æ¡¢psql ¤Ç»È¤ï¤ì¤ë postgres ¥×¥í¥»¥¹¤ÎPID¤¬¸«¤Ä¤«¤ê¤Þ¤¹¡£¥Ç¥Ð¥Ã¥¬¤ò»È¤Ã
-¤Æpostgres¤ÎPID¤Ë¥¢¥¿¥Ã¥Á(attach)¤·¤Þ¤¹¡£¥Ç¥Ð¥Ã¥¬¤ÎÃæ¤«¤é¥Ö¥ì¡¼¥¯¡¦¥Ý¥¤¥ó¥È¤ò¥»
-¥Ã¥È¤·¡¢psql ¤«¤éÌ䤤¹ç¤ï¤»¤òȯ¹Ô¤·¤Þ¤¹¡£¥Ç¥Ð¥°¤Î¤¿¤á¤Ëpostgres¤ò»Ïư¤¹¤ë¾ì¹ç¤Ï
-¡¢PGOPTIONS="-W n" ¤òÀßÄê¤Ç¤¡¢¤½¤ì¤«¤é¡¢psql ¤ò³«»Ï¤·¤Þ¤¹¡£¤³¤ì¤Ë¤è¤ê¡¢n Éó«
-»Ï¤òÃ٤餻¤ë¤Ï¤º¤Ê¤Î¤Ç¡¢¥Ç¥Ð¥Ã¥¬¤Ç¥×¥í¥»¥¹¤Ë¥¢¥¿¥Ã¥Á¤·¤Æ¡¢¥Ö¥ì¡¼¥¯¥Ý¥¤¥ó¥È¤òÀß
-Äꤷ¡¢³«»Ï¤«¤é½ç¤òÄɤäƸ«¤Æ¤æ¤¯¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
-
-¤¤¤¯¤Ä¤«¤Î
-
-log_*
-
-¥µ¡¼¥Ð¹½À®ÊÑ¿ô¤Ï¡¢¥Ç¥Ð¥Ã¥°¤ÈÀǽ¬Äê¤Ë¤È¤Æ¤âÌò¤ËΩ¤Ä¥×¥í¥»¥¹¤ÎÅý·×¤Î°õºþ¤ò²Äǽ
-¤Ë¤·¤Þ¤¹¡£
-
-²¿¤È¤¤¤¦´Ø¿ô¤¬¤É¤Î¤¯¤é¤¤¼Â¹Ô»þ´Ö¤ò¿©¤Ã¤Æ¤¤¤ë¤«¤ò¸«¤ë¤¿¤á¤Ë¡¢¥×¥í¥Õ¥¡¥¤¥ê¥ó¥°¡Ê
-¥×¥í¥Õ¥£¡¼¥ëÉÕ¤¡Ë¤Ç¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤³¤È¤â²Äǽ¤Ç¤¹¡£¤½¤Î¥Ð¥Ã¥¯¥¨¥ó¥É¤Î¥×¥í¥Õ¥£¡¼
-¥ë¡¦¥Õ¥¡¥¤¥ë¤Ï pgsql/data/base/dbname ¥Ç¥£¥ì¥¯¥È¥ê¤Ë³ÊǼ¤µ¤ì¤ë¤Ç¤·¤ç¤¦¡£¥¯¥é¥¤
-¥¢¥ó¥È¤Î¥×¥í¥Õ¥£¡¼¥ë¤Ï¥¯¥é¥¤¥¢¥ó¥È¤Î¸½¹Ô¥Ç¥£¥ì¥¯¥È¥ê¤ËÃÖ¤«¤ì¤ë¤Ç¤·¤ç¤¦¡£Linux
-¤Ç¤Þ¤È¤â¤Ê¥×¥í¥Õ¥¡¥¤¥ê¥ó¥°¤ò¹Ô¤¦¤Ë¤Ï -DLINUX_PROFILE ¤Ç¥³¥ó¥Ñ¥¤¥ë¤¹¤ëɬÍפ¬¤¢¤ê
-¤Þ¤¹¡£
-
-3.8) Àܳ¤·¤è¤¦¤È¤¹¤ë¤È¤¤Ë 'Sorry, too many clients' ¤¬½Ð¤ë¤Î¤Ï¤Ê¤¼¤Ç¤¹¤«¡©
-
-postmaster¤¬Æ±»þ»Ïư¤Ç¤¤ë¥Ð¥Ã¥¯¥¨¥ó¥É¥×¥í¥»¥¹¤ËÂФ¹¤ëÀ©¸Â¿ô¤òÁý¤ä¤¹É¬Íפ¬¤¢¤ê
-¤Þ¤¹¡£
-
-´ûÄê¤ÎºÇÂç¥×¥í¥»¥¹¤Ï32¥×¥í¥»¥¹¤Ç¤¹¡£-N¤ËŬÀÚ¤ÊÃͤò°ú¿ô¤Ë¤·¤Æpostmaster¤òºÆµ¯Æ°
-¤¹¤ë¤«¡¢PostgreSQL.conf ¤ò½¤Àµ¤¹¤ë¤³¤È¤Ë¤è¤Ã¤Æ¡¢¤½¤ÎÃͤòÁý¤ä¤¹¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
-
-¤â¤·¡¢-N ¤ò 32¤è¤ê¤âÂ礤¯¤¹¤ë¤Î¤Ç¤¢¤ì¤Ð¡¢-B¤â´ûÄê¤Î64¤è¤êÂ礤¤ÃͤËÁý²Ã¤µ¤»¤Ê
-¤¯¤Æ¤Ï¤Ê¤é¤Ê¤¤¤·¡¢-B ¤Ï¾¯¤Ê¤¯¤È¤â -N ¤Î2ÇܤϤʤ¯¤Æ¤Ï¤Ê¤é¤º¡¢¤ª¤½¤é¤¯ºÇ¹âÀǽ¤ò
-˾¤à¤Ê¤é¤Ð¤½¤ì¤è¤êÂ礤¤Ãͤ¬É¬ÍפʤϤº¤Ç¤¹¡£¥Ð¥Ã¥¯¥¨¥ó¥É¥×¥í¥»¥¹¤ò¤¿¤¯¤µ¤ó¤Ë¤¹
-¤ë¤È¡¢¤¤¤í¤¤¤í¤ÊUnix¥«¡¼¥Í¥ë¹½À®¥Ñ¥é¥á¡¼¥¿¤âÁý¤ä¤¹¤³¤È¤¬É¬Íפˤʤ뤫¤â¤·¤ì¤Þ¤»
-¤ó¡£¶¦Í¥á¥â¥ê¡¼¡¦¥Ö¥í¥Ã¥¯¤ÎºÇÂçÃÍ(SHMMAX)¡¢¥»¥Þ¥Õ¥©¤ÎºÇÂç¿ô(SEMMNS¤ÈSEMMNI)¡¢
-¥×¥í¥»¥¹¤ÎºÇÂç¿ô(NPROC)¡¢¥æ¡¼¥¶Ëè¤ÎºÇÂç¥×¥í¥»¥¹¿ô(MAXUPRC)¡¢³«¤¯¥Õ¥¡¥¤¥ë¤ÎºÇÂç
-¿ô(NFILE¤ÈNINODE) ¤â³Îǧ»ö¹à¤Ë´Þ¤Þ¤ì¤Þ¤¹¡£ PostgreSQL¤Ëµö¤µ¤ì¤ë¥Ð¥Ã¥¯¥¨¥ó¥É¤Î¥×
-¥í¥»¥¹¿ô¤¬À©¸Â¤µ¤ì¤Æ¤¤¤ë¤Î¤Ï¡¢¥·¥¹¥Æ¥à¤Î¥ê¥½¡¼¥¹¤ò»È¤¤²Ì¤·¤Æ¤·¤Þ¤¦¤³¤È¤òÈò¤±¤ë
-¤¿¤á¤Ç¤¹¡£
-
-3.9) pgsql_tmp ¥Ç¥£¥ì¥¯¥È¥ê¤ÎÃæ¤Ë¤Ï²¿¤¬¤¢¤ê¤Þ¤¹¤«¡©
-
-Ì䤤¹ç¤ï¤»¼Â¹Ô¥â¥¸¥å¡¼¥ë¤Ë¤è¤Ã¤ÆÀ¸À®¤µ¤ì¤¿°ì»þŪ¤Ê¥Õ¥¡¥¤¥ë¤¬¡¢¤³¤Î¥Ç¥£¥ì¥¯¥È¥ê
-¤Ë´Þ¤Þ¤ì¤Þ¤¹¡£Î㤨¤Ð¡¢¤â¤· ORDER BY ¶ç¤òËþ¤¿¤¹¤¿¤á¤Ë¥Ð¥Ã¥¯¥¨¥ó¥É¤Î -S ¥Ñ¥é¥á¡¼
-¥¿¤Çµö²Ä¤·¤¿Ãͤè¤ê¤âÂ礤ʥ¹¥Ú¡¼¥¹¤¬¥½¡¼¥È¤ÎºÝ¤ËɬÍפÀ¤È¤¹¤ë¤È¡¢°î¤ì¤¿¥Ç¡¼¥¿¤ò
-ÊÝ»ý¤¹¤ë¤¿¤á¤Ë°ì»þŪ¤Ê¥Õ¥¡¥¤¥ë¤¬¤¤¤¯¤Ä¤«¤³¤³¤ËÀ¸À®¤µ¤ì¤Þ¤¹¡£
-
-°ì»þŪ¤Ê¥Õ¥¡¥¤¥ë¤Ï¼«Æ°Åª¤Ë¾Ã¤·µî¤é¤ì¤ë¤Ï¤º¤Ç¤¹¤¬¡¢¤â¤·¡¢¥½¡¼¥È¤ÎÅÓÃæ¤Ç¥Ð¥Ã¥¯¥¨
-¥ó¥É¤¬¥¯¥é¥Ã¥·¥å¤·¤Æ¤·¤Þ¤¦¤È¤½¤¦¤Ï¤Ê¤ê¤Þ¤»¤ó¡£postmaster¤ÎÄä»ß¤È¥ê¥¹¥¿¡¼¥È¤Ç¤³
-¤ì¤é¤Î¥Õ¥¡¥¤¥ë¤Ï¥Ç¥£¥ì¥¯¥È¥ê¤«¤é¾Ã¤·¤µ¤é¤ì¤Þ¤¹¡£
-
+ ¤³¤ì¤Ë¤è¤ê PostgreSQL ¤ÎºÇ¾åÉô¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ë server.log
+ ¥Õ¥¡¥¤¥ë¤¬ÃÖ¤«¤ì¤Þ¤¹¡£¤³¤Î¥Õ¥¡¥¤¥ë¤Ï¥µ¡¼¥Ð¡¼¤¬Áø¶ø¤·¤¿ÌäÂê¤ä¥¨¥é¡¼¤Ë¤Ä
+ ¤¤¤ÆÍÍѤʾðÊó¤ò´Þ¤ß¤Þ¤¹¡£Postmaster ¤Ï¹¹¤Ë¾ÜºÙ¤Ê¾ðÊó¤òÊó¹ð¤¹¤ë¤¿¤á¤Î
+ -d ¥ª¥×¥·¥ç¥ó¤ò»ý¤Á¤Þ¤¹¡£¤½¤Î -d
+ ¥ª¥×¥·¥ç¥ó¤Ï¡¢¥Ç¥Ð¥°¡¦¥ì¥Ù¥ë¤ò»ØÄꤷ¤Þ¤¹¡£¹â¤¤¥Ç¥Ð¥°¡¦¥ì¥Ù¥ë¤Ç¤Ï¡¢Âç¤
+ ¤Ê¥í¥°¥Õ¥¡¥¤¥ë¤òÀ¸À®¤¹¤ë¤³¤È¤ËÃí°Õ¤·¤Ê¤¯¤Æ¤Ï¤Ê¤ê¤Þ¤»¤ó¡£
+
+ ¤â¤·¡¢postmaster¤¬Áö¤Ã¤Æ¤¤¤Ê¤±¤ì¤Ð¡¢postgres¥Ð¥Ã¥¯¥¨¥ó¥É¤ò¥³¥Þ¥ó¥É¥é¥¤
+ ¥ó¤«¤éÁö¤é¤»¤ë¤³¤È¤¬¤Ç¤¡¢Ä¾ÀÜSQLʸ¤ò¥¿¥¤¥×¤¹¤ë¤³¤È¤¬¤Ç¤
+ ¤Þ¤¹¡£¤³¤Î¤ä¤ê¤«¤¿¤Ï¡¢¥Ç¥Ð¥°ÌÜŪ¤Î¤È¤
+ ¤À¤±¤ª¾©¤á¤·¤Þ¤¹¡£¥»¥ß¥³¥í¥ó¤Ç¤Ï¤Ê¤¯¡¢²þ¹Ô¤¬Ì䤤¹ç¤ï¤»¤Î½ª¤ê¤Ë¤Ê¤ë¤³¤È
+ ¤ËÃí°Õ¤·¤Æ¤¯¤À¤µ¤¤¡£¤â¤·¡¢¥Ç¥Ð¥°¥·¥ó¥Ü¥ë¤òÆþ¤ì¤Æ¥³¥ó¥Ñ¥¤¥ë¤·¤Æ¤¤¤ì¤Ð¡¢
+ ¥Ç¥Ð¥Ã¥¬¤ò»È¤Ã¤Æ²¿¤¬µ¯¤¤Æ¤¤¤ë¤«¤ò¸«¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£postmaster
+ ¤«¤é¥Ð¥Ã¥¯¥¨¥ó¥É¤ò³«»Ï¤·¤¿¤ï¤±¤Ç¤Ï¤Ê¤¤¤Î¤Ç¡¢ÆÈΩ¤Ê´Ä¶
+ ¤ÇÁö¤Ã¤Æ¤¤¤ë¤Î¤Ç¤Ï¤Ê¤¯¥í¥Ã¥¯¡¿¥Ð¥Ã¥¯¥¨¥ó¥É¤È¤ÎÂÐÏäÎÌäÂ꤬½ÅÊ£¤¹¤ë¤³¤È
+ ¤Ï¤¢¤ê¤Þ¤»¤ó¡£
+
+ ¤â¤·¡¢postmaster¤¬Áö¤Ã¤Æ¤¤¤ì¤Ð¡¢¤¢¤ë¥¦¥£¥ó¥É¥¦¤Çpsql¤ò³«»Ï¤¹¤ë¤È¡¢SELE
+ CT pg_backend_pid()¤ò»È¤Ã¤Æ¡¢psql ¤Ç»È¤ï¤ì¤ë postgres
+ ¥×¥í¥»¥¹¤ÎPID¤¬¸«¤Ä¤«¤ê¤Þ¤¹¡£
+ ¥Ç¥Ð¥Ã¥¬¤ò»È¤Ã¤Æpostgres¤ÎPID¤Ë¥¢¥¿¥Ã¥Á(attach)¤·¤Þ¤¹¡£¥Ç¥Ð¥Ã¥¬¤ÎÃæ¤«¤
+ é¥Ö¥ì¡¼¥¯¡¦¥Ý¥¤¥ó¥È¤ò¥»¥Ã¥È¤·¡¢psql
+ ¤«¤éÌ䤤¹ç¤ï¤»¤òȯ¹Ô¤·¤Þ¤¹¡£¥Ç¥Ð¥°¤Î¤¿¤á¤Ëpostgres¤ò»Ïư¤¹¤ë¾ì¹ç¤Ï¡¢PG
+ OPTIONS="-W n" ¤òÀßÄê¤Ç¤¡¢¤½¤ì¤«¤é¡¢psql ¤ò³«»Ï¤·¤Þ¤¹¡£¤³¤ì¤Ë¤è¤ê¡¢n
+ Éó«»Ï¤òÃ٤餻¤ë¤Ï¤º¤Ê¤Î¤Ç¡¢¥Ç¥Ð¥Ã¥¬¤Ç¥×¥í¥»¥¹¤Ë¥¢¥¿¥Ã¥Á¤·¤Æ¡¢¥Ö¥ì¡¼¥¯
+ ¥Ý¥¤¥ó¥È¤òÀßÄꤷ¡¢³«»Ï¤«¤é½ç¤òÄɤäƸ«¤Æ¤æ¤¯¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
+
+ ¤¤¤¯¤Ä¤«¤Îlog_*¥µ¡¼¥Ð¹½À®ÊÑ¿ô¤Ï¡¢¥Ç¥Ð¥Ã¥°¤ÈÀ
+ ǽ¬Äê¤Ë¤È¤Æ¤âÌò¤ËΩ¤Ä¥×¥í¥»¥¹¤ÎÅý·×¤Î°õºþ¤ò²Äǽ¤Ë¤·¤Þ¤¹¡£
+
+ ²¿¤È¤¤¤¦´Ø¿ô¤¬¤É¤Î¤¯¤é¤¤¼Â¹Ô»þ´Ö¤ò¿©¤Ã¤Æ¤¤¤ë¤«¤ò¸«¤ë¤¿¤á¤Ë¡¢¥×¥í¥Õ¥¡¥¤
+ ¥ê¥ó¥°¡Ê¥×¥í¥Õ¥£¡¼¥ëÉÕ¤
+ ¡Ë¤Ç¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤³¤È¤â²Äǽ¤Ç¤¹¡£¤½¤Î¥Ð¥Ã¥¯¥¨¥ó¥É¤Î¥×¥í¥Õ¥£¡¼¥ë¡¦¥Õ¥¡
+ ¥¤¥ë¤Ï pgsql/data/base/dbname
+ ¥Ç¥£¥ì¥¯¥È¥ê¤Ë³ÊǼ¤µ¤ì¤ë¤Ç¤·¤ç¤¦¡£¥¯¥é¥¤¥¢¥ó¥È¤Î¥×¥í¥Õ¥£¡¼¥ë¤Ï¥¯¥é¥¤¥¢
+ ¥ó¥È¤Î¸½¹Ô¥Ç¥£¥ì¥¯¥È¥ê¤ËÃÖ¤«¤ì¤ë¤Ç¤·¤ç¤¦¡£Linux
+ ¤Ç¤Þ¤È¤â¤Ê¥×¥í¥Õ¥¡¥¤¥ê¥ó¥°¤ò¹Ô¤¦¤Ë¤Ï -DLINUX_PROFILE
+ ¤Ç¥³¥ó¥Ñ¥¤¥ë¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£
+
+ 3.8) Àܳ¤·¤è¤¦¤È¤¹¤ë¤È¤¤Ë 'Sorry, too many clients' ¤¬½Ð¤ë¤Î¤Ï¤Ê¤¼¤Ç¤¹¤«¡©
+
+ postmaster¤¬Æ±»þ»Ïư¤Ç¤
+ ¤ë¥Ð¥Ã¥¯¥¨¥ó¥É¥×¥í¥»¥¹¤ËÂФ¹¤ëÀ©¸Â¿ô¤òÁý¤ä¤¹É¬Íפ¬¤¢¤ê¤Þ¤¹¡£
+
+ ´ûÄê¤ÎºÇÂç¥×¥í¥»¥¹¤Ï32¥×¥í¥»¥¹¤Ç¤¹¡£-N¤ËŬÀÚ¤ÊÃͤò°ú¿ô¤Ë¤·¤Æpostmaster
+ ¤òºÆµ¯Æ°¤¹¤ë¤«¡¢PostgreSQL.conf
+ ¤ò½¤Àµ¤¹¤ë¤³¤È¤Ë¤è¤Ã¤Æ¡¢¤½¤ÎÃͤòÁý¤ä¤¹¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
+
+ ¤â¤·¡¢-N ¤ò 32¤è¤ê¤âÂ礤¯¤¹¤ë¤Î¤Ç¤¢¤ì¤Ð¡¢-B¤â´ûÄê¤Î64¤è¤êÂç¤
+ ¤¤ÃͤËÁý²Ã¤µ¤»¤Ê¤¯¤Æ¤Ï¤Ê¤é¤Ê¤¤¤·¡¢-B ¤Ï¾¯¤Ê¤¯¤È¤â -N
+ ¤Î2ÇܤϤʤ¯¤Æ¤Ï¤Ê¤é¤º¡¢¤ª¤½¤é¤¯ºÇ¹âÀǽ¤ò˾¤à¤Ê¤é¤Ð¤½¤ì¤è¤êÂç¤
+ ¤¤Ãͤ¬É¬ÍפʤϤº¤Ç¤¹¡£¥Ð¥Ã¥¯¥¨¥ó¥É¥×¥í¥»¥¹¤ò¤¿¤¯¤µ¤ó¤Ë¤¹¤ë¤È¡¢¤¤¤í¤¤¤í
+ ¤ÊUnix¥«¡¼¥Í¥ë¹½À®¥Ñ¥é¥á¡¼¥¿¤âÁý¤ä¤¹¤³¤È¤¬É¬Íפˤʤ뤫¤â¤·¤ì¤Þ¤»¤ó¡£
+ ¶¦Í¥á¥â¥ê¡¼¡¦¥Ö¥í¥Ã¥¯¤ÎºÇÂçÃÍ(SHMMAX)¡¢
+ ¥»¥Þ¥Õ¥©¤ÎºÇÂç¿ô(SEMMNS¤ÈSEMMNI)¡¢ ¥×¥í¥»¥¹¤ÎºÇÂç¿ô(NPROC)¡¢
+ ¥æ¡¼¥¶Ëè¤ÎºÇÂç¥×¥í¥»¥¹¿ô(MAXUPRC)¡¢
+ ³«¤¯¥Õ¥¡¥¤¥ë¤ÎºÇÂç¿ô(NFILE¤ÈNINODE) ¤â³Îǧ»ö¹à¤Ë´Þ¤Þ¤ì¤Þ¤¹¡£
+ PostgreSQL¤Ëµö¤µ¤ì¤ë¥Ð¥Ã¥¯¥¨¥ó¥É¤Î¥×¥í¥»¥¹¿ô¤¬À©¸Â¤µ¤ì¤Æ¤¤¤ë¤Î¤Ï¡¢
+ ¥·¥¹¥Æ¥à¤Î¥ê¥½¡¼¥¹¤ò»È¤¤²Ì¤·¤Æ¤·¤Þ¤¦¤³¤È¤òÈò¤±¤ë¤¿¤á¤Ç¤¹¡£
+
+ 3.9) pgsql_tmp ¥Ç¥£¥ì¥¯¥È¥ê¤ÎÃæ¤Ë¤Ï²¿¤¬¤¢¤ê¤Þ¤¹¤«¡©
+
+ Ì䤤¹ç¤ï¤»¼Â¹Ô¥â¥¸¥å¡¼¥ë¤Ë¤è¤Ã¤ÆÀ¸À®¤µ¤ì¤¿°ì»þŪ¤Ê¥Õ¥¡¥¤¥ë¤¬¡¢¤³¤Î¥Ç¥£
+ ¥ì¥¯¥È¥ê¤Ë´Þ¤Þ¤ì¤Þ¤¹¡£Î㤨¤Ð¡¢¤â¤· ORDER BY
+ ¶ç¤òËþ¤¿¤¹¤¿¤á¤Ë¥Ð¥Ã¥¯¥¨¥ó¥É¤Î -S ¥Ñ¥é¥á¡¼¥¿¤Çµö²Ä¤·¤¿Ãͤè¤ê¤âÂç¤
+ ¤Ê¥¹¥Ú¡¼¥¹¤¬¥½¡¼¥È¤ÎºÝ¤ËɬÍפÀ¤È¤¹¤ë¤È¡¢°î¤ì¤¿¥Ç¡¼¥¿¤òÊÝ»ý¤¹¤ë¤¿¤á¤Ë°ì
+ »þŪ¤Ê¥Õ¥¡¥¤¥ë¤¬¤¤¤¯¤Ä¤«¤³¤³¤ËÀ¸À®¤µ¤ì¤Þ¤¹¡£
+
+ °ì»þŪ¤Ê¥Õ¥¡¥¤¥ë¤Ï¼«Æ°Åª¤Ë¾Ã¤·µî¤é¤ì¤ë¤Ï¤º¤Ç¤¹¤¬¡¢¤â¤·¡¢¥½¡¼¥È¤ÎÅÓÃæ¤Ç
+ ¥Ð¥Ã¥¯¥¨¥ó¥É¤¬¥¯¥é¥Ã¥·¥å¤·¤Æ¤·¤Þ¤¦¤È¤½¤¦¤Ï¤Ê¤ê¤Þ¤»¤ó¡£postmaster¤ÎÄä»ß
+ ¤È¥ê¥¹¥¿¡¼¥È¤Ç¤³¤ì¤é¤Î¥Õ¥¡¥¤¥ë¤Ï¥Ç¥£¥ì¥¯¥È¥ê¤«¤é¾Ã¤·¤µ¤é¤ì¤Þ¤¹¡£
[ÌõÃí¡§
- SYSLOGD ·Ðͳ¤Ç¥í¥°¤ò½ÐÎϤ¹¤ë¤Ë¤Ï¡¢¤Þ¤º¡¢configure ¤ò --enable-syslog
- ÉÕ¤¤ÇÁö¤é¤»¤¿¸å¡¢¥³¥ó¥Ñ¥¤¥ë¤È¥¤¥ó¥¹¥È¡¼¥ë¤ò¹Ô¤Ê¤¤¤Þ¤¹¡£
- ¼¡¤Ë¡¢syslog.conf ¤Ë local?.* ¤Î ½ÐÎÏÀè¤ò»ØÄꤷ(´Ä¶ÊÑ¿ô¤ÇÊѹ¹²Äǽ)¡¢
- syslogd ¤Ë HUP ¥·¥°¥Ê¥ë¤òÁ÷¤Ã¤Æ½é´ü²½¤·¤Æ¤ª¤¤Þ¤¹¡£¤½¤·¤Æ¡¢
- $PGDATA/pg_options ¤Ë syslog=2 ¤ò²Ã¤¨¤Æ¡¢ postmaster ¤ò -S
- ¥ª¥×¥·¥ç¥óÉÕ¤¤Ë¤Æ¥µ¡¼¥Ð¥â¡¼¥É¤Çµ¯Æ°¤·¤Þ¤¹¡£(¥Ð¡¼¥¸¥ç¥ó 7.1 ¤«¤é¤Ï
+ SYSLOGD ·Ðͳ¤Ç¥í¥°¤ò½ÐÎϤ¹¤ë¤Ë¤Ï¡¢¤Þ¤º¡¢configure ¤ò --enable-syslog
+ ÉÕ¤¤ÇÁö¤é¤»¤¿¸å¡¢¥³¥ó¥Ñ¥¤¥ë¤È¥¤¥ó¥¹¥È¡¼¥ë¤ò¹Ô¤Ê¤¤¤Þ¤¹¡£
+ ¼¡¤Ë¡¢syslog.conf ¤Ë local?.* ¤Î ½ÐÎÏÀè¤ò»ØÄꤷ(´Ä¶ÊÑ¿ô¤ÇÊѹ¹²Äǽ)¡¢
+ syslogd ¤Ë HUP ¥·¥°¥Ê¥ë¤òÁ÷¤Ã¤Æ½é´ü²½¤·¤Æ¤ª¤¤Þ¤¹¡£¤½¤·¤Æ¡¢
+ $PGDATA/pg_options ¤Ë syslog=2 ¤ò²Ã¤¨¤Æ¡¢ postmaster ¤ò -S
+ ¥ª¥×¥·¥ç¥óÉÕ¤¤Ë¤Æ¥µ¡¼¥Ð¥â¡¼¥É¤Çµ¯Æ°¤·¤Þ¤¹¡£(¥Ð¡¼¥¸¥ç¥ó 7.1 ¤«¤é¤Ï
pg_options ¤Ï PostgreSQL.conf ¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£)
]
-3.10) PostgreSQL¤Î¥á¥¸¥ã¡¼¥ê¥ê¡¼¥¹¤ò¥¢¥Ã¥×¥Ç¡¼¥È¤¹¤ë¤Î¤Ë¥À¥ó¥×¤È¥ê¥¹¥È¥¢¤ò¤·¤Ê
-¤¯¤Æ¤Ï¤Ê¤é¤Ê¤¤¤Î¤Ï¤Ê¤¼¤Ç¤¹¤«¡©
-
-PostgreSQL¥Á¡¼¥à¤Ï¥Þ¥¤¥Ê¡¼¥ê¥ê¡¼¥¹¤Ç¤Ï¾®¤µ¤ÊÊѹ¹¤·¤«¹Ô¤Ê¤¤¤Þ¤»¤ó¤Î¤Ç¡¢7.2 ¤«¤é
-7.2.1 ¤Ø¤Î¥¢¥Ã¥×¥°¥ì¡¼¥É¤Ë¤Ï¥À¥ó¥×¤È¥ê¥¹¥È¥¢¤ÎɬÍפϤ¢¤ê¤Þ¤»¤ó¡£¤·¤«¤·¡¢¥á¥¸¥ã
-¡¼¥ê¥ê¡¼¥¹(¤¿¤È¤¨¤Ð¡¢7.2¤«¤é7.3¤Ø¤Î¤è¤¦¤Ê)¤Ç¤Ï¡¢¥·¥¹¥Æ¥à¥Æ¡¼¥Ö¥ë¤ä¥Ç¡¼¥¿¥Õ¥¡¥¤
-¥ë¤ÎÆâÉô¥Õ¥©¡¼¥Þ¥Ã¥È¤ÎÊѹ¹¤ò¤·¤Ð¤·¤Ð¹Ô¤Ê¤¤¤Þ¤¹¡£¤³¤ì¤é¤ÎÊѹ¹¤Ï¤¿¤¤¤Æ¤¤Ê£»¨¤Ç¡¢
-¤½¤Î¤¿¤á²æ¡¹¤Ï¥Ç¡¼¥¿¥Õ¥¡¥¤¥ë¤Î¤¿¤á¤Î¸åÊý¸ß´¹À¤ò°Ý»ý¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤»¤ó¡£¥À¥ó
-¥×¤ÏÈÆÍÑ¥Õ¥©¡¼¥Þ¥Ã¥È¤Ç¥Ç¡¼¥¿¤ò½ÐÎϤ·¡¢¤½¤ì¤ò¿·¤·¤¤ÆâÉô¥Õ¥©¡¼¥Þ¥Ã¥È¤ËÆÉ¤ß¹þ¤à¤³
-¤È¤¬¤Ç¤¤Þ¤¹¡£
-
-¥Ç¥£¥¹¥¯¾å¤Ç¤Î¥Õ¥©¡¼¥Þ¥Ã¥È¤ËÊѹ¹¤Î¤Ê¤¤Æ±°ì¥ê¥ê¡¼¥¹¤Ç¤Ï¡¢¥¢¥Ã¥×¥°¥ì¡¼¥É¤Ï¡¢¥À¥ó
-¥×¡¿¥ê¥¹¥È¥¢¤Ç¤Ï¤Ê¤¯¡¢pg_upgrade ¥¹¥¯¥ê¥×¥È¤ò»È¤¦¤³¤È¤¬¤Ç¤¤Þ¤¹¡£¥ê¥ê¡¼¥¹¥Î¡¼¥È
-¤Ë¤Ï¡¢pg_upgrade ¤¬ÍøÍѲÄǽ¤Ê¥ê¥ê¡¼¥¹¤«¤É¤¦¤«µ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£
-
-3.11) ¥Ï¡¼¥É¥¦¥§¥¢¤Ë¤Ï¤É¤ó¤Ê¥³¥ó¥Ô¥å¡¼¥¿¤ò»È¤¨¤Ð¤è¤¤¤Ç¤¹¤«¡©
-
-PC¥Ï¡¼¥É¥¦¥§¥¢¤Ï¤Û¤È¤ó¤É¸ß´¹À¤¬¤¢¤ê¤Þ¤¹¤Î¤Ç¡¢¤Û¤È¤ó¤É¤Î¿Í¤Ï¡¢¤¹¤Ù¤Æ¤ÎPC¥Ï¡¼¥É
-¥¦¥§¥¢¤¬Æ±¤¸ÉʼÁ¤À¤È»×¤¤¹þ¤à·¹¸þ¤¬¤¢¤ê¤Þ¤¹¡£¤·¤«¤·¡¢¤½¤ì¤Ï´Ö°ã¤¤¤Ç¤¹¡£ECC RAM¡¢
-SCSI¡¢¤ª¤è¤Ó¡¢¹âÉʼÁ¥Þ¥¶¡¼¥Ü¡¼¥É¤Ï¡¢°Â¤¤¥Ï¡¼¥É¥¦¥§¥¢¤ËÈæ¤Ù¤ë¤È¡¢¤è¤ê¿®ÍêÀ¤¬¹â
-¤¯¡¢¤è¤êÀǽ¤âÎɤ¤¤Î¤Ç¤¹¡£PostgreSQL ¤Ï¤Û¤È¤ó¤É¤Î¥Ï¡¼¥É¥¦¥§¥¢¤Ç²ÔƯ¤·¤Þ¤¹¤¬¡¢¿®
-ÍêÀ¤äÀǽ¤¬½ÅÍפʾì¹ç¤Ï¡¢¥Ï¡¼¥É¥¦¥§¥¢¤Î¥ª¥×¥·¥ç¥ó¤ò¸¦µæ¤¹¤ë¤³¤È¤¬¸ÌÀ¤Ç¤¹¡£¥á
-¡¼¥ê¥ó¥°¥ê¥¹¥È¤Ç¤â¥Ï¡¼¥É¥¦¥§¥¢¥ª¥×¥·¥ç¥ó¤È¥È¥ì¡¼¥É¥ª¥Õ¤Ë¤Ä¤¤¤ÆµÄÏÀ¤¹¤ë¤³¤È¤¬¤Ç
-¤¤Þ¤¹¡£
-
-¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬
-
- Áàºî¾å¤Î¼ÁÌä
-
-4.1) ¥Ð¥¤¥Ê¥ê¡¦¥«¡¼¥½¥ë¤ÈÄ̾參¡¼¥½¥ë¤È¤Î¸·Ì©¤Ê°ã¤¤¤Ï²¿¤Ç¤¹¤«¡©
-
-¾Ü½Ò¤Ï¡¢¥ª¥ó¥é¥¤¥ó¥Þ¥Ë¥å¥¢¥ë¤Ç DECLARE ¤ò¸«¤Æ²¼¤µ¤¤¡£
-
-4.2) ºÇ½é¤Î¿ô¥í¥¦¤Î¤ß¤ò SELECT¤¹¤ë¤Ë¤Ï¤É¤¦¤·¤Þ¤¹¤«¡©¥é¥ó¥À¥à¤Ê¥í¥¦¡©
-
-¥ª¥ó¥é¥¤¥ó¥Þ¥Ë¥å¥¢¥ë¤ÇFETCH¤ò¸«¤Æ¤¯¤À¤µ¤¤¡£¤¢¤ë¤¤¤Ï¡¢SELECT ... LIMIT....¤ò»È¤Ã
-¤Æ¤ß¤Æ²¼¤µ¤¤¡£
-
-¤¿¤È¤¨¡¢Íߤ·¤¤¤Î¤ÏºÇ½é¤Î¿ô¥í¥¦¤À¤±¤Ç¤â¡¢¤¹¤Ù¤Æ¤ÎÌ䤤¹ç¤ï¤»¤òɾ²Á¤·¤Ê¤¯¤Æ¤Ï¤Ê¤é
-¤Ê¤¤¤«¤â¤·¤ì¤Þ¤»¤ó¡£ORDER BY ¤ò»ý¤Ã¤¿Ì䤤¹ç¤ï¤»¤ò»È¤¦¤³¤È¤ò¹Í¤¨¤Æ¤ß¤Æ²¼¤µ¤¤¡£¤â
-¤·¡¢ORDER BY¤Ë¹ç¤Ã¤¿¥¤¥ó¥Ç¥Ã¥¯¥¹¤¬¤¢¤ë¤È¤¹¤ë¤È PostgreSQL¤ÏÍ׵ᤵ¤ì¤¿ºÇ½é¤Î¿ô¥í
-¥¦¤À¤±¤Çɾ²Á¤Ç¤¤ë¤«¤â¤·¤ì¤Þ¤»¤ó¤¬¡¢¤Ç¤Ê¤ì¤Ð¡¢PostgreSQL ¤Ï°Õ¿Þ¤·¤¿¥í¥¦¤¬À¸À®¤µ
-¤ì¤ë¤Þ¤Ç¤¹¤Ù¤Æ¤Î¥í¥¦¤òɾ²Á¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¤«¤â¤·¤ì¤Þ¤»¤ó¡£
-
-¥é¥ó¥À¥à¤Ê¥í¥¦¤òSELECT¤¹¤ë¤Ë¤Ï¡¢¼¡¤Îʸ¤ò»È¤¤¤Þ¤¹¡§
-
+ 3.10)
+ PostgreSQL¤Î¥á¥¸¥ã¡¼¥ê¥ê¡¼¥¹¤ò¥¢¥Ã¥×¥Ç¡¼¥È¤¹¤ë¤Î¤Ë¥À¥ó¥×¤È¥ê¥¹¥È¥¢¤ò¤·¤Ê¤¯¤
+ ƤϤʤé¤Ê¤¤¤Î¤Ï¤Ê¤¼¤Ç¤¹¤«¡©
+
+ PostgreSQL¥Á¡¼¥à¤Ï¥Þ¥¤¥Ê¡¼¥ê¥ê¡¼¥¹¤Ç¤Ï¾®¤µ¤ÊÊѹ¹¤·¤«¹Ô¤Ê¤¤¤Þ¤»¤ó¤Î¤Ç¡¢
+ 7.2 ¤«¤é 7.2.1
+ ¤Ø¤Î¥¢¥Ã¥×¥°¥ì¡¼¥É¤Ë¤Ï¥À¥ó¥×¤È¥ê¥¹¥È¥¢¤ÎɬÍפϤ¢¤ê¤Þ¤»¤ó¡£¤·¤«¤·¡¢¥á¥¸
+ ¥ã¡¼¥ê¥ê¡¼¥¹(¤¿¤È¤¨¤Ð¡¢7.2¤«¤é7.3¤Ø¤Î¤è¤¦¤Ê)¤Ç¤Ï¡¢¥·¥¹¥Æ¥à¥Æ¡¼¥Ö¥ë¤ä¥Ç
+ ¡¼¥¿¥Õ¥¡¥¤¥ë¤ÎÆâÉô¥Õ¥©¡¼¥Þ¥Ã¥È¤ÎÊѹ¹¤ò¤·¤Ð¤·¤Ð¹Ô¤Ê¤¤¤Þ¤¹¡£¤³¤ì¤é¤ÎÊѹ¹
+ ¤Ï¤¿¤¤¤Æ¤¤Ê£»¨¤Ç¡¢¤½¤Î¤¿¤á²æ¡¹¤Ï¥Ç¡¼¥¿¥Õ¥¡¥¤¥ë¤Î¤¿¤á¤Î¸åÊý¸ß´¹À
+ ¤ò°Ý»ý¤¹¤ë¤³¤È¤¬¤Ç¤
+ ¤Þ¤»¤ó¡£¥À¥ó¥×¤ÏÈÆÍÑ¥Õ¥©¡¼¥Þ¥Ã¥È¤Ç¥Ç¡¼¥¿¤ò½ÐÎϤ·¡¢¤½¤ì¤ò¿·¤·¤¤ÆâÉô¥Õ¥©
+ ¡¼¥Þ¥Ã¥È¤ËÆÉ¤ß¹þ¤à¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
+
+ ¥Ç¥£¥¹¥¯¾å¤Ç¤Î¥Õ¥©¡¼¥Þ¥Ã¥È¤ËÊѹ¹¤Î¤Ê¤¤Æ±°ì¥ê¥ê¡¼¥¹¤Ç¤Ï¡¢¥¢¥Ã¥×¥°¥ì¡¼¥É
+ ¤Ï¡¢¥À¥ó¥×¡¿¥ê¥¹¥È¥¢¤Ç¤Ï¤Ê¤¯¡¢pg_upgrade ¥¹¥¯¥ê¥×¥È¤ò»È¤¦¤³¤È¤¬¤Ç¤
+ ¤Þ¤¹¡£¥ê¥ê¡¼¥¹¥Î¡¼¥È¤Ë¤Ï¡¢pg_upgrade ¤¬ÍøÍѲÄǽ¤Ê¥ê¥ê¡¼¥¹¤«¤É¤¦¤«µ
+ ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£
+
+ 3.11) ¥Ï¡¼¥É¥¦¥§¥¢¤Ë¤Ï¤É¤ó¤Ê¥³¥ó¥Ô¥å¡¼¥¿¤ò»È¤¨¤Ð¤è¤¤¤Ç¤¹¤«¡©
+
+ PC¥Ï¡¼¥É¥¦¥§¥¢¤Ï¤Û¤È¤ó¤É¸ß´¹À
+ ¤¬¤¢¤ê¤Þ¤¹¤Î¤Ç¡¢¤Û¤È¤ó¤É¤Î¿Í¤Ï¡¢¤¹¤Ù¤Æ¤ÎPC¥Ï¡¼¥É¥¦¥§¥¢¤¬Æ±¤¸ÉʼÁ¤À¤È»×
+ ¤¤¹þ¤à·¹¸þ¤¬¤¢¤ê¤Þ¤¹¡£¤·¤«¤·¡¢¤½¤ì¤Ï´Ö°ã¤¤¤Ç¤¹¡£ECC
+ RAM¡¢SCSI¡¢¤ª¤è¤Ó¡¢¹âÉʼÁ¥Þ¥¶¡¼¥Ü¡¼¥É¤Ï¡¢°Â¤¤¥Ï¡¼¥É¥¦¥§¥¢¤ËÈæ¤Ù¤ë¤È¡¢¤
+ è¤ê¿®ÍêÀ¤¬¹â¤¯¡¢¤è¤êÀǽ¤âÎɤ¤¤Î¤Ç¤¹¡£PostgreSQL
+ ¤Ï¤Û¤È¤ó¤É¤Î¥Ï¡¼¥É¥¦¥§¥¢¤Ç²ÔƯ¤·¤Þ¤¹¤¬¡¢¿®ÍêÀ¤äÀ
+ ǽ¤¬½ÅÍפʾì¹ç¤Ï¡¢¥Ï¡¼¥É¥¦¥§¥¢¤Î¥ª¥×¥·¥ç¥ó¤ò¸¦µæ¤¹¤ë¤³¤È¤¬¸
+ ÌÀ¤Ç¤¹¡£¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤Ç¤â¥Ï¡¼¥É¥¦¥§¥¢¥ª¥×¥·¥ç¥ó¤È¥È¥ì¡¼¥É¥ª¥Õ¤Ë¤Ä¤¤
+ ¤ÆµÄÏÀ¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
+ _________________________________________________________________
+
+ Áàºî¾å¤Î¼ÁÌä
+
+ 4.1) ¥Ð¥¤¥Ê¥ê¡¦¥«¡¼¥½¥ë¤ÈÄ̾參¡¼¥½¥ë¤È¤Î¸·Ì©¤Ê°ã¤¤¤Ï²¿¤Ç¤¹¤«¡©
+
+ ¾Ü½Ò¤Ï¡¢¥ª¥ó¥é¥¤¥ó¥Þ¥Ë¥å¥¢¥ë¤Ç DECLARE ¤ò¸«¤Æ²¼¤µ¤¤¡£
+
+ 4.2) ºÇ½é¤Î¿ô¥í¥¦¤Î¤ß¤ò SELECT¤¹¤ë¤Ë¤Ï¤É¤¦¤·¤Þ¤¹¤«¡©¥é¥ó¥À¥à¤Ê¥í¥¦¡©
+
+ ¥ª¥ó¥é¥¤¥ó¥Þ¥Ë¥å¥¢¥ë¤ÇFETCH¤ò¸«¤Æ¤¯¤À¤µ¤¤¡£¤¢¤ë¤¤¤Ï¡¢SELECT ...
+ LIMIT....¤ò»È¤Ã¤Æ¤ß¤Æ²¼¤µ¤¤¡£
+
+ ¤¿¤È¤¨¡¢Íߤ·¤¤¤Î¤ÏºÇ½é¤Î¿ô¥í¥¦¤À¤±¤Ç¤â¡¢¤¹¤Ù¤Æ¤ÎÌ䤤¹ç¤ï¤»¤òɾ²Á¤·¤Ê¤¯
+ ¤Æ¤Ï¤Ê¤é¤Ê¤¤¤«¤â¤·¤ì¤Þ¤»¤ó¡£ORDER BY
+ ¤ò»ý¤Ã¤¿Ì䤤¹ç¤ï¤»¤ò»È¤¦¤³¤È¤ò¹Í¤¨¤Æ¤ß¤Æ²¼¤µ¤¤¡£ ¤â¤·¡¢ORDER
+ BY¤Ë¹ç¤Ã¤¿¥¤¥ó¥Ç¥Ã¥¯¥¹¤¬¤¢¤ë¤È¤¹¤ë¤È
+ PostgreSQL¤ÏÍ׵ᤵ¤ì¤¿ºÇ½é¤Î¿ô¥í¥¦¤À¤±¤Çɾ²Á¤Ç¤
+ ¤ë¤«¤â¤·¤ì¤Þ¤»¤ó¤¬¡¢¤Ç¤Ê¤ì¤Ð¡¢PostgreSQL
+ ¤Ï°Õ¿Þ¤·¤¿¥í¥¦¤¬À¸À®¤µ¤ì¤ë¤Þ¤Ç¤¹¤Ù¤Æ¤Î¥í¥¦¤òɾ²Á¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¤«¤â
+ ¤·¤ì¤Þ¤»¤ó¡£
+
+ ¥é¥ó¥À¥à¤Ê¥í¥¦¤òSELECT¤¹¤ë¤Ë¤Ï¡¢¼¡¤Îʸ¤ò»È¤¤¤Þ¤¹¡§
SELECT col
FROM tab
ORDER BY random()
LIMIT 1;
-4.3) ¥Æ¡¼¥Ö¥ë¤ä¤½¤Î¾¤Î¾ðÊó¤Î¥ê¥¹¥È¤ò psql ¤Ç¸«¤ë¤Ë¤Ï¤É¤¦¤·¤Þ¤¹¤«¡©
-
-psql¤ÎÃæ¤Ç¡¢ \dt ¥³¥Þ¥ó¥É¤ò»È¤Ã¤Æ¥Æ¡¼¥Ö¥ë¤ò¸«¤Þ¤¹¡£psql ¤ÎÃæ¤Î¥³¥Þ¥ó¥É¤Î´°Á´¤Ê
-¥ê¥¹¥È¤Ë¤Ï \? ¤ò»È¤¨¤Þ¤¹¡£¤¢¤ë¤¤¤Ï¡¢psql¤Î¥½¡¼¥¹¥³¡¼¥É¤Îpgsql/src/bin/psql/
-describe.c¥Õ¥¡¥¤¥ë¤ò¸«¤ë¤³¤È¤â¤Ç¤¤Æ¡¢¤½¤ÎÃæ¤Ë¤Ïpsql¤Î¥Ð¥Ã¥¯¥¹¥é¥Ã¥·¥å¥³¥Þ¥ó¥É
-¤Î½ÐÎϤòÀ¸À®¤¹¤ëSQL¥³¥Þ¥ó¥É¤¬´Þ¤Þ¤ì¤Æ¤¤¤Þ¤¹¡£¤Þ¤¿¡¢psql¤ò -E ¥ª¥×¥·¥ç¥ó¤È°ì½ï¤Ë
-³«»Ï¤¹¤ë¤È¡¢¼Â¹Ô¤µ¤»¤¿¥³¥Þ¥ó¥É¤ò¼Â¹Ô¤¹¤ë¤¿¤á¤Ë»È¤¦Ì䤤¹ç¤ï¤»¤ò½ÐÎϤ¹¤ë¤è¤¦¤Ë¤Ê
-¤ê¤Þ¤¹¡£PostgreSQL¤Ï¤Þ¤¿¡¢SQLiÂбþ¤Î INFORMATION SCHEMA ¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤òÍѰÕ
-¤·¤Æ¤¤¤Æ¡¢¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ë¤Ä¤¤¤Æ¤Î¾ðÊó¤òÆÀ¤ë¤¿¤á¤ËÌ䤤¹ç¤ï¤»¤ò»È¤¦¤³¤È¤¬¤Ç¤¤Þ¤¹
-¡£
-
-4.4) ¥Æ¡¼¥Ö¥ë¤«¤é¥«¥é¥à¤Îºï½ü¡¢¤¢¤ë¤¤¤Ï¡¢¥Ç¡¼¥¿·¿¤òÊѹ¹¤¹¤ë¤Ë¤Ï¤É¤¦¤·¤Þ¤¹¤«¡©
-
-DROP COLUMNµ¡Ç½¤¬¡¢ALTER TABLE DROP COLUMN ¤È¤·¤Æ¥ê¥ê¡¼¥¹7.3 ¤Ë²Ã¤¨¤é¤ì¤Þ¤·¤¿¡£
-¤½¤ì¤Þ¤Ç¤Î¥Ð¡¼¥¸¥ç¥ó¤Ç¤Ï¡¢¤½¤ÎÂå¤ï¤ê¤Ë¤³¤¦¤·¤Þ¤¹:
-
+ 4.3) ¥Æ¡¼¥Ö¥ë¤ä¤½¤Î¾¤Î¾ðÊó¤Î¥ê¥¹¥È¤ò psql ¤Ç¸«¤ë¤Ë¤Ï¤É¤¦¤·¤Þ¤¹¤«¡©
+
+ psql¤ÎÃæ¤Ç¡¢ \dt ¥³¥Þ¥ó¥É¤ò»È¤Ã¤Æ¥Æ¡¼¥Ö¥ë¤ò¸«¤Þ¤¹¡£psql
+ ¤ÎÃæ¤Î¥³¥Þ¥ó¥É¤Î´°Á´¤Ê¥ê¥¹¥È¤Ë¤Ï \?
+ ¤ò»È¤¨¤Þ¤¹¡£¤¢¤ë¤¤¤Ï¡¢psql¤Î¥½¡¼¥¹¥³¡¼¥É¤Îpgsql/src/bin/psql/describe.
+ c¥Õ¥¡¥¤¥ë¤ò¸«¤ë¤³¤È¤â¤Ç¤
+ ¤Æ¡¢¤½¤ÎÃæ¤Ë¤Ïpsql¤Î¥Ð¥Ã¥¯¥¹¥é¥Ã¥·¥å¥³¥Þ¥ó¥É¤Î½ÐÎϤòÀ¸À®¤¹¤ëSQL¥³¥Þ¥ó¥
+ ɤ¬´Þ¤Þ¤ì¤Æ¤¤¤Þ¤¹¡£¤Þ¤¿¡¢psql¤ò -E
+ ¥ª¥×¥·¥ç¥ó¤È°ì½ï¤Ë³«»Ï¤¹¤ë¤È¡¢¼Â¹Ô¤µ¤»¤¿¥³¥Þ¥ó¥É¤ò¼Â¹Ô¤¹¤ë¤¿¤á¤Ë»È¤¦Ìä
+ ¤¤¹ç¤ï¤»¤ò½ÐÎϤ¹¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£PostgreSQL¤Ï¤Þ¤¿¡¢SQLiÂбþ¤Î
+ INFORMATION SCHEMA
+ ¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤òÍѰդ·¤Æ¤¤¤Æ¡¢¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ë¤Ä¤¤¤Æ¤Î¾ðÊó¤òÆÀ¤ë¤¿¤á¤Ë
+ Ì䤤¹ç¤ï¤»¤ò»È¤¦¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
+
+ 4.4)
+ ¥Æ¡¼¥Ö¥ë¤«¤é¥«¥é¥à¤Îºï½ü¡¢¤¢¤ë¤¤¤Ï¡¢¥Ç¡¼¥¿·¿¤òÊѹ¹¤¹¤ë¤Ë¤Ï¤É¤¦¤·¤Þ¤¹¤«¡©
+
+ DROP COLUMNµ¡Ç½¤¬¡¢ALTER TABLE DROP COLUMN ¤È¤·¤Æ¥ê¥ê¡¼¥¹7.3
+ ¤Ë²Ã¤¨¤é¤ì¤Þ¤·¤¿¡£¤½¤ì¤Þ¤Ç¤Î¥Ð¡¼¥¸¥ç¥ó¤Ç¤Ï¡¢¤½¤ÎÂå¤ï¤ê¤Ë¤³¤¦¤·¤Þ¤¹:
BEGIN;
LOCK TABLE old_table;
SELECT ... -- ºï½ü¤·¤¿¤¤¥«¥é¥à°Ê³°¤Î¥«¥é¥à¤ò¤¹¤Ù¤ÆÁªÂò¤·¤Þ¤¹¡£
ALTER TABLE new_table RENAME TO old_table;
COMMIT;
-¥«¥é¥à¤Î¥Ç¡¼¥¿¥¿¥¤¥×¤Ï¼¡¤Îʸ¤ÇÊѤ¨¤é¤ì¤Þ¤¹¡§
-
+ ¥«¥é¥à¤Î¥Ç¡¼¥¿¥¿¥¤¥×¤Ï¼¡¤Îʸ¤ÇÊѤ¨¤é¤ì¤Þ¤¹¡§
BEGIN;
ALTER TABLE tab ADD COLUMN new_col new_data_type;
UPDATE tab SET new_col = CAST(old_col AS new_data_type);
ALTER TABLE tab DROP COLUMN old_col;
COMMIT;
-¤³¤ì¤ò¹Ô¤Ê¤Ã¤¿¤È¤¤Ï¡¢Ëõ¾Ã¤µ¤ì¤¿¹Ô¤¬»È¤Ã¤Æ¤¤¤ë¥Ç¥£¥¹¥¯¶õ´Ö¤ò²ó¼ý¤¹¤ë¤¿¤á¤Ë
-VACUUM FULL tab¤ò¤·¤¿¤Û¤¦¤¬Îɤ¤¤«¤â¤·¤ì¤Þ¤»¤ó¡£
-
-4.5) ¥í¥¦¡¢¥Æ¡¼¥Ö¥ë¡¢¥Ç¡¼¥¿¥Ù¡¼¥¹¤ÎºÇÂ祵¥¤¥º¤Ï¡©
-
-À©¸Â¤Ï°Ê²¼¤Î¤È¤ª¤ê¤Ç¤¹¡£
-
+ ¤³¤ì¤ò¹Ô¤Ê¤Ã¤¿¤È¤
+ ¤Ï¡¢Ëõ¾Ã¤µ¤ì¤¿¹Ô¤¬»È¤Ã¤Æ¤¤¤ë¥Ç¥£¥¹¥¯¶õ´Ö¤ò²ó¼ý¤¹¤ë¤¿¤á¤ËVACUUM FULL
+ tab¤ò¤·¤¿¤Û¤¦¤¬Îɤ¤¤«¤â¤·¤ì¤Þ¤»¤ó¡£
+
+ 4.5) ¥í¥¦¡¢¥Æ¡¼¥Ö¥ë¡¢¥Ç¡¼¥¿¥Ù¡¼¥¹¤ÎºÇÂ祵¥¤¥º¤Ï¡©
+
+ À©¸Â¤Ï°Ê²¼¤Î¤È¤ª¤ê¤Ç¤¹¡£
¥Ç¡¼¥¿¥Ù¡¼¥¹¤ÎºÇÂ祵¥¤¥º? À©¸Â̵¤· (32 TB ¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¤â¸ºß¤·¤Þ¤¹)
¥Æ¡¼¥Ö¥ë¤ÎºÇÂ祵¥¤¥º? 32TB
¥í¥¦¤ÎºÇÂ祵¥¤¥º? 1.6TB
¥Æ¡¼¥Ö¥ëÆâ¤Ç¤ÎºÇÂ祫¥é¥à¿ô? ¥«¥é¥à¤Î·¿¤Ë¤è¤ê250-1600
¥Æ¡¼¥Ö¥ëÆâ¤Ç¤ÎºÇÂ祤¥ó¥Ç¥Ã¥¯¥¹¿ô? À©¸Â̵¤·
-¤â¤Á¤í¤ó¡¢¤³¤ì¤é¤Ï¼ÂºÝ¤Ï̵À©¸Â¤Ç¤Ï¤Ê¤¯¡¢¥Ç¥£¥¹¥¯ÍÆÎ̤ȥá¥â¥ê¡¼¤ä¥¹¥ï¥Ã¥×¥¹¥Ú¡¼
-¥¹¤ÎÂ礤µ¤Ë¤è¤êÀ©¸Â¤µ¤ì¤Þ¤¹¡£Àǽ¤Ï¤³¤ì¤é¤ÎÃͤ¬¤³¤È¤Î¤Û¤«Â礤ʻþ¤ËÀú¤ê¤ò¼õ¤±
-¤Þ¤¹¡£
-
-ºÇÂç¥Æ¡¼¥Ö¥ë¥µ¥¤¥º¤Î32TB¤Ï¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¥·¥¹¥Æ¥à¤Ë¤è¤ëµðÂç¥Õ¥¡¥¤¥ë¤Î¥µ¥Ý¡¼¥È
-¤ÏɬÍפȤ·¤Þ¤»¤ó¡£µðÂç¤Ê¥Æ¡¼¥Ö¥ë¤ÏÊ£¿ô¤Î1GB¤Î¥Õ¥¡¥¤¥ë¤Ëʬ¤±¤ÆÊݸ¤µ¤ì¤Þ¤¹¤Î¤Ç¡¢
-¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ÎÀ©¸Â¤Ï½ÅÍפǤϤ¢¤ê¤Þ¤»¤ó¡£
-
-¥Ç¥Õ¥©¥ë¥È¤Î¥Ö¥í¥Ã¥¯¥µ¥¤¥º¤ò32k¤Ë¤¹¤ë¤³¤È¤Ç¡¢ºÇÂç¥Æ¡¼¥Ö¥ë¥µ¥¤¥º¤ÈºÇÂ祫¥é¥à¿ô¤È
-¤ò£´Çܤˤ¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
-
-4.6) °ìÈÌŪ¤Ê¥Æ¥¥¹¥È¥Õ¥¡¥¤¥ë¤«¤é¥Ç¡¼¥¿¤òÊݸ¤¹¤ë¤Ë¤Ï¡¢¥Ç¡¼¥¿¥Ù¡¼¥¹¤Î¥Ç¥£¥¹¥¯ÍÆ
-Î̤ϤɤΤ¯¤é¤¤É¬ÍפǤ¹¡©
-
-ÉáÄ̤Υƥ¥¹¥È¥Õ¥¡¥¤¥ë¤ò PostgreSQL ¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¤ËÊݸ¤¹¤ë¤Ë¤Ï¡¢ºÇÂç¤ÇÌó5ÇܤÎ
-¥Ç¥£¥¹¥¯ÍÆÎ̤òɬÍפȤ·¤Þ¤¹¡£
-
-ÎãÂê¤È¤·¤Æ¡¢³Æ¹Ô¤ËÀ°¿ô¤È¥Æ¥¥¹¥Èµ½Ò¤ò»ý¤Ä 100,000¹Ô¤Î¥Õ¥¡¥¤¥ë¤ò¹Í¤¨¤Æ¤ß¤Þ¤·¤ç
-¤¦¡£¥Æ¥¥¹¥È¤Îʸ»úÎó¤ÎÊ¿¶ÑŤµ¤ò20¥Ð¥¤¥È¤È²¾Äꤹ¤ë¤È¡¢¥Õ¥é¥Ã¥È¥Õ¥¡¥¤¥ë¤ÎÂ礤µ
-¤ÏÌó2.8MB ¤Ç¤¹¡£¤³¤Î¥Ç¡¼¥¿¤ò´Þ¤à PostgreSQL ¥Ç¡¼¥¿¥Ù¡¼¥¹¥Õ¥¡¥¤¥ë¤ÎÂ礤µ¤Ï¼¡¤Î
-¤è¤¦¤ËÌó6.4MB¤È¸«ÀѤâ¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡§
-
+ ¤â¤Á¤í¤ó¡¢¤³¤ì¤é¤Ï¼ÂºÝ¤Ï̵À©¸Â¤Ç¤Ï¤Ê¤¯¡¢¥Ç¥£¥¹¥¯ÍÆÎ̤ȥá¥â¥ê¡¼¤ä¥¹¥ï¥Ã
+ ¥×¥¹¥Ú¡¼¥¹¤ÎÂ礤µ¤Ë¤è¤êÀ©¸Â¤µ¤ì¤Þ¤¹¡£Àǽ¤Ï¤³¤ì¤é¤ÎÃͤ¬¤³¤È¤Î¤Û¤«Âç¤
+ ¤Ê»þ¤ËÀú¤ê¤ò¼õ¤±¤Þ¤¹¡£
+
+ ºÇÂç¥Æ¡¼¥Ö¥ë¥µ¥¤¥º¤Î32TB¤Ï¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¥·¥¹¥Æ¥à¤Ë¤è¤ëµðÂç¥Õ¥¡¥¤¥ë¤Î
+ ¥µ¥Ý¡¼¥È¤ÏɬÍפȤ·¤Þ¤»¤ó¡£µðÂç¤Ê¥Æ¡¼¥Ö¥ë¤ÏÊ£¿ô¤Î1GB¤Î¥Õ¥¡¥¤¥ë¤Ëʬ¤±¤ÆÊ
+ ݸ¤µ¤ì¤Þ¤¹¤Î¤Ç¡¢¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ÎÀ©¸Â¤Ï½ÅÍפǤϤ¢¤ê¤Þ¤»¤ó¡£
+
+ ¥Ç¥Õ¥©¥ë¥È¤Î¥Ö¥í¥Ã¥¯¥µ¥¤¥º¤ò32k¤Ë¤¹¤ë¤³¤È¤Ç¡¢ºÇÂç¥Æ¡¼¥Ö¥ë¥µ¥¤¥º¤ÈºÇÂç¥
+ «¥é¥à¿ô¤È¤ò£´Çܤˤ¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
+
+ 4.6) °ìÈÌŪ¤Ê¥Æ¥
+ ¥¹¥È¥Õ¥¡¥¤¥ë¤«¤é¥Ç¡¼¥¿¤òÊݸ¤¹¤ë¤Ë¤Ï¡¢¥Ç¡¼¥¿¥Ù¡¼¥¹¤Î¥Ç¥£¥¹¥¯ÍÆÎ̤ϤɤΤ¯¤é¤
+ ¤É¬ÍפǤ¹¡©
+
+ ÉáÄ̤Υƥ¥¹¥È¥Õ¥¡¥¤¥ë¤ò PostgreSQL
+ ¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¤ËÊݸ¤¹¤ë¤Ë¤Ï¡¢ºÇÂç¤ÇÌó5ÇܤΥǥ£¥¹¥¯ÍÆÎ̤òɬÍפȤ·¤Þ¤¹¡
+ £
+
+ ÎãÂê¤È¤·¤Æ¡¢³Æ¹Ô¤ËÀ°¿ô¤È¥Æ¥¥¹¥Èµ½Ò¤ò»ý¤Ä 100,000¹Ô¤Î¥Õ¥¡¥¤¥ë¤ò¹Í¤¨
+ ¤Æ¤ß¤Þ¤·¤ç¤¦¡£¥Æ¥
+ ¥¹¥È¤Îʸ»úÎó¤ÎÊ¿¶ÑŤµ¤ò20¥Ð¥¤¥È¤È²¾Äꤹ¤ë¤È¡¢¥Õ¥é¥Ã¥È ¥Õ¥¡¥¤¥ë¤ÎÂç¤
+ ¤µ¤ÏÌó2.8MB ¤Ç¤¹¡£¤³¤Î¥Ç¡¼¥¿¤ò´Þ¤à PostgreSQL ¥Ç¡¼¥¿¥Ù¡¼¥¹
+ ¥Õ¥¡¥¤¥ë¤ÎÂ礤µ¤Ï¼¡¤Î¤è¤¦¤ËÌó6.4MB¤È¸«ÀѤâ¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡§
32 bytes: ³Æ¥í¥¦¤Î¥Ø¥Ã¥À(³µ»»)
- 24 bytes: À°¿ô(int)¥Õ¥£¡¼¥ë¥É¤È¥Æ¥¥¹¥È(text)¥Õ¥£¡¼¥ë¥É
+ 24 bytes: À°¿ô(int)¥Õ¥£¡¼¥ë¥É¤È¥Æ¥¥¹¥È(text)¥Õ¥£¡¼¥ë¥É
+ 4 bytes: ¥Ú¡¼¥¸¾å¤Î¥¿¥Ã¥×¥ë¤Ø¤Î¥Ý¥¤¥ó¥¿
----------------------------------------
60 bytes per row
100000 data rows
-------------------- = 782 database pages (ÀÚ¤ê¾å¤²)
128 rows per page
-
- 735 database pages * 8192 bytes per page = 6,021,120 bytes (6 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 ¤ò»È¤Ã¤Æ¥¤¥ó¥Ç¥Ã¥¯¥¹¤ò»È¤Ã¤Æ¼è¤ê½Ð¤¹¤³
-¤È¤¬²Äǽ¤Ç¤¹:
+ 735 database pages * 8192 bytes per page = 6,021,120 bytes (6 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
+ ¤ò»È¤Ã¤Æ¥¤¥ó¥Ç¥Ã¥¯¥¹¤ò»È¤Ã¤Æ¼è¤ê½Ð¤¹¤³¤È¤¬²Äǽ¤Ç¤¹:
SELECT col
FROM tab
ORDER BY col [ DESC ]
LIMIT 1;
-¤â¤·¡¢¥ª¥×¥Æ¥£¥Þ¥¤¥¶¤¬´Ö°ã¤Ã¤Æ¥·¡¼¥±¥ó¥·¥ã¥ë¥¹¥¥ã¥ó¤òÁªÂò¤·¤¿¤³¤È¤Ëµ¿¤¤¤¬¤Ê¤±
-¤ì¤Ð¡¢SET enable_seqscan TO 'off'¤ò»È¤Ã¤Æ¥¤¥ó¥Ç¥Ã¥¯¥¹¥¹¥¥ã¥ó¤Ç¤Þ¤Á¤¬¤¤¤Ê¤¯Â®¤¯
-¤Ê¤Ã¤Æ¤¤¤ë¤«¤ò¥Æ¥¹¥È¤ò¤·¤Æ¤ß¤Æ¤¯¤À¤µ¤¤¡£
-
-LIKE ¤¢¤ë¤¤¤Ï ~ ¤Î¤è¤¦¤Ê¥ï¥¤¥ë¥É¥«¡¼¥É±é»»»Ò¤ÏÆÃÊ̤ʴĶ¤Ç¤·¤«»È¤¨¤Þ¤»¤ó¡§
-
- ¡¦ ¸¡º÷ʸ»úÎó¤¬Ê¸»úÎó¤ÎºÇ½é¤Ë¤¤¤Þ¤¹¡£¤¿¤È¤¨¤Ð¡§
- ¢¢ LIKE ¥Ñ¥¿¡¼¥ó¤¬%¤Ç»Ï¤Þ¤é¤Ê¤¤
- ¢¢ ~ (Àµµ¬É½¸½) ¥Ñ¥¿¡¼¥ó¤Ï^¤Ç»Ï¤Þ¤é¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤
- ¡¦ ¸¡º÷ʸ»úÎó¤òʸ»ú¥¯¥é¥¹¤«¤é»Ï¤á¤ë¤³¤È¤Ï¤Ç¤¤Þ¤»¤ó¡£¤¿¤È¤¨¤Ð¡¢[a-e]¡£
- ¡¦ ILIKE ¤ä ~* ¤Î¤è¤¦¤ÊÂçʸ»ú¤È¾®Ê¸»ú¤ò¶èÊ̤·¤Ê¤¤¸¡º÷¤Ï»È¤¨¤Þ¤»¤ó¡£¤½¤Î¤«¤ï¤ê
- ¡¢¤³¤ÎFAQ¤Î4.12Àá¤ÇÀâÌÀ¤¹¤ë´Ø¿ô¤Î¥¤¥ó¥Ç¥Ã¥¯¥¹¤¬»È¤¨¤Þ¤¹¡£
- ¡¦ initdb ¤Ë¤ª¤¤¤Æ¤Ï¡¢¥Ç¥Õ¥©¥ë¥È¤ÇC¥í¥±¡¼¥ë¤¬»È¤ï¤ì¤Ê¤¯¤Æ¤Ï¤Ê¤ê¤Þ¤»¤ó¡£¤½¤ÎÍý
- ͳ¤Ï¡¢C¥í¥±¡¼¥ë°Ê³°¤Ç¤Ï¼¡¤ËÂ礤Êʸ»ú¤òÃΤ뤳¤È¤¬¤Ç¤¤Ê¤¤¤«¤é¤Ç¤¹¡£¤³¤Î¤è¤¦
- ¤Ê¾ì¹ç¡¢
+ ¤â¤·¡¢¥ª¥×¥Æ¥£¥Þ¥¤¥¶¤¬´Ö°ã¤Ã¤Æ¥·¡¼¥±¥ó¥·¥ã¥ë¥¹¥
+ ¥ã¥ó¤òÁªÂò¤·¤¿¤³¤È¤Ëµ¿¤¤¤¬¤Ê¤±¤ì¤Ð¡¢SET enable_seqscan TO
+ 'off'¤ò»È¤Ã¤Æ¥¤¥ó¥Ç¥Ã¥¯¥¹¥¹¥
+ ¥ã¥ó¤Ç¤Þ¤Á¤¬¤¤¤Ê¤¯Â®¤¯¤Ê¤Ã¤Æ¤¤¤ë¤«¤ò¥Æ¥¹¥È¤ò¤·¤Æ¤ß¤Æ¤¯¤À¤µ¤¤¡£
- LIKE
-
- ¥¤¥ó¥Ç¥¯¥·¥ó¥°¤Ë¤À¤±Æ¯¤¯¤è¤¦¤Ê¡¢ÆÃÊ̤Ê
+ LIKE ¤¢¤ë¤¤¤Ï ~ ¤Î¤è¤¦¤Ê¥ï¥¤¥ë¥É¥«¡¼¥É±é»» »Ò¤ÏÆÃÊ̤ʴĶ
+ ¤Ç¤·¤«»È¤¨¤Þ¤»¤ó¡§
+ * ¸¡º÷ʸ»úÎó¤¬Ê¸»úÎó¤ÎºÇ½é¤Ë¤¤¤Þ¤¹¡£¤¿¤È¤¨¤Ð¡§
+ + LIKE ¥Ñ¥¿¡¼¥ó¤¬%¤Ç»Ï¤Þ¤é¤Ê¤¤
+ + ~ (Àµµ¬É½¸½) ¥Ñ¥¿¡¼¥ó¤Ï^¤Ç»Ï¤Þ¤é¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤
+ * ¸¡º÷ʸ»úÎó¤òʸ»ú¥¯¥é¥¹¤«¤é»Ï¤á¤ë¤³¤È¤Ï¤Ç¤¤Þ¤»¤ó¡£¤¿¤È¤¨¤Ð¡¢[a-e]¡£
+ * ILIKE ¤ä ~* ¤Î¤è¤¦¤ÊÂçʸ»ú¤È¾®Ê¸»ú¤ò¶èÊ̤·
+ ¤Ê¤¤¸¡º÷¤Ï»È¤¨¤Þ¤»¤ó¡£¤½¤Î¤«¤ï¤ê¡¢¤³¤ÎFAQ¤Î4.12Àá¤ÇÀâÌÀ¤¹¤ë´Ø¿ô¤Î¥
+ ¤¥ó¥Ç¥Ã¥¯¥¹¤¬»È¤¨¤Þ¤¹¡£
+ * initdb ¤Ë¤ª¤¤¤Æ¤Ï¡¢¥Ç¥Õ¥©¥ë¥È¤ÇC¥í¥±¡¼¥ë¤¬»È¤ï¤ì¤Ê
+ ¤¯¤Æ¤Ï¤Ê¤ê¤Þ¤»¤ó¡£¤½¤ÎÍýͳ¤Ï¡¢C¥í¥±¡¼¥ë°Ê³°¤Ç¤Ï¼¡¤ËÂç¤
+ ¤Êʸ»ú¤òÃΤ뤳¤È ¤¬¤Ç¤
+ ¤Ê¤¤¤«¤é¤Ç¤¹¡£¤³¤Î¤è¤¦¤Ê¾ì¹ç¡¢LIKE¥¤¥ó¥Ç¥¯¥·¥ó¥°¤Ë¤À¤±
+ Ư¤¯¤è¤¦¤Ê¡¢ÆÃÊ̤Êtext_pattern_ops¥¤¥ó¥Ç¥Ã¥¯¥¹¤òºîÀ®
+ ¤¹¤ë¤³¤È¤â¤Ç¤¤Þ¤¹¡£
+
+ 8.0¤è¤êÁ°¤Î¥ê¥ê¡¼¥¹¤Ç¤Ï¡¢¥¤¥ó¥Ç¥Ã¥¯¥¹¤Ï¡¢¥Ç¡¼¥¿·¿¤¬¤Á¤ç¤¦¤É¥¤¥ó¥Ç¥Ã¥¯¥
+ ¹¤Î¥«¥é¥à¤Î·¿¤È°ìÃפ·¤Ê¤±¤ì¤Ð¡¢»È¤¨¤Ê¤¤¤³¤È¤¬¤·¤Ð¤·¤Ð¤¢¤ê¤Þ¤·¤¿¡£¤ª¤½¤
+ 餯¡¢int2, int8, ¤ª¤è¤Ó numeric Åù¤Î¥«¥é¥à¤Î¥¤¥ó¥Ç¥Ã¥¯¥¹¤¬¤½¤¦¤Ç¤¹¡£
+ [ÌõÃí¡§ ¶¯À©Åª¤Ë¥¤¥ó¥Ç¥Ã¥¯¥¹¤ò»È¤¦¤Ë¤Ï SET enable_seqscan = off
+ ¤ò¼Â¹Ô¤·¤Þ¤¹¡£ ]
- text_pattern_ops
+ 4.9)
+ Ì䤤¹ç¤ï¤»¥ª¥Ö¥Æ¥£¥Þ¥¤¥¶¤¬¤É¤Î¤è¤¦¤ËÌ䤤¹ç¤ï¤»¤òɾ²Á¤¹¤ë¤Î¤«¤ò¸«¤ë¤Ë¤Ï¤É¤¦¤
+ ·¤Þ¤¹¤«¡©
- ¥¤¥ó¥Ç¥Ã¥¯¥¹¤òºîÀ®¤¹¤ë¤³¤È¤â¤Ç¤¤Þ¤¹¡£
-
-8.0¤è¤êÁ°¤Î¥ê¥ê¡¼¥¹¤Ç¤Ï¡¢¥¤¥ó¥Ç¥Ã¥¯¥¹¤Ï¡¢¥Ç¡¼¥¿·¿¤¬¤Á¤ç¤¦¤É¥¤¥ó¥Ç¥Ã¥¯¥¹¤Î¥«¥é¥à
-¤Î·¿¤È°ìÃפ·¤Ê¤±¤ì¤Ð¡¢»È¤¨¤Ê¤¤¤³¤È¤¬¤·¤Ð¤·¤Ð¤¢¤ê¤Þ¤·¤¿¡£¤ª¤½¤é¤¯¡¢int2, int8,
-¤ª¤è¤Ó numeric Åù¤Î¥«¥é¥à¤Î¥¤¥ó¥Ç¥Ã¥¯¥¹¤¬¤½¤¦¤Ç¤¹¡£
-
-[ÌõÃí¡§¶¯À©Åª¤Ë¥¤¥ó¥Ç¥Ã¥¯¥¹¤ò»È¤¦¤Ë¤Ï SET enable_seqscan = off ¤ò¼Â¹Ô¤·¤Þ¤¹¡£ ]
-
-4.9) Ì䤤¹ç¤ï¤»¥ª¥Ö¥Æ¥£¥Þ¥¤¥¶¤¬¤É¤Î¤è¤¦¤ËÌ䤤¹ç¤ï¤»¤òɾ²Á¤¹¤ë¤Î¤«¤ò¸«¤ë¤Ë¤Ï¤É¤¦
-¤·¤Þ¤¹¤«¡©
-
-¥ª¥ó¥é¥¤¥ó¥Þ¥Ë¥å¥¢¥ë¤Ç EXPLAIN ¤ò¸«¤Æ²¼¤µ¤¤¡£
-
-4.10) R-tree ¥¤¥ó¥Ç¥Ã¥¯¥¹¤È¤Ï²¿¤Ç¤¹¤«¡©
-
-R-tree ¥¤¥ó¥Ç¥Ã¥¯¥¹¤Ï¶õ´ÖŪ¤Ê¥Ç¡¼¥¿¤Ë¥¤¥ó¥Ç¥Ã¥¯¥¹¤òÉÕ¤±¤ë¤¿¤á¤Ë»È¤ï¤ì¤Þ¤¹¡£¥Ï¥Ã
-¥·¥å¥¤¥ó¥Ç¥Ã¥¯¥¹¤Ç¤ÏÈϰϤθ¡º÷¤¬¤Ç¤¤Þ¤»¤ó¡£¤Þ¤¿¡¢B-tree ¥¤¥ó¥Ç¥Ã¥¯¥¹¤Ç¤Ï¡¢£±¼¡
-¸µ¤Ç¤·¤«ÈϰϤθ¡º÷¤¬¤Ç¤¤Þ¤»¤ó¡£R-tree ¥¤¥ó¥Ç¥Ã¥¯¥¹¤Ç¤¢¤ì¤Ð¿¼¡¸µ¤Î¥Ç¡¼¥¿¤ò°·¤¨
-¤Þ¤¹¡£¤¿¤È¤¨¤Ð¡¢¤â¤· R-tree ¥¤¥ó¥Ç¥Ã¥¯¥¹¤ò point ·¿¤Î°À¤ËÉÕ¤±¤ë¤³¤È¤¬¤Ç¤¤ë¤È
-¤¹¤ë¤È¥·¥¹¥Æ¥à¤Ï¡¢¡ÖĹÊý·Á¤Ë°Ï¤Þ¤ì¤¿ÅÀ¤ò¤¹¤Ù¤ÆÁªÂò¤¹¤ë¡×¤È¤¤¤¦¤è¤¦¤ÊÌ䤤¹ç¤ï¤»
-¤Ë¡¢¤è¤ê¸úΨÎɤ¯Åú¤¨¤é¤ì¤Þ¤¹¡£
-
-R-Tree ¤ÎÀ߷פθ¶Åµ¤È¤Ê¤ë¸¢°Ò¤¢¤ëÏÀʸ¤Ï:
-
-Guttman, A. "R-Trees: A Dynamic Index Structure for Spatial Searching."
-Proceedings of the 1984 ACM SIGMOD Int'l Conf on Mgmt of Data, 45-57.
-
-¤³¤ÎÏÀʸ¤Ï¡¢Stonebraker ¶µ¼ø¤Î "Readings in Database Systems" ¤Ç¤â¼è¤ê¾å¤²¤é¤ì
-¤Æ¤¤¤Þ¤¹¡£
-
+ ¥ª¥ó¥é¥¤¥ó¥Þ¥Ë¥å¥¢¥ë¤Ç EXPLAIN ¤ò¸«¤Æ²¼¤µ¤¤¡£
+
+ 4.10) R-tree ¥¤¥ó¥Ç¥Ã¥¯¥¹¤È¤Ï²¿¤Ç¤¹¤«¡©
+
+ R-tree
+ ¥¤¥ó¥Ç¥Ã¥¯¥¹¤Ï¶õ´ÖŪ¤Ê¥Ç¡¼¥¿¤Ë¥¤¥ó¥Ç¥Ã¥¯¥¹¤òÉÕ¤±¤ë¤¿¤á¤Ë»È¤ï¤ì¤Þ¤¹¡£¥Ï
+ ¥Ã¥·¥å¥¤¥ó¥Ç¥Ã¥¯¥¹¤Ç¤ÏÈϰϤθ¡º÷¤¬¤Ç¤¤Þ¤»¤ó¡£¤Þ¤¿¡¢B-tree
+ ¥¤¥ó¥Ç¥Ã¥¯¥¹¤Ç¤Ï¡¢£±¼¡¸µ¤Ç¤·¤«ÈϰϤθ¡º÷¤¬¤Ç¤¤Þ¤»¤ó¡£R-tree
+ ¥¤¥ó¥Ç¥Ã¥¯¥¹¤Ç¤¢¤ì¤Ð¿¼¡¸µ¤Î¥Ç¡¼¥¿¤ò°·¤¨¤Þ¤¹¡£¤¿¤È¤¨¤Ð¡¢¤â¤· R-tree
+ ¥¤¥ó¥Ç¥Ã¥¯¥¹¤ò point ·¿¤Î°À¤ËÉÕ¤±¤ë¤³¤È¤¬¤Ç¤
+ ¤ë¤È¤¹¤ë¤È¥·¥¹¥Æ¥à¤Ï¡¢¡ÖĹÊý·Á¤Ë°Ï¤Þ¤ì¤¿ÅÀ¤ò¤¹¤Ù¤ÆÁªÂò¤¹¤ë¡×¤È¤¤¤¦¤è¤¦
+ ¤ÊÌ䤤¹ç¤ï¤»¤Ë¡¢¤è¤ê¸úΨÎɤ¯Åú¤¨¤é¤ì¤Þ¤¹¡£
+
+ R-Tree ¤ÎÀ߷פθ¶Åµ¤È¤Ê¤ë¸¢°Ò¤¢¤ëÏÀʸ¤Ï:
+
+ Guttman, A. "R-Trees: A Dynamic Index Structure for Spatial
+ Searching." Proceedings of the 1984 ACM SIGMOD Int'l Conf on Mgmt of
+ Data, 45-57.
+
+ ¤³¤ÎÏÀʸ¤Ï¡¢Stonebraker ¶µ¼ø¤Î "Readings in Database Systems"
+ ¤Ç¤â¼è¤ê¾å¤²¤é¤ì¤Æ¤¤¤Þ¤¹¡£
[ÌõÃí¡§
- ÆàÎÉÀèüÂç¤ÎÀÐÀî²Â¼£¤µ¤ó¤è¤êR-Tree´Ø·¸¤Îʸ¸¥¤ò¾Ò²ð¤·¤ÆÄº¤¤Þ¤·¤¿¡£
- ÆüËܸì Postgres ML ¤Î¥¢¡¼¥«¥¤¥Ö¤«¤é "Subject: [postgres95 801] spatial data structures"
+ ÆàÎÉÀèüÂç¤ÎÀÐÀî²Â¼£¤µ¤ó¤è¤êR-Tree´Ø·¸¤Îʸ¸¥¤ò¾Ò²ð¤·¤ÆÄº¤¤Þ¤·¤¿¡£
+ ÆüËܸì Postgres ML ¤Î¥¢¡¼¥«¥¤¥Ö¤«¤é "Subject: [postgres95 801] spatialdata structures"
http://www.sra.co.jp/people/t-ishii/PostgreSQL/mhonarc/pgsql-jp/1996Oct/msg00007.html
¤ò¤´Í÷²¼¤µ¤¤¡£
]
-Áȹþ¤ß¤Î R-Tree ¤Ç¥Ý¥ê¥´¥ó¤ä¥Ü¥Ã¥¯¥¹¤òÁàºî¤Ç¤¤Þ¤¹¡£ÍýÏÀŪ¤Ë¤ÏR-Tree ¤Ï¤â¤Ã¤È¹â
-¤¤¼¡¸µ¤òÁàºî¤¹¤ë¤è¤¦¤Ë¤â³ÈÄ¥¤Ç¤¤Þ¤¹¡£¼Â¼ÁŪ¤Ë¤Ï¡¢R-Tree ¤Î³ÈÄ¥¤Ë¤Ï¤Á¤ç¤Ã¤È¤·¤¿
-ºî¶È¤¬É¬ÍפǤ·¤Æ¡¢¸½ºß¡¢²æ¡¹¤Ï¤½¤ì¤ò¤É¤Î¤è¤¦¤Ë¤¹¤ë¤«¤Ë¤Ä¤¤¤Æ¤Îʸ½ñ¤ò»ý¤Ã¤Æ¤¤¤Þ
-¤»¤ó¡£
-
+ Áȹþ¤ß¤Î R-Tree ¤Ç¥Ý¥ê¥´¥ó¤ä¥Ü¥Ã¥¯¥¹¤òÁàºî¤Ç¤¤Þ¤¹¡£ÍýÏÀŪ¤Ë¤ÏR-Tree
+ ¤Ï¤â¤Ã¤È¹â¤¤¼¡¸µ¤òÁàºî¤¹¤ë¤è¤¦¤Ë¤â³ÈÄ¥¤Ç¤¤Þ¤¹¡£¼Â¼ÁŪ¤Ë¤Ï¡¢R-Tree
+ ¤Î³ÈÄ¥¤Ë¤Ï¤Á¤ç¤Ã¤È¤·¤¿ºî¶È¤¬É¬ÍפǤ·¤Æ¡¢¸½ºß¡¢²æ¡¹¤Ï¤½¤ì¤ò¤É¤Î¤è¤¦¤Ë¤¹
+ ¤ë¤«¤Ë¤Ä¤¤¤Æ¤Îʸ½ñ¤ò»ý¤Ã¤Æ¤¤¤Þ¤»¤ó¡£
[ÌõÃí¡§
R-Tree ¥¤¥ó¥Ç¥Ã¥¯¥¹¤ÏGiST¤Ç³«È¯¤µ¤ì¤Æ¤¤¤Þ¤¹¡£
http://www.sai.msu.su/~megera/postgres/gist/
]
-4.11) °äÅÁŪÌ䤤¹ç¤ï¤»ºÇŬ²½¤È¤Ï²¿¤Ç¤¹¤«¡©
-
-GEQO ¥â¥¸¥å¡¼¥ë¤Ï¡¢Âô»³¤Î¥Æ¡¼¥Ö¥ë¤ò·ë¹ç¤¹¤ë¤È¤¤Ë¡¢°äÅÁŪ¥¢¥ë¥´¥ê¥º¥à(GA)¤ÇÌä¹ç
-¤ï¤»¤ò¹â®²½¤·¤Þ¤¹¡£¤³¤ì¤Ë¤è¤ê¡¢¤·¤é¤ß¤Ä¤Ö¤·¤Ëõº÷¤ò¹Ô¤Ê¤ï¤Ê¤¯¤Æ¤â¡¢Â礤ʷë¹ç
-(join queries)¤ò°·¤¦¤³¤È¤¬¤Ç¤¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£
-
-4.12) Àµµ¬É½¸½¤Ç¤Î¸¡º÷¤äÂçʸ»ú¤È¾®Ê¸»ú¤È¤ò¶èÊ̤·¤Ê¤¤Àµµ¬É½¸½¸¡º÷¤Ï¤É¤Î¤è¤¦¤Ë¼Â
-¸½¤·¤Þ¤¹¤«¡©Âçʸ»ú¤È¾®Ê¸»ú¤È¤ò¶èÊ̤·¤Ê¤¤¸¡º÷¤Î¤¿¤á¤Î¥¤¥ó¥Ç¥Ã¥¯¥¹¤Ï¤É¤Î¤è¤¦¤Ë»È
-¤¤¤Þ¤¹¤«¡©
-
-~±é»»»Ò¤ÏÀµµ¬É½¸½¾È¹ç¤ò¹Ô¤Ê¤¤¡¢~* ¤ÏÂçʸ»ú¤È¾®Ê¸»ú¤ò¶èÊ̤·¤Ê¤¤
-(case-insensitive)Àµµ¬É½¸½¾È¹ç¤ò¹Ô¤¤¤Þ¤¹¡£Âçʸ»ú¤È¾®Ê¸»ú¤ò¶èÊ̤·¤Ê¤¤ LIKE ±é»»
-»Ò¤ò ILIKE ¤È¤¤¤¤¤Þ¤¹¡£
-
-Âçʸ»ú¤È¾®Ê¸»ú¤ò¶èÊ̤·¤Ê¤¤ÅùÃÍÈæ³Ó¤Ï¼¡¤Î¤è¤¦¤Ëɽ¸½¤Ç¤¤ë¡§
-
+ 4.11) °äÅÁŪÌ䤤¹ç¤ï¤»ºÇŬ²½¤È¤Ï²¿¤Ç¤¹¤«¡©
+
+ GEQO ¥â¥¸¥å¡¼¥ë¤Ï¡¢Âô»³¤Î¥Æ¡¼¥Ö¥ë¤ò·ë¹ç¤¹¤ë¤È¤
+ ¤Ë¡¢°äÅÁŪ¥¢¥ë¥´¥ê¥º¥à(GA)¤ÇÌä¹ç¤ï¤»¤ò¹â®²½¤·¤Þ¤¹¡£¤³¤ì¤Ë¤è¤ê¡¢¤·¤é¤ß
+ ¤Ä¤Ö¤·¤Ëõº÷¤ò¹Ô¤Ê¤ï¤Ê¤¯¤Æ¤â¡¢Â礤ʷë¹ç(join queries)¤ò°·¤¦¤³¤È¤¬¤Ç¤
+ ¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£
+
+ 4.12)
+ Àµµ¬É½¸½¤Ç¤Î¸¡º÷¤äÂçʸ»ú¤È¾®Ê¸»ú¤È¤ò¶èÊ̤·¤Ê¤¤Àµµ¬É½¸½¸¡º÷¤Ï¤É¤Î¤è¤¦¤Ë¼Â¸½¤
+ ·¤Þ¤¹¤«¡©Âçʸ»ú¤È¾®Ê¸»ú¤È¤ò¶èÊ̤·¤Ê¤¤¸¡º÷¤Î¤¿¤á¤Î¥¤¥ó¥Ç¥Ã¥¯¥¹¤Ï¤É¤Î¤è¤¦¤Ë»È
+ ¤¤¤Þ¤¹¤«¡©
+
+ ~±é»»»Ò¤ÏÀµµ¬É½¸½¾È¹ç¤ò¹Ô¤Ê¤¤¡¢~*
+ ¤ÏÂçʸ»ú¤È¾®Ê¸»ú¤ò¶èÊ̤·¤Ê¤¤(case-insensitive)Àµµ¬É½¸½¾È¹ç¤ò¹Ô¤¤¤Þ¤¹¡£
+ Âçʸ»ú¤È¾®Ê¸»ú¤ò¶èÊ̤·¤Ê¤¤ LIKE ±é»»»Ò¤ò ILIKE ¤È¤¤¤¤¤Þ¤¹¡£
+
+ Âçʸ»ú¤È¾®Ê¸»ú¤ò¶èÊ̤·¤Ê¤¤ÅùÃÍÈæ³Ó¤Ï¼¡¤Î¤è¤¦¤Ëɽ¸½¤Ç¤¤ë¡§
SELECT *
FROM tab
WHERE lower(col) = 'abc';
-ɸ½à¥¤¥ó¥Ç¥Ã¥¯¥¹¤Ç¤Ï»È¤ï¤ì¤º¡¢¤·¤«¤·¤Ê¤¬¤é¡¢¤â¤·´Ø¿ô¥¤¥ó¥Ç¥Ã¥¯¥¹¤òºî¤Ã¤¿¤Ê¤é¤½
-¤ì¤¬»È¤ï¤ì¤ë¤Ç¤·¤ç¤¦¡£
-
+ ɸ½à¥¤¥ó¥Ç¥Ã¥¯¥¹¤Ç¤Ï»È¤ï¤ì¤º¡¢¤·¤«¤·¤Ê¤¬¤é¡¢¤â¤·´Ø¿ô¥¤¥ó¥Ç¥Ã¥¯¥¹¤ò
+ ºî¤Ã¤¿¤Ê¤é¤½¤ì¤¬»È¤ï¤ì¤ë¤Ç¤·¤ç¤¦¡£
CREATE INDEX tabindex ON tab (lower(col));
-
-
-4.13) Ì䤤¹ç¤ï¤»¤ÎÃæ¤Ç¡¢¥Õ¥£¡¼¥ë¥É¤¬ NULL ¤Ç¤¢¤ë¤³¤È¤ò¸¡½Ð¤¹¤ë¤Ë¤Ï¤É¤¦¤·¤Þ¤¹¤«
-¡©
-
-¥«¥é¥à¤ò IS NULL ¤È IS NOT NULL ¤È¤Ç»î¤·¤Æ¤ß¤Þ¤¹¡£
-4.14) ÍÍ¡¹¤Êʸ»ú·¿¤Î¤½¤ì¤¾¤ì¤Î°ã¤¤¤Ï²¿¤Ç¤¹¤«¡©
+ 4.13) Ì䤤¹ç¤ï¤»¤ÎÃæ¤Ç¡¢¥Õ¥£¡¼¥ë¥É¤¬ NULL
+ ¤Ç¤¢¤ë¤³¤È¤ò¸¡½Ð¤¹¤ë¤Ë¤Ï¤É¤¦¤·¤Þ¤¹¤«¡©
+
+ ¥«¥é¥à¤ò IS NULL ¤È IS NOT NULL ¤È¤Ç»î¤·¤Æ¤ß¤Þ¤¹¡£
+
+ 4.14) ÍÍ¡¹¤Êʸ»ú·¿¤Î¤½¤ì¤¾¤ì¤Î°ã¤¤¤Ï²¿¤Ç¤¹¤«¡©
+
Type Internal Name Notes
--------------------------------------------------
VARCHAR(n) varchar ºÇÂçĹ¤Î¥µ¥¤¥º¤ò»ØÄꤹ¤ë¡¢µÍ¤áʪ̵¤·
CHAR(n) bpchar »ØÄꤵ¤ì¤¿¸ÇÄêĹ¤È¤Ê¤ë¤è¤¦¤Ë¶õÇò¤¬µÍ¤á¤é¤ì¤ë
-TEXT text Ťµ¤Ë¾å¸Â¤Î̵¤¤¥Æ¥¥¹¥È
+TEXT text Ťµ¤Ë¾å¸Â¤Î̵¤¤¥Æ¥¥¹¥È
BYTEA bytea ²ÄÊÑĹ¤Î¥Ð¥¤¥ÈÇÛÎó(null-byte safe)
"char" char £±Ê¸»ú
-ÆâÉô̾¤Ë¤ªÌܤˤ«¤«¤ë¤Î¤Ï¡¢¥·¥¹¥Æ¥à¡¦¥«¥¿¥í¥°¤òÄ´¤Ù¤ë¤È¤¤ä¡¢¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤ò
-¼õ¤±¼è¤ë¤È¤¤Ç¤¹¡£
-
-¾åµ¤Î·¿¤Î¤¦¤ÁºÇ½é¤Î£´¤Ä¤Î·¿¤Ï "varlena" ·¿¤Ç¤¹(¤¹¤Ê¤ï¤Á¡¢¥Ç¥£¥¹¥¯¤ÎºÇ½é¤Î£´¥Ð
-¥¤¥È¤¬¥Ç¡¼¥¿Ä¹¤Ç¡¢¤½¤ì¤Î¸å¤Ë¼ÂºÝ¤Î¥Ç¡¼¥¿¤¬Â³¤¤Þ¤¹)¡£¤³¤Î¤è¤¦¤Ë¼ÂºÝ¤Î¶õ´Ö¤ÏÀë¸À
-¤µ¤ì¤¿Â礤µ¤è¤ê¤â¾¯¤·Â礤¯¤Ê¤ê¤Þ¤¹¡£¤·¤«¤·¡¢¤³¤ì¤é¤Î¥Ç¡¼¥¿·¿¤ÏTOAST¤Ë¤è¤ê°µ½Ì
-¤µ¤ì¤¿¤êÊ£¿ô¥í¥¦¤ËÅϤäÆÊݸ¤µ¤ì¤¿¤ê¤·¤Æ¡¢¥Ç¥£¥¹¥¯¾å¤Î¶õ´Ö¤Ï»×¤Ã¤¿¤è¤ê¾®¤µ¤¯¤Ê
-¤ê¤Þ¤¹¡£
-
-VARCHAR(n) ¤Ï²ÄÊÑŤÎʸ»úÎó¤òÊݸ¤¹¤ë¤Î¤ËºÇŬ¤Ç¤¹¤¬¡¢Êݸ¤Ç¤¤ëʸ»úÎó¤ÎŤµ¤ËÀ©
-¸Â¤¬¤¢¤ê¤Þ¤¹¡£TEXT ¤ÏŤµ¤ËÀ©¸Â¤Î̵¤¤Ê¸»úÎó¤ÎÊݸ¤Î¤¿¤á¤Î¤â¤Î¤Ç¡¢ºÇÂç¤Ç 1¥®¥¬¥Ð
-¥¤¥È¤Ç¤¹¡£ CHAR(n)¤Ï¡¢VARCHAR(n)¤¬Í¿¤¨¤é¤ì¤¿Ê¸»ú¤À¤±¤òÊݸ¤¹¤ë¤Î¤ËÂФ·¡¢¥Ö¥é¥ó
-¥¯¤òµÍ¤á¹þ¤ó¤Ç¤¤¤Ä¤âƱ¤¸Ä¹¤µ¤Çʸ»úÎó¤òÊݸ¤¹¤ë¤Î¤ËºÇŬ¤Ç¤¹¡£BYTEA¤Ï¡¢ÉôʬŪ¤Ë
-NULL ¤Î¥Ð¥¤¥È¤ò´Þ¤à¥Ð¥¤¥Ê¥ê¥Ç¡¼¥¿¤òÊݸ¤¹¤ë¤¿¤á¤Î¤â¤Î¤Ç¤¹¡£¤³¤ì¤é¤Î¥¿¥¤¥×¤ÏƱ¤¸
-¤¯¤é¤¤¤ÎÀǽÆÃÀ¤ò¤â¤Á¤Þ¤¹¡£
-
-4.15.1) ÄÌÈÖ(serial)¡¿¼«Æ°Áýʬ¥Õ¥£¡¼¥ë¥É¤Ï¤É¤Î¤è¤¦¤Ë¤Ä¤¯¤ê¤Þ¤¹¤«¡©
-
-PostgreSQL ¤Ï SERIAL ¥Ç¡¼¥¿·¿¤ò¥µ¥Ý¡¼¥È¤·¤Þ¤¹¡£¥«¥é¥à¾å¤Ë¥·¡¼¥±¥ó¥¹¤ò¼«Æ°ºîÀ®¤·
-¤Þ¤¹¡£¤¿¤È¤¨¤Ð¡¢
-
- CREATE TABLE person (
- id SERIAL,
- name TEXT
+ ÆâÉô̾¤Ë¤ªÌܤˤ«¤«¤ë¤Î¤Ï¡¢¥·¥¹¥Æ¥à¡¦¥«¥¿¥í¥°¤òÄ´¤Ù¤ë¤È¤
+ ¤ä¡¢¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤ò¼õ¤±¼è¤ë¤È¤¤Ç¤¹¡£
+
+ ¾åµ¤Î·¿¤Î¤¦¤ÁºÇ½é¤Î£´¤Ä¤Î·¿¤Ï "varlena"
+ ·¿¤Ç¤¹(¤¹¤Ê¤ï¤Á¡¢¥Ç¥£¥¹¥¯¤ÎºÇ½é¤Î£´¥Ð¥¤¥È¤¬¥Ç¡¼¥¿Ä¹¤Ç¡¢¤½¤ì¤Î¸å¤Ë¼ÂºÝ¤
+ Υǡ¼¥¿¤¬Â³¤¤Þ¤¹)¡£¤³¤Î¤è¤¦¤Ë¼ÂºÝ¤Î¶õ´Ö¤ÏÀë¸À¤µ¤ì¤¿Â礤µ¤è¤ê¤â¾¯¤·Âç¤
+ ¤¯¤Ê¤ê¤Þ¤¹¡£¤·¤«¤·¡¢¤³¤ì¤é¤Î¥Ç¡¼¥¿·¿¤ÏTOAST¤Ë¤è¤ê°µ½Ì¤µ¤ì¤¿¤êÊ£¿ô¥í¥¦¤
+ ËÅϤäÆÊݸ¤µ¤ì¤¿¤ê¤·¤Æ¡¢¥Ç¥£¥¹¥¯¾å¤Î¶õ´Ö¤Ï»×¤Ã¤¿¤è¤ê¾®¤µ¤¯¤Ê¤ê¤Þ¤¹¡£
+
+ VARCHAR(n) ¤Ï²ÄÊÑŤÎʸ»úÎó¤òÊݸ¤¹¤ë¤Î¤ËºÇŬ¤Ç¤¹¤¬¡¢Êݸ¤Ç¤
+ ¤ëʸ»úÎó¤ÎŤµ¤ËÀ©¸Â¤¬¤¢¤ê¤Þ¤¹¡£TEXT
+ ¤ÏŤµ¤ËÀ©¸Â¤Î̵¤¤Ê¸»úÎó¤ÎÊݸ¤Î¤¿¤á¤Î¤â¤Î¤Ç¡¢ºÇÂç¤Ç 1¥®¥¬¥Ð¥¤¥È¤Ç¤¹¡£
+ CHAR(n)¤Ï¡¢VARCHAR(n)¤¬Í¿¤¨¤é¤ì¤¿Ê¸»ú¤À¤±¤òÊݸ¤¹¤ë¤Î¤ËÂФ·¡¢¥Ö¥é¥ó¥¯¤
+ òµÍ¤á¹þ¤ó¤Ç¤¤¤Ä¤âƱ¤¸Ä¹¤µ¤Çʸ»úÎó¤òÊݸ¤¹¤ë¤Î¤ËºÇŬ¤Ç¤¹¡£BYTEA¤Ï¡¢Éôʬ
+ Ū¤ËNULL
+ ¤Î¥Ð¥¤¥È¤ò´Þ¤à¥Ð¥¤¥Ê¥ê¥Ç¡¼¥¿¤òÊݸ¤¹¤ë¤¿¤á¤Î¤â¤Î¤Ç¤¹¡£¤³¤ì¤é¤Î¥¿¥¤¥×¤Ï
+ Ʊ¤¸¤¯¤é¤¤¤ÎÀǽÆÃÀ¤ò¤â¤Á¤Þ¤¹¡£
+
+ 4.15.1) ÄÌÈÖ(serial)¡¿¼«Æ°Áýʬ¥Õ¥£¡¼¥ë¥É¤Ï¤É¤Î¤è¤¦¤Ë¤Ä¤¯¤ê¤Þ¤¹¤«¡©
+
+ PostgreSQL ¤Ï SERIAL
+ ¥Ç¡¼¥¿·¿¤ò¥µ¥Ý¡¼¥È¤·¤Þ¤¹¡£¥«¥é¥à¾å¤Ë¥·¡¼¥±¥ó¥¹¤ò¼«Æ°ºîÀ®¤·¤Þ¤¹¡£¤¿¤È¤¨
+ ¤Ð¡¢
+ CREATE TABLE person (
+ id SERIAL,
+ name TEXT
);
-¤Ï¼«Æ°Åª¤Ë¼¡¤Î¤è¤¦¤ËËÝÌõ¤µ¤ì¤Þ¤¹:
-
+ ¤Ï¼«Æ°Åª¤Ë¼¡¤Î¤è¤¦¤ËËÝÌõ¤µ¤ì¤Þ¤¹:
CREATE SEQUENCE person_id_seq;
- CREATE TABLE person (
+ CREATE TABLE person (
id INT4 NOT NULL DEFAULT nextval('person_id_seq'),
- name TEXT
+ name TEXT
);
[ÌõÃí¡§
¤Ï¡¢ 7.3 ¤«¤é¤Ï¼«Æ°Åª¤Ë¤Ï¹Ô¤Ê¤ï¤ì¤Ê¤¯¤Ê¤ê¤Þ¤·¤¿¡£
]
-ÄÌÈ֤ˤĤ¤¤Æ¤Î¤â¤Ã¤È¾Ü¤·¤¤¾ðÊó¤Ï¡¢¥ª¥ó¥é¥¤¥ó¥Þ¥Ë¥å¥¢¥ë¤Ç create_sequence ¤ò¤´Í÷
-²¼¤µ¤¤¡£
-
-¤Þ¤¿¡¢³Æ¥í¥¦¤ÎOID¥Õ¥£¡¼¥ë¥É¤ò°ì°ÕÃͤȤ·¤Æ»È¤¦¤³¤È¤â¤Ç¤¤Þ¤¹¡£¤·¤«¤·¤Ê¤¬¤é¡¢¤â¤·
-¤â¥Ç¡¼¥¿¥Ù¡¼¥¹¤ò¥À¥ó¥×¤·¤Æ¥ê¥í¡¼¥É¤¹¤ëɬÍפ¬¤¢¤ë¾ì¹ç¤Ï¡¢OID¤ò²¹Â¸¤¹¤ë¤¿¤á¤Ë
-pg_dump ¤Ç -o¥ª¥×¥·¥ç¥ó¤ò»È¤¦¤«¡¢¤Þ¤¿¤Ï¡¢COPY WITH OIDS¥ª¥×¥·¥ç¥ó¤ò»È¤¦É¬Íפ¬¤¢
-¤ê¤Þ¤¹¡£
-
-4.15.2) SERIAL¥Ç¡¼¥¿·¿¤ËÁÞÆþ¤µ¤ì¤ëÃͤϡ¢¤É¤¦¤¹¤ì¤ÐÆÀ¤é¤ì¤Þ¤¹¤«¡©
-
-¤Ò¤È¤Ä¤ÎÊýË¡¤Ï¡¢nextval() ´Ø¿ô¤ò»È¤Ã¤Æ¤½¤ÎÃͤòÁÞÆþ¤¹¤ëÁ°(before)¤Ë SEQUENCE ¥ª
-¥Ö¥¸¥§¥¯¥È¤«¤é¼¡¤Î SERIAL Ãͤò¼è¤ê½Ð¤·¡¢¤½¤ì¤«¤é¼ÂºÝ¤ËÁÞÆþ¤ò¤¹¤ë¤³¤È¤Ç¤¹¡£
-4.15.1 ¤Î¥Æ¡¼¥Ö¥ë¤ÎÎã¤ò»È¤¦¤È¤¹¤ë¤È¡¢µ¿»÷¸À¸ì¤Ç¤Ï¤³¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£
-
+ ÄÌÈ֤ˤĤ¤¤Æ¤Î¤â¤Ã¤È¾Ü¤·¤¤¾ðÊó¤Ï¡¢¥ª¥ó¥é¥¤¥ó¥Þ¥Ë¥å¥¢¥ë¤Ç
+ create_sequence ¤ò¤´Í÷²¼¤µ¤¤¡£
+
+ ¤Þ¤¿¡¢³Æ¥í¥¦¤ÎOID¥Õ¥£¡¼¥ë¥É¤ò°ì°ÕÃͤȤ·¤Æ»È¤¦¤³¤È¤â¤Ç¤
+ ¤Þ¤¹¡£¤·¤«¤·¤Ê¤¬¤é¡¢¤â¤·¤â¥Ç¡¼¥¿¥Ù¡¼¥¹¤ò¥À¥ó¥×¤·¤Æ¥ê¥í¡¼¥É¤¹¤ëɬÍפ¬¤¢
+ ¤ë¾ì¹ç¤Ï¡¢OID¤ò²¹Â¸¤¹¤ë¤¿¤á¤Ëpg_dump ¤Ç
+ -o¥ª¥×¥·¥ç¥ó¤ò»È¤¦¤«¡¢¤Þ¤¿¤Ï¡¢COPY WITH
+ OIDS¥ª¥×¥·¥ç¥ó¤ò»È¤¦É¬Íפ¬¤¢¤ê¤Þ¤¹¡£
+
+ 4.15.2) SERIAL¥Ç¡¼¥¿·¿¤ËÁÞÆþ¤µ¤ì¤ëÃͤϡ¢¤É¤¦¤¹¤ì¤ÐÆÀ¤é¤ì¤Þ¤¹¤«¡©
+
+ ¤Ò¤È¤Ä¤ÎÊýË¡¤Ï¡¢nextval() ´Ø¿ô¤ò»È¤Ã¤Æ¤½¤ÎÃͤòÁÞÆþ¤¹¤ëÁ°(before)¤Ë
+ SEQUENCE ¥ª¥Ö¥¸¥§¥¯¥È¤«¤é¼¡¤Î SERIAL
+ Ãͤò¼è¤ê½Ð¤·¡¢¤½¤ì¤«¤é¼ÂºÝ¤ËÁÞÆþ¤ò¤¹¤ë¤³¤È¤Ç¤¹¡£4.15.1
+ ¤Î¥Æ¡¼¥Ö¥ë¤ÎÎã¤ò»È¤¦¤È¤¹¤ë¤È¡¢µ¿»÷¸À¸ì¤Ç¤Ï¤³¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£
new_id = execute("SELECT nextval('person_id_seq')");
execute("INSERT INTO person (id, name) VALUES (new_id, 'Blaise Pascal')");
-¤½¤¦¤·¤Æ¡¢new_id ¤ËÊݸ¤·¤¿¿·¤·¤¤Ãͤò¾¤ÎÌ䤤¹ç¤ï¤»¤Ë(¤¿¤È¤¨¤Ð¡¢person ¥Æ¡¼¥Ö¥ë
-¤ËÂФ¹¤ë³°Éô¥¡¼(foreign key)¤Î¤è¤¦¤Ë)»È¤¦¤È¤è¤¤¤Ç¤·¤ç¤¦¡£¼«Æ°Åª¤Ëºî¤é¤ì¤¿
-SEQUENCE¥ª¥Ö¥¸¥§¥¯¥È¤Î̾Á°¤Ï¡¢
__seq ¤Î¤è¤¦¤Ë¤Ê¤ê¡¢¤³¤Î¤¦¤Á
-¡¢table ¤È serialcolumn ¤Ï¤½¤ì¤¾¤ì¥Æ¡¼¥Ö¥ë¤Î̾Á°¤ÈSERIAL¥«¥é¥à¤Î̾Á°¤Ç¤¹¡£
-
-¤¢¤ë¤¤¤Ï¡¢Í¿¤¨¤é¤ì¤¿SERIALÃͤò¡¢¤½¤ì¤¬´ûÄêÃͤȤ·¤ÆÁÞÆþ¤µ¤ì¤¿¸å¤Ç(after)¡¢
-currval() ´Ø¿ô¤ò»È¤Ã¤Æ¼è¤ê½Ð¤¹¤³¤È¤â¤Ç¤¤Þ¤¹¡£¤¿¤È¤¨¤Ð¡¢
-
+ ¤½¤¦¤·¤Æ¡¢new_id ¤ËÊݸ¤·¤¿¿·¤·¤¤Ãͤò¾¤ÎÌ䤤¹ç¤ï¤»¤Ë(¤¿¤È¤¨¤Ð¡¢person
+ ¥Æ¡¼¥Ö¥ë¤ËÂФ¹¤ë³°Éô¥¡¼(foreign
+ key)¤Î¤è¤¦¤Ë)»È¤¦¤È¤è¤¤¤Ç¤·¤ç¤¦¡£¼«Æ°Åª¤Ëºî¤é¤ì¤¿SEQUENCE¥ª¥Ö¥¸¥§¥¯¥È¤
+ Î̾Á°¤Ï¡¢
__seq ¤Î¤è¤¦¤Ë¤Ê¤ê¡¢¤³¤Î¤¦¤Á¡¢table ¤È
+ serialcolumn ¤Ï¤½¤ì¤¾¤ì¥Æ¡¼¥Ö¥ë¤Î̾Á°¤ÈSERIAL¥«¥é¥à¤Î̾Á°¤Ç¤¹¡£
+
+ ¤¢¤ë¤¤¤Ï¡¢Í¿¤¨¤é¤ì¤¿SERIALÃͤò¡¢¤½¤ì¤¬´ûÄêÃͤȤ·¤ÆÁÞÆþ¤µ¤ì¤¿¸å¤Ç(after
+ )¡¢ currval() ´Ø¿ô¤ò»È¤Ã¤Æ¼è¤ê½Ð¤¹¤³¤È¤â¤Ç¤¤Þ¤¹¡£¤¿¤È¤¨¤Ð¡¢
execute("INSERT INTO person (name) VALUES ('Blaise Pascal')");
new_id = execute("SELECT currval('person_id_seq')");
-ºÇ¸å¤Ë¡¢INSERTʸ¤«¤éÊÖ¤ëOID¤ò»È¤Ã¤Æ¡¢´ûÄêÃͤò¤ß¤Ä¤±¤ë¤³¤È¤â¤Ç¤¤Þ¤¹¤¬¡¢¤·¤«¤·¡¢
-oid¤ÎÃͤÏ40²¯¤Ë㤹¤ë¤È¤â¤È¤ËÌá¤Ã¤Æ¤·¤Þ¤¤¡¢ºÇ¤â°Ü¿¢À¤ÎÄ㤤¤ä¤êÊý¤È¤Ê¤ë¤Ç¤·¤ç¤¦
-¡£Perl DBI ¤Î DBD::Pg ¥â¥¸¥å¡¼¥ë¤ò»È¤¨¤Ð¡¢$sth->execute() ¤Î¸å¤Ë $sth->
-{pg_oid_status} ¤ò·Ðͳ¤·¤Æ¤½¤Î OID Ãͤò»È¤¨¤ë¤è¤¦¤Ë¤¹¤ë¤³¤È¤Ï¤Ç¤¤Þ¤¹¡£
-
-4.15.3) currval() ¤Ï¾¤Î¥æ¡¼¥¶¤È¤Î¶¥¹ç¾õÂ֤˴٤뤳¤È¤Ï¤Ê¤¤¤Ç¤¹¤«¡©
-
-¤½¤ì¤Ï¤¢¤ê¤Þ¤»¤ó¡£currval() ¤Ï¡¢¤¹¤Ù¤Æ¤Î¥æ¡¼¥¶¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¤¬¡¢¤¢¤Ê¤¿¤Î¥Ð¥Ã¥¯
-¥¨¥ó¥É¤ËÍ¿¤¨¤é¤ì¤¿¸½ºß¤ÎÃͤòÊÖ¤·¤Þ¤¹¡£
-
-4.15.4) ¥È¥é¥ó¥¶¥¯¥·¥ç¥ó¤¬ÃæÃǤ·¤¿¤È¤¤Ë¤â¤¦¤¤¤Á¤É¥·¡¼¥±¥ó¥¹Èֹ椬»È¤ï¤ì¤Ê¤¤¤Î
-¤Ï¤Ê¤¼¤Ç¤¹¤«¡©¥·¡¼¥±¥ó¥¹¡¿SERIAL¥«¥é¥à¤Ë¶õ¤¤¬¤¢¤ë¤Î¤Ï¤Ê¤¼¤Ç¤¹¤«¡©
-
-Ʊ»þÀ¤ò²þÁ±¤¹¤ë¤¿¤á¤Ë¡¢¼Â¹ÔÃæ¤Î¥È¥é¥ó¥¶¥¯¥·¥ç¥ó¤Ë¡¢É¬Íפǥȥé¥ó¥¶¥¯¥·¥ç¥ó¤¬½ª
-λ¤¹¤ë¤Þ¤Ç¥í¥Ã¥¯¤µ¤ì¤Ê¤¤¥·¡¼¥±¥ó¥¹ÃͤòÍ¿¤¨¤Æ¤¤¤Þ¤¹¡£¤³¤Î¤¿¤á¥È¥é¥ó¥¶¥¯¥·¥ç¥ó¤¬
-ÃæÃǤµ¤ì¤ë¤ÈÈÖ¹æ³ä¤êÅö¤Æ¤Ë¥®¥ã¥Ã¥×¤òÀ¸¤¸¤Þ¤¹¡£
-
-4.16) OID ¤È¤Ï²¿¤Ç¤¹¤«¡© TID ¤È¤Ï²¿¤Ç¤¹¤«¡©
-
-OID ¤È¤Ï°ì°Õ¤Î¥í¥¦ID ¤ËÂФ¹¤ë PostgreSQL ¤ÎÅú¤¨¤Ç¤¹¡£PostgreSQL ¤ÎÃæ¤Ç¤Ä¤¯¤é¤ì
-¤ë¤¹¤Ù¤Æ¤Î¥í¥¦¤Ï°ì°Õ¤Î OID ¤òÆÀ¤Þ¤¹¡£initdb ¤ÇȯÀ¸¤µ¤ì¤ë OID ¤Ï¤¹¤Ù¤Æ 16384
-(include/access/transam.h ¤«¤é)¤è¤ê¾®¤µ¤ÊÃͤǤ¹¡£initdb ¸å¤Î¤¹¤Ù¤Æ¤Î OID (¥æ¡¼
-¥¶ºîÀ®)¤Ï¤½¤ì°Ê¾å¤ÎÃͤˤʤê¤Þ¤¹¡£´ûÄê¤Ç¤Ï¡¢¤³¤ì¤é¤¹¤Ù¤Æ¤Î OID¤Ï°ì¤Ä¤Î¥Ç¡¼¥Ö¥ë¤ä
-¥Ç¡¼¥¿¥Ù¡¼¥¹Æâ¤Ëα¤Þ¤é¤º¡¢PostgreSQL ¥¤¥ó¥¹¥È¥ì¡¼¥·¥ç¥óÁ´ÂΤÎÃæ¤Ç°ì°Õ¤Ç¤¹¡£
-
-PostgreSQL ¤Ï¥Æ¡¼¥Ö¥ë´Ö¤Î¥í¥¦¤ò·ë¤Ó¤Ä¤±¤ë¤¿¤á¤Ë¡¢¤½¤Î¥·¥¹¥Æ¥à¥Æ¡¼¥Ö¥ëÆâ¤Ë OID
-¤ò»È¤¤¤Þ¤¹¡£¤³¤Î OID ¤ÏÆÃÄê¤Î¥æ¡¼¥¶¤Î¥í¥¦¤ò¼±Ê̤¹¤ë¤¿¤á¤ä·ë¹ç¤ÎÃæ¤Ç»È¤ï¤ì¤ë¤³¤È
-¤¬¤Ç¤¤Þ¤¹¡£OID ¤ÎÃͤòÊݸ¤¹¤ë¤¿¤á¤Ë¤Ï OID ·¿¤ò¥«¥é¥à¤Ë»È¤¦¤³¤È¤ò¾©¤á¤Þ¤¹¡£¤è¤ê
-®¤¯¥¢¥¯¥»¥¹¤¹¤ë¤¿¤á¤Ë OID ¥Õ¥£¡¼¥ë¥É¤Ë¥¤¥ó¥Ç¥Ã¥¯¥¹¤òºî¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£ OID
-¤Ï¡¢Á´¤Æ¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ç»È¤ï¤ì¤ëÃæ±ûÎΰ褫¤é¡¢Á´¤Æ¤Î¿·¤·¤¤¥í¥¦¤Ë³ä¤êÅö¤Æ¤é¤ì¤Þ
-¤¹¡£OID ¤ò¾¤Î²¿¤«¤ËÊѤ¨¤¿¤¤¡¢¤¢¤ë¤¤¤Ï¸µ¤Î OID ¤â¥Æ¡¼¥Ö¥ë¤È°ì½ï¤Ë¥³¥Ô¡¼¤·¤¿¤¤¤Î
-¤Ê¤é¡¢¤Ç¤¤Ê¤¯¤Ï¤¢¤ê¤Þ¤»¤ó¡£
-
+ ºÇ¸å¤Ë¡¢INSERTʸ¤«¤éÊÖ¤ëOID¤ò»È¤Ã¤Æ¡¢´ûÄêÃͤò¤ß¤Ä¤±¤ë¤³¤È¤â¤Ç¤
+ ¤Þ¤¹¤¬¡¢¤·¤«¤·¡¢oid¤ÎÃͤÏ40²¯¤Ë㤹¤ë¤È¤â¤È¤ËÌá¤Ã¤Æ¤·¤Þ¤¤¡¢ºÇ¤â°Ü¿¢À
+ ¤ÎÄ㤤¤ä¤êÊý¤È¤Ê¤ë¤Ç¤·¤ç¤¦¡£Perl DBI ¤Î DBD::Pg
+ ¥â¥¸¥å¡¼¥ë¤ò»È¤¨¤Ð¡¢$sth->execute() ¤Î¸å¤Ë $sth->{pg_oid_status}
+ ¤ò·Ðͳ¤·¤Æ¤½¤Î OID Ãͤò»È¤¨¤ë¤è¤¦¤Ë¤¹¤ë¤³¤È¤Ï¤Ç¤¤Þ¤¹¡£
+
+ 4.15.3) currval() ¤Ï¾¤Î¥æ¡¼¥¶¤È¤Î¶¥¹ç¾õÂ֤˴٤뤳¤È¤Ï¤Ê¤¤¤Ç¤¹¤«¡©
+
+ ¤½¤ì¤Ï¤¢¤ê¤Þ¤»¤ó¡£currval()
+ ¤Ï¡¢¤¹¤Ù¤Æ¤Î¥æ¡¼¥¶¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¤¬¡¢¤¢¤Ê¤¿¤Î¥Ð¥Ã¥¯¥¨¥ó¥É¤ËÍ¿¤¨¤é¤ì¤¿¸½
+ ºß¤ÎÃͤòÊÖ¤·¤Þ¤¹¡£
+
+ 4.15.4) ¥È¥é¥ó¥¶¥¯¥·¥ç¥ó¤¬ÃæÃǤ·¤¿¤È¤
+ ¤Ë¤â¤¦¤¤¤Á¤É¥·¡¼¥±¥ó¥¹Èֹ椬»È¤ï¤ì¤Ê¤¤¤Î¤Ï¤Ê¤¼¤Ç¤¹¤«¡©¥·¡¼¥±¥ó¥¹¡¿SERIAL¥«¥
+ é¥à¤Ë¶õ¤¤¬¤¢¤ë¤Î¤Ï¤Ê¤¼¤Ç¤¹¤«¡©
+
+ Ʊ»þÀ
+ ¤ò²þÁ±¤¹¤ë¤¿¤á¤Ë¡¢¼Â¹ÔÃæ¤Î¥È¥é¥ó¥¶¥¯¥·¥ç¥ó¤Ë¡¢É¬Íפǥȥé¥ó¥¶¥¯¥·¥ç¥ó¤¬
+ ½ªÎ»¤¹¤ë¤Þ¤Ç¥í¥Ã¥¯¤µ¤ì¤Ê¤¤¥·¡¼¥±¥ó¥¹ÃͤòÍ¿¤¨¤Æ¤¤¤Þ¤¹¡£¤³¤Î¤¿¤á¥È¥é¥ó¥¶
+ ¥¯¥·¥ç¥ó¤¬ÃæÃǤµ¤ì¤ë¤ÈÈÖ¹æ³ä¤êÅö¤Æ¤Ë¥®¥ã¥Ã¥×¤òÀ¸¤¸¤Þ¤¹¡£
+
+ 4.16) OID ¤È¤Ï²¿¤Ç¤¹¤«¡© TID ¤È¤Ï²¿¤Ç¤¹¤«¡©
+
+ OID ¤È¤Ï°ì°Õ¤Î¥í¥¦ID ¤ËÂФ¹¤ë PostgreSQL ¤ÎÅú¤¨¤Ç¤¹¡£PostgreSQL
+ ¤ÎÃæ¤Ç¤Ä¤¯¤é¤ì¤ë¤¹¤Ù¤Æ¤Î¥í¥¦¤Ï°ì°Õ¤Î OID ¤òÆÀ¤Þ¤¹¡£initdb ¤ÇȯÀ¸¤µ¤ì¤ë
+ OID ¤Ï¤¹¤Ù¤Æ 16384 (include/access/transam.h
+ ¤«¤é)¤è¤ê¾®¤µ¤ÊÃͤǤ¹¡£initdb ¸å¤Î¤¹¤Ù¤Æ¤Î OID
+ (¥æ¡¼¥¶ºîÀ®)¤Ï¤½¤ì°Ê¾å¤ÎÃͤˤʤê¤Þ¤¹¡£ ´ûÄê¤Ç¤Ï¡¢¤³¤ì¤é¤¹¤Ù¤Æ¤Î
+ OID¤Ï°ì¤Ä¤Î¥Ç¡¼¥Ö¥ë¤ä¥Ç¡¼¥¿¥Ù¡¼¥¹Æâ¤Ëα¤Þ¤é¤º¡¢PostgreSQL
+ ¥¤¥ó¥¹¥È¥ì¡¼¥·¥ç¥óÁ´ÂΤÎÃæ¤Ç°ì°Õ¤Ç¤¹¡£
+
+ PostgreSQL
+ ¤Ï¥Æ¡¼¥Ö¥ë´Ö¤Î¥í¥¦¤ò·ë¤Ó¤Ä¤±¤ë¤¿¤á¤Ë¡¢¤½¤Î¥·¥¹¥Æ¥à¥Æ¡¼¥Ö¥ëÆâ¤Ë OID
+ ¤ò»È¤¤¤Þ¤¹¡£¤³¤Î OID
+ ¤ÏÆÃÄê¤Î¥æ¡¼¥¶¤Î¥í¥¦¤ò¼±Ê̤¹¤ë¤¿¤á¤ä·ë¹ç¤ÎÃæ¤Ç»È¤ï¤ì¤ë¤³¤È¤¬¤Ç¤
+ ¤Þ¤¹¡£OID ¤ÎÃͤòÊݸ¤¹¤ë¤¿¤á¤Ë¤Ï OID
+ ·¿¤ò¥«¥é¥à¤Ë»È¤¦¤³¤È¤ò¾©¤á¤Þ¤¹¡£¤è¤ê®¤¯¥¢¥¯¥»¥¹¤¹¤ë¤¿¤á¤Ë OID
+ ¥Õ¥£¡¼¥ë¥É¤Ë¥¤¥ó¥Ç¥Ã¥¯¥¹¤òºî¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£ OID
+ ¤Ï¡¢Á´¤Æ¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ç»È¤ï¤ì¤ëÃæ±ûÎΰ褫¤é¡¢Á´¤Æ¤Î¿·¤·¤¤¥í¥¦¤Ë³ä¤êÅö
+ ¤Æ¤é¤ì¤Þ¤¹¡£OID ¤ò¾¤Î²¿¤«¤ËÊѤ¨¤¿¤¤¡¢¤¢¤ë¤¤¤Ï¸µ¤Î OID
+ ¤â¥Æ¡¼¥Ö¥ë¤È°ì½ï¤Ë¥³¥Ô¡¼¤·¤¿¤¤¤Î¤Ê¤é¡¢¤Ç¤¤Ê¤¯¤Ï¤¢¤ê¤Þ¤»¤ó¡£
CREATE TABLE new_table(mycol int);
SELECT oid AS old_oid, mycol INTO tmp_table FROM old_table;
COPY tmp_table TO '/tmp/pgtable';
COPY new_table WITH OIDS FROM '/tmp/pgtable';
DROP TABLE tmp_table;
-OID ¤Ï¡¢4¥Ð¥¤¥È¤ÎÀ°¿ô¤È¤·¤ÆÊݸ¤µ¤ì¤Æ¤¤¤ë¤Î¤Ç¡¢40²¯¤ò±Û¤¨¤ë¤È°î¤ì¤Æ¤·¤Þ¤¦¤Ç¤·¤ç
-¤¦¡£Ã¯¤â¤³¤ì¤¬µ¯¤¤¿¤ÈÊó¹ð¤·¤Æ¤¯¤ë¿Í¤Ï¤¤¤Þ¤»¤ó¤Ç¤·¤¿¤¬¡¢¤½¤¦¤Ê¤ëÁ°¤Ë¤³¤ÎÀ©¸Â¤ò
-¼è¤ê½ü¤¯¤³¤È¤ò·×²è¤·¤Æ¤¤¤Þ¤¹¡£
-
-TID ¤ÏÆÃÄê¤ÎʪÍý¥í¥¦¤ò¤½¤Î¥Ö¥í¥Ã¥¯¤È¥ª¥Õ¥»¥Ã¥ÈÃͤǼ±Ê̤¹¤ë¤¿¤á¤Ë»È¤ï¤ì¤Þ¤¹¡£TID
-¤Ï¥í¥¦¤¬½¤Àµ¤µ¤ì¤¿¤êºÆ¥í¡¼¥É¤µ¤ì¤ë¤ÈÊѤï¤ê¤Þ¤¹¡£¤½¤ì¤é¤Î TID ¤Ï¡¢ÊªÍý¥í¥¦¤ò»Ø¤¹
-¤¿¤á¤Ë¥¤¥ó¥Ç¥Ã¥¯¥¹µºÜ¤Ç»È¤ï¤ì¤Þ¤¹¡£
-
-4.17) PostgreSQL ¤Ç»È¤ï¤ì¤ë¤¤¤¯¤Ä¤«¤ÎÍѸì¤Î°ÕÌ£¤Ï²¿¤Ç¤¹¤«¡©
-
-¤¤¤¯¤Ä¤«¤Î¥½¡¼¥¹¥³¡¼¥É¤ä¸Å¤¤Ê¸½ñ¤ÎÃæ¤Ë¤Ï¡¢¤½¤ì¤¾¤ÎÀìÌçʬÌî¤ÎÃæ¤Ç¤â¤Ã¤È°ìÈÌŪ¤Ë
-»È¤ï¤ì¤ëÀìÌçÍѸ줬»È¤ï¤ì¤Æ¤¤¤Þ¤¹¡£
-
- ¡¦ ¥Æ¡¼¥Ö¥ë(table)¡¢´Ø·¸(relation)¡¢¥¯¥é¥¹(class)
- ¡¦ ¥í¥¦(row)¡¢¥ì¥³¡¼¥É(record)¡¢¥¿¥Ã¥×¥ë(tuple)
- ¡¦ ¥«¥é¥à(column)¡¢¥Õ¥£¡¼¥ë¥É(field)¡¢Â°À(attribute)
- ¡¦ ¼èÆÀ(retrieve)¡¢ÁªÂò(select)
- ¡¦ ÃÖ´¹(replace)¡¢¹¹¿·(update)
- ¡¦ ÄɲÃ(append)¡¢ÁÞÆþ(insert)
- ¡¦ OID, Ï¢ÈÖ(serial value)
- ¡¦ ¥Ý¡¼¥¿¥ë(portal), ¥«¡¼¥½¥ë(cursor)
- ¡¦ ÎΰèÊÑ¿ô(range variable)¡¢¥Æ¡¼¥Ö¥ë̾(table name)¡¢¥Æ¡¼¥Ö¥ëÊÌ̾(table alias)
-
-°ìÈÌŪ¤Ê¥Ç¡¼¥¿¥Ù¡¼¥¹ÍѸì¤Î¥ê¥¹¥È¤Ï¡§http://hea-www.harvard.edu/MST/simul/
-software/docs/pkgs/pgsql/glossary/glossary.html ¤Ç¸«¤Ä¤±¤é¤ì¤Þ¤¹¡£
-
-4.18) ¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸ "ERROR: Memory exhausted in AllocSetAlloc()"¤¬½Ð¤ë¤Î¤Ï¤Ê
-¤¼¤Ç¤¹¤«¡©
-
-¤ª¤½¤é¤¯¡¢¥·¥¹¥Æ¥à¤Î²¾ÁÛ¥á¥â¥ê¡¼¤òÁ´¤Æ»È¤¤²Ì¤¿¤·¤Æ¤·¤Þ¤Ã¤Æ¤¤¤ë²ÄǽÀ¤¬¤¢¤ë¤«¡¢
-¥«¡¼¥Í¥ë¤¬¤¢¤ë¥ê¥½¡¼¥¹¤Ë¤Ä¤¤¤Æ¤â¤ÄÀ©¸ÂÃͤ¬Ä㤹¤®¤ë²ÄǽÀ¤¬¤¢¤ê¤Þ¤¹¡£ postmaster
-¤ò»Ïư¤¹¤ëÁ°¤Ë¤³¤ì¤ò»î¤·¤Æ¤ß¤Æ²¼¤µ¤¤¡§
-
+ OID
+ ¤Ï¡¢4¥Ð¥¤¥È¤ÎÀ°¿ô¤È¤·¤ÆÊݸ¤µ¤ì¤Æ¤¤¤ë¤Î¤Ç¡¢40²¯¤ò±Û¤¨¤ë¤È°î¤ì¤Æ¤·¤Þ¤¦¤
+ Ǥ·¤ç¤¦¡£Ã¯¤â¤³¤ì¤¬µ¯¤
+ ¤¿¤ÈÊó¹ð¤·¤Æ¤¯¤ë¿Í¤Ï¤¤¤Þ¤»¤ó¤Ç¤·¤¿¤¬¡¢¤½¤¦¤Ê¤ëÁ°¤Ë¤³¤ÎÀ©¸Â¤ò¼è¤ê½ü¤¯¤³
+ ¤È¤ò·×²è¤·¤Æ¤¤¤Þ¤¹¡£
+
+ TID
+ ¤ÏÆÃÄê¤ÎʪÍý¥í¥¦¤ò¤½¤Î¥Ö¥í¥Ã¥¯¤È¥ª¥Õ¥»¥Ã¥ÈÃͤǼ±Ê̤¹¤ë¤¿¤á¤Ë»È¤ï¤ì¤Þ¤¹
+ ¡£TID ¤Ï¥í¥¦¤¬½¤Àµ¤µ¤ì¤¿¤êºÆ¥í¡¼¥É¤µ¤ì¤ë¤ÈÊѤï¤ê¤Þ¤¹¡£¤½¤ì¤é¤Î TID
+ ¤Ï¡¢ÊªÍý¥í¥¦¤ò»Ø¤¹¤¿¤á¤Ë¥¤¥ó¥Ç¥Ã¥¯¥¹µºÜ¤Ç»È¤ï¤ì¤Þ¤¹¡£
+
+ 4.17) PostgreSQL ¤Ç»È¤ï¤ì¤ë¤¤¤¯¤Ä¤«¤ÎÍѸì¤Î°ÕÌ£¤Ï²¿¤Ç¤¹¤«¡©
+
+ ¤¤¤¯¤Ä¤«¤Î¥½¡¼¥¹¥³¡¼¥É¤ä¸Å¤¤Ê¸½ñ¤ÎÃæ¤Ë¤Ï¡¢¤½¤ì¤¾¤ÎÀìÌçʬÌî¤ÎÃæ¤Ç¤â¤Ã¤È
+ °ìÈÌŪ¤Ë»È¤ï¤ì¤ëÀìÌçÍѸ줬»È¤ï¤ì¤Æ¤¤¤Þ¤¹¡£
+ * ¥Æ¡¼¥Ö¥ë(table)¡¢´Ø·¸(relation)¡¢¥¯¥é¥¹(class)
+ * ¥í¥¦(row)¡¢¥ì¥³¡¼¥É(record)¡¢¥¿¥Ã¥×¥ë(tuple)
+ * ¥«¥é¥à(column)¡¢¥Õ¥£¡¼¥ë¥É(field)¡¢Â°À(attribute)
+ * ¼èÆÀ(retrieve)¡¢ÁªÂò(select)
+ * ÃÖ´¹(replace)¡¢¹¹¿·(update)
+ * ÄɲÃ(append)¡¢ÁÞÆþ(insert)
+ * OID, Ï¢ÈÖ(serial value)
+ * ¥Ý¡¼¥¿¥ë(portal), ¥«¡¼¥½¥ë(cursor)
+ * ÎΰèÊÑ¿ô(range variable)¡¢¥Æ¡¼¥Ö¥ë̾(table
+ name)¡¢¥Æ¡¼¥Ö¥ëÊÌ̾(table alias)
+
+ °ìÈÌŪ¤Ê¥Ç¡¼¥¿¥Ù¡¼¥¹ÍѸì¤Î¥ê¥¹¥È¤Ï¡§http://hea-www.harvard.edu/MST/sim
+ ul/software/docs/pkgs/pgsql/glossary/glossary.html ¤Ç¸«¤Ä¤±¤é¤ì¤Þ¤¹¡£
+
+ 4.18) ¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸ "ERROR: Memory exhausted in
+ AllocSetAlloc()"¤¬½Ð¤ë¤Î¤Ï¤Ê¤¼¤Ç¤¹¤«¡©
+
+ ¤ª¤½¤é¤¯¡¢¥·¥¹¥Æ¥à¤Î²¾ÁÛ¥á¥â¥ê¡¼¤òÁ´¤Æ»È¤¤²Ì¤¿¤·¤Æ¤·¤Þ¤Ã¤Æ¤¤¤ë²ÄǽÀ
+ ¤¬¤¢¤ë¤«¡¢¥«¡¼¥Í¥ë¤¬¤¢¤ë¥ê¥½¡¼¥¹¤Ë¤Ä¤¤¤Æ¤â¤ÄÀ©¸ÂÃͤ¬Ä㤹¤®¤ë²ÄǽÀ
+ ¤¬¤¢¤ê¤Þ¤¹¡£ postmaster ¤ò»Ïư¤¹¤ëÁ°¤Ë¤³¤ì¤ò»î¤·¤Æ¤ß¤Æ²¼¤µ¤¤¡§
ulimit -d 262144
limit datasize 256m
-¥·¥§¥ë¤Ë¤è¤Ã¤Æ¡¢¤É¤Á¤é¤«¤Ò¤È¤Ä¤¬À®¸ù¤¹¤ë¤Ç¤·¤ç¤¦¤¬¡¢¤³¤ì¤Ï¥×¥í¥»¥¹¤Î¥Ç¡¼¥¿¥»¥°
-¥á¥ó¥ÈÀ©¸Â¤ò¤è¤ê¹â¤¯ÀßÄꤷ¡¢¤¿¤Ö¤óÌ䤤¹ç¤ï¤»¤¬´°·ë¤¹¤ë¤è¤¦¤Ë¤Ê¤ë¤Ç¤·¤ç¤¦¡£¤³¤Î
-¥³¥Þ¥ó¥É¤Ï¸½¹Ô¤Î¥×¥í¥»¥¹¤È¡¢¤³¤Î¥³¥Þ¥ó¥É¤òÁö¤é¤»¤¿¸å¤Ëºî¤é¤ì¤ëÁ´¤Æ¤Î¥µ¥Ö¥×¥í¥»
-¥¹¤Ë¤Ä¤¤¤ÆÅ¬ÍѤµ¤ì¤Þ¤¹¡£¥Ð¥Ã¥¯¥¨¥ó¥É¤¬¤È¤Æ¤â¿¤¯¤Î¥Ç¡¼¥¿¤òÊÖ¤¹¤¿¤á¤ËSQL ¥¯¥é¥¤
-¥¢¥ó¥È¤ÇÌäÂ꤬³¤¤¤Æ¤¤¤ë¤Î¤Ç¤¢¤ì¤Ð¡¢¥¯¥é¥¤¥¢¥ó¥È¤ò³«»Ï¤¹¤ëÁ°¤Ë¤³¤ì¤ò»î¤·¤Æ¤ß¤Æ
-¤¯¤À¤µ¤¤¡£
-
-4.19) ¤É¤Î¥Ð¡¼¥¸¥ç¥ó¤Î PostgreSQL ¤òÁö¤é¤»¤Æ¤¤¤ë¤«¤òÄ´¤Ù¤ë¤Ë¤Ï¤É¤¦¤·¤Þ¤¹¤«¡©
-
-psql ¤«¤é SELECT version(); ¤ò¥¿¥¤¥×¤·¤Þ¤¹¡£
-
-4.20) ¥é¡¼¥¸¡¦¥ª¥Ö¥¸¥§¥¯¥È¤ÎÁàºî¤Çinvalid large obj descriptor ¤ò¼õ¤±¼è¤ê¤Þ¤·¤¿
-¡£¤Ê¤¼¤Ç¤·¤ç¤¦¤«¡©
-
-¥é¡¼¥¸¡¦¥ª¥Ö¥¸¥§¥¯¥ÈÁàºî¤ò¤¹¤ë¤È¤¤Ï¡¢Á°¸å¤ËBEGIN WORK¤ÈCOMMIT¤òÉÕ¤±¤ëɬÍפ¬¤¢
-¤ê¤Þ¤¹¡£¤¹¤Ê¤ï¤Á¡¢lo_open ... lo_close¤ò¤Ï¤µ¤ß¹þ¤ß¤Þ¤¹¡£
-
-¸½ºß¤Ï¡¢PostgreSQL¤Î¥È¥é¥ó¥¶¥¯¥·¥ç¥ó¤Î¥³¥ß¥Ã¥È»þ¤Ë¥é¡¼¥¸¡¦¥ª¥Ö¥¸¥§¥¯¥È¡¦¥Ï¥ó¥É
-¥ë¤òÊĤ¸¤ë¤³¤È¤Ë¤è¤ê¡¢lo_open¥³¥Þ¥ó¥É¤¬´°Î»¤·¤¿Ä¾¸å¤Ë¶¯À©Åª¤Ë¥ë¡¼¥ë¤ò¼Â¹Ô¤·¤Þ¤¹
-¡£¤³¤Î¤¿¤á¡¢ºÇ½é¤Ë¥Ï¥ó¥É¥ë¤ËÂФ·¤Æ²¿¤«¤ò¤·¤è¤¦¤È¤¹¤ë¤È¡¢invalid large obj
-descriptor(¥é¡¼¥¸¡¦¥ª¥Ö¥¸¥§¥¯¥È¤Îµ½Ò»Ò¤¬ÉÔÀµ)¤È¤Ê¤ê¤Þ¤¹¡£¤½¤ì¤Ç¡¢¤â¤·¡¢¥È¥é¥ó
-¥¶¥¯¥·¥ç¥ó¤ò»È¤¦¤Î¤ò˺¤ì¤ë¤È¡¢¡Ê¾¯¤Ê¤¯¤È¤â¤Û¤È¤ó¤É¤Î»þ´Ö¡ËƯ¤¤¤Æ¤¤¤¿¥³¡¼¥É¤¬¥¨
-¥é¡¼¥á¥Ã¥»¡¼¥¸¤ò½Ð¤¹¤Î¤Ç¤¹¡£
-
-¤â¤·¡¢ODBC¤Î¤è¤¦¤Ê¥¯¥é¥¤¥¢¥ó¥È¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹¤ò¤ª»È¤¤¤Ê¤é¡¢auto-commit off¤òÀß
-Äꤹ¤ëɬÍפ¬¤¢¤ë¤«¤â¤·¤ì¤Þ¤»¤ó¡£
-
-4.21) ¸½ºß¤Î»þ¹ï¤¬¥Ç¥Õ¥©¥ë¥È¤È¤Ê¤ë¤è¤¦¤Ê¥«¥é¥à¤Ï¤É¤Î¤è¤¦¤Ë¤Ä¤¯¤ê¤Þ¤¹¤«¡©
-
-CURRENT_TIMESTAMP¤ò»È¤¤¤Þ¤¹:
-
+ ¥·¥§¥ë¤Ë¤è¤Ã¤Æ¡¢¤É¤Á¤é¤«¤Ò¤È¤Ä¤¬À®¸ù¤¹¤ë¤Ç¤·¤ç¤¦¤¬¡¢¤³¤ì¤Ï¥×¥í¥»¥¹¤Î¥Ç
+ ¡¼¥¿¥»¥°¥á¥ó¥ÈÀ©¸Â¤ò¤è¤ê¹â¤¯ÀßÄꤷ¡¢¤¿¤Ö¤óÌ䤤¹ç¤ï¤»¤¬´°·ë¤¹¤ë¤è¤¦¤Ë¤Ê
+ ¤ë¤Ç¤·¤ç¤¦¡£¤³¤Î¥³¥Þ¥ó¥É¤Ï¸½¹Ô¤Î¥×¥í¥»¥¹¤È¡¢¤³¤Î¥³¥Þ¥ó¥É¤òÁö¤é¤»¤¿¸å¤Ë
+ ºî¤é¤ì¤ëÁ´¤Æ¤Î¥µ¥Ö¥×¥í¥»¥¹¤Ë¤Ä¤¤¤ÆÅ¬ÍѤµ¤ì¤Þ¤¹¡£¥Ð¥Ã¥¯¥¨¥ó¥É¤¬¤È¤Æ¤â¿
+ ¤¯¤Î¥Ç¡¼¥¿¤òÊÖ¤¹¤¿¤á¤ËSQL
+ ¥¯¥é¥¤¥¢¥ó¥È¤ÇÌäÂ꤬³¤¤¤Æ¤¤¤ë¤Î¤Ç¤¢¤ì¤Ð¡¢¥¯¥é¥¤¥¢¥ó¥È¤ò³«»Ï¤¹¤ëÁ°¤Ë¤³
+ ¤ì¤ò»î¤·¤Æ¤ß¤Æ¤¯¤À¤µ¤¤¡£
+
+ 4.19) ¤É¤Î¥Ð¡¼¥¸¥ç¥ó¤Î PostgreSQL
+ ¤òÁö¤é¤»¤Æ¤¤¤ë¤«¤òÄ´¤Ù¤ë¤Ë¤Ï¤É¤¦¤·¤Þ¤¹¤«¡©
+
+ psql ¤«¤é SELECT version(); ¤ò¥¿¥¤¥×¤·¤Þ¤¹¡£
+
+ 4.20) ¥é¡¼¥¸¡¦¥ª¥Ö¥¸¥§¥¯¥È¤ÎÁàºî¤Çinvalid large obj descriptor
+ ¤ò¼õ¤±¼è¤ê¤Þ¤·¤¿¡£¤Ê¤¼¤Ç¤·¤ç¤¦¤«¡©
+
+ ¥é¡¼¥¸¡¦¥ª¥Ö¥¸¥§¥¯¥ÈÁàºî¤ò¤¹¤ë¤È¤¤Ï¡¢Á°¸å¤ËBEGIN
+ WORK¤ÈCOMMIT¤òÉÕ¤±¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£¤¹¤Ê¤ï¤Á¡¢lo_open ...
+ lo_close¤ò¤Ï¤µ¤ß¹þ¤ß¤Þ¤¹¡£
+
+ ¸½ºß¤Ï¡¢PostgreSQL¤Î¥È¥é¥ó¥¶¥¯¥·¥ç¥ó¤Î¥³¥ß¥Ã¥È»þ¤Ë¥é¡¼¥¸¡¦¥ª¥Ö¥¸¥§¥¯¥È
+ ¡¦¥Ï¥ó¥É¥ë¤òÊĤ¸¤ë¤³¤È¤Ë¤è¤ê¡¢lo_open¥³¥Þ¥ó¥É¤¬´°Î»¤·¤¿Ä¾¸å¤Ë¶¯À©Åª¤Ë¥
+ 롼¥ë¤ò¼Â¹Ô¤·¤Þ¤¹¡£¤³¤Î¤¿¤á¡¢ºÇ½é¤Ë¥Ï¥ó¥É¥ë¤ËÂФ·¤Æ²¿¤«¤ò¤·¤è¤¦¤È¤¹¤ë¤
+ È¡¢invalid large obj descriptor(¥é¡¼¥¸¡¦¥ª¥Ö¥¸¥§¥¯¥È¤Îµ
+ ½Ò»Ò¤¬ÉÔÀµ)¤È¤Ê¤ê¤Þ¤¹¡£¤½¤ì¤Ç¡¢¤â¤·¡¢¥È¥é¥ó¥¶¥¯¥·¥ç¥ó¤ò»È¤¦¤Î¤ò˺¤ì¤ë¤
+ È¡¢¡Ê¾¯¤Ê¤¯¤È¤â¤Û¤È¤ó¤É¤Î»þ´Ö¡ËƯ¤¤¤Æ¤¤¤¿¥³¡¼¥É¤¬¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤ò½Ð¤
+ ¹¤Î¤Ç¤¹¡£
+
+ ¤â¤·¡¢ODBC¤Î¤è¤¦¤Ê¥¯¥é¥¤¥¢¥ó¥È¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹¤ò¤ª»È¤¤¤Ê¤é¡¢auto-commi
+ t off¤òÀßÄꤹ¤ëɬÍפ¬¤¢¤ë¤«¤â¤·¤ì¤Þ¤»¤ó¡£
+
+ 4.21) ¸½ºß¤Î»þ¹ï¤¬¥Ç¥Õ¥©¥ë¥È¤È¤Ê¤ë¤è¤¦¤Ê¥«¥é¥à¤Ï¤É¤Î¤è¤¦¤Ë¤Ä¤¯¤ê¤Þ¤¹¤«¡©
+
+ CURRENT_TIMESTAMP¤ò»È¤¤¤Þ¤¹:
CREATE TABLE test (x int, modtime timestamp DEFAULT CURRENT_TIMESTAMP );
-4.22) ¤Ê¤¼¡¢IN¤ò»È¤¦ÉûÌ䤤¹ç¤ï¤»¤¬¤È¤Æ¤âÃÙ¤¤¤Î¤Ç¤¹¤«¡©
-
-7.4 ¤è¤êÁ°¤Î¥Ð¡¼¥¸¥ç¥ó¤Ç¤Ï¡¢ÉûÌ䤤¹ç¤ï¤»¤Ï¡¢ÉûÌ䤤¹ç¤ï¤»¤Î·ë²Ì¤ò³°ÉôÌ䤤¹ç¤ï¤»
-¤Î³Æ¥í¥¦¤Ë¤Ä¤¤¤Æ½ç¼¡Áöºº¤¹¤ë¤³¤È¤Ë¤è¤Ã¤Æ¡¢³°Éô¤ÎÌ䤤¹ç¤ï¤»¤Ë·ë¹ç¤µ¤»¤é¤ì¤ë¡£Éû
-Ì䤤¹ç¤ï¤»¤¬¤ï¤º¤«¤Ê¥í¥¦¤·¤«ÊÖ¤µ¤º¡¢³°ÉôÌ䤤¹ç¤ï¤»¤¬Âô»³¤Î¥í¥¦¤òÊÖ¤¹¾ì¹ç¤Ï¡¢IN
-¤¬ºÇ¤âÁᤤ¤Ç¤¹¡£Â¾¤ÎÌ䤤¹ç¤ï¤»¤ò¹â®²½¤¹¤ë¤Ë¤Ï¡¢IN¤òEXISTS¤ËÃÖ´¹¤·¤Þ¤¹:
-
+ 4.22) ¤Ê¤¼¡¢IN¤ò»È¤¦ÉûÌ䤤¹ç¤ï¤»¤¬¤È¤Æ¤âÃÙ¤¤¤Î¤Ç¤¹¤«¡©
+
+ 7.4
+ ¤è¤êÁ°¤Î¥Ð¡¼¥¸¥ç¥ó¤Ç¤Ï¡¢ÉûÌ䤤¹ç¤ï¤»¤Ï¡¢ÉûÌ䤤¹ç¤ï¤»¤Î·ë²Ì¤ò³°ÉôÌ䤤¹ç
+ ¤ï¤»¤Î³Æ¥í¥¦¤Ë¤Ä¤¤¤Æ½ç¼¡Áöºº¤¹¤ë¤³¤È¤Ë¤è¤Ã¤Æ¡¢³°Éô¤ÎÌ䤤¹ç¤ï¤»¤Ë·ë¹ç¤µ
+ ¤»¤é¤ì¤ë¡£
+ ÉûÌ䤤¹ç¤ï¤»¤¬¤ï¤º¤«¤Ê¥í¥¦¤·¤«ÊÖ¤µ¤º¡¢³°ÉôÌ䤤¹ç¤ï¤»¤¬Âô»³¤Î¥í¥¦¤òÊÖ¤¹
+ ¾ì¹ç¤Ï¡¢IN¤¬ºÇ¤âÁᤤ¤Ç¤¹¡£Â¾¤ÎÌ䤤¹ç¤ï¤»¤ò¹â®²½¤¹¤ë¤Ë¤Ï¡¢IN¤òEXISTS¤Ë
+ ÃÖ´¹¤·¤Þ¤¹:
SELECT *
FROM tab
WHERE col IN (SELECT subcol FROM subtab)
-¤ò¡¢ÃÖ¤´¹¤¨¤Æ¡§
-
+ ¤ò¡¢ÃÖ¤´¹¤¨¤Æ¡§
SELECT *
FROM tab
WHERE EXISTS (SELECT subcol FROM subtab WHERE subcol = col)
-¤È¤·¤Þ¤¹¡£¤³¤ì¤¬¼ê¤Ã¼è¤êÁᤤ¤Ç¤¹¤¬¡¢subcol¤Ïº÷°úÉÕ¤¥«¥é¥à¤Ç¤¢¤ë¤Ù¤¤Ç¤¹¡£
-
-¥Ð¡¼¥¸¥ç¥ó7.4°Ê¹ß¤Ç¤Ï¡¢IN¤Ï¡¢Ä̾ï¤ÎÌ䤤¹ç¤ï¤»¤ÈƱÍͤÎÀöÎý¤µ¤ì¤¿¥¸¥ç¥¤¥ó¤Îµ»½Ñ¤ò
-¼ÂºÝ¤Ë»È¤¤¡¢EXISTS¤ò»È¤¦¤³¤È¤ò¹¥¤ß¤Þ¤¹¡£
-
-4.23) ³°Éô·ë¹ç(outer join)¤Ï¤É¤Î¤è¤¦¤Ë¼Â¸½¤·¤Þ¤¹¤«?
-
-PostgreSQL ¤Ï SQL ɸ½à¹½Ê¸¤ò»È¤¦³°Éô·ë¹ç(¥¢¥¦¥¿¡¼¥¸¥ç¥¤¥ó)¤ò¥µ¥Ý¡¼¥È¤·¤Þ¤¹¡£¤³
-¤³¤Ë 2¤Ä¤ÎÎãÂ꤬¤¢¤ê¤Þ¤¹¡£
-
+ ¤È¤·¤Þ¤¹¡£ ¤³¤ì¤¬¼ê¤Ã¼è¤êÁᤤ¤Ç¤¹¤¬¡¢subcol¤Ïº÷°úÉÕ¤¥«¥é¥à¤Ç¤¢¤ë¤Ù¤
+ ¤Ç¤¹¡£
+
+ ¥Ð¡¼¥¸¥ç¥ó7.4°Ê¹ß¤Ç¤Ï¡¢IN¤Ï¡¢Ä̾ï¤ÎÌ䤤¹ç¤ï¤»¤ÈƱÍͤÎÀöÎý¤µ¤ì¤¿¥¸¥ç¥¤¥
+ ó¤Îµ»½Ñ¤ò¼ÂºÝ¤Ë»È¤¤¡¢EXISTS¤ò»È¤¦¤³¤È¤ò¹¥¤ß¤Þ¤¹¡£
+
+ 4.23) ³°Éô·ë¹ç(outer join)¤Ï¤É¤Î¤è¤¦¤Ë¼Â¸½¤·¤Þ¤¹¤«?
+
+ PostgreSQL ¤Ï SQL
+ ɸ½à¹½Ê¸¤ò»È¤¦³°Éô·ë¹ç(¥¢¥¦¥¿¡¼¥¸¥ç¥¤¥ó)¤ò¥µ¥Ý¡¼¥È¤·¤Þ¤¹¡£¤³¤³¤Ë
+ 2¤Ä¤ÎÎãÂ꤬¤¢¤ê¤Þ¤¹¡£
SELECT *
FROM t1 LEFT OUTER JOIN t2 ON (t1.col = t2.col);
-¤¢¤ë¤¤¤Ï
-
+ ¤¢¤ë¤¤¤Ï
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·ë¹ç¤È¸Æ¤Ð¤ì¤Þ¤¹¡£°ÊÁ°¤Î¥ê¥ê¡¼¥¹
-¤Ç¤Ï³°Éô·ë¹ç(outer join)¤òUNION ¤È NOT IN ¤ò»È¤Ã¤Æ¥·¥ß¥å¥ì¡¼¥È¤Ç¤¤Þ¤¹¡£¤¿¤È¤¨
-¤Ð¡¢tab1 ¤È tab2 ¤ò·ë¹ç¤¹¤ë¤È¤¤Ï¡¢¼¡¤ÎÌ䤤¹ç¤ï¤»¤ÇÆó¤Ä¤Î¥Æ¡¼¥Ö¥ë¤ò³°Éô·ë¹ç¤·¤Þ
-¤¹¡£
-
+ ¤³¤ì¤é¤Î¾ÝħŪ¤ÊÌ䤤¹ç¤ï¤»¤Ç¤Ï t1.col ¤ò t2.col ¤È·ë¹ç¤·¤Æ¡¢t1
+ ¤Î·ë¹ç¤µ¤ì¤Ê¤«¤Ã¤¿¥í¥¦(t2 ¤È°ìÃפ·¤Ê¤«¤Ã¤¿¥í¥¦)¤âÊÖ¤·¤Æ¤¤¤Þ¤¹¡£RIGHT
+ ·ë¹ç¤Ï t2 ¤Î·ë¹ç¤µ¤ì¤Ê¤«¤Ã¤¿¥í¥¦¤ò²Ã¤¨¤ë¤Ç¤·¤ç¤¦¡£FULL
+ ·ë¹ç¤Ï¡¢°ìÃפ·¤¿¥í¥¦¤Ë t1 ¤È t2
+ ¤«¤é¤Ï·ë¹ç¤µ¤ì¤Ê¤«¤Ã¤¿¥í¥¦¤òÊÖ¤¹¤Ç¤·¤ç¤¦¡£OUTER
+ ¤È¤¤¤¦¸ÀÍդϥª¥×¥·¥ç¥ó¤Ç LEFT, RIGHT, ¤Þ¤¿¤Ï FULL
+ ¤Ê¤É¤Î·ë¹ç¤ò²¾Äꤵ¤ì¤Æ¤¤¤Þ¤¹¡£Ä̾·ë¹ç¤ÏINNER·ë¹ç¤È¸Æ¤Ð¤ì¤Þ¤¹¡£
+
+ °ÊÁ°¤Î¥ê¥ê¡¼¥¹¤Ç¤Ï³°Éô·ë¹ç(outer join)¤òUNION ¤È NOT IN
+ ¤ò»È¤Ã¤Æ¥·¥ß¥å¥ì¡¼¥È¤Ç¤¤Þ¤¹¡£ ¤¿¤È¤¨¤Ð¡¢tab1 ¤È tab2 ¤ò·ë¹ç¤¹¤ë¤È¤
+ ¤Ï¡¢¼¡¤ÎÌ䤤¹ç¤ï¤»¤ÇÆó¤Ä¤Î¥Æ¡¼¥Ö¥ë¤ò³°Éô·ë¹ç¤·¤Þ¤¹¡£
SELECT tab1.col1, tab2.col2
FROM tab1, tab2
WHERE tab1.col1 = tab2.col1
WHERE tab1.col1 NOT IN (SELECT tab2.col1 FROM tab2)
ORDER BY col1
-4.24) Ê£¿ô¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¤ò»È¤¦Ì䤤¹ç¤ï¤»¤Ï¤É¤Î¤è¤¦¤Ë¤¹¤ì¤Ð¤Ç¤¤Þ¤¹¤«¡©
-
-¸½¹Ô¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹°Ê³°¤Ø¤ÎÌ䤤¹ç¤ï¤»ÊýË¡¤Ï¤¢¤ê¤Þ¤»¤ó¡£¤È¤¤¤¦¤Î¤âPostgreSQL¤¬¥Ç
-¡¼¥¿¥Ù¡¼¥¹»ÅÍͤΥ·¥¹¥Æ¥à¥«¥¿¥í¥°¤òÆÉ¤ß¹þ¤à¤¿¤á¤Ç¡¢¤½¤³¤Ë¤Ï¡¢¤¿¤È¤¨¤½¤Î¤Õ¤ê¤ò¤¹
-¤ë¤À¤±¤Ë¤·¤í¡¢¥Ç¡¼¥¿¥Ù¡¼¥¹¤ò±Û¤¨¤ÆÌ䤤¹ç¤ï¤»¤ò¤¹¤ë¤¹¤Ù¤¬¤¢¤ê¤Þ¤»¤ó¡£
-
-contrib/dblink ¤Ï¥Ç¡¼¥¿¥Ù¡¼¥¹´Ö(cross-database)¤ÎÌ䤤¹ç¤ï¤»¤ò´Ø¿ô¸Æ½Ð¤·¤Ë¤è¤êµö
-¤·¤Þ¤¹¡£¤â¤Á¤í¤ó¡¢¥¯¥é¥¤¥¢¥ó¥È¤ÏƱ»þ¤ËÀܳ¤òÊ̤Υǡ¼¥¿¥Ù¡¼¥¹¤Ø¤âÄ¥¤é¤Ê¤¯¤Æ¤Ï¤Ê
-¤é¤º¡¢·ë²Ì¤ò¥¯¥é¥¤¥¢¥ó¥È¦¤Ç¥Þ¡¼¥¸¤·¤Ê¤¯¤Æ¤Ï¤Ê¤ê¤Þ¤»¤ó¡£
-
-4.25) ´Ø¿ô¤ÇÊ£¿ô¤Î¥í¥¦¤Þ¤¿¤Ï¥«¥é¥à¤òÊÖ¤¹¤Ë¤Ï¤É¤¦¤·¤Þ¤¹¤«¡©
-
-7.3¤Ç¤Ï´Ø¿ô¤«¤é¡¢Ê£¿ô¤Î¥í¥¦¤äÊ£¿ô¥«¥é¥à¤ò´Êñ¤ËÊÖ¤»¤Þ¤¹¡£ http://
-techdocs.postgresql.org/guides/SetReturningFunctions¡£
-
-4.26)¤Ê¤¼¡¢PL/PgSQL ´Ø¿ô¤ÎÃæ¤«¤é°ì»þ¥Æ¡¼¥Ö¥ë¤ò³Î¼Â¤Ë create/drop ¤¹¤ë¤³¤È¤¬¤Ç¤
-¤Ê¤¤¤Î¤Ç¤·¤ç¤¦¤«¡©
-
-PL/PgSQL ¤Ï´Ø¿ô¤ÎÆâÍÆ¤ò¥¥ã¥Ã¥·¥å¤·¡¢¤½¤ÎÉÔ¹¬¤ÊÉûºîÍѤΤ¿¤á¡¢¤â¤· PL/PgSQL ´Ø¿ô
-¤¬°ì»þ¥Æ¡¼¥Ö¥ë¤Ë¥¢¥¯¥»¥¹¤¹¤ë¤È¡¢¤½¤Î¥Æ¡¼¥Ö¥ë¤Ï¤¢¤È¤Ç¥É¥í¥Ã¥×¤µ¤ìºÆºîÀ®¤µ¤ì¤Þ¤¹
-¤¬¡¢´Ø¿ô¤¬ºÆ¤Ó¸Æ¤Ó½Ð¤µ¤ì¤ë¤È¡¢¥¥ã¥Ã¥·¥å¤µ¤ì¤Æ¤¤¤ë¤½¤Î´Ø¿ô¤ÎÆâÍÆ¤Ï¤Þ¤À¸Å¤¤°ì»þ
-¥Æ¡¼¥Ö¥ë¤ò°ÍÁ³¤È¤·¤Æ»Ø¤·¤Æ¤¤¤ë¤«¤é¤Ç¤¹¡£²ò·èºö¤Ï¡¢ PL/PgSQL ¤ÎÃæ¤Ç EXECUTE ¤ò°ì
-»þ¥Æ¡¼¥Ö¥ë¥¢¥¯¥»¥¹¤Î¤¿¤á¤Ë»È¤¦¤³¤È¤Ç¤¹¡£¤³¤ì¤Ç¡¢Ëè²óÌ䤤¹ç¤ï¤»¤ò¥Ñ¡¼¥¹¤·Ä¾¤¹¤³
-¤È¤Ë¤Ê¤ë¤Ç¤·¤ç¤¦¡£
-
-4.27) ¤É¤Î¤è¤¦¤Ê°Å¹æ²½¥ª¥×¥·¥ç¥ó¤òÍøÍѤǤ¤Þ¤¹¤«?
-
- ¡¦ contrib/pgcrypto¤Ë¤ÏSQLÌ䤤¹ç¤ï¤»¤ÎÃæ¤Ç»È¤¦¤¿¤á¤ÎÂô»³¤Î°Å¹æ²½¤ò´Þ¤ß¤Þ¤¹¡£
- ¡¦ ¥¯¥é¥¤¥¢¥ó¥È¤È¥µ¡¼¥Ð¤È¤Î´Ö¤ÎÅÁÁ÷¤ò°Å¹æ²½¤¹¤ë¤Ë¤Ï¡¢¥µ¡¼¥Ð¤Ç¤Ïpostgresql.conf
- ¤Îssl¥ª¥×¥·¥ç¥ó¤òtrue ¤ËÀßÄꤷ¡¢pg_hba.conf¤Ë¤ÏŬÍѤ¹¤ëhost¤¢¤ë¤¤¤Ïhostssl
- ¤Î¹Ô¤¬¤Ê¤¯¤Æ¤Ï¤Ê¤ê¤Þ¤»¤ó¡£¤½¤·¤Æ¡¢¥¯¥é¥¤¥¢¥ó¥È¤Ç¤Ïsslmode¤òdisable¤Ë¤·¤Æ¤Ï
- ¤Ê¤ê¤Þ¤»¤ó¡£ (PostgreSQL½ãÀµ¤ÎSSLÀܳ¤Î¤«¤ï¤ê¤Ë¡¢stunnel ¤ä ssh ¥µ¡¼¥É¥Ñ¡¼
- ¥Æ¥£À½¤Î°Å¹æ²½Å¾Á÷¤ò»È¤¦¤³¤È¤â²Äǽ¤Ç¤¢¤ë¤³¤È¤âµ¤·¤Æ¤ª¤¤Þ¤¹¡£)
- ¡¦ ¥Ð¡¼¥¸¥ç¥ó7.3 ¤Ç¤Ï¥Ç¡¼¥¿¥Ù¡¼¥¹¥æ¡¼¥¶¤Î¥Ñ¥¹¥ï¡¼¥É¤ÏÊݸ¤µ¤ì¤ë»þ¤Ë¼«Æ°Åª¤Ë°Å
- ¹æ²½¤µ¤ì¤Þ¤¹¡£¤½¤ì¤è¤êÁ°¤Î¥Ð¡¼¥¸¥ç¥ó¤Ç¤Ïpostgresql.confÃæ¤Ç
- PASSWORD_ENCRYPTION¤ò͸ú¤Ë¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£
- ¡¦ ¥µ¡¼¥Ð¡¼¤òÁö¤é¤»¤ë¤Î¤Ë°Å¹æ²½¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ò»È¤¦¤³¤È¤â¤Ç¤¤Þ¤¹¡£
-
+ 4.24) Ê£¿ô¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¤ò»È¤¦Ì䤤¹ç¤ï¤»¤Ï¤É¤Î¤è¤¦¤Ë¤¹¤ì¤Ð¤Ç¤¤Þ¤¹¤«¡©
+
+ ¸½¹Ô¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹°Ê³°¤Ø¤ÎÌ䤤¹ç¤ï¤»ÊýË¡¤Ï¤¢¤ê¤Þ¤»¤ó¡£¤È¤¤¤¦¤Î¤âPostgr
+ eSQL¤¬¥Ç¡¼¥¿¥Ù¡¼¥¹»ÅÍͤΥ·¥¹¥Æ¥à¥«¥¿¥í¥°¤òÆÉ¤ß¹þ¤à¤¿¤á¤Ç¡¢¤½¤³¤Ë¤Ï¡¢¤¿
+ ¤È¤¨¤½¤Î¤Õ¤ê¤ò¤¹¤ë¤À¤±¤Ë¤·¤í¡¢¥Ç¡¼¥¿¥Ù¡¼¥¹¤ò±Û¤¨¤ÆÌ䤤¹ç¤ï¤»¤ò¤¹¤ë¤¹¤Ù
+ ¤¬¤¢¤ê¤Þ¤»¤ó¡£
+
+ contrib/dblink
+ ¤Ï¥Ç¡¼¥¿¥Ù¡¼¥¹´Ö(cross-database)¤ÎÌ䤤¹ç¤ï¤»¤ò´Ø¿ô¸Æ½Ð¤·¤Ë¤è¤êµö¤·¤Þ¤¹
+ ¡£¤â¤Á¤í¤ó¡¢¥¯¥é¥¤¥¢¥ó¥È¤ÏƱ»þ¤ËÀܳ¤òÊ̤Υǡ¼¥¿¥Ù¡¼¥¹¤Ø¤âÄ¥¤é¤Ê¤¯¤Æ¤Ï
+ ¤Ê¤é¤º¡¢·ë²Ì¤ò¥¯¥é¥¤¥¢¥ó¥È¦¤Ç¥Þ¡¼¥¸¤·¤Ê¤¯¤Æ¤Ï¤Ê¤ê¤Þ¤»¤ó¡£
+
+ 4.25) ´Ø¿ô¤ÇÊ£¿ô¤Î¥í¥¦¤Þ¤¿¤Ï¥«¥é¥à¤òÊÖ¤¹¤Ë¤Ï¤É¤¦¤·¤Þ¤¹¤«¡©
+
+ 7.3¤Ç¤Ï´Ø¿ô¤«¤é¡¢Ê£¿ô¤Î¥í¥¦¤äÊ£¿ô¥«¥é¥à¤ò´Êñ¤ËÊÖ¤»¤Þ¤¹¡£
+ http://techdocs.postgresql.org/guides/SetReturningFunctions¡£
+
+ 4.26)¤Ê¤¼¡¢PL/PgSQL ´Ø¿ô¤ÎÃæ¤«¤é°ì»þ¥Æ¡¼¥Ö¥ë¤ò³Î¼Â¤Ë create/drop
+ ¤¹¤ë¤³¤È¤¬¤Ç¤¤Ê¤¤¤Î¤Ç¤·¤ç¤¦¤«¡©
+
+ PL/PgSQL ¤Ï´Ø¿ô¤ÎÆâÍÆ¤ò¥¥ã¥Ã¥·¥å¤·¡¢¤½¤ÎÉÔ¹¬¤ÊÉûºîÍѤΤ¿¤á¡¢¤â¤·
+ PL/PgSQL
+ ´Ø¿ô¤¬°ì»þ¥Æ¡¼¥Ö¥ë¤Ë¥¢¥¯¥»¥¹¤¹¤ë¤È¡¢¤½¤Î¥Æ¡¼¥Ö¥ë¤Ï¤¢¤È¤Ç¥É¥í¥Ã¥×¤µ¤ìºÆ
+ ºîÀ®¤µ¤ì¤Þ¤¹¤¬¡¢´Ø¿ô¤¬ºÆ¤Ó¸Æ¤Ó½Ð¤µ¤ì¤ë¤È¡¢¥
+ ¥ã¥Ã¥·¥å¤µ¤ì¤Æ¤¤¤ë¤½¤Î´Ø¿ô¤ÎÆâÍÆ¤Ï¤Þ¤À¸Å¤¤°ì»þ¥Æ¡¼¥Ö¥ë¤ò°ÍÁ³¤È¤·¤Æ»Ø¤·
+ ¤Æ¤¤¤ë¤«¤é¤Ç¤¹¡£²ò·èºö¤Ï¡¢ PL/PgSQL ¤ÎÃæ¤Ç EXECUTE
+ ¤ò°ì»þ¥Æ¡¼¥Ö¥ë¥¢¥¯¥»¥¹¤Î¤¿¤á¤Ë»È¤¦¤³¤È¤Ç¤¹¡£¤³¤ì¤Ç¡¢Ëè²óÌ䤤¹ç¤ï¤»¤ò¥Ñ
+ ¡¼¥¹¤·Ä¾¤¹¤³¤È¤Ë¤Ê¤ë¤Ç¤·¤ç¤¦¡£
+
+ 4.27) ¤É¤Î¤è¤¦¤Ê°Å¹æ²½¥ª¥×¥·¥ç¥ó¤òÍøÍѤǤ¤Þ¤¹¤«?
+
+ * contrib/pgcrypto¤Ë¤ÏSQLÌ䤤¹ç¤ï¤»¤ÎÃæ¤Ç»È¤¦¤¿¤á¤ÎÂô»³¤Î°Å¹æ²½¤ò´Þ¤
+ ߤޤ¹¡£
+ * ¥¯¥é¥¤¥¢¥ó¥È¤È¥µ¡¼¥Ð¤È¤Î´Ö¤ÎÅÁÁ÷¤ò°Å¹æ²½¤¹¤ë¤Ë¤Ï¡¢¥µ¡¼¥Ð¤Ç¤Ïpostgr
+ esql.conf¤Îssl¥ª¥×¥·¥ç¥ó¤òtrue
+ ¤ËÀßÄꤷ¡¢pg_hba.conf¤Ë¤ÏŬÍѤ¹¤ëhost¤¢¤ë¤¤¤Ïhostssl¤Î¹Ô¤¬¤Ê¤¯¤Æ¤Ï
+ ¤Ê¤ê¤Þ¤»¤ó¡£¤½¤·¤Æ¡¢¥¯¥é¥¤¥¢¥ó¥È¤Ç¤Ïsslmode¤òdisable¤Ë¤·¤Æ¤Ï¤Ê¤ê¤Þ
+ ¤»¤ó¡£ (PostgreSQL½ãÀµ¤ÎSSLÀܳ¤Î¤«¤ï¤ê¤Ë¡¢stunnel ¤ä ssh
+ ¥µ¡¼¥É¥Ñ¡¼¥Æ¥£À½¤Î°Å¹æ²½Å¾Á÷¤ò»È¤¦¤³¤È¤â²Äǽ¤Ç¤¢¤ë¤³¤È¤âµ¤·¤Æ¤ª¤
+ ¤Þ¤¹¡£)
+ * ¥Ð¡¼¥¸¥ç¥ó7.3
+ ¤Ç¤Ï¥Ç¡¼¥¿¥Ù¡¼¥¹¥æ¡¼¥¶¤Î¥Ñ¥¹¥ï¡¼¥É¤ÏÊݸ¤µ¤ì¤ë»þ¤Ë¼«Æ°Åª¤Ë°Å¹æ²½¤µ
+ ¤ì¤Þ¤¹¡£
+ ¤½¤ì¤è¤êÁ°¤Î¥Ð¡¼¥¸¥ç¥ó¤Ç¤Ïpostgresql.confÃæ¤ÇPASSWORD_ENCRYPTION¤ò
+ ͸ú¤Ë¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£
+ * ¥µ¡¼¥Ð¡¼¤òÁö¤é¤»¤ë¤Î¤Ë°Å¹æ²½¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ò»È¤¦¤³¤È¤â¤Ç¤¤Þ¤¹¡£
+
[ÌõÃí
¥ì¥×¥ê¥±¡¼¥·¥ç¥ó´ØÏ¢¤Î¹àÌܤ¬¤Ê¤¯¤Ê¤ê¤Þ¤·¤¿¤¬¡¢ÌõÃí¤Î¤ß»Ä¤·¤Æ¤¢¤ê¤Þ¤¹¡£
- Jan Wieck¤µ¤ó¤Ë¤è¤ë¥«¥¹¥±¡¼¥É²Äǽ¤Ê¥Þ¥¹¥¿¡¼¡¦¥¹¥ì¡¼¥Ö·¿¤Î¥ì¥×¥ê¥±¡¼¥·¥ç¥ó Slony-I
+ Jan Wieck¤µ¤ó¤Ë¤è¤ë¥«¥¹¥±¡¼¥É²Äǽ¤Ê¥Þ¥¹¥¿¡¼¡¦¥¹¥ì¡¼¥Ö·¿¤Î¥ì¥×¥ê¥±¡¼¥·¥ç¥ó Slony-I
http://gborg.postgresql.org/project/slony1/projdisplay.php
ÀаæÃ£Éפµ¤ó¤Ë¤è¤ë¥³¥Í¥¯¥·¥ç¥ó¥×¡¼¥ë ¥µ¡¼¥Ð PGPool
¤Î¼ÂÁõ¤ò¹Ô¤¤¤Þ¤·¤¿¡£
http://www.postgresql.jp/wg/dt/index.html
]
-
-¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬
-
- PostgreSQL¤Î³ÈÄ¥¤Ë¤Ä¤¤¤Æ¤Î¼ÁÌä
-
-5.1) ¼«Ê¬¤Ç½ñ¤¤¤¿¥æ¡¼¥¶ÄêµÁ´Ø¿ô¤ò psql ¤ÎÃæ¤Ç¼Â¹Ô¤¹¤ë¤È¥³¥¢¡¦¥À¥ó¥×¤·¤Æ¤·¤Þ¤¦¤Î
-¤Ï¤Ê¤¼¤Ç¤¹¤«¡©
-
-ÌäÂê¤Ï¿§¡¹¤È¹Í¤¨¤é¤ì¤Þ¤¹¤¬¡¢¤Þ¤ººÇ½é¤Ë¡¢ºîÀ®¤·¤¿¥æ¡¼¥¶ÄêµÁ´Ø¿ô¤òñÆÈ¤Î¥Æ¥¹¥È¥×
-¥í¥°¥é¥à¤Ë¤·¤Æ»î¤·¤Æ¤ß¤Æ²¼¤µ¤¤¡£
-
-5.2) PostgreSQL ÍѤ˽ñ¤¤¤¿¤Á¤ç¤Ã¤ÈÁÇŨ¤Ê¿·¤·¤¤·¿¤ä´Ø¿ô¤òÄ󶡤·¤Æ¥×¥í¥¸¥§¥¯¥È¤Ë
-¹×¸¥¤·¤¿¤¤¤Î¤Ç¤¹¤¬¡©
-
-³§¤µ¤ó¤Î¹Ô¤Ê¤Ã¤¿³ÈÄ¥¤ò¡¢pgsql-hackers ¥á¡¼¥ê¥ó¥°¡¦¥ê¥¹¥È¤ËÁ÷¤Ã¤Æ¤¯¤À¤µ¤¤¡£¤½¤·
-¤Æ¡¢¤æ¤¯¤æ¤¯¤Ï¤½¤¦¤·¤¿³ÈÄ¥¤¬ contrib/ ¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê¤ÎÃæ¤ËÆþ¤ë¤³¤È¤Ë¤Ê¤ë¤Ç¤·
-¤ç¤¦¡£
-
-5.3) ¥¿¥×¥ë¤òÊÖ¤¹ C¸À¸ì¤Î´Ø¿ô¤Ï¤É¤Î¤è¤¦¤Ë½ñ¤¤Þ¤¹¤«¡©
-
-¥Ð¡¼¥¸¥ç¥ó7.3°Ê¹ß¤ÎPostgreSQL¤Ç¤Ï¡¢¥Æ¡¼¥Ö¥ë¤òÊÖ¤¹´Ø¿ô¤ò C, PL/PgSQL¡¢¤½¤·¤Æ SQL
-¤Ë¤Æ´°Á´¤Ë¥µ¥Ý¡¼¥È¤·¤Þ¤¹¡£¾Ü¤·¤¯¤Ï¥×¥í¥°¥é¥Þ¥¬¥¤¥É¤Î¾ðÊó¤ò¸«¤Æ¤¯¤À¤µ¤¤¡£C¤ÇÄêµÁ
-¤µ¤ì¤¿É½¤òÊÖ¤¹´Ø¿ô¤ÎÎãÂ꤬contrib/tablefunc¤ÎÃæ¤Ë¤¢¤ê¤Þ¤¹¡£
-
-5.4) ¥½¡¼¥¹¡¦¥Õ¥¡¥¤¥ë¤òÊѹ¹¤·¤Þ¤·¤¿¡£ºÆ¥³¥ó¥Ñ¥¤¥ë¤·¤Æ¤âÊѲ½¤¬¸«¤é¤ì¤Ê¤¤¤Î¤Ï¤Ê¤¼
-¤Ç¤¹¤«¡©
-
-¤¤¤¯¤Ä¤«¤Î Makefile ¤¬¥¤¥ó¥¯¥ë¡¼¥É¡¦¥Õ¥¡¥¤¥ë¤ËÂФ·¤ÆÅ¬Àڤʰ͸´Ø·¸¤ò»ý¤Ã¤Æ¤¤¤Þ
-¤»¤ó¡£make clean ¤ò¤·¤Æ¤«¤é¤â¤¦°ìÅÙ make ¤ò¹Ô¤Ê¤ï¤Ê¤¯¤Æ¤Ï¤Ê¤ê¤Þ¤»¤ó¡£¤â¤·¡¢GCC
-¤ò¤ª»È¤¤¤Ç¤¢¤ì¤Ð configure ¤Î --enable-depend ¥ª¥×¥·¥ç¥ó¤ò»È¤Ã¤Æ¡¢¥³¥ó¥Ñ¥¤¥é¤Ë
-°Í¸´Ø·¸¤ò¼«Æ°Åª¤ËÄ´¤Ù¤µ¤»¤ë¤³¤È¤â¤Ç¤¤Þ¤¹¡£
-
-¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬
-
+ _________________________________________________________________
+
+ PostgreSQL¤Î³ÈÄ¥¤Ë¤Ä¤¤¤Æ¤Î¼ÁÌä
+
+ 5.1) ¼«Ê¬¤Ç½ñ¤¤¤¿¥æ¡¼¥¶ÄêµÁ´Ø¿ô¤ò psql
+ ¤ÎÃæ¤Ç¼Â¹Ô¤¹¤ë¤È¥³¥¢¡¦¥À¥ó¥×¤·¤Æ¤·¤Þ¤¦¤Î¤Ï¤Ê¤¼¤Ç¤¹¤«¡©
+
+ ÌäÂê¤Ï¿§¡¹¤È¹Í¤¨¤é¤ì¤Þ¤¹¤¬¡¢¤Þ¤ººÇ½é¤Ë¡¢ºîÀ®¤·¤¿¥æ¡¼¥¶ÄêµÁ´Ø¿ô¤òñÆÈ¤Î
+ ¥Æ¥¹¥È¥×¥í¥°¥é¥à¤Ë¤·¤Æ»î¤·¤Æ¤ß¤Æ²¼¤µ¤¤¡£
+
+ 5.2) PostgreSQL
+ ÍѤ˽ñ¤¤¤¿¤Á¤ç¤Ã¤ÈÁÇŨ¤Ê¿·¤·¤¤·¿¤ä´Ø¿ô¤òÄ󶡤·¤Æ¥×¥í¥¸¥§¥¯¥È¤Ë¹×¸¥¤·¤¿¤¤¤Î¤
+ Ǥ¹¤¬¡©
+
+ ³§¤µ¤ó¤Î¹Ô¤Ê¤Ã¤¿³ÈÄ¥¤ò¡¢pgsql-hackers
+ ¥á¡¼¥ê¥ó¥°¡¦¥ê¥¹¥È¤ËÁ÷¤Ã¤Æ¤¯¤À¤µ¤¤¡£¤½¤·¤Æ¡¢¤æ¤¯¤æ¤¯¤Ï¤½¤¦¤·¤¿³ÈÄ¥¤¬
+ contrib/ ¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê¤ÎÃæ¤ËÆþ¤ë¤³¤È¤Ë¤Ê¤ë¤Ç¤·¤ç¤¦¡£
+
+ 5.3) ¥¿¥×¥ë¤òÊÖ¤¹ C¸À¸ì¤Î´Ø¿ô¤Ï¤É¤Î¤è¤¦¤Ë½ñ¤¤Þ¤¹¤«¡©
+
+ ¥Ð¡¼¥¸¥ç¥ó7.3°Ê¹ß¤ÎPostgreSQL¤Ç¤Ï¡¢¥Æ¡¼¥Ö¥ë¤òÊÖ¤¹´Ø¿ô¤ò C,
+ PL/PgSQL¡¢¤½¤·¤Æ SQL
+ ¤Ë¤Æ´°Á´¤Ë¥µ¥Ý¡¼¥È¤·¤Þ¤¹¡£¾Ü¤·¤¯¤Ï¥×¥í¥°¥é¥Þ¥¬¥¤¥É¤Î¾ðÊó¤ò¸«¤Æ¤¯¤À¤µ¤¤
+ ¡£C¤ÇÄêµÁ¤µ¤ì¤¿É½¤òÊÖ¤¹´Ø¿ô¤ÎÎãÂ꤬contrib/tablefunc¤ÎÃæ¤Ë¤¢¤ê¤Þ¤¹¡£
+
+ 5.4)
+ ¥½¡¼¥¹¡¦¥Õ¥¡¥¤¥ë¤òÊѹ¹¤·¤Þ¤·¤¿¡£ºÆ¥³¥ó¥Ñ¥¤¥ë¤·¤Æ¤âÊѲ½¤¬¸«¤é¤ì¤Ê¤¤¤Î¤Ï¤Ê¤¼¤
+ Ǥ¹¤«¡©
+
+ ¤¤¤¯¤Ä¤«¤Î Makefile
+ ¤¬¥¤¥ó¥¯¥ë¡¼¥É¡¦¥Õ¥¡¥¤¥ë¤ËÂФ·¤ÆÅ¬Àڤʰ͸´Ø·¸¤ò»ý¤Ã¤Æ¤¤¤Þ¤»¤ó¡£make
+ clean ¤ò¤·¤Æ¤«¤é¤â¤¦°ìÅÙ make ¤ò¹Ô¤Ê¤ï¤Ê¤¯¤Æ¤Ï¤Ê¤ê¤Þ¤»¤ó¡£¤â¤·¡¢GCC
+ ¤ò¤ª»È¤¤¤Ç¤¢¤ì¤Ð configure ¤Î --enable-depend
+ ¥ª¥×¥·¥ç¥ó¤ò»È¤Ã¤Æ¡¢¥³¥ó¥Ñ¥¤¥é¤Ë°Í¸´Ø·¸¤ò¼«Æ°Åª¤ËÄ´¤Ù¤µ¤»¤ë¤³¤È¤â¤Ç¤
+ ¤Þ¤¹¡£
+ _________________________________________________________________
+
[ÌõÃí¡§
ÆüËܸìÈǤÎÀ½ºî¤Ë¤Ä¤¤¤Æ¤Ï°Ê²¼¤ÎÄ̤ê¤Ç¤¹¡£
ºÇ½ª¹¹¿·Æü: 2005ǯ01·î12Æü
ËÝÌõ¼Ô: ·¬Â¼ ½á (Jun Kuwamura )
- ¤³¤ÎFAQ¤ÎÏÂÌõ¤ÎºîÀ®¤Ë¤¢¤¿¤ê¶¨ÎϤò¤·¤Æ¤¯¤À¤µ¤Ã¤¿Êý¡¹(·É¾Î¤Ïά¤µ¤»¤Æ¤¤¤¿¤À¤¤Þ¤¹):
+ ¤³¤ÎFAQ¤ÎÏÂÌõ¤ÎºîÀ®¤Ë¤¢¤¿¤ê¶¨ÎϤò¤·¤Æ¤¯¤À¤µ¤Ã¤¿Êý¡¹(·É¾Î¤Ïά¤µ¤»¤Æ¤¤¤¿¤À¤¤Þ¤¹):
- ÅÄÃç Ì(Minoru TANAKA )
+ ÅÄÃç Ì(Minoru TANAKA )
Àаæ ãÉ×(Tatsuo ISHII )
óîÆ£ ÃοÍ(Tomohito SAITOH )
ÇϾì È¥(Hajime BABA )
²¬ËÜ °ì¹¬(Kazuyuki OKAMOTO )
¾®¿û ¾¼°ì(Shoichi Kosuge )
»³²¼ µÁÇ·(Yoshiyuki YAMASHITA )
- ¶ ¿¿ÂÀϺ(Sintaro SAKAI )
+ ¶ ¿¿ÂÀϺ(Sintaro SAKAI )
À¸±Û ¾»¸Ê(Masami OGOSHI )
ÀÐÀî ½Ó¹Ô(Toshiyuki ISHIKAWA )
- ËÜÅÄ Ìй(Shigehiro HONDA )
+ ËÜÅÄ Ìй(Shigehiro HONDA )
¤»¤» ¤¸¤å¤ó(Jun SESE )
¿Àë ±Ñ¹§(Hidetaka KAMIYA )
¿û¸¶ ÆØ(Atsushi SUGAWARA
)
°ðÍÕ ¹áÍý(Kaori Inaba )
Àаæ ãÉ×(Tatsuo Ishii )
- ¤ò¤Ï¤¸¤á¡¢¥Ý¥¹¥È¥°¥ì¥¹¤Ë´Ø¤¹¤ëÏÃÂêËÉÙ¤ÊÆüËܸì¥Ý¥¹¥È¥°¥ì¥¹¡¦¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¡¢
-ÏÂÌõ¤Î¤¤Ã¤«¤±¤òºî¤Ã¤Æ¤¯¤ì¤¿ JF(Linux Japanese FAQ Mailing List)¥×¥í¥¸¥§¥¯¥È¡¢FreeBSD ¥É¥¥å¥á¥ó¥Æ¡¼¥·¥ç¥ó¥×¥í¥¸¥§¥¯¥È¡¢
+ ¤ò¤Ï¤¸¤á¡¢¥Ý¥¹¥È¥°¥ì¥¹¤Ë´Ø¤¹¤ëÏÃÂêËÉÙ¤ÊÆüËܸì¥Ý¥¹¥È¥°¥ì¥¹¡¦¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¡¢
+ÏÂÌõ¤Î¤¤Ã¤«¤±¤òºî¤Ã¤Æ¤¯¤ì¤¿ JF(Linux Japanese FAQ Mailing List)¥×¥í¥¸¥§¥¯¥È¡¢FreeBSD ¥É¥¥å¥á¥ó¥Æ¡¼¥·¥ç¥ó¥×¥í¥¸¥§¥¯¥È¡¢
¤½¤Î¾¡¢Ä¾Àܤ¢¤ë¤¤¤Ï´ÖÀÜŪ¤Ë¤«¤«¤ï¤Ã¤Æ¤¤¤ë¤¹¤Ù¤Æ¤Î¥ª¡¼¥×¥ó¥½¡¼¥¹¥³¥ß¥å¥Ë¥Æ¥£¡¼¤Î³§¤µ¤ó¤Ë´¶¼Õ¤·¤Þ¤¹¡£
ÆüËܸìÈǤΤ³¤Îʸ½ñ¤Ï¡¢°Ê²¼¤«¤é¤â¤¿¤É¤ì¤Þ¤¹¡£
¤Ê¤ª¡¢¤³¤ÎÏÂÌõ¤Ë´Ø¤¹¤ë¤´°Õ¸«¤Ï(juk at PostgreSQL.jp)¤Þ¤Ç¤ª´ó¤»²¼¤µ¤¤¡£
]
-
PostgreSQL Data Base Management System
- Portions copyright (c) 1996-2002, PostgreSQL Global Development Group
+ Portions Copyright (c) 1996-2005, PostgreSQL Global Development Group
Portions Copyright (c) 1994-6 Regents of the University of California
Permission to use, copy, modify, and distribute this software and its
DROP COLUMN. We wczesniejszych wersjach mozesz zrobic tak:
BEGIN;
LOCAL TABLE old_table;
- SELECT ... -- wybierz wszystkie kolumny poza ta jedna której chcesz sie po
-zbyc
+ SELECT ... -- wybierz wszystkie kolumny poza ta jedna której chcesz sie pozbyc
INTO TABLE new_table
FROM old_table;
DROP TABLE old_table;
Maksymalny rozmiar dla rzedu? 1.6 TB
Maksymalny rozmiar pola? 1 GB
Maksymalna liczba rzedów w tabeli? nieograniczona
- Maksymalna liczba kolumn w tabeli? 250-1600 w zalezonosci od typów ko
-lumn
+ Maksymalna liczba kolumn w tabeli? 250-1600 w zalezonosci od typów kolumn
Makasymalna liczba indeksów na tabeli? nieograniczona
Oczywiscie "nieograniczony" nie jest prawda tak do konca, istnieja
Strona danych w PostgreSQL zajmuje 8192 bajtów (8 KB), wiec:
8192 bajtów na strone
- --------------------- = 128 rzedów na jedna strone w bazie (zaokraglone w
- dól/)
+ --------------------- = 128 rzedów na jedna strone w bazie (zaokraglone w dól/)
64 bajtów na rzad
100000 rzedów danych
zl/aczen (join). Sekwencyjne przeszukiwanie po którym nastepuje
sortowanie jest zazwyczaj szybsze nie wyszukiwanie za pomoca indeksu
na duzej tabeli.
+
Jakkolwiek LIMIT w pol/aczeniu z ORDER BY czesto bedzie wykorzystywal/
indeksy poniewaz jedynie mal/a czesc z tabeli jest zwracana. W
rzeczywistosci, chociaz MAX() i MIN() nie uzywaja indeksów, mozliwe
Type Nazwa wewnetrzna Uwagi
--------------------------------------------------
-VARCHAR(n) varchar rozmiar okresla maksymalna dl/ugosc, nie ma
-tutaj wypel/niania
-CHAR(n) bpchar wypel/niane pustymi znakami do podanej dl/ug
-osci
+VARCHAR(n) varchar rozmiar okresla maksymalna dl/ugosc, nie matutaj wypel/niania
+CHAR(n) bpchar wypel/niane pustymi znakami do podanej dl/ugosci
TEXT text bez limitu na dl/ugosc l/ancucha
-BYTEA bytea zmiennej dl/ugosci tablica bajtów (null-byte
- safe)
+BYTEA bytea zmiennej dl/ugosci tablica bajtów (null-byte safe)
"char" char 1 znak
Jesli bedziesz przegladac katalogi systemowe lub komunikaty o bl/edach
zadeklarowany rozmiar. Te typy takze podlegaja kompresji lub moga byc
przechowywane out-of-line jako TOAST, wiec faktyczne zuzycie miejsca
na dysku moze byc mniejsze niz oczekiwane.
+
VARCHAR(n) jest najodpowiedniejszy do przechowywania l/ancuchów o
róznej dl/ugosci ale okresla on maksymalna jego dl/ugosc. TEXT jest
najlepszy dla l/ancuchów o dowolnej dl/ugosci, nie przekraczajacej
4.27) Jakie sa mozliwosci replikacji w PostgreSQL?
- Jest kilka opcji aby stosowac replikacje typu master/slave. Ten typ pozwala
- jedynie masterowi na dokonywanie zmian w bazie danych, a slave moze jedynie
- te zmiany odczytywac. Na stronie
- http://gborg.PostgreSQL.org/genpage?replication_research znajduje sie ich
- lista. Replikacja typu multi-master jest w trakcie prac, opis projektu
- znajduje sie pod adresem:
- http://gborg.PostgreSQL.org/project/pgreplication/projdisplay.php.
+ Jest kilka opcji aby stosowac replikacje typu master/slave. Ten typ
+ pozwala jedynie masterowi na dokonywanie zmian w bazie danych, a slave
+ moze jedynie te zmiany odczytywac. Na stronie
+ http://gborg.PostgreSQL.org/genpage?replication_research znajduje sie
+ ich lista. Replikacja typu multi-master jest w trakcie prac, opis
+ projektu znajduje sie pod adresem:
+ http://gborg.PostgreSQL.org/project/pgreplication/projdisplay.php.
+
4.28) Jakie mozliwosci szyfrowania oferuje PostgreSQL?
* contrib/pgcrypto zawiera wiele funkcji za pomoca, których mozemy
5.1) Napisal/em wl/asna funkcje. Kiedy uzyje jej w psql, program zrzuca
pamiec (dump core)?
- Problem moze byc spowodowany przez bardzo wiele rzeczy. Spróbuj najpierw
- przetestowac Twoja funkcje w samodzielnie dzial/ajacym programie.
+ Problem moze byc spowodowany przez bardzo wiele rzeczy. Spróbuj
+ najpierw przetestowac Twoja funkcje w samodzielnie dzial/ajacym
+ programie.
+
5.2) Jak moge dodac/zgl/osic nowe typy czy funkcje do PostgreSQL?
- Wyslij Twoje propozycje na liste mailowa pgsql-hackers, wtedy
- prawdopodobnie Twój kod znajdzie sie w katalogu contrib/.
+ Wyslij Twoje propozycje na liste mailowa pgsql-hackers, wtedy
+ prawdopodobnie Twój kod znajdzie sie w katalogu contrib/.
+
5.3) Jak napisac funkcje C zwracajaca krotke (tuple)?
- W wersjach PostgreSQL od numeru 7.3, funckje zwracajace tabele sa w pelni
- wspierane w C, PL/PgSQL i SQL. Sprawdz w Programmer's Guide aby uzyskac
- wiecej informacji. Przykl/ad funkcji napisanej w C zwracajacej tabele
- zostal/ umieszczony w contrib/tablefunc.
+ W wersjach PostgreSQL od numeru 7.3, funckje zwracajace tabele sa w
+ pelni wspierane w C, PL/PgSQL i SQL. Sprawdz w Programmer's Guide aby
+ uzyskac wiecej informacji. Przykl/ad funkcji napisanej w C zwracajacej
+ tabele zostal/ umieszczony w contrib/tablefunc.
+
5.4) Zmienil/em plik zródl/owy. Dlaczego po rekompilacji nie widac zmiany?
- Pliki Makefiles nie maja dorzuconych odpowiednich zaleznosci dla plików
- nagl/ówkowych (include files). Wykonaj najpierw make clean, a nastepnie
- ponownie make. Jesli uzywasz GCC mozesz uzyc opcji --enable-depend przy
- wykonywaniu configure aby kompilator mógl/ okreslic zaleznosci
- samodzielnie.
+ Pliki Makefiles nie maja dorzuconych odpowiednich zaleznosci dla
+ plików nagl/ówkowych (include files). Wykonaj najpierw make clean, a
+ nastepnie ponownie make. Jesli uzywasz GCC mozesz uzyc opcji
+ --enable-depend przy wykonywaniu configure aby kompilator mógl/
+ okreslic zaleznosci samodzielnie.
Proizvol'noj stroki?
Dlya polucheniya tol'ko neskol'kih strok, esli vy znaete ih
- kolichestvo na moment vypolneniya SELECT ispol'zujte LIMIT.
- Esli est' kakoj-libo indeks, kotoryj sovpadaet s ORDER BY, to
- vozmozhno, chto ves' zapros vypolnen i ne budet. Esli vy ne znaete
- kolichestva neobhodimyh strok na moment vypolneniya SELECT,
- ispol'zujte kursor i FETCH.
+ kolichestvo na moment vypolneniya SELECT ispol'zujte LIMIT. Esli est'
+ kakoj-libo indeks, kotoryj sovpadaet s ORDER BY, to vozmozhno, chto
+ ves' zapros vypolnen i ne budet. Esli vy ne znaete kolichestva
+ neobhodimyh strok na moment vypolneniya SELECT, ispol'zujte kursor i
+ FETCH.
To SELECT a random row, use:
SELECT col
TID ispol'zuetsya dlya identifikacii special'nyh fizicheskih zapisej s
blochnymi i offset znacheniyami. TID izmenyaetsya posle togo kak
- stroki v tablice byli izmeneny ili peregruzheny.
-
- TID ispol'zuetsya indeksnymi zapisyami v kachestve ukazatelya na
- fizicheskie zapisi.
+ stroki v tablice byli izmeneny ili peregruzheny. TID ispol'zuetsya
+ indeksnymi zapisyami v kachestve ukazatelya na fizicheskie zapisi.
4.13) Pochemu ya poluchayu oshibku "ERROR: Memory exhausted in
AllocSetAlloc()"?