From b9de4a26cf1b34f9a9a6c9bdfc8d3878bd075ce1 Mon Sep 17 00:00:00 2001 From: Bruce Momjian Date: Fri, 11 Mar 2005 21:46:54 +0000 Subject: [PATCH] Here's the patch to fix a lot of markup errors in the HTML FAQs. Doesn't change content (at least not supposed to). Magnus Hagander --- doc/FAQ | 5 +- doc/FAQ_DEV | 14 +- doc/FAQ_brazilian | 75 +- doc/FAQ_czech | 2260 +++++++++++++++--------------- doc/FAQ_farsi | 2408 +++++++++++++++++++++----------- doc/FAQ_french | 32 +- doc/FAQ_german | 14 +- doc/FAQ_japanese | 2313 +++++++++++++++--------------- doc/FAQ_polish | 67 +- doc/FAQ_russian | 16 +- doc/FAQ_turkish | 1933 ++++++++++++++----------- doc/src/FAQ/FAQ.html | 24 +- doc/src/FAQ/FAQ_DEV.html | 10 +- doc/src/FAQ/FAQ_MINGW.html | 2 - doc/src/FAQ/FAQ_brazilian.html | 42 +- doc/src/FAQ/FAQ_czech.html | 38 +- doc/src/FAQ/FAQ_french.html | 13 +- doc/src/FAQ/FAQ_german.html | 18 +- doc/src/FAQ/FAQ_japanese.html | 347 ++--- doc/src/FAQ/FAQ_polish.html | 54 +- doc/src/FAQ/FAQ_russian.html | 31 +- doc/src/FAQ/FAQ_turkish.html | 20 +- 22 files changed, 5437 insertions(+), 4299 deletions(-) diff --git a/doc/FAQ b/doc/FAQ index 5b2ac56875..616258ee04 100644 --- a/doc/FAQ +++ b/doc/FAQ @@ -1,7 +1,7 @@ Frequently Asked Questions (FAQ) for PostgreSQL - Last updated: Thu Feb 24 23:18:31 EST 2005 + Last updated: Fri Mar 11 16:42:06 EST 2005 Current maintainer: Bruce Momjian (pgman@candle.pha.pa.us) @@ -819,7 +819,8 @@ 4.19) How do I return multiple rows or columns from a function? It is easy using set-returning functions, - http://techdocs.postgresql.org/guides/SetReturningFunctions. + http://techdocs.postgresql.org/guides/SetReturningFunctions + . 4.20) Why do I get "relation with OID ##### does not exist" errors when accessing temporary tables in PL/PgSQL functions? diff --git a/doc/FAQ_DEV b/doc/FAQ_DEV index 688cf2819d..f3a9835cff 100644 --- a/doc/FAQ_DEV +++ b/doc/FAQ_DEV @@ -1,7 +1,7 @@ Developer's Frequently Asked Questions (FAQ) for PostgreSQL - Last updated: Fri Mar 11 08:09:23 EST 2005 + Last updated: Fri Mar 11 16:43:05 EST 2005 Current maintainer: Bruce Momjian (pgman@candle.pha.pa.us) @@ -9,8 +9,8 @@ http://www.postgresql.org/files/documentation/faqs/FAQ_DEV.html. _________________________________________________________________ - General Questions - +General Questions + 1.1) How do I get involved in PostgreSQL development? 1.2) What development environment is required to develop code? 1.3) What areas need work? @@ -31,8 +31,8 @@ 1.17) Where can I get technical assistance? 1.18) How do I get involved in PostgreSQL web site development? - Technical Questions - +Technical Questions + 2.1) How do I efficiently access information in tables from the backend code? 2.2) Why are table, column, type, function, view names sometimes @@ -564,8 +564,8 @@ contribute to that. A temporary todo list for current website development issues is available at http://xzilla.postgresql.org/todo - Technical Questions - +Technical Questions + 2.1) How do I efficiently access information in tables from the backend code? You first need to find the tuples(rows) you are interested in. There diff --git a/doc/FAQ_brazilian b/doc/FAQ_brazilian index a44ed10c20..45297e3059 100644 --- a/doc/FAQ_brazilian +++ b/doc/FAQ_brazilian @@ -603,22 +603,17 @@ Se o postmaster está sendo executado, inicie o psql em uma janela, e entăo encontre o PID do processo postgres utilizado pelo psql - utilizando -SELECT pg_backend_pid() - - . Utilize um depurador para anexar ao PID do postgres. Vocę pode - definir pontos de parada (breakpoints) no depurador e digitar - consultas no psql. Se vocę está depurando a inicializaçăo do postgres, - vocę pode definir PGOPTIONS="-W n" e entăo iniciar o psql. Isto - retardará a inicializaçăo por n segundos entăo vocę pode anexar o - depurador ao processo, definir quaisquer pontos de parada e continuar - pela sequęncia de inicializaçăo. + utilizando SELECT pg_backend_pid(). Utilize um depurador para anexar + ao PID do postgres. Vocę pode definir pontos de parada (breakpoints) + no depurador e digitar consultas no psql. Se vocę está depurando a + inicializaçăo do postgres, vocę pode definir PGOPTIONS="-W n" e entăo + iniciar o psql. Isto retardará a inicializaçăo por n segundos entăo + vocę pode anexar o depurador ao processo, definir quaisquer pontos de + parada e continuar pela sequęncia de inicializaçăo. - Há várias variáveis de configuraçăo do servidor -log_* - - que habilitam a exibiçăo de estatísticas que podem ser muito úteis - para depuraçăo e medidas de performance. + Há várias variáveis de configuraçăo do servidor log_* que habilitam a + exibiçăo de estatísticas que podem ser muito úteis para depuraçăo e + medidas de performance. Vocę também pode compilar com perfil para ver que funçőes estăo demandando tempo de execuçăo. Os arquivo de perfil do núcleo (backend) @@ -680,13 +675,13 @@ log_* 3.11) Que tipo de hardware eu devo usar? Por causa do hardware de PC ser em sua maioria compatível, pessoas - tendem a acreditar que todos os hardwares de PC săo de mesma - qualidade. Năo é verdade. ECC RAM, SCSI e placas măe de qualidade săo - mais confiáveis e tęm uma melhor performance do que hardwares mais - baratos. O PostgreSQL executará em quase todo hardware, mas se a - confiabilidade e a performance forem importantes é prudente pesquisar - sobre as opçőes de hardware. Nossas listas de discussăo podem ser - usadas para discutir opçőes de hardware e dilemas. + tendem a acreditar que todos os hardwares de PC satilde;o de mesma + qualidade. Natilde;o é verdade. ECC RAM, SCSI e placas măe de + qualidade săo mais confiáveis e tęm uma melhor performance do que + hardwares mais baratos. O PostgreSQL executará em quase todo hardware, + mas se a confiabilidade e a performance forem importantes é prudente + pesquisar sobre as opçőes de hardware. Nossas listas de discussăo + podem ser usadas para discutir opçőes de hardware e dilemas. _________________________________________________________________ Perguntas Operacionais @@ -753,14 +748,12 @@ log_* dados? Estes săo os limites: -Tamanho máximo de um banco de dados? ilimitado (existem bancos de dad -os de 32 TB) +Tamanho máximo de um banco de dados? ilimitado (existem bancos de dados de 32 TB) Tamanho máximo de uma tabela? 32 TB Tamanho máximo de um registro? 1.6TB Tamanho máximo de um campo? 1 GB Número máximo de registros em uma tabela? ilimitado -Número máximo de colunas em uma tabela? 250-1600 dependendo dos tipos da -s colunas +Número máximo de colunas em uma tabela? 250-1600 dependendo dos tipos das colunas Número máximo de índices em uma tabela? ilimitado É claro, que eles năo săo ilimitados, mas limitados ao espaço em disco @@ -795,17 +788,14 @@ N O tamanho de uma página de dados no PostgreSQL é 8192 bytes (8 KB), entăo: 8192 bytes por página - ------------------------ = 136 registros por página do banco de dados (ar -redondado para baixo) + ------------------------ = 136 registros por página do banco de dados (arredondado para baixo) 60 bytes por registro 100000 registros de dados - ---------------------------- = 735 páginas do banco de dados (arredondado -para cima) + ---------------------------- = 735 páginas do banco de dados (arredondadopara cima) 128 registros por página -735 páginas do banco de dados * 8192 bytes por página = 6,021,120 bytes (6 MB -) +735 páginas do banco de dados * 8192 bytes por página = 6,021,120 bytes (6 MB) Índices năo requerem muito espaço, mas contém dados que foram indexados, entăo eles podem ocupar algum espaço. @@ -874,10 +864,8 @@ para cima) * A localidade padrăo C deve ser utilizada durante o initdb porque năo é possível saber o próximo/maior caracter em uma localidade que năo seja a C. Vocę pode criar um índice especial -text_pattern_ops - para tais casos que funcionam somente para indexaçăo utilizando -LIKE - . + text_pattern_ops para tais casos que funcionam somente para + indexaçăo utilizando LIKE. Em versőes anteriores a 8.0, índices frequentemente năo podiam ser usados a menos que os tipos de dados correspodessem aos tipos da @@ -948,14 +936,10 @@ LIKE Tipo Nome Interno Notas -------------------------------------------------- -VARCHAR(n) varchar tamanho especifica o comprimento máximo, sem pr -eenchimento -CHAR(n) bpchar preenchimento em branco para comprimento fixo e -specífico -TEXT text nenhum limite superior específico no compriment -o -BYTEA bytea vetor de bytes de comprimento variável (null-by -te safe) +VARCHAR(n) varchar tamanho especifica o comprimento máximo, sem preenchimento +CHAR(n) bpchar preenchimento em branco para comprimento fixo específico +TEXT text nenhum limite superior específico no comprimento +BYTEA bytea vetor de bytes de comprimento variável (null-byte safe) "char" char um caracter Vocę verá o nome interno quando examinar o catálogo do sistema e em @@ -1063,8 +1047,7 @@ te safe) de alguma coisa, ou se vocę quer fazer uma cópia da tabela, com os OIDs, năo há razăo para que vocę năo possa fazę-la: CREATE TABLE nova_tabela(minha_coluna int); - SELECT oid as oid_antigo, minha_coluna INTO tabela_tmp FROM tabela_anti -ga; + SELECT oid as oid_antigo, minha_coluna INTO tabela_tmp FROM tabela_antiga; COPY tabela_tmp TO '/tmp/pgtable'; DROP TABLE tabela_tmp; COPY nova_tabela WITH OIDS FROM '/tmp/pgtable'; diff --git a/doc/FAQ_czech b/doc/FAQ_czech index 1fd6627b8a..1a2b33cb68 100644 --- a/doc/FAQ_czech +++ b/doc/FAQ_czech @@ -1,855 +1,823 @@ -Č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? ----------------------------- - -Hlavním mailová konference je pgsql-general@PostgreSQL.org. Slouľí k -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 - -na adresu mailto:pgsql-general-request@PostgreSQL.org. - -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 -adresu mailto:pgsql-bugs-request@PostgreSQL.org. - -Do vývojářské konference se přihlásíte odesláním dopisu s jiľ zmiňovaným -obsahem na mailto:pgsql-hackers-request@PostgreSQL.org. - -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 -postgres95@openlink.co.uk. - -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 + + Současný správce: Bruce Momjian (pgman@candle.pha.pa.us) + + Přeloľil: Pavel Stěhule (stehule@kix.fsv.cvut.cz) + + 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 + (scrappy@PostgreSQL.org). (viz 1.6 - jak se zapojit). Tento tým je + 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? + + Hlavní mailová konference je: pgsql-general@PostgreSQL.org. Slouľí k + 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 + + na adresu pgsql-general-request@PostgreSQL.org. + + 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 adresu pgsql-bugs-request@PostgreSQL.org. + + Do vývojářské konference se přihlásíte odesláním dopisu s jiľ + zmiňovaným obsahem na mailto:pgsql-hackers-request@PostgreSQL.org. + + 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 + zasílejte na postgres95@openlink.co.uk. + + 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 @@ -858,332 +826,292 @@ TEXT text bez horn 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. + 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 + ); -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. + 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); -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. + 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')"); -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. + 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')"); -4.15.1 Jak vytvořit serial/auto-increment pole? ------------------------------------------------ + 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'; -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: + 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 -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 + 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é? -------------------------------------------------------------- + 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); -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: + na: + SELECT * + FROM tab + WHERE EXISTS (SELECT subcol FROM subtab WHERE subcol = col); -SELECT * FROM tab - WHERE col IN (SELECT subcol FROM subtab); + 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); -takto + nebo + SELECT * + FROM t1 LEFT OUTER JOIN USING (col); -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 + 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. diff --git a/doc/FAQ_farsi b/doc/FAQ_farsi index c8ff95967c..b7cbb20575 100644 --- a/doc/FAQ_farsi +++ b/doc/FAQ_farsi @@ -1,816 +1,1566 @@ -PostgreSQL FAQŘłŮالاتي Ůه اغلب در Ů…Ůرد PostgreSQL‌ پرسيده Ů…ŮŠ Ř´Ůند -تاريخ آخرين اصلاح اين Ůايل: 28 شهریŮر 1383 هجری شمسی -نگهدارنده اصلي Ůايل (زبان انگليسي)در حال حاضر : Bruce Momjian -pgman@candle.pha.pa.us -نگهدارنده Ůايل به زبان Ůارسي: m.taghizadeh@imenafzar.net Ů…Ř­Ů…ŮŘŻ تقي‌زاده مهرجردی -آخرين نسخه اين Ůايل را مي‌تŮانيد از اين آدرس بگيريد -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. -Fournier‌ به آدرس scrappy@PostgreSQL.org مي‌باشد. (براي ديدن نحŮه Ů…Ů„Ř­Ů‚ شدن به -اين ŘŞŮŠŮ… قسمت 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 مي‌باشد. P‌ostgreSQL‌ -همچنين امŮان ارتباط به صŮرت 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) از Ůجا خدمات پشتيباني بگيرم؟ -گرŮه پستي اصلي pgsql-general@PostgreSQL.org مي‌باشد. اين گرŮه براي بحث در Ů…Ůرد -Ů…ŮضŮعات مختل٠در زمينه 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+ + hka+l+ hka+ddr+ : Bruce Momjian pgman@candle.pha.pa.us + + n+gfh+d+a+r+n+d+h+ f+a+y+l+ b+h+ z+b+a+n+ f+a+r+s+y+: + m.taghizadeh@imenafzar.net m+hkm+w+d+ t+q+y+z+a+d+h+ + 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+ + aMd+r+s+ scrappy@PostgreSQL.org m+y+b+a+snd+. (b+r+a+y+ d+y+d+n+ + 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+?+ + + gfr+w+h+ p+s+t+y+ a+c+l+y+ pgsql-general@PostgreSQL.org m+y+b+a+snd+. + 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 -آدرس گرŮه: pgsql-general-request@PostgreSQL.org -همچنين ي٠گرŮه پستي هم به صŮرت ارسال Ú†Ůيده پيامها ŮجŮŘŻ دارد. براي عض٠شدن در اين -گرŮه ي٠نامه با Ů…Ř­ŘŞŮيات زير به این آدرس ارسال Ůنيد. -pgsql-general-digest-request@PostgreSQL.org + + aMd+r+s+ gfr+w+h+: pgsql-general-request@PostgreSQL.org + + 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+. + pgsql-general-digest-request@PostgreSQL.org + subscribe end -در اين گرŮه هر Ů…ŮŮ‚Řą حجم نامه‌ها به 30 ŮŮŠŮ„Ůبايت رسيد براي تمام اعضاء ارسال -مي‌شŮŘŻ. -گرŮه پستي بررسي اŮŘ´Ůالات هم ŮجŮŘŻ دارد. براي عض٠شدن در اين گرŮه ي٠نامه با -Ů…Ř­ŘŞŮيات زير به pgsql-bugs-request@PostgreSQL.org ارسال Ůنيد. + + 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+ + m+hkt+w+y+a+t+ z+y+r+ b+h+ pgsql-bugs-request@PostgreSQL.org + a+r+s+a+l+ k+n+y+d+. + subscribe end -گرŮه پستي مخصŮص ŘŞŮسعه دهندگان (برنامه‌نŮيسان) نيز ŮجŮددارد. براي عضŮŮŠŘŞ در اين -گرŮه ي٠نامه به آدرس زير با Ů…Ř­ŘŞŮيات مشخص شده ارسال Ůنيد. -pgsql-hackers-request@PostgreSQL.org + + 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+. + pgsql-hackers-request@PostgreSQL.org + 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 نيز -متصل Ř´ŮŮŠŘŻ. -اين محصŮŮ„ به Ůساني Ůه احتياج به خدمات پشتيباني تجاري دارند ŮرŮخته مي‌شŮŘŻ. ŮŮ„ŮŠ -نسخه آزاد اين نرم‌اŮزار هميشه در درسترس مي‌باشد. براي Ůسب اطلاعات بيشتر ŘłŮالات -Ř®ŮŘŻ را به آدرس postgres95@openlink.co.uk ‌ارسال نماييد. -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+ + x+w+d+ r+a+ b+h+ aMd+r+s+ postgres95@openlink.co.uk a+r+s+a+l+ + 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 @@ -819,59 +1569,125 @@ IN شبیه سازی کنیم. این کار در مثال زیر نشان دا 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+. diff --git a/doc/FAQ_french b/doc/FAQ_french index 1423aee9b0..1b224e877c 100644 --- a/doc/FAQ_french +++ b/doc/FAQ_french @@ -171,7 +171,7 @@ PostgreSQL Data Base Management System - Portions copyright (c) 1996-2004, PostgreSQL Global Development Group + Portions Copyright (c) 1996-2005, PostgreSQL Global Development Group Portions Copyright (c) 1994-6 Regents of the University of California Permission to use, copy, modify, and distribute this software and its @@ -760,8 +760,7 @@ Pour changer le type de données d'une colonne, faites : BEGIN; ALTER TABLE table ADD COLUMN nouvelle_colonne nouveau_type_de_donnees; - UPDATE table SET nouvelle_colonne = CAST(ancienne_colonne AS nouveau_type_d -e_donnees); + UPDATE table SET nouvelle_colonne = CAST(ancienne_colonne AS nouveau_type_de_donnees); ALTER TABLE table DROP COLUMN ancienne_colonne; COMMIT; @@ -772,14 +771,12 @@ e_donnees); données ? Les limites sont : - Taille maximum pour une base de données illimitée (il existe des bases -de 32 To) + Taille maximum pour une base de données illimitée (il existe des basesde 32 To) Taille maximum pour une table 32 To Taille maximum pour une ligne 1,6 To Taille maximum pour un champ 1 Go Nombre maximum de lignes dans une table illimité - Nombre maximum de colonnes dans une table 250-1600, selon le type de colo -nnes + Nombre maximum de colonnes dans une table 250-1600, selon le type de colonnes Nombre maximum d'index sur une table illimité Bien sűr, ces valeurs ne sont pas vraiment illimitée, elles sont @@ -813,21 +810,17 @@ nnes ---------------------------------------- 60 octets par ligne - La taille des pages de données dans PostgreSQL est de 8192 octets (8 KO), do -nc : + La taille des pages de données dans PostgreSQL est de 8192 octets (8 KO), donc : 8192 octets par page - ---------------------- = 136 lignes par page de base de données (arrondi ŕ - l'entier inférieur) + ---------------------- = 136 lignes par page de base de données (arrondi ŕ l'entier inférieur) 60 octets par ligne 100000 lignes de données - ------------------------- = 735 pages de base de données (arrondi ŕ l'enti -er supérieur) + ------------------------- = 735 pages de base de données (arrondi ŕ l'entier supérieur) 128 lignes par page -735 pages de base de données * 8192 octets par page = 6 021 120 octets (6,4 M -o) +735 pages de base de données * 8192 octets par page = 6 021 120 octets (6,4 Mo) Les index utilisent moins d'espace, mais ils contiennent les données indexées, ils peuvent donc également ętre grands. @@ -1025,8 +1018,7 @@ BYTEA bytea tableau d'octets (accepte les octets nuls) table d'exemple de la section 4.15.1, un exemple dans un pseudo-langage ressemblerait ŕ ceci : nouvelle_id = execute("SELECT nextval('personne_id_seq')"); - execute("INSERT INTO personne (id, nom) VALUES (nouvelle_id, 'Blaise Pascal -')"); + execute("INSERT INTO personne (id, nom) VALUES (nouvelle_id, 'Blaise Pascal')"); Vous pourriez ensuite utiliser la nouvelle valeur stockée dans nouvelle_id avec d'autres requętes (c'est-ŕ-dire en tant que clé @@ -1085,8 +1077,7 @@ BYTEA bytea tableau d'octets (accepte les octets nuls) en quelque chose d'autre ou si vous voulez faire une copie de la table avec les OID originaux, il n'y a pas de raisons pour ne pas le faire : CREATE TABLE nouvelle_table (macolonne int); - SELECT oid AS ancienne_oid, macolonne INTO table_temporaire FROM ancienne_t -able; + SELECT oid AS ancienne_oid, macolonne INTO table_temporaire FROM ancienne_table; COPY table_temporaire FROM '/tmp/tablepg'; COPY nouvelle_table WITH OIDS FROM '/tmp/tablepg'; DROP TABLE table_temporaire; @@ -1178,8 +1169,7 @@ CREATE TABLE test (x int, heuremodif timestamp DEFAULT CURRENT_TIMESTAMP ); to: SELECT * FROM table - WHERE EXISTS (SELECT souscolonne FROM soustable WHERE souscolonne = colonne -); + WHERE EXISTS (SELECT souscolonne FROM soustable WHERE souscolonne = colonne); Pour que ceci soit rapide, souscolonne doit ętre une colonne indexée. diff --git a/doc/FAQ_german b/doc/FAQ_german index 49375224b4..dcb38cec77 100644 --- a/doc/FAQ_german +++ b/doc/FAQ_german @@ -643,14 +643,12 @@ Wenn der postmaster hingegen läuft, führen Sie psql in einem Fenster aus, ermitteln Sie die Prozessnummer (PID) des postgres-Prozesses, der - von psql verwendet wird (mit -SELECT pg_backend_pid() - - ). Binden Sie einen Debugger an diese PID und führen Sie Abfragen von - psql aus. Wenn Sie den postgres-Serverstart analysieren wollen, setzen - Sie die Umgebungsvariable PGOPTIONS="-W n", und starten Sie dann psql. - Dies verzögert den Start um n Sekunden, damit Sie einen Debugger an - den Prozess binden und ggf. Breakpoints setzen können, bevor die + von psql verwendet wird (mit SELECT pg_backend_pid()). Binden Sie + einen Debugger an diese PID und führen Sie Abfragen von psql aus. Wenn + Sie den postgres-Serverstart analysieren wollen, setzen Sie die + Umgebungsvariable PGOPTIONS="-W n", und starten Sie dann psql. Dies + verzögert den Start um n Sekunden, damit Sie einen Debugger an den + Prozess binden und ggf. Breakpoints setzen können, bevor die Startsequenz begonnen wird. Es gibt verschiedene Einstellungen (die log_*-Gruppe), die diverse diff --git a/doc/FAQ_japanese b/doc/FAQ_japanese index 609f8198f0..b271d65097 100644 --- a/doc/FAQ_japanese +++ b/doc/FAQ_japanese @@ -1,22 +1,20 @@ -PostgreSQL(ĄÝĄąĄČĄ°ĄěĄąˇ¦Ą­ĄĺˇĽˇ¦Ą¨Ąë)¤Ë¤Ä¤¤¤Ć¤č¤Ż¤˘¤ëĽÁĚä¤Č¤˝¤Î˛ňĹú(FAQ) -¸¶Ę¸şÇ˝Şąąż·Ćü: Sun Jan 9 14:44:04 EST 2005 - -¸˝şß¤Î°Ý»ý´ÉÍýĽÔ: Bruce Momjian (pgman@candle.pha.pa.us) -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 + + ¸˝şß¤Î°Ý»ý´ÉÍýĽÔ: Bruce Momjian (pgman@candle.pha.pa.us) + 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/ + ¤Ë˛óĹú¤¬¤˘¤ę¤Ţ¤ąˇŁ +(°Ę˛Ľˇ˘ĚőĽÔ¤Ë¤č¤ëĂíĽá¤ň [ĚőĂíˇ§ ¤Č ] ¤Č¤Ç°Ď¤ó¤Çµ¤·¤Ţ¤ąˇŁ) [ĚőĂíˇ§ ĆüËܸěČÇŔ˝şî¤Ë¤Ä¤¤¤Ć¤ÎĄáĄâ¤ĎşÇ¸ĺČř¤Ř°ÜĆ°¤·¤Ţ¤·¤żˇŁ @@ -27,180 +25,201 @@ 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 ( -scrappy@PostgreSQL.org )¤Ç¤ąˇŁ(˛Ľµ­¤Î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 ¤Ď˛Ľµ­¤ÎĂřşî¸˘¤Ë˝ľ¤¤¤Ţ¤ąˇŁ - + _________________________________________________________________ + + °ěČĚĹŞ¤ĘĽÁĚä + + 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 + ł«ČŻĄáˇĽĄęĄóĄ°ĄęĄąĄČ¤Ë»˛˛Ă¤·¤Ć¤¤¤ëł«ČŻĽÔĂŁ¤ÎĄÁˇĽĄŕ¤Ç¤ą¤Ů¤ĆąÔ¤Ę¤ď¤ě¤Ć¤¤ + ¤Ţ¤ąˇŁ¸˝şß¤ÎşÂÄą¤Ď Marc G. Fournier (scrappy@PostgreSQL.org + )¤Ç¤ąˇŁ(˛Ľµ¤Î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 Ą«ĄęĄŐĄ©ĄëĄËĄ˘ÂçłŘËÜą» - ËÜĄ˝ĄŐĄČĄ¦Ą§Ą˘¤Ş¤č¤Ó¤˝¤Îʸ˝ń°ěĽ°¤Ďľĺµ­¤ÎĂřşî¸˘É˝Ľ¨¤Čˇ˘¤ł¤ÎʸľĎ + ËÜĄ˝ĄŐĄČĄ¦Ą§Ą˘¤Ş¤č¤Ó¤˝¤Îʸ˝ń°ěĽ°¤Ďľĺµ¤ÎĂřşî¸˘É˝Ľ¨¤Čˇ˘¤ł¤ÎʸľĎ ¤Ş¤č¤Ó¤ł¤ě¤ËÂł¤ŻĆó¤Ä¤ÎĂĘÍÁ´¤Ć¤ÎĘŁŔ˝¤ËĹşÉŐ¤µ¤ě¤Ć¤¤¤ë¸Â¤ę¤Ë¤Ş¤¤ ¤Ćˇ˘»ČÍѡ˘ĘŁŔ˝ˇ˘˝¤Ŕµ¤Ş¤č¤ÓÇŰÉդεö˛Ä¤ňˇ˘¤¤¤«¤Ę¤ëĚÜĹŞ¤Ç¤˘¤Ă¤Ć¤âˇ˘ ̵˝ţ¤Ç¤«¤ÄƱ°Ő˝ń̵¤·¤ËąÔ¤Ę¤¨¤ë¤ł¤Č¤ň¤ł¤ł¤Ëǧ¤á¤Ţ¤ąˇŁ @@ -211,49 +230,50 @@ SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. ¤ňĽő¤±¤Ć¤¤¤ż¤Č¤·¤Ć¤âˇ˘°ěŔÚ¤ÎŔŐǤ¤ňÉ餤¤Ţ¤»¤óˇŁ Ą«ĄęĄŐĄ©ĄëĄËĄ˘ÂçłŘ¤Ďˇ˘ľ¦ÍŃĚÜĹŞ¤Ë¤Ş¤±¤ë°ĹĚۤÎĘݾڤȡ˘ĆĂÄęĚÜĹŞ¤Ç - ¤ÎŬąçŔ­¤Ë´Ř¤·¤Ć¤Ď¤â¤Č¤č¤ęˇ˘¤ł¤ě¤é¤Ë¸Â¤é¤şˇ˘¤¤¤«¤Ę¤ëĘÝľÚ¤âĘü´ţ¤ą + ¤ÎŬąçŔ¤Ë´Ř¤·¤Ć¤Ď¤â¤Č¤č¤ęˇ˘¤ł¤ě¤é¤Ë¸Â¤é¤şˇ˘¤¤¤«¤Ę¤ëĘÝľÚ¤âĘü´ţ¤ą ¤ë¤ł¤Č¤ňĚŔ¸Ŕ¤·¤Ţ¤ąˇŁ°Ę˛Ľ¤ËÍŃ°Ő¤µ¤ě¤żĄ˝ĄŐĄČĄ¦Ą§Ą˘¤ĎˇÖ¤˝¤Î¤Ţ¤Ţˇ×¤ň ´đËܸ¶Íý¤Č¤·ˇ˘Ą«ĄęĄŐĄ©ĄëĄËĄ˘ÂçłŘ¤Ď¤˝¤ě¤ň°Ý»ýˇ˘»Ů±çˇ˘ąąż·ˇ˘˛ţÎɤ˘ ¤ë¤¤¤Ď˝¤Ŕµ¤ą¤ëµÁĚł¤ňÉ餤¤Ţ¤»¤óˇŁ [ĚőĂíˇ§ - Ăřşî¸˘¤Ë´Ř¤ą¤ëŔµĘ¸¤Ďľĺµ­¤Î±Ń¸ě¤Ë¤č¤ëÉ˝µ­¤Ç¤ąˇŁĆüËܸěĚő¤Ď¤˘¤Ż¤Ţ¤Ç + Ăřşî¸˘¤Ë´Ř¤ą¤ëŔµĘ¸¤Ďľĺµ¤Î±Ń¸ě¤Ë¤č¤ëÉ˝µ¤Ç¤ąˇŁĆüËܸěĚő¤Ď¤˘¤Ż¤Ţ¤Ç »˛ąÍ¤Ç¤ąˇŁ ] -ľĺµ­¤Ď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 ĄÚˇĽĄ¸¤ň¤´Í÷˛Ľ¤µ¤¤ˇŁ [ĚőĂí: °Ę˛Ľ¤ĎĆüËܤΥߥ顼ĄµĄ¤ĄČ¤Ç¤ą: @@ -272,54 +292,58 @@ PostgreSQL Japan: ftp://ring.aist.go.jp/pub/misc/db/PostgreSQL/ ] -1.6) ĄµĄÝˇĽĄČ¤Ď¤É¤ł¤ÇĽő¤±¤é¤ě¤Ţ¤ą¤«ˇ© - -ĽçÍפʥ᡼ĄęĄóĄ°ˇ¦ĄęĄąĄČ¤Ď: pgsql-general@PostgreSQL.org¤Ç¤ąˇŁPostgreSQL ¤Ë´Ř¤ą -¤ë¤ł¤Č¤Ç¤˘¤ě¤ĐµÄĎŔ¤¬¤Ç¤­¤Ţ¤ąˇŁ¤ł¤ÎĄęĄąĄČ¤Ř¤Î»˛˛Ă¤Ďˇ˘ĹŻҥ᡼Ąë¤ÎËÜʸ(Subject ąÔ -¤Ç¤Ď¤˘¤ę¤Ţ¤»¤ó)¤ËĽˇ¤ÎŁ˛ąÔ¤ň˝ń¤¤¤Ćˇ˘ - + 1.6) ĄµĄÝˇĽĄČ¤Ď¤É¤ł¤ÇĽő¤±¤é¤ě¤Ţ¤ą¤«ˇ© + + ĽçÍפʥ᡼ĄęĄóĄ°ˇ¦ĄęĄąĄČ¤Ď: + pgsql-general@PostgreSQL.org¤Ç¤ąˇŁPostgreSQL + ¤Ë´Ř¤ą¤ë¤ł¤Č¤Ç¤˘¤ě¤ĐµÄĎŔ¤¬¤Ç¤­ + ¤Ţ¤ąˇŁ¤ł¤ÎĄęĄąĄČ¤Ř¤Î»˛˛Ă¤Ďˇ˘ĹŻҥ᡼Ąë¤ÎËÜʸ(Subject + ąÔ¤Ç¤Ď¤˘¤ę¤Ţ¤»¤ó)¤ËĽˇ¤ÎŁ˛ąÔ¤ň˝ń¤¤¤Ćˇ˘ subscribe end -pgsql-general-request@PostgreSQL.org ¤ŘÁ÷¤Ă¤Ć˛Ľ¤µ¤¤ˇŁ - -ĄŔĄ¤Ą¸Ą§ĄąĄČČǤΥ᡼ĄęĄóĄ°ˇ¦ĄęĄąĄČ¤â¤˘¤ę¤Ţ¤ąˇŁ¤ł¤ÎĄęĄąĄČ¤Ř¤Î»˛˛Ă¤Ď "ËÜʸ"¤Ëˇ§ - + pgsql-general-request@PostgreSQL.org ¤ŘÁ÷¤Ă¤Ć˛Ľ¤µ¤¤ˇŁ + + ĄŔĄ¤Ą¸Ą§ĄąĄČČǤΥ᡼ĄęĄóĄ°ˇ¦ĄęĄąĄČ¤â¤˘¤ę¤Ţ¤ąˇŁ¤ł¤ÎĄęĄąĄČ¤Ř¤Î»˛˛Ă¤Ď + "ËÜʸ"¤Ëˇ§ subscribe end -¤Č˝ń¤¤¤Ć pgsql-general-digest-request@PostgreSQL.org ¤ŘĹŻҥ᡼Ąë¤ňÁ÷¤Ă¤Ć˛Ľ¤µ¤¤ -ˇŁ - -ĄŔĄ¤Ą¸Ą§ĄąĄČČǤϡ˘ĄáĄ¤ĄóĄęĄąĄČ¤ÇĽőż®¤ą¤ëĄáĄĂĄ»ˇĽĄ¸¤¬ 30k ÄřĹŮÎŻ¤ëËč¤ËĄŔĄ¤Ą¸Ą§Ąą -ĄČČǥꥹĄČ¤ÎĄáĄóĄĐˇĽ¤ËÁ÷ÉŐ¤µ¤ě¤Ţ¤ąˇŁ - -ĄĐĄ°ĄěĄÝˇĽĄČÍѤΥ᡼ĄęĄóĄ°ĄęĄąĄČ¤â¤˘¤ę¤Ţ¤ąˇŁ¤ł¤ÎĄęĄąĄČ¤Ř¤Î»˛˛Ă¤Ď "ËÜʸ" ¤Ëˇ§ - + ¤Č˝ń¤¤¤Ć pgsql-general-digest-request@PostgreSQL.org + ¤ŘĹŻҥ᡼Ąë¤ňÁ÷¤Ă¤Ć˛Ľ¤µ¤¤ˇŁ + + ĄŔĄ¤Ą¸Ą§ĄąĄČČǤϡ˘ĄáĄ¤ĄóĄęĄąĄČ¤ÇĽőż®¤ą¤ëĄáĄĂĄ»ˇĽĄ¸¤¬ 30k + ÄřĹŮÎŻ¤ëËč¤ËĄŔĄ¤Ą¸Ą§ĄąĄČČǥꥹĄČ¤ÎĄáĄóĄĐˇĽ¤ËÁ÷ÉŐ¤µ¤ě¤Ţ¤ąˇŁ + + ĄĐĄ°ĄěĄÝˇĽĄČÍѤΥ᡼ĄęĄóĄ°ĄęĄąĄČ¤â¤˘¤ę¤Ţ¤ąˇŁ¤ł¤ÎĄęĄąĄČ¤Ř¤Î»˛˛Ă¤Ď + "ËÜʸ" ¤Ëˇ§ subscribe end -¤Č˝ń¤¤¤Ćpgsql-bugs-request@PostgreSQL.org ¤ŘĹŻҥ᡼Ąë¤ňÁ÷¤Ă¤Ć˛Ľ¤µ¤¤ˇŁ - -ł«ČŻĽÔ¤ÎµÄĎŔ¤Î¤ż¤á¤ÎĄáˇĽĄęĄóĄ°ĄęĄąĄČ¤âÍřÍѤǤ­¤Ţ¤ąˇŁ¤ł¤ÎĄęĄąĄČ¤Ř¤Î»˛˛Ă¤ĎĹŻҥá -ˇĽĄë¤ÎËÜʸ¤Ëˇ§ - + ¤Č˝ń¤¤¤Ćpgsql-bugs-request@PostgreSQL.org ¤ŘĹŻҥ᡼Ąë¤ňÁ÷¤Ă¤Ć˛Ľ¤µ¤¤ˇŁ + + ł«ČŻĽÔ¤ÎµÄĎŔ¤Î¤ż¤á¤ÎĄáˇĽĄęĄóĄ°ĄęĄąĄČ¤âÍřÍѤǤ­ + ¤Ţ¤ąˇŁ¤ł¤ÎĄęĄąĄČ¤Ř¤Î»˛˛Ă¤ĎĹŻҥ᡼Ąë¤ÎËÜʸ¤Ëˇ§ subscribe end -¤Č˝ń¤¤¤Ćˇ˘pgsql-hackers-request@PostgreSQL.org¤ŘĹŻҥ᡼Ąë¤ňÁ÷¤Ă¤Ć˛Ľ¤µ¤¤ˇŁ - -http://www.PostgreSQL.org - -ĄáĄ¸ĄăˇĽ¤ĘIRC ĄÁĄăĄóĄÍĄë¤Ďˇ˘Freenode (irc.freenode.net)¤Î #PostgreSQL ¤Č¤¤¤¦ĄÁ -ĄăĄóĄÍĄë¤Ç¤ąˇŁ UNIX ĄłĄŢĄóĄÉ¤Çˇ˘ irc -c '#PostgreSQL' "$USER" irc.freenode.net. -¤ň»Č¤Ă¤Ć»˛˛Ă¤Ç¤­¤Ţ¤ąˇŁĆ±¤¸ĄÍĄĂĄČĄďˇĽĄŻ¤Ëˇ˘ĄąĄÚĄ¤Ąó¸ě¤ÎĄÁĄăĄóĄÍĄë(# -postgresql-es)¤â¤˘¤ęˇ˘ĄŐĄéĄóĄą¸ě¤ÎĄÁĄăĄóĄÍĄë(#postgresqlfr)¤â¤˘¤ę¤Ţ¤ąˇŁ EFNet¤Ë -¤âPostgreSQLĄÁĄăĄóĄÍĄë¤¬¤˘¤ę¤Ţ¤ąˇŁ - + ¤Č˝ń¤¤¤Ćˇ˘pgsql-hackers-request@PostgreSQL.org¤ŘĹŻҥ᡼Ąë¤ňÁ÷¤Ă¤Ć˛Ľ¤µ + ¤¤ˇŁ + + 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 ĄµĄ¤ĄČ: @@ -328,76 +352,77 @@ postgresql-es) ĆüËܸě¤Î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 @@ -407,138 +432,158 @@ McGraw-Hill ¤¬¤˘¤ę¤Ţ¤ą(¤ä¤ä¸Ĺ¤¤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¤ň»Č¤Ă¤żŔ®¸ů»öÎă¤ň¤Ş»ý¤Á¤Ç¤˘¤ě¤Đˇ˘¤Ľ¤Ňˇ˘¤ď¤ě¤ď¤ě¤Î»öÎăľŇ˛đĄę -ĄąĄČ pgsql-advocacy@postgresql.org ¤Ř¤ŞÁ÷¤ę¤Ż¤Ŕ¤µ¤¤ˇŁ - -¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬¨¬ - - ĄćˇĽĄ¶ˇĽˇ¦ĄŻĄéĄ¤Ą˘ĄóĄČ¤ÎĽÁĚä - -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@openlink.co.uk ¤ŘÁ÷¤Ă¤Ć -˛Ľ¤µ¤¤ˇŁ - -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¤ň»Č¤Ă¤żŔ®¸ů»öÎă¤ň¤Ş»ý¤Á¤Ç¤˘¤ě¤Đˇ˘¤Ľ¤Ňˇ˘¤ď¤ě¤ď¤ě¤Î + »öÎăľŇ˛đĄęĄąĄČ pgsql-advocacy@postgresql.org ¤Ř¤ŞÁ÷¤ę¤Ż¤Ŕ¤µ¤¤ˇŁ + _________________________________________________________________ + + ĄćˇĽĄ¶ˇĽˇ¦ĄŻĄéĄ¤Ą˘ĄóĄČ¤ÎĽÁĚä + + 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 ¤ÎÍřÍѤ¬˛ÄÇ˝¤Č»×¤ď¤ě¤Ţ¤ąˇŁ @@ -549,286 +594,317 @@ www.php.net/ ¤Č¤¬¤˘¤ę¤Ţ¤ąˇŁ¤˝¤Î·Đ°Ţ¤Ď¤č¤Ż¤ď¤«¤ę¤Ţ¤»¤óˇŁ ] -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 ... -- şď˝ü¤·¤ż¤¤Ą«ĄéĄŕ°Ęł°¤ÎĄ«ĄéĄŕ¤ň¤ą¤Ů¤ĆÁŞÂň¤·¤Ţ¤ąˇŁ @@ -838,21 +914,20 @@ DROP COLUMN 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 @@ -861,30 +936,32 @@ VACUUM FULL tab ĄĆˇĽĄÖĄëĆâ¤Ç¤ÎşÇÂ祫ĄéĄŕżô? Ą«ĄéĄŕ¤Î·ż¤Ë¤č¤ę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 @@ -898,198 +975,208 @@ VACUUM FULL tab 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 ¤ň»Č¤Ă¤ĆĄ¤ĄóĄÇĄĂĄŻĄą¤ň»Č¤Ă¤ĆĽč¤ę˝Đ¤ą¤ł -¤Č¤¬˛ÄÇ˝¤Ç¤ą: - + Ą¤ĄóĄÇĄĂĄŻĄą¤Ďˇ˘¤ł¤ě¤Ű¤É¤ÎĄŞˇĽĄĐĄŘĄĂĄÉ¤ĎÍ׵ᤷ¤Ţ¤»¤ó¤¬ˇ˘Ą¤ĄóĄÇĄĂĄŻĄąÉŐ + ¤±¤µ¤ě¤ëĄÇˇĽĄż¤ň´Ţ¤ŕ°Ęľĺˇ˘¤˝¤ě¤Ę¤ę¤ËÂ礤Ż¤Ę¤ę¤Ţ¤ąˇŁ + + 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.13) Ě䤤ąç¤ď¤»¤ÎĂć¤Çˇ˘ĄŐĄŁˇĽĄëĄÉ¤¬ NULL ¤Ç¤˘¤ë¤ł¤Č¤ň¸ˇ˝Đ¤ą¤ë¤Ë¤Ď¤É¤¦¤·¤Ţ¤ą¤« -ˇ© - -Ą«ĄéĄŕ¤ň IS NULL ¤Č IS NOT NULL ¤Č¤Ç»î¤·¤Ć¤ß¤Ţ¤ąˇŁ - -4.14) Í͡ą¤Ęʸ»ú·ż¤Î¤˝¤ě¤ľ¤ě¤Î°ă¤¤¤Ď˛ż¤Ç¤ą¤«ˇ© - + 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 ); [ĚőĂíˇ§ @@ -1097,186 +1184,203 @@ PostgreSQL ¤Ďˇ˘ 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 @@ -1286,48 +1390,57 @@ PostgreSQL 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 @@ -1340,67 +1453,70 @@ PL/PgSQL ¤ÎĽÂÁő¤ňąÔ¤¤¤Ţ¤·¤żˇŁ 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 ĄÉĄĄĺĄáĄóĄĆˇĽĄ·ĄçĄóĄ×ĄíĄ¸Ą§ĄŻĄČˇ˘ ¤˝¤ÎÂľˇ˘ÄľŔܤ˘¤ë¤¤¤Ď´ÖŔÜĹŞ¤Ë¤«¤«¤ď¤Ă¤Ć¤¤¤ë¤ą¤Ů¤Ć¤ÎĄŞˇĽĄ×ĄóĄ˝ˇĽĄąĄłĄßĄĺĄËĄĆĄŁˇĽ¤Îł§¤µ¤ó¤Ë´¶ĽŐ¤·¤Ţ¤ąˇŁ ĆüËܸěČǤΤł¤Îʸ˝ń¤Ďˇ˘°Ę˛Ľ¤«¤é¤â¤ż¤É¤ě¤Ţ¤ąˇŁ @@ -1410,4 +1526,3 @@ PL/PgSQL ¤Ę¤Şˇ˘¤ł¤ÎĎÂĚő¤Ë´Ř¤ą¤ë¤´°Ő¸«¤Ď(juk at PostgreSQL.jp)¤Ţ¤Ç¤Ş´ó¤»˛Ľ¤µ¤¤ˇŁ ] - diff --git a/doc/FAQ_polish b/doc/FAQ_polish index f98902093c..b2be9d9bf6 100644 --- a/doc/FAQ_polish +++ b/doc/FAQ_polish @@ -165,7 +165,7 @@ 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 @@ -747,8 +747,7 @@ 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; @@ -770,8 +769,7 @@ zbyc 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 @@ -807,8 +805,7 @@ lumn 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 @@ -858,6 +855,7 @@ lumn 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 @@ -952,13 +950,10 @@ lumn 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 @@ -970,6 +965,7 @@ BYTEA bytea zmiennej dl/ugosci tablica bajt 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 @@ -1229,13 +1225,14 @@ SELECT * 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 @@ -1257,22 +1254,26 @@ SELECT * 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. diff --git a/doc/FAQ_russian b/doc/FAQ_russian index 2f106f30d2..6089d60613 100644 --- a/doc/FAQ_russian +++ b/doc/FAQ_russian @@ -520,11 +520,11 @@ 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 @@ -821,10 +821,8 @@ 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()"? diff --git a/doc/FAQ_turkish b/doc/FAQ_turkish index 47a3188674..50634d0573 100644 --- a/doc/FAQ_turkish +++ b/doc/FAQ_turkish @@ -1,480 +1,690 @@ -PostgreSQL için Sýkça Sorulan Sorular (SSS) - -Son güncelleme : 15 Kasým 2004 Pazartesi - 14:47:20 - -Current maintainer: Bruce Momjian (pgman@candle.pha.pa.us) - -Çevirenler : Devrim Gündüz (devrim@tdmsoft.com) -Nicolai Tufar (ntufar@tdmsoft.com) -Volkan YAZICI (volkany@phreaker.net) - -Bu belgenin en güncel hali, http://www.PostgreSQL.org/docs/faqs/FAQ_turkish.html ve -http://www.gunduz.org/seminer/pg/FAQ_turkish.html adreslerinde görülebilir. - -Platforma özel sorularýnýz, http://www.PostgreSQL.org/docs/index.html adresinde yanýtlanýr. -Genel Sorular -1.1) PostgreSQL nedir? Nasýl okunur? -1.2) PostgreSQL'in haklarý nedir? -1.3) PostgreSQL, hangi Unix platformlarýnda çalýţýr? -1.4) Hangi Unix olmayan uyarlamalarý bulunmaktadýr? -1.5) PostgreSQL'i nereden indirebilirim? -1.6) Desteđi nereden alabilirim? -1.7) En son sürümü nedir? -1.8) Hangi belgelere ulaţabilirim? -1.9) Bilinen hatalar ya da eksik özelliklere nereden ulasabilirim? -1.10) Nasýl SQL öđrenebilirim? -1.11) PostgreSQL 2000 yýlýna uyumlu mudur? -1.12) Geliţtirme takýmýna nasýl katýlabilirim?? -1.13) Bir hata raporunu nasýl gönderebilirim? -1.14) PostgreSQL, diđer VTYS(DBMS) lerle nasýl karţýlaţtýrýlabilir? -1.15) PostgreSQL'e maddi açýdan nasýl destek olabilirim? -Kullanýcý/istemci Sorularý -2.1) PostgreSQL için ODBC sürücüleri var mý? -2.2) PostgreSQL'i web sayfalarýnda kullanabilmek için hangi araçlar bulunmaktadýr? -2.3) PostgreSQL'in grafik kullanýcý arabirimi var mýdýr? -2.4) PostgreSQL ile iletiţimi kurabilmek için hangi dilleri kullanabilirim? -Yönetimsel Sorular -3.1) PostgreSQL'i /usr/local/pgsql dizininden baţka dizinlere nasýl kurabilirim? -3.2) Postmaster'ý baţlattýđýmda Bad System Call ya da core dumped mesajý alýyorum. Neden? -3.3) Postmaster'ý baţlattýđýmda, IpcMemoryCreate hatasý alýyorum. Neden? -3.4) Postmaster'ý, baţlattýđýmda, IpcSemaphoreCreate hatasý alýyorum. Neden? -3.5) Diđer bilgisayarlarýn benim PostgreSQL veritabaný sunucuma bađlantýlarýný nasýl kontrol edebilirim? -3.6) Veritabaný motorunu daha iyi baţarým icin nasýl ayarlayabilirim? -3.7) Hangi hata ayýklama özellikleri bulunmaktadýr? -3.8) Bađlanmaya çalýţýrken, neden "Sorry, too many clients" hatasýný alýyorum. Neden? -3.9) pgsql_tmpdizinin içindeki dosyalar nelerdir? -3.10) PostgreSQL sürümlerini yükseltmek için neden bir dump/reload iţlemi gerçekleţtirmek zorundayým? -3.11) Nasýl bir donaným kullanmalýyým?br> -Ýţletimsel Sorular -4.1) Binary cursor ve normal cursor arasýndaki fark nedýr? -4.2) Sorgunun sadece ilk birkaç satýrýný nasýl SELECT edebilirim? -4.3) psql'in içinde gördügüm tablolarýn ya da diđer ţeylerin listesini nasýl alabilirim? -4.4) Bir tablodan bir kolonu nasýl kaldýrabilirim? -4.5) Bir satýr, tablo ve veritabaný için en fazla büyüklük nedir? -4.6) Tipik bir metin dosyasýndaki veriyi saklamak için ne kadar disk alaný gereklidir? -4.7) Veritabanýnda hangi tablo ya da index'lerin tanýmlandýđýný nasýl görebilirim? -4.8) Sorgularým cok yavaţ, ya da index'lerimi kullanmýyorlar. Neden? -4.9) Query-optimizer'ýn sorgularýmý nasýl deđerlendirdiđini, iţleme soktuđunu nasýl görebilirim? -4.10) R-tree index nedir? -4.11) Genetic Query Optimizer nedir? -4.12) Düzenli ifade (Regular Expression) aramalarýný ve büyük/küçük harfe duyarsýz aramalarý nasýl yapabilirim? Bu -büyük/küçük harfe duyarlý aramalar için index'i nasýl kullanabilirim? -4.13) Bir sorguda, bir alanýn NULL olduđunu nasýl ortaya çýkarabilirim? -4.14) Çesitli karakter tipleri arasýndaki farklar nelerdir? -4.15.1) Nasýl serial/otomatik artan (auto-incrementing) bir alan yaratabilirim? -4.15.2) Serial giriţinin deđerini nasýl alabilirim? -4.15.3) currval() ve nextval() diđer kullanýcýlara sorun yaratmaz mý? -4.15.4) Neden sequence sayýlarýn transaction iţleminin iptalinden sonra yeniden kullanýlýyor? Neden sequence/SERIAL -kolonumdaki sayýlarda atlamalar oluyor? -4.16) OID nedir? TID nedir? -4.17) PostgreSQL' de kullanýlan bazý terimlerin anlamlarý nelerdir? -4.18) Neden "ERROR: Memory exhausted in AllocSetAlloc()" hatasýný alýyorum? -4.19) Hangi PostgreSQL sürümünü çalýstýrdýđýmý nasýl görebilirim? -4.20) Neden large-object iţlemlerim, "invalid large obj descriptor" hatasýný veriyor? -4.21) Ţu andaki zamaný öntanýmlý deđer olarak kabul eden kolonu nasýl yaratýrým? -4.22) Neden IN kullanan subquery'lerim çok yavaţ? -4.23) Outer join iţlemini nasýl yapabilirim? -4.24) Ayný anda birden fazla veritabanýnda nasýl iţlem yapabilirim? -4.25) Bir fonksiyondan nasýl çoklu satýr ya da kolon döndürebilirim? -4.26) Neden Pl/PgSQL fonksiyonlarý içinden güvenli bir ţekilde tablo yaratma/kaldýrma iţlemlerini yapamýyoruz? -4.27) Hangi ţifreleme seçenekleri bulunmaktadýr? -PostgreSQL Özelliklerini Geniţletmek -5.1) Kullanýcý-tanýmlý bir fonksiyon yazdým. psql'de çalýţtýrdýđým zaman neden core dump ediyor? -5.2) PostgreSQL'e nasýl yeni veri tipleri/fonksiyonlar ekleyebilirim? -5.3) Bir tuple döndürmek için bir C fonksiyonunu nasýl yazarým? -5.4) Bir kaynak dosyasýnda deđiţiklik yaptým. Yeniden derlememe rađmen deđiţiklik geçerli olmuyor. Neden? -Genel Sorular -1.1) PostgreSQL nedir? Nasýl okunur? - -PostgreSQL, Post-Gres-Q-L. olarak okunur - -PostgreSQL, yeni-nesil VTYS araţtýrma prototipi olan POSTGRES veritabaný yönetim sisteminin geliţtirilmesidir. -POSTGRES'in zengin veri tiplerini ve güçlü veri modelini tutarken, SQL'in geliţtirilmiţ alt kümesi olan PostQuel dilini -kullanýr. PostgreSQL ücretsizdir ve kaynak kodu açýk dađýtýlýr. - -PostgreSQL, PostgreSQL geliţtirme listesine üye olan bir Internet geliţtirici takýmý tarafýndan geliţtirilir. Ţu andaki -koordinatör, Marc G. Fournier (scrappy@PostgreSQL.org). (Bu takýma nasýl katýlacagýnýzý öđrenmek için 1.6 numaralý -maddeyi okuyunuz.) Bu takým, tüm PostgreSQL geliţiminden sorumludur. - -PostgreSQL 1.01 sürümünün yazarlarý Andrew Yu ve Jolly Chen idi. Bunlarýn dýţýnda bir kaç kisi de uyarlama, hata -ayýklama ve kodun geliţtirilmesi için çalýsmýţtý. PostgreSQL'in türediđi orijinal Postgres kodu, lisans, lisansüstü ve -akademisyenler tarafýndan, Professor Michael Stonebraker (University of California, Berkeley) koordinatörlügünde -yazýlmýţtýr. - -Berkley'deki yazýlýmýn adý Postgres idi. SQL uyumluluđu 1995'te eklenince, adý Postgres 95 oldu. 1996 yýlýnýn -sonlarýnda adý PostgreSQL olarak deđiţtirildi. -1.2) PostgreSQL'in haklarý nedir? - -PostgreSQL Data Base Management System - -Portions copyright (c) 1996-2002, 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. - -Üstteki metin klasik açýk-kod lisansý olan BSD lisansýdýr. Kaynak kodun nasýl kullanýlabileceđine dair sýnýrlamalarý -yoktur. Bu lisansý seviyoruz. Deđiţtirme niyetimiz bulunmamaktadýr. -1.3) PostgreSQL, hangi Unix platforlarýnda çalýţýr? - -Genel olarak, modern bir Unix-uyumlu platform PostgreSQL'i çalýţtýracaktýr. Ayrýntýlý bilgi için kurulum belgelerine -bakabilirsiniz. -1.4) Hangi Unix olmayan uyarlamalarý bulunmaktadýr? - -PostgreSQL 8.0 sürümü ile , PostgreSQL artýk Win2000, WinXP ve Win2003 gibi Microsoft Windows NT tabanlý iţletim -sistemlerinde dođal olarak çalýţmaya baţlamýţtýr. Paketlenmiţ bir kurulum programý, http://pgfoundry.org/projects/pginstaller -adresinden indirilebilir. - -Ayrýca, http://forge.novell.com adresinde Novell Netware 6 portu bulunmaktadýr. -1.5) PostgreSQL'i nereden indirebilirim? - -PostgreSQL için ana anonim ftp sitesi ftp://ftp.PostgreSQL.org/pub adresidir. Yansýlar için, ana web sayfamýza -bakabilirsiniz. -1.6) Nereden destek alabilirim? - -Ana e-posta listesi : pgsql-general@PostgreSQL.org. PostgreSQL konusundaki tartýţmalara açýktýr. Üye olmak için, -aţađýdaki satýrlarý e-postanýzýn body kýsmýna (konu kýsmýna deđil) yazýp, pgsql-general-request@PostgreSQL.org adresine -gönderin: + PostgreSQL için Sýkça Sorulan Sorular (SSS) + + Son güncelleme : 15 Kasým 2004 Pazartesi - 15:03:23 + + Current maintainer: Bruce Momjian (pgman@candle.pha.pa.us) + + Çevirenler : Devrim Gündüz (devrim@tdmsoft.com) + Nicolai Tufar (ntufar@tdmsoft.com) + Volkan YAZICI (volkany@phreaker.net) + + Bu belgenin en güncel hali, + http://www.PostgreSQL.org/docs/faqs/FAQ_turkish.html ve + http://www.gunduz.org/seminer/pg/FAQ_turkish.html adreslerinde + görülebilir. + + Platforma özel sorularýnýz, http://www.PostgreSQL.org/docs/index.html + adresinde yanýtlanýr. + _________________________________________________________________ + + Genel Sorular + + 1.1) PostgreSQL nedir? Nasýl okunur? + 1.2) PostgreSQL'in haklarý nedir? + 1.3) PostgreSQL, hangi Unix platformlarýnda çalýţýr? + 1.4) Hangi Unix olmayan uyarlamalarý bulunmaktadýr? + 1.5) PostgreSQL'i nereden indirebilirim? + 1.6) Desteđi nereden alabilirim? + 1.7) En son sürümü nedir? + 1.8) Hangi belgelere ulaţabilirim? + 1.9) Bilinen hatalar ya da eksik özelliklere nereden ulasabilirim? + 1.10) Nasýl SQL öđrenebilirim? + 1.11) PostgreSQL 2000 yýlýna uyumlu mudur? + 1.12) Geliţtirme takýmýna nasýl katýlabilirim?? + 1.13) Bir hata raporunu nasýl gönderebilirim? + 1.14) PostgreSQL, diđer VTYS(DBMS) lerle nasýl karţýlaţtýrýlabilir? + 1.15) PostgreSQL'e maddi açýdan nasýl destek olabilirim? + + Kullanýcý/istemci Sorularý + + 2.1) PostgreSQL için ODBC sürücüleri var mý? + 2.2) PostgreSQL'i web sayfalarýnda kullanabilmek için hangi araçlar + bulunmaktadýr? + 2.3) PostgreSQL'in grafik kullanýcý arabirimi var mýdýr? + 2.4) PostgreSQL ile iletiţimi kurabilmek için hangi dilleri + kullanabilirim? + + Yönetimsel Sorular + + 3.1) PostgreSQL'i /usr/local/pgsql dizininden baţka dizinlere nasýl + kurabilirim? + 3.2) Postmaster'ý baţlattýđýmda Bad System Call ya da core dumped + mesajý alýyorum. Neden? + 3.3) Postmaster'ý baţlattýđýmda, IpcMemoryCreate hatasý alýyorum. + Neden? + 3.4) Postmaster'ý, baţlattýđýmda, IpcSemaphoreCreate hatasý alýyorum. + Neden? + 3.5) Diđer bilgisayarlarýn benim PostgreSQL veritabaný sunucuma + bađlantýlarýný nasýl kontrol edebilirim? + 3.6) Veritabaný motorunu daha iyi baţarým icin nasýl ayarlayabilirim? + 3.7) Hangi hata ayýklama özellikleri bulunmaktadýr? + 3.8) Bađlanmaya çalýţýrken, neden "Sorry, too many clients" hatasýný + alýyorum. Neden? + 3.9) pgsql_tmpdizinin içindeki dosyalar nelerdir? + 3.10) PostgreSQL sürümlerini yükseltmek için neden bir dump/reload + iţlemi gerçekleţtirmek zorundayým? + 3.11) Nasýl bir donaným kullanmalýyým?br> + + Ýţletimsel Sorular + + 4.1) Binary cursor ve normal cursor arasýndaki fark nedýr? + 4.2) Sorgunun sadece ilk birkaç satýrýný nasýl SELECT edebilirim? + 4.3) psql'in içinde gördügüm tablolarýn ya da diđer ţeylerin listesini + nasýl alabilirim? + 4.4) Bir tablodan bir kolonu nasýl kaldýrabilirim? + 4.5) Bir satýr, tablo ve veritabaný için en fazla büyüklük nedir? + 4.6) Tipik bir metin dosyasýndaki veriyi saklamak için ne kadar disk + alaný gereklidir? + 4.7) Veritabanýnda hangi tablo ya da index'lerin tanýmlandýđýný nasýl + görebilirim? + 4.8) Sorgularým cok yavaţ, ya da index'lerimi kullanmýyorlar. Neden? + 4.9) Query-optimizer'ýn sorgularýmý nasýl deđerlendirdiđini, iţleme + soktuđunu nasýl görebilirim? + 4.10) R-tree index nedir? + 4.11) Genetic Query Optimizer nedir? + 4.12) Düzenli ifade (Regular Expression) aramalarýný ve büyük/küçük + harfe duyarsýz aramalarý nasýl yapabilirim? Bu büyük/küçük harfe + duyarlý aramalar için index'i nasýl kullanabilirim? + 4.13) Bir sorguda, bir alanýn NULL olduđunu nasýl ortaya + çýkarabilirim? + 4.14) Çesitli karakter tipleri arasýndaki farklar nelerdir? + 4.15.1) Nasýl serial/otomatik artan (auto-incrementing) bir alan + yaratabilirim? + 4.15.2) Serial giriţinin deđerini nasýl alabilirim? + 4.15.3) currval() ve nextval() diđer kullanýcýlara sorun yaratmaz mý? + 4.15.4) Neden sequence sayýlarýn transaction iţleminin iptalinden + sonra yeniden kullanýlýyor? Neden sequence/SERIAL kolonumdaki + sayýlarda atlamalar oluyor? + 4.16) OID nedir? TID nedir? + 4.17) PostgreSQL' de kullanýlan bazý terimlerin anlamlarý nelerdir? + 4.18) Neden "ERROR: Memory exhausted in AllocSetAlloc()" hatasýný + alýyorum? + 4.19) Hangi PostgreSQL sürümünü çalýstýrdýđýmý nasýl görebilirim? + 4.20) Neden large-object iţlemlerim, "invalid large obj descriptor" + hatasýný veriyor? + 4.21) Ţu andaki zamaný öntanýmlý deđer olarak kabul eden kolonu nasýl + yaratýrým? + 4.22) Neden IN kullanan subquery'lerim çok yavaţ? + 4.23) Outer join iţlemini nasýl yapabilirim? + 4.24) Ayný anda birden fazla veritabanýnda nasýl iţlem yapabilirim? + 4.25) Bir fonksiyondan nasýl çoklu satýr ya da kolon döndürebilirim? + 4.26) Neden Pl/PgSQL fonksiyonlarý içinden güvenli bir ţekilde tablo + yaratma/kaldýrma iţlemlerini yapamýyoruz? + 4.27) Hangi ţifreleme seçenekleri bulunmaktadýr? + + PostgreSQL Özelliklerini Geniţletmek + + 5.1) Kullanýcý-tanýmlý bir fonksiyon yazdým. psql'de çalýţtýrdýđým + zaman neden core dump ediyor? + 5.2) PostgreSQL'e nasýl yeni veri tipleri/fonksiyonlar ekleyebilirim? + 5.3) Bir tuple döndürmek için bir C fonksiyonunu nasýl yazarým? + 5.4) Bir kaynak dosyasýnda deđiţiklik yaptým. Yeniden derlememe rađmen + deđiţiklik geçerli olmuyor. Neden? + _________________________________________________________________ + + Genel Sorular + + 1.1) PostgreSQL nedir? Nasýl okunur? + + PostgreSQL, Post-Gres-Q-L. olarak okunur + + PostgreSQL, yeni-nesil VTYS araţtýrma prototipi olan POSTGRES + veritabaný yönetim sisteminin geliţtirilmesidir. POSTGRES'in zengin + veri tiplerini ve güçlü veri modelini tutarken, SQL'in geliţtirilmiţ + alt kümesi olan PostQuel dilini kullanýr. PostgreSQL ücretsizdir ve + kaynak kodu açýk dađýtýlýr. + + PostgreSQL, PostgreSQL geliţtirme listesine üye olan bir Internet + geliţtirici takýmý tarafýndan geliţtirilir. Ţu andaki koordinatör, + Marc G. Fournier (scrappy@PostgreSQL.org). (Bu takýma nasýl + katýlacagýnýzý öđrenmek için 1.6 numaralý maddeyi okuyunuz.) Bu takým, + tüm PostgreSQL geliţiminden sorumludur. + + PostgreSQL 1.01 sürümünün yazarlarý Andrew Yu ve Jolly Chen idi. + Bunlarýn dýţýnda bir kaç kisi de uyarlama, hata ayýklama ve kodun + geliţtirilmesi için çalýsmýţtý. PostgreSQL'in türediđi orijinal + Postgres kodu, lisans, lisansüstü ve akademisyenler tarafýndan, + Professor Michael Stonebraker (University of California, Berkeley) + koordinatörlügünde yazýlmýţtýr. + + Berkley'deki yazýlýmýn adý Postgres idi. SQL uyumluluđu 1995'te + eklenince, adý Postgres 95 oldu. 1996 yýlýnýn sonlarýnda adý + PostgreSQL olarak deđiţtirildi. + + 1.2) PostgreSQL'in haklarý nedir? + + 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. + + Üstteki metin klasik açýk-kod lisansý olan BSD lisansýdýr. Kaynak + kodun nasýl kullanýlabileceđine dair sýnýrlamalarý yoktur. Bu lisansý + seviyoruz. Deđiţtirme niyetimiz bulunmamaktadýr. + + 1.3) PostgreSQL, hangi Unix platforlarýnda çalýţýr? + + Genel olarak, modern bir Unix-uyumlu platform PostgreSQL'i + çalýţtýracaktýr. Ayrýntýlý bilgi için kurulum belgelerine + bakabilirsiniz. + + 1.4) Hangi Unix olmayan uyarlamalarý bulunmaktadýr? + + PostgreSQL 8.0 sürümü ile , PostgreSQL artýk Win2000, WinXP ve Win2003 + gibi Microsoft Windows NT tabanlý iţletim sistemlerinde dođal olarak + çalýţmaya baţlamýţtýr. Paketlenmiţ bir kurulum programý, + http://pgfoundry.org/projects/pginstaller. adresinden indirilebilir. + + Ayrýca, http://forge.novell.com adresinde Novell Netware 6 portu + bulunmaktadýr. + + 1.5) PostgreSQL'i nereden indirebilirim? + + PostgreSQL için ana anonim ftp sitesi ftp://ftp.PostgreSQL.org/pub + adresidir. Yansýlar için, ana web sayfamýza bakabilirsiniz. + + 1.6) Nereden destek alabilirim? + + Ana e-posta listesi : pgsql-general@PostgreSQL.org. PostgreSQL + konusundaki tartýţmalara açýktýr. Üye olmak için, aţađýdaki satýrlarý + e-postanýzýn body kýsmýna (konu kýsmýna deđil) yazýp, + pgsql-general-request@PostgreSQL.org adresine gönderin: subscribe end -Ayný zamanda, bir digest listesi bulunmaktadýr. Bu listeye üye olmak için, pgsql-general-digest-request@PostgreSQL.org -adresine, body kýsmýnda - + Ayný zamanda, bir digest listesi bulunmaktadýr. Bu listeye üye olmak + için, pgsql-general-digest-request@PostgreSQL.org adresine, body + kýsmýnda subscribe end -yazan bir e-posta atmanýz yeterli olacaktýr. - -Digest postalar, ana liste 30k civarýnda e-postaya ulaţtýđýnda üyelere gönderilmektedir. - -Bug'lar için bir e-posta listesi bulunmaktadýr. Bu listeye üye olmak için, pgsql-bugs-request@PostgreSQL.org adresine, -body kýsmýnda - + yazan bir e-posta atmanýz yeterli olacaktýr. + + Digest postalar, ana liste 30k civarýnda e-postaya ulaţtýđýnda üyelere + gönderilmektedir. + + Bug'lar için bir e-posta listesi bulunmaktadýr. Bu listeye üye olmak + için, pgsql-bugs-request@PostgreSQL.org adresine, body kýsmýnda subscribe end -yazan bir e-posta atmanýz yeterli olacaktýr. - -Ayný zamanda, geliţtiriciler için tartýţma listesi bulunmaktadýr. Bu listeye üye olmak için, -pgsql-hackers-request@PostgreSQL.org adresine, body kýsmýnda - + yazan bir e-posta atmanýz yeterli olacaktýr. + + Ayný zamanda, geliţtiriciler için tartýţma listesi bulunmaktadýr. Bu + listeye üye olmak için, pgsql-hackers-request@PostgreSQL.org adresine, + body kýsmýnda subscribe end -yazan bir e-posta atmanýz yeterli olacaktýr. - -Bunun dýţýndaki e-posta listelerine ve PostgreSQL hakkýnda bilgiye, PostgreSQL WWW ana sayfasýndan ulasabilirsiniz: -http://www.PostgreSQL.org - -Ayný zamanda, EFNet üzerinde, #PostgreSQL adlý bir IRC kanalý bulunmaktadýr. Bunun için, irc -c '#PostgreSQL' "$USER" -irc.phoenix.net Unix komutunu kullanabilirsiniz. - -Ticari destek veren firmalarýn listesine - -http://www.postgresql.org/users-lounge/commercial-support.html - -adresinden ulaţbilirsiniz. -1.7) En son sürüm nedir? - -PostgreSQL'in son sürümü 7.4.6'dýr. - -Her 6-8 ayda ana sürüm çýkarýlmasý planlanmaktadýr. -1.8) Hangi belgelere ulaţabilirim? - -Dađýtýmýn içinde, kitapçýklar, kitapçýk sayfalarý ve bazý küçük örnekler verilmektedir. /doc dizinine bakýnýz. Ayrýca, -bu el kitapçýklarýný online olarak http://www.PostgreSQL.org/docs/ adresinden inceleyebilirsiniz. - -http://www.PostgreSQL.org/docs/awbook.html ve http://www.commandprompt.com/ppbook adreslerinde PostgreSQL kitaplarý -bulunmaktadýr. PostgreSQL kitablarýnýn listesine, http://www.ca.PostgreSQL.org/books/ adresinden ulaţaiblirsiniz. -Ayrýca, PostgreSQL konusundaki teknik makalelere de http://techdocs.PostgreSQL.org/ adresinden ulaţabilirsiniz. - -psql'in, \d ile baslayan veri tipler, operatorler, fonksiyonlar, aggregate'ler, vb. ile ilgili güzel komutlarý vardýr. - -Web sitemiz daha fazla belgeyi içermektedir. -1.9) Bilinen hatalar ya da eksik özelliklere nereden ulaţabilirim? - -PostgreSQL SQL-92 uyumluluđu içindedir, standartlardan fazla da özellikleri bulunmaktadýr. Bilinen hatalar, eksik -özellikler ve gelecek ile ilgili planlar için TODO listesine bakýnýz. -1.10) Nasýl SQL öđrenebilirim? - -http:/www.PostgreSQL.org/docs/awbook.html adresindeki kitap SQL ögretecektir. http://www.commandprompt.com/ppbook -adresinde de bir baska PostgreSQL kitabý bulunmaktadýr. - -http://www.intermedia.net/support/sql/sqltut.shtm, -http://ourworld.compuserve.com/homepages/graeme_birchall/HTM_COOK.HTM http://sqlcourse.com ve http://sqlcourse2.com -adreslerinde de güzel belgeler bulunmaktadýr. - -Bir baţkasý da, http://members.tripod.com/er4ebus/sql/index.htm adresinde bulunan "Teach Yourself SQL in 21 Days, -Second Edition" kitabýdýr. - -Bazý kullanýcýlarýmýz da ţu kitabý önermektedirler: "The Practical SQL Handbook, Bowman, Judith S., et -al.,Addison-Wesley". Bazýlarý ise "The Complete Reference SQL, Groff et al., McGraw-Hill" kitabýný önermektedirler. -1.11) PostgreSQL 2000 yýlýna uyumlu mudur? - -Evet. -1.12) Geliţtirme takýmýna nasýl katýlabilirim? - -Öncelikle, en son kaynak kodunu indirin ve web sitemizdeki ya da dađýtýmýn içindeki PostgreSQL Developer belgesini -okuyun. Ardýndan, pgsql-hackers ve pgsql-patches listelerine üye olun. Üçüncü olarak da, pgsql-pacthes listesine yüksek -kalitede yamalar gönderin. - -PostgreSQL CVS arţivine eriţim izni olan, 10 kadar geliţtirici bulunmaktadýr. Hepsi defalarca, diđer kiţilerin -yaptýđýndan çok daha yüksek-kaliteli yamalar göndermiţlerdir. Ayrýca biz de bu geliţtiricilerin ekledikleri yamalarýn -yüksek kalitede olduđuna güveniyoruz. -1.13) Bir hata raporunu nasýl gönderebilirim? - -PostgreSQL BugTool sayfasýna gidiniz. O sayfada bir bug bildirmek için neleri yapmanýz gerektiđi anlatýlmýţtýr. - -Ayrýca, ftp://ftp.PostgreSQL.org/pub ftp adresimizde, yeni bir PostgreSQL sürümü ya da yamasý olup olmadýđýni kontrol -ediniz. -1.14) PostgreSQL, diger DBMS'lerle nasýl karţýlastýrýlabilir? - -Bir yazýlýmýn gücünü ölçmek için çeţitli yollar vardýr: Yazýlýmýn özellikleri, baţarýmý, güvenilirliđi, desteđi ve -ücreti. - -Özellikler: - -PostgreSQL mevcut büyük ticari veritabanlarýnýn, transaction, subselect, trigger, view, foreign key referential -integrity ve sophisticated locking gibi (user-defined types), rules, inheritance ve lock cakýţmalarýný düţürmek için -multi-version uyumluluk özellikleri bulunmaktadýr. - -Performans (Baţarým): - -PostgreSQL, diđer ticari ve açýk kaynak kodlu veritabanlarýyla yakýn baţarýmý sađlar. Bazý açýlardan daha hýzlýdýr, -diđer açýlardan da yavaţtýr. MySQL ya da daha zayýf veritabanlarý ile karţýlaţtýrýldýđýnda, INSERT/UPDATE iţlemlerinde, -transaction bazlý çalýstýđýmýz için daha yavaţýz. MySQL, yukarýdaki "özellikler" kýsmýnda belirtilenlerden hiç birine -sahip deđildir. Biz, baţarýmýmýzý her sürümde arttýrsak da, esneklik ve geliţmiţ özellikler için yapýlanmýţ durumdayýz. -PostgreSQL'i MySQL ile karţýlaţtýran ţu web sitesine bakabilirsiniz: http://openacs.org/why-not-mysql.html - -Güvenilirlik: - -DBMS'lerin güvenilir olmasý gerketiđi, yoksa deđerleri olmayacađýný düţünüyoruz. Çok iyi test edilmiţ, dengeli çalýsan -minimum sayýda hata içeren kod sunmaya çalýţýyoruz. Her bir sürüm en az 1 aylýk beta testlerinden geçirilmektedir. -Sürüm geçmiţine bakarsanýz, üretime hazýr, dengeli ve kararlý kodlar sunduđumuzu görebilirsiniz. Bu alanda, diđer -veritabaný yazýlýmlarýna üstünlüđümüz olduđuna inanmaktayýz. - -Destek: - -E-posta listemiz, oluţan herhangi bir sorunu çözebilecek büyük sayýda kullanýcý ve geliţtirici grubunu içerir. -Sorununuz için, en az bir ticari veritabaný kadar rahat çözüm bulabilirsiniz. Gelistiricilere, kullanýcý grubuna, -belgelere ve kaynak koda direk olarak eriţebilme, PostgreSQL desteđini, diđer DBMS'lere göre daha önemli kýlar. -Gereksinimi olanlara, ticari destek verilebilir. (Destek için 1.6 bölümüne bakýnýz.) - -Fiyat: - -Ticari ve ticari olmayan tüm kullanýmlarýnýz için PostgreSQL ücretsizdir. Kodumuzu, yukarýda belirtilen BSD-stili -lisanstaki sýnýrlamalar hariç, ürününüzün içine ekleyebilirsiniz. -1.15) PostgreSQL'e maddi açýdan nasýl destek olabilirim? - -PostgreSQL, 1996 yýlýndan beri 1. sýnýf altyapýya sahiptir. Bunun için, yýllar boyu çalýţýp bu altyapýyý oluţturup -yöneten Marc Fournier'e teţekkürler. - -Bir açýk kaynak kodlu proje için, kaliteli altyapý çok önemlidir. Bu altyapý, projenin kesilmesini önler ve projenin -ilerlemesini hýzlandýrýr. - -Tabii ki bu altyapý ucuz deđildir. Ýţlerin yürümesi için çeţitli yýlýk ve anlýk harcamalarýmýz olmaktadýr. Eđer siz ya -da ţirketinizin bu çabamýza bađýţta bulunabilecek parasý varsa, lütfen http://store.pgsql.com adresine gidiniz -ve bađýţta, hibede bulununuz. - -Web sayfasýnýn 'PostgreSQL Inc.' den bahsetmesine rađmen, "katkýda bulunanlar" (contributors) maddesi sadece PostgreSQL -projesini desteklemek içindir ve belirli bir ţirketin para kaynađý deđildir. isterseniz, bađlantý adresine bir çek -gönderebilirsiniz. -Kullanýcý/Ýstemci Sorularý -2.1) PostgreSQL icin ODBC sürücüleri var mý? - -iki tane ODBC sürücüsü bulunmaktadýr: PsqlODBC ve OpenLink ODBC. - -PsqlODBC'i http://gborg.postgresql.org/project/psqlodbc/projdisplay.php adresinden indirebilirsiniz. - -OpenLink ODBC http://www.openlinksw.com adresinden alýnabilir.Bu sürücü, kendi standart ODBC istemci yazýlýmý ile -çalýstýđýndan, destekledikleri her platformda (Win, Mac, Unix, VMS) PostgreSQL ODBC bulunmalidir. - -Ücretsiz sürümü olmakla beraber, ticari kalitede destek almak isteyenlere satmak isteyeceklerdir. Sorularýnýzý lütfen -postgres95@openlink.co.uk adresine gönderiniz. -2.2) PostgreSQL'i web sayfalarýnda kullanabilmek için hangi araçlar bulunmaktadýr? - -http://www.webreview.com/ adresinde, arka planda veritabaný çalýstýran Web sayfalarý için giriţ seviyesinde bilgi -bulunmaktadýr. - -Web ile bütünleţme için, PHP () mükemmel bir arabirim sunar. - -Karmaţýk sorunlar için, çođu kisi Perl arabirimini ve CGI.pm ya da mod_perl kullanýr. -2.3) PostgreSQL'in grafik kullanýcý arabirimi var mýdýr? - -Çeţitli grafik arabirimlerimiz bulunmaktadýr. Bunlarýn arasýnda, PgAccess (http://www.pgaccess.org/), PgAdmin II -(http://www.pgadmin.org/, sadece Win32 için), RHDB Admin (http://sources.redhat.com/rhdb/) ve Rekall -(http://www.thekompany.com/products/rekall/) bulunmaktadýr. Ayrýca, PostgreSQL için web tabanlý bir arabirim olan -PHPPgAdmin (http://phppgadmin.sourceforge.net/) bulunmaktadýr. - -Daha ayrýntýlý liste için http://techdocs.postgresql.org/guides/GUITools adresine bakabilirsiniz. -2.4) PostgreSQL ile iletiţimi kurabilmek için hangi dilleri kullanabilirim? - - * C (libpq) - * Embedded C (ecpg) - * Java (jdbc) - * Python (PyGreSQL) - * TCL (libpgtcl) - -Diđerleri için, http://gborg.postgresql.org adresindeki Drivers/Interfaces bölümüne bakabilirsiniz. -Yönetimsel Sorular -3.1) PostgreSQL'i, /usr/local/pgsql dizininden baţka dizinlere nasýl kurabilirim? - -configure betiđini çalýstýrýrken, --prefix seçeneđini veriniz. -3.2) postmaster'i baslattýgýmda, a Bad System Call ya da core dumped mesajý alýyorum. Neden? - -Bunun birçok nedeni olabilir. Ancak ilk kontrol edilmesi gereken sey, çekirdeginize System V uzantýlarýnýn kurulu olup -olmadýgýný kontrol etmek olabilir. PostgreSQL shared memory ve semaphores için çekirdek destegine gereksinim duyar. -3.3) postmaster'i baţlattýđýmda, ýpcMemoryCreate hatasý alýyorum. Neden? - -Ya çekirdeđinizde shared memory desteđiniz düzgünce yapýlandýrýlmamýţtýr, ya da çekirdeđinizdeki mevcut shared memory -miktarýný büyütmeniz gerekecektir. Gereksinim duyacađýnýz miktar, mimarinize ve postmaster için ayarladýgýnýz tampon -ile backend iţlemi sayýsýna bađlýdýr. Tüm sistemler için, tamponlar ve iţlemlerde öntanýmlý sayýlarla, ~ 1MB kadar yere -gereksinmeniz olacaktýr. PostgreSQL 7.3.2 Sistem Yöneticileri Rehberi'ne, shared memory ve semaphorelar hakkýndaki -ayrýntýlý bilgi için bakabilirsiniz. -3.4) postmaster'ý baţlattýđýmda, ýpcSemaphoreCreate hatasý alýyorum. Neden? - -Eđer hata, "ýpcSemaphoreCreate: semget failed (No space left on device)" ise, çekirdeđiniz yeterli semaphore ile -yapýlandýrýlmamýţ demektir. Postgres, her bir potansiyel backend için bir semaphore gereksinimi duyar. Geçici bir -çözüm, postmasterý backend iţlemleri için daha az miktarda sýnýrla baţlatmak olabilir. -N'i varsayýlan deđer olan -32'den küçük bir deđerle baţlatýnýz. Daha kalýcý bir çözüm, çekirdeđinizin SEMMNS ve SEMMNI parametrelerini yükseltmek -olacaktýr. - -Çalýţmayan semaphore'lar ađýr veritabaný iţlemlerinde çökme yaratabilirler. - -Eđer hata mesajýnýz baţka bir ţey ise, çekirdeđinizde semaphore desteđini yapýlandýrmamýţ olabilirsiniz. Shared memory -ve semaphore'lar hakkýndaki daha ayrýntýlý bilgi için PostgreSQL 7.3.2 Sistem Yöneticileri Rehberi'ne bakabilirsiniz. -3.5) Diger bilgisayarlarýn benim PostgreSQL veritabaný sunucuma bađlantýlarýný nasýl kontrol edebilirim? - -Ön tanýmlý olarak, PostgreSQL sadece yerel makineden Unix domain sockets kullanarak bađlanýlmasýna izin verir. Diger -makineler, postmaster'a -i etiketini geçirmezseniz ve $PGDATA/pg_hba.conf dosyasýný düzenleyerek host-based -authentication'a olanak vermezseniz, bađlantý yapamayacaklardýr. -3.6) Veritabani motorunu daha iyi baţarým için nasýl ayarlayabilirim? - -Index'ler sorgularý hýzlandýrabilir. EXPLAIN komutu, PostgreSQL'in sorgunuzu nasýl yorumladýđýný ve hangi index'leri -kullandýđýný görmenize izin verir. - -Eđer cok fazla INSERT iţlemi yapýyorsanýz, bunlarý büyük bir toplu iţlem dosyasýkullanýp COPY komutu ile veritabanýna -girmeyi deneyiniz. Bu, tekil INSERT'lerden daha hýzlýdýr. Ýkinci olarak, BEGIN WORK/COMMIT transaction blođu içinde -olmayan ifadeler kendi transaction'larýndaymýţ gibi düţünülür. Çoklu ifadeleri tek bir transaction blođu içinde -yapabilirsiniz. Bu, transaction overhead'ini düţürecektir. Tek bir transaction blođu içinde birden çok ifadeyi -çalýţtýrmayý deneyebilirsiniz. Bu da ayný ţekilde, transaction overhead'ini düţürür. - -Çeţitli ayarlama seçenekleri mevcuttur. fsync() iţlemini, postmaster'ý -o -F seçeneđi ile baţlatarak devre dýţý -býrakabilirsiniz. Bu iţlem, fsync()'lerin her transactiondan sonra diski flush etmesini engelleyecektir. - -Ayný zamanda, postmaster'i -B seçeneđi ile baţlatýp, backend iţlemleri tarafýndan kullanýlan shared memory buffers -sayýlarýný arttýrabilirsiniz. Eđer bu parametreyi çok yüksek tutarsanýz, çekirdeđinizin shared memory bölgesindeki -limiti aţma olasýlýđýnýz yüzünden postmaster baţlayamayabilir. Her bir tampon (buffer) 8K'dýr. Öntanýmlý sayý ise 64 -tampondur. - -Ayný ţekilde, backend'in -S seçeneđini geçici sýralamalar için backend süreçleri tarafýndan kullanýlacak hafýzayý -arttýrmak amacýyla kullanabilirsiniz. -S seçeneđi kilobayt cinsinden deđer alýr ve ön tanýmlý deđeri 512'dir (512 K) - -Tablolardaki veriyi bir index'e eţlemek amacýyla gruplama için CLUSTER komutunu kullanabilirsiniz. Ayrýntýlý bilgi için -CLUSTER komutunun yardým sayfasýna bakabilirsiniz. -3.7) Hangi hata ayýklama özellikleri bulunmaktadýr? - -PostgreSQL, hata ayýklama amacýyla kullanýlabilecek durum bilgisi rapor eden çeţitli özeliklere sahiptir. - -Öncelikle, configure betiđini --enable-cassert seçeneđiyle çalýţtýrýrsanýz, bir çok assert() backend calýţmasýný -gözlemler ve beklenmeyen bir durumda programý durdurur. - -Postmaster ve postgres çeţitli hata ayýklama seçeneklerine sahiptir. Öncelikle, postmaster'ý baţlattýđýnýzda, standart -çýktýyý ve hatalarý bir log dosyasýna yönlendirdiđinize emin olun: - + yazan bir e-posta atmanýz yeterli olacaktýr. + + Bunun dýţýndaki e-posta listelerine ve PostgreSQL hakkýnda bilgiye, + PostgreSQL WWW ana sayfasýndan ulasabilirsiniz: + http://www.PostgreSQL.org + + Ayný zamanda, EFNet üzerinde, #PostgreSQL adlý bir IRC kanalý + bulunmaktadýr. Bunun için, irc -c '#PostgreSQL' "$USER" + irc.phoenix.net Unix komutunu kullanabilirsiniz. + + Ticari destek veren firmalarýn listesine + + http://www.postgresql.org/users-lounge/commercial-support.html + + adresinden ulaţbilirsiniz. + + 1.7) En son sürüm nedir? + + PostgreSQL'in son sürümü 7.4.6'dýr. + + Her 6-8 ayda ana sürüm çýkarýlmasý planlanmaktadýr. + + 1.8) Hangi belgelere ulaţabilirim? + + Dađýtýmýn içinde, kitapçýklar, kitapçýk sayfalarý ve bazý küçük + örnekler verilmektedir. /doc dizinine bakýnýz. Ayrýca, bu el + kitapçýklarýný online olarak http://www.PostgreSQL.org/docs/ + adresinden inceleyebilirsiniz. + + http://www.PostgreSQL.org/docs/awbook.html ve + http://www.commandprompt.com/ppbook adreslerinde PostgreSQL kitaplarý + bulunmaktadýr. PostgreSQL kitablarýnýn listesine, + http://www.ca.PostgreSQL.org/books/ adresinden ulaţaiblirsiniz. + Ayrýca, PostgreSQL konusundaki teknik makalelere de + http://techdocs.PostgreSQL.org/ adresinden ulaţabilirsiniz. + + psql'in, \d ile baslayan veri tipler, operatorler, fonksiyonlar, + aggregate'ler, vb. ile ilgili güzel komutlarý vardýr. + + Web sitemiz daha fazla belgeyi içermektedir. + + 1.9) Bilinen hatalar ya da eksik özelliklere nereden ulaţabilirim? + + PostgreSQL SQL-92 uyumluluđu içindedir, standartlardan fazla da + özellikleri bulunmaktadýr. Bilinen hatalar, eksik özellikler ve + gelecek ile ilgili planlar için TODO listesine bakýnýz. + + 1.10) Nasýl SQL öđrenebilirim? + + http:/www.PostgreSQL.org/docs/awbook.html adresindeki kitap SQL + ögretecektir. http://www.commandprompt.com/ppbook adresinde de bir + baska PostgreSQL kitabý bulunmaktadýr. + + http://www.intermedia.net/support/sql/sqltut.shtm, + http://ourworld.compuserve.com/homepages/graeme_birchall/HTM_COOK.HTM + http://sqlcourse.com ve http://sqlcourse2.com adreslerinde de güzel + belgeler bulunmaktadýr. + + Bir baţkasý da, http://members.tripod.com/er4ebus/sql/index.htm + adresinde bulunan "Teach Yourself SQL in 21 Days, Second Edition" + kitabýdýr. + + Bazý kullanýcýlarýmýz da ţu kitabý önermektedirler: "The Practical SQL + Handbook, Bowman, Judith S., et al.,Addison-Wesley". Bazýlarý ise "The + Complete Reference SQL, Groff et al., McGraw-Hill" kitabýný + önermektedirler. + + 1.11) PostgreSQL 2000 yýlýna uyumlu mudur? + + Evet. + + 1.12) Geliţtirme takýmýna nasýl katýlabilirim? + + Öncelikle, en son kaynak kodunu indirin ve web sitemizdeki ya da + dađýtýmýn içindeki PostgreSQL Developer belgesini okuyun. Ardýndan, + pgsql-hackers ve pgsql-patches listelerine üye olun. Üçüncü olarak da, + pgsql-pacthes listesine yüksek kalitede yamalar gönderin. + + PostgreSQL CVS arţivine eriţim izni olan, 10 kadar geliţtirici + bulunmaktadýr. Hepsi defalarca, diđer kiţilerin yaptýđýndan çok daha + yüksek-kaliteli yamalar göndermiţlerdir. Ayrýca biz de bu + geliţtiricilerin ekledikleri yamalarýn yüksek kalitede olduđuna + güveniyoruz. + + 1.13) Bir hata raporunu nasýl gönderebilirim? + + PostgreSQL BugTool sayfasýna gidiniz. O sayfada bir bug bildirmek için + neleri yapmanýz gerektiđi anlatýlmýţtýr. + + Ayrýca, ftp://ftp.PostgreSQL.org/pub ftp adresimizde, yeni bir + PostgreSQL sürümü ya da yamasý olup olmadýđýni kontrol ediniz. + + 1.14) PostgreSQL, diger DBMS'lerle nasýl karţýlastýrýlabilir? + + Bir yazýlýmýn gücünü ölçmek için çeţitli yollar vardýr: Yazýlýmýn + özellikleri, baţarýmý, güvenilirliđi, desteđi ve ücreti. + + Özellikler: + + PostgreSQL mevcut büyük ticari veritabanlarýnýn, transaction, + subselect, trigger, view, foreign key referential integrity ve + sophisticated locking gibi (user-defined types), rules, inheritance ve + lock cakýţmalarýný düţürmek için multi-version uyumluluk özellikleri + bulunmaktadýr. + + Performans (Baţarým): + + PostgreSQL, diđer ticari ve açýk kaynak kodlu veritabanlarýyla yakýn + baţarýmý sađlar. Bazý açýlardan daha hýzlýdýr, diđer açýlardan da + yavaţtýr. MySQL ya da daha zayýf veritabanlarý ile + karţýlaţtýrýldýđýnda, INSERT/UPDATE iţlemlerinde, transaction bazlý + çalýstýđýmýz için daha yavaţýz. MySQL, yukarýdaki "özellikler" + kýsmýnda belirtilenlerden hiç birine sahip deđildir. Biz, baţarýmýmýzý + her sürümde arttýrsak da, esneklik ve geliţmiţ özellikler için + yapýlanmýţ durumdayýz. PostgreSQL'i MySQL ile karţýlaţtýran ţu web + sitesine bakabilirsiniz: http://openacs.org/why-not-mysql.html + + Güvenilirlik: + + DBMS'lerin güvenilir olmasý gerketiđi, yoksa deđerleri olmayacađýný + düţünüyoruz. Çok iyi test edilmiţ, dengeli çalýsan minimum sayýda hata + içeren kod sunmaya çalýţýyoruz. Her bir sürüm en az 1 aylýk beta + testlerinden geçirilmektedir. Sürüm geçmiţine bakarsanýz, üretime + hazýr, dengeli ve kararlý kodlar sunduđumuzu görebilirsiniz. Bu + alanda, diđer veritabaný yazýlýmlarýna üstünlüđümüz olduđuna + inanmaktayýz. + + Destek: + + E-posta listemiz, oluţan herhangi bir sorunu çözebilecek büyük sayýda + kullanýcý ve geliţtirici grubunu içerir. Sorununuz için, en az bir + ticari veritabaný kadar rahat çözüm bulabilirsiniz. Gelistiricilere, + kullanýcý grubuna, belgelere ve kaynak koda direk olarak eriţebilme, + PostgreSQL desteđini, diđer DBMS'lere göre daha önemli kýlar. + Gereksinimi olanlara, ticari destek verilebilir. (Destek için 1.6 + bölümüne bakýnýz.) + + Fiyat: + + Ticari ve ticari olmayan tüm kullanýmlarýnýz için PostgreSQL + ücretsizdir. Kodumuzu, yukarýda belirtilen BSD-stili lisanstaki + sýnýrlamalar hariç, ürününüzün içine ekleyebilirsiniz. + + 1.15) PostgreSQL'e maddi açýdan nasýl destek olabilirim? + + PostgreSQL, 1996 yýlýndan beri 1. sýnýf altyapýya sahiptir. Bunun + için, yýllar boyu çalýţýp bu altyapýyý oluţturup yöneten Marc + Fournier'e teţekkürler. + + Bir açýk kaynak kodlu proje için, kaliteli altyapý çok önemlidir. Bu + altyapý, projenin kesilmesini önler ve projenin ilerlemesini + hýzlandýrýr. + + Tabii ki bu altyapý ucuz deđildir. Ýţlerin yürümesi için çeţitli yýlýk + ve anlýk harcamalarýmýz olmaktadýr. Eđer siz ya da ţirketinizin bu + çabamýza bađýţta bulunabilecek parasý varsa, lütfen + http://store.pgsql.com/ adresine gidiniz ve bađýţta, hibede bulununuz. + + Web sayfasýnýn 'PostgreSQL Inc.' den bahsetmesine rađmen, "katkýda + bulunanlar" (contributors) maddesi sadece PostgreSQL projesini + desteklemek içindir ve belirli bir ţirketin para kaynađý deđildir. + isterseniz, bađlantý adresine bir çek gönderebilirsiniz. + _________________________________________________________________ + + Kullanýcý/Ýstemci Sorularý + + 2.1) PostgreSQL icin ODBC sürücüleri var mý? + + iki tane ODBC sürücüsü bulunmaktadýr: PsqlODBC ve OpenLink ODBC. + + PsqlODBC'i + http://gborg.postgresql.org/project/psqlodbc/projdisplay.php + adresinden indirebilirsiniz. + + OpenLink ODBC http://www.openlinksw.com adresinden alýnabilir.Bu + sürücü, kendi standart ODBC istemci yazýlýmý ile çalýstýđýndan, + destekledikleri her platformda (Win, Mac, Unix, VMS) PostgreSQL ODBC + bulunmalidir. + + Ücretsiz sürümü olmakla beraber, ticari kalitede destek almak + isteyenlere satmak isteyeceklerdir. Sorularýnýzý lütfen + postgres95@openlink.co.uk adresine gönderiniz. + + 2.2) PostgreSQL'i web sayfalarýnda kullanabilmek için hangi araçlar + bulunmaktadýr? + + http://www.webreview.com/ adresinde, arka planda veritabaný çalýstýran + Web sayfalarý için giriţ seviyesinde bilgi bulunmaktadýr. + + Web ile bütünleţme için, PHP () mükemmel bir arabirim sunar. + + Karmaţýk sorunlar için, çođu kisi Perl arabirimini ve CGI.pm ya da + mod_perl kullanýr. + + 2.3) PostgreSQL'in grafik kullanýcý arabirimi var mýdýr? + + Çeţitli grafik arabirimlerimiz bulunmaktadýr. Bunlarýn arasýnda, + PgAccess (http://www.pgaccess.org/), PgAdmin II + (http://www.pgadmin.org/, sadece Win32 için), RHDB Admin + (http://sources.redhat.com/rhdb/) ve Rekall + (http://www.thekompany.com/products/rekall/) bulunmaktadýr. Ayrýca, + PostgreSQL için web tabanlý bir arabirim olan PHPPgAdmin + (http://phppgadmin.sourceforge.net/) bulunmaktadýr. + + Daha ayrýntýlý liste için + http://techdocs.postgresql.org/guides/GUITools adresine + bakabilirsiniz. + + 2.4) PostgreSQL ile iletiţimi kurabilmek için hangi dilleri kullanabilirim? + + * C (libpq) + * Embedded C (ecpg) + * Java (jdbc) + * Python (PyGreSQL) + * TCL (libpgtcl) + + Diđerleri için, http://gborg.postgresql.org adresindeki + Drivers/Interfaces bölümüne bakabilirsiniz. + _________________________________________________________________ + + Yönetimsel Sorular + + 3.1) PostgreSQL'i, /usr/local/pgsql dizininden baţka dizinlere nasýl + kurabilirim? + + configure betiđini çalýstýrýrken, --prefix seçeneđini veriniz. + + 3.2) postmaster'i baslattýgýmda, a Bad System Call ya da core dumped mesajý + alýyorum. Neden? + + Bunun birçok nedeni olabilir. Ancak ilk kontrol edilmesi gereken sey, + çekirdeginize System V uzantýlarýnýn kurulu olup olmadýgýný kontrol + etmek olabilir. PostgreSQL shared memory ve semaphores için çekirdek + destegine gereksinim duyar. + + 3.3) postmaster'i baţlattýđýmda, ýpcMemoryCreate hatasý alýyorum. Neden? + + Ya çekirdeđinizde shared memory desteđiniz düzgünce + yapýlandýrýlmamýţtýr, ya da çekirdeđinizdeki mevcut shared memory + miktarýný büyütmeniz gerekecektir. Gereksinim duyacađýnýz miktar, + mimarinize ve postmaster için ayarladýgýnýz tampon ile backend iţlemi + sayýsýna bađlýdýr. Tüm sistemler için, tamponlar ve iţlemlerde + öntanýmlý sayýlarla, ~ 1MB kadar yere gereksinmeniz olacaktýr. + PostgreSQL 7.3.2 Sistem Yöneticileri Rehberi'ne, shared memory ve + semaphorelar hakkýndaki ayrýntýlý bilgi için bakabilirsiniz. + + 3.4) postmaster'ý baţlattýđýmda, ýpcSemaphoreCreate hatasý alýyorum. Neden? + + Eđer hata, "ýpcSemaphoreCreate: semget failed (No space left on + device)" ise, çekirdeđiniz yeterli semaphore ile yapýlandýrýlmamýţ + demektir. Postgres, her bir potansiyel backend için bir semaphore + gereksinimi duyar. Geçici bir çözüm, postmasterý backend iţlemleri + için daha az miktarda sýnýrla baţlatmak olabilir. -N'i varsayýlan + deđer olan 32'den küçük bir deđerle baţlatýnýz. Daha kalýcý bir çözüm, + çekirdeđinizin SEMMNS ve SEMMNI parametrelerini yükseltmek olacaktýr. + + Çalýţmayan semaphore'lar ađýr veritabaný iţlemlerinde çökme + yaratabilirler. + + Eđer hata mesajýnýz baţka bir ţey ise, çekirdeđinizde semaphore + desteđini yapýlandýrmamýţ olabilirsiniz. Shared memory ve + semaphore'lar hakkýndaki daha ayrýntýlý bilgi için PostgreSQL 7.3.2 + Sistem Yöneticileri Rehberi'ne bakabilirsiniz. + + 3.5) Diger bilgisayarlarýn benim PostgreSQL veritabaný sunucuma + bađlantýlarýný nasýl kontrol edebilirim? + + Ön tanýmlý olarak, PostgreSQL sadece yerel makineden Unix domain + sockets kullanarak bađlanýlmasýna izin verir. Diger makineler, + postmaster'a -i etiketini geçirmezseniz ve $PGDATA/pg_hba.conf + dosyasýný düzenleyerek host-based authentication'a olanak vermezseniz, + bađlantý yapamayacaklardýr. + + 3.6) Veritabani motorunu daha iyi baţarým için nasýl ayarlayabilirim? + + Index'ler sorgularý hýzlandýrabilir. EXPLAIN komutu, PostgreSQL'in + sorgunuzu nasýl yorumladýđýný ve hangi index'leri kullandýđýný + görmenize izin verir. + + Eđer cok fazla INSERT iţlemi yapýyorsanýz, bunlarý büyük bir toplu + iţlem dosyasýkullanýp COPY komutu ile veritabanýna girmeyi deneyiniz. + Bu, tekil INSERT'lerden daha hýzlýdýr. Ýkinci olarak, BEGIN + WORK/COMMIT transaction blođu içinde olmayan ifadeler kendi + transaction'larýndaymýţ gibi düţünülür. Çoklu ifadeleri tek bir + transaction blođu içinde yapabilirsiniz. Bu, transaction overhead'ini + düţürecektir. Tek bir transaction blođu içinde birden çok ifadeyi + çalýţtýrmayý deneyebilirsiniz. Bu da ayný ţekilde, transaction + overhead'ini düţürür. + + Çeţitli ayarlama seçenekleri mevcuttur. fsync() iţlemini, postmaster'ý + -o -F seçeneđi ile baţlatarak devre dýţý býrakabilirsiniz. Bu iţlem, + fsync()'lerin her transactiondan sonra diski flush etmesini + engelleyecektir. + + Ayný zamanda, postmaster'i -B seçeneđi ile baţlatýp, backend iţlemleri + tarafýndan kullanýlan shared memory buffers sayýlarýný + arttýrabilirsiniz. Eđer bu parametreyi çok yüksek tutarsanýz, + çekirdeđinizin shared memory bölgesindeki limiti aţma olasýlýđýnýz + yüzünden postmaster baţlayamayabilir. Her bir tampon (buffer) 8K'dýr. + Öntanýmlý sayý ise 64 tampondur. + + Ayný ţekilde, backend'in -S seçeneđini geçici sýralamalar için backend + süreçleri tarafýndan kullanýlacak hafýzayý arttýrmak amacýyla + kullanabilirsiniz. -S seçeneđi kilobayt cinsinden deđer alýr ve ön + tanýmlý deđeri 512'dir (512 K) + + Tablolardaki veriyi bir index'e eţlemek amacýyla gruplama için CLUSTER + komutunu kullanabilirsiniz. Ayrýntýlý bilgi için CLUSTER komutunun + yardým sayfasýna bakabilirsiniz. + + 3.7) Hangi hata ayýklama özellikleri bulunmaktadýr? + + PostgreSQL, hata ayýklama amacýyla kullanýlabilecek durum bilgisi + rapor eden çeţitli özeliklere sahiptir. + + Öncelikle, configure betiđini --enable-cassert seçeneđiyle + çalýţtýrýrsanýz, bir çok assert() backend calýţmasýný gözlemler ve + beklenmeyen bir durumda programý durdurur. + + Postmaster ve postgres çeţitli hata ayýklama seçeneklerine sahiptir. + Öncelikle, postmaster'ý baţlattýđýnýzda, standart çýktýyý ve hatalarý + bir log dosyasýna yönlendirdiđinize emin olun: cd /usr/local/pgsql ./bin/postmaster >server.log 2>&1 & -Bu iţlem PostgreSQL ana dizinine server.log dosyasý yerleţtirecektir. Bu dosya sunucunun yaţadýđý sorunlar ya da -hatalar hakkýnda yararlý bilgiler içerir. -d seçeneđi, hata ayýklama seviyesini belirten bir rakam ile kullanýlýr. -Yüksek hata ayýklama seviyelerinin büyük log dosyalarý oluţturacađýný unutmayýnýz. - -Eđer postmaster çalýţmýyorsa, postgres backend'ini komut satýrýndan çalýţtýrabilir ve SQL ifadenizi direk olarak -yazabilirsiniz. Bu sadece hata ayýklama amacýyla önerilir. Burada, noktalý virgülün deđil de yeni bir satýrýn sorguyu -sonlandýrdýđýný unutmayýnýz. Eđer hata ayýklama sembolleri ile derlediyseniz, ne olduđunu görmek için bir hata -ayýklayýcý kullanabilirsiniz. backend postmaster'dan baţlatýlmadýđýndan, eţdeđer bir ortamda çalýţmamaktadýr ve -locking/backend etkileţim sorunlarý artabilir. - -Eđer postmaster çalýţýyorsa, bir pencerede psql'i çalýţtýrýn ve psql tarafýndan kullanýlan postgres sürecinin süreç -numarasýný (PID) bulun. Postgres süreci ile iliţkilendirmek için bir hata ayýklarýcý kullanýn. Sorgularý psql aracýlýđý -ile çalýţtýrabilirsiniz. Eđer postgres baţlangýcýnda hata ayýklamak istiyorsanýz, PGOPTIONS="-W n" seçeneđini -ayarlayabilir ve psql'i baţlatabilirsiniz. Bu iţlem, baţlangýcýn n saniye kadar gecikmesini sađlayacaktýr; böylece hata -ayýklayýcýyý sürece iliţkilendirdikten sonra baţlangýç sürecinin devam etmesini sađlayabilirsiniz. - -postgres programý hata ayýklama ve baţarým ölçümleri için -s, -A ve -t seçeneklerine sahiptir. -3.8) Bađlanmaya çalýţýrken, neden "Sorry, too many clients" hatasýný alýyorum? - -Postmaster'ýn eţzamanlý olarak baţlatabileceđi backend süreçleri sýnýrlarýný arttýrmanýz gerekmektedir. - -Ön tanýmlý deđer 32 süreçtir. Bunu, postmaster'ý uygun -N deđeri ile ya da postgresql.conf dosyasýný düzenleyerek -yeniden baţlatmakla arttýrabilirsiniz. - -Eđer -N deđerini 32'den büyük yapacaksanýz, ayný zamanda -B deđerini de deđiţtirmeniz gerektiđini unutmayýn. -B, -N'nin -en az 2 katý kadar olmalýdýr; daha iyi baţarým için bu sayýyý daha da arttýrmalýsýnýz. Yüksek sayýdaki backend -süreçleri için, çeţitli çekirdek yapýlandýrma parametrelerini arttýrmanýz gerekecektir. Yapýlmasý gerekenler, SHMMAX, -SEMMNS, SEMMNI, NPROC, MAXUPRC ve açýlabilecek dosyalarýn maksimum sayýsý olan NFILE ve NINODE deđerlerini -karýţtýrmaktýr. Bunun nedeni, PostgreSQL'in izin verilen backend süreçlerinin sayýsý üzerinde bir sýnýrý olmasýdýr. -Böylelikle sistem kaynaklarýnýn dýţýna çýkýlmayacaktýr. - -PostgreSQL'in 6.5 sürümüne kadar, en fazla backend sayýsý 64 idi ve bunu deđiţtirmek için include/storage/sinvaladt.h -dosyasý içindeki MaxBAckendid sabitini deđiţtirdek sonra yazýlýmý yeniden derlemek gerekiyordu. -3.9) pgsql_tmp dizinin içindeki dosyalar nelerdir? - -Sorgu çalýstýrýcý (query executer) tarafýndan yaratýlan geçici dosyalardýr. Örnegin, bir sýralama ORDER BY ile -yapýlacaksa ve sýralama backend'in -s parametresinin izin verdiđinden daha fazla alana gereksinim duyuyorsa, ekstra -veriyi tutmak için geçici dosyalar yaratýlýr. - -Geçici dosyalar, eđer sýralama sýrasýnda backend göçmezse otomatik olarak silinecektir. Eđer çalýţan durumda bir -backend'iniz yoksa, pg_tempNNN.NN dosyalarýný silmeniz güvenlidir. -3.10) PostgreSQL sürümlerini yükseltmek için neden bir dump/reload iţlemi gerçekleţtirmek zorundayým? - -PostgreSQL takýmý ara sürümlerde sadece küçük deđiţiklikler yapmaktadýr; bu yüzden 7.2 sürümünden 7.2.1'e yükseltmek -dump/restore iţlemi gerekmemektedir. Ancak, esas sürümlerde (örnek: 7.2'den 7.3'e) çođunlukla sistem tablolarýnýn ve -veri dosyalarýnýn iç yapýsý deđiţtirilir. Bu deđiţiklikler çođunlukla karmaţýktýr; dolayýsýyla veri dosyalarýnýn geriye -dönük uyumluluđu iţlemlerini yapmýyoruz. Dump iţlemi, veriyi genel biçimde alacađýndan yeniden yükleme esnasýnda veri, -yeni iç biçime uygun ţekilde yerleţtirilecektir. - -Disk biçiminin deđiţmediđi sürümlerde, pg_upgrade betiđi güncellemenin bir dump/restore gerektirmeden yapýlmasýný -sađlayacaktýr. pg_upgrade betiđinin o sürüm için bulunup bulunmadýđýný sürüm notlarý içinde bulabilirsiniz. -3.11) Nasýl bir donaným kullanmalýyým? - -PC donanýmý tamamen uyumlu olduđu için, insanlar tüm PC donanýmlarýnýn ayný kalitede olduđunu düţünürler. Oysa böyle -deđildir. ECC RAM, SCSI ve kaliteli anakartlar daha ucuz donanýmlara göre daha çok güvenilirlerdir ve baţarýmlarý daha -yüksektir. PostgreSQL hemen hemen tüm donanýmda çalýţabilmektedir, ancak güvenilirlik ve baţarým önemli ise donaným -seçeneklerini çok iyi araţtýrmak gereklidir. E-posta listelerimi donanýmlarla ilgili sorular ve de ticaret için -kullanýlabilir. -Ýţletimsel Sorular -4.1) Binary cursor ve normal cursor arasýndaki fark nedir? - -DECLARE yardým sayfasýna bakýnýz. -4.2) Sorgunun sadece ilk birkaç satýrýný nasýl SELECT edebilirim? - -FETCH yardým sayfasýna bakýnýz, ya da SELECT ... LIMIT ... kullanýnýz. - -Ýlk birkaç satýrý almak isteseniz bile, tüm sorgu deđerlendirilmek durumunda kalýnabilir. ORDER BY içeren bir sorgu -düţünün. Eđer ORDER BY iţe eţleţen bir index varsa, PostgreSQL istenen ilk birkaç satýrý iţleyebilir, ya da tüm sorgu -istenen satýrlar üretilene kadar iţlenebilir. -4.3) psql'in içinde gördügüm tablolarýn ya da diđer ţeylerin listesini nasýl alabilirim? - -pgsql/src/bin/psql/describe.c içindeki psql kaynak kodunu okuyabilirsiniz. Bu kod, psql'in \ ile baţlayan komutlarýnýn -çýktýsýný olusturan SQL komutlarýný içerir. Ayný zamanda, psql'i -E seçeneđi ile baţlatýp, verdiđiniz komutlarý -çalýţtýrmak için yaptýđý sorgularýn çýktýlarýný görebilirsiniz. -4.4) Bir tablodan bir kolonu nasýl kaldýrabilirim? - -Bu özellik (ALTER TABLE DROP COLUMN) 7.3 sürümü ile gelmiţtir. Eski sürümlerde aţađýdakileri uygulamalýsýnýz: - + Bu iţlem PostgreSQL ana dizinine server.log dosyasý yerleţtirecektir. + Bu dosya sunucunun yaţadýđý sorunlar ya da hatalar hakkýnda yararlý + bilgiler içerir. -d seçeneđi, hata ayýklama seviyesini belirten bir + rakam ile kullanýlýr. Yüksek hata ayýklama seviyelerinin büyük log + dosyalarý oluţturacađýný unutmayýnýz. + + Eđer postmaster çalýţmýyorsa, postgres backend'ini komut satýrýndan + çalýţtýrabilir ve SQL ifadenizi direk olarak yazabilirsiniz. Bu sadece + hata ayýklama amacýyla önerilir. Burada, noktalý virgülün deđil de + yeni bir satýrýn sorguyu sonlandýrdýđýný unutmayýnýz. Eđer hata + ayýklama sembolleri ile derlediyseniz, ne olduđunu görmek için bir + hata ayýklayýcý kullanabilirsiniz. backend postmaster'dan + baţlatýlmadýđýndan, eţdeđer bir ortamda çalýţmamaktadýr ve + locking/backend etkileţim sorunlarý artabilir. + + Eđer postmaster çalýţýyorsa, bir pencerede psql'i çalýţtýrýn ve psql + tarafýndan kullanýlan postgres sürecinin süreç numarasýný (PID) bulun. + Postgres süreci ile iliţkilendirmek için bir hata ayýklarýcý kullanýn. + Sorgularý psql aracýlýđý ile çalýţtýrabilirsiniz. Eđer postgres + baţlangýcýnda hata ayýklamak istiyorsanýz, PGOPTIONS="-W n" seçeneđini + ayarlayabilir ve psql'i baţlatabilirsiniz. Bu iţlem, baţlangýcýn n + saniye kadar gecikmesini sađlayacaktýr; böylece hata ayýklayýcýyý + sürece iliţkilendirdikten sonra baţlangýç sürecinin devam etmesini + sađlayabilirsiniz. + + postgres programý hata ayýklama ve baţarým ölçümleri için -s, -A ve -t + seçeneklerine sahiptir. + + 3.8) Bađlanmaya çalýţýrken, neden "Sorry, too many clients" hatasýný + alýyorum? + + Postmaster'ýn eţzamanlý olarak baţlatabileceđi backend süreçleri + sýnýrlarýný arttýrmanýz gerekmektedir. + + Ön tanýmlý deđer 32 süreçtir. Bunu, postmaster'ý uygun -N deđeri ile + ya da postgresql.conf dosyasýný düzenleyerek yeniden baţlatmakla + arttýrabilirsiniz. + + Eđer -N deđerini 32'den büyük yapacaksanýz, ayný zamanda -B deđerini + de deđiţtirmeniz gerektiđini unutmayýn. -B, -N'nin en az 2 katý kadar + olmalýdýr; daha iyi baţarým için bu sayýyý daha da arttýrmalýsýnýz. + Yüksek sayýdaki backend süreçleri için, çeţitli çekirdek yapýlandýrma + parametrelerini arttýrmanýz gerekecektir. Yapýlmasý gerekenler, + SHMMAX, SEMMNS, SEMMNI, NPROC, MAXUPRC ve açýlabilecek dosyalarýn + maksimum sayýsý olan NFILE ve NINODE deđerlerini karýţtýrmaktýr. Bunun + nedeni, PostgreSQL'in izin verilen backend süreçlerinin sayýsý + üzerinde bir sýnýrý olmasýdýr. Böylelikle sistem kaynaklarýnýn dýţýna + çýkýlmayacaktýr. + + PostgreSQL'in 6.5 sürümüne kadar, en fazla backend sayýsý 64 idi ve + bunu deđiţtirmek için include/storage/sinvaladt.h dosyasý içindeki + MaxBAckendid sabitini deđiţtirdek sonra yazýlýmý yeniden derlemek + gerekiyordu. + + 3.9) pgsql_tmp dizinin içindeki dosyalar nelerdir? + + Sorgu çalýstýrýcý (query executer) tarafýndan yaratýlan geçici + dosyalardýr. Örnegin, bir sýralama ORDER BY ile yapýlacaksa ve + sýralama backend'in -s parametresinin izin verdiđinden daha fazla + alana gereksinim duyuyorsa, ekstra veriyi tutmak için geçici dosyalar + yaratýlýr. + + Geçici dosyalar, eđer sýralama sýrasýnda backend göçmezse otomatik + olarak silinecektir. Eđer çalýţan durumda bir backend'iniz yoksa, + pg_tempNNN.NN dosyalarýný silmeniz güvenlidir. + + 3.10) PostgreSQL sürümlerini yükseltmek için neden bir dump/reload iţlemi + gerçekleţtirmek zorundayým? + + PostgreSQL takýmý ara sürümlerde sadece küçük deđiţiklikler + yapmaktadýr; bu yüzden 7.2 sürümünden 7.2.1'e yükseltmek dump/restore + iţlemi gerekmemektedir. Ancak, esas sürümlerde (örnek: 7.2'den 7.3'e) + çođunlukla sistem tablolarýnýn ve veri dosyalarýnýn iç yapýsý + deđiţtirilir. Bu deđiţiklikler çođunlukla karmaţýktýr; dolayýsýyla + veri dosyalarýnýn geriye dönük uyumluluđu iţlemlerini yapmýyoruz. Dump + iţlemi, veriyi genel biçimde alacađýndan yeniden yükleme esnasýnda + veri, yeni iç biçime uygun ţekilde yerleţtirilecektir. + + Disk biçiminin deđiţmediđi sürümlerde, pg_upgrade betiđi güncellemenin + bir dump/restore gerektirmeden yapýlmasýný sađlayacaktýr. pg_upgrade + betiđinin o sürüm için bulunup bulunmadýđýný sürüm notlarý içinde + bulabilirsiniz. + + 3.11) Nasýl bir donaným kullanmalýyým? + + PC donanýmý tamamen uyumlu olduđu için, insanlar tüm PC donanýmlarýnýn + ayný kalitede olduđunu düţünürler. Oysa böyle deđildir. ECC RAM, SCSI + ve kaliteli anakartlar daha ucuz donanýmlara göre daha çok + güvenilirlerdir ve baţarýmlarý daha yüksektir. PostgreSQL hemen hemen + tüm donanýmda çalýţabilmektedir, ancak güvenilirlik ve baţarým önemli + ise donaným seçeneklerini çok iyi araţtýrmak gereklidir. E-posta + listelerimi donanýmlarla ilgili sorular ve de ticaret için + kullanýlabilir. + _________________________________________________________________ + + Ýţletimsel Sorular + + 4.1) Binary cursor ve normal cursor arasýndaki fark nedir? + + DECLARE yardým sayfasýna bakýnýz. + + 4.2) Sorgunun sadece ilk birkaç satýrýný nasýl SELECT edebilirim? + + FETCH yardým sayfasýna bakýnýz, ya da SELECT ... LIMIT ... kullanýnýz. + + Ýlk birkaç satýrý almak isteseniz bile, tüm sorgu deđerlendirilmek + durumunda kalýnabilir. ORDER BY içeren bir sorgu düţünün. Eđer ORDER + BY iţe eţleţen bir index varsa, PostgreSQL istenen ilk birkaç satýrý + iţleyebilir, ya da tüm sorgu istenen satýrlar üretilene kadar + iţlenebilir. + + 4.3) psql'in içinde gördügüm tablolarýn ya da diđer ţeylerin listesini + nasýl alabilirim? + + pgsql/src/bin/psql/describe.c içindeki psql kaynak kodunu + okuyabilirsiniz. Bu kod, psql'in \ ile baţlayan komutlarýnýn çýktýsýný + olusturan SQL komutlarýný içerir. Ayný zamanda, psql'i -E seçeneđi ile + baţlatýp, verdiđiniz komutlarý çalýţtýrmak için yaptýđý sorgularýn + çýktýlarýný görebilirsiniz. + + 4.4) Bir tablodan bir kolonu nasýl kaldýrabilirim? + + Bu özellik (ALTER TABLE DROP COLUMN) 7.3 sürümü ile gelmiţtir. Eski + sürümlerde aţađýdakileri uygulamalýsýnýz: BEGIN; LOCK TABLE old_table; SELECT ... -- select all columns but the one you want to remove @@ -482,355 +692,421 @@ INTO TABLE new_table FROM old_table; DROP TABLE old_table; ALTER TABLE new_table RENAME TO old_table; -COMMIT; - - -4.5) Bir satýr, tablo ve veritabaný için en fazla büyüklük nedir? - -Sýnýrlar: - -Veritabaný için en fazla büyüklük nedir? -Sýnýrsýz (32 TB'lýk veritabaný bulunmaktadýr) - -Bir tablo için en fazla büyüklük nedir? -32 TB - -Bir satýr için en fazla büyüklük nedir? -1.6 TB - -Bir alan için en fazla büyüklük nedir? -1 GB - -Tabloda en fazla satýr sayýsý kaçtýr? -Sýnýrsýz - -Bir tabloda olabilecek en fazla kolon sayýsý kaçtýr? -Kolon tiplerine bađlý olarak 250-1600 - -Bir tabloda olabilecek en fazla index sayýsý kaçtýr? -Sýnýrsýz - -Tabii ki bunlar aslýnda sýnýrsýz degildir. Burada belirtilen sýnýrlar, fiziksel sýnýrlarýn haricindeki sýnýrlardýr. Boţ -disk alaný, hafýza/takas alaný na bađlý sýnýrlamalar vardýr. Baţarým, sýnýr deđerlere yaklaţtýkça, ya da deđerler çok -büyük olduđunda düţebilir. - -Bir tablo için büyüklük sýnýrý olan 32 TB, iţletim sisteminin büyük dosya desteđi olup olmamasýndan bađýmsýzdýr. Büyük -tablolar, 1 GB'lik dosyalarda saklandýđý için, dosya sistemi sýnýrlarýnin bir önemi yoktur. - -Tablo ve kolon sayýsý büyüklükleri, ön tanýmlý blok büyüklüđü 32k ya çýkarýlarak arttýrýlabilir. -4.6) Tipik bir metin dosyasýndaki veriyi saklamak için ne kadar disk alaný gereklidir? - -Bir PostgreSQL veritabaný, veriyi "flat" metin dosyasýnda saklamak için gereken alanýn 5 kat fazla disk alanýna -gereksinim duyabilir. - -Her satýrýnda bir tamsayý ve metin (text) içeren, 100.000 satýrlýk bir dosya düţünün. Her satýrýn ortalama 20 byte -olduđunu farzedelim. Metin dosyasý 2.8 MB olacaktýr. Bu veriyi tutan PostgreSQL veritabaný yaklaţýk 6.4 MB yer -kaplayacaktýr. - +COMMIT; + + 4.5) Bir satýr, tablo ve veritabaný için en fazla büyüklük nedir? + + Sýnýrlar: + + Veritabaný için en fazla büyüklük nedir? + Sýnýrsýz (32 TB'lýk veritabaný bulunmaktadýr) + Bir tablo için en fazla büyüklük nedir? + 32 TB + Bir satýr için en fazla büyüklük nedir? + 1.6 TB + Bir alan için en fazla büyüklük nedir? + 1 GB + Tabloda en fazla satýr sayýsý kaçtýr? + Sýnýrsýz + Bir tabloda olabilecek en fazla kolon sayýsý kaçtýr? + Kolon tiplerine bađlý olarak 250-1600 + Bir tabloda olabilecek en fazla index sayýsý kaçtýr? + Sýnýrsýz + + Tabii ki bunlar aslýnda sýnýrsýz degildir. Burada belirtilen sýnýrlar, + fiziksel sýnýrlarýn haricindeki sýnýrlardýr. Boţ disk alaný, + hafýza/takas alaný na bađlý sýnýrlamalar vardýr. Baţarým, sýnýr + deđerlere yaklaţtýkça, ya da deđerler çok büyük olduđunda düţebilir. + + Bir tablo için büyüklük sýnýrý olan 32 TB, iţletim sisteminin büyük + dosya desteđi olup olmamasýndan bađýmsýzdýr. Büyük tablolar, 1 GB'lik + dosyalarda saklandýđý için, dosya sistemi sýnýrlarýnin bir önemi + yoktur. + + Tablo ve kolon sayýsý büyüklükleri, ön tanýmlý blok büyüklüđü 32k ya + çýkarýlarak arttýrýlabilir. + + 4.6) Tipik bir metin dosyasýndaki veriyi saklamak için ne kadar disk alaný + gereklidir? + + Bir PostgreSQL veritabaný, veriyi "flat" metin dosyasýnda saklamak + için gereken alanýn 5 kat fazla disk alanýna gereksinim duyabilir. + + Her satýrýnda bir tamsayý ve metin (text) içeren, 100.000 satýrlýk bir + dosya düţünün. Her satýrýn ortalama 20 byte olduđunu farzedelim. Metin + dosyasý 2.8 MB olacaktýr. Bu veriyi tutan PostgreSQL veritabaný + yaklaţýk 6.4 MB yer kaplayacaktýr. 36 byte: Her bir satýr baţlýđý (yaklaţýk) -+ 24 byte: Bir tamsayý (int) alaný ve bir metin (text) alaný ++ 24 byte: Bir tamsayý (int) alaný ve bir metin (text) alaný + 4 byte: Sayfada tuple a pointer ---------------------------------------- 64 byte -> kayýt baţýna -PostgreSQL'de veri sayfasý (data page) büyüklüđü 8192 byte (8k)dýr, dolayýsýyla: - + PostgreSQL'de veri sayfasý (data page) büyüklüđü 8192 byte (8k)dýr, + dolayýsýyla: 8192 byte -> page baţýna ------------------------- = Her bir veritabaný page'ý baţýna 128 satýr (yaklaţýk) Satýr baţýna 64 byte - + 100000 veri satýrý -------------------- = 782 veritabaný sayfasý 128 satýr -782 veritabaný sayfasý * sayfa baţýna 8192 byte = 6,406,144 bytes (6.4 MB) - -Index'ler çok fazla yere gereksinim duymazlar, ama index'lenmiţ veriyi tutacaklarýndan büyük olabilirler. - -NULL deđerler bitmapler içinde tutulur; dolayýsýyla çok az yer kaplarlar. -4.7) Veritabanýnda hangi tablo ya da index'lerin tanýmlandýđýný nasýl görebilirim? - -psql, bu tür bilgileri göstermek için, \ ile baţlayan bir çok komut sunmaktadýr. \? komutu ile bu komutlarý -görebilirsiniz. Ayrýca, bunlarý açýklayan ve pg_ ile baţlayan çok sayýda sistem tablosu bulunmaktadýr. Ayný zamanda, -psql -l ile tüm veritabanlarýný listeyelebirsiniz. - -Ayrýca, pgsql/src/tutorial/syscat.source kodunu inceleyebilirsiniz. Bu dosya, veritabaný sistem dosyalarýndan bilgiyi -almak için gereksinim duyulan bir çok SELECT'leri gösterir. -4.8) Sorgularým cok yavaţ, ya da index'lerimi kullanmýyorlar. Neden? - -Indexler her sorgu tarafýndan otomatik olarak kullanýlmazlar. Indexler eđer bir tablonun büyüklüđü minimum bir -büyüklükten fazla ise ve sorgu tablodaki satýrlarýn sadece küçük bir yüzdesini seçiyorsa kullanýlýr. Bunun nedeni, -index eriţiminin neden olduđu raslansal disk eriţimi nin diskin ya da tablonun sýralý okunmasýndan daha yavas -olabilmesidir. - -Bir index'in kullanýlýp kullanýlmayacađýný belirlemek için, PostgreSQL tablo hakkýndaki istatistiklere gereksinmesi -vardýr. Bu istatistikler, VACUUM ANALYZE kullanýlarak toplanýrlar. Optimizer, istatistikleri kullanarak, tabloda kaç -satýr olduđunu ve bilir ve indexin kullanýlýp kullanýlmayacađýna daha iyi karar verir. Istatistikler, ayný zamanda en -uygun join sýrasýný ve yöntemini belirlemekte çok önemlidir. Ýstatistik toplanmasý, tablo içerikleri deđiţtikçe -periyodik olarak yapýlmalýdýr. - -Indexler normalde ORDER BY sorgularý ya da join iţlemlerini gerçekleţtirmek için kullanýlmazlar. Açýk bir sýralamayý -takip eden sýralý bir arama (sequential scan), büyük bir tabloda index aramasý yapmaktan genelde daha hýzlýdýr. -Ancak, ORDER BY ile birleţmiţ LIMIT genellikle bir index kullanacaktýr; çünkü tablonun sadece belirli bir miktarý -döndürülecektir. Aslýnda, MAX() ve MIN() fonksiyonlarýnýn index kullanmamalarýndan dolayý, bu gibi deđerleri ORDER BY -ve LIMIT kullanarak da almak olasýdýr: - + 782 veritabaný sayfasý * sayfa baţýna 8192 byte = 6,406,144 bytes (6.4 + MB) + + Index'ler çok fazla yere gereksinim duymazlar, ama index'lenmiţ veriyi + tutacaklarýndan büyük olabilirler. + + NULL deđerler bitmapler içinde tutulur; dolayýsýyla çok az yer + kaplarlar. + + 4.7) Veritabanýnda hangi tablo ya da index'lerin tanýmlandýđýný nasýl + görebilirim? + + psql, bu tür bilgileri göstermek için, \ ile baţlayan bir çok komut + sunmaktadýr. \? komutu ile bu komutlarý görebilirsiniz. Ayrýca, + bunlarý açýklayan ve pg_ ile baţlayan çok sayýda sistem tablosu + bulunmaktadýr. Ayný zamanda, psql -l ile tüm veritabanlarýný + listeyelebirsiniz. + + Ayrýca, pgsql/src/tutorial/syscat.source kodunu inceleyebilirsiniz. Bu + dosya, veritabaný sistem dosyalarýndan bilgiyi almak için gereksinim + duyulan bir çok SELECT'leri gösterir. + + 4.8) Sorgularým cok yavaţ, ya da index'lerimi kullanmýyorlar. Neden? + + Indexler her sorgu tarafýndan otomatik olarak kullanýlmazlar. Indexler + eđer bir tablonun büyüklüđü minimum bir büyüklükten fazla ise ve sorgu + tablodaki satýrlarýn sadece küçük bir yüzdesini seçiyorsa kullanýlýr. + Bunun nedeni, index eriţiminin neden olduđu raslansal disk eriţimi nin + diskin ya da tablonun sýralý okunmasýndan daha yavas olabilmesidir. + + Bir index'in kullanýlýp kullanýlmayacađýný belirlemek için, PostgreSQL + tablo hakkýndaki istatistiklere gereksinmesi vardýr. Bu istatistikler, + VACUUM ANALYZE kullanýlarak toplanýrlar. Optimizer, istatistikleri + kullanarak, tabloda kaç satýr olduđunu ve bilir ve indexin kullanýlýp + kullanýlmayacađýna daha iyi karar verir. Istatistikler, ayný zamanda + en uygun join sýrasýný ve yöntemini belirlemekte çok önemlidir. + Ýstatistik toplanmasý, tablo içerikleri deđiţtikçe periyodik olarak + yapýlmalýdýr. + + Indexler normalde ORDER BY sorgularý ya da join iţlemlerini + gerçekleţtirmek için kullanýlmazlar. Açýk bir sýralamayý takip eden + sýralý bir arama (sequential scan), büyük bir tabloda index aramasý + yapmaktan genelde daha hýzlýdýr. + Ancak, ORDER BY ile birleţmiţ LIMIT genellikle bir index + kullanacaktýr; çünkü tablonun sadece belirli bir miktarý + döndürülecektir. Aslýnda, MAX() ve MIN() fonksiyonlarýnýn index + kullanmamalarýndan dolayý, bu gibi deđerleri ORDER BY ve LIMIT + kullanarak da almak olasýdýr: SELECT col FROM tab ORDER BY col [ DESC ] LIMIT 1; -Eđer optimizer'ýn sýralý arama yapmasýnýn yanlýţ olduđuna inanýyorsanýz, SET enable_seqscan TO 'off' kullanýn ve index -kullanan aramalarýn hala daha hýzlý olup olmadýđýný görün. - -LIKE ya da ~ gibi operatörler kullanýyorsanýz, index'ler sadece aţađýdaki koţullarda kullanýlabilir: - - * Arama dizininin baţý, dizinin baţý ile bađlanmalýdýr. Yani, - o LIKE sorgularý % ile baţlamamalýdýr. - o Düzenli ifade sorgularý ^ iţe baţlamamalýdýr. - * Arama metni bir karakter sýnýfý ile baţlayamaz. Örnek: [a-e] - * ILIKE ve ~* gibi büyük/küçük harfe duyarsýz aramalar index'lerden yararlanmazlar. Onun yerine, bölüm 4.12'de -anlatýlan fonksiyonel index'leri kullanabilirsiniz. - * initdb sýrasýnda öntanýmlý C locale'i kullanýlmalýdýr. - -4.9) query-optimizer'ýn sorgularýmý nasýl deđerlendirdiđini, iţleme soktuđunu nasýl görebilirim? - -EXPLAIN yardým sayfasýna bakýnýz. -4.10) R-tree index nedir? - -R-tree index, uzaysal (spatial) verileri indexlemek için kullanýlýr. Bir hash index, dizi aramalarýnda (range search) -kullanýlamaz. B-tree index dizi aramalarýnda sadece tek boyutlu çalýţmaktadýr. R-tree, çok boyutlu veriyi destekler. -Örneđin, eđer bir R-tree index point veri tipi üzerinde inţa edililebilirse, sistem "select all points within a -bounding rectangle" gibi sorgulara daha verimli yanýtlar verecektir. - -Orijinal R-tree tasarýmýný açýklayan belge: - -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. - -Bu belgeyi, Stonebraker'ýn "Readings in Database Systems" kitabýnda bulabilirsiniz. - -Gömülü R-tree indexleri poligon ve boxlarý kullanabilir. Teorik olarak, R-tree indexlerin özelliklerini geniţletmek bir -miktar çaba gerektirir ve bunun nasýl yapýlacađýna dair bir belgemiz henüz bulunmamaktadýr. -4.11) Genetic Query Optimizer nedir? - -GEQO modülü, Genetic Algorithm(GA) kullanýlarak tablolar birleţtirildiđinde sorgu optimizasyonunu hýzlandýrýr. -4.12) Düzenli ifade (Regular Expression) aramalarýný ve büyük/küçük harfe duyarsýz aramalarý nasýl yapabilirim? Bu -büyük(küçük harfe duyarlý aramalar için index'i nasýl kullanabilirim? - -~ operatörü düzenli ifade eţleţmesi ve ~* büyük/küçük harfe duyarsýz düzenli ifade eţleţmesi yapar. Büyük/küçük harfe -duyarlý olan LIKE'ýn büyük/küçük harfe duyarsýz olan biçimi ILIKE'týr ve PostgreSQL 7.1 sürümü ile birlikte gelmiţtir. - -Büyük-küçük harfe duyarsýz eţitlik karţýlaţtýrmalarý aţađýdaki gibi ifade edilir: - + Eđer optimizer'ýn sýralý arama yapmasýnýn yanlýţ olduđuna + inanýyorsanýz, SET enable_seqscan TO 'off' kullanýn ve index kullanan + aramalarýn hala daha hýzlý olup olmadýđýný görün. + + LIKE ya da ~ gibi operatörler kullanýyorsanýz, index'ler sadece + aţađýdaki koţullarda kullanýlabilir: + * Arama dizininin baţý, dizinin baţý ile bađlanmalýdýr. Yani, + + LIKE sorgularý % ile baţlamamalýdýr. + + Düzenli ifade sorgularý ^ iţe baţlamamalýdýr. + * Arama metni bir karakter sýnýfý ile baţlayamaz. Örnek: [a-e] + * ILIKE ve ~* gibi büyük/küçük harfe duyarsýz aramalar index'lerden + yararlanmazlar. Onun yerine, bölüm 4.12'de anlatýlan fonksiyonel + index'leri kullanabilirsiniz. + * initdb sýrasýnda öntanýmlý C locale'i kullanýlmalýdýr. + + 4.9) query-optimizer'ýn sorgularýmý nasýl deđerlendirdiđini, iţleme + soktuđunu nasýl görebilirim? + + EXPLAIN yardým sayfasýna bakýnýz. + + 4.10) R-tree index nedir? + + R-tree index, uzaysal (spatial) verileri indexlemek için kullanýlýr. + Bir hash index, dizi aramalarýnda (range search) kullanýlamaz. B-tree + index dizi aramalarýnda sadece tek boyutlu çalýţmaktadýr. R-tree, çok + boyutlu veriyi destekler. Örneđin, eđer bir R-tree index point veri + tipi üzerinde inţa edililebilirse, sistem "select all points within a + bounding rectangle" gibi sorgulara daha verimli yanýtlar verecektir. + + Orijinal R-tree tasarýmýný açýklayan belge: + + 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. + + Bu belgeyi, Stonebraker'ýn "Readings in Database Systems" kitabýnda + bulabilirsiniz. + + Gömülü R-tree indexleri poligon ve boxlarý kullanabilir. Teorik + olarak, R-tree indexlerin özelliklerini geniţletmek bir miktar çaba + gerektirir ve bunun nasýl yapýlacađýna dair bir belgemiz henüz + bulunmamaktadýr. + + 4.11) Genetic Query Optimizer nedir? + + GEQO modülü, Genetic Algorithm(GA) kullanýlarak tablolar + birleţtirildiđinde sorgu optimizasyonunu hýzlandýrýr. + + 4.12) Düzenli ifade (Regular Expression) aramalarýný ve büyük/küçük harfe + duyarsýz aramalarý nasýl yapabilirim? Bu büyük(küçük harfe duyarlý aramalar + için index'i nasýl kullanabilirim? + + ~ operatörü düzenli ifade eţleţmesi ve ~* büyük/küçük harfe duyarsýz + düzenli ifade eţleţmesi yapar. Büyük/küçük harfe duyarlý olan LIKE'ýn + büyük/küçük harfe duyarsýz olan biçimi ILIKE'týr ve PostgreSQL 7.1 + sürümü ile birlikte gelmiţtir. + + Büyük-küçük harfe duyarsýz eţitlik karţýlaţtýrmalarý aţađýdaki gibi + ifade edilir: SELECT * FROM tab WHERE lower(col) = 'abc' - - -Bu standart bir index yaratmayacaktýr. Ancak eđer fonksiyonel bir index yaratýrsanýz; o kullanýlacaktýr: - + + Bu standart bir index yaratmayacaktýr. Ancak eđer fonksiyonel bir + index yaratýrsanýz; o kullanýlacaktýr: CREATE INDEX tabindex on tab (lower(col)); -4.13) Bir sorguda, bir alanin "NULL" olduđunu nasýl ortaya çýkarabilirim? - -Kolonu, IS NULL ve IS NOT NULL ile test edebilirsiniz. -4.14) Çesitli karakter tipleri arasýndaki farklar nelerdir? - -Veri Tipi Ýç Adý Not + 4.13) Bir sorguda, bir alanin "NULL" olduđunu nasýl ortaya çýkarabilirim? + + Kolonu, IS NULL ve IS NOT NULL ile test edebilirsiniz. + + 4.14) Çesitli karakter tipleri arasýndaki farklar nelerdir? + +Veri Tipi Ýç Adý Not -------------------------------------------------- VARCHAR(n) varchar boyut en büyük uzunluđu verir; sadece verilen kadar veri tutulur. CHAR(n) bpchar belirtilen uzunluđa kadar sonuna boţluk eklenir. -TEXT text uzunlukta herhangi bir üst sýnýr yoktur. +TEXT text uzunlukta herhangi bir üst sýnýr yoktur. BYTEA bytea variable-length byte array (null-byte safe) -"char" char bir karakter - - -Ýç adlarý (internal name) sistem kataloglarýný ve bazý hata mesajlarýný incelerken göreceksiniz. - -Ýlk dört veri tipi "varlena" tipidir (yani, diskteki ilk 4 bayt uzunluktur; devamý da veridir.) Dolayýsýyla, kullanýlan -gerçek alan, belirtilen alandan biraz daha büyüktür. Ancak, bu veri tipleri, sýkýţtýrýlmaya tabi tutulabilir; -dolayýsýyla disk alaný beklenilenden küçük olabilir. VARCHAR(n) büyüklüđü artabilen ama en büyük uzunluđu sýnýrlý olan -verileri saklamak için en uygun yöntemdir. TEXT, 1 GB büyüklüđe kadar olan verileri tutmak için kullanýlýr. - -CHAR(n), ayný uzunluktaki dizilerin saklanmasý için kullanýmýr. CHAR(n) belirtilen uzunluđa kadar boţluk ile doldurur; -ancak VARCHAR(n) sadece verilen karakterleri saklar. BYTEA binary veri saklamak içindir; ayrýca "NULL" bayt içeren -deđerleri de saklar. Burada anlatýlan üç veri tipi de benzer baţarým karakteristiklere sahiptir. -4.15.1) Nasýl serial/otomatik artan (auto-incrementing) bir alan yaratabilirim? - -PostgreSQL'de SERIAL veri tipi vardýr. Bu veri tipi bir sequence ve kolon üzerinde bir index yaratýr. - -Örnek, aţađýdaki sorgu: - +"char" char bir karakter + + Ýç adlarý (internal name) sistem kataloglarýný ve bazý hata + mesajlarýný incelerken göreceksiniz. + + Ýlk dört veri tipi "varlena" tipidir (yani, diskteki ilk 4 bayt + uzunluktur; devamý da veridir.) Dolayýsýyla, kullanýlan gerçek alan, + belirtilen alandan biraz daha büyüktür. Ancak, bu veri tipleri, + sýkýţtýrýlmaya tabi tutulabilir; dolayýsýyla disk alaný beklenilenden + küçük olabilir. VARCHAR(n) büyüklüđü artabilen ama en büyük uzunluđu + sýnýrlý olan verileri saklamak için en uygun yöntemdir. TEXT, 1 GB + büyüklüđe kadar olan verileri tutmak için kullanýlýr. + + CHAR(n), ayný uzunluktaki dizilerin saklanmasý için kullanýmýr. + CHAR(n) belirtilen uzunluđa kadar boţluk ile doldurur; ancak + VARCHAR(n) sadece verilen karakterleri saklar. BYTEA binary veri + saklamak içindir; ayrýca "NULL" bayt içeren deđerleri de saklar. + Burada anlatýlan üç veri tipi de benzer baţarým karakteristiklere + sahiptir. + + 4.15.1) Nasýl serial/otomatik artan (auto-incrementing) bir alan + yaratabilirim? + + PostgreSQL'de SERIAL veri tipi vardýr. Bu veri tipi bir sequence ve + kolon üzerinde bir index yaratýr. + + Örnek, aţađýdaki sorgu: CREATE TABLE person ( id SERIAL, name TEXT -); - - -buna çevrilir: - +); + + buna çevrilir: 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 ); - - -Sequenceler hakkýnda daha fazla bilgi için create_sequence yardým sayfasýna bakabilirsiniz. Her satýrýn OID alanýný -tekil bir sayý olarak alabilirsiniz. Ancak, veritabanýnýzýn dump'ýný alýp yeniden yüklerseniz, OID deđerlerini -koruyabilmek için pg_dump'ýn -o parametresini ya da "COPY WITH OIDS" seçeneđini kullanmanýz gerekecektir. -4.15.2) SERIAL giriţinin degerini nasýl alabilirim? - -Bir yaklaţým, sequence nesnesindeki SERIAL deđerini, veriyi girmeden önce nextval() ile alýp, aldýđýnýz deđeri -kendinizin girmesidir. 4.15.1'deki örnek tabloyu kullanarak bir örnek verelim: - +CREATE UNIQUE INDEX person_id_key ON person ( id ); + + Sequenceler hakkýnda daha fazla bilgi için create_sequence yardým + sayfasýna bakabilirsiniz. Her satýrýn OID alanýný tekil bir sayý + olarak alabilirsiniz. Ancak, veritabanýnýzýn dump'ýný alýp yeniden + yüklerseniz, OID deđerlerini koruyabilmek için pg_dump'ýn -o + parametresini ya da "COPY WITH OIDS" seçeneđini kullanmanýz + gerekecektir. + + 4.15.2) SERIAL giriţinin degerini nasýl alabilirim? + + Bir yaklaţým, sequence nesnesindeki SERIAL deđerini, veriyi girmeden + önce nextval() ile alýp, aldýđýnýz deđeri kendinizin girmesidir. + 4.15.1'deki örnek tabloyu kullanarak bir örnek verelim: new_id = execute("SELECT nextval('person_id_seq')"); execute("INSERT INTO person (id, name) VALUES (new_id, 'Blaise Pascal')"); -Diđer sorgular için new_id'de yeni deđerin saklanmasý gerekir. Otomatik olarak yaratýlan SEQUENE nesnesinin adý, __seq -ţeklinde olacaktýr (< > iţaretleri olmadan). - -Alternatif olarak, atanmýţ SERIAL deđerini, deđer girildikten sonra currval() fonksiyonu ile alabilirsiniz: - - execute("INSERT INTO person (name) VALUES ('Blaise Pascal')"); - new_id = execute("SELECT currval('person_id_seq')"); - - -Son olarak, ön tanýmlý deđeri bulmak için INSERT ifadesinden dönen OID deđerini kullanabilirsiniz; ancak bu en az -taţýnabilir çözüm olacaktýr. Perl'de, Edmund Mergl'in DBD:Pg mödülü ile birlikte DBI kullanarak, OID deđeri -$sth->execute() çalýţtýrýldýktan sonra $sth->(pg_oid_status) ile alýnabilir. -4.15.3) currval() ve nextval() diđer kullanýcýlara sorun yaratmaz mý? - -Hayýr. curval(), tüm kullanýcýlar deđil, backend tarafýndan atanan geçerli deđeri döndürür. -4.15.4) Neden sequence sayýlarý transaction iţleminin iptalinden sonra yeniden kullanýlýyor? Neden sequence/SERIAL -kolonumdaki sayýlarda atlamalar oluyor? - -Uyumluluđu arttýrmak için, sequence deđerleri çalýţan transaction'lara gerektiđi ţekilde aktarýlýr ve transaction -bitene kadar o deđer kilitlenmez. Bu, iptal edilen transaction iţlemleri nedeniyle boţluklara neden olur. -4.16) OID nedir? TID nedir? - -OIDler, tekil satýr numaralarýna PostgreSQL'in yanýtýdýr. PostgreSQL'de yaratýlan her sayý, tekil bir OID alýr. initdb -iţlemi sýrasýnda yaratýlan tüm OID'ler 16384'ten küçüktür (backend/access/transam.h). Kullanýcýlar tarafýndan yaratýlan -tüm OID'ler bu sayýya eţit ya da bu sayýdan büyüktür. Varsayýlan durumda, tüm bu OIDler sadece bir tablo ya da -veritabanýnda deđil, tüm PostgreSQL kurulumunda tekildir. - -PostgreSQL OIDleri, tablolar arasýnda satýrlarý iliţkilendirmek için kendi iç tablolarýnda kullanýr. Bu OIDler belirli -kullanýcý satýrlarýný belirtmek için kullanabilir ve join iţlemlerinde kullanýlýr. OID deđerlerini saklamak için OID -kolon tipini kullanmanýz önerinir. Daha hýzlý bir eriţim için, OID alanýnda bir index yaratabilirsiniz. - -OID'ler yeni satýrlara, tüm veritabanlarý tarafýnda kullanýlan ortak bir alandan atanýrlar. Eđer OID'i baţka bir deđere -eţitlemek isterseniz ya da tablonun bir kopyasýný orijinal OIDler ile çýkarmak isterseniz, bu mümkündür: - - 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'; - - -OIDler 4-bit tamsayý olarak saklanýrlar ve 4 milyarda overflow olacaktýr. Kimse bu sayýya ulaţtýđýna dair bir bilgi -iletmedi ve bu sýnýrý kimse bu sýnýra ulaţmadan kaldýracađýz. - -TIDler, belirli fiziksel satýrlar block ve offset deđerleri ile belirtmekte kullanýlýr. TIDler, satýrlar deđiţtiđinde -ya da yeniden yüklendiđinde deđiţirler. Index girdileri tarafýndan fiziksel satýrlarý göstermek için kullanýlýrlar. - -4.17) PostgreSQL'de kullanýlan bazý terimlerin anlamlarý nelerdir? - -Kaynak kodun bir kýsmý ve eski belgeler, daha geniţ kullaným alaný olan terimleri kullanýrlar. Bunlarýn bazýlarý: - - * 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 - -Genel veritabaný terimleri, http://hea-www.harvard.edu/MST/simul/software/docs/pkgs/pgsql/glossary/glossary.html -adresinde bulunabilir. -4.18) Neden "ERROR: Memory exhausted in AllocSetAlloc()" hatasýný alýyorum? - -Sisteminizde sanal belleđinizi tüketmiţ olabilirsiniz, ya da çekirdeđiniz belli kaynaklar icin düţük bir sýnýra sahip -olabilir. postmaster'ý baţlatmadan önce aţađýdakileri deneyebilirsiniz: - + Diđer sorgular için new_id'de yeni deđerin saklanmasý gerekir. + Otomatik olarak yaratýlan SEQUENE nesnesinin adý, __seq ţeklinde olacaktýr (< > iţaretleri olmadan). + + Alternatif olarak, atanmýţ SERIAL deđerini, deđer girildikten sonra + currval() fonksiyonu ile alabilirsiniz: + execute("INSERT INTO person (name) VALUES ('Blaise Pascal')"); + new_id = execute("SELECT currval('person_id_seq')"); + + Son olarak, ön tanýmlý deđeri bulmak için INSERT ifadesinden dönen OID + deđerini kullanabilirsiniz; ancak bu en az taţýnabilir çözüm + olacaktýr. Perl'de, Edmund Mergl'in DBD:Pg mödülü ile birlikte DBI + kullanarak, OID deđeri $sth->execute() çalýţtýrýldýktan sonra + $sth->(pg_oid_status) ile alýnabilir. + + 4.15.3) currval() ve nextval() diđer kullanýcýlara sorun yaratmaz mý? + + Hayýr. curval(), tüm kullanýcýlar deđil, backend tarafýndan atanan + geçerli deđeri döndürür. + + 4.15.4) Neden sequence sayýlarý transaction iţleminin iptalinden sonra + yeniden kullanýlýyor? Neden sequence/SERIAL kolonumdaki sayýlarda atlamalar + oluyor? + + Uyumluluđu arttýrmak için, sequence deđerleri çalýţan transaction'lara + gerektiđi ţekilde aktarýlýr ve transaction bitene kadar o deđer + kilitlenmez. Bu, iptal edilen transaction iţlemleri nedeniyle + boţluklara neden olur. + + 4.16) OID nedir? TID nedir? + + OIDler, tekil satýr numaralarýna PostgreSQL'in yanýtýdýr. + PostgreSQL'de yaratýlan her sayý, tekil bir OID alýr. initdb iţlemi + sýrasýnda yaratýlan tüm OID'ler 16384'ten küçüktür + (backend/access/transam.h). Kullanýcýlar tarafýndan yaratýlan tüm + OID'ler bu sayýya eţit ya da bu sayýdan büyüktür. Varsayýlan durumda, + tüm bu OIDler sadece bir tablo ya da veritabanýnda deđil, tüm + PostgreSQL kurulumunda tekildir. + + PostgreSQL OIDleri, tablolar arasýnda satýrlarý iliţkilendirmek için + kendi iç tablolarýnda kullanýr. Bu OIDler belirli kullanýcý + satýrlarýný belirtmek için kullanabilir ve join iţlemlerinde + kullanýlýr. OID deđerlerini saklamak için OID kolon tipini kullanmanýz + önerinir. Daha hýzlý bir eriţim için, OID alanýnda bir index + yaratabilirsiniz. + + OID'ler yeni satýrlara, tüm veritabanlarý tarafýnda kullanýlan ortak + bir alandan atanýrlar. Eđer OID'i baţka bir deđere eţitlemek + isterseniz ya da tablonun bir kopyasýný orijinal OIDler ile çýkarmak + isterseniz, bu mümkündür: + 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'; + + OIDler 4-bit tamsayý olarak saklanýrlar ve 4 milyarda overflow + olacaktýr. Kimse bu sayýya ulaţtýđýna dair bir bilgi iletmedi ve bu + sýnýrý kimse bu sýnýra ulaţmadan kaldýracađýz. + + TIDler, belirli fiziksel satýrlar block ve offset deđerleri ile + belirtmekte kullanýlýr. TIDler, satýrlar deđiţtiđinde ya da yeniden + yüklendiđinde deđiţirler. Index girdileri tarafýndan fiziksel + satýrlarý göstermek için kullanýlýrlar. + + 4.17) PostgreSQL'de kullanýlan bazý terimlerin anlamlarý nelerdir? + + Kaynak kodun bir kýsmý ve eski belgeler, daha geniţ kullaným alaný + olan terimleri kullanýrlar. Bunlarýn bazýlarý: + * 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 + + Genel veritabaný terimleri, + http://hea-www.harvard.edu/MST/simul/software/docs/pkgs/pgsql/glossary + /glossary.html adresinde bulunabilir. + + 4.18) Neden "ERROR: Memory exhausted in AllocSetAlloc()" hatasýný alýyorum? + + Sisteminizde sanal belleđinizi tüketmiţ olabilirsiniz, ya da + çekirdeđiniz belli kaynaklar icin düţük bir sýnýra sahip olabilir. + postmaster'ý baţlatmadan önce aţađýdakileri deneyebilirsiniz: ulimit -d 262144 -limit datasize 256m - - -Kabuđunuza bađlý olarak, bunlardan sadece biri olumlu sonuç verecektir, ama bu iţlem veri segment sýnýrýnýzý -arttýracak, ve belki de sorgunuzun tamamlanmasýný sađlayacaktýr. Bu komut, varolan iţleme (current process) ve komut -çalýţtýrýldýktan sonraki tüm alt iţlemlere uygulanýr. Eđer SQL istemcinizle, backend'in çok fazla veri döndürmesi -nedeniyle bir sorun yaţýyorsanýz, bunu istemciyi baţlatmadan önce deneyiniz. -4.19) Hangi PostgreSQL sürümünü çalýţtýrdýđýmý nasýl görebilirim? - -psql arabiriminde, select version(); yazýnýz. -4.20) Neden large-object iţlemlerim, "invalid large obj descriptor" hatasýný veriyor? - -Large object iţlemlerinizin uçlarýna, yani lo_open ... lo_close komutlarýnýn çevresine, BEGIN WORK ve COMMIT koymanýz -gerekmektedir; - -Ţu anda, PostgreSQL kurallarý large objectleri transaction commit edildiđinde kapatarak uygulamaktadýr. Dolayýsýyla -handle ile yapýlacak ilk ţey invalid large obj descriptor hatasý ile sonuçlanacaktýr.Dolayýsýyla çalýţan kodunuz eđer -transaction kullanmazsanýz hata mesajlarý üretecektir. - -Eđer ODBC gibi bir istemci arabirimi kullanýyorsanýz, auto-commit'i kapatmanýz gerekebilir. -4.21) Ţu andaki zamaný öntanýmlý deđer olarak kabul eden How do I create a column that will default to the current -time? - -Alttakini kullanabilirsiniz: - +limit datasize 256m + + Kabuđunuza bađlý olarak, bunlardan sadece biri olumlu sonuç + verecektir, ama bu iţlem veri segment sýnýrýnýzý arttýracak, ve belki + de sorgunuzun tamamlanmasýný sađlayacaktýr. Bu komut, varolan iţleme + (current process) ve komut çalýţtýrýldýktan sonraki tüm alt iţlemlere + uygulanýr. Eđer SQL istemcinizle, backend'in çok fazla veri döndürmesi + nedeniyle bir sorun yaţýyorsanýz, bunu istemciyi baţlatmadan önce + deneyiniz. + + 4.19) Hangi PostgreSQL sürümünü çalýţtýrdýđýmý nasýl görebilirim? + + psql arabiriminde, select version(); yazýnýz. + + 4.20) Neden large-object iţlemlerim, "invalid large obj descriptor" + hatasýný veriyor? + + Large object iţlemlerinizin uçlarýna, yani lo_open ... lo_close + komutlarýnýn çevresine, BEGIN WORK ve COMMIT koymanýz gerekmektedir; + + Ţu anda, PostgreSQL kurallarý large objectleri transaction commit + edildiđinde kapatarak uygulamaktadýr. Dolayýsýyla handle ile yapýlacak + ilk ţey invalid large obj descriptor hatasý ile + sonuçlanacaktýr.Dolayýsýyla çalýţan kodunuz eđer transaction + kullanmazsanýz hata mesajlarý üretecektir. + + Eđer ODBC gibi bir istemci arabirimi kullanýyorsanýz, auto-commit'i + kapatmanýz gerekebilir. + + 4.21) Ţu andaki zamaný öntanýmlý deđer olarak kabul eden How do I create a + column that will default to the current time? + + Alttakini kullanabilirsiniz: CURRENT_TIMESTAMP: CREATE TABLE test (x int, modtime timestamp DEFAULT CURRENT_TIMESTAMP ); - - -4.22) Neden IN kullanan subquery'lerim çok yavas? - -7.4 sürümünden önce, subqueryler. Eđer subquery sadece birkaç satýr ve outer query bol sayýda satýr döndürüyorsa, IN en -hýzlýsýdýr. Sorgularý hýzlandýrmak için IN yerine EXISTS kullanýn: - + + 4.22) Neden IN kullanan subquery'lerim çok yavas? + + 7.4 sürümünden önce, subqueryler. Eđer subquery sadece birkaç satýr ve + outer query bol sayýda satýr döndürüyorsa, IN en hýzlýsýdýr. Sorgularý + hýzlandýrmak için IN yerine EXISTS kullanýn: SELECT * FROM tab WHERE col1 IN (SELECT col2 FROM TAB2) - - -sorgusunu, aţađýdaki ile deđiţtirin: - + + sorgusunu, aţađýdaki ile deđiţtirin: SELECT * FROM tab - WHERE EXISTS (SELECT col2 FROM TAB2 WHERE col1 = col2) - - -Bu iţlemin hýzlý olmasý için, subcol'un indexlenmiţ bir kolon olmasý gerekmektedir. - -7.4 sürümü ve sonrasýnda, IN aslýnda normal sorgularla ayný karmaţýk join tekniklerini kullanýr ve EXISTS'e tercih -edilir. -4.23) Outer join iţlemini nasýl yapabilirim? - -PostgreSQL outer joins islemlerini SQL standartlarýný kullanarak gerçekleţtirmektedir. Aţađýda 2 örnek bulunmaktadýr: - + WHERE EXISTS (SELECT col2 FROM TAB2 WHERE col1 = col2) + + Bu iţlemin hýzlý olmasý için, subcol'un indexlenmiţ bir kolon olmasý + gerekmektedir. + + 7.4 sürümü ve sonrasýnda, IN aslýnda normal sorgularla ayný karmaţýk + join tekniklerini kullanýr ve EXISTS'e tercih edilir. + + 4.23) Outer join iţlemini nasýl yapabilirim? + + PostgreSQL outer joins islemlerini SQL standartlarýný kullanarak + gerçekleţtirmektedir. Aţađýda 2 örnek bulunmaktadýr: SELECT * -FROM t1 LEFT OUTER JOIN t2 ON (t1.col = t2.col); - - -ya da - +FROM t1 LEFT OUTER JOIN t2 ON (t1.col = t2.col); + + ya da SELECT * -FROM t1 LEFT OUTER JOIN t2 ON (t1.col = t2.col); - - -Bu özdeţ sorgular t1.col' i t2.col'ye join ederler ve ayný zamanda t1'deki unjoined satýrlarý (t2'de eţlenmemiţ -olanlarla) döndürürler. RIGHT JOIN t2'nin unjoined satýrlarýný ekleyecektir. Bir FULL join, eţleţmiţ bütün satýrlarý ve -t1 ile t2'den tüm bađlanmamýţ (unjoined) satýrlarý alýr. OUTER sözcüđü seçimseldir ve LEFT, RIGHT ve FULL join -iţlemlerinde olduđu kabul edilir. Sýradan join iţlemleri INNER JOIN olarak adlandýrýlýr. - -Önceki sürümlerde, OUTER JOINler UNION ve NOT IN kullanýlarak simüle edilebiliyordu. Örneđin, tab1 ve tab2'yi -birleţtirirken, aţađýdaki sorgu iki tablonun dýţtan bađlanmasýný sađlar: - +FROM t1 LEFT OUTER JOIN t2 ON (t1.col = t2.col); + + Bu özdeţ sorgular t1.col' i t2.col'ye join ederler ve ayný zamanda + t1'deki unjoined satýrlarý (t2'de eţlenmemiţ olanlarla) döndürürler. + RIGHT JOIN t2'nin unjoined satýrlarýný ekleyecektir. Bir FULL join, + eţleţmiţ bütün satýrlarý ve t1 ile t2'den tüm bađlanmamýţ (unjoined) + satýrlarý alýr. OUTER sözcüđü seçimseldir ve LEFT, RIGHT ve FULL join + iţlemlerinde olduđu kabul edilir. Sýradan join iţlemleri INNER JOIN + olarak adlandýrýlýr. + + Önceki sürümlerde, OUTER JOINler UNION ve NOT IN kullanýlarak simüle + edilebiliyordu. Örneđin, tab1 ve tab2'yi birleţtirirken, aţađýdaki + sorgu iki tablonun dýţtan bađlanmasýný sađlar: SELECT tab1.col1, tab2.col2 FROM tab1, tab2 WHERE tab1.col1 = tab2.col1 @@ -838,60 +1114,79 @@ UNION ALL SELECT tab1.col1, NULL FROM tab1 WHERE tab1.col1 NOT IN (SELECT tab2.col1 FROM tab2) -ORDER BY col1 - - -4.24) Ayný andan birden fazla veritabanýnda nasýl iţlem yapabilirim? - -Mevcut veritabanýnýz dýţýndaki baţka bir veritabanýnýzý sorgulamanýzýn bir yolu bulunmamaktadýr. Bunun nedeni, -PostgreSQL'in veritabanýna özel sistem kataloglarý yüklemesidir. Bu nedenle, cross-database bir sorgunun nasýl -davranacađýný kestirmek zordur. - -contrib/dblink fonksiyon çađrýlarýný kullanarak cross-database sorgulara izin verir. Tabii ki, bir istemci deđiţik -veritabanlarýna ayný anda eriţim sađlayabilir ve bilgiyi bu ţekilde birleţtirebilir. - -4.25) Bir fonksiyondan nasýl çoklu satýr ya da kolon döndürebilirim? - -7.3 sürümünde, bir fonksiyondan kolaylýkla çoklu satýr ya da sütun döndürebilirsiniz. -(http://techdocs.postgresql.org/guides/SetReturningFunctions) - -4.26) Neden Pl/PgSQL fonksiyonlarý içinden güvenli bir ţekilde tablo yaratma/kaldýrma iţlemlerini yapamýyoruz? - -PL/PgSQL fonksiyon içerikleri cache'ler. Bunun istenmeyen bir tarafý, eđer bir PL/PgSQL fonksiyonu geçici bir tabloya -eriţiyorsa ve bu tablo ileride kaldýrýlýp yeniden oluţturulduktan sonra fonksiyon yeniden çađrýlýrsa, fonksiyon -çalýţmayacaktýr; çünkü cache'lenmiţ fonksiyon hala eski geçici tabloyu gösteriyor olacaktýr. Çözüm, geçici tablo -eriţimleri için PL/PgSQL'de EXECUTE kullanmaktýr. Bu, sorgunun her seferinde yeniden iţlenmesini sađlayacaktýr. - -4.27) Hangi ţifreleme seçenekleri bulunmaktadýr? - - * contrib/pgcrypto SQL sorgularýnda kullanýlabilmesi için ţifreleme fonksiyonlarý içermektedir. - * Ýstemciden sunucuya iletiţimi ţifrelemek için, sunucuda ssl seçeneđi postgresql.conf içinde açýk olmalýdýr. -Ayrýca,pg_hba.conf dosyasý içinde host ya da hostssl kaydý mutlaka olmalýdýr ve istemci sslmode kapatýlmamalýdýr. (Ayný -zamanda,PostgreSQL'in dođal SSL bađlantýlarý dýţýnda ssh ya da ssl gibi 3.parti ţifrelenmiţ veri iletimi de mümkündür.) - * Veritabaný kullanýcý adý ve ţifreleri 7.3 sürümü ile birlikte otomatik olarak ţifrelenirler. Önceki sürümlerde, -postgresql.conf içindeki PASSWORD_ENCRYPTION seçeneđini aktif hale getirmeniz gerekmektedir. - * Sunucunun kendisini ţifreli dosya sistemi üzerinde çalýţtýrabilirsiniz. - -PostgreSQL Özelliklerini Geniţletmek - -5.1) Kullanýcý-tanýmlý bir fonksiyon yazdým. psql'de çalýţtýrdýđým zaman neden core dump ediyor? - -Sorunun nedeni birden fazla ţey olabilir. Kullanýcý-tanýmlý fonksiyonunuzu stand-alone bir programda çalýţtýrmayý -deneyiniz. - -5.2) PostgreSQL'e nasýl yeni tipler/fonksiyonlar ekleyebilirim? - -Çalýţmalarýnýzý pgsql-hackers e-posta listesine gönderiniz. Kodunuz incelendikten sonra /contrib dizinine konacaktýr. - -5.3) Bir tuple dondürmek icin bir C fonksiyonunu nasil yazarým? - -PostgreSQL 7.3 sürümü ile birlikte, C, PL/PgSQL ve SQL kullanýlarak tablo-döndüren fonksiyonlar tamamen -desteklenmektedir. Ayrýntýlý bilgi için PostgreSQL 7.3.2 Kullanýcý Rehberi'ne bakabilrisiniz. Bir örneđi -contrib/tablefunc içinde bulabilirsiniz. - -5.4) Bir kaynak dosyasýnda deđiţiklik yaptým. Yeniden derlememe rađmen deđiţiklik geçerli olmuyor. Neden? - -Makefile'lar include dosyalarý için tam bir bađýmlýlýk içermezler. Öncelikle make clean, ardýndan da baska bir make -iţlemi yapmanýz gerekir. GCC kullanýyorsanýz, configure betiđinin --enable-depend seçeneđini, derleyicinin -bađýmlýlýklarý otomatik olarak hesaplamasý için kullanabilirsiniz. - +ORDER BY col1 + + 4.24) Ayný andan birden fazla veritabanýnda nasýl iţlem yapabilirim? + + Mevcut veritabanýnýz dýţýndaki baţka bir veritabanýnýzý sorgulamanýzýn + bir yolu bulunmamaktadýr. Bunun nedeni, PostgreSQL'in veritabanýna + özel sistem kataloglarý yüklemesidir. Bu nedenle, cross-database bir + sorgunun nasýl davranacađýný kestirmek zordur. + + contrib/dblink fonksiyon çađrýlarýný kullanarak cross-database + sorgulara izin verir. Tabii ki, bir istemci deđiţik veritabanlarýna + ayný anda eriţim sađlayabilir ve bilgiyi bu ţekilde birleţtirebilir. + + 4.25) Bir fonksiyondan nasýl çoklu satýr ya da kolon döndürebilirim? + + 7.3 sürümünde, bir fonksiyondan kolaylýkla çoklu satýr ya da sütun + döndürebilirsiniz. + (http://techdocs.postgresql.org/guides/SetReturningFunctions) + + 4.26) Neden Pl/PgSQL fonksiyonlarý içinden güvenli bir ţekilde tablo + yaratma/kaldýrma iţlemlerini yapamýyoruz? + + PL/PgSQL fonksiyon içerikleri cache'ler. Bunun istenmeyen bir tarafý, + eđer bir PL/PgSQL fonksiyonu geçici bir tabloya eriţiyorsa ve bu tablo + ileride kaldýrýlýp yeniden oluţturulduktan sonra fonksiyon yeniden + çađrýlýrsa, fonksiyon çalýţmayacaktýr; çünkü cache'lenmiţ fonksiyon + hala eski geçici tabloyu gösteriyor olacaktýr. Çözüm, geçici tablo + eriţimleri için PL/PgSQL'de EXECUTE kullanmaktýr. Bu, sorgunun her + seferinde yeniden iţlenmesini sađlayacaktýr. + + 4.27) 4.28) Hangi ţifreleme seçenekleri bulunmaktadýr? + + * contrib/pgcrypto SQL sorgularýnda kullanýlabilmesi için ţifreleme + fonksiyonlarý içermektedir. + * Ýstemciden sunucuya iletiţimi ţifrelemek için, sunucuda ssl + seçeneđi postgresql.conf içinde açýk olmalýdýr. Ayrýca,pg_hba.conf + dosyasý içinde host ya da hostssl kaydý mutlaka olmalýdýr ve + istemci sslmode kapatýlmamalýdýr. (Ayný zamanda,PostgreSQL'in + dođal SSL bađlantýlarý dýţýnda ssh ya da ssl gibi 3.parti + ţifrelenmiţ veri iletimi de mümkündür.) + * Veritabaný kullanýcý adý ve ţifreleri 7.3 sürümü ile birlikte + otomatik olarak ţifrelenirler. Önceki sürümlerde, postgresql.conf + içindeki PASSWORD_ENCRYPTION seçeneđini aktif hale getirmeniz + gerekmektedir. + * Sunucunun kendisini ţifreli dosya sistemi üzerinde + çalýţtýrabilirsiniz. + _________________________________________________________________ + + PostgreSQL Özelliklerini Geniţletmek + + 5.1) Kullanýcý-tanýmlý bir fonksiyon yazdým. psql'de çalýţtýrdýđým zaman + neden core dump ediyor? + + Sorunun nedeni birden fazla ţey olabilir. Kullanýcý-tanýmlý + fonksiyonunuzu stand-alone bir programda çalýţtýrmayý deneyiniz. + + 5.2) PostgreSQL'e nasýl yeni tipler/fonksiyonlar ekleyebilirim? + + Çalýţmalarýnýzý pgsql-hackers e-posta listesine gönderiniz. Kodunuz + incelendikten sonra /contrib dizinine konacaktýr. + + 5.3) Bir tuple dondürmek icin bir C fonksiyonunu nasil yazarým? + + PostgreSQL 7.3 sürümü ile birlikte, C, PL/PgSQL ve SQL kullanýlarak + tablo-döndüren fonksiyonlar tamamen desteklenmektedir. Ayrýntýlý bilgi + için PostgreSQL 7.3.2 Kullanýcý Rehberi'ne bakabilrisiniz. Bir örneđi + contrib/tablefunc içinde bulabilirsiniz. + + 5.4) Bir kaynak dosyasýnda deđiţiklik yaptým. Yeniden derlememe rađmen + deđiţiklik geçerli olmuyor. Neden? + + Makefile'lar include dosyalarý için tam bir bađýmlýlýk içermezler. + Öncelikle make clean, ardýndan da baska bir make iţlemi yapmanýz + gerekir. GCC kullanýyorsanýz, configure betiđinin --enable-depend + seçeneđini, derleyicinin bađýmlýlýklarý otomatik olarak hesaplamasý + için kullanabilirsiniz. diff --git a/doc/src/FAQ/FAQ.html b/doc/src/FAQ/FAQ.html index 295ca20f4a..32ed55ac00 100644 --- a/doc/src/FAQ/FAQ.html +++ b/doc/src/FAQ/FAQ.html @@ -10,7 +10,7 @@ alink="#0000ff">

