author | Bruce Momjian | |
Mon, 12 Jul 2004 00:22:51 +0000 (00:22 +0000) | ||
committer | Bruce Momjian | |
Mon, 12 Jul 2004 00:22:51 +0000 (00:22 +0000) |
doc/src/FAQ/FAQ_czech.html | patch | blob | blame | history |
PostgreSQL se vyslovuje Post-Gres-Q-L.
PostgreSQL vyvýjí tým vývojáøù pøihlá¹ených do vývojáøské konference
Autory první verze PostgreSQL 1.01 byli Andrew Yu and Jolly
Pùvodní název software z Berkley byl Postgres. Po pøidání jazyka SQL
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
THE UNIVERSITY OF CALIFORNIA ("KALIFORNSKÁ UNIVERZITA") NENÍ V ®ÁDNÉM
THE UNIVERSITY OF CALIFORNIA ZEJMÉNA NEPOSKYTUJE JAKÉKOLI ZÁRUKY, A TO
Vý¹e uvedené je BSD licence, bì¾ná licence otevøeného zdroje. Není zde
PostgreSQL bì¾í na v¹ech moderních unixových platformách. V instalaèních
Knihovna libpq, psql a nìkteré dal¹í moduly byly pøelo¾eny pro
Server mù¾e být na WindowsNT a Win2k provozován pouze s knihovnou Cygwin,
Primárním anonymním ftp serverem pro PostgreSQL je
Hlavním mailová konference je [email protected]. Slou¾í
subscribe
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í
Do vývojáøské konference se pøihlásíte odesláním dopisu s
Seznam dal¹ích konferencí naleznete na stránkách PostgreSQL
Poslední verzí je PostgreSQL 7.4.. Plánujeme uvolnit velkou verzi
Rùzné manuály, manuálové stránky a nìkolik malých testovacích pøíkladù
Na adresách http://www.PostgreSQL.org/docs/awbook.html a
psql má u¾iteèný metapøíkaz \d slou¾ící k zobrazení informací
Poslední aktualizace: Støeda 23. èervna 21:10:00 EST 2004
Souèasný správce: Bruce Momjian (
Pøelo¾il: Pavel Stìhule (
Aktuální verzi tohoto dokumentu naleznete na adrese:
Odpovìdi na dotazy relevantní ke konkrétním platformám PostgreSQL se vyslovuje Post-Gres-Q-L. Zvukový záznam je PostgreSQL vychází z databáze POSTGRES (a stále je nìkdy oznaèován PostgreSQL vyvýjí tým vývojáøù pøihlá¹ených do vývojáøské konference Autory první verze PostgreSQL 1.01 byli Andrew Yu and Jolly Chen. Do Pùvodní název software z Berkley byl Postgres. Po pøidání jazyka SQL se PostgreSQL je pøedmìtem následujících autorských práv: Dílèí copyright (c) 1996-2004, PostgreSQL Global Development Group Udìluje se oprávnìní k u¾ití, rozmno¾ování, provádìní úprav a THE UNIVERSITY OF CALIFORNIA ("KALIFORNSKÁ UNIVERZITA") NENÍ V ®ÁDNÉM HE UNIVERSITY OF CALIFORNIA ZEJMÉNA NEPOSKYTUJE JAKÉKOLI ZÁRUKY, A TO Vý¹e uvedené je BSD licence, bì¾ná licence otevøeného zdroje. Není zde PostgreSQL bì¾í na v¹ech moderních unixových platformách. V instalaèních Klient Knihovna libpq, psql a nìkteré dal¹í moduly byly pøelo¾eny pro MS Server Server mù¾e být na WindowsNT a Win2k provozován pouze s knihovnou Na nativním portu pro MS Win NT/2000/XP se pracuje. Dal¹í informace Existující port pro Novell Netware 6 naleznete na Více dokumentace naleznete na na¹ich webových stránkách. Primárním anonymním ftp serverem pro PostgreSQL je PostgreSQL podporuje roz¹íøenou podmno¾inu SQL-92. V na¹em TODO najdete V knize The PostgreSQL book na http://www.PostgreSQL.org/docs/awbook.html Dal¹í je Teach Yourself SQL in 21 days, Second Edition na Mnoho u¾ivatelù doporuèuje The Practical SQL Handbook, Bowman, Judith Nemá, mù¾eme pracovat s datumy po roce 2000 na¹eho letopoètu i pøed Nejdøíve si stáhnìte nejnovìj¹í zdroje a pøeètìte si vývojáøskou Právo commit má v cvs archivu asi tøinácti lidí. Ka¾dý z nich Nav¹tivte na¹i PostgreSQL BugTool stránku na Ovìøte si na na¹em ftp serveru ftp://ftp.PostgreSQL.org/pub, zda-li Existuje nìkolik hledisek jak porovnávat software: vlastnosti, výkon, PostgreSQL má hodnì spoleèných vlastností s velkými komerèními Výkonnostnì je na tom PostgreSQL podobnì jako dal¹í komerèní Jsme si vìdomi, ¾e databáze musí být spolehlivá, jinak je Na na¹í mailové konferenci mù¾ete kontaktovat velkou skupinu Mù¾ete si vy¾ádat denní pøehled (diggest), který má zhruba 30K dennì Konference psql-bugs je urèena k zasílání zpráv o chybách. Pro Do vývojáøské konference se pøihlásíte odesláním dopisu s ji¾ zmiòovaným Seznam dal¹ích konferencí naleznete na stránkách PostgreSQL: Poslední verze PostgreSQL je 7.4.3. Plánujeme uvolnit významnou verzi Rùzné manuály, manuálové stránky a nìkolik malých testovacích pøíkladù Na adresách http://www.PostgreSQL.org/docs/awbook.html a psql má u¾iteèný metapøíkaz \d slou¾ící k zobrazení informací o typech, Více dokumentace naleznete na na¹ich webových stránkách. PostgreSQL podporuje roz¹íøenou podmno¾inu SQL-92. V na¹em V knize The PostgreSQL book na
Dal¹í je Teach Yourself SQL in 21 days, Second Edition na
Mnoho u¾ivatelù doporuèuje The Practical SQL Handbook, Bowman, Judith Nemá, mù¾eme pracovat s datumy po roce 2000 na¹eho letopoètu i pøed Nejdøíve si stáhnìte nejnovìj¹í zdroje a pøeètìte si vývojáøskou pgsql-patches. Kvalitní záplaty posílejte do Právo commit má v CVS archivu asi tøinácti lidí. Ka¾dý z nich poslal Nav¹tivte na¹i PostgreSQL BugTool stránku na
Ovìøte si na na¹em ftp serveru ftp://ftp.PostgreSQL.org/pub, Existuje nìkolik hledisek jak porovnávat software: vlastnosti, výkon, PosgreSQL lze volnì pou¾ívat pro nekomerèní i komerèní PosgreSQL má prvotøídní infrastrukturu od na¹eho zaèátku v roce PosgreSQL má prvotøídní infrastrukturu od na¹eho zaèátku v roce 1996. Kvalitní infrastruktura je velice dùle¾itá pro ka¾dý open source Kvalitní infrastruktura je velice dùle¾itá pro ka¾dý open source Tato infrastruktura není laciná. K jejímu zaji¹tìní je tøeba stále hradit urèité Tato infrastruktura není laciná. K jejímu zaji¹tìní je tøeba stále Aèkoliv webová stránka zmiòuje PostgreSQL, Inc. vklady jsou urèeny Aèkoliv webová stránka zmiòuje PostgreSQL, Inc. vklady jsou urèeny pouze Pokud máte pøíklad úspì¹ného nasazení PostgreSQL, pøihla¹tì se na ná¹ Pokud máte pøíklad úspì¹ného nasazení PostgreSQL, pøihla¹tì se na ná¹ Pro PostgreSQL existují dva ODBC ovladaèe - PsqlODBC a OpenLink ODBC. 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. PsqlODBC je ke sta¾ení na
OpenLink mù¾ete získat na http://www.openlinksw.com. Spolupracuje OpenLink mù¾ete získat na http://www.openlinksw.com. >Tento ovladaè je urèen pro ty, kteøí vy¾adují podporu komerèní kvality, >Tento ovladaè je urèen pro ty, kteøí vy¾adují podporu komerèní kvality, Pìkný úvod do databázových technologií zabezpeèujících chod Pìkný úvod do databázových technologií zabezpeèujících chod webových >Pro tvorbu webu existuje excelentní rozhraní PHP, které naleznete na >Pro tvorbu webu existuje excelentní rozhraní PHP, které naleznete na Pro slo¾itìj¹í pøípady se èasto pou¾ívá Perl a CGI.pm nebo mod_perl. Pro slo¾itìj¹í pøípady se èasto pou¾ívá Perl a CGI.pm nebo mod_perl. Pro PostgreSQL existuje nìkolik grafických rozhraní: Pro PostgreSQL existuje nìkolik grafických rozhraní: PgAccess Úplnìj¹í seznam najdete na http://techdocs.postgresql.org/guides/GUITools. Úplnìj¹í seznam najdete na
Vìt¹ina programovacích jazykù obsahuje rozhraní pro Vìt¹ina programovacích jazykù obsahuje rozhraní pro PostgreSQL. Distribuce PostgreSQL obsahuje tato rozhraní: Dal¹í rozhraní jsou dostupná na http://gborg.postgresql.org v sekci Distribuce PostgreSQL obsahuje tato rozhraní: Dal¹í rozhraní jsou dostupná na http://gborg.postgresql.org Pou¾ijte volbu --prefix pøi spu¹tìní configure Pou¾ijte volbu --prefix pøi spu¹tìní configure. Dùvody mohou být rùzné, ale nejprve zkontrolujte, zda Vá¹ systém Dùvody mohou být rùzné, ale nejprve zkontrolujte, zda Vá¹ systém Buïto nemáte správnì nakonfigurovanou sdílenou pamì» v jádøe nebo musite Buïto nemáte správnì nakonfigurovanou sdílenou pamì» v jádøe nebo Pokud dostane chybovou zprávu IpcSemaphoreCreate: semget failed (No Nefunkèní semafory mohou zpùsobit pád bìhem intenzivních databázových Pokud se tato chyba vyskytuje je¹tì nìkde jinde, mo¾ná nemáte vùbec Pokud dostane chybovou zprávu IpcSemaphoreCreate: semget failed (No Nefunkèní semafory mohou zpùsobit pád bìhem intenzivních databázových Pokud se tato chyba vyskytuje je¹tì nìkde jinde, mo¾ná nemáte vùbec Pøi výchozím nastavení PostgreSQL odepøe pøístup z jiných stanic ne¾ Urèitì pomohou indexy. Pøíkaz EXPLAIN zobrazí zpùsob interpretace Pøi vìt¹í dávce INSERTù uva¾ujte o náhradì pøíkazem COPY. Ten je Máte nìkolik dal¹ích mo¾ností, jak zlep¹it výkon. Mù¾ete zakázat fsyn() Mù¾ete zvý¹it velikost pamì»ových bufferù pou¾itých backendy Dále mù¾ete pou¾ít pøepínaè -S k zvý¹ení limitu pamìti pro backendy Mù¾ete pou¾ít pøíkaz CLUSTER, který uspoøádá fyzicky data v 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 Jak postmaster tak postgres má nìkolik pøepínaèù umo¾òujících Tím se vytvoøí log v adresáøi PostgreSQL, Tento soubor obsahuje Pokud nebì¾í postmaster, mù¾ete spustit backend PostgreSQL z pøíkazové Pokud bì¾í postmaster, spus»e psql v jednom oknì a pak si zjistìte PID Pro ladìní a mìøení výkonu mohou být u¾iteèné pøepínaèe -s, -A a -t Mù¾ete provést pøeklad s profilací, tak abyste vidìli kolik èasu 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 Pøi zvý¹ení hodnoty -N nad 32 musíte zvý¹it hodnotu -B nad výchozí 64, Tento adresáø obsahuje doèasné soubory vytvoøené exekutorem Doèasné soubory jsou obvykle mazány automaticky, ale mù¾e se stát, ¾e PostgreSQL se minimálnì mìní bìhem malých verzí, tak¾e napø. pøi upgrade z Popis najdete v manuálové stránce DECLARE Podívejte se do man. stránky pøíkazu FETCH, nebo pou¾ijte SELECT ... Není nutné zpracovávat celý dotaz, kdy¾ potøebujete pouze nìkolik prvních K získání náhodného øádku pou¾ijte: Podívejte se do zdrojových kódù psql do souboru Poèínaje verzí 7.3 mù¾ete pou¾ít pøíkaz ALTER TABLE DROP COLUMN. Ve Pro zmìnu typu sloupce je tøeba provést: Poté proveïte VACUUM FULL tab - uvolníte tím diskový prostor zabraný PostgreSQL má tato omezení: Ve skuteènosti nic není neomezeno, limitem bývá v¾dy dostupná disková Maximální velikost tabulky je 32 TB a nevy¾aduje podporu velkých souborù Maximální velikost tabulky a maximální poèet sloupcù mù¾eme PostgreSQL vy¾aduje a¾ pìtinásobek diskového prostoru k ulo¾ení dat z Napøíklad, uva¾ujme soubor se 100 tisíci øádky obsahující na ka¾dé Velikost datové stránky PostgreSQL je 8KB Indexy nemají tak velkou re¾ii, ale mohou být také velké, Hodnoty NULL jsou ulo¾eny v bitmapách, tak¾e spotøebují jen velmi málo psql má sadu metapøíkazù k zobrazení tìchto informací. Jejich seznam Soubor pgsql/src/tutorial/syscat.source obsahuje SELECTy pøistupující Ka¾dý dotaz nemusí nutnì pou¾ít existující indexy. Index se pou¾ije tehdy, PostgreSQL rozhoduje o pou¾ití indexù na základì statistiky pøístupù k Indexy nejsou obyèejnì pou¾ity pro setøídìní nebo spojení Jinak je tomu v pøípadì pou¾ití LIMIT a ORDER BY, pøi kterém se Pokud si myslíte, ¾e optimizer mylnì zvolil sekvenèní prohledávání Pøi vyhledávání na základì vzoru jako je napø. operátor LIKE nebo ~ se Podívejte se do manuálové stránky pøíkazu EXPLAIN. R-tree index se pou¾ívá pro indexování prostorových dat. Hash index Pùvodní návrh R-tree je Guttman, A. "R-trees: A Dynamic Index Tyto materiály naleznete v Stonebraker's "Readings in Database Systems". Vestavìné R-tree mù¾e slou¾it k indexaci polygonù a GEQO modul urychluje optimalizaci dotazù pøi spojování mno¾ství Operátor ~ slou¾í k porování s regulárním výrazem, jeho modifikace *~ Pro vyhledávání bez ohledu na velká malá písmena pou¾ijeme V tomto pøípadì se nepou¾ije standardní index. Nicménì, pou¾ije se Urèíte pomocí IS NULL nebo IS NOT NULL Pøi výchozím nastavení PostgreSQL odepøe pøístup z jiných stanic ne¾ Urèitì pomohou indexy. Pøíkaz EXPLAIN ANALYZE Vám umo¾ní sledovat Pøi vìt¹í dávce INSERTù uva¾ujte o náhradì pøíkazem COPY. Ten je mnohem Máte nìkolik dal¹ích mo¾ností, jak zlep¹it výkon. Mù¾ete zakázat fsyn() Mù¾ete zvý¹it velikost pamì»ových bufferù pou¾itých backendy tj. Dále mù¾ete pou¾ít pøepínaè -S k zvý¹ení limitu pamìti pro backendy na Mù¾ete pou¾ít pøíkaz CLUSTER, který uspoøádá fyzicky data v tabulkách 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 Jak postmaster tak postgres má nìkolik pøepínaèù umo¾òujících ladìní. Tím se vytvoøí log v adresáøi PostgreSQL, Tento soubor obsahuje u¾iteèné Pokud nebì¾í postmaster, mù¾ete spustit backend PostgreSQL z pøíkazové Pokud bì¾í postmaster, spus»e psql v jednom oknì a pak si zjistìte PID Pro ladìní a mìøení výkonu mohou být u¾iteèné pøepínaèe -s, -A a -t Mù¾ete provést pøeklad s profilací, tak abyste vidìli kolik èasu Zvy¹te limit postmastera na maximální poèet souèasnì spu¹tìných Výchozí hodnota je 32 backendù. Tuto hodnotu zvý¹íte zastavením a Pøi zvý¹ení hodnoty -N nad 32 musíte zvý¹it hodnotu -B nad výchozí 64, Tento adresáø obsahuje doèasné soubory vytvoøené exekutorem dotazù. Doèasné soubory jsou obvykle mazány automaticky, ale mù¾e se stát, ¾e PostgreSQL se minimálnì mìní bìhem malých verzí, tak¾e napø. pøi upgrade Popis najdete v manuálové stránce DECLARE Podívejte se do man. stránky pøíkazu FETCH, nebo pou¾ijte SELECT ... I kdy¾ potøebujete získat pouze prvních nìkolik øádkù, je tøeba K získání náhodného øádku pou¾ijte: Pøíkaz \dt v psql zobrazí seznam tabulek. Úplný seznam pøíkazù psql Poèínaje verzí 7.3 mù¾ete pou¾ít pøíkaz ALTER TABLE DROP COLUMN. Ve Pro zmìnu typu sloupce je tøeba provést: PostgreSQL má tato omezení: Ve skuteènosti nic není neomezeno, limitem bývá v¾dy dostupná disková Maximální velikost tabulky je 32 TB a nevy¾aduje podporu velkých souborù Maximální velikost tabulky a maximální poèet sloupcù mù¾eme PostgreSQL vy¾aduje a¾ pìtinásobek diskového prostoru k ulo¾ení dat z Napøíklad, uva¾ujme soubor se 100 tisíci øádky obsahující na ka¾dé øádce Indexy nemají tak velkou re¾ii, ale mohou být také velké, proto¾e Hodnoty NULL jsou ulo¾eny v bitmapách, tak¾e spotøebují jen velmi málo psql má sadu metapøíkazù k zobrazení tìchto informací. Jejich seznam Soubor pgsql/src/tutorial/syscat.source obsahuje SELECTy pøistupující k Ka¾dý dotaz nemusí nutnì pou¾ít existující indexy. Index se pou¾ije PostgreSQL rozhoduje o pou¾ití indexù na základì statistiky pøístupù k Indexy nejsou obyèejnì pou¾ity pro setøídìní nebo spojení tabulek. Jinak je tomu v pøípadì pou¾ití LIMIT a ORDER BY, pøi kterém se vìt¹inou Pokud si myslíte, ¾e optimizer mylnì zvolil sekvenèní prohledávání Pøi vyhledávání na základì vzoru jako je napø. operátor LIKE nebo ~ se R-tree index se pou¾ívá pro indexování prostorových dat. Hash index Pùvodní návrh R-tree je Guttman, A. "R-trees: A Dynamic Index Structure 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 GEQO modul urychluje optimalizaci dotazù pøi spojování mno¾ství tabulek Operátor ~ slou¾í k porování s regulárním výrazem, jeho modifikace *~ Pro vyhledávání bez ohledu na velká malá písmena pou¾ijeme: Urèíte pomocí IS NULL nebo IS NOT NULL S interními názvy se setkáte v systémovém katalogu a v nìkterých První ètyøi uvedené typy jsou tzv. varlena typy (tj. první ètyøi byty VARCHAR(n) je vhodný pro ukládání textù prommìné délky s pevnì CHAR(n) slou¾í k ukládání øetìzcù stejné délky. CHAR(n) doplní prázdné PostgreSQL podporuje typ SERIAL. Pøi jeho pou¾ití se automaticky Viz dokumentace create_sequence v manuálových stránkách. Dále mù¾ete pou¾ít Jednou z mo¾ností je získat budoucí hodnotu SERIAL funkcí nextval pøed Mù¾ete pak je¹tì pou¾ít hodnotu newid v dal¹ích dotazech, napø. jako Alternativnì mù¾ete získat hodnotu poslednì generovou sekvencí funkcí Koneènì mù¾ete pou¾ít OID hodnotu vrácenou pøíkazem INSERT, ale to je Nikoliv, currval() vrací hodnotu naposledy generovanou ve va¹em K zaji¹tìní efektivnosti soubìhu, jsou hodnoty posloupnosti, kdy¾ se o nì Ka¾dý øádek vytvoøený v PostgreSQL získá jedineèné OID. V¹echna OID PostgreSQL pou¾ívá OID ve svém interním systému tabulek k vytvoøení OID jsou dána v¹em øádkùm z centrální oblasti a jsou pou¾ita v ka¾dé OID jsou ulo¾ena jako 4bajtový integer a pøeteèou po ètyøech TID se pou¾ívají i identifikaci fyzických øádkù s hodnotou bloku a V nìkterých zdrojových kódech nebo star¹í dokumentaci se mù¾ete setkat seznam tìchto výrazù mù¾ete nalézt na Pravdìpodobnì do¹lo k vyèerpání virtuální pamì»i na Va¹em systému, nebo Zále¾í na Va¹em shellu, zda budou tyto pøíkazy úspì¹né, mìly by zvý¹it V psql spus»te V¹echny operace s velkými objekty - lo_open, lo_close, ... musíte PostgreSQL uvolòuje handle velkých objektù pøi skonèení transakce. Pokud Pokud pou¾íváte interface podobné ODBC musíte nastavit set auto_commit off Pou¾ijte CURRENT_TIMESTAMP Aktuálnì spojujeme tabulky se sekvenèním skenováním výsledku pro ka¾dý Pro urychlení vytvoøete index pro subcol. Tento výkonnostní problém PostgreSQL podporuje vnìj¹í spojení tabulek standardními SQL Tyto identické dotazy napojí t1.col na t2.col a je¹tì pøidá V døívìj¹ích verzích se vnìj¹í spojení tabulek mohlo simulovat pomocí PostgreSQL nenabízí ¾ádný zpùsob, jak se dotázat do jiné databáze ne¾ V PostgreSQL 7.3 mù¾ete jednodu¹e vracet více øádkù nebo sloupcù z Existuje nìkolik dostupných øe¹ení master/slave replikací. Ty povolují contrib/pgcrypto obsahuje ¹ifrovací funkce pou¾itelné v SQL K ¹ifrování pøenosu dat z klienta na server, musí být Hesla u¾ivatelù databáze jsou za¹ifrována poèínaje verzí 7.3. Ve Server mù¾e bì¾et na ¹ifrovaném souborovém systému. Problém mù¾e být zpùsoben mnoha okolnostmi. Vyzkou¹ejte si svoji Po¹lete své roz¹íøení do konference pgsql-hackers, a ono pak mo¾ná Funkce vracející tabulky jsou podporované PostgreSQL 7.3 a vy¹¹í pro Makefile nemá informace o závislostech mezi hlavièkovými soubory. Musíte S interními názvy se setkáte v systémovém katalogu a v nìkterých První ètyøi uvedené typy jsou tzv. varlena typy (tj. první ètyøi byty na VARCHAR(n) je vhodný pro ukládání textù prommìné délky s pevnì CHAR(n) slou¾í k ukládání øetìzcù stejné délky. CHAR(n) doplní prázdné PostgreSQL podporuje typ SERIAL. Pøi jeho pou¾ití se automaticky vytvoøí Jednou z mo¾ností je získat budoucí hodnotu SERIAL funkcí nextval() pøed Mù¾ete pak je¹tì pou¾ít hodnotu newid v dal¹ích dotazech, napø. jako Alternativnì mù¾ete získat hodnotu poslednì generovou sekvencí funkcí Koneènì mù¾ete pou¾ít OID hodnotu vrácenou pøíkazem INSERT, ale to je Nikoliv, currval() vrací hodnotu naposledy generovanou ve va¹em K zaji¹tìní efektivnosti soubìhu, jsou hodnoty posloupnosti, kdy¾ se o Ka¾dý øádek vytvoøený v PostgreSQL získá jedineèné OID. V¹echna OID PostgreSQL pou¾ívá OID ve svém interním systému tabulek k vytvoøení OID jsou dána v¹em øádkùm z centrální oblasti a jsou pou¾ita v ka¾dé OID jsou ulo¾ena jako 4bajtový integer a pøeteèou po ètyøech miliardách. TID se pou¾ívají i identifikaci fyzických øádkù s hodnotou bloku a V nìkterých zdrojových kódech nebo star¹í dokumentaci se mù¾ete setkat s seznam tìchto výrazù mù¾ete nalézt na Pravdìpodobnì do¹lo k vyèerpání virtuální pamì»i na Va¹em systému, nebo Zále¾í na Va¹em shellu, zda budou tyto pøíkazy úspì¹né, mìly by zvý¹it V psql spus»te V¹echny operace s velkými objekty - PostgreSQL uvolòuje handle velkých objektù pøi skonèení transakce. Pokud Pou¾ijte CURRENT_TIMESTAMP: Døívìj¹í verze (pøed 7.4) spojovali vnoøené dotazy k vnìj¹ím sekvenèním Pro urychlení vytvoøete index pro subcol. Ve verzi 7.4 a pozdìj¹ích, IN pou¾ívá stejnì sofistikovanou techniku PostgreSQL podporuje vnìj¹í spojení tabulek standardními SQL pøíkazy. Tyto identické dotazy napojí t1.col na t2.col a je¹tì pøidá nepøipojené V døívìj¹ích verzích se vnìj¹í spojení tabulek mohlo simulovat pomocí PostgreSQL nepodporuje dotazy do jiné ne¾ aktuální databáze. contrib/dblink nabízí funkce umo¾òující provedení dotazu v jiné V PostgreSQL 7.3 mù¾ete jednodu¹e vracet více øádkù nebo sloupcù z Pøelo¾ený kód PL/pgSQL funkce je ulo¾en ve vyrovnávací pamìti, tj. Existuje nìkolik dostupných øe¹ení master/slave replikací, tj umo¾òují Problém mù¾e být zpùsoben mnoha okolnostmi. Vyzkou¹ejte si svoji funkci Po¹lete své roz¹íøení do konference pgsql-hackers, a ono pak mo¾ná Funkce vracející tabulky jsou podporované PostgreSQL 7.3 a vy¹¹í pro Makefile nemá informace o závislostech mezi hlavièkovými soubory. MusíteObecné otázky
User client dotazy
Administrativní dotazy
Provozní dotazy
Roz¹iøování 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.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?
Vlastnosti
Výkon
Spolehlivost
Podpora
1.6) Kde mohu získat podporu?
1.7) Jaká 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?
>Cena
1.15 Jak lze finanènì pomoci PostgreSQL?
>1.15) Jak lze finanènì pomoci PostgreSQL?
>User client dotazy2>
User client dotazy2>
2.1 Kde naleznu ODBC ovladaèe pro PostgreSQL?
>2.1) Kde naleznu ODBC ovladaèe pro PostgreSQL?
>2.2 Jaké nástroje lze pou¾ít pro PostgreSQL a web?
>2.2) Jaké nástroje lze pou¾ít pro PostgreSQL a web?
>2.3 Existuje grafické rozhraní pro PostgreSQL?
>2.3) Existuje grafické rozhraní pro PostgreSQL?
>2.4 Které programovací jazyky mají podporu pro PostgreSQL?
>2.4) Které programovací jazyky mají podporu pro PostgreSQL?
>>
>>
>Administrativní dotazy2>
Administrativní dotazy2>
3.1 Jak nainstalovat PostgreSQL jinam ne¾ do /usr/local/pgsql?
>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
3.2) Pøi startu postmaster, dostanu chybové hlá¹ení Bad System Call
3.3) Pøi startu postmastera dostanu hlá¹ení o chybì IpcMemoryCreate. 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.
3.4 Pøi startu postmastera dostanu hlá¹ení o chybì
3.5) Jak povolit nebo zakázat pøístup z jiných stanic?
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í?
cd /usr/local/pgsql
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
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?
SELECT col FROM tab
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?
BEGIN;
BEGIN;
4.5 Jaká je maximální velikost øádku, tabulky a databáze?
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
4.6 Kolik diskového prostoru je potøeba k ulo¾ení dat z normálního
36 bytù: hlavièka øádku (pøibli¾nì)
8192 bytù na stránce
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è?
SELECT col FROM tab
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,
SELECT * FROM tab
CREATE INDEX tabindex ON tab (lower(col));
4.13 Jak v dotazu detekovat, ¾e polo¾ka je NULL?
4.14 Jaké jsou rozdíly mezi rùznými znakovými typy?
Typ Interní název Poznámka
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
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
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è?
SET enable_seqscan TO 'off'
a zkuste zda je4.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,
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?
CREATE TABLE person (
CREATE SEQUENCE person_id_seq;
4.15.2 Jak získat hodnotu SERIAL po vlo¾ení øádku?
newid = execute("SELECT nextval('person_id_seq')");
execute("INSERT INTO person (name) VALUES ('Blaise Pascal')");
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í
4.16 Co to je OID? Co je to TID?
CREATE TABLE new_table(old_oid oid, mycol int);
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
ulimit -d 262144
4.19 Jak se dozvím, kterou verzi PostgreSQL pou¾ívám?
SELECT version();
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?
CREATE TABLE test (x int, modtime timestamp DEFAULT CURRENT_TIMESTAMP );
4.22 Proè jsou moje vnoøené dotazy pou¾ívající IN tak pomalé?
SELECT * FROM tab
SELECT * FROM tab
4.23 Jak provést vnìj¹í spojení (outer join)?
SELECT * FROM t1 LEFT OUTER JOIN t2 ON (t1.col = t2.col);
SELECT * FROM t1 LEFT OUTER JOIN USING (col);
SELECT tab1.col2, tab2.col2 FROM tab1, tab2
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
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
5.3 Jak napsat funkci v C vracející ntici?
5.4 Modifikoval jsem zdrojové soubory. Tato zmìna nebyla pøi
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í
4.15.4) Proè není vygenerované èíslo pou¾ito pøi pøeru¹ení transakce?
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?
SELECT version();
4.20) Proè operace s velkými objekty konèí "invalid large obj descriptor"?
lo_open
, lo_close
, ... musíteBEGIN WORK
a COMMIT
.set
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 z více databází?
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è?