Frequently Asked Questions (FAQ) for PostgreSQL

-

Last updated: Thu Feb 24 23:18:31 EST 2005

+

Last updated: Fri Mar 11 16:42:06 EST 2005

Current maintainer: Bruce Momjian (pgman@candle.pha.pa.us) @@ -197,7 +197,7 @@ and Win2003. A prepackaged installer is available at http://pgfoundry.org/projects/pginstaller. MSDOS-based versions - of Windows (Win95, Win98, WinMe) can run PostgreSQL using Cygwin. + of Windows (Win95, Win98, WinMe) can run PostgreSQL using Cygwin.

There is also a Novell Netware 6 port at http://forge.novell.com, @@ -217,14 +217,14 @@ via email. The main web site to subscribe to the email lists is http://www.postgresql.org/community/lists/. The general - or bugs lists are a good place to start. + or bugs lists are a good place to start.

The major IRC channel is #postgresql on Freenode (irc.freenode.net). To connect you can use the Unix program irc -c '#postgresql' "$USER" irc.freenode.net or use any of the other popular IRC clients. A Spanish one also exists on the same network, (#postgresql-es), and a French one, - (#postgresqlfr). There is also a PostgreSQL channel on EFNet. + (#postgresqlfr). There is also a PostgreSQL channel on EFNet.

A list of commercial support companies is available at @@ -482,7 +482,7 @@

  • Use of Prepared queries
  • Use of ANALYZE to maintain accurate optimizer statistics
  • -
  • Regular use of VACUUM or pg_autovacuum +
  • Regular use of VACUUM or pg_autovacuum
  • Dropping of indexes during large data changes


  • @@ -609,7 +609,7 @@ SELECT time, use a cursor and FETCH.

    -

    To SELECT a random row, use: +

    To SELECT a random row, use:

         SELECT col
         FROM tab
    @@ -643,7 +643,7 @@
         

    4.3) How do you change a column's data type?

    Changing the data type of a column can be done easily in 8.0 - and later with ALTER TABLE ALTER COLUMN TYPE. + and later with ALTER TABLE ALTER COLUMN TYPE.

    In earlier releases, do this:

    @@ -661,7 +661,7 @@
     
         

    These are the limits:

    -
    +
    @@ -731,7 +731,7 @@ table? used if the table is larger than a minimum size, and the query selects only a small percentage of the rows in the table. This is because the random disk access caused by an index scan can be - slower than a straight read through the table, or sequential scan. + slower than a straight read through the table, or sequential scan.

    To determine if an index should be used, PostgreSQL must have statistics about the table. These statistics are collected using @@ -843,7 +843,7 @@ table?

    4.10) What is the difference between the various character types?

    -
    Maximum size for a database?unlimited (32 TB databases exist)
    Maximum size for a table?32 TB
    unlimited
    unlimited
    +
    @@ -1057,7 +1057,7 @@ length

    It is easy using set-returning functions, - http://techdocs.postgresql.org/guides/SetReturningFunctions. + http://techdocs.postgresql.org/guides/SetReturningFunctions

    .

    4.20) Why do I get "relation with OID ##### does not exist" errors when accessing temporary tables in PL/PgSQL @@ -1082,7 +1082,7 @@ length pg_hba.conf, and the client sslmode must not be disable. (Note that it is also possible to use a third-party encrypted transport, such as stunnel or ssh, rather than PostgreSQL's - native SSL connections.) + native SSL connections.)
  • Database user passwords are automatically encrypted when stored in the system tables.
  • The server can run using an encrypted file system.
  • diff --git a/doc/src/FAQ/FAQ_DEV.html b/doc/src/FAQ/FAQ_DEV.html index 1098913c0a..7687298367 100644 --- a/doc/src/FAQ/FAQ_DEV.html +++ b/doc/src/FAQ/FAQ_DEV.html @@ -13,7 +13,7 @@

    Developer's Frequently Asked Questions (FAQ) for PostgreSQL

    -

    Last updated: Fri Mar 11 08:09:23 EST 2005

    +

    Last updated: Fri Mar 11 16:43:05 EST 2005

    Current maintainer: Bruce Momjian (pgman@candle.pha.pa.us)
    @@ -26,9 +26,7 @@
    -

    General Questions

    -
    1.1) How do I get involved in PostgreSQL development?
    1.2) What development environment is required @@ -59,9 +57,7 @@ site development?
    -

    Technical Questions

    -
    2.1) How do I efficiently access information in tables from the backend code?
    2.2) Why are table, column, type, function, @@ -152,7 +148,7 @@ http://momjian.postgresql.org/cgi-bin/pgpatches, and those that are being kept for the next release, - http://momjian.postgresql.org/cgi-bin/pgpatches2. + http://momjian.postgresql.org/cgi-bin/pgpatches2.

    1.5) Where can I learn more about the code?

    @@ -703,9 +699,7 @@ href= "http://xzilla.postgresql.org/todo">http://xzilla.postgresql.org/todo

    -

    Technical Questions

    -

    2.1) How do I efficiently access information in tables from the backend code?

    diff --git a/doc/src/FAQ/FAQ_MINGW.html b/doc/src/FAQ/FAQ_MINGW.html index 924d20ef4d..2f8bfc4ced 100644 --- a/doc/src/FAQ/FAQ_MINGW.html +++ b/doc/src/FAQ/FAQ_MINGW.html @@ -71,8 +71,6 @@ The mailing list for discussion is pgsql-hackers-win32@postgresql.org. You can subscribe by sending an email body containing the word subscribe to pgsql-hackers-win32-request@postgresql.org.
    -

    Resources

    There are several resources that helped us complete this port:
    -

    Em versões anteriores a 8.0, índices frequentemente não podiam ser usados a menos que os tipos de dados correspodessem aos tipos da coluna do índice. Isto é particularmente verdadeiro para índices de coluna int2, int8 e numeric.

    @@ -922,14 +921,15 @@ Veja a página sobre create_sequence no manual para mais informa&cc FROM tab WHERE col IN (SELECT subcol FROM subtab); - por: +

    por:

        SELECT *
         FROM tab
         WHERE EXISTS (SELECT subcol FROM subtab WHERE subcol = col);
     
    - -Para isto ser rápido, subcol deve ser uma coluna indexada.

    A partir da versão 7.4, IN utiliza a mesma técnica de agrupamento do que consultas normais, e é recomendado utilizar EXISTS. - +

    +Para isto ser rápido, subcol deve ser uma coluna indexada.

    +

    A partir da versão 7.4, IN utiliza a mesma técnica de agrupamento do que consultas normais, e é recomendado utilizar EXISTS. +

    4.23) Como eu faço uma junção externa (outer join)?

    PostgreSQL suporta junções externas utilizando a sintaxe padrão do SQL. Aqui temos dois exemplos:

    @@ -965,7 +965,7 @@ Para isto ser rápido, subcol deve ser uma coluna indexada. <

    4.25) Como eu retorno múltiplos registros ou colunas de uma função?

    -

    No 7.3, você pode facilmente retornar múltiplos registros ou colunas de uma função, http://techdocs.postgresql.org/guides/SetReturningFunctions. +

    No 7.3, você pode facilmente retornar múltiplos registros ou colunas de uma função, http://techdocs.postgresql.org/guides/SetReturningFunctions.

    4.26) Por que eu não posso confiar na criação/remoção de tabelas temporárias em funções PL/PgSQL?

    PL/PgSQL armazena o conteúdo da função, e o efeito indesejado é que se uma função PL/PgSQL acessa uma tabela temporária, e aquela tabela é removida e criada novamente, e a função é chamada novamente, a função irá falhar porque o conteúdo armazenado da função ainda apontará para a tabela temporária antiga. A solução é utilizar o EXECUTE para acesso a tabelas temporárias no PL/PgSQL. Isto irá fazer com que a consulta seja avaliada toda vez.

    @@ -973,7 +973,7 @@ Para isto ser rápido, subcol deve ser uma coluna indexada. <

    4.27) Que opções para encriptação estão disponíveis?

    diff --git a/doc/src/FAQ/FAQ_czech.html b/doc/src/FAQ/FAQ_czech.html index cb91c8eb90..05079c7976 100644 --- a/doc/src/FAQ/FAQ_czech.html +++ b/doc/src/FAQ/FAQ_czech.html @@ -129,7 +129,7 @@

    Obecné otázky

    -

    1.1) Co je PostgreSQL? Jak se vyslovuje?

    +

    1.1) Co je PostgreSQL? Jak se vyslovuje?

    PostgreSQL se vyslovuje Post-Gres-Q-L. Zvukový záznam je dostupný na adrese .

    @@ -206,18 +206,18 @@ Win32 knihovny libpq a psql. K databázi PostgerSQL lze přistupovat skrze rozhraní ODBC.

    -

    Server

    +

    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. + 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. + http://momjian.postgresql.org/main/writings/pgsql/win32.html.

    Existující port pro Novell Netware 6 naleznete na http://forge.novell.com.

    @@ -238,7 +238,7 @@ subscribe end - na adresu +

    na adresu pgsql-general-request@PostgreSQL.org.

    Můľete si vyľádat denní přehled (diggest), který má zhruba 30K denně @@ -254,7 +254,7 @@

    Seznam daląích konferencí naleznete na stránkách PostgreSQL:

    - http://www.postgresql.org +

    http://www.postgresql.org

    1.7) Jaká je poslední verze?

    @@ -315,7 +315,7 @@

    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 + 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 @@ -341,7 +341,7 @@ 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í.

    + dědičnost, pravidla, MVCC redukující zamykání.

    Výkon
    Výkonnostně je na tom PostgreSQL podobně jako daląí komerční ale @@ -363,7 +363,7 @@ 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.

    + jsme srovnatelní s daląími databázemi.

    Podpora
    Na naąí mailové konferenci můľete kontaktovat velkou skupinu @@ -375,7 +375,7 @@ kteří vyľadují podporu ke konkrétním případům, existuje placená podpora (FAQ sekce 1.6).

    -
    Cena
    +
    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).
    @@ -553,7 +553,7 @@ například:

         cd /usr/local/pgsql
    -    ./bin/postmaster > server.log 2>&1 &
    +    ./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á @@ -773,7 +773,7 @@

    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: + MIN() nepouľívají indexy, ale je moľné tutéľ hodnotu získat:

         SELECT col 
         FROM tab
    @@ -791,7 +791,7 @@
           
    • 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 @@ -926,7 +926,7 @@ BYTEA bytea pole byt

    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(). + 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?

    @@ -986,7 +986,7 @@ BYTEA bytea pole byt
  • 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
  • +
  • range variable, jméno tabulky, alias tabulky (range variable, table name, table alias)
  • @@ -1038,13 +1038,13 @@ CREATE TABLE test (x int, modtime timestamp DEFAULT CURRENT_TIMESTAMP );

    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: + nahradit IN EXISTS:

         SELECT * 
         FROM tab
         WHERE col IN (SELECT subcol FROM subtab);
     
    - na: +

    na:

        SELECT * 
        FROM tab
    @@ -1101,7 +1101,7 @@ CREATE TABLE test (x int, modtime timestamp DEFAULT CURRENT_TIMESTAMP );
     
        

    V PostgreSQL 7.3 můľete jednoduąe vracet více řádků nebo sloupců z funkce, viz: - http://techdocs.postgresql.org/guides/SetReturningFunctions. + http://techdocs.postgresql.org/guides/SetReturningFunctions.

    4.26) Proč nelze spolehlivě vytvářet a ruąit dočasné tabulky v PL/pgSQL funkcích?

    @@ -1164,4 +1164,4 @@ CREATE TABLE test (x int, modtime timestamp DEFAULT CURRENT_TIMESTAMP ); přepínač --enable-depend příkazu configure k automatickému řeąení závislostí překladačem.

    - \ No newline at end of file + diff --git a/doc/src/FAQ/FAQ_french.html b/doc/src/FAQ/FAQ_french.html index 0436774159..c48334ea91 100644 --- a/doc/src/FAQ/FAQ_french.html +++ b/doc/src/FAQ/FAQ_french.html @@ -152,7 +152,7 @@

    PostgreSQL se prononce Post-Gres-Q-L. Un fichier audio est disponible sur http://www.postgresql.org/postgresql.mp3 + href="http://www.postgresql.org/postgresql.mp3">http://www.postgresql.org/postgresql.mp3 pour ceux souhaitant entendre la prononciation.

    PostgreSQL est une amélioration du systčme de gestion de bases @@ -173,7 +173,7 @@ développement de PostgreSQL. C'est un projet soutenu par une communauté sans ętre contrôlé par une société. Pour y contribuer, voir la FAQ des développeurs sur http://www.postgresql.org/docs/faqs/FAQ_DEV.html.

    + href="http://www.postgresql.org/docs/faqs/FAQ_DEV.html">http://www.postgresql.org/docs/faqs/FAQ_DEV.html.

    Les auteurs de PostgreSQL 1.01 étaient Andrew Yu et Jolly Chen. Beaucoup d'autres personnes ont contribué au portage, aux tests, @@ -292,7 +292,7 @@ PostgreSQL sur le site web de PostgreSQL :

    - http://www.PostgreSQL.org +

    http://www.PostgreSQL.org

    Il y a aussi un canal IRC sur Freenode et EFNet, le canal @@ -819,7 +819,7 @@ l'intégralité de la requęte peut ętre évaluée, jusqu'ŕ générer les lignes désirées.

    -

    Pour faire un SELECT sur une ligne aléatoire : +

    Pour faire un SELECT sur une ligne aléatoire :

         SELECT colonne
         FROM table
    @@ -1004,7 +1004,6 @@
         
  • La locale C par défaut doit ętre utilisée lors de initdb.
  • -

    Dans les versions antérieures ŕ la 8.0, les indexs ne peuvent souvent pas ętre utilisés sauf si les types de données correspondent exactement au @@ -1398,7 +1397,7 @@ BYTEA bytea tableau d'octets (accepte les octets nuls)

    A partir de la 7.3, vous pouvez facilement renvoyer plusieurs lignes ou colonnes ŕ partir d'une fonction, - http://techdocs.postgresql.org/guides/SetReturningFunctions. + http://techdocs.postgresql.org/guides/SetReturningFunctions.

    4.26) Pourquoi ne puis-je pas créer/supprimer des tables temporaires dans les fonctions PL/PgSQL de façon stable ?

    @@ -1422,7 +1421,7 @@ BYTEA bytea tableau d'octets (accepte les octets nuls) exister dans pg_hba.conf, et le sslmode du client ne doit pas ętre désactivée. Notez qu'il est aussi possible d'utiliser un transport crypté d'une troisičme partie, tel que stunnel ou ssh, plutôt que - les connexions SSL natives de PostgreSQL. + les connexions SSL natives de PostgreSQL.
  • Les mots de passe des utilisateurs sont automatiquement cryptés depuis la version 7.3. Pour les versions précédentes, vous devez activer l'option PASSWORD_ENCRYPTION dans postgresql.conf.
  • diff --git a/doc/src/FAQ/FAQ_german.html b/doc/src/FAQ/FAQ_german.html index 4d842ad6fd..924568b8fc 100644 --- a/doc/src/FAQ/FAQ_german.html +++ b/doc/src/FAQ/FAQ_german.html @@ -212,7 +212,7 @@ href="mailto:pgman@candle.pha.pa.us">pgman@candle.pha.pa.us).

    Eine Portierung fĂĽr Novell Netware 6 gibt es unter http://forge.novell.com.

    FĂĽr OS/2 (eComStation) gibt es eine Version hier: - http://hobbes.nmsu.edu/cgi-bin/h-search?sh=1&button=Search&key=postgreSQL&stype=all&sort=type&dir=%2F + http://hobbes.nmsu.edu/cgi-bin/h-search?sh=1&button=Search&key=postgreSQL&stype=all&sort=type&dir=%2F

    1.5) Woher bekomme ich PostgreSQL?

    @@ -223,7 +223,7 @@ href="mailto:pgman@candle.pha.pa.us">pgman@candle.pha.pa.us).

    1.6) Wo bekomme ich Support fĂĽr PostgreSQL?

    Die zentrale (englischsprachige) Mailing-Liste ist: - mailto:pgsql-general@postgresql.org . + mailto:pgsql-general@postgresql.org .

    Die Liste ist Themen vorbehalten, die PostgreSQL betreffen. Die Anmeldung erfolgt mit einer Email an die Adresse pgsql-general-request@postgresql.org mit folgenden Zeilen im Text @@ -260,7 +260,7 @@ href="mailto:pgman@candle.pha.pa.us">pgman@candle.pha.pa.us).

    Weitere Mailinglisten und Informationen zu PostgreSQL befinden sich auf der PostgreSQL-Homepage:

    -http://www.postgresql.org +

    http://www.postgresql.org

    Es gibt außerdem einen IRC-Channel bei EFNet und bei Freenode, Channel #PostgreSQL. Unter UNIX/Linux können Sie mit z.B. @@ -341,7 +341,7 @@ href="mailto:pgman@candle.pha.pa.us">pgman@candle.pha.pa.us).

    1.13) Wie sende ich einen Fehlerbericht?

    Bitte besuchen Sie die PostgreSQL-BugTool-Seite http://www.postgresql.org/bugform.html, - die Hinweise und Anleitungen zur Einreichung von Fehlerberichten enthält. + die Hinweise und Anleitungen zur Einreichung von Fehlerberichten enthält.

    ĂśberprĂĽfe auch den ftp-Server ftp://ftp.postgresql.org/pub/, um nachzusehen, ob es eine neuere PostgreSQL-Version oder neue Patches gibt.

    @@ -475,7 +475,7 @@ href="mailto:pgman@candle.pha.pa.us">pgman@candle.pha.pa.us).

    ) und Rekall ( http://www.thekompany.com/products/rekall/, GPL/proprietär). Es gibt außerdem phpPgAdmin ( - http://phppgadmin.sourceforge.net/ ), eine web-basierte Schnittstelle. + http://phppgadmin.sourceforge.net/ ), eine web-basierte Schnittstelle.

    2.4) Welche Programmiersprachen und Schnittstellen gibt es?

    @@ -500,7 +500,7 @@ href="mailto:pgman@candle.pha.pa.us">pgman@candle.pha.pa.us).

    (Bereich Drivers/Interfaces) bezogen werden.


    -

    Administrative Fragen

    +

    Administrative Fragen

    3.1) Wie installiere ich PostgreSQL woanders als in /usr/local/pgsql?

    @@ -632,7 +632,7 @@ href="mailto:pgman@candle.pha.pa.us">pgman@candle.pha.pa.us).

    Wenn der postmaster hingegen läuft, führen Sie psql in einem Fenster aus, ermitteln Sie die Prozessnummer (PID) des postgres-Prozesses, der von psql - verwendet wird (mit

    SELECT pg_backend_pid()
    ). Binden Sie einen Debugger an diese PID + verwendet wird (mit SELECT pg_backend_pid()). Binden Sie einen Debugger an diese PID und führen Sie Abfragen von psql aus. Wenn Sie den postgres-Serverstart analysieren wollen, setzen Sie die Umgebungsvariable PGOPTIONS="-W n", und starten Sie dann psql. Dies verzögert den Start um n Sekunden, damit Sie einen Debugger an @@ -728,7 +728,7 @@ href="mailto:pgman@candle.pha.pa.us">pgman@candle.pha.pa.us).

    4.2) Wie wähle ich per SELECT-Anweisung nur die ersten paar Zeilen bzw. eine beliebige Zeile in einer Abfrage aus?

    -

    Vgl. die FETCH Man-Page, oder benutzen Sie SELECT ... LIMIT... . +

    Vgl. die FETCH Man-Page, oder benutzen Sie SELECT ... LIMIT... .

    Selbst wenn Sie nur die ersten paar Zeilen einer Tabelle abfragen möchten, muß unter Umständen die komplette Abfrage abgearbeitet werden. Ziehen Sie also @@ -1123,7 +1123,7 @@ BYTEA bytea Bytearray mit variabler Länge (auch für durch Block und Offset Werte zu identifizieren. TIDs verändern sich, sobald Zeilen verändert oder zurückgeladen werden. Sie werden in Indexeinträgen benutzt um auf die physikalischen Zeilen zu - zeigen. + zeigen.

    4.16) Welche Bedeutung haben die verschiedenen AusdrĂĽcke, die in PostgreSQL benutzt werden (z.B. attribute, class,...)?

    diff --git a/doc/src/FAQ/FAQ_japanese.html b/doc/src/FAQ/FAQ_japanese.html index d09dd6f1d3..05812e8db5 100644 --- a/doc/src/FAQ/FAQ_japanese.html +++ b/doc/src/FAQ/FAQ_japanese.html @@ -2,9 +2,9 @@ PostgreSQL FAQ in Japanese + -

    PostgreSQL(ĄÝĄąĄČĄ°ĄěĄąˇ¦Ą­ĄĺˇĽˇ¦Ą¨Ąë)¤Ë¤Ä¤¤¤Ć¤č¤Ż¤˘¤ëĽÁĚä¤Č¤˝¤Î˛ňĹú(FAQ)

    @@ -13,20 +13,19 @@ PostgreSQL( ¸˝şß¤Î°Ý»ý´ÉÍýĽÔ: Bruce Momjian (pgman@candle.pha.pa.us)
    Maintainer of Japanese Translation: Jun Kuwamura (juk at PostgreSQL.jp)

    +HREF="mailto:juk at PostgreSQL.jp">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/


    ¤Ë˛óĹú¤¬¤˘¤ę¤Ţ¤ąˇŁ -

    -

    +
     (°Ę˛Ľˇ˘ĚőĽÔ¤Ë¤č¤ëĂíĽá¤ň [ĚőĂíˇ§ ¤Č ] ¤Č¤Ç°Ď¤ó¤Çµ­¤·¤Ţ¤ąˇŁ)
     [ĚőĂíˇ§
     	ĆüËܸěČÇŔ˝şî¤Ë¤Ä¤¤¤Ć¤ÎĄáĄâ¤ĎşÇ¸ĺČř¤Ř°ÜĆ°¤·¤Ţ¤·¤żˇŁ
    @@ -42,11 +41,9 @@ HREF="mailto:juk at PostgreSQL.jp">juk at PostgreSQL.jp)

    2005ÇŻ01·î12Ćü ·¬ÂĽ ˝á ] -

    +
    -


    -

    °ěČĚĹŞ¤ĘĽÁĚä

    @@ -133,15 +130,14 @@ HREF="mailto:juk at PostgreSQL.jp">juk at PostgreSQL.jp)

    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 (scrappy@PostgreSQL.org )¤Ç¤ąˇŁ(˛Ľµ­¤Î1.6Ŕá¤Ë»˛˛Ă¤Î»ĹĘý¤¬¤˘¤ę¤Ţ¤ąˇŁ)¸˝şßˇ˘¤ł¤ÎĄÁˇĽĄŕ¤¬ PostgreSQL ł«ČŻ¤Î¤ą¤Ů¤Ć¤ÎĚĚĹݤň¤ß¤Ć¤¤¤Ţ¤ąˇŁ¤ł¤ÎĄÁˇĽĄŕ¤ĎĄłĄßĄĺĄËĄĆĄŁĄ×ĄíĄ¸Ą§ĄŻĄČ¤Ç¤˘¤ęˇ˘¤¤¤«¤Ę¤ë´ë¶Č¤Ë¤č¤Ă¤Ć¤âŔ©¸ć¤ňĽő¤±¤Ţ¤»¤óˇŁ»˛˛Ă¤·¤ż¤±¤ě¤Đˇ˘ @@ -150,18 +146,20 @@ HREF="mailto:juk at PostgreSQL.jp">juk at PostgreSQL.jp)

    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

    @@ -187,7 +185,7 @@ 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ąńşÝł«ČŻĄÁˇĽĄŕ
    @@ -214,7 +212,7 @@ MODIFICATIONS.

    Ăřşî¸˘¤Ë´Ř¤ą¤ëŔµĘ¸¤Ďľĺµ­¤Î±Ń¸ě¤Ë¤č¤ëÉ˝µ­¤Ç¤ąˇŁĆüËܸěĚő¤Ď¤˘¤Ż¤Ţ¤Ç »˛ąÍ¤Ç¤ąˇŁ ] -
    +

    ľĺµ­¤ĎBSDĄéĄ¤Ą»ĄóĄą¤Ç¸Ĺ¤­ĄŞˇĽĄ×ĄóĄ˝ˇĽĄą¤ÎĄéĄ¤Ą»ĄóĄą¤Ç¤ąˇŁĄ˝ˇĽĄąĄłˇĽĄÉ ¤¬¤É¤Î¤č¤¦¤Ë»Č¤ď¤ě¤č¤¦¤Č¤âŔ©¸Â¤·¤Ţ¤»¤óˇŁąĄ¤Ţ¤·¤¤¤ł¤Č¤Ę¤Î¤Çˇ˘˛ćˇą¤â¤˝¤ě¤ň @@ -225,7 +223,6 @@ MODIFICATIONS.

    °ěČĚĹŞ¤Ëˇ˘şÇ¶á¤ÎUnix¸ß´ąĄ×ĄéĄĂĄČĄŰˇĽĄŕ¤Ç¤˘¤ě¤ĐPostgreSQL¤ň˛ÔĆŻ¤µ¤»¤é¤ě¤ë¤Ď¤ş¤Ç¤ąˇŁĄęĄęˇĽĄą¤Î»ţĹŔ¤ÇĽÂşÝ¤ËĄĆĄąĄČ¤ňąÔ¤Ę¤Ă¤ż¤ł¤Č¤ÎĘóąđ¤¬¤Ę¤µ¤ě¤żĄ×ĄéĄĂĄČĄŰˇĽĄŕ¤Ë¤Ä¤¤¤Ć¤ĎĄ¤ĄóĄąĄČˇĽĄëĽę°ú˝ń¤ËÎóµó¤·¤Ć¤˘¤ę¤Ţ¤ąˇŁ

    -

    1.4) Unix°Ęł°¤Î°Üż˘ČǤǻȤ¨¤ë¤â¤Î¤Ďˇ©

    ĄĐˇĽĄ¸ĄçĄó8.0¤Ë¤Ę¤ęˇ˘PostgreSQL ¤Ďˇ˘Win2000, WinXP, Win2003¤Ę¤É¤Î Microsoft Windows NTĄŮˇĽĄą¤ÎĄŞĄÚĄěˇĽĄĆĄŁĄóĄ°Ą·ĄąĄĆĄŕ¤ÇĄÍĄ¤ĄĆĄŁĄÖ¤ËÁö¤ë¤č¤¦¤Ë¤Ę¤ę¤Ţ¤·¤żˇŁ @@ -233,18 +230,18 @@ MODIFICATIONS.

    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¤Ë¤˘¤ę¤Ţ¤ąˇŁ

    + "http://hobbes.nmsu.edu/cgi-bin/h-search?sh=1&button=Search&key=postgreSQL&stype=all&sort=type&dir=%2F"> + http://hobbes.nmsu.edu/cgi-bin/h-search?sh=1&button=Search&key=postgreSQL&stype=all&sort=type&dir=%2F¤Ë¤˘¤ę¤Ţ¤ąˇŁ


    @@ -256,7 +253,7 @@ href="ftp://ftp.PostgreSQL.org/pub/">ftp://ftp.PostgreSQL.org/pub/ ¤Ç¤ąˇŁ ĄßĄéˇĽĄµĄ¤ĄČ¤Ë¤Ä¤¤¤Ć¤Ďˇ˘˛ćˇą¤ÎĄáĄ¤Ąó Web ĄÚˇĽĄ¸¤ň¤´Í÷˛Ľ¤µ¤¤ˇŁ

    -
    +
         [ĚőĂí:
     
     	°Ę˛Ľ¤ĎĆüËܤΥߥ顼ĄµĄ¤ĄČ¤Ç¤ą:
    @@ -274,7 +271,7 @@ href="ftp://ftp.PostgreSQL.org/pub/">ftp://ftp.PostgreSQL.org/pub/
            Japan: ftp://ring.so-net.ne.jp/pub/misc/db/PostgreSQL/
            Japan: ftp://ring.aist.go.jp/pub/misc/db/PostgreSQL/
         ]
    -
    +

    1.6) ĄµĄÝˇĽĄČ¤Ď¤É¤ł¤ÇĽő¤±¤é¤ě¤Ţ¤ą¤«ˇ©

    @@ -292,33 +289,35 @@ href="ftp://ftp.PostgreSQL.org/pub/">ftp://ftp.PostgreSQL.org/pub/ end
    -¤Č˝ń¤¤¤Ć pgsql-general-digest-request@PostgreSQL.org ¤ŘĹŻҥ᡼Ąë¤ňÁ÷¤Ă¤Ć˛Ľ¤µ¤¤ˇŁ

    +

    ¤Č˝ń¤¤¤Ć pgsql-general-digest-request@PostgreSQL.org ¤ŘĹŻҥ᡼Ąë¤ňÁ÷¤Ă¤Ć˛Ľ¤µ¤¤ˇŁ

    ĄŔĄ¤Ą¸Ą§ĄąĄČČǤϡ˘ĄáĄ¤ĄóĄęĄąĄČ¤ÇĽőż®¤ą¤ëĄáĄĂĄ»ˇĽĄ¸¤¬ 30k ÄřĹŮÎŻ¤ëËč¤ËĄŔĄ¤Ą¸Ą§ĄąĄČČǥꥹĄČ¤ÎĄáĄóĄĐˇĽ¤ËÁ÷ÉŐ¤µ¤ě¤Ţ¤ąˇŁ

    ĄĐĄ°ĄěĄÝˇĽĄČÍѤΥ᡼ĄęĄóĄ°ĄęĄąĄČ¤â¤˘¤ę¤Ţ¤ąˇŁ¤ł¤ÎĄęĄąĄČ¤Ř¤Î»˛˛Ă¤Ď "ËÜʸ" ¤Ëˇ§ +

     	subscribe
     	end
     
    +

    ¤Č˝ń¤¤¤Ćpgsql-bugs-request@PostgreSQL.org ¤ŘĹŻҥ᡼Ąë¤ňÁ÷¤Ă¤Ć˛Ľ¤µ¤¤ˇŁ

    ł«ČŻĽÔ¤ÎµÄĎŔ¤Î¤ż¤á¤ÎĄáˇĽĄęĄóĄ°ĄęĄąĄČ¤âÍřÍѤǤ­¤Ţ¤ąˇŁ¤ł¤ÎĄęĄąĄČ¤Ř¤Î»˛˛Ă¤ĎĹŻҥ᡼Ąë¤ÎËÜʸ¤Ëˇ§ +

     	subscribe
     	end
     
    -¤Č˝ń¤¤¤Ćˇ˘pgsql-hackers-request@PostgreSQL.org¤ŘĹŻҥ᡼Ąë¤ňÁ÷¤Ă¤Ć˛Ľ¤µ¤¤ˇŁ

    +

    ¤Č˝ń¤¤¤Ćˇ˘pgsql-hackers-request@PostgreSQL.org¤ŘĹŻҥ᡼Ąë¤ňÁ÷¤Ă¤Ć˛Ľ¤µ¤¤ˇŁ

    -

    PostgreSQL ¤Ë¤Ä¤¤¤Ć¤â¤Ă¤ČľÜ¤·¤ŻĂΤꤿ¤±¤ě¤Đˇ˘Ľˇ¤Î PostgreSQL WWWĄŰˇĽĄŕĄÚˇĽĄ¸¤«¤é¤ż¤É¤ě¤Ţ¤ąˇ§

    - http://www.PostgreSQL.org +

    http://www.PostgreSQL.org

    -

    ĄáĄ¸ĄăˇĽ¤ĘIRC ĄÁĄăĄóĄÍĄë¤Ďˇ˘Freenode (irc.freenode.net)¤Î #PostgreSQL ¤Č¤¤¤¦ĄÁĄăĄóĄÍĄë¤Ç¤ąˇŁ UNIX ĄłĄŢĄóĄÉ¤Çˇ˘ @@ -329,8 +328,7 @@ UNIX EFNet¤Ë¤âPostgreSQLĄÁĄăĄóĄÍĄë¤¬¤˘¤ę¤Ţ¤ąˇŁ

    -

    -

    +
         [ĚőĂí:
     	  1999ÇŻ7·î23Ćüˇ˘ĆüËÜĄÝĄąĄČĄ°ĄěĄąĄćˇĽĄ¶ˇĽ˛ńˇ˘Î¬ľÎJPUG¤¬ŔßΩ¤µ¤ě¤Ţ¤·¤żˇŁ
     	JPUG ¤ĎČó±ÄÍřÁČżĄ¤Çˇ˘PostgreSQL¤ňÍřÍѤą¤ëżÍĂŁ¤ÎÁę¸ß¶¨ÎϤξě¤Č¤Ę¤Ă¤Ć¤¤¤Ţ¤ąˇŁ  
    @@ -341,7 +339,7 @@ EFNet
     	¤ň¤´Í÷¤Ż¤Ŕ¤µ¤¤ˇŁ˛ń°÷ĹĐĎż¤â˛ÄÇ˝¤Č¤Ę¤Ă¤Ć¤¤¤Ţ¤ąˇŁ
     
     	ĆüËܸě¤ÎIRCĄÁĄăĄóĄÍĄë '#PostgreSQL*jp' ¤â¸şß¤·¤Ţ¤ąˇŁ
    -
    +

    ľ¦ÍŃĄµĄÝˇĽĄČ˛ńĽŇ¤ÎĄęĄąĄČ¤Ďhttp://techdocs.postgresql.org/companies.php¤Ë¤˘¤ę¤Ţ¤ąˇŁ

    @@ -358,24 +356,25 @@ PostgreSQL

    ÇŰÉŐ¤ÎĂć¤Ëˇ˘¤¤¤Ż¤Ä¤«¤ÎĄŢĄËĄĺĄ˘Ąë¤ČĄŞĄóĄéĄ¤Ąóˇ¦ĄŢĄËĄĺĄ˘Ąë(ĄŢĄËĄĺĄ˘Ąëˇ¦ĄÚˇĽĄ¸)¤Ş¤č¤Ó¤¤¤Ż¤Ä¤«¤Îľ®¤µ¤ĘĄĆĄąĄČÎăÂ꤬´Ţ¤Ţ¤ě¤Ţ¤ąˇŁ/doc ĄÇĄŁĄěĄŻĄČĄę¤ň¤´Í÷˛Ľ¤µ¤¤ˇŁ¤Ţ¤żˇ˘ĄŢĄËĄĺĄ˘Ąë¤Ďˇ˘http://www.ca.PostgreSQL.org/docs/¤ÇĄŞĄóĄéĄ¤Ąó¤Ç¤â±ÜÍ÷¤Ç¤­¤Ţ¤ąˇŁ

    -
    +
         [ĚőĂí:
     	ˇĘłôˇËSRA¤ČĆüËÜPostgreSQLĄćˇĽĄ¶˛ń¤ÇËÝĚő¤µ¤ěˇ˘
     	ˇÖPostgreSQL ĄŞĄŐĄŁĄ·ĄăĄëĄŢĄËĄĺĄ˘Ąëˇ×
     	¤Č¤·¤Ć˝ĐČǤµ¤ě¤Ć¤¤¤Ţ¤ąˇŁ
         ]
    -
    +

    ĄŞĄóĄéĄ¤Ąó¤Ç»˛ľČ¤Ç¤­¤ë PostgreSQL ¤ÎËܤâ2şý¤˘¤ę¤Ţ¤ąˇŁhttp://www.PostgreSQL.org/docs/awbook.html -

    +

    +
         [ĚőĂí:
     	ĆüËÜĄÝĄąĄČĄ°ĄěĄąĄćˇĽĄ¶ˇĽ˛ń¤Î	ˇÖPostgreSQL BookËÝĚőʬ˛Ę˛ńˇ×
     	¤Ë¤ĆËÝĚő¤µ¤ě¤Ţ¤·¤żˇŁ
         ]
    -
    - +
    +

    ¤Ş¤č¤Óˇ˘ http://www.commandprompt.com/ppbook/ ¤Ç¤ąˇŁ @@ -415,14 +414,13 @@ PostgreSQL http://www.PostgreSQL.org/docs/awbook.html ¤Ë¤˘¤ëPostgreSQLËÜ¤Ç SQL ¤ň¶µ¤¨¤Ć¤¤¤Ţ¤ąˇŁ - -

    +

    +
         [ĚőĂí:
     	ĆüËÜĄÝĄąĄČĄ°ĄěĄąĄćˇĽĄ¶ˇĽ˛ń¤Î	ˇÖPostgreSQL BookËÝĚőʬ˛Ę˛ńˇ×
     	¤Ë¤ĆËÝĚő¤µ¤ě˝ĐČǤµ¤ě¤Ć¤¤¤Ţ¤ąˇŁ
         ]
    -
    -

    +

    ¤˝¤ÎÂľ¤Ë¤â PostgreSQLËܤȤ·¤Ćˇ˘ ¤Î¤č¤¦¤Ę¤Î¤â¤˘¤ę¤Ţ¤ąˇŁ

    -

    -

    +
         [ĚőĂí:
     	 ŔĐ°ćĂŁÉ×»á¤Ë¤č¤ëĆüËܸě¤Î»˛ąÍʸ¸Ą¤ÎľŇ˛đĄÚˇĽĄ¸
     		http://www.SRA.co.jp/people/t-ishii/PostgreSQL/doc-jp/index.html
    @@ -465,8 +462,7 @@ http://www.PostgreSQL.org/docs/awbook.html
     		http://www.wakhok.ac.jp/DB/DB.html
     	¤âĄŞĄóĄéĄ¤Ąó¤ÇĆɤळ¤Č¤¬¤Ç¤­¤Ţ¤ąˇŁ
         ]
    -
    -

    +

    1.11) PostgreSQL¤ĎŔľÎń2000ÇŻĚäÂę(Y2K)¤ËÂбţ¤·¤Ć¤¤¤Ţ¤ą¤«ˇ©

    @@ -536,6 +532,7 @@ http://www.PostgreSQL.org/docs/awbook.html

    ĽÁ¤ÎÎɤ¤´đČפϡ˘ĄŞˇĽĄ×ĄóĄ˝ˇĽĄąˇ¦Ą×ĄíĄ¸Ą§ĄŻĄČ¤Ë¤Č¤Ă¤Ć¤Ď¤Č¤Ć¤âÂçŔڤʤâ¤Î¤Çˇ˘Ą×ĄíĄ¸Ą§ĄŻĄČ¤¬Á°żĘ¤ą¤ëŔޤ¤¤ňĽş¤Ă¤ĆʬÎö¤ą¤ë¤Î¤ň˛óČň¤·¤Ţ¤ąˇŁ

    ¤â¤Á¤í¤óˇ˘¤ł¤Î´đČפϰ¤¤¤â¤Î¤Ç¤Ď¤˘¤ę¤Ţ¤»¤óˇŁ°Ý»ý¤·Âł¤±¤ë¤ż¤á¤Ë¤ĎËč·î¤˘¤ë¤¤¤Ď°ě»ţĹŞ¤Ë·ĐČń¤¬¤«¤«¤ę¤Ţ¤ąˇŁ¤â¤·ˇ˘¤˘¤Ę¤ż¤ä¤˘¤Ę¤ż¤Î˛ńĽŇ¤Ëˇ˘¤ł¤¦¤·¤żĹŘÎϤΤż¤á¤Î»ń¶â¤Î±ç˝ő¤ň»Ü¤ą¤ł¤Č¤¬¤Ç¤­¤ë¤č¤¦¤Ç¤·¤ż¤éˇ˘http://store.pgsql.com/shopping/¤«¤é´óÉŐ¤ň¤Ş´ę¤¤¤·¤Ţ¤ąˇŁ +

    ¤Ţ¤żˇ˘WebĄÚˇĽĄ¸¤Ë¤Ď PostgreSQL,Inc ¤Č¤˘¤ę¤Ţ¤ą¤¬ˇ˘¤˝¤ł¤Î "ą×¸Ą(contributions)"¤Č¤¤¤¦ąŕĚܤϡ˘ PostgreSQL Ą×ĄíĄ¸Ą§ĄŻĄČ¤ň»Ů±ç¤ą¤ë¤Ŕ¤±¤Î¤ż¤á¤Çˇ˘·č¤·¤ĆĆĂÄę¤Î˛ńĽŇ¤Î¤ż¤á¤Î»ń¶â¤Ç¤Ď¤˘¤ę¤Ţ¤»¤óˇŁ¤â¤·ˇ˘ľ®ŔÚĽę(check)¤ÎĘý¤¬ĹÔąç¤č¤±¤ě¤ĐϢÍíŔč¤Î˝»˝ę¤Ř¤ŞÁ÷¤ę˛Ľ¤µ¤¤ˇŁ

    @@ -546,10 +543,8 @@ http://www.PostgreSQL.org/docs/awbook.html ¤Ř¤ŞÁ÷¤ę¤Ż¤Ŕ¤µ¤¤ˇŁ

    -


    ĄćˇĽĄ¶ˇĽˇ¦ĄŻĄéĄ¤Ą˘ĄóĄČ¤ÎĽÁĚä

    -

    2.1) PostgreSQL ¤Î¤ż¤á¤Î ODBC ĄÉĄéĄ¤ĄĐˇĽ¤Ď¤˘¤ę¤Ţ¤ą¤«ˇ©

    @@ -563,26 +558,27 @@ http://www.PostgreSQL.org/docs/awbook.html

    OpenLink ODBC ¤Ď http://www.openlinksw.com/¤«¤éĆţĽę¤Ç¤­¤Ţ¤ąˇŁÉ¸˝ŕĹŞ¤Ę ODBC ĄŻĄéĄ¤Ą˘ĄóĄČˇ¦Ą˝ĄŐĄČĄ¦Ą§Ą˘¤Ç»Č¤¨¤Ţ¤ą¤Î¤Çˇ˘»Ů±ç¤·¤Ć¤¤¤ë¤ą¤Ů¤Ć¤ÎĄ×ĄéĄĂĄČĄŰˇĽĄŕ(Win, Mac, Unix, VMS)¤«¤é PostgreSQL ¤Î ODBC ¤¬ÍřÍѤǤ­¤Ţ¤ąˇŁ +

    ¤ż¤Ö¤óČŕ¤é¤Ďˇ˘ľ¦ÍŃÉĘĽÁ¤ÎĄµĄÝˇĽĄČ¤ÎɬÍפʿ͡ą¤ËÇä¤Ă¤Ć¤¤¤ë¤Č»×¤¤¤Ţ¤ą¤¬ˇ˘ ĄŐĄęˇĽĄ¦Ą§Ą˘ČǤϤ¤¤Ä¤Ç¤âĆţĽę˛ÄÇ˝¤Î¤č¤¦¤Ç¤ąˇŁĽÁĚä¤Ďˇ˘postgres95@openlink.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ĄćˇĽĄ¶˛ń¤ÎĄµĄ¤ĄČ
     		http://www.php.gr.jp/
    @@ -590,11 +586,12 @@ Programmer's Guide
     		http://www.geocities.jp/rui_hirokawa/php/
     	¤Ë¤«¤Ę¤ę¤Ţ¤Č¤á¤é¤ě¤Ć¤¤¤Ţ¤ąˇŁ
         ]
    -
    +

    ˝čÍý¤¬ĘŁ»¨¤Ęľěąçˇ˘Âż¤Ż¤ÎżÍ¤Ď Perl Ą¤ĄóĄżˇĽĄŐĄ§Ą¤Ąą¤Č CGI.pm ¤« mod_perl ¤ň»Č¤¤¤Ţ¤ąˇŁ +

    -
    +
         [ĚőĂí:
     	WDB ¤Ďˇ˘Web ¤«¤é DataBase ¤Ř¤Î Perl ¤Î Interface ¤Ç¤ąˇŁ
     	wdb-p95 ¤Ř¤ÎĄęĄóĄŻ¤ĎŔÚ¤ě¤Ć¤·¤Ţ¤Ă¤Ć¤¤¤Ţ¤ąˇŁ¤Ş¤˝¤é¤Żˇ˘Perl DBI ·ĐÍł¤Ç DBD::Pg ¤ÎÍřÍѤ¬˛ÄÇ˝¤Č»×¤ď¤ě¤Ţ¤ąˇŁ
    @@ -604,9 +601,8 @@ Programmer's Guide
     		http://www.i-con.dk/wdb/
     	¤Č¤¬¤˘¤ę¤Ţ¤ąˇŁ¤˝¤Î·Đ°Ţ¤Ď¤č¤Ż¤ď¤«¤ę¤Ţ¤»¤óˇŁ
         ]
    -
    +
    -

    2.3) PostgreSQL ¤ËĄ°ĄéĄŐĄŁĄ«Ąëˇ¦ĄćˇĽĄ¶Ą¤ĄóĄżˇĽĄŐĄ§Ą¤Ąą¤Ď¤˘¤ę¤Ţ¤ą¤«ˇ©

    ¤â¤Á¤í¤óˇ˘PostgreSQL ¤Ř¤ÎĄ°ĄéĄŐĄŁĄ«ĄëĄ¤ĄóĄżˇĽĄŐĄ§Ą¤Ąą¤¬¤¤¤Ż¤Ä¤«¤˘¤ę¤Ţ¤ąˇŁ @@ -626,12 +622,12 @@ RHDB Admin ( http://phppgadmin.sourceforge.net/ ) ¤ĎPostgreSQL¤Ř¤ÎWebĄŮˇĽĄą¤Î Ą¤ĄóĄżˇĽĄŐĄ§Ą¤Ąą¤ňÄ󶡤·¤Ţ¤ąˇŁ +

    ¤č¤ęľÜşŮ¤ĘĄęĄąĄČ¤Ë¤Ä¤¤¤Ć¤Ďˇ˘http://techdocs.postgresql.org/guides/GUITools ¤ň¤´Í÷¤Ż¤Ŕ¤µ¤¤ˇŁ

    -

    2.4) ¤É¤Î¤č¤¦¤Ę¸Ŕ¸ě¤Ç PostgreSQL ¤ČÄĚż®¤Ç¤­¤ą¤«ˇ©

    @@ -640,42 +636,41 @@ PhpPgAdmin (

    °Ę˛Ľ¤ÎĄ¤ĄóĄżˇĽĄŐĄ§Ą¤Ąą¤ĎPostgreSQL¤ÎÇŰÉۤ˴ޤޤě¤Ć¤¤¤Ţ¤ąˇŁ +

    -

    ¤˝¤ÎÂľ¤ÎÍřÍѲÄÇ˝¤ĘĄ¤ĄóĄżˇĽĄŐĄ§Ą¤Ąą¤Ď ¤˝¤ÎÂľ¤ÎÍřÍѲÄÇ˝¤ĘĄ¤ĄóĄżˇĽĄŐĄ§Ą¤Ąą¤Ď 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 Ą¨ĄéˇĽ¤¬˝Đ¤Ţ¤ąˇŁ¤Ę¤Ľ¤Ç¤ą¤«ˇ©

    @@ -686,11 +681,11 @@ PhpPgAdmin ( ¤Ë¶¦Í­ĄáĄâĄęˇĽ¤ČĄ»ĄŢĄŐĄ©¤Ë¤Ä¤¤¤Ć¤ÎľđĘó¤ÎľÜşŮ¤¬¤˘¤ę¤Ţ¤ą¤Î¤Ç¤´Í÷¤Ż¤Ŕ¤µ¤¤ˇŁ

    -

    3.4) postmaster¤ňÁö¤é¤»¤č¤¦¤Č¤ą¤ë¤Čˇ˘IpcSemaphoreCreate Ą¨ĄéˇĽ¤¬˝Đ¤Ţ¤ąˇŁ¤Ę¤Ľ¤Ç¤ą¤«ˇ©

    ¤â¤·Ą¨ĄéˇĽĄáĄĂĄ»ˇĽĄ¸¤¬IpcSemaphoreCreate: semget failed (No space left on device)¤Ç¤˘¤ě¤Đˇ˘Ą«ˇĽĄÍĄë¤¬˝˝Ę¬¤ĘĄ»ĄŢĄŐĄ©¤ň»Č¤¨¤ë¤č¤¦¤Ëą˝Ŕ®¤µ¤ě¤Ć¤¤¤Ţ¤»¤óˇŁPostgres¤ĎŔřşßĹŞ¤ĘĄĐĄĂĄŻĄ¨ĄóĄÉĄ×ĄíĄ»ĄąËč¤Ë°ě¤Ä¤ÎĄ»ĄŢĄŐĄ©¤ňɬÍפȤ·¤Ţ¤ąˇŁ¤Č¤ę¤˘¤¨¤ş¤Î˛ň·čşö¤Ďpostmaster¤ňµŻĆ°¤ą¤ë¤Č¤­¤Ëˇ˘ĄĐĄĂĄŻĄ¨ĄóĄÉĄ×ĄíĄ»Ąą¤Îżô¤ň¤č¤ęľŻ¤Ę¤ŻŔ©¸Â¤ň¤ą¤ë¤ł¤Č¤Ç¤ąˇŁ´űÄęĂͤÎ32¤č¤ęľ®¤µ¤Ężô¤ÎĄŃĄéĄáˇĽĄż¤ň-N¤Ç»Č¤¤¤Ţ¤ąˇŁ¤č¤ęą±µ×ĹŞ¤Ę˛ň·čşö¤Ďˇ˘Ą«ˇĽĄÍĄë¤ÎSEMMNS ¤Č SEMMNI ĄŃĄéĄáˇĽĄż¤ňÁý¤ä¤ą¤ł¤Č¤Ç¤ąˇŁ +

    ÁŕşîÉÔÇ˝¤ÎĄ»ĄŢĄŐĄ©¤â˛áĹ٤ʥǡĽĄżĄŮˇĽĄąĄ˘ĄŻĄ»Ąą¤Î´Ö¤ËĄŻĄéĄĂĄ·Ąĺ¤ň µŻ¤ł¤ą˛ÄÇ˝Ŕ­¤¬¤˘¤ę¤Ţ¤ąˇŁ @@ -699,7 +694,6 @@ PhpPgAdmin (

    ¤â¤·ˇ˘Ą¨ĄéˇĽĄáĄĂĄ»ˇĽĄ¸¤¬¤Ę¤Ë¤«Âľ¤Î¤â¤Î¤Ç¤˘¤ě¤Đˇ˘Ą«ˇĽĄÍĄë¤Îą˝Ŕ®¤Ç¤Ţ¤Ă¤ż¤ŻĄ»ĄŢĄŐĄ©¤ÎĄµĄÝˇĽĄČ¤ň¤·¤Ć¤¤¤Ę¤¤¤«¤â¤·¤ě¤Ţ¤»¤óˇŁ PostgreSQL Administrator's Guide ¤Ë¶¦Í­ĄáĄâĄęˇĽ¤ČĄ»ĄŢĄŐĄ©¤Ë¤Ä¤¤¤Ć¤ÎľđĘó¤ÎľÜşŮ¤¬¤˘¤ę¤Ţ¤ąˇŁ

    -

    3.5) Âľ¤ÎĄŰĄąĄČ¤«¤é¤ÎŔÜÂł¤Ď¤É¤Î¤č¤¦¤ËŔ©¸ć¤·¤Ţ¤ą¤«ˇ©

    @@ -707,56 +701,68 @@ PostgreSQL Administrator's Guide

    ´űÄęĂͤǤϡ˘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 &
    +	./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¤¬¸«¤Ä¤«¤ę¤Ţ¤ąˇŁ +

    ¤â¤·ˇ˘postmaster¤¬Áö¤Ă¤Ć¤¤¤ě¤Đˇ˘¤˘¤ëĄ¦ĄŁĄóĄÉĄ¦¤Çpsql¤ňł«»Ď¤ą¤ë¤Čˇ˘SELECT pg_backend_pid()¤ň»Č¤Ă¤Ćˇ˘psql ¤Ç»Č¤ď¤ě¤ë postgres Ą×ĄíĄ»Ąą¤ÎPID¤¬¸«¤Ä¤«¤ę¤Ţ¤ąˇŁ ĄÇĄĐĄĂĄ¬¤ň»Č¤Ă¤Ćpostgres¤ÎPID¤ËĄ˘ĄżĄĂĄÁ(attach)¤·¤Ţ¤ąˇŁĄÇĄĐĄĂĄ¬¤ÎĂ椫¤éĄÖĄěˇĽĄŻˇ¦ĄÝĄ¤ĄóĄČ¤ňĄ»ĄĂĄČ¤·ˇ˘psql ¤«¤éĚ䤤ąç¤ď¤»¤ňČŻąÔ¤·¤Ţ¤ąˇŁĄÇĄĐĄ°¤Î¤ż¤á¤Ëpostgres¤ň»ĎĆ°¤ą¤ëľěąç¤Ďˇ˘PGOPTIONS="-W n" ¤ňŔßÄę¤Ç¤­ˇ˘¤˝¤ě¤«¤éˇ˘psql ¤ňł«»Ď¤·¤Ţ¤ąˇŁ¤ł¤ě¤Ë¤č¤ęˇ˘n ÉĂł«»Ď¤ňĂ٤餻¤ë¤Ď¤ş¤Ę¤Î¤Çˇ˘ĄÇĄĐĄĂĄ¬¤ÇĄ×ĄíĄ»Ąą¤ËĄ˘ĄżĄĂĄÁ¤·¤Ćˇ˘ĄÖĄěˇĽĄŻĄÝĄ¤ĄóĄČ¤ňŔßÄꤷˇ˘ł«»Ď¤«¤é˝ç¤ňÄɤäƸ«¤Ć¤ć¤Ż¤ł¤Č¤¬¤Ç¤­¤Ţ¤ąˇŁ -

    ¤¤¤Ż¤Ä¤«¤Î

    log_*
    ĄµˇĽĄĐą˝Ŕ®ĘŃżô¤Ďˇ˘ĄÇĄĐĄĂĄ°¤ČŔ­Ç˝Â¬Äę¤Ë¤Č¤Ć¤âĚň¤ËΩ¤ÄĄ×ĄíĄ»Ąą¤ÎĹý·×¤Î°őşţ¤ň˛ÄÇ˝¤Ë¤·¤Ţ¤ąˇŁ +

    +

    ¤¤¤Ż¤Ä¤«¤Î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)ˇ˘ @@ -767,17 +773,19 @@ PostgreSQL Administrator's Guide ¤âłÎǧ»öąŕ¤Ë´Ţ¤Ţ¤ě¤Ţ¤ąˇŁ PostgreSQL¤Ëµö¤µ¤ě¤ëĄĐĄĂĄŻĄ¨ĄóĄÉ¤ÎĄ×ĄíĄ»Ąążô¤¬Ŕ©¸Â¤µ¤ě¤Ć¤¤¤ë¤Î¤Ďˇ˘ Ą·ĄąĄĆĄŕ¤ÎĄęĄ˝ˇĽĄą¤ň»Č¤¤˛Ě¤·¤Ć¤·¤Ţ¤¦¤ł¤Č¤ňČň¤±¤ë¤ż¤á¤Ç¤ąˇŁ +

    -

    -

    3.9) pgsql_tmp ĄÇĄŁĄěĄŻĄČĄę¤ÎĂć¤Ë¤Ď˛ż¤¬¤˘¤ę¤Ţ¤ą¤«ˇ© +

    3.9) pgsql_tmp ĄÇĄŁĄěĄŻĄČĄę¤ÎĂć¤Ë¤Ď˛ż¤¬¤˘¤ę¤Ţ¤ą¤«ˇ©

    Ě䤤ąç¤ď¤»ĽÂąÔĄâĄ¸ĄĺˇĽĄë¤Ë¤č¤Ă¤ĆŔ¸Ŕ®¤µ¤ě¤ż°ě»ţĹŞ¤ĘĄŐĄˇĄ¤Ąë¤¬ˇ˘¤ł¤ÎĄÇĄŁ ĄěĄŻĄČĄę¤Ë´Ţ¤Ţ¤ě¤Ţ¤ąˇŁÎ㤨¤Đˇ˘¤â¤· ORDER BY ¶ç¤ňËţ¤ż¤ą¤ż¤á¤ËĄĐĄĂĄŻĄ¨ĄóĄÉ¤Î -S ĄŃĄéĄáˇĽĄż¤Çµö˛Ä¤·¤żĂͤč¤ę¤âÂ礭¤ĘĄąĄÚˇĽĄą¤¬Ą˝ˇĽĄČ¤ÎşÝ¤ËɬÍפŔ¤Č¤ą¤ë¤Čˇ˘°î¤ě¤żĄÇˇĽĄż¤ňĘÝ»ý¤ą¤ë¤ż¤á¤Ë°ě»ţĹŞ¤ĘĄŐĄˇĄ¤Ąë¤¬¤¤¤Ż¤Ä¤«¤ł¤ł¤ËŔ¸Ŕ®¤µ¤ě¤Ţ¤ąˇŁ +

    °ě»ţĹŞ¤ĘĄŐĄˇĄ¤Ąë¤ĎĽ«Ć°ĹŞ¤ËľĂ¤·µî¤é¤ě¤ë¤Ď¤ş¤Ç¤ą¤¬ˇ˘¤â¤·ˇ˘Ą˝ˇĽĄČ¤ÎĹÓĂć¤ÇĄĐĄĂĄŻĄ¨ĄóĄÉ¤¬ĄŻĄéĄĂĄ·Ąĺ¤·¤Ć¤·¤Ţ¤¦¤Č¤˝¤¦¤Ď¤Ę¤ę¤Ţ¤»¤óˇŁpostmaster¤ÎÄä»ß¤ČĄęĄąĄżˇĽĄČ¤Ç¤ł¤ě¤é¤ÎĄŐĄˇĄ¤Ąë¤ĎĄÇĄŁĄěĄŻĄČĄę¤«¤éľĂ¤·¤µ¤é¤ě¤Ţ¤ąˇŁ +

    -
    +
         [ĚőĂíˇ§
     	 SYSLOGD ·ĐÍł¤ÇĄíĄ°¤ň˝ĐÎϤą¤ë¤Ë¤Ďˇ˘¤Ţ¤şˇ˘configure ¤ň --enable-syslog 
     	ÉŐ¤­¤ÇÁö¤é¤»¤ż¸ĺˇ˘ĄłĄóĄŃĄ¤Ąë¤ČĄ¤ĄóĄąĄČˇĽĄë¤ňąÔ¤Ę¤¤¤Ţ¤ąˇŁ
    @@ -787,41 +795,40 @@ PostgreSQL
     	ĄŞĄ×Ą·ĄçĄóÉŐ¤­¤Ë¤ĆĄµˇĽĄĐĄâˇĽĄÉ¤ÇµŻĆ°¤·¤Ţ¤ąˇŁ(ĄĐˇĽĄ¸ĄçĄó 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¤ą¤ë¤Ë¤Ďˇ˘Ľˇ¤Îʸ¤ň»Č¤¤¤Ţ¤ąˇ§ +

         SELECT col
         FROM tab
    @@ -829,7 +836,6 @@ PC
         LIMIT 1;
     
    -

    4.3) ĄĆˇĽĄÖĄë¤ä¤˝¤ÎÂľ¤ÎľđĘó¤ÎĄęĄąĄČ¤ň psql ¤Ç¸«¤ë¤Ë¤Ď¤É¤¦¤·¤Ţ¤ą¤«ˇ©

    @@ -842,6 +848,7 @@ PC

    DROP COLUMNµˇÇ˝¤¬ˇ˘ALTER TABLE DROP COLUMN ¤Č¤·¤ĆĄęĄęˇĽĄą7.3 ¤Ë˛Ă¤¨¤é¤ě¤Ţ¤·¤żˇŁ¤˝¤ě¤Ţ¤Ç¤ÎĄĐˇĽĄ¸ĄçĄó¤Ç¤Ďˇ˘¤˝¤ÎÂĺ¤ď¤ę¤Ë¤ł¤¦¤·¤Ţ¤ą: +

     	BEGIN;
    @@ -855,6 +862,7 @@ PC
     

    Ą«ĄéĄŕ¤ÎĄÇˇĽĄżĄżĄ¤Ą×¤ĎĽˇ¤Îʸ¤ÇĘѤ¨¤é¤ě¤Ţ¤ąˇ§ +

         BEGIN;
    @@ -865,12 +873,13 @@ PC
     

    ¤ł¤ě¤ňąÔ¤Ę¤Ă¤ż¤Č¤­¤Ďˇ˘ËőľĂ¤µ¤ě¤żąÔ¤¬»Č¤Ă¤Ć¤¤¤ëĄÇĄŁĄąĄŻ¶ő´Ö¤ň˛óĽý¤ą¤ë¤ż¤á¤ËVACUUM FULL tab¤ň¤·¤ż¤Ű¤¦¤¬Îɤ¤¤«¤â¤·¤ě¤Ţ¤»¤óˇŁ +

    -

    4.5) ĄíĄ¦ˇ˘ĄĆˇĽĄÖĄëˇ˘ĄÇˇĽĄżĄŮˇĽĄą¤ÎşÇÂ祵Ą¤Ąş¤Ďˇ©

    Ŕ©¸Â¤Ď°Ę˛Ľ¤Î¤Č¤Ş¤ę¤Ç¤ąˇŁ +

     ĄÇˇĽĄżĄŮˇĽĄą¤ÎşÇÂ祵Ą¤Ąş? 	Ŕ©¸Â̵¤· (32 TB ¤ÎĄÇˇĽĄżĄŮˇĽĄą¤â¸şß¤·¤Ţ¤ą)
     ĄĆˇĽĄÖĄë¤ÎşÇÂ祵Ą¤Ąş?           32TB
    @@ -882,22 +891,25 @@ PC
     

    ¤â¤Á¤í¤óˇ˘¤ł¤ě¤é¤ĎĽÂşÝ¤Ď̵Ŕ©¸Â¤Ç¤Ď¤Ę¤Żˇ˘ĄÇĄŁĄąĄŻÍĆÎ̤ȥáĄâĄęˇĽ¤äĄąĄďĄĂĄ×ĄąĄÚˇĽĄą¤ÎÂ礭¤µ¤Ë¤č¤ęŔ©¸Â¤µ¤ě¤Ţ¤ąˇŁŔ­Ç˝¤Ď¤ł¤ě¤é¤ÎĂͤ¬¤ł¤Č¤Î¤Ű¤«Â礭¤Ę»ţ¤ËŔú¤ę¤ňĽő¤±¤Ţ¤ąˇŁ +

    şÇÂçĄĆˇĽĄÖĄëĄµĄ¤Ąş¤Î32TB¤ĎĄŞĄÚĄěˇĽĄĆĄŁĄóĄ°Ą·ĄąĄĆĄŕ¤Ë¤č¤ëµđÂçĄŐĄˇĄ¤Ąë¤ÎĄµĄÝˇĽĄČ¤ĎɬÍפȤ·¤Ţ¤»¤óˇŁµđÂç¤ĘĄĆˇĽĄÖĄë¤ĎĘŁżô¤Î1GB¤ÎĄŐĄˇĄ¤Ąë¤Ëʬ¤±¤ĆĘݸ¤µ¤ě¤Ţ¤ą¤Î¤Çˇ˘ĄŐĄˇĄ¤ĄëĄ·ĄąĄĆĄŕ¤ÎŔ©¸Â¤Ď˝ĹÍפǤϤ˘¤ę¤Ţ¤»¤óˇŁ +

    ĄÇĄŐĄ©ĄëĄČ¤ÎĄÖĄíĄĂĄŻĄµĄ¤Ąş¤ň32k¤Ë¤ą¤ë¤ł¤Č¤Çˇ˘şÇÂçĄĆˇĽĄÖĄëĄµĄ¤Ąş¤ČşÇÂ祫ĄéĄŕżô¤Č¤ňŁ´Çܤˤą¤ë¤ł¤Č¤¬¤Ç¤­¤Ţ¤ąˇŁ +

    -

    4.6) °ěČĚĹŞ¤ĘĄĆĄ­ĄąĄČĄŐĄˇĄ¤Ąë¤«¤éĄÇˇĽĄż¤ňĘݸ¤ą¤ë¤Ë¤Ďˇ˘ĄÇˇĽĄżĄŮˇĽĄą¤ÎĄÇĄŁĄąĄŻÍĆÎ̤ϤɤΤŻ¤é¤¤É¬ÍפǤąˇ©

    - -ÉáÄ̤Υƥ­ĄąĄČĄŐĄˇĄ¤Ąë¤ň PostgreSQL ¤ÎĄÇˇĽĄżĄŮˇĽĄą¤ËĘݸ¤ą¤ë¤Ë¤Ďˇ˘şÇÂç¤ÇĚó5ÇܤΥǥŁĄąĄŻÍĆÎ̤ňɬÍפȤ·¤Ţ¤ąˇŁ

    +

    +ÉáÄ̤Υƥ­ĄąĄČĄŐĄˇĄ¤Ąë¤ň PostgreSQL ¤ÎĄÇˇĽĄżĄŮˇĽĄą¤ËĘݸ¤ą¤ë¤Ë¤Ďˇ˘şÇÂç¤ÇĚó5ÇܤΥǥŁĄąĄŻÍĆÎ̤ňɬÍפȤ·¤Ţ¤ąˇŁ

    ÎăÂę¤Č¤·¤Ćˇ˘łĆąÔ¤ËŔ°żô¤ČĄĆĄ­ĄąĄČµ­˝Ň¤ň»ý¤Ä 100,000ąÔ¤ÎĄŐĄˇĄ¤Ąë¤ňąÍ¤¨ ¤Ć¤ß¤Ţ¤·¤ç¤¦ˇŁĄĆĄ­ĄąĄČ¤Îʸ»úÎó¤ÎĘż¶ŃÄą¤µ¤ň20ĄĐĄ¤ĄČ¤Č˛ľÄꤹ¤ë¤Čˇ˘ĄŐĄéĄĂĄČ ĄŐĄˇĄ¤Ąë¤ÎÂ礭¤µ¤ĎĚó2.8MB ¤Ç¤ąˇŁ¤ł¤ÎĄÇˇĽĄż¤ň´Ţ¤ŕ PostgreSQL ĄÇˇĽĄżĄŮˇĽĄą ĄŐĄˇĄ¤Ąë¤ÎÂ礭¤µ¤ĎĽˇ¤Î¤č¤¦¤ËĚó6.4MB¤Č¸«ŔѤâ¤ë¤ł¤Č¤¬¤Ç¤­¤Ţ¤ąˇ§ +

         32 bytes: łĆĄíĄ¦¤ÎĄŘĄĂĄŔ(łµ»»)
    @@ -921,26 +933,29 @@ PC
     
     

    Ą¤ĄóĄÇĄĂĄŻĄą¤Ďˇ˘¤ł¤ě¤Ű¤É¤ÎĄŞˇĽĄĐĄŘĄĂĄÉ¤ĎÍ׵ᤷ¤Ţ¤»¤ó¤¬ˇ˘Ą¤ĄóĄÇĄĂĄŻĄąÉŐ¤±¤µ¤ě¤ëĄÇˇĽĄż¤ň´Ţ¤ŕ°Ęľĺˇ˘¤˝¤ě¤Ę¤ę¤ËÂ礭¤Ż¤Ę¤ę¤Ţ¤ąˇŁ +

    NULL¤ĎĄÓĄĂĄČĄŢĄĂĄ×¤Č¤·¤ĆĘݸ¤µ¤ě¤Ć¤¤¤Ćˇ˘¤˝¤ě¤é¤¬¤ď¤ş¤«¤ËĄąĄÚˇĽĄą¤ň»Č¤¤¤Ţ¤ąˇŁ +

    - -

    4.7) ÄęµÁ¤µ¤ě¤żĄĆˇĽĄÖĄëˇ˘Ą¤ĄóĄÇĄĂĄŻĄąˇ˘ĄÇˇĽĄżĄŮˇĽĄąˇ˘¤Ş¤č¤Óˇ˘ĄćˇĽĄ¶¤ň¤É¤Î¤č¤¦¤Ë¤·¤Ć¸«¤Ä¤±˝Đ¤·¤Ţ¤ą¤«ˇ©

    psql ¤Ë¤Ď¤¤¤í¤¤¤í¤ĘĄĐĄĂĄŻĄąĄéĄĂĄ·Ąĺˇ¦ĄłĄŢĄóĄÉ¤¬¤˘¤ęˇ˘¤ł¤¦¤·¤żľđĘó¤ňÉ˝Ľ¨¤·¤Ţ¤ąˇŁĄĐĄĂĄŻĄąĄéĄĂĄ·Ąĺˇ¦ĄłĄŢĄóĄÉ¤ÎĽďÎŕ¤ň¸«¤ë¤Ë¤Ď \? ¤ň»Č¤Ă¤Ć˛Ľ¤µ¤¤ˇŁ¤Ţ¤żˇ˘pg_ ¤Ç»Ď¤Ţ¤ëĄ·ĄąĄĆĄŕĄĆˇĽĄÖĄë¤Ë¤âµ­˝Ň¤µ¤ě¤Ć¤¤¤Ţ¤ąˇŁ¤µ¤é¤Ëˇ˘psql -l ¤Ď¤ą¤Ů¤Ć¤ÎĄÇˇĽĄżĄŮˇĽĄą¤ňĄęĄąĄČÉ˝Ľ¨¤·¤Ţ¤ąˇŁ +

    ¤Ţ¤żˇ˘pgsql/src/tutorial/syscat.source ĄŐĄˇĄ¤Ąë¤ňÁö¤é¤»¤Ć¤ß¤Ć˛Ľ¤µ¤¤ˇŁ¤˝¤ě¤Ďˇ˘Âô»ł¤Î SELECT ʸ¤Ë¤č¤ęɬÍפʾđĘó¤ňĄÇˇĽĄżĄŮˇĽĄą¤ÎĄ·ĄąĄĆĄŕˇ¦ĄĆˇĽĄÖĄë¤«¤éĽč¤ę˝Đ¤·¤ĆÎ㼨¤·¤Ć¤Ż¤ě¤Ţ¤ąˇŁ +

    -

    4.8) Ě䤤ąç¤ď¤»¤¬Ă٤¤¤¦¤¨ˇ˘Ą¤ĄóĄÇĄĂĄŻĄą¤ň»Č¤Ă¤Ć¤¤¤ëÍͻҤ¬¤˘¤ę¤Ţ¤»¤óˇŁ¤Ę¤Ľ¤Ç¤ą¤«ˇ©

    +

    Ą¤ĄóĄÇĄĂĄŻĄą¤ĎĽ«Ć°Ĺޤˤą¤Ů¤Ć¤ÎĚ䤤ąç¤ď¤»¤Ç»Č¤ď¤ě¤ë¤ď¤±¤Ç¤Ď¤˘¤ę¤Ţ¤»¤óˇŁĄĆˇĽ ĄÖĄë¤¬şÇľ®ĄµĄ¤Ąş¤č¤ęÂ礭¤Żˇ˘Ě䤤ąç¤ď¤»¤Ç¤˝¤Î¤ď¤ş¤«¤ĘĄŃˇĽĄ»ĄóĄĆˇĽĄ¸¤ÎĄíĄ¦¤ň ÁŞÂň¤ą¤ë»ţ¤Ŕ¤±ˇ˘Ą¤ĄóĄÇĄĂĄŻĄą¤Ď»Č¤ď¤ě¤Ţ¤ąˇŁ¤ł¤ě¤ĎĄ¤ĄóĄÇĄĂĄŻĄąĄąĄ­ĄăĄó¤Ë¤č ¤ęµŻ¤ł¤µ¤ě¤ëĄéĄóĄŔĄŕ¤ĘĄÇĄŁĄąĄŻĄ˘ĄŻĄ»Ąą¤Ďˇ˘ĄĆˇĽĄÖĄë¤ňĄąĄČĄěˇĽĄČ¤ËĆɤŕ˝çĽˇ Áöşş¤č¤ę¤âĂ٤Ż¤Ę¤ë¤ł¤Č¤¬¤˘¤ë¤«¤é¤Ç¤ąˇŁ +

    Ą¤ĄóĄÇĄĂĄŻĄą¤ň»Č¤¦¤«¤ň·čÄꤹ¤ë¤ż¤á¤Ëˇ˘PostgreSQL ¤ĎĄĆˇĽĄÖĄë¤Ë¤Ä¤¤ ¤Ć¤ÎĹý·×ľđĘó¤ň»ý¤ż¤Ę¤±¤ě¤Đ¤Ę¤ę¤Ţ¤»¤óˇŁ¤ł¤ÎĹý·×ľđĘó¤Ďˇ˘VACUUM @@ -953,10 +968,12 @@ ANALYZE

    Ą¤ĄóĄÇĄĂĄŻĄą¤Ďˇ˘ÄĚľď ORDER BY ¤ä·ëąç¤ňąÔ¤Ę ¤¦¤ż¤á¤Ë¤Ď»Č¤ď¤ě¤Ţ¤»¤óˇŁ˝çĽˇĄąĄ­ĄăĄó¤ËÂł¤ŻĚŔĽ¨ĹŞĄ˝ˇĽĄČ¤Ďˇ˘µđÂç¤ĘĄĆˇĽĄÖĄë ¤ÎĄ¤ĄóĄÇĄĂĄŻĄąĄąĄ­ĄăĄó¤č¤ę¤âÉáÄ̤Ϲ⮤ǤąˇŁ

    +

    ¤·¤«¤·ˇ˘ORDER BY¤ČÁȤ߹ç¤ď¤µ¤ě¤żLIMIT ¤Ďˇ˘ĄĆˇĽĄÖĄë¤Îľ®¤µ¤ĘÉôʬ¤ňĘÖ¤ą¤ż¤á¤Ë¤ż¤Ó¤ż¤ÓĄ¤ĄóĄÇĄĂĄŻĄą¤ň»Č¤¦¤Ç¤·¤ç¤¦ˇŁ ĽÂşÝˇ˘MAX() ¤ä MIN() ¤¬Ą¤ĄóĄÇĄĂĄŻĄą¤ň»Č¤ď¤Ę¤¤¤Č¤·¤Ć¤âˇ˘¤ł¤Î¤č¤¦¤ĘĂͤň ORDER BY ¤Č LIMIT ¤ň»Č¤Ă¤ĆĄ¤ĄóĄÇĄĂĄŻĄą¤ň»Č¤Ă¤ĆĽč¤ę˝Đ¤ą¤ł¤Č¤¬˛ÄÇ˝¤Ç¤ą: +

         SELECT col
    @@ -969,23 +986,23 @@ ORDER BY 
     
         

    LIKE ¤˘¤ë¤¤¤Ď ~ ¤Î¤č¤¦¤ĘĄďĄ¤ĄëĄÉĄ«ˇĽĄÉ±é»» »Ň¤ĎĆĂĘ̤ʴĶ­¤Ç¤·¤«»Č¤¨¤Ţ¤»¤óˇ§ +

      -
    • ¸ˇş÷ʸ»úÎó¤¬Ę¸»úÎó¤ÎşÇ˝é¤Ë¤­¤­¤Ţ¤ąˇŁ¤ż¤Č¤¨¤Đˇ§
    • +
    • ¸ˇş÷ʸ»úÎó¤¬Ę¸»úÎó¤ÎşÇ˝é¤Ë¤­¤­¤Ţ¤ąˇŁ¤ż¤Č¤¨¤Đˇ§
      • LIKE ĄŃĄżˇĽĄó¤¬%¤Ç»Ď¤Ţ¤é¤Ę¤¤
      • ~ (Ŕµµ¬É˝¸˝) ĄŃĄżˇĽĄó¤Ď^¤Ç»Ď¤Ţ¤é¤Ę¤±¤ě¤Đ¤Ę¤é¤Ę¤¤
      • -
      +
  • ¸ˇş÷ʸ»úÎó¤ňʸ»úĄŻĄéĄą¤«¤é»Ď¤á¤ë¤ł¤Č¤Ď¤Ç¤­¤Ţ¤»¤óˇŁ¤ż¤Č¤¨¤Đˇ˘[a-e]ˇŁ
  • ILIKE ¤ä ~* ¤Î¤č¤¦¤ĘÂçʸ»ú¤Čľ®Ę¸»ú¤ň¶čĘ̤· ¤Ę¤¤¸ˇş÷¤Ď»Č¤¨¤Ţ¤»¤óˇŁ¤˝¤Î¤«¤ď¤ęˇ˘¤ł¤ÎFAQ¤Î4.12Ŕá¤ÇŔâĚŔ¤ą¤ë´Řżô¤ÎĄ¤ĄóĄÇĄĂĄŻĄą¤¬»Č¤¨¤Ţ¤ąˇŁ
  • initdb ¤Ë¤Ş¤¤¤Ć¤Ďˇ˘ĄÇĄŐĄ©ĄëĄČ¤ÇCĄíĄ±ˇĽĄë¤¬»Č¤ď¤ě¤Ę ¤Ż¤Ć¤Ď¤Ę¤ę¤Ţ¤»¤óˇŁ¤˝¤ÎÍýÍł¤Ďˇ˘CĄíĄ±ˇĽĄë°Ęł°¤Ç¤ĎĽˇ¤ËÂ礭¤Ęʸ»ú¤ňĂΤ뤳¤Č -¤¬¤Ç¤­¤Ę¤¤¤«¤é¤Ç¤ąˇŁ¤ł¤Î¤č¤¦¤Ęľěąçˇ˘
    LIKE
    Ą¤ĄóĄÇĄŻĄ·ĄóĄ°¤Ë¤Ŕ¤± -ĆŻ¤Ż¤č¤¦¤Ęˇ˘ĆĂĘ̤Ę
    text_pattern_ops
    Ą¤ĄóĄÇĄĂĄŻĄą¤ňşîŔ® +¤¬¤Ç¤­¤Ę¤¤¤«¤é¤Ç¤ąˇŁ¤ł¤Î¤č¤¦¤Ęľěąçˇ˘LIKEĄ¤ĄóĄÇĄŻĄ·ĄóĄ°¤Ë¤Ŕ¤± +ĆŻ¤Ż¤č¤¦¤Ęˇ˘ĆĂĘ̤Ętext_pattern_opsĄ¤ĄóĄÇĄĂĄŻĄą¤ňşîŔ® ¤ą¤ë¤ł¤Č¤â¤Ç¤­¤Ţ¤ąˇŁ
  • -

    8.0¤č¤ęÁ°¤ÎĄęĄęˇĽĄą¤Ç¤Ďˇ˘Ą¤ĄóĄÇĄĂĄŻĄą¤Ďˇ˘ĄÇˇĽĄż·ż¤¬¤Á¤ç¤¦¤ÉĄ¤ĄóĄÇĄĂĄŻĄą¤ÎĄ«ĄéĄŕ¤Î·ż¤Č°ěĂפ·¤Ę¤±¤ě¤Đˇ˘»Č¤¨¤Ę¤¤¤ł¤Č¤¬¤·¤Đ¤·¤Đ¤˘¤ę¤Ţ¤·¤żˇŁ¤Ş¤˝¤é¤Żˇ˘int2, int8, ¤Ş¤č¤Ó numeric Ĺů¤ÎĄ«ĄéĄŕ¤ÎĄ¤ĄóĄÇĄĂĄŻĄą¤¬¤˝¤¦¤Ç¤ąˇŁ

    @@ -994,84 +1011,84 @@ ORDER BY ] -

    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" ¤Ç¤âĽč¤ęľĺ¤˛¤é¤ě¤Ć¤¤¤Ţ¤ąˇŁ +

    -

    -

    +
         [ĚőĂíˇ§
     	  ĆŕÎÉŔčĂĽÂç¤ÎŔĐŔî˛ÂĽŁ¤µ¤ó¤č¤ęR-Tree´Ř·¸¤Îʸ¸Ą¤ňľŇ˛đ¤·¤ĆÄş¤­¤Ţ¤·¤żˇŁ
     	ĆüËܸě Postgres ML ¤ÎĄ˘ˇĽĄ«Ą¤ĄÖ¤«¤é "Subject: [postgres95 801] spatial data structures" 
     		http://www.sra.co.jp/people/t-ishii/PostgreSQL/mhonarc/pgsql-jp/1996Oct/msg00007.html
     	¤ň¤´Í÷˛Ľ¤µ¤¤ˇŁ
         ]
    -
    +

    ÁČąţ¤ß¤Î 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 ¤Č¤¤¤¤¤Ţ¤ąˇŁ - +

    Âçʸ»ú¤Čľ®Ę¸»ú¤ň¶čĘ̤·¤Ę¤¤ĹůĂÍČćłÓ¤ĎĽˇ¤Î¤č¤¦¤ËÉ˝¸˝¤Ç¤­¤ëˇ§ +

         SELECT *
         FROM tab
         WHERE lower(col) = 'abc';
     
    - +

    ɸ˝ŕĄ¤ĄóĄÇĄĂĄŻĄą¤Ç¤Ď»Č¤ď¤ě¤şˇ˘¤·¤«¤·¤Ę¤¬¤éˇ˘¤â¤·´ŘżôĄ¤ĄóĄÇĄĂĄŻĄą¤ň şî¤Ă¤ż¤Ę¤é¤˝¤ě¤¬»Č¤ď¤ě¤ë¤Ç¤·¤ç¤¦ˇŁ - +

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

    4.13) Ě䤤ąç¤ď¤»¤ÎĂć¤Çˇ˘ĄŐĄŁˇĽĄëĄÉ¤¬ NULL ¤Ç¤˘¤ë¤ł¤Č¤ň¸ˇ˝Đ¤ą¤ë¤Ë¤Ď¤É¤¦¤·¤Ţ¤ą¤«ˇ©

    Ą«ĄéĄŕ¤ň IS NULL ¤Č IS NOT NULL ¤Č¤Ç»î¤·¤Ć¤ß¤Ţ¤ąˇŁ

    -

    4.14) Í͡ą¤Ęʸ»ú·ż¤Î¤˝¤ě¤ľ¤ě¤Î°ă¤¤¤Ď˛ż¤Ç¤ą¤«ˇ©

    @@ -1086,17 +1103,18 @@ BYTEA bytea

    ĆâÉôĚľ¤Ë¤ŞĚܤˤ«¤«¤ë¤Î¤Ďˇ˘Ą·ĄąĄĆĄŕˇ¦Ą«ĄżĄíĄ°¤ňÄ´¤Ů¤ë¤Č¤­¤äˇ˘Ą¨ĄéˇĽĄáĄĂĄ»ˇĽĄ¸¤ňĽő¤±Ľč¤ë¤Č¤­¤Ç¤ąˇŁ - +

    ľĺµ­¤Î·ż¤Î¤¦¤ÁşÇ˝é¤ÎŁ´¤Ä¤Î·ż¤Ď "varlena" ·ż¤Ç¤ą(¤ą¤Ę¤ď¤Áˇ˘ĄÇĄŁĄąĄŻ¤ÎşÇ˝é¤ÎŁ´ĄĐĄ¤ĄČ¤¬ĄÇˇĽĄżÄą¤Çˇ˘¤˝¤ě¤Î¸ĺ¤ËĽÂşÝ¤ÎĄÇˇĽĄż¤¬Âł¤­¤Ţ¤ą)ˇŁ¤ł¤Î¤č¤¦¤ËĽÂşÝ¤Î¶ő´Ö¤ĎŔë¸Ŕ¤µ¤ě¤żÂ礭¤µ¤č¤ę¤âľŻ¤·Â礭¤Ż¤Ę¤ę¤Ţ¤ąˇŁ¤·¤«¤·ˇ˘¤ł¤ě¤é¤ÎĄÇˇĽĄż·ż¤ĎTOAST¤Ë¤č¤ę°µ˝Ě¤µ¤ě¤ż¤ęĘŁżôĄíĄ¦¤ËĹϤäĆĘݸ¤µ¤ě¤ż¤ę¤·¤Ćˇ˘ĄÇĄŁĄąĄŻľĺ¤Î¶ő´Ö¤Ď»×¤Ă¤ż¤č¤ęľ®¤µ¤Ż¤Ę¤ę¤Ţ¤ąˇŁ +

    VARCHAR(n) ¤Ď˛ÄĘŃÄą¤Îʸ»úÎó¤ňĘݸ¤ą¤ë¤Î¤ËşÇŬ¤Ç¤ą¤¬ˇ˘Ęݸ¤Ç¤­¤ëʸ»úÎó¤ÎÄą¤µ¤ËŔ©¸Â¤¬¤˘¤ę¤Ţ¤ąˇŁTEXT ¤ĎÄą¤µ¤ËŔ©¸Â¤Î̵¤¤Ę¸»úÎó¤ÎĘݸ¤Î¤ż¤á¤Î¤â¤Î¤Çˇ˘şÇÂç¤Ç 1Ą®Ą¬ĄĐĄ¤ĄČ¤Ç¤ąˇŁ CHAR(n)¤Ďˇ˘VARCHAR(n)¤¬Íż¤¨¤é¤ě¤żĘ¸»ú¤Ŕ¤±¤ňĘݸ¤ą¤ë¤Î¤ËÂФ·ˇ˘ĄÖĄéĄóĄŻ¤ňµÍ¤áąţ¤ó¤Ç¤¤¤Ä¤âƱ¤¸Äą¤µ¤Çʸ»úÎó¤ňĘݸ¤ą¤ë¤Î¤ËşÇŬ¤Ç¤ąˇŁBYTEA¤Ďˇ˘ÉôʬŪ¤ËNULL ¤ÎĄĐĄ¤ĄČ¤ň´Ţ¤ŕĄĐĄ¤ĄĘĄęĄÇˇĽĄż¤ňĘݸ¤ą¤ë¤ż¤á¤Î¤â¤Î¤Ç¤ąˇŁ¤ł¤ě¤é¤ÎĄżĄ¤Ą×¤ĎƱ¤¸¤Ż¤é¤¤¤ÎŔ­Ç˝ĆĂŔ­¤ň¤â¤Á¤Ţ¤ąˇŁ

    -

    4.15.1) ÄĚČÖ(serial)ˇżĽ«Ć°ÁýʬĄŐĄŁˇĽĄëĄÉ¤Ď¤É¤Î¤č¤¦¤Ë¤Ä¤Ż¤ę¤Ţ¤ą¤«ˇ©

    PostgreSQL ¤Ď SERIAL ĄÇˇĽĄż·ż¤ňĄµĄÝˇĽĄČ¤·¤Ţ¤ąˇŁĄ«ĄéĄŕľĺ¤ËĄ·ˇĽĄ±ĄóĄą¤ňĽ«Ć°şîŔ®¤·¤Ţ¤ąˇŁ¤ż¤Č¤¨¤Đˇ˘ +

     	CREATE TABLE person ( 
    @@ -1104,7 +1122,9 @@ BYTEA           bytea           
     		name TEXT 
     	);
     
    +

    ¤ĎĽ«Ć°ĹŞ¤ËĽˇ¤Î¤č¤¦¤ËËÝĚő¤µ¤ě¤Ţ¤ą: +

     	CREATE SEQUENCE person_id_seq;
     	CREATE TABLE person ( 
    @@ -1117,38 +1137,43 @@ BYTEA           bytea           
     	¤Ďˇ˘ 7.3 ¤«¤é¤ĎĽ«Ć°ĹŞ¤Ë¤ĎąÔ¤Ę¤ď¤ě¤Ę¤Ż¤Ę¤ę¤Ţ¤·¤żˇŁ
         ]
     
    - +

    ÄĚČ֤ˤĤ¤¤Ć¤Î¤â¤Ă¤ČľÜ¤·¤¤ľđĘó¤Ďˇ˘ĄŞĄóĄéĄ¤ĄóĄŢĄËĄĺĄ˘Ąë¤Ç 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ĄŞĄÖĄ¸Ą§ĄŻĄČ¤ÎĚľÁ°¤Ďˇ˘<table>_<serialcolumn>_seq ¤Î¤č¤¦¤Ë¤Ę¤ęˇ˘¤ł¤Î¤¦¤Áˇ˘table ¤Č serialcolumn ¤Ď¤˝¤ě¤ľ¤ěĄĆˇĽĄÖĄë¤ÎĚľÁ°¤ČSERIALĄ«ĄéĄŕ¤ÎĚľÁ°¤Ç¤ąˇŁ

    - +¤˝¤¦¤·¤Ćˇ˘new_id ¤ËĘݸ¤·¤żż·¤·¤¤ĂͤňÂľ¤ÎĚ䤤ąç¤ď¤»¤Ë(¤ż¤Č¤¨¤Đˇ˘person ĄĆˇĽĄÖĄë¤ËÂФą¤ëł°ÉôĄ­ˇĽ(foreign key)¤Î¤č¤¦¤Ë)»Č¤¦¤Č¤č¤¤¤Ç¤·¤ç¤¦ˇŁĽ«Ć°ĹŞ¤Ëşî¤é¤ě¤żSEQUENCEĄŞĄÖĄ¸Ą§ĄŻĄČ¤ÎĚľÁ°¤Ďˇ˘<table>_<serialcolumn>_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Ą«ĄéĄŕ¤Ë¶ő¤­¤¬¤˘¤ë¤Î¤Ď¤Ę¤Ľ¤Ç¤ą¤«ˇ©

    @@ -1156,17 +1181,18 @@ BYTEA bytea

    Ʊ»ţŔ­¤ň˛ţÁ±¤ą¤ë¤ż¤á¤Ëˇ˘ĽÂąÔĂć¤ÎĄČĄéĄóĄ¶ĄŻĄ·ĄçĄó¤Ëˇ˘É¬ÍפǥȥéĄóĄ¶ĄŻĄ·ĄçĄó¤¬˝ŞÎ»¤ą¤ë¤Ţ¤ÇĄíĄĂĄŻ¤µ¤ě¤Ę¤¤Ą·ˇĽĄ±ĄóĄąĂͤňÍż¤¨¤Ć¤¤¤Ţ¤ąˇŁ¤ł¤Î¤ż¤áĄČĄéĄóĄ¶ĄŻĄ·ĄçĄó¤¬ĂćĂǤµ¤ě¤ë¤ČČÖąćłä¤ęĹö¤Ć¤ËĄ®ĄăĄĂĄ×¤ňŔ¸¤¸¤Ţ¤ąˇŁ

    -

    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);
    @@ -1177,36 +1203,38 @@ BYTEA           bytea           
     

    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) +
    • ĄĆˇĽĄÖĄë(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 ¤ň»ĎĆ°¤ą¤ëÁ°¤Ë¤ł¤ě¤ň»î¤·¤Ć¤ß¤Ć˛Ľ¤µ¤¤ˇ§ +

     	ulimit -d 262144
    @@ -1215,34 +1243,34 @@ href="http://hea-www.harvard.edu/MST/simul/software/docs/pkgs/pgsql/glossary/glo
     
     

    Ą·Ą§Ąë¤Ë¤č¤Ă¤Ćˇ˘¤É¤Á¤é¤«¤Ň¤Č¤Ä¤¬Ŕ®¸ů¤ą¤ë¤Ç¤·¤ç¤¦¤¬ˇ˘¤ł¤ě¤ĎĄ×ĄíĄ»Ąą¤ÎĄÇˇĽĄżĄ»Ą°ĄáĄóĄČŔ©¸Â¤ň¤č¤ęąâ¤ŻŔßÄꤷˇ˘¤ż¤Ö¤óĚ䤤ąç¤ď¤»¤¬´°·ë¤ą¤ë¤č¤¦¤Ë¤Ę¤ë¤Ç¤·¤ç¤¦ˇŁ¤ł¤ÎĄłĄŢĄóĄÉ¤Ď¸˝ąÔ¤ÎĄ×ĄíĄ»Ąą¤Čˇ˘¤ł¤ÎĄłĄŢĄóĄÉ¤ňÁö¤é¤»¤ż¸ĺ¤Ëşî¤é¤ě¤ëÁ´¤Ć¤ÎĄµĄÖĄ×ĄíĄ»Ąą¤Ë¤Ä¤¤¤ĆŬÍѤµ¤ě¤Ţ¤ąˇŁĄĐĄĂĄŻĄ¨ĄóĄÉ¤¬¤Č¤Ć¤âÂż¤Ż¤ÎĄÇˇĽĄż¤ňĘÖ¤ą¤ż¤á¤Ë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¤ň»Č¤¤¤Ţ¤ą: +

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

    -

    4.22) ¤Ę¤Ľˇ˘IN¤ň»Č¤¦ÉűĚ䤤ąç¤ď¤»¤¬¤Č¤Ć¤âĂ٤¤¤Î¤Ç¤ą¤«ˇ©

    @@ -1256,14 +1284,18 @@ href="http://hea-www.harvard.edu/MST/simul/software/docs/pkgs/pgsql/glossary/glo 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¤ň»Č¤¦¤ł¤Č¤ňąĄ¤ß¤Ţ¤ąˇŁ

    @@ -1272,22 +1304,26 @@ href="http://hea-www.harvard.edu/MST/simul/software/docs/pkgs/pgsql/glossary/glo

    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 ¤ň·ëąç¤ą¤ë¤Č¤­¤Ďˇ˘Ľˇ¤ÎĚ䤤ąç¤ď¤»¤ÇĆó¤Ä¤ÎĄĆˇĽĄÖĄë¤ňł°Éô·ëąç¤·¤Ţ¤ąˇŁ - +

     	SELECT tab1.col1, tab2.col2
     	FROM tab1, tab2
    @@ -1299,23 +1335,20 @@ PostgreSQL 
     	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 ¤ň°ě»ţĄĆˇĽĄÖĄëĄ˘ĄŻĄ»Ąą¤Î¤ż¤á¤Ë»Č¤¦¤ł¤Č¤Ç¤ąˇŁ¤ł¤ě¤Çˇ˘Ëč˛óĚ䤤ąç¤ď¤»¤ňĄŃˇĽĄą¤·Äľ¤ą¤ł¤Č¤Ë¤Ę¤ë¤Ç¤·¤ç¤¦ˇŁ

    @@ -1336,7 +1369,6 @@ PL/PgSQL -

     [ĚőĂí
        ĄěĄ×ĄęĄ±ˇĽĄ·ĄçĄó´ŘϢ¤ÎąŕĚܤ¬¤Ę¤Ż¤Ę¤ę¤Ţ¤·¤ż¤¬ˇ˘ĚőĂí¤Î¤ß»Ä¤·¤Ć¤˘¤ę¤Ţ¤ąˇŁ
    @@ -1355,41 +1387,37 @@ PL/PgSQL 
     	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) Ą˝ˇĽĄąˇ¦ĄŐĄˇĄ¤Ąë¤ňĘŃąą¤·¤Ţ¤·¤żˇŁşĆĄłĄóĄŃĄ¤Ąë¤·¤Ć¤âĘѲ˝¤¬¸«¤é¤ě¤Ę¤¤¤Î¤Ď¤Ę¤Ľ¤Ç¤ą¤«ˇ© +

    5.4) Ą˝ˇĽĄąˇ¦ĄŐĄˇĄ¤Ąë¤ňĘŃąą¤·¤Ţ¤·¤żˇŁşĆĄłĄóĄŃĄ¤Ąë¤·¤Ć¤âĘѲ˝¤¬¸«¤é¤ě¤Ę¤¤¤Î¤Ď¤Ę¤Ľ¤Ç¤ą¤«ˇ©

    ¤¤¤Ż¤Ä¤«¤Î Makefile ¤¬Ą¤ĄóĄŻĄëˇĽĄÉˇ¦ĄŐĄˇĄ¤Ąë¤ËÂФ·¤ĆŬŔڤʰ͸´Ř·¸¤ň»ý¤Ă¤Ć¤¤¤Ţ¤»¤óˇŁmake clean ¤ň¤·¤Ć¤«¤é¤â¤¦°ěĹŮ make ¤ňąÔ¤Ę¤ď¤Ę¤Ż¤Ć¤Ď¤Ę¤ę¤Ţ¤»¤óˇŁ¤â¤·ˇ˘GCC ¤ň¤Ş»Č¤¤¤Ç¤˘¤ě¤Đ configure ¤Î --enable-depend ĄŞĄ×Ą·ĄçĄó¤ň»Č¤Ă¤Ćˇ˘ĄłĄóĄŃĄ¤Ąé¤Ë°Í¸´Ř·¸¤ňĽ«Ć°ĹޤËÄ´¤Ů¤µ¤»¤ë¤ł¤Č¤â¤Ç¤­¤Ţ¤ąˇŁ +

    -


    -
    +
     [ĚőĂíˇ§
       ĆüËܸěČǤÎŔ˝şî¤Ë¤Ä¤¤¤Ć¤Ď°Ę˛Ľ¤ÎÄ̤ę¤Ç¤ąˇŁ
     
    @@ -1426,7 +1454,6 @@ PL/PgSQL 
     
       ¤Ę¤Şˇ˘¤ł¤ÎĎÂĚő¤Ë´Ř¤ą¤ë¤´°Ő¸«¤Ď(juk at PostgreSQL.jp)¤Ţ¤Ç¤Ş´ó¤»˛Ľ¤µ¤¤ˇŁ
     ]
    -
    -

    +
    diff --git a/doc/src/FAQ/FAQ_polish.html b/doc/src/FAQ/FAQ_polish.html index a92b90d313..0966aee27a 100644 --- a/doc/src/FAQ/FAQ_polish.html +++ b/doc/src/FAQ/FAQ_polish.html @@ -237,7 +237,7 @@

    Tekst powyżej, jest klasyczn± licencj± BSD. Nie posiada ona żadnych restrykcji co do używania kodu Ľródłowego. - Podoba nam się i nie zamierzamy jej zmieniać. + Podoba nam się i nie zamierzamy jej zmieniać.

    1.3) Na jakich systemach Unixowych działa PostreSQL?

    @@ -266,7 +266,7 @@

    Serwer może być uruchamiany na Windows NT i Win2k używaj±c bibliotek Cygwin, Cygnus Unix/NT. W pliku pgsql/doc/FAQ_MSWIN znajduj±cym się w Ľródłach lub pod adresem: http://www.PostgreSQL.org/docs/faqs/text/FAQ_MSWIN na naszych stronach.

    + "http://www.postgresql.org/docs/faqs/text/FAQ_MSWIN">http://www.PostgreSQL.org/docs/faqs/text/FAQ_MSWIN na naszych stronach.

    Obecnie prowadzone s± prace nad stworzeniem wersji dla MS Win NT/200/XP. Je¶li chcesz się dowiedzieć o obecnym statusie tych prac zobacz Główny serwer ftp z dostępem "anonymous" dla PostgreSQL znajduje się ftp://ftp.PostgreSQL.org/pub. - je¶li szukasz mirrorów sprawdĽ nasz± główn± stronę www.

    + je¶li szukasz mirrorów sprawdĽ nasz± główn± stronę www.

    1.6) Gdzie można szukać wsparcia technicznego?

    @@ -334,7 +334,7 @@ można znaleĽć na stronach WWW PostgreSQL pod adresem:

    - http://www.PostgreSQL.org +

    http://www.PostgreSQL.org

    W sieci EFNet istnieje kanał IRC #PostgreSQL. Ja, do @@ -599,7 +599,7 @@

    Więcej informacji na ten temat znajduje się pod adresem See - http://techdocs.postgresql.org/guides/GUITools. + http://techdocs.postgresql.org/guides/GUITools.

    2.4) Za pomoc± jakich języków programowania można się komunikować z PostgreSQL?

    @@ -882,14 +882,13 @@ pierwszych rzędów, być może będzie konieczno¶ć wykonania zapytania do momentu aż zostan± znalezione poż±dane wyniki.

    - Aby otrzymać losowy rz±d, użyj: + Aby otrzymać losowy rz±d, użyj:

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

    4.3) Jak mogę uzyskać listę wszystkich tabel czy innych rzeczy pod psql?

    @@ -926,7 +925,6 @@ ALTER TABLE tab DROP COLUMN old_col; COMMIT;
    -

    4.5) Jaki jest maksymalny rozmiar dla rzędu, tabeli i bazy danych?

    @@ -1034,7 +1032,7 @@ przy wykonywaniu zł±czeń (join). Sekwencyjne przeszukiwanie po którym następuje sortowanie jest zazwyczaj szybsze nię wyszukiwanie za pomoc± indeksu na dużej tabeli.

    - Jakkolwiek LIMIT w poł±czeniu z ORDER BY +

    Jakkolwiek LIMIT w poł±czeniu z ORDER BY często będzie wykorzystywał indeksy ponieważ jedynie mała czę¶ć z tabeli jest zwracana. W rzeczywisto¶ci, chociaż MAX() i MIN() nie używaj± indeksów, możliwe jest aby zwrócić te warto¶ci używaj±c @@ -1049,7 +1047,7 @@

    Je¶li uważasz, że optimizer myli się wybieraj±c sequential scan, użyj SET enable_seqscan TO 'off' i uruchom testy aby sprawdzić czy wtym - wypadku zapytanie będzie szybciej wykonywane. + wypadku zapytanie będzie szybciej wykonywane.

    Kiedy używa się operatorów dopasuj±cych takich jak LIKE lub ~, indeksy będ± używane jedynie w @@ -1057,16 +1055,16 @@

    • Pocz±tek wyszukiwania jest oparty na pocz±tku łańcucha tekstu.
        -
      • wzorce LIKE nie mog± się zaczynać % +
      • wzorce LIKE nie mog± się zaczynać %
      • dopasowania operatorem ~ (dopasowania regularne) - musz± się zaczynać znakiem specjalnym ^.

        -
      + musz± się zaczynać znakiem specjalnym ^.
    • +
  • Pocz±tek wyszukiwania nie może się zaczynać od klas znaków, np. - [a-e]. + [a-e].
  • Case-insensitive searches such as ILIKE and ~* do not utilise indexes. Instead, use functional indexes, which are described in - section 4.12. -
  • Standardowe locale C musi być uzyte przy wykonywaniu initdb + section 4.12.
  • +
  • Standardowe locale C musi być uzyte przy wykonywaniu initdb
  • 4.9) Jak mogę sprawdzić w jakis sposób "query optimizer" wykonuje moje zapytanie?

    @@ -1165,7 +1163,7 @@ BYTEA bytea zmiennej d przechowywane out-of-line jako TOAST, więc faktyczne zużycie miejsca na dysku może być mniejsze niż oczekiwane.

    - VARCHAR(n) jest +

    VARCHAR(n) jest najodpowiedniejszy do przechowywania łańcuchów o różnej długo¶ci ale okre¶la on maksymaln± jego długo¶ć. @@ -1344,7 +1342,7 @@ BYTEA bytea zmiennej d

    Listę terminów zwi±zanych z bazami danych możesz znaleĽć pod tym adresem:http://hea-www.harvard.edu/MST/simul/software/docs/pkgs/pgsql/glossary/glossary.html. + href="http://hea-www.harvard.edu/MST/simul/software/docs/pkgs/pgsql/glossary/glossary.html">http://hea-www.harvard.edu/MST/simul/software/docs/pkgs/pgsql/glossary/glossary.html.

    4.18) Sk±d bierze się ten bł±d "ERROR: Memory exhausted in AllocSetAlloc()"?

    @@ -1488,7 +1486,7 @@ BYTEA bytea zmiennej d kolumn?

    Możesz w łatwy sposób zwracać wiele rzędów lub kolumn używaj±c - funkcji z: http://techdocs.postgresql.org/guides/SetReturningFunctions. + funkcji z: http://techdocs.postgresql.org/guides/SetReturningFunctions.

    4.26) Dlaczego nie mogę w sposób pewny tworzyć/usuwać tabel tymczasowych w funkcjach PL/PgSQL?

    @@ -1503,38 +1501,36 @@ BYTEA bytea zmiennej d funkcji.

    -

    4.27) Jakie s± możliwo¶ci replikacji w PostgreSQL?

    +

    4.27) Jakie s± możliwo¶ci replikacji w PostgreSQL?

    Jest kilka opcji aby stosować replikację typu master/slave. Ten typ pozwala jedynie masterowi na dokonywanie zmian w bazie danych, a slave może jedynie te zmiany odczytywać. Na stronie http://gborg.PostgreSQL.org/genpage?replication_research + href="http://gborg.PostgreSQL.org/genpage?replication_research">http://gborg.PostgreSQL.org/genpage?replication_research znajduje się ich lista. Replikacja typu multi-master jest w trakcie prac, opis projektu znajduje się pod adresem: + href="http://gborg.PostgreSQL.org/project/pgreplication/projdisplay.php"> http://gborg.PostgreSQL.org/project/pgreplication/projdisplay.php.

    -

    4.28) Jakie możliwo¶ci szyfrowania oferuje +

    4.28) Jakie możliwo¶ci szyfrowania oferuje PostgreSQL?

    -

    • contrib/pgcrypto zawiera wiele funkcji za pomoc±, których możemy używać - kryptografii w zapytaniach SQL. + kryptografii w zapytaniach SQL.
    • Aby szyfrować transmisję od klienta do serwera, ten musi mieć ustawion± opcję ssl na true w pliku postgresql.conf, odpowiedni wpis host lub hostssl musi występować w pliku pg_hba.conf, oraz sslmode nie może być wył±czone w kliencie. (Warto zwrócić uwagę, że możliwe jest także używanie transportów szyfruj±ców przez strony trzecie, takie jak stunnel lub ssh, poza natywnym wsparciem dla SSL - przez PostgreSQL). + przez PostgreSQL).
    • Hasła użytkowników bazy danych s± automatycznie szyfrowane od wersji 7.3. W poprzednich wersjach, należy t± funkcjonalno¶ć poprzez - wł±czenie opcji PASSWORD_ENCRYPTION w postgresql.conf. -
    • Serwer może działać używaj±c szyfrowanego systemu plików. + wł±czenie opcji PASSWORD_ENCRYPTION w postgresql.conf.
    • +
    • Serwer może działać używaj±c szyfrowanego systemu plików.
    -

    Rozwijanie PostgreSQL

    diff --git a/doc/src/FAQ/FAQ_russian.html b/doc/src/FAQ/FAQ_russian.html index debcc88266..bd515c7c79 100644 --- a/doc/src/FAQ/FAQ_russian.html +++ b/doc/src/FAQ/FAQ_russian.html @@ -236,16 +236,16 @@ http://techdocs.postgresql.org/companies.php.

    -

    1.6) ëÁË ÍÎĹ ÓĎĎÂÝÉÔŘ Ď ĎŰÉÂËĹ?

    +

    1.6) ëÁË ÍÎĹ ÓĎĎÂÝÉÔŘ Ď ĎŰÉÂËĹ?

    đĎÓĹÔÉÔĹ ÓÔŇÁÎÉŢËŐ ÓĎ ÓĐĹĂÉÁĚŘÎĎĘ ĆĎŇÍĎĘ ĎÔŢŁÔÁ Ď ĎŰÉÂËĹ × PostgreSQL ĐĎ ÁÄŇĹÓŐ: - + http://www.postgresql.org/support/submitbug.

    ôÁËÖĹ ĐŇĎ×ĹŇŘÔĹ ÎÁĚÉŢÉĹ ÂĎĚĹĹ Ó×ĹÖĹĘ ×ĹŇÓÉÉ PostgreSQL ÎÁ ÎÁŰĹÍ FTP ÓÁĘÔĹ - ftp://ftp.PostgreSQL.org/pub. + ftp://ftp.PostgreSQL.org/pub.

    1.7) ëÁËÁŃ ĐĎÓĚĹÄÎŃŃ ×ĹŇÓÉŃ?

    @@ -604,19 +604,18 @@ ÄĚŃ ÎĹÓËĎĚŘËÉČ ĐĹŇ×ŮČ ÓÔŇĎŢĹË ÚÁĐŇĎÓÁ? đŇĎÉÚ×ĎĚŘÎĎĘ ÓÔŇĎËÉ?

    äĚŃ ĐĎĚŐŢĹÎÉŃ ÔĎĚŘËĎ ÎĹÓËĎĚŘËÉČ ÓÔŇĎË, ĹÓĚÉ ×Ů ÚÎÁĹÔĹ ÉČ ËĎĚÉŢĹÓÔ×Ď - ÎÁ ÍĎÍĹÎÔ ×ŮĐĎĚÎĹÎÉŃ SELECT ÉÓĐĎĚŘÚŐĘÔĹ LIMIT.

    + ÎÁ ÍĎÍĹÎÔ ×ŮĐĎĚÎĹÎÉŃ SELECT ÉÓĐĎĚŘÚŐĘÔĹ LIMIT. ĺÓĚÉ ĹÓÔŘ ËÁËĎĘ-ĚÉÂĎ ÉÎÄĹËÓ, ËĎÔĎŇŮĘ ÓĎ×ĐÁÄÁĹÔ Ó ORDER BY, ÔĎ ×ĎÚÍĎÖÎĎ, ŢÔĎ ×ĹÓŘ ÚÁĐŇĎÓ ×ŮĐĎĚÎĹÎ É ÎĹ ÂŐÄĹÔ. ĺÓĚÉ ×Ů ÎĹ ÚÎÁĹÔĹ ËĎĚÉŢĹÓÔ×Á ÎĹĎÂČĎÄÉÍŮČ ÓÔŇĎË ÎÁ ÍĎÍĹÎÔ ×ŮĐĎĚÎĹÎÉŃ SELECT, ÉÓĐĎĚŘÚŐĘÔĹ ËŐŇÓĎŇ É FETCH.

    -

    To SELECT a random row, use: -

        SELECT col
    +    

    To SELECT a random row, use:

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

    4.2) ëÁË ÍÎĹ ÎÁĘÔÉ ËÁËÉĹ ÔÁÂĚÉĂŮ, ÉÎÄĹËÓŮ, ÂÁÚŮ ÄÁÎÎŮČ É ĐĎĚŘÚĎ×ÁÔĹĚÉ ÓŐÝĹÓÔ×ŐŔÔ? ëÁË ÍÎĹ Ő×ÉÄĹÔŘ ÚÁĐŇĎÓŮ, @@ -646,7 +645,7 @@

    4.3) ëÁË ÉÚÍĹÎÉÔŘ ÔÉĐ ÄÁÎÎŮČ ËĎĚĎÎËÉ?

    ÷ 8.0 É ÂĎĚĹĹ ĐĎÚÄÎÉČ ×ĹŇÓÉŃČ, ÉÚÍĹÎĹÎÉĹ ÔÉĐÁ ËĎĚĎÎËÉ ×ŮĐĎĚÎŃĹÔÓŃ - ĎŢĹÎŘ ĚĹÇËĎ ŢĹŇĹÚ ALTER TABLE ALTER COLUMN TYPE. + ĎŢĹÎŘ ĚĹÇËĎ ŢĹŇĹÚ ALTER TABLE ALTER COLUMN TYPE.

    ÷ ÂĎĚĹĹ ŇÁÎÎÉČ ×ĹŇÓÉŃČ ÓÄĹĚÁĘÔĹ ÔÁË:

    @@ -662,7 +661,7 @@
     
         

    óŐÝĹÓÔ×ŐŔÔ ÓĚĹÄŐŔÝÉĹ ĎÇŇÁÎÉŢĹÎÉŃ:

    -
    TypeInternal NameNotes
    VARCHAR(n)varcharsize specifies maximum length, no padding
    +
    @@ -775,7 +774,7 @@ É × ÜÔĎÍ ÓĚŐŢÁĹ ÉÎÄĹËÓ ÂŐÄĹÔ ÉÓĐĎĚŘÚĎ×ÁÔŘÓŃ, ĐĎÓËĎĚŘËŐ ĐŇÉ ×ŮĐĎĚÎĹÎÉÉ ÂŐÄĹÔ ×ĎÚ×ŇÁÝÁÔŘÓŃ ÎĹÂĎĚŘŰÁŃ ŢÁÓÔŘ ÔÁÂĚÉĂŮ. ćÁËÔÉŢĹÓËÉ MAX() É MIN() ÎĹ ÉÓĐĎĚŘÚŐŔÔ ÉÎÄĹËÓŮ, ÎĎ ÉÎÄĹËÓ ÉÓĐĎĚŘÚŐĹÔÓŃ ĐŇÉ ĐĎÓÔŇĎĹÎÉÉ ÚÁĐŇĎÓĎ× Ó - ORDER BY É LIMIT: + ORDER BY É LIMIT:

         SELECT col
         FROM tab
    @@ -833,8 +832,8 @@
         WHERE lower(col) = 'abc';
     
    - üÔÁ ËĎÎÓÔŇŐËĂÉŃ ÎĹ ÂŐÄĹÔ ÉÓĐĎĚŘÚĎ×ÁÔŘ ÓÔÁÎÄÁŇÔÎŮĘ ÉÎÄĹËÓ. ďÄÎÁËĎ, ĹÓĚÉ - ×Ů ÓĎÚÄÁÄÉÔĹ ÉÎÄĹËÓ ×ŮŇÁÖĹÎÉŃ, ĎÎ ÂŐÄĹÔ ÉÓĐĎĚŘÚĎ×ÁÎ: +

    üÔÁ ËĎÎÓÔŇŐËĂÉŃ ÎĹ ÂŐÄĹÔ ÉÓĐĎĚŘÚĎ×ÁÔŘ ÓÔÁÎÄÁŇÔÎŮĘ ÉÎÄĹËÓ. ďÄÎÁËĎ, ĹÓĚÉ + ×Ů ÓĎÚÄÁÄÉÔĹ ÉÎÄĹËÓ ×ŮŇÁÖĹÎÉŃ, ĎÎ ÂŐÄĹÔ ÉÓĐĎĚŘÚĎ×ÁÎ:

         CREATE INDEX tabindex ON tab (lower(col));
     
    @@ -848,7 +847,7 @@

    4.10) ëÁËĎ×Ů ĎÔĚÉŢÉŃ ÍĹÖÄŐ ŇÁÚÎŮÍÉ ÓÉÍ×ĎĚŘÎŮÍÉ ÔÉĐÁÍÉ?

    -
    íÁËÓÉÍÁĚŘÎŮĘ ŇÁÚÍĹŇ ÂÁÚŮ?
    +
    @@ -919,7 +918,7 @@ ); - Á×ÔĎÍÁÔÉŢĹÓËÉ ÔŇÁÎÓĚÉŇŐĹÔÓŃ ×: +

    Á×ÔĎÍÁÔÉŢĹÓËÉ ÔŇÁÎÓĚÉŇŐĹÔÓŃ ×:

         CREATE SEQUENCE person_id_seq;
         CREATE TABLE person ( 
    @@ -994,12 +993,12 @@
         OID, ĐĎÔĎÍŐ ŢÔĎ ĐĎÓĚĹÄĎ×ÁÔĹĚŘÎĎÓÔÉ SERIAL
         ŐÎÉËÁĚŘÎŮ ÔĎĚŘËĎ ×ÎŐÔŇÉ ÔÁÂĚÉĂŮ É ÔÁËÉÍ ĎÂŇÁÚĎÍ ÍĹÎŘŰĹ ĐĎÄ×ĹŇÖĹÎŮ
         ĐĹŇĹĐĎĚÎĹÎÉŔ. äĚŃ ČŇÁÎĹÎÉŃ ÚÎÁŢĹÎÉĘ 8-ÍÉ ÂÁĘÔÎĎĘ ĐĎÓĚĹÄĎ×ÁÔĹĚŘÎĎÓÔÉ
    -    ÄĎÓÔŐĐĹÎ ÔÉĐ SERIAL8.
    +    ÄĎÓÔŐĐĹÎ ÔÉĐ SERIAL8.

    TID ÉÓĐĎĚŘÚŐĹÔÓŃ ÄĚŃ ÉÄĹÎÔÉĆÉËÁĂÉÉ ÓĐĹĂÉÁĚŘÎŮČ ĆÉÚÉŢĹÓËÉČ ÚÁĐÉÓĹĘ Ó ÂĚĎŢÎŮÍÉ É offset ÚÎÁŢĹÎÉŃÍÉ. TID ÉÚÍĹÎŃĹÔÓŃ ĐĎÓĚĹ ÔĎÇĎ ËÁË ÓÔŇĎËÉ × ÔÁÂĚÉĂĹ ÂŮĚÉ ÉÚÍĹÎĹÎŮ ÉĚÉ ĐĹŇĹÇŇŐÖĹÎŮ. -

    TID ÉÓĐĎĚŘÚŐĹÔÓŃ ÉÎÄĹËÓÎŮÍÉ ÚÁĐÉÓŃÍÉ × ËÁŢĹÓÔ×Ĺ + TID ÉÓĐĎĚŘÚŐĹÔÓŃ ÉÎÄĹËÓÎŮÍÉ ÚÁĐÉÓŃÍÉ × ËÁŢĹÓÔ×Ĺ ŐËÁÚÁÔĹĚŃ ÎÁ ĆÉÚÉŢĹÓËÉĹ ÚÁĐÉÓÉ.

    diff --git a/doc/src/FAQ/FAQ_turkish.html b/doc/src/FAQ/FAQ_turkish.html index e0921f6497..ac31a57ab7 100644 --- a/doc/src/FAQ/FAQ_turkish.html +++ b/doc/src/FAQ/FAQ_turkish.html @@ -111,7 +111,7 @@ adreslerinde g 4.18) Neden "ERROR: Memory exhausted in AllocSetAlloc()" hatasýný alýyorum?
    4.19) Hangi PostgreSQL sürümünü çalýstýrdýđýmý nasýl görebilirim?
    - 4.20) Neden large-object iţlemlerim, "invalid large + 4.20) Neden large-object iţlemlerim, "invalid large obj descriptor" hatasýný veriyor?
    4.21) Ţu andaki zamaný öntanýmlý deđer olarak kabul eden kolonu nasýl yaratýrým?
    @@ -190,7 +190,7 @@ adreslerinde g

    PostgreSQL 8.0 sürümü ile , PostgreSQL artýk Win2000, WinXP ve Win2003 gibi Microsoft Windows NT tabanlý iţletim sistemlerinde dođal olarak çalýţmaya baţlamýţtýr. Paketlenmiţ bir kurulum programý, http://pgfoundry.org/projects/pginstaller. adresinden - indirilebilir. + indirilebilir.

    Ayrýca, http://forge.novell.com adresinde Novell Netware 6 portu bulunmaktadýr.

    @@ -218,7 +218,7 @@ adreslerinde g
    subscribe
    end

    yazan bir e-posta atmanýz yeterli olacaktýr.

    Bunun dýţýndaki e-posta listelerine ve PostgreSQL hakkýnda bilgiye, PostgreSQL WWW - ana sayfasýndan ulasabilirsiniz: http://www.PostgreSQL.org

    + ana sayfasýndan ulasabilirsiniz: http://www.PostgreSQL.org

    Ayný zamanda, EFNet üzerinde, #PostgreSQL adlý bir IRC kanalý bulunmaktadýr. Bunun için, irc -c '#PostgreSQL' "$USER" irc.phoenix.net Unix komutunu kullanabilirsiniz.

    @@ -235,7 +235,7 @@ adreslerinde g /doc dizinine bakýnýz. Ayrýca, bu el kitapçýklarýný online olarak http://www.PostgreSQL.org/docs/ adresinden inceleyebilirsiniz.

    http://www.PostgreSQL.org/docs/awbook.html - ve http://www.commandprompt.com/ppbook + ve http://www.commandprompt.com/ppbook adreslerinde PostgreSQL kitaplarý bulunmaktadýr. PostgreSQL kitablarýnýn listesine, http://www.ca.PostgreSQL.org/books/ adresinden ulaţaiblirsiniz. Ayrýca, PostgreSQL konusundaki teknik makalelere de @@ -288,7 +288,7 @@ adreslerinde g

    1.14) PostgreSQL, diger DBMS'lerle nasýl karţýlastýrýlabilir?

    Bir yazýlýmýn gücünü ölçmek için çeţitli yollar vardýr: Yazýlýmýn özellikleri, baţarýmý, güvenilirliđi, desteđi ve ücreti.

    -

    Özellikler:

    +

    Özellikler:

    PostgreSQL mevcut büyük ticari veritabanlarýnýn, transaction, subselect, trigger, view, foreign key referential integrity ve sophisticated locking gibi (user-defined types), rules, @@ -355,7 +355,7 @@ adreslerinde g

    http://www.webreview.com/ adresinde, arka planda veritabaný çalýstýran Web sayfalarý için giriţ seviyesinde bilgi bulunmaktadýr.

    Web ile bütünleţme için, PHP () - mükemmel bir arabirim sunar.

    + mükemmel bir arabirim sunar.

    Karmaţýk sorunlar için, çođu kisi Perl arabirimini ve CGI.pm ya da mod_perl kullanýr.

    2.3) PostgreSQL'in grafik kullanýcý arabirimi var mýdýr?

    @@ -466,7 +466,7 @@ adreslerinde g

    Postmaster ve postgres çeţitli hata ayýklama seçeneklerine sahiptir. Öncelikle, postmaster'ý baţlattýđýnýzda, standart çýktýyý ve hatalarý bir log dosyasýna yönlendirdiđinize emin olun:

    -
    cd /usr/local/pgsql
    ./bin/postmaster >server.log 2>&1 &
    +
    cd /usr/local/pgsql
    ./bin/postmaster >server.log 2>&1 &

    Bu iţlem PostgreSQL ana dizinine server.log dosyasý yerleţtirecektir. Bu dosya sunucunun yaţadýđý sorunlar ya da hatalar hakkýnda yararlý bilgiler içerir. -d seçeneđi, hata ayýklama seviyesini belirten bir rakam ile kullanýlýr. @@ -497,7 +497,7 @@ adreslerinde g deđeri ile ya da postgresql.conf dosyasýný düzenleyerek yeniden baţlatmakla arttýrabilirsiniz.

    Eđer -N deđerini 32'den büyük yapacaksanýz, ayný zamanda - -B deđerini de deđiţtirmeniz gerektiđini unutmayýn. -B, + -B deđerini de deđiţtirmeniz gerektiđini unutmayýn. -B, -N'nin en az 2 katý kadar olmalýdýr; daha iyi baţarým için bu sayýyý daha da arttýrmalýsýnýz. Yüksek sayýdaki backend süreçleri için, çeţitli çekirdek yapýlandýrma parametrelerini arttýrmanýz gerekecektir. Yapýlmasý gerekenler, @@ -554,7 +554,7 @@ adreslerinde g LIMIT ... kullanýnýz.

    Ýlk birkaç satýrý almak isteseniz bile, tüm sorgu deđerlendirilmek durumunda kalýnabilir. ORDER BY içeren bir sorgu düţünün. Eđer ORDER BY iţe eţleţen bir index varsa, PostgreSQL istenen ilk birkaç - satýrý iţleyebilir, ya da tüm sorgu istenen satýrlar üretilene kadar iţlenebilir.

    + satýrý iţleyebilir, ya da tüm sorgu istenen satýrlar üretilene kadar iţlenebilir.

    4.3) psql'in içinde gördügüm tablolarýn ya da diđer ţeylerin listesini nasýl alabilirim?

    @@ -786,7 +786,7 @@ CREATE UNIQUE INDEX person_id_key ON person ( id ); execute("INSERT INTO person (id, name) VALUES (new_id, 'Blaise Pascal')");

    Diđer sorgular için new_id'de yeni deđerin saklanmasý gerekir. Otomatik olarak yaratýlan SEQUENE nesnesinin adý, - __seq ţeklinde olacaktýr (< > iţaretleri olmadan).

    + <tablo adý>_<serial kolonu adý>_seq ţeklinde olacaktýr (< > iţaretleri olmadan).

    Alternatif olarak, atanmýţ SERIAL deđerini, deđer girildikten sonra currval() fonksiyonu ile alabilirsiniz:

    ôÉĐ