summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBruce Momjian2007-11-01 17:28:03 +0000
committerBruce Momjian2007-11-01 17:28:03 +0000
commit5c996884a05ad62f00b8e4432beca1d7dd177d61 (patch)
tree2dd4d39becfc21114d1a4d715e5925d06aab095f
parent6287c31b5a20cf84d64ce6f328ef48c8c98ddfba (diff)
Update Czech FAQ.
Pavel Stehule
-rw-r--r--doc/FAQ_czech1818
-rw-r--r--doc/src/FAQ/FAQ_czech.html1806
2 files changed, 1417 insertions, 2207 deletions
diff --git a/doc/FAQ_czech b/doc/FAQ_czech
index 78696bad58c..d065fa1f9c0 100644
--- a/doc/FAQ_czech
+++ b/doc/FAQ_czech
@@ -1,1117 +1,849 @@
- �asto kladen� dotazy (FAQ) PostgreSQL
+ Frequently Asked Questions
- Posledn� aktualizace: St�eda 23. �ervna 21:10:00 EST 2004
+ Casto kladen� dotazy (FAQ) PostgreSQL
- Sou�asn� spr�vce: Bruce Momjian ([email protected])
+ Posledn� aktualizace: 29. r�jna 2007 (aktualizov�no pro PostgreSQL
+ 8.3)
- P�elo�il: Pavel St�hule ([email protected])
+ Soucasn� spr�vce: Bruce Momjian ([email protected])
- 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.
+ Prelozil: Pavel Stehule ([email protected])
- Odpov�di na dotazy relevantn� ke konkr�tn�m platform�m lze nal�zt na
- adrese: http://www.PostgreSQL.org/docs/index.html.
+ Nejaktu�lnejs� verzi tohoto dokumentu naleznete na adrese
+ http://www.postgresql.org/files/documentation/faqs/FAQ.html
+
+ Odpovedi na ot�zky v�zan� na konkr�tn� platformy naleznete na adrese
+ http://www.postgresql.org/docs/faq/.
_________________________________________________________________
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.1) Co je to PostgreSQL? Jak� je spr�vn� v�slovnost slova PostgreSQL?
+ 1.2) Kdo r�d� v�voj PostgreSQL?
+ 1.3) Pod jakou licenc� je PostgreSQL?
+ 1.4) Na kter�ch platform�ch lze provozovat PostgreSQL?
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
+ 1.6) Jak� je posledn� verze?
+ 1.7) Kde mohu z�skat podporu?
+ 1.8) Jak a kam hl�sit chyby?
+ 1.9) Kde najdu informace o zn�m�ch chyb�ch nebo nepodporovan�ch
+ vlastnostech?
+ 1.10) Jak� je dostupn� dokumentace?
+ 1.11) Jak se mohu naucit SQL?
+ 1.12) Jak se mohu pripojit k t�mu v�voj�ru?
+ 1.13) Jak je na tom PostgreSQL v porovn�n� s jin�mi datab�zemi?
+ 1.14) Je PostgreSQL pripraven na aktu�ln� zav�den� letn�ho casu v
+ nekter�ch zem�ch?
+
+ Dotazy na klientsk� rozhran�
- 2.1) Kde naleznu ODBC ovlada�e pro PostgreSQL?
- 2.2) Jak� n�stroje lze pou��t pro PostgreSQL a web?
+ 2.1) Kter� rozhran� jsou pouziteln� pro PostgreSQL?
+ 2.2) Jak� n�stroje lze pouz�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?
+ 3.1) Jak nainstalovat PostgreSQL jinam nez do /usr/local/pgsql?
+ 3.2) Jak nastavit pravidla pro pr�stup z jin�ch stanic?
+ 3.3) Jak vyladit datab�zi na vyss� v�kon?
+ 3.4) Jak� m�m lad�c� prostredky?
+ 3.5) Co znamen� "Sorry, too many clients", kdyz se zkous�m pripojit?
+ 3.6) Proc je nutn� dump a obnoven� (load) datab�ze pri upgradu
+ PostgreSQL?
+ 3.7) Jak� hardware bych mel pouz�vat?
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
+ 4.1) Jak z�skat pouze prvn� r�dek dotazu? N�hodn� r�dek?
+ 4.2) Jak z�sk�m seznam tabulek, indexu, datab�z�, a definovan�ch
+ uzivatelu. Mohu videt dotazy, kter� pouz�v� psql pro zobrazen� techto
+ informac�?
+ 4.3) Jak zmenit datov� typ sloupce?
+ 4.4) Jak� je maxim�ln� velikost r�dku, tabulky a datab�ze?
+ 4.5) Kolik diskov�ho prostoru je potreba k ulozen� 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
+ 4.6) Muj dotaz je pomal� a nepouz�v� vytvoren� indexy. Proc?
+ 4.7) Jak zjist�m, jak se vyhodnocuje muj dotaz?
+ 4.8) Jak pouz�t case-(in)sensitive regul�rn� v�raz? Jak pouz�t index
+ pro case insensitive hled�n�?
+ 4.9) Jak v dotazu detekovat, ze polozka je NULL? Jak bezpecne spojit
+ dva retezce, pokud mohou obsahovat NULL? Lze tr�dit podle toho, jestli
+ je polozka NULL nebo ne?
+ 4.10) Jak� jsou rozd�ly mezi ruzn�mi znakov�mi typy?
+ 4.11.1) Jak vytvorit serial/auto-increment polozku?
+ 4.11.2) Jak z�skat hodnotu SERIAL po vlozen� r�dku?
+ 4.11.3) Nezpusob� currval() a nextval() probl�my ve v�ce uzivatelsk�m
+ prostred�?
+ 4.11.4) Proc nen� vygenerovan� c�slo pouzito pri prerusen�
+ transakce?Proc vznikaj� d�ry v c�slov�n� prostrednictv�m sekvence nebo
+ typu SERIAL?
+ 4.12) Co to je OID? Co je to CTID?
+ 4.13) Co znamen� chybov� hl�sen� "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�?
+ 4.14) Jak zjist�m, kterou verzi PostgreSQL pouz�v�m?
+ 4.15) Jak vytvorit sloupec, kter� bude implicitne obsahovat aktu�ln�
+ cas?
+ 4.16) Jak prov�st vnejs� spojen� (outer join)?
+ 4.17) Jak prov�st dotaz napr�c nekolika datab�zemi?
+ 4.18) Muze funkce vr�tit v�ce r�dku nebo sloupcu?
+ 4.19) Co je pr�cinou chyby "relation with OID xxxxx does not exist"?
+ 4.20) Jak� jsou moznosti replikace datab�z�?
+ 4.21) Proc v dotazu nejsou rozpozn�ny n�zvy m�ch tabulek nebo funkc�?
+ Proc jsou velk� p�smena v n�zvech automaticky prevedena na mal�
+ p�smena?
_________________________________________________________________
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
- ([email protected]). (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-2007, 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: [email protected]. 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 [email protected].
-
- 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 [email protected].
-
- Do v�voj��sk� konference se p�ihl�s�te odesl�n�m dopisu s ji�
- zmi�ovan�m obsahem na mailto:[email protected].
-
- 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.
+ 1.1) Co je to PostgreSQL? Jak� je spr�vn� v�slovnost slova PostgreSQL?
+
+ V�slovnost PostgreSQL je Post-Gres-Q-L , nebo zjednodusene Postgres .
+ V rade jazyku je slovo PostgreSQL obt�zne vysloviteln�, proto se v
+ hovoru casto pouz�v� zjednodusen� forma n�zvu. Pro ty, kter� by si
+ r�di poslechli v�slovnost, je k dispozici audioz�znam v MP3 form�tu.
+
+ PostgreSQL je relacn� datab�ze s nekter�mi objektov�mi rysy, kter� m�
+ moznosti tradicn�ch komercn�ch datab�zov�ch syst�mu s nekolika
+ rozs�ren�mi, kter� lze naj�t v DBMS syst�mech pr�st� generace.
+ Pouz�v�n� PostgreSQL nen� omezen� a vesker� zdrojov� k�dy jsou volne
+ dostupn�.
+
+ Za v�vojem PostgreSQL je mezin�rodn� skupina nez�visl�ch v�voj�ru
+ navz�jem komunikuj�c�ch prostrednictv�m internetu. Tento projekt nen�
+ r�zen z�dnou obchodn� organizac�. Pokud se chcete pridat k projektu,
+ prectete si v�voj�rsk� FAQ na adrese
+ http://www.postgresql.org/files/documentation/faqs/FAQ_DEV.html .
+
+ 1.2) Kdo r�d� v�voj PostgreSQL?
+
+ Pokud budete hledat organizaci r�d�c� v�voj PostgreSQL, budete
+ zklam�ni. Nic takov�ho neexistuje. Existuj� pouze "core" a CVS skupiny
+ uzivatelu, ale ty existuj� v�ce z administr�torsk�ch duvodu nez z
+ organizacn�ch. Projekt je smerov�n komunitou v�voj�ru a uzivatelu, ke
+ kter� se kdokoliv muze pripojit. Jedin� co potrebuje, je prihl�sit se
+ do elektronick� konference. V�ce ve v�voj�rsk�m FAQ.
+
+ 1.3) Pod jakou licenc� je PostgreSQL?
+
+ PostgreSQL je predmetem n�sleduj�c�ch autorsk�ch pr�v:
+
+ D�lc� Copyright (c) 1996-2005, PostgreSQL Global Development Group
+ D�lc� Copyright (c) 1994-6, Regents of the University of California
+
+ Udeluje se opr�vnen� k uzit�, rozmnozov�n�, prov�den� �prav a
+ rozsirov�n� tohoto softwaru a dokumentace k nemu, pro jak�koli �cely,
+ bez licencn�ho poplatku a bez p�semn� licencn� smlouvy, za podm�nky,
+ ze na vsech jeho kopi�ch je uvedeno ozn�men� o v�se uveden�ch pr�vech,
+ jakoz i obsah tohoto a dvou n�sleduj�c�ch odstavcu.
+
+ THE UNIVERSITY OF CALIFORNIA ("KALIFORNSK� UNIVERZITA") NEN� V Z�DN�M
+ PR�PADE ODPOVEDNA Z�DN� TRET� OSOBE ZA PR�MOU, NEPR�MOU, ZVL�STN�,
+ NAHODILOU NEBO V�SLEDNOU SKODU, VCETNE USL�HO ZISKU, ZPUSOBENOU UZIT�M
+ TOHOTO SOFTWARU A DOKUMENTACE K NEMU, A TO I V PR�PADE, ZE THE
+ UNIVERSITY OF CALIFORNIA BYLA INFORMOV�NA O MOZNOSTI VZNIKU TAKOV�
+ SKODY.
+
+ 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 �CELUM. N�ZE UVEDEN� SOFTWARE JE POSKYTNUT "JAK STOJ� A
+ LEZ�" A THE UNIVERSITY OF CALIFORNIA NEN� POVINNA ZAJISTIT JEHO
+ �DRZBU, PODPORU, AKTUALIZACI, VYLEPSEN� NEBO MODIFIKACI.
+
+ V�se uveden� je BSD licence, bezn� licence otevren�ho zdroje. Nen� zde
+ z�dn� omezen� ohledne uzit� k�du zdroje. Jsme s t�m spokojeni a nem�me
+ v �myslu na t�to skutecnosti cokoli menit.
+
+ 1.4) Na kter�ch platform�ch lze provozovat PostgreSQL?
+
+ Strucne receno, PostgreSQL bez� na vsech modern�ch unixov�ch
+ syst�mech. Seznam tech, u kter�ch probehlo testov�n�, naleznete v
+ instalacn�ch instrukc�ch.
+
+ PostreSQL tak� bez� nativne na vsech Microsof Windows syst�mech
+ odvozen�ch z Microsoft Windows NT jako jsou Windows 2000SP4, WindowsXP
+ a Windows2003. Instalacn� bal�cek naleznete na adrese
+ http://pgfoundry.org/projects/pginstaller. Na stars�ch syst�mech s
+ jeste MS-DOS j�drem lze spustit PostgreSQL s emulacn�m programem
+ Cygwin.
+
+ D�le existuje port pro Novell Netware 6 port na adrese
+ http://forge.novell.com, a pro OS/2 verze (eComStation) na adrese
+ http://hobbes.nmsu.edu/cgi-bin/h-search?sh=1&button=Search&key=postgre
+ SQL&stype=all&sort=type&dir=%2F .
+
+ 1.5) Kde mohu z�skat PostgreSQL?
+
+ Pomoc� webov�ho klienta z adresy http://www.postgresql.org/ftp/ nebo
+ klienta ftp z adresy ftp://ftp.postgresql.org/pub/.
+
+ 1.6) Jak� je posledn� verze?
+
+ Nejnovejs� verz� PostgreSQL je verze 8.2.5
+
+ V pl�nu je uvolnovat kazdorocne jednu velkou verzi a kazd�ch nekolik
+ mes�cu mal� verze.
+
+ 1.7) Kde mohu z�skat podporu?
+
+ Nejcastejs� forma podpory uzivatelum PostgreSQL komunitou je
+ prostrednictv�m e-mailu. Na nasem webov�m serveru naleznete odkaz na
+ str�nky,kde se muzete prihl�sit do elektronick� konference. Pro
+ zac�tek jsou doporucen� konference general nebo bugs.
+
+ Dals� cestou je IRC kan�l #postgresql na Freenode (irc.freenode.net).
+ K pripojen� pouzijte Unixov� pr�kaz irc -x '#postgresql' "$USER"
+ irc.freenode.net nebo jak�koholiv jin�ho IRC klienta. V t�to s�ti
+ existuje jeste spanelsk� (#postgresql-es) a francouzsk�
+ (#postgresqlfr) verze. Dals� PostgreSQL kan�l naleznete na EFNet.
+
+ Seznam spolecnost� poskytuj�c� komercn� podporu naleznete na adrese
+ http://techdocs.postgresql.org/companies.php.
+
+ 1.8) Jak a kam hl�sit chyby?
+
+ Vyplnte formul�r na adrese
+ http://www.postgresql.org/support/submitbug. Na nasem ftp serveru
+ ftp://ftp.postgresql.org/pub/ si overte, ze pouz�v�te aktu�ln� verzi
+ PostreSQL.
+
+ Chyby reportovan� prostrednictv�m chybov�ho formul�re nebo zasl�n�m
+ mailu do PostgreSQL konference obvykle generuje n�sleduj�c� odezvu:
+ * Nejedn� se o chybu, a proc
+ * Jedn� se o zn�mou chybu, kter� je jiz v seznamu �kolu TODO
+ * Tato chyba byla opravena v aktu�ln� verzi
+ * Tato chyba byla jiz opravena ve verzi, kter� zat�m nebyla
+ ofici�lne uvolnena
+ * Pozadavek na dals� doplnuj�c� informace:
+ + Operacn� syst�m
+ + Verze PostgreSQL
+ + Test reprodukuj�c� chybu
+ + Lad�c� informace
+ + Backtrace v�stup debuggeru
+ * Jedn� se o zat�m nezjistenou chybu, pak muzete cekat
+ + Z�platu odstranuj�c� chybu, kter� bude vlozena do dals� velk�
+ nebo mal� verze
+ + Informaci, ze se jedn� o chybu, kterou nelze okamzite resit a
+ je proto prid�na do TODO
+
+ 1.9) Kde najdu informace o zn�m�ch chyb�ch nebo nepodporovan�ch vlastnostech?
+
+ PostgreSQL podporuje rozs�renou podmnozinu SQL:2003. V nasem TODO
+ naleznete seznam zn�m�ch chyb, chybej�c�ch vlastnost�, a pl�ny do
+ budoucna.
+
+ Odezva na pozadavek na novou vlastnost PostgreSQL je obvykle:
+ * Pozadavek je jiz v TODO
+ * Pozadovan� funkce nen� chten� protoze
+ + Duplikuje jiz existuj�c� funkci, kter� respektuje SQL
+ standard
+ + Implementac� funkce by se pr�lis zkomplikoval k�d bez
+ relevantn�ho pr�nosu
+ + Funkce by mohla b�t nebezpecn� nebo nespolehliv�
+ * Pozadavek je prid�n do TODO
+
+ PostgreSQL nepoz�v� syst�m pro sledov�n� chyb, protoze jsme zjistili,
+ ze je efektivnejs� pr�mo reagovat na maily a udrzovat aktu�ln� TODO. V
+ praxi je snaha o co nejrychlejs� resen� chyb, a chyby, kter� by se
+ mohly projevit u mnoha uzivatelu jsou opravov�ny velice rychle. Jedin�
+ m�sto, kde lze dohledat vsechny zmeny, rozs�ren� a opravy v PostgreSQL
+ je CVS log. Pozn�mky k verzi "Release notes" nezachycuj� vsechny
+ zmeny, k nemz doslo.
+
+ 1.10) Jak� je dostupn� dokumentace?
+
+ PostgreSQL obsahuje vynikaj�c� dokumentaci zahrnuj�c� manu�l,
+ manu�lov� str�nky a testovac� pr�klady. Pod�vejte se do adres�re /doc.
+ Manu�l je pr�stupn� online na http://www.postgresql.org/docs.
+
+ K dispozici jsou zdarma dve online knihy na adres�ch
+ http://www.postgresql.org/docs/books/awbook.html a
+ http://www.commandprompt.com/ppbook/. Dals� literaturu lze zakoupit.
+ Nejpopul�rnejs� je od Kerryho Douglase. Seznam dostupn� literatury je
+ na http://techdocs.postgresql.org/techdocs/bookreviews.php. Jeste je
+ kolekce technicky orientovan�ch cl�nku tematicky spojen�ch s
+ PostgreSQL na adrese http://techdocs.postgresql.org/.
+
+ R�dkov� klient psql m� \d pr�kazy pro zobrazen� informac� o typech,
+ oper�torech, funkc�ch, agregacn�ch funkc�, atd. Pouzijte \? pro
+ zobrazen� dostupn�ch pr�kazu.
+
+ Dals� dokumentaci najdete na nasem webu.
+
+ 1.11) Jak se mohu naucit SQL?
+
+ Pod�vejte se do v�se uveden� dokumentace. Dals� online knihou je
+ "Teach Yourself SQL in 21 Days, Second Edition" na adrese
+ http://members.tripod.com/er4ebus/sql/index.htm. Mnoho nasich
+ uzivatelu doporucuje knihu The Practical SQL Handbook, Bowman, Judith
+ S., et al., Addison-Wesley. Dals� The Complete Reference SQL, Groff et
+ al., McGraw-Hill.
+
+ Dals� online tutori�ly jsou dostupn� na adres�ch:
+ * http://www.intermedia.net/support/sql/sqltut.shtm
+ * http://sqlcourse.com
+ * http://www.w3schools.com/sql/default.asp
+ * http://mysite.verizon.net/Graeme_Birchall/id1.html
+
+ 1.12) Jak se mohu pripojit k t�mu v�voj�ru?
+
+ Prostudujte si Developer's FAQ.
+
+ 1.13) Jak je na tom PostgreSQL v porovn�n� s jin�mi datab�zemi?
+
+ Software muzeme porovn�vat z nekolika ruzn�ch pohledu: vlastnosti,
+ v�kon, spolehlivost, podpora a cena.
+
+ Vlastnosti
+
+ PostgreSQL nab�z� vetsinu funkc� funkcionality velk�ch komercn�ch DBMS
+ syst�mu jako jsou: transakce, vnoren� dotazy, spouste, referencn�
+ integrita a sofistikovan� syst�m zamyk�n�. Poskytujeme urcit� funkce,
+ kter� ostatn� syst�my bezne nepodporuj�. Napr. uzivatelem definovan�
+ typy, dedicnost, pravidla (rules), a MVCC architekturu.
+
+ V�kon
+
+ V�kon PostgreSQL je srovnateln� s ostatn�mi komercn�mi nebo Open
+ Source datab�zemi. V nekter�ch pr�padech je rychlejs�, jindy
+ pomalejs�. N�s v�kon je obvykle +/-10% vuci ostatn�m datab�z�m.
+
+ Spolehlivost
+
+ Uvedomujeme si, ze datab�ze mus� b�t stoprocentne spolehliv�, jinak je
+ nepouziteln�. Snaz�me se, aby kazd� verze byla dobre otestov�na a
+ obsahovala minimum chyb. Kazd� verze je minim�lne nekolik mes�cu v
+ beta testovac�m rezimu. Do produkcn�ho rezimu se dostane, az kdyz
+ nedoch�z� k dals�m zmen�m nebo oprav�m. Ver�me, ze jsem v�ce nez
+ srovnateln� s ostatn�mi datab�zemi v t�to oblasti.
+
+ Podpora
+
+ Na nasich internetov�ch konferenc�ch se setk�v� velk� skupina v�voj�ru
+ a uzivatelu pri resen� vyskytuj�c�ch se probl�mu. Nase internetov�
+ konference umoznuj� kontakt velk� skupiny v�voj�ru a uzivatelu.
+ Nemuzeme garantovat opravu chyby, ale komercn� DBMSs tak� vzdy
+ negarantuj� resen� probl�mu. Ver�me ale, ze d�ky pr�m�mu kontaktu na
+ v�voj�re, nasi uzivatelskou komunitu, manu�lum, a dostupn�m zdrojov�m
+ k�dum m�me leps� podporu nez ostatn� DBMSs. Pro ty, kter� preferuj�
+ komercn� "per-incident" podporu, existuje spolecnost�, kter� ji
+ nab�zej� (FAQ sekce 1.7.)
+
+ Cena
+
+ PostgreSQL lze pouz�vat bezplatne (a to i pro komercn� pouzit�). Tak�
+ muzete neomezene pouz�vat n�s k�d ve sv�ch produktech s v�jimkami
+ specifikovan�mi v nas� licenci (preb�r�me BSD licenci).
+
+ 1.14) Je PostgreSQL pripraven na aktu�ln� zav�den� letn�ho casu v nekter�ch
+ zem�ch?
+
+ Poc�naje verz� 8.0.[4+] podporuje PostgreSQL letn� cas tak� pro USA.
+ Podpora letn�ho casu (daylight saving time) pro Kanadu a Z�padn�
+ Austr�lii je obsazena ve verz�ch 8.0.[10+] a 8.1.[6+] a vsech
+ n�sleduj�c�ch verz�ch. Stars� verze pouz�valy syst�movou datab�zi
+ casov�ch z�n obsahuj�c�, krome jin�ho, informaci o tom, zda se pro
+ danou casovou z�nu rozlisuje mezi letn�m a zimn�m casem.
_________________________________________________________________
- 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
+ Dotazy na klientsk� rozhran�
- 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 [email protected].
-
- 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.
+ 2.1) Kter� rozhran� jsou pouziteln� pro PostgreSQL?
+
+ PostgreSQL se distribuuje pouze s rozhran�m pro jazyk C a embedded C.
+ Vsechna dals� rozhran� predstavuj� nez�visl� projekty, kter� je treba
+ st�hnout z internetu samostatne. Osamostatnen� techto projektu
+ umoznuje nez�vislost v�vojov�ch t�mu a moznost vyd�vat nov� verze bez
+ ohledu na vyd�n� nov� verze PostgreSQL.
+
+ Nekter� programovac� jazyky jako je napr. PHP obsahuj� rozhran� pro
+ PostgreSQL. Rozhran� pro jazyky jako je Perl, Tcl, Python a mnoho
+ dals�ch jsou dostupn� na adrese: http://gborg.postgresql.org v sekci
+ Drivers/Interfaces.
- Pro slo�it�j�� p��pady se �asto pou��v� Perl a CGI.pm nebo mod_perl.
+ 2.2) Jak� n�stroje lze pouz�t pro PostgreSQL a web?
+
+ Dobr�m �vodem do problematiky datab�z� v prostred� webov�ch str�nek
+ muze b�t web http://www.webreview.com.
- 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.
+ PHP (http://www.php.net) je vynikaj�c�m rozhran�m pro tvorbu webu.
- �pln�j�� seznam najdete na
- http://techdocs.postgresql.org/guides/GUITools.
+ Pro slozitejs� �lohy se casto pouz�v� Perl a jeho BDB:Pg rozhran� s
+ podporou CGI - CGI.pm nebo mod_perl(u).
- 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.
+ 2.3) Existuje grafick� rozhran� pro PostgreSQL?
+
+ K dispozici je rada grafick�ch n�stroju podporuj�c�ch PostgreSQL a to
+ od komercn�ch nebo open source v�voj�ru. Podrobn� seznam naleznete na
+ adrese http://www.postgresql.org/docs/techdocs.54.
_________________________________________________________________
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.
+ 3.1) Jak nainstalovat PostgreSQL jinam nez do /usr/local/pgsql?
+
+ Pri spousten� configure nastavte parametr --prefix
+
+ 3.2) Jak nastavit pravidla pro pr�stup z jin�ch stanic?
+
+ Ve v�choz� konfiguraci, PostgreSQL umoznuje pouze pripojen� z
+ lok�ln�ho uzivatele prostrednictv�m Unix domain sockets nebo TCP/IP
+ spojen�. Bez modifikace listen_addresses v souboru postgresql.conf, a
+ povolen� adresy v souboru $PGDATA/pg_hba.conf se nelze pripojit k
+ PostgreSQL z ostatn�ch stanic. Zmena v�se zm�nen�ch parametru vyzaduje
+ restart datab�zov�ho serveru.
+
+ 3.3) Jak vyladit datab�zi na vyss� v�kon?
+
+ V�kon syst�mu muzete ovlivnit ve trech oblastech:
+
+ Zmeny dotazu
+
+ * Pouzit�m indexu vcetne c�stecn�ch a funkcion�ln�ch
+ * Pouzit�m COPY m�sto opakovan�ch INSERTu
+ * Sloucen�m mnoha SQL pr�kazu do jedn� transakce sn�zen�m rezie na
+ commit
+ * Pouz�v�n�m CLUSTERU, pokud nac�t�te vets� pocet r�dek podle indexu
+ * Pouzit�m klauzule LIMIT v poddotazech
+ * Pouzit�m predpripraven�ch dotazu
+ * Pouz�v�n�m ANALYZE. Tento pr�kaz aktualizuje statistiky, kter� se
+ pouz�vaj� pri optimalizaci dotazu
+ * Pravideln� pouzit� VACUUM nebo pouz�v�n� pg_autovacuum
+ * Odstranen�m indexu pred rozs�hl�mi zmenami v datech
+
+ Konfigurace serveru
+
+ Urcit� parametry v souboru postgresql.conf maj� vliv na v�kon serveru.
+ Detaily naleznete v pr�rucce Administr�tora v Server Run-time
+ Environment/Run-time Configuration. Dals� koment�re naleznete v
+ http://www.varlena.com/varlena/GeneralBits/Tidbits/annotated_conf_e.ht
+ ml a http://www.varlena.com/varlena/GeneralBits/Tidbits/perf.html.
+
+ V�ber hardware
+
+ Vliv hardware na v�kon serveru je pops�n v dokumentech
+ http://candle.pha.pa.us/main/writings/pgsql/hw_performance/index.html
+ a http://www.powerpostgresql.com/PerfList/.
+
+ 3.4) Jak� m�m lad�c� prostredky?
+
+ Nastaven�m log_* promenn�ch v konfiguraci serveru si vynut�te logov�n�
+ dotazu a procesn�ch statistik, kter� V�m mohou pomoci pri laden� a
+ optimalizaci v�konu.
+
+ 3.5) Co znamen� "Sorry, too many clients", kdyz se zkous�m pripojit?
+
+ Prekrocil jste v�choz� limit, kter� je 100 soucasne pripojen�ch
+ uzivatelu. V konfiguraci serveru v postgresql.conf tuto hodnotu muzete
+ zvetsit zmenou hodnoty max_connection. Nezapomente restartovat server.
+
+ 3.6) Proc je nutn� dump a obnoven� (load) datab�ze pri upgradu PostgreSQL?
+
+ Zpusob c�slov�n� je pops�n v dokumentaci na
+ http://www.postgresql.org/support/versioning. Instrukce k proveden�
+ migrace na vyss� verzi jsou takt�z v dokumentaci na adrese
+ http://www.postgresql.org/docs/current/static/install-upgrading.html.
+
+ 3.7) Jak� hardware bych mel pouz�vat?
+
+ Jelikoz PC jsou vetsinou kompatibiln�, lid� maj� tendence verit, ze
+ vsechna PC jsou stejne kvalitn�. Coz nen� pravda. Pameti ECC, SCSI a
+ kvalitn� z�kladn� desky jsou mnohem spolehlivejs� a v�konnejs� nez
+ lacinejs� hardware. PostgreSQL pobez� na vetsine hardwaru, nicm�ne
+ pokud je pro V�s spolehlivost a v�kon syst�mu dulezit�, je dobr�
+ venovat cas nalezen� vhodn� hardwarov� konfigurace. Na nasich
+ elektronick�ch konferenc�ch muzete diskutovat o vhodn�ch konfigurac�ch
+ a znack�ch.
_________________________________________________________________
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.1) Jak z�skat pouze prvn� r�dek dotazu? N�hodn� r�dek?
+
+ Pokud potrebujete pouze nekolik r�dku a pokud v�te kolik, pouzijte
+ SELECT LIMIT. Pokud bude mozn� pouz�t index shoduj�c� se s ORDER BY,
+ je mozn�, ze se nebude prov�det cel� dotaz. Pokud nezn�te pocet
+ z�znamu, pouzijte kurzor a pr�kaz FETCH.
+
+ Pro v�ber n�hodn�ho r�dku pouzijte pr�kaz ve tvaru:
+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;
+ 4.2) Jak z�sk�m seznam tabulek, indexu, datab�z�, a definovan�ch uzivatelu.
+ Mohu videt dotazy, kter� pouz�v� psql pro zobrazen� techto informac�?
+
+ V psql pr�kazem \dt z�sk�te seznam tabulek. �pln� seznam pr�kazu psql
+ z�sk�te pr�kazem \?. Alternativne si muzete prostudovat zdrojov� k�d
+ psql - soubor pgsql/src/bin/psql/describe.c, kter� obsahuje SQL
+ pr�kazy, kter� jsou generov�ny pro z�sk�n� v�stupu psql "backslash"
+ pr�kazu. Tak� muzete nastartovat psql s parametrem -E, kter� zpusob�
+ zobrazen� vsech SQL pr�kazu, kter� se odes�laj� na server. PostgreSQL
+ tak� podporuje SQL standard INFORMACN� SCH�MATA (standardn� syst�mov�
+ tabulky). Klasick�m dotazem do syst�mov�ch tabulek z�sk�te pozadovan�
+ informace o strukture datab�ze.
+
+ Syst�mov� tabulky PostgreSQL (mimo r�mec SQL standardu) pouz�vaj�
+ prefix pg_. Pro zjisten� struktury datab�ze je muzete pouz�t tak�, i
+ kdyz preferov�ny jsou dotazy do informacn�ho sch�matu.
+
+ Seznam vsech datab�z� z�sk�te pr�kazem psql -l
+
+ Dals� inspiraci najdete v souboru pgsql/src/tutorial/syscat.source.
+ Obsahuje ilustracn� SELECTy potrebn� k z�sk�n� informac� z syst�mov�ch
+ tabulek datab�ze.
+
+ 4.3) Jak zmenit datov� typ sloupce?
+
+ Ve verz�ch 8.0 a pozdejs�ch jednoduse:
+ALTER TABLE ALTER COLUMN TYPE
- 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;
+ V stars�ch verz�ch:
+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.
+ Po zmene spustte pr�kaz VACUUM FULL, aby doslo k uvolnen� diskov�ho
+ prostoru pouzit�ho v tu chv�li jiz neplatn�mi z�znamy.
- 4.5) Jak� je maxim�ln� velikost ��dku, tabulky a datab�ze?
-
+ 4.4) Jak� je maxim�ln� velikost r�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
+ Maxim�ln� velikost datab�ze: neomezena (existuj� 32TB db)
+ Maxim�ln� velikost tabulky: 32 TB
+ Maxim�ln� velikost r�dky: 480GB
+ Maxim�ln� velikost polozky 1 GB
+ Maxim�ln� pocet r�dku v tabulce: neomezeno
+ Maxim�ln� pocet sloupcu v tabulce: 250-1600 podle typu
+ Maxim�ln� pocet indexu na tabulce: neomezeno
+
+ Ve skutecnosti nic nen� neomezeno, limitem b�v� vzdy dostupn� diskov�
+ pamet nebo velikost operacn� pameti. Pokud m�te nekterou z techto
+ hodnot neobvykle velkou, muze doj�t ke sn�zen� v�konu.
+
+ Maxim�ln� velikost tabulky je 32 TB a nevyzaduje podporu velk�ch
+ souboru operacn�m syst�mem. Velk� tabulky se ukl�daj� do nekolika 1 GB
+ souboru takze limity souborov�ho syst�mu nejsou podstatn�.
+
+ Maxim�ln� velikost tabulky a maxim�ln� pocet sloupcu muzeme
+ zectyrn�sobit nastaven�m velikosti bloku na 32K.
+
+ Indexy jsou povolen� pouze na sloupc�ch jejichz d�lka je mens� nez
+ 2000 znaku. Pokud tuto d�lku prekroc�me a index potrebujeme pro
+ zajisten� jednoznacnosti, je vhodnejs� pouz�t funkcion�ln� index nad
+ MD5 funkc� nebo fulltextov� index.
+
+ 4.5) Kolik diskov�ho prostoru je potreba k ulozen� dat z norm�ln�ho textov�ho
+ souboru?
+
+ PostgreSQL vyzaduje az petin�sobek diskov�ho prostoru k ulozen� 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�
+ Napr�klad, uvazujme soubor se 100 tis�ci r�dky obsahuj�c� na kazd�
+ r�dce cel� c�slo a textov� popis. Text je v prumerne dvacet bytu
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
+ obsahuj�c� odpov�daj�c� data bude zhruba 5.2 MB.
+ 24 bytu: hlavicka r�dku (priblizne)
+ 24 bytu: jedna celoc�seln� polozka a jedna textov�
+ + 4 byty: ukazatel na str�nku k entici
------------------------------------------------------
- 64 byt� na ��dek
-
- Velikost datov� str�nky PostgreSQL je 8KB
+ 52 bytu na r�dek
- 8192 byt� na str�nce
- ---------------------- = 128 ��dek na str�nku
- 64 byt� za ��dek
+ Velikost datov� str�nky PostgreSQL je 8192 bytu (8KB)
+ 8192 bytu na str�nce
+---------------------- = 158 r�dek na str�nku
+ 52 bytu za r�dek
- 100000 ��dek
- -------------------- = 782 str�nek (zaokrouhleno nahoru)
- 128 ��dek na str�nce
+100000 r�dek
+----------------------- = 633 str�nek (zaokrouhleno nahoru)
+ 158 r�dek na str�nce
- 782 * 8192 = 6, 406, 144 byt� (6.4 MB)
+633 datov�ch str�nek * 8192 bytu na kazdou str�nku = 5,185,536 bytu (5.2 MB)
- Indexy nemaj� tak velkou re�ii, ale mohou b�t tak� velk�, proto�e
+ Indexy nemaj� tak velkou rezii, ale mohou b�t tak� velk�, protoze
obsahuj� indexovan� data.
- Hodnoty NULL jsou ulo�eny v bitmap�ch, tak�e spot�ebuj� jen velmi m�lo
+ Hodnoty NULL jsou ulozeny v bitmap�ch, takze zab�raj� 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]
+ 4.6) Muj dotaz je pomal� a nepouz�v� vytvoren� indexy. Proc?
+
+ Kazd� dotaz nemus� nutne pouz�t existuj�c� indexy. Index se pouzije
+ tehdy, kdyz je tabulka vets� nez urcit� minim�ln� velikost, a dotaz
+ vyb�r� pouze procentu�lne malou c�st r�dku tabulky. To proto, ze
+ n�hodn� pr�stup k disku dan� cten�m indexu muze b�t pomalejs� nez
+ line�rn� cten� tabulky nebo sekvencn� cten�.
+
+ PostgreSQL rozhoduje o pouzit� indexu na z�klade statistiky pr�stupu k
+ tabulce. Tyto statistiky se shromazduj� pr�kazy VACUUM ANALYZE nebo
+ ANALYZE. D�ky statistik�m m� optimizer informaci o poctu r�dek v
+ tabulce a muze l�pe rozhodnout o pouzit� indexu. Statistiky se uplatn�
+ pri urcen� optim�ln�ho porad� a metody spojen� tabulek. Statistiky by
+ se meli aktualizovat opakovane, tak jak se men� obsah tabulek.
+
+ Indexy nejsou obycejne pouzity pro setr�den� nebo spojen� tabulek.
+ Sekvencn� zpracov�n� n�sledovan� explicitn�m tr�den�m je obycejne
+ rychlejs� nez pouzit� indexu na velk� tabulce.
+
+ Jinak je tomu v pr�pade pouzit� LIMIT a ORDER BY, pri kter�m se
+ vetsinou index pouzije, jelikoz je v�sledkem pouze mal� c�st tabulky.
+
+ Pokud si mysl�te, ze optimizer mylne zvolil sekvencn� prohled�v�n�
+ tabulky, pouzijte pr�kaz SET enable_seqscan TO 'off' a zkuste zda je
+ prohled�v�n� s indexem rychlejs�.
+
+ Pri vyhled�v�n� na z�klade vzoru jako je napr. oper�tor LIKE nebo ~ se
+ indexy pouzij� pouze za urcit�ch skutecnost�:
+ * zac�tek hledan�ho vzoru mus� b�t ukotven k zac�tku, tj.
+ + vzor LIKE nesm� zac�nat %
+ + ~ regul�rn� v�raz mus� zac�nat ^
+ * vzor nesm� zac�nat intervalem, napr. [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�).
+ nepouz�v� indexy. Muzete ale pouz�t funkcion�ln� indexy, kter�
+ jsou pops�ny v sekci 4.8
+ * pri inicializaci datab�ze (initdb) mus� b�t pouzito C locale nebo
+ vytvorte speci�ln� text_pattern_index, kter� umozn�, pri
+ respektov�n� zm�nen�ch podm�nek pouzit� indexu operac� LIKE. Pro
+ vyhled�v�n� cel�ch slov je mozn� a v�hodn� pouz�t fulltext.
- 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';
+ 4.7) Jak zjist�m, jak se vyhodnocuje muj dotaz?
+
+ Pod�vejte se do n�povedy k pr�kazu EXPLAIN.
+
+ 4.8) Jak pouz�t case-(in)sensitive regul�rn� v�raz? Jak pouz�t index pro case
+ insensitive hled�n�?
+
+ Vyhled�v�n� prostrednictv�m regul�rn�ch vzoru zajistuje oper�tor ~,
+ kter� je case-sensitive. Jeho case-insensitive varianta je oper�tor
+ ~*. Case-insensitive variac� oper�toru LIKE je oper�tor ILIKE.
+
+ Case-insensitive vyhled�n� se res�:
+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));
+ Tento dotaz nepouzije standardn� index. Mus�te pouz�t tzv.
+ funkcion�ln� index:
+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
-CHAR(n) bpchar �et�zec je dopln�n mezerami do dan� d�lky
-TEXT text bez horn�ho limitu na d�lku
-BYTEA bytea pole byt� (bezpe�n� lze ulo�it i znak NULL)
-"char" char jeden znak
+ Pokud index vytvor�me jako unik�tn�, tak muzeme ukl�dat retezce
+ obsahuj�c� mal� i velk� p�smena, ale nikoliv retezce, kter� se od sebe
+ odlisuj� jen v mal�ch a velk�ch p�smenech. K zajisten� z�pisu retezce
+ obsahuj�c� pouze mal� nebo pouze velk� p�smena pouzijte CHECK kontroly
+ nebo triggery.
+
+ 4.9) Jak v dotazu detekovat, ze polozka je NULL? Jak bezpecne spojit dva
+ retezce, pokud mohou obsahovat NULL? Lze tr�dit podle toho, jestli je polozka
+ NULL nebo ne?
+
+ Pokud chcete testovat hodnotu NULL pouzijte oper�tor IS:
+ SELECT *
+ FROM tab
+ WHERE col IS NULL;
- 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
- );
+ K spojen� retezcu, kter� mohou obsahovat hodnotu NULL, pouz�vejte
+ funkci COALESCE(), napr.:
+ SELECT COALESCE(col1, '') || COALESCE(col2, '')
+ FROM tab
- 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);
+ Pokud chcete tr�dit podle hodnoty NULL, pouzijte v�raz IS NULL nebo IS
+ NOT NULL v klauzuli ORDER. Hodnota pravda m� prednost pred hodnotou
+ false a tedy pokud pouzijete:
+ SELECT *
+ FROM tab
+ ORDER BY (col IS NOT NULL)
- 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')");
+ tak z�znamy s NULL budou na zac�tku setr�den�ch dat.
+
+ 4.10) Jak� jsou rozd�ly mezi ruzn�mi znakov�mi typy?
+
+ Typ Intern� n�zev Pozn�mky
+ VARCHAR(n) varchar n urcuje maxim�ln� d�lku
+ CHAR(n) bpchar retezec je do dan� d�lky rozs�ren mezerami
+ TEXT text bez omezen� d�lky
+ BYTEA bytea pole bytu nespecifikovan� d�lky
+ "char" char jeden znak
+
+ Na intern� n�zvy muzete narazit v syst�mov�m katalogu nebo v nekter�ch
+ chybov�ch hl�sen�ch.
+
+ Ctyri prvn� typy jsou tzv. varlena typy (prvn� ctyri byty na disku
+ jsou obsahuj� d�lku, ostatn� obsahuj� vlastn� data). Skutecne obsazen�
+ prostor je tedy o neco m�lo vets� nez deklarovan� velikost. Na druhou
+ stranu, dels� retezce jsou komprimov�ny, takze obsazen� prostor na
+ disku muze b�t mens� nez se cek�.
+
+ VARCHAR(n) je vhodn� pro ukl�d�n� ruzne dlouh�ch retezcu u kter�ch
+ zn�me d�lkov� omezen�, TEXT pro retezce bez omezen� d�lky (maximum je
+ jeden gigabyte).
+
+ CHAR(n) se pouz�v� pro ulozen� stejne dlouh�ch retezcu. CHAR(n) dopln�
+ mezerami na specifikovanou d�lku, VARCHAR(n) hodnoty se ukl�daj� tak
+ jak jsou. BYTEA je pro ukl�d�n� bin�rn�ch dat - non ASCII hodnot.
+ Vsechny zm�nen� typy maj� podobn� v�konov� charakteristiky.
+
+ 4.11.1) Jak vytvorit serial/auto-increment polozku?
+
+ V PostgreSQL muzete pouz�t datov� typ SERIAL. Jeho pouzit�m se
+ automaticky vytvor� sekvence. Napr�klad:
+CREATE TABLE person (
+ id SERIAL,
+ name TEXT
+);
- 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')");
+ je automaticky transformov�no na:
+CREATE SEQUENCE person_id_seq;
+CREATE TABLE person (
+ id INT4 NOT NULL DEFAULT nextval('person_id_seq'),
+ name TEXT
+);
- 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';
+ Podrobnejs� informace najdete v manu�lu v popisu pr�kazu
+ create_sequence.
+
+ 4.11.2) Jak z�skat hodnotu SERIAL po vlozen� r�dku?
+
+ Nejjednoduss�m zpusob, jak z�skat vygenerovanou hodnotu typu SERIAL,
+ je vyuz�t klauzuli RETURNING. Pro tabulku z 4.11.1 vypad� takto:
+INSERT INTO person (name) VALUES ('Blaise Pascal') RETURNING id;
- 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
+ Tak� muzete pouz�t funkci nextvall() a jej� v�sledek pouz�t v pr�kazu
+ INSERT, nebo zavolat currval() po proveden� pr�kazu INSERT.
+
+ 4.11.3) Nezpusob� currval() a nextval() probl�my ve v�ce uzivatelsk�m
+ prostred�?
+
+ Ne, currval vrac� vzdy hodnotu, kter� byla vygenerov�na pro v�s.
+
+ 4.11.4) Proc nen� vygenerovan� c�slo pouzito pri prerusen� transakce?Proc
+ vznikaj� d�ry v c�slov�n� prostrednictv�m sekvence nebo typu SERIAL?
+
+ Pot� co sekvence vygeneruje nov� c�slo, tak se nedoch�z� k zamcen�
+ sekvence a necek� se na �spesn� nebo ne�spesn� dokoncen� transakce.
+ Odvol�n�m transakce, kter� si vyz�dala c�sla sekvence se tato c�sla
+ nen�vratne ztrat�.
+
+ 4.12) Co to je OID? Co je to CTID?
+
+ V pr�pade, ze tabulku nezaloz�me s atributem WITHOUT OIDS, tak m�
+ kazd� r�dek unik�tn� identifikacn� c�slo OID. Toto c�slo je 4 bajtov�
+ cel� c�slo, kter� je jedinecn� v cel� instalaci. Pretece po 4
+ miliard�ch r�dku. PostgreSQL pouz�v� OIDs jako intern� linky v
+ intern�ch syst�mov�ch tabulk�ch.
+
+ K z�sk�n� unik�tn�ho c�sla v nesyst�mov�ch tabulk�ch je vhodnejs�
+ pouzit� typu SERIAL nez OID, jelikoz sekvence SERIAL se pouz�v� pouze
+ pro jednu tabulku a je tud�z m�ne n�chyln� na pretecen�. Pokud byste
+ se toho ob�vali, pouzijte typ SERIAL8.
+
+ CTID se pouz�v� k identifikaci konkr�tn�ho fyzick�ho r�dku. CTID se
+ men� pokud je r�dek modifikov�n nebo znovu nacten. Pouz�vaj� ho indexy
+ jako adresaci fyzick�ch r�dku.
+
+ 4.13) Co znamen� chybov� hl�sen� "ERROR: Memory exhausted in
+ AllocSetAlloc()"?
+
+ Pravdepodobne jste vycerpal dostupnou virtu�ln� pamet, nebo tvuj
+ kernel m� pr�lis n�zk� limity u urcit�ch zdroju. Pred startem
+ PostgreSQL vyzkousejte:
+ulimit -d 262144
+limit datasize 256m
- Z�le�� na Va�em shellu, zda budou tyto p��kazy �sp�n�, m�ly by zv��it
- limit datov�ho segmentu pro Va�e procesy a umo�nit tak dokon�en�
- dotazu. Tyto p��kazy se aplikuj� na aktu�ln� proces a v�echny synovsk�
- procesy vytvo�en� po proveden� p��kazu. Pokud m�te probl�my s SQL
- klientem proto�e backend vrac� p��li� mnoho dat, zkuste zv��it limity
- p�ed startem klienta.
-
- 4.19) Jak se dozv�m, kterou verzi PostgreSQL pou��v�m?
-
- V psql spus�te SELECT version();
-
- 4.20) Pro� operace s velk�mi objekty kon�� "invalid large obj descriptor"?
-
- V�echny operace s velk�mi objekty - lo_open, lo_close, ... mus�te
- spou�t�t v transakci, tj. mezi p��kazy BEGIN WORK a COMMIT.
-
- PostgreSQL uvol�uje handle velk�ch objekt� p�i skon�en� transakce.
- Pokud budete pracovat s velk�mi objekty mimo transakci, pravd�podobn�
- dostanete toto chybov� hl�en�, proto�e handle ji� budou neplatn�.
- Pokud pou��v�te interface podobn� ODBC mus�te nastavit set auto_commit
- off.
-
- 4.21) Jak vytvo�it sloupec obsahuj�c� implicitn� aktu�ln� datum?
-
- Pou�ijte CURRENT_TIMESTAMP:
-
-CREATE TABLE test (x int, modtime timestamp DEFAULT CURRENT_TIMESTAMP );
-
- 4.22) Pro� jsou moje vno�en� dotazy pou��vaj�c� IN tak pomal�?
-
- 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);
+ Mozn�, ze se projde pouze jeden pr�kaz - z�lez� to na vasem shellu.
+ Mel by zvednout limity datov�ch segmentu vasich procesu na dostatecne
+ velkou hodnotu a snad umoznit dokoncen� dotazu. Zmena limitu se bude
+ aplikovat pouze na aktu�ln� proces a na vsechny nove vytvoren�
+ procesy. Jestlize m�te probl�m s SQL klientem, protoze v�m server
+ vr�til pr�lis dat, zkuste to pred startem klienta.
+
+ 4.14) Jak zjist�m, kterou verzi PostgreSQL pouz�v�m?
+
+ V psql napiste:
+SELECT version();
- na:
- SELECT *
- FROM tab
- WHERE EXISTS (SELECT subcol FROM subtab WHERE subcol = col);
+ 4.15) Jak vytvorit sloupec, kter� bude implicitne obsahovat aktu�ln� cas?
+
+ Pouzijte CURRENT_TIMESTAMP:
+CREATE TABLE test (x int, modtime TIMESTAMP DEFAULT CURRENT_TIMESTAMP );
- 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);
+ 4.16) Jak prov�st vnejs� spojen� (outer join)?
+
+ PostgreSQL podporuje standardn� SQL syntaxi pro vnejs� spojen�. Zde
+ jsou dva pr�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;
+SELECT *
+FROM t1 LEFT OUTER JOIN t2 USING (col);
- 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.
+ Tyto identick� dotazy spoj� sloupec t1.col k sloupci t2.col, a jeste
+ vr�t� vsechny nesp�rovan� r�dky t2 (ty, kter� nedohled� v t2). RIGHT
+ JOIN by pripojil vsechny nesp�rovan� r�dky z t2. FULL JOIN vr�t�
+ vsechny sp�rovan� r�dky i vsechny zb�vaj�c� r�dky z obou tabulek.
+ Kl�cov� slovo OUTER je voliteln�. Bezn� operace JOIN se tak� oznacuje
+ jako vnitrn� spojen�.
+
+ 4.17) Jak prov�st dotaz napr�c nekolika datab�zemi?
+
+ Neexistuje z�dn� zpusob, jak se v dotazu odkazovat na tabulky z jin�
+ nez aktu�ln� datab�ze. A to protoze m� syst�mov� tabulky ulozen�
+ nez�visle v kazd� datab�zi a nen� tak �plne zrejm�, jak by se dotaz
+ proveden� napr�c datab�zemi mel chovat.
+
+ Jeden z doplnku dblink umoznuje dotaz nad nekolika tabulkami pomoc�
+ funkc�. Druh� zpusob je simult�ln� pripojen� klienta ke vsem
+ relevantn�m datab�z�m a sloucen� v�sledku na strane klienta.
+
+ 4.18) Muze funkce vr�tit v�ce r�dku nebo sloupcu?
+
+ Jde to jednoduse pomoc� set-returning funkce. V�ce na
+ http://www.postgresql.org/docs/techdocs.17.
+
+ 4.19) Co je pr�cinou chyby "relation with OID xxxxx does not exist"?
+
+ Nechten�m vedlejs�m efektem kesov�n� SQL dotazu v PL/pgSQL funkci je
+ probl�m s neplatn�mi odkazy na docasn� tabulky, kter� byly od prvn�ho
+ spusten� funkce zruseny a znovu vytvoreny pred dals�m spusten�m
+ PL/pgSQL funkce. Resen�m je pouz�t pr�kaz EXECUTE a to proto, ze
+ prov�dec� pl�n SQL pr�kazu spousten�ho pr�kazem EXECUTE se vytv�r�
+ pokazd� znovu (neukl�d� se do cache).
+
+ Tento probl�m by se nemel vyskytovat u PostgreSQL verze 8.3 a vyss�ch
+ verz�ch.
+
+ 4.20) Jak� jsou moznosti replikace datab�z�?
+
+ Replikaci datab�ze umoznuje nekolik technoligi�. Kazd� m� urcit�
+ v�hody a nev�hody.
+
+ Master/Slave replikaci podporuje jeden hlavn� server, kter� prij�m�
+ pozadavky na z�pis a cten�, a nekolik podr�zen�ch serveru, kter�
+ umoznuj� pouze cten� (SELECT). Nejrozs�renejs�m volne dostupn�m
+ resen�m tohoto typu je Slony-I.
+
+ Replikace typu Multi-master podporuje existenci nekolika serveru s
+ povolen�m z�pisem na v�ce replikovan�ch serverech. Toto resen� zvysuje
+ z�tez serveru, protoze je nutn� synchronizace serveru.
+ Nejrozs�renejs�m volne dostupn�m resen�m je PGCluster.
+
+ Jeste existuje nekolik komercn�ch a hardware resen� replikac�
+ podporuj�c�ch ruzn� modely replikace.
+
+ 4.21) Proc v dotazu nejsou rozpozn�ny n�zvy m�ch tabulek nebo funkc�? Proc
+ jsou velk� p�smena v n�zvech automaticky prevedena na mal� p�smena?
+
+ Nejcastejs�m duvodem nerozpozn�n� n�zvu objektu bylo pouzit� vlozen�
+ n�zvu sloupce nebo tabulky mezi uvozovky pri zakl�d�n� tabulky. Pokud
+ se n�zev zap�se mezi uvozovky, pak je case sensitive, a v dusledku
+ toho je nutn� n�zvy techto sloupcu nebo tabulek v SQL pr�kazech tak�
+ vkl�dat mezi uvozovky (pokud obsahuj� velk� p�smena). Nekter�
+ programy, jako je napr�klad pgAdmin, automaticky pouz�vaj� uvozovky.
+ Takze pokud chcete, aby syst�m identifikoval identifik�tor, mus�te:
+ * nepouz�vat uvozovky v pr�kazu CREATE TABLE
+ * v identifik�toru pouz�t pouze mal� p�smena
+ * v dotazech vkl�dat identifik�tory do uvozovek
diff --git a/doc/src/FAQ/FAQ_czech.html b/doc/src/FAQ/FAQ_czech.html
index 7baa4c0dea9..3a485388eed 100644
--- a/doc/src/FAQ/FAQ_czech.html
+++ b/doc/src/FAQ/FAQ_czech.html
@@ -1,1167 +1,645 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<HTML>
- <HEAD>
- <META name="generator" content="HTML Tidy, see www.w3.org">
- <META http-equiv="Content-Type" content="text/html; charset="iso-8859-2">
- <META http-equiv="Content-language" content="cs">
- <META name="description" lang="en" content="Czech translation of FAQ for PostgreSQL">
- <META name="description" lang="cs" content="�esk� p�eklad FAQ PostgreSQL">
-
- <TITLE>PostgreSQL FAQ</TITLE>
- </HEAD>
-
- <BODY bgcolor="#ffffff" text="#000000" link="#ff0000" vlink="#a00000"
- alink="#0000ff">
-
-
- <H1>�asto kladen� dotazy (FAQ) PostgreSQL</H1>
-
- <P>Posledn� aktualizace: St�eda 23. �ervna 21:10:00 EST 2004</P>
-
- <P>Sou�asn� spr�vce: Bruce Momjian (<A href=
-
- <P>P�elo�il: Pavel St�hule (<A href=
-
- <P>Aktu�ln� verzi tohoto dokumentu naleznete na adrese: <A href=
- "http://www.PostgreSQL.org/docs/faqs/FAQ.html">http://www.PostgreSQL.org/docs/faqs/FAQ.html</A>.
- �esk� p�eklad na adrese: <A href="http://www.PostgreSQL.org/docs/faqs/FAQ_czech.html">
- http://www.PostgreSQL.org/docs/faqs/FAQ_czech.html</A>.</P>
-
- <P>Odpov�di na dotazy relevantn� ke konkr�tn�m platform�m
- lze nal�zt na adrese: <A href="http://www.PostgreSQL.org/docs/index.html">
- http://www.PostgreSQL.org/docs/index.html</A>.</P>
- <HR>
- <H2 align="center">Obecn� ot�zky</H2>
-
- <A href="#1.1">1.1</A>) Co je PostgreSQL? Jak se vyslovuje?<BR>
- <A href="#1.2">1.2</A>) Jak� je licence na PostgreSQL?<BR>
- <A href="#1.3">1.3</A>) Na kter�ch Unixex lze spustit PostgreSQL?<BR>
- <A href="#1.4">1.4</A>) Kter� ne-unixov� platformy jsou podporovan�?<BR>
- <A href="#1.5">1.5</A>) Kde mohu z�skat PostgreSQL?<BR>
- <A href="#1.6">1.6</A>) Kde mohu z�skat podporu?<BR>
- <A href="#1.7">1.7</A>) Kde je posledn� verze?<BR>
- <A href="#1.8">1.8</A>) Jak� je dostupn� dokumentace?<BR>
- <A href="#1.9">1.9</A>) Kde najdu seznam zn�m�ch chyb nebo nepodporovan�ch vlastnost�?<BR>
- <A href="#1.10">1.10</A>) Jak se mohu nau�it SQL?<BR>
- <A href="#1.11">1.11</A>) Nem� PostgreSQL probl�my s rokem 2000?<BR>
- <A href="#1.12">1.12</A>) Jak se p�ipojit k v�voj��sk�mu t�mu?<BR>
- <A href="#1.13">1.13</A>) Kam podat report o chyb�?<BR>
- <A href="#1.14">1.14</A>) Jak je na tom PostgreSQL v porovn�n� s jin�mi datab�zemi?<BR>
- <A href="#1.15">1.15</A>) Jak lze finan�n� pomoci PostgreSQL?<BR>
-
- <H2 align="center">User client dotazy</H2>
-
- <A href="#2.1">2.1</A>) Kde naleznu ODBC ovlada�e pro PostgreSQL?<BR>
- <A href="#2.2">2.2</A>) Jak� n�stroje lze pou��t pro PostgreSQL a web?<BR>
- <A href="#2.3">2.3</A>) Existuje grafick� rozhran� pro PostgreSQL?<BR>
- <A href="#2.4">2.4</A>) Kter� programovac� jazyky maj� podporu pro PostgreSQL?<BR>
-
- <H2 align="center">Administrativn� dotazy</H2>
-
- <A href="#3.1">3.1</A>) Jak nainstalovat PostgreSQL jinam ne� do /usr/local/pgsql?<BR>
- <A href="#3.2">3.2</A>) P�i startu postmaster, dostanu chybov� hl�en� Bad System Call nebo
- core dump. Pro�?<BR>
- <A href="#3.3">3.3</A>) P�i startu postmastera dostanu hl�en� o chyb�
- IpcMemoryCreate. Pro�?<BR>
- <A href="#3.4">3.4</A>) P�i startu postmastera dostanu hl�en� o chyb� IpcSemaphoreCreate.
- Pro�?<BR>
- <A href="#3.5">3.5</A>) Jak povolit nebo zak�zat p��stup z jin�ch stanic?<BR>
- <A href="#3.6">3.6</A>) Jak ladit datab�zov� stroj na lep�� v�kon?<BR>
- <A href="#3.7">3.7</A>) Jak� jsou mo�nosti lad�n�?<BR>
- <A href="#3.8">3.8</A>) Pro� dostanu "Sorry, too many clients", kdy� se zkou��m p�ipojit?<BR>
- <A href="#3.9">3.9</A>) K �emu slou�� adres�� pgsql_tmp?<BR>
- <A href="#3.10">3.10</A>) Pro� je po�adov�no dump a obnoven� (load) datab�ze b�hem upgrade
- mezi velk�mi verzemi PostgreSQL?<BR>
-
- <H2 align="center">Provozn� dotazy</H2>
-
- <A href="#4.1">4.1</A>) ��m se li�� bin�rn� a norm�ln� kurzor?<BR>
- <A href="#4.2">4.2</A>) Jak z�skat pouze prvn� ��dek dotazu? N�hodn� ��dek?<BR>
- <A href="#4.3">4.3</A>) Jak z�sk�m seznam tabulek nebo jinak jak jej z�sk� psql?<BR>
- <A href="#4.4">4.4</A>) Jak odstran�m sloupec tabulky, jak zm�n�m jeho typ?<BR>
- <A href="#4.5">4.5</A>) Jak� je maxim�ln� velikost ��dku, tabulky a datab�ze?<BR>
- <A href="#4.6">4.6</A>) Kolik diskov�ho prostoru je pot�eba k ulo�en� dat z norm�ln�ho
- textov�ho souboru?<BR>
- <A href="#4.7">4.7</A>) Jak z�sk�m seznam vytvo�en�ch tabulek, index�,
- datab�z�?<BR>
- <A href="#4.8">4.8</A>) M�j dotaz je pomal� a nepou��v� vytvo�en� indexy. Pro�?<BR>
- <A href="#4.9">4.9</A>) Jak zjist�m, jak optimizer dotazu vyhodnocuje m�j dotaz?<BR>
- <A href="#4.10">4.10</A>) Co to je R-tree index?<BR>
- <A href="#4.11">4.11</A>) Co je Genetic Query Optimizer?<BR>
- <A href="#4.12">4.12</A>) Jak prov�st vyhled�v�n� regul�rn�ho v�razu case sensitiv,
- insensitiv? Jak pou��t index pro case insensitive vyhled�v�n�?<BR>
- <A href="#4.13">4.13</A>) Jak v dotazu detekovat, �e polo�ka je NULL?<BR>
- <A href="#4.14">4.14</A>) Jak� jsou rozd�ly mezi r�zn�mi znakov�mi typy?<BR>
- <A href="#4.15.1">4.15.1</A>) Jak vytvo�it serial/auto-increment pole?<BR>
- <A href="#4.15.2">4.15.2</A>) Jak z�skat hodnotu SERIAL po vlo�en� ��dku?<BR>
- <A href="#4.15.3">4.15.3</A>) Nepovede currval() a nextval() k rozhozen� podm�nek p�i soub�hu s
- jin�mi u�ivateli?<BR>
- <A href="#4.15.4">4.15.4</A>) Pro� nen� vygenerovan� ��slo pou�ito p�i p�eru�en� transakce?
- Pro� vznikaj� d�ry v ��slov�n� vlastn� sekvenc�/SERIAL sloupce?<BR>
- <A href="#4.16">4.16</A>) Co to je OID? Co je to TID?<BR>
- <A href="#4.17">4.17</A>) Jak� je v�znam n�kter�ch v�raz� pou�it�ch v PostgreSQL?<BR>
- <A href="#4.18">4.18</A>) Pro� jsem z�skal chybov� hl�en� "ERROR: Memory exhausted in
- AllocSetAlloc()"?<BR>
- <A href="#4.19">4.19</A>) Jak se dozv�m, kterou verzi PostgreSQL pou��v�m?<BR>
- <A href="#4.20">4.20</A>) Pro� operace s velk�mi objekty kon�� "invalid large obj descriptor"?<BR>
- <A href="#4.21">4.21</A>) Jak vytvo�it sloupec obsahuj�c� implicitn� aktu�ln� datum?<BR>
- <A href="#4.22">4.22</A>) Pro� jsou moje vno�en� dotazy pou��vaj�c� IN tak pomal�?<BR>
- <A href="#4.23">4.23</A>) Jak prov�st vn�j�� spojen� (outer join)?<BR>
- <A href="#4.24">4.24</A>) Jak prov�st dotaz nap��� n�kolika datab�zemi?<BR>
- <A href="#4.25">4.25</A>) M��e funkce vr�tit v�ce ��dk� nebo sloupc�?<BR>
- <A href="#4.26">4.26</A>) Pro� nelze spolehliv� vytv��et a ru�it do�asn� tabulky
- v PL/pgSQL funkc�ch?<BR>
- <A href="#4.27">4.27</A>) Jak� jsou mo�nosti replikace datab�z�?<BR>
- <A href="#4.28">4.28</A>) Jak� jsou mo�nosti �ifrov�n� datab�z�?<BR>
-
- <H2 align="center">Roz�i�ov�n� PostgreSQL</H2>
-
- <A href="#5.1">5.1</A>) Napsal jsem UDF funkci, PostgreSQL v�ak kon�� dump core?<BR>
- <A href="#5.2">5.2</A>) Jak mohu p�isp�t n�jak�mi �ikovn�mi datov�mi typy a funkcemi do
- PostgreSQL?<BR>
- <A href="#5.3">5.3</A>) Jak napsat funkci v C vracej�c� ntici?<BR>
- <A href="#5.4">5.4</A>) Modifikoval jsem zdrojov� soubory. Tato zm�na nebyla p�i rekompilaci
- vzata v potaz. Pro�?<BR>
-
- <HR>
-
- <H2 align="center">Obecn� ot�zky</H2>
-
- <H4><A name="1.1">1.1</A>) Co je PostgreSQL? Jak se vyslovuje?</H4>
-
- <P>PostgreSQL se vyslovuje <I>Post-Gres-Q-L</I>. Zvukov� z�znam je
- dostupn� na adrese <A href="http://www.postgresql.org/postgresql.mp3"></A>.</P>
-
- <P>PostgreSQL vych�z� z datab�ze POSTGRES (a st�le je n�kdy ozna�ov�n
- zjednodu�en� jako Postgres) - v�zkumn�ho prototypu <SMALL>DBMS</SMALL> 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 <SMALL>SQL</SMALL>. PostgreSQL lze pou��vat bez omezen� a jeho
- zdrojov� k�dy jsou voln� k dispozici.</P>
-
- <P>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 (<A href=
- (viz <A href="#1.6">1.6</A> - 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 <A href=
- "http://www.PostgreSQL.org/docs/faqs/FAQ_DEV.html">http://www.PostgreSQL.org/docs/faqs/FAQ_DEV.html</A></P>
-
- <P>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>
-
- <P>P�vodn� n�zev software z Berkley byl Postgres. Po p�id�n� jazyka <SMALL>SQL</SMALL> se
- n�zev zm�nil na Postgres95. Koncem roku 1996 byl RDBMS p�ejmenov�n na
- PostgreSQL.</P>
-
- <H4><A name="1.2">1.2</A>) Jak� je licence na PostgreSQL?</H4>
-
- <P>PostgreSQL je p�edm�tem n�sleduj�c�ch autorsk�ch pr�v:</P>
-
- <P>D�l�� Copyright (c) 1996-2007, PostgreSQL Global Development Group
- D�l�� Copyright (c) 1994-6, Regents of the University of California</P>
-
- <P>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�.</P>
-
- <P>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.</P>
-
- <P>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.</P>
-
- <P>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.</P>
-
- <H4><A name="1.3">1.3</A>) Na kter�ch Unixex lze spustit PostgreSQL?</H4>
-
- <P>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.</P>
-
- <H4><A name="1.4">1.4</A>) Kter� ne-unixov� platformy jsou podporovan�?</H4>
-
- <P><STRONG>Klient</STRONG></P>
-
- <P>Knihovna <I>libpq</I>, 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 <I>win32.mak</I> a
- Win32 knihovny <I>libpq</I> a <I>psql</I>. K datab�zi PostgerSQL lze p�istupovat skrze
- rozhran� <SMALL>ODBC</SMALL>.</P>
-
- <P><STRONG>Server</STRONG></P>
-
- <P>Server m��e b�t na WindowsNT a Win2k provozov�n pouze s knihovnou
- Cygwin, Cygnus Unix/NT porting library. V�ce <I>pgsql/doc/FAQ_MSWIN</I> v
- distribuci nebo MS Windows FAQ na adrese
- <A href="http://www.PostgreSQL.org/docs/faqs/text/FAQ_MSWIN">http://www.PostgreSQL.org/docs/faqs/text/FAQ_MSWIN</A>.</P>
-
- <P>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
- <A href="http://techdocs.postgresql.org/guides/Windows">http://techdocs.postgresql.org/guides/Windows</A> a
- <A href="http://momjian.postgresql.org/main/writings/pgsql/win32.html">
- http://momjian.postgresql.org/main/writings/pgsql/win32.html</A>.</P>
-
- <P>Existuj�c� port pro Novell Netware 6 naleznete na
- <A href="http://forge.novell.com">http://forge.novell.com</A>.</P>
-
- <H4><A name="1.5">1.5</A>) Kde mohu z�skat PostgreSQL?</H4>
-
- <P>Prim�rn�m anonymn�m ftp serverem pro PostgreSQL je
- <A href="ftp://ftp.PostgreSQL.org/pub">ftp://ftp.PostgreSQL.org/pub</A>.
- Seznam zrcadel naleznete na na�ich webov�ch str�nk�ch.</P>
-
- <H4><A name="1.6">1.6</A>) Kde mohu z�skat podporu?</H4>
-
- <P>Hlavn� mailov� konference je: <A href="mailto:[email protected]">
- [email protected]</A>. 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):</P>
-<PRE>
- subscribe
- end
-</PRE>
-<P>na adresu <A href="mailto:[email protected]">
-
- <P>M��ete si vy��dat denn� p�ehled (diggest), kter� m� zhruba 30K denn�
- zpr�v.</P>
-
- <P>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 <A href="mailto:[email protected]">
-
- <P>Do v�voj��sk� konference se p�ihl�s�te odesl�n�m dopisu s ji� zmi�ovan�m
- obsahem na mailto:[email protected].</P>
-
- <P>Seznam dal��ch konferenc� naleznete na str�nk�ch PostgreSQL:</P>
- <BLOCKQUOTE>
- <P><A href="http://www.postgresql.org">http://www.postgresql.org</A></P>
- </BLOCKQUOTE>
- <H4><A name="1.7">1.7</A>) Jak� je posledn� verze?</H4>
-
- <P>Posledn� verze PostgreSQL je 7.4.3. Pl�nujeme uvolnit v�znamnou verzi
- ka�d�ch �est a� osm m�s�c�.</P>
-
- <H4><A name="1.8">1.8</A>) Jak� je dostupn� dokumentace?</H4>
-
- <P>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 <I>/doc</I>. Manu�ly jsou
- p��stupn� online na <A href="http://www.PostgreSQL.org/docs">http://www.PostgreSQL.org/docs</A>.</P>
-
- <P>Na adres�ch <A href="http://www.PostgreSQL.org/docs/awbook.html">http://www.PostgreSQL.org/docs/awbook.html</A> a
- <A href="http://www.commandprompt.com/ppbook/">http://www.commandprompt.com/ppbook/</A>
- naleznezte dv� online knihy o PostgreSQL. Seznam dostupn� literatury je na
- <A href="http://techdocs.PostgreSQL.org/techdocs/bookreviews.php">
- http://techdocs.PostgreSQL.org/techdocs/bookreviews.php</A>. Soubor
- technick�ch �l�nk� s tematikou PostgresQL najdete na <A href=
- "http://techdocs.PostgreSQL.org/">http://techdocs.PostgreSQL.org/</A>.</P>
-
- <P><I>psql</I> m� u�ite�n� metap��kaz \d slou��c� k zobrazen� informac� o typech,
- oper�torech, funkc�, agrega�n�ch funkc� atd.</P>
-
- <P>V�ce dokumentace naleznete na na�ich webov�ch str�nk�ch.</P>
-
- <H4><A name="1.9">1.9</A>) Kde najdu seznam zn�m�ch chyb nebo nepodporovan�ch vlastnost�?</H4>
-
- <P>PostgreSQL podporuje roz���enou podmno�inu <SMALL>SQL-92</SMALL>. V na�em
- <A href="http://www.postgresql.org/docs/faqs.TODO.html">TODO</A>
- 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).</P>
-
- <H4><A name="1.10">1.10</A>) Jak se mohu nau�it SQL?</H4>
-
- <P>V knize The PostgreSQL book na <A href=
- "http://www.PostgreSQL.org/docs/awbook.html">
- http://www.PostgreSQL.org/docs/awbook.html</A> je vysv�tlen jazyk SQL (vy�la
- �esky). Dal�� dostupnou knihou je <A href=
- "http://www.commandprompt.com/ppbook">http://www.commandprompt.com/ppbook</A>.
- Kvalitn� n�vody naleznete na <A href=
- "http://www.intermedia.net/support/sql/sqltut.shtm">
- http://www.intermedia.net/support/sql/sqltut.shtm</A>, a na
- <A href="http://sqlcourse.com">http://sqlcourse.com</A>.</P>
-
- <P>Dal�� je Teach Yourself SQL in 21 days, Second Edition na <A href=
- "http://members.tripod.com/er4ebus/sql/index.htm">http://members.tripod.com/er4ebus/sql/index.htm</A>.</P>
-
- <P>Mnoho u�ivatel� doporu�uje <I>The Practical SQL Handbook</I>, Bowman, Judith
- S., et al., Addison-Wesley. Jin� preferuj� <I>The Complete Reference SQL</I>,
- Groff et al., McGraw-Hill.</P>
-
- <H4><A name="1.11">1.11</A>) Nem� PostgreSQL probl�my s rokem 2000?</H4>
-
- <P>Nem�, m��eme pracovat s datumy po roce 2000 na�eho letopo�tu i p�ed
- rokem 2000 p�.n.l.</P>
-
- <H4><A name="1.12">1.12</A>) Jak se p�ipojit k v�voj��sk�mu t�mu?</H4>
-
- <P>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� <I>pgsql-hackers</I> a <I>pgsql-patches</I>. Kvalitn� z�platy pos�lejte do
- pgsql-patches.</P>
-
- <P>Pr�vo commit m� v <SMALL>CVS</SMALL> 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.</P>
-
- <H4><A name="1.13">1.13</A>) Kam podat report o chyb�?</H4>
-
- <P>Nav�tivte na�i PostgreSQL BugTool str�nku na <A href=
- "http://www.PostgreSQL.org/bugs/bugs.php">http://www.PostgreSQL.org/bugs/bugs.php</A>,
- kter� obsahuje n�vod a sm�rnice jak podat chybov� report.</P>
-
- <P>Ov��te si na na�em ftp serveru <A href="ftp://ftp.PostgreSQL.org/pub">ftp://ftp.PostgreSQL.org/pub</A>,
- zda-li m�te nejnov�j�� verzi PostgreSQL a zda-li k n� neexistuj� n�jak� z�platy.</P>
-
- <H4><A name="1.14">1.14</A>) Jak je na tom PostgreSQL v porovn�n� s jin�mi datab�zemi?</H4>
-
- <P>Existuje n�kolik hledisek jak porovn�vat software: vlastnosti, v�kon,
- spolehlivost, podpora a cena.</P>
- <DL>
- <DT><B>Vlastnosti</B></DT>
- <DD>PostgreSQL m� hodn� spole�n�ch vlastnost� s velk�mi komer�n�mi
- <SMALL>DBMS</SMALL>, 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�.<BR><BR></DD>
-
- <DT><B>V�kon</B></DT>
- <DD>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 <I>vlastnosti</I>. 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 <A href="http://openacs.org/philosophy/why-not-mysql.html">http://openacs.org/philosophy/why-not-mysql.html</A>.
- Za v�vojem MySQL nen� Open Source komunita, ale komer�n� spole�nost,
- p�esto�e svoje produkty distribuuje jako Open Source.<BR><BR></DD>
-
- <DT><B>Spolehlivost</B></DT>
- <DD>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.<BR><BR></DD>
-
- <DT><B>Podpora</B></DT>
- <DD>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 <SMALL>DBMS</SMALL> 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 (<A href="#1.6">FAQ sekce 1.6</A>).<BR><BR></DD>
-
- <DT><B>Cena</B></DT>
- <DD>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).<BR>
- <BR></DD>
- </DL>
-
- <H4><A name="1.15">1.15</A>) Jak lze finan�n� pomoci PostgreSQL?</H4>
-
- <P>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.</P>
-
- <P>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.</P>
-
- <P>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 <A href=
- "http://store.pgsql.com/shopping/">http://store.pgsql.com/shopping/</A> a darujte je.</P>
-
- <P>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.</P>
- <HR>
-
- <P>Pokud m�te p��klad �sp�n�ho nasazen� PostgreSQL, p�ihla�t� se na n�
- advocacy site na <A href="http://advocacy.postgresql.org">http://advocacy.postgresql.org</A>.</P>
-
- <H2 align="center">User client dotazy</H2>
-
- <H4><A name="2.1">2.1</A>) Kde naleznu <SMALL>ODBC</SMALL> ovlada�e pro PostgreSQL?</H4>
-
- <P>Pro PostgreSQL existuj� dva <SMALL>ODBC</SMALL> ovlada�e - PsqlODBC a OpenLink ODBC.</P>
-
- <P>PsqlODBC je ke sta�en� na <A href=
- "http://gborg.postgresql.org/project/psqlodbc/projdisplay.php">
- http://gborg.postgresql.org/project/psqlodbc/projdisplay.php</A>.</P>
-
- <P>OpenLink m��ete z�skat na <A href="http://www.openlinksw.com">http://www.openlinksw.com</A>.
- Spolupracuje s jejich klientsk�m programov�m vybaven�m a je dostupn� pro v�echny jimi
- podporovan� platformy (Win, Mac, Unix, VMS).</P>
-
- <P>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 <A href=
-
- <H4><A name="2.2">2.2</A>) Jak� n�stroje lze pou��t pro PostgreSQL a web?</H4>
-
- <P>P�kn� �vod do datab�zov�ch technologi� zabezpe�uj�c�ch chod webov�ch
- str�nek najdete na <A href="http://www.webreview.com">http://www.webreview.com</A>.</P>
-
- <P>Pro tvorbu webu existuje excelentn� rozhran� PHP, kter� naleznete na
- <A href="http://www.php.net">http://www.php.net</A>.</P>
-
- <P>Pro slo�it�j�� p��pady se �asto pou��v� Perl a CGI.pm nebo mod_perl.</P>
-
- <H4><A name="2.3">2.3</A>) Existuje grafick� rozhran� pro PostgreSQL?</H4>
-
- <P>Pro PostgreSQL existuje n�kolik grafick�ch rozhran�: PgAccess
- (<A href="http://www.php.net">http://www.php.net</A>), PgAdmin III
- (<A href="http://www.php.net">http://www.php.net</A>), RHDB Admin
- (<A href="http://sources.redhat.com/rhdb/">http://sources.redhat.com/rhdb/</A>) a Rekall (
- <A href="http://www.thekompany.com/products/rekall/">http://www.thekompany.com/products/rekall/</A>).
- D�le je�t� PhpPgAdmin
- (<A href="http://phppgadmin.sourceforge.net/">http://phppgadmin.sourceforge.net/</A>) co� je rozhran� PostgreSQL
- zalo�en� na web technologii.</P>
-
- <P>�pln�j�� seznam najdete na <A href=
- "http://techdocs.postgresql.org/guides/GUITools">http://techdocs.postgresql.org/guides/GUITools</A>.</P>
-
- <H4><A name="2.4">2.4</A>) Kter� programovac� jazyky maj� podporu pro PostgreSQL?</H4>
-
- <P>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.</P>
-
- <P>Distribuce PostgreSQL obsahuje tato rozhran�:</P>
- <UL>
- <LI>C (libpq)</LI>
- <LI>Embbedded C (ecpg)</LI>
- <LI>Java (jdbc)</LI>
- <LI>Python (PyGreSQL)</LI>
- <LI>TCL (libpgtcl)</LI>
- </UL>
- <P>Dal�� rozhran� jsou dostupn� na <A href="http://gborg.postgresql.org">http://gborg.postgresql.org</A>
- v sekci <I>Drivers/Interfaces</I>.</P>
- <HR>
-
- <H2 align="center">Administrativn� dotazy</H2>
-
- <H4><A name="3.1">3.1</A>) Jak nainstalovat PostgreSQL jinam ne� do /usr/local/pgsql?</H4>
-
- <P>Pou�ijte volbu <I>--prefix</I> p�i spu�t�n� configure.</P>
-
- <H4><A name="3.2">3.2</A>) P�i startu postmaster, dostanu chybov� hl�en� Bad System Call
- nebo core dump. Pro�?</H4>
-
- <P>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�.</P>
-
- <H4><A name="3.3">3.3</A>) P�i startu postmastera dostanu hl�en� o chyb� IpcMemoryCreate. Pro�?</H4>
-
- <P>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.</P>
-
- <H4><A name="3.4">3.4</A>) P�i startu postmastera dostanu hl�en� o chyb� IpcSemaphoreCreate.
- Pro�?</H4>
-
- <P>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 <I>postmaster</I> s limitem backend�. Pou�ijte p�ep�na� <I>-N</I> s
- hodnotou men�� ne� 32. �pln�m �e�en�m je zv��en� hodnot <SMALL>SEMMNS</SMALL>
- a <SMALL>SEMMNI</SMALL> jadra.</P>
-
- <P>Nefunk�n� semafory mohou zp�sobit p�d b�hem intenzivn�ch datab�zov�ch
- operac�.</P>
-
- <P>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.</P>
-
- <H4><A name="3.5">3.5</A>) Jak povolit nebo zak�zat p��stup z jin�ch stanic?</H4>
-
- <P>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 <B>a</B> ur�en�m
- zp�sobu autentifikace v <I>$PGDATA/pg_hba.conf</I>.</P>
-
- <H4><A name="3.6">3.6</A>) Jak ladit datab�zov� stroj na lep�� v�kon?</H4>
-
- <P>Ur�it� pomohou indexy. P��kaz <SMALL>EXPLAIN ANALYZE</SMALL> V�m umo�n� sledovat
- jak PostgreSQL interpretuje V� dotaz a kter� indexy pou��v�.</P>
-
- <P>P�i v�t�� d�vce INSERT� uva�ujte o n�hrad� p��kazem <SMALL>COPY</SMALL>. Ten je mnohem
- rychlej�� ne�li samotn� <SMALL>INSERT</SMALL>. Ka�d� p��kaz mimo blok <SMALL>BEGIN WORK/COMMIT</SMALL>
- 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.</P>
-
- <P>M�te n�kolik dal��ch mo�nost�, jak zlep�it v�kon. M��ete zak�zat <I>fsyn()</I>
- p�i startu postmastera p�ep�na�i <I>-o -F</I>. Tyto p�ep�na�e zabr�n� <I>fsync()</I>,
- tj. z�pisu na disk po ka�d� transakci.</P>
-
- <P>M��ete zv��it velikost pam�ov�ch buffer� pou�it�ch backendy tj.
- parametr <I>-B</I> 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�.</P>
-
- <P>D�le m��ete pou��t p�ep�na� <I>-S</I> 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.</P>
-
- <P>M��ete pou��t p��kaz <SMALL>CLUSTER</SMALL>, kter� uspo��d� fyzicky data v tabulk�ch
- podle indexu. V�ce na manu�lov�ch str�nk�ch p��kazu <SMALL>CLUSTER</SMALL>.</P>
-
- <H4><A name="3.7">3.7</A>) Jak� jsou mo�nosti lad�n�?</H4>
-
- <P>M�te n�kolik mo�nost� jak se dostat k u�ite�n�m stavov�m informac�m.</P>
-
- <P>Zaprv�, p�i p�ekladu pou�ijte p�ep�na� <I>--enable-cassert</I>, t�m se zapne
- monitorov�n� a n�sledn� zastaven� aplikace, kdy� se proces v backendu
- dostane do neo�ek�van�ho stavu.</P>
-
- <P>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:</P>
-<PRE>
- cd /usr/local/pgsql
- ./bin/postmaster > server.log 2>&amp;1 &amp;
-</PRE>
- <P>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� <I>-d</I> 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.</P>
-
- <P>Pokud neb�� postmaster, m��ete spustit backend PostgreSQL z p��kazov�
- ��dky a napsat sv�j <SMALL>SQL</SMALL> dotaz p��mo v backendu (doporu�eno <B>pouze</B> 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.</P>
-
- <P>Pokud b�� <I>postmaster</I>, spus�e <I>psql</I> v jednom okn� a pak si zjist�te <SMALL>PID</SMALL>
- procesu postgres pou�it�ho psql. V debuggeru sep�ipojte k postgresql
- <SMALL>PID</SMALL>. Pak nastavte breakpointy v debuggeru a zadejte dotaz v psql. Pokud
- lad�te startup postgresu, pak nastavte PGOPTIONS="-W n" a spus�e <I>psql</I>.
- 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.</P>
-
- <P>Pro lad�n� a m��en� v�konu mohou b�t u�ite�n� p�ep�na�e <I>-s, -A</I> a <I>-t</I>
- programu postgres (backend).</P>
-
- <P>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 <I>pgsql/data/base/dbname</I>. Profil klienta pak v jeho aktu�ln�m
- adres��i. Korektn� profilace v prost�ed� Linux po�aduje konfiguraci
- syst�mu s parametrem <I>-DLINUX_PROFILE</I>.</P>
-
- <H4><A name="3.8">3.8</A>) Pro� dostanu "Sorry, too many clients", kdy� se zkou��m p�ipojit?</H4>
-
- <P>Zvy�te limit postmastera na maxim�ln� po�et sou�asn� spu�t�n�ch
- backend�.</P>
-
- <P>V�choz� hodnota je 32 backend�. Tuto hodnotu zv���te zastaven�m a
- op�tovn�m spu�t�n�m postmastera s parametrem <I>-N</I> nebo �pravou
- <I>postgresql.conf</I>.</P>
-
- <P>P�i zv��en� hodnoty <I>-N</I> nad 32 mus�te zv��it hodnotu <I>-B</I> nad v�choz� 64,
- <I>-B</I> 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
- <SMALL>SHMMAX</SMALL>, maxim�ln� po�et semaf�r� <SMALL>SEMMNS</SMALL> a <SMALL>SEMMNI</SMALL>, maxim�ln� po�et
- proces� <SMALL>NPROC</SMALL>, maxim�ln� po�et proces� u�ivatele <SMALL>MAXUPRC</SMALL> a maxim�ln�
- po�et otev�en�ch soubor� <SMALL>NFILE</SMALL> a <SMALL>NINODE</SMALL>. 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.</P>
-
- <H4><A name="3.9">3.9</A>) K �emu slou�� adres�� pgsql_tmp?</H4>
-
- <P>Tento adres�� obsahuje do�asn� soubory vytvo�en� exekutorem dotaz�.
- Nap��klad, kdy� je nutn� t��d�n� k zaji�t�n� <SMALL>ORDER BY</SMALL> a t��d�n� m� v�t��
- n�roky na prostor ne� povoluje parametr <I>-S</I> backendu, pak je vytvo�en
- do�asn� soubor k ulo�en� extra �daj�.</P>
-
- <P>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���.</P>
-
- <H4><A name="3.10">3.10</A>) Pro� je po�adov�no dump a obnoven� (load) datab�ze b�hem
- upgrade mezi velk�mi verzemi PostgreSQL?</H4>
-
- <P>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.</P>
-
- <HR>
-
- <H2 align="center">Provozn� dotazy</H2>
-
- <H4><A name="4.1">4.1</A>) ��m se li�� bin�rn� a norm�ln� kurzor?</H4>
-
- <P>Popis najdete v manu�lov� str�nce <SMALL>DECLARE</SMALL></P>
-
- <H4><A name="4.2">4.2</A>) Jak z�skat pouze prvn� ��dek dotazu? N�hodn� ��dek?</H4>
-
- <P>Pod�vejte se do man. str�nky p��kazu <SMALL>FETCH</SMALL>, nebo pou�ijte <SMALL>SELECT</SMALL> ...
- <SMALL>LIMIT</SMALL> ...</P>
-
- <P>I kdy� pot�ebujete z�skat pouze prvn�ch n�kolik ��dk�, je t�eba
- zpracovat v�echna data, nap�. pokud dotaz m� <SMALL>ORDER BY</SMALL>. Pokud v�ak
- existuje index, kter� odpov�d� <SMALL>ORDER BY</SMALL>, PostgreSQL m��e z�skat
- pouze prvn�ch n ��dk� a ukon�it zpracov�n� dotazu.</P>
-
- <P>K z�sk�n� n�hodn�ho ��dku pou�ijte:</P>
-<PRE>
- SELECT col
- FROM tab
- ORDER BY random()
- LIMIT 1;
-</PRE>
- <H4><A name="4.3">4.3</A>) Jak z�sk�m seznam tabulek nebo jinak jak jej z�sk� psql?</H4>
-
- <P>P��kaz \dt v psql zobraz� seznam tabulek. �pln� seznam p��kaz� <I>psql</I>
- dostanete p��kazem \?. Tak� se m��ete pod�vat do zdrojov�ch k�d� <I>psql</I>
- do souboru <I>pgsql/src/bin/psql/describe.c</I>. Ten obsahuje <SMALL>SQL</SMALL> p��kazy,
- kter� se pou��vaj� v psql metap��kazech. D�le m��ete spustit <I>psql</I>
- s p�ep�na�em <I>-E</I>, 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.</P>
-
- <H4><A name="4.4">4.4</A>) Jak odstran�m sloupec tabulky, jak zm�n�m jeho typ?</H4>
-
- <P>Po��naje verz� 7.3 m��ete pou��t p��kaz <SMALL>ALTER TABLE DROP COLUMN</SMALL>. Ve
- star��ch verz�ch m��ete pou��t n�sleduj�c� postup:</P>
-<PRE>
- 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;
-</PRE>
- <P>Pro zm�nu typu sloupce je t�eba prov�st:</P>
-<PRE>
- 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;
-</PRE>
- Pot� prove�te <I>VACUUM FULL tab</I> - uvoln�te t�m diskov� prostor zabran�
- nyn� ji� neplatn�mi ��dky.
-
- <H4><A name="4.5">4.5</A>) Jak� je maxim�ln� velikost ��dku, tabulky a datab�ze?</H4>
-
- <P>PostgreSQL m� tato omezen�:</P>
-<PRE>
- 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
-</PRE>
- <P>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.</P>
-
- <P>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�.</P>
-
- <P>Maxim�ln� velikost tabulky a maxim�ln� po�et sloupc� m��eme
- ze�ty�n�sobit nastaven�m velikosti bloku na 32K.</P>
-
- <H4><A name="4.6">4.6</A>) Kolik diskov�ho prostoru je pot�eba k ulo�en� dat z </H4>
- norm�ln�ho textov�ho souboru?
-
- <P>PostgreSQL vy�aduje a� p�tin�sobek diskov�ho prostoru k ulo�en� dat z
- textov�ho souboru.</P>
-
- <P>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.</P>
-<PRE>
- 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
+<html>
+<head>
+<title>PostgreSQL FAQ</title>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<meta http-equiv="Content-language" content="cs">
+<meta name="description" lang="en" content="Czech translation of FAQ for PostgreSQL">
+<meta name="description" lang="cs" content="Český překlad FAQ PostgreSQL">
+</head>
+<body bgcolor="#ffffff" text="#000000" link="#ff0000" vlink="#a00000" alink="#0000ff">
+<h1>Frequently Asked Questions</h1>
+<p><i>Často kladené dotazy (FAQ) PostgreSQL</i>
+</p>
+<p>Poslední aktualizace: 29. října 2007 (aktualizováno pro PostgreSQL 8.3)
+</p>
+<p>Současný správce: Bruce Momjian ([email protected])
+</p>
+<p>Přeložil: Pavel Stěhule ([email protected])
+</p>
+<p>Nejaktuálnější verzi tohoto dokumentu naleznete na adrese
+<a href="http://www.postgresql.org/files/documentation/faqs/FAQ.html" title="http://www.postgresql.org/files/documentation/faqs/FAQ.html">http://www.postgresql.org/files/documentation/faqs/FAQ.html</a>
+</p>
+<p>Odpovědi na otázky vázané na konkrétní platformy naleznete na
+adrese <a href="http://www.postgresql.org/docs/faq/" title="http://www.postgresql.org/docs/faq/">http://www.postgresql.org/docs/faq/</a>.
+</p>
+<hr>
+<h2 align="center">Obecné otázky</h2>
+<a href="#item1.1">1.1</a>) Co je to PostgreSQL? Jaká je správná výslovnost slova PostgreSQL?<br>
+<a href="#item1.2">1.2</a>) Kdo řídí vývoj PostgreSQL?<br>
+<a href="#item1.3">1.3</a>) Pod jakou licencí je PostgreSQL?<br>
+<a href="#item1.4">1.4</a>) Na kterých platformách lze provozovat PostgreSQL?<br>
+<a href="#item1.5">1.5</a>) Kde mohu získat PostgreSQL?<br>
+<a href="#item1.6">1.6</a>) Jaká je poslední verze?<br>
+<a href="#item1.7">1.7</a>) Kde mohu získat podporu?<br>
+<a href="#item1.8">1.8</a>) Jak a kam hlásit chyby?<br>
+<a href="#item1.9">1.9</a>) Kde najdu informace o známých chybách nebo nepodporovaných vlastnostech?<br>
+<a href="#item1.10">1.10</a>) Jaká je dostupná dokumentace?<br>
+<a href="#item1.11">1.11</a>) Jak se mohu naučit SQL?<br>
+<a href="#item1.12">1.12</a>) Jak se mohu připojit k týmu vývojářů?<br>
+<a href="#item1.13">1.13</a>) Jak je na tom PostgreSQL v porovnání s jinými databázemi?<br>
+<a href="#item1.14">1.14</a>) Je PostgreSQL připraven na aktuální zavádění letního času v některých zemích?<br>
+<h2 align="center">Dotazy na klientská rozhraní</h2>
+<a href="#item2.1">2.1</a>) Která rozhraní jsou použitelná pro PostgreSQL?<br>
+<a href="#item2.2">2.2</a>) Jaké nástroje lze použít pro PostgreSQL a web?<br>
+<a href="#item2.3">2.3</a>) Existuje grafické rozhraní pro PostgreSQL?<br>
+<h2 align="center">Administrativní dotazy</h2>
+<a href="#item3.1">3.1</a>) Jak nainstalovat PostgreSQL jinam než do /usr/local/pgsql?<br>
+<a href="#item3.2">3.2</a>) Jak nastavit pravidla pro přístup z jiných stanic?<br>
+<a href="#item3.3">3.3</a>) Jak vyladit databázi na vyšší výkon?<br>
+<a href="#item3.4">3.4</a>) Jaké mám ladící prostředky?<br>
+<a href="#item3.5">3.5</a>) Co znamená "Sorry, too many clients", když se zkouším připojit?<br>
+<a href="#item3.6">3.6</a>) Proč je nutný dump a obnovení (load) databáze při upgradu PostgreSQL?<br>
+<a href="#item3.7">3.7</a>) Jaký hardware bych měl používat?<br>
+<h2 align="center">Provozní dotazy</h2>
+<a href="#item4.1">4.1</a>) Jak získat pouze první řádek dotazu? Náhodný řádek?<br>
+<a href="#item4.2">4.2</a>) Jak získám seznam tabulek, indexů, databází, a definovaných uživatelů. Mohu vidět dotazy, které používá psql pro zobrazení těchto informací?<br>
+<a href="#item4.3">4.3</a>) Jak změnit datový typ sloupce?<br>
+<a href="#item4.4">4.4</a>) Jaká je maximální velikost řádku, tabulky a databáze?<br>
+<a href="#item4.5">4.5</a>) Kolik diskového prostoru je potřeba k uložení dat z normálního textového souboru?<br>
+<a href="#item4.6">4.6</a>) Můj dotaz je pomalý a nepoužívá vytvořené indexy. Proč?<br>
+<a href="#item4.7">4.7</a>) Jak zjistím, jak se vyhodnocuje můj dotaz?<br>
+<a href="#item4.8">4.8</a>) Jak použít case-(in)sensitive regulární výraz? Jak použít index pro case insensitive hledání?<br>
+<a href="#item4.9">4.9</a>) Jak v dotazu detekovat, že položka je NULL? Jak bezpečně spojit dva řetězce, pokud mohou obsahovat NULL? Lze třídit podle toho, jestli je položka NULL nebo ne?<br>
+<a href="#item4.10">4.10</a>) Jaké jsou rozdíly mezi různými znakovými typy?<br>
+<a href="#item4.11.1">4.11.1</a>) Jak vytvořit serial/auto-increment položku?<br>
+<a href="#item4.11.2">4.11.2</a>) Jak získat hodnotu SERIAL po vložení řádku?<br>
+<a href="#item4.11.3">4.11.3</a>) Nezpůsobí currval() a nextval() problémy ve více uživatelském prostředí?<br>
+<a href="#item4.11.4">4.11.4</a>) Proč není vygenerované číslo použito při přerušení transakce?Proč vznikají díry v číslování prostřednictvím sekvence nebo typu SERIAL?<br>
+<a href="#item4.12">4.12</a>) Co to je OID? Co je to CTID?<br>
+<a href="#item4.13">4.13</a>) Co znamená chybové hlášení "ERROR: Memory exhausted in AllocSetAlloc()"?<br>
+<a href="#item4.14">4.14</a>) Jak zjistím, kterou verzi PostgreSQL používám?<br>
+<a href="#item4.15">4.15</a>) Jak vytvořit sloupec, který bude implicitně obsahovat aktuální čas?<br>
+<a href="#item4.16">4.16</a>) Jak provést vnější spojení (outer join)?<br>
+<a href="#item4.17">4.17</a>) Jak provést dotaz napříč několika databázemi?<br>
+<a href="#item4.18">4.18</a>) Může funkce vrátit více řádků nebo sloupců?<br>
+<a href="#item4.19">4.19</a>) Co je příčinou chyby "relation with OID xxxxx does not exist"?<br>
+<a href="#item4.20">4.20</a>) Jaké jsou možnosti replikace databází?<br>
+<a href="#item4.21">4.21</a>) Proč v dotazu nejsou rozpoznány názvy mých tabulek nebo funkcí? Proč jsou velká písmena v názvech automaticky převedena na malá písmena?<br>
+<hr>
+<h2 align="center">Obecné otázky</h2>
+<h3><a name="item1.1">1.1</a>) Co je to PostgreSQL? Jaká je správná výslovnost slova PostgreSQL?</h3>
+<p>Výslovnost PostgreSQL je <i>Post-Gres-Q-L</i>
+, nebo zjednodušeně <i>Postgres</i>
+. V řadě jazyků je slovo PostgreSQL obtížně vyslovitelný, proto se v hovoru často používá zjednodušená forma názvu. Pro ty, kteří by si rádi poslechli výslovnost, je k dispozici audiozáznam v <a href="http://www.postgresql.org/files/postgresql.mp3" title="http://www.postgresql.org/files/postgresql.mp3">MP3 formátu</a>.
+</p>
+<p>PostgreSQL je relační databáze s některými objektovými rysy, která má možnosti tradičních
+komerčních databázových systémů s několika rozšířeními, které lze najít v DBMS
+systémech příští generace. Používání PostgreSQL není omezené a veškeré zdrojové kódy jsou
+volně dostupné.
+</p>
+<p>Za vývojem PostgreSQL je mezinárodní skupina nezávislých vývojářů navzájem komunikujících
+prostřednictvím internetu. Tento projekt není řízen žádnou obchodní organizací. Pokud se chcete
+přidat k projektu, přečtěte si vývojářské FAQ na adrese <a href="http://www.postgresql.org/files/documentation/faqs/FAQ_DEV.html" title="http://www.postgresql.org/files/documentation/faqs/FAQ_DEV.html">http://www.postgresql.org/files/documentation/faqs/FAQ_DEV.html</a> .
+</p>
+<h3><a name="item1.2">1.2</a>) Kdo řídí vývoj PostgreSQL?</h3>
+<p>Pokud budete hledat organizaci řídící vývoj PostgreSQL, budete zklamáni. Nic takového
+neexistuje. Existují pouze "core" a CVS skupiny uživatelů, ale ty existují více z administrátorských
+důvodů než z organizačních. Projekt je směrován komunitou vývojářů a uživatelů, ke které se
+kdokoliv může připojit. Jediné co potřebuje, je přihlásit se do elektronické konference. Více ve
+<a href="http://www.postgresql.org/docs/faqs.FAQ_DEV.html" title="http://www.postgresql.org/docs/faqs.FAQ_DEV.html">vývojářském FAQ</a>.
+</p>
+<h3><a name="item1.3">1.3</a>) Pod jakou licencí je PostgreSQL?</h3>
+<p>PostgreSQL je předmětem následujících autorských práv:
+</p>
+<p>Dílčí Copyright (c) 1996-2005, PostgreSQL Global Development Group<br>
+Dílčí Copyright (c) 1994-6, Regents of the University of California
+</p>
+<p>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ů.
+</p>
+<p>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.
+</p>
+<p>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.
+</p>
+<p>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.
+</p>
+<h3><a name="item1.4">1.4</a>) Na kterých platformách lze provozovat PostgreSQL?</h3>
+<p>Stručně řečeno, PostgreSQL běží na všech moderních unixových systémech. Seznam těch, u kterých proběhlo testování, naleznete v instalačních instrukcích.
+</p>
+<p>PostreSQL také běží nativně na všech Microsof Windows systémech odvozených z Microsoft Windows NT jako jsou Windows 2000SP4, WindowsXP a Windows2003. Instalační balíček naleznete na adrese <a href="http://pgfoundry.org/projects/pginstaller" title="http://pgfoundry.org/projects/pginstaller">http://pgfoundry.org/projects/pginstaller</a>. Na starších systémech s ještě MS-DOS jádrem lze spustit PostgreSQL s emulačním programem Cygwin.
+</p>
+<p>Dále existuje port pro Novell Netware 6 port na adrese <a href="http://forge.novell.com" title="http://forge.novell.com">http://forge.novell.com</a>, a pro OS/2 verze (eComStation) na adrese <a href="http://hobbes.nmsu.edu/cgi-bin/h-search?sh=1&button=Search&key=postgreSQL&stype=all&sort=type&dir=%2F" title="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</a> .
+</p>
+<h3><a name="item1.5">1.5</a>) Kde mohu získat PostgreSQL?</h3>
+<p>Pomocí webového klienta z adresy <a href="http://www.postgresql.org/ftp/" title="http://www.postgresql.org/ftp/">http://www.postgresql.org/ftp/</a> nebo klienta ftp z adresy <a href="ftp://ftp.postgresql.org/pub/" title="ftp://ftp.postgresql.org/pub/">ftp://ftp.postgresql.org/pub/</a>.
+</p>
+<h3><a name="item1.6">1.6</a>) Jaká je poslední verze?</h3>
+<p>Nejnovější verzí PostgreSQL je verze 8.2.5
+</p>
+<p>V plánu je uvolňovat každoročně jednu velkou verzi a každých několik měsíců malé verze.
+</p>
+<h3><a name="item1.7">1.7</a>) Kde mohu získat podporu?</h3>
+<p>Nejčastější forma podpory uživatelům PostgreSQL komunitou je prostřednictvím e-mailů. Na našem webovém serveru naleznete <a href="http://www.postgresql.org/community/lists/" title="http://www.postgresql.org/community/lists/">odkaz</a> na stránky,kde se můžete přihlásit do elektronické konference. Pro začátek jsou doporučené konference general nebo bugs.
+</p>
+<p>Další cestou je IRC kanál #postgresql na Freenode (irc.freenode.net). K připojení použijte Unixový příkaz irc -x '#postgresql' "$USER" irc.freenode.net nebo jakékoholiv jiného IRC klienta. V této síti existuje ještě španělská (#postgresql-es) a francouzská (#postgresqlfr) verze. Další PostgreSQL kanál naleznete na EFNet.
+</p>
+<p>Seznam společností poskytující komerční podporu naleznete na adrese <a href="http://techdocs.postgresql.org/companies.php" title="http://techdocs.postgresql.org/companies.php">http://techdocs.postgresql.org/companies.php</a>.
+</p>
+<h3><a name="item1.8">1.8</a>) Jak a kam hlásit chyby?</h3>
+<p>Vyplňte formulář na adrese <a href="http://www.postgresql.org/support/submitbug" title="http://www.postgresql.org/support/submitbug">http://www.postgresql.org/support/submitbug</a>. Na našem ftp serveru <a href="ftp://ftp.postgresql.org/pub/" title="ftp://ftp.postgresql.org/pub/">ftp://ftp.postgresql.org/pub/</a> si ověřte, že používáte aktuální verzi PostreSQL.
+</p>
+<p>Chyby reportované prostřednictvím chybového formuláře nebo zasláním mailu do PostgreSQL konference obvykle generuje následující odezvu:
+</p>
+<ul><li> Nejedná se o chybu, a proč
+</li>
+<li> Jedná se o známou chybu, která je již v seznamu úkolů <a href="http://www.postgresql.org/docs/faqs.TODO.html" title="http://www.postgresql.org/docs/faqs.TODO.html">TODO</a>
+</li>
+<li> Tato chyba byla opravena v aktuální verzi
+</li>
+<li> Tato chyba byla již opravena ve verzi, která zatím nebyla oficiálně uvolněna
+</li>
+<li> Požadavek na další doplňující informace:
+<ul><li> Operační systém
+</li>
+<li> Verze PostgreSQL
+</li>
+<li> Test reprodukující chybu
+</li>
+<li> Ladící informace
+</li>
+<li> Backtrace výstup debuggeru
+</li>
+</ul>
+</li>
+<li> Jedná se o zatím nezjištěnou chybu, pak můžete čekat
+<ul><li> Záplatu odstraňující chybu, která bude vložena do další velké nebo malé verze
+</li>
+<li> Informaci, že se jedná o chybu, kterou nelze okamžitě řešit a je proto přidána do <a href="http://www.postgresql.org/docs/faqs.TODO.html" title="http://www.postgresql.org/docs/faqs.TODO.html">TODO</a>
+</li>
+</ul>
+</li>
+</ul>
+<h3><a name="item1.9">1.9</a>) Kde najdu informace o známých chybách nebo nepodporovaných vlastnostech?</h3>
+<p>PostgreSQL podporuje rozšířenou podmnožinu SQL:2003. V našem <a href="http://www.postgresql.org/docs/faqs.TODO.html" title="http://www.postgresql.org/docs/faqs.TODO.html">TODO</a> naleznete seznam známých chyb, chybějících vlastností, a plány do budoucna.
+</p>
+<p>Odezva na požadavek na novou vlastnost PostgreSQL je obvykle:
+</p>
+<ul><li> Požadavek je již v <a href="http://www.postgresql.org/docs/faqs.TODO.html" title="http://www.postgresql.org/docs/faqs.TODO.html">TODO</a>
+</li>
+<li> Požadovaná funkce není chtěná protože
+<ul><li> Duplikuje již existující funkci, která respektuje SQL standard
+</li>
+<li> Implementací funkce by se příliš zkomplikoval kód bez relevantního přínosu
+</li>
+<li> Funkce by mohla být nebezpečná nebo nespolehlivá
+</li>
+</ul>
+</li>
+<li> Požadavek je přidán do <a href="http://www.postgresql.org/docs/faqs.TODO.html" title="http://www.postgresql.org/docs/faqs.TODO.html">TODO</a>
+</li>
+</ul>
+<p>PostgreSQL nepožívá systém pro sledování chyb, protože jsme zjistili, že je efektivnější přímo reagovat na maily a udržovat aktuální <a href="http://www.postgresql.org/docs/faqs.TODO.html" title="http://www.postgresql.org/docs/faqs.TODO.html">TODO</a>. V praxi je snaha o co nejrychlejší řešení chyb, a chyby, které by se mohly projevit u mnoha uživatelů jsou opravovány velice rychle. Jediné místo, kde lze dohledat všechny změny, rozšíření a opravy v PostgreSQL je CVS log. Poznámky k verzi "Release notes" nezachycují všechny změny, k němž došlo.
+</p>
+<h3><a name="item1.10">1.10</a>) Jaká je dostupná dokumentace?</h3>
+<p>PostgreSQL obsahuje vynikající dokumentaci zahrnující manuál, manuálové stránky a testovací příklady. Podívejte se do adresáře /doc. Manuál je přístupný online na <a href="http://www.postgresql.org/docs" title="http://www.postgresql.org/docs">http://www.postgresql.org/docs</a>.
+</p>
+<p>K dispozici jsou zdarma dvě online knihy na adresách <a href="http://www.postgresql.org/docs/books/awbook.html" title="http://www.postgresql.org/docs/books/awbook.html">http://www.postgresql.org/docs/books/awbook.html</a> a <a href="http://www.commandprompt.com/ppbook/" title="http://www.commandprompt.com/ppbook/">http://www.commandprompt.com/ppbook/</a>. Další literaturu lze zakoupit. Nejpopulárnější je od Kerryho Douglase. Seznam dostupné literatury je na <a href="http://techdocs.postgresql.org/techdocs/bookreviews.php" title="http://techdocs.postgresql.org/techdocs/bookreviews.php">http://techdocs.postgresql.org/techdocs/bookreviews.php</a>. Ještě je kolekce technicky orientovaných článků tematicky spojených s PostgreSQL na adrese <a href="http://techdocs.postgresql.org/" title="http://techdocs.postgresql.org/">http://techdocs.postgresql.org/</a>.
+</p>
+<p>Řádkový klient psql má \d příkazy pro zobrazení informací o typech, operátorech, funkcích, agregačních funkcí, atd. Použijte \? pro zobrazení dostupných příkazů.
+</p>
+<p>Další dokumentaci najdete na našem webu.
+</p>
+<h3><a name="item1.11">1.11</a>) Jak se mohu naučit SQL?</h3>
+<p>Podívejte se do výše uvedené dokumentace. Další online knihou je "Teach Yourself SQL in 21 Days, Second Edition" na adrese <a href="http://members.tripod.com/er4ebus/sql/index.htm" title="http://members.tripod.com/er4ebus/sql/index.htm">http://members.tripod.com/er4ebus/sql/index.htm</a>. Mnoho našich uživatelů doporučuje knihu The Practical SQL Handbook, Bowman, Judith S., et al., Addison-Wesley. Další The Complete Reference SQL, Groff et al., McGraw-Hill.
+</p>
+<p>Další online tutoriály jsou dostupné na adresách:
+</p>
+<ul><li> <a href="http://www.intermedia.net/support/sql/sqltut.shtm" title="http://www.intermedia.net/support/sql/sqltut.shtm">http://www.intermedia.net/support/sql/sqltut.shtm</a>
+</li>
+<li> <a href="http://sqlcourse.com" title="http://sqlcourse.com">http://sqlcourse.com</a>
+</li>
+<li> <a href="http://www.w3schools.com/sql/default.asp" title="http://www.w3schools.com/sql/default.asp">http://www.w3schools.com/sql/default.asp</a>
+</li>
+<li> <a href="http://mysite.verizon.net/Graeme_Birchall/id1.html" title="http://mysite.verizon.net/Graeme_Birchall/id1.html">http://mysite.verizon.net/Graeme_Birchall/id1.html</a>
+</li>
+</ul>
+<h3><a name="item1.12">1.12</a>) Jak se mohu připojit k týmu vývojářů?</h3>
+<p>Prostudujte si <a href="http://www.postgresql.org/docs/faqs.FAQ_DEV.html" title="http://www.postgresql.org/docs/faqs.FAQ_DEV.html">Developer's FAQ</a>.
+</p>
+<h3><a name="item1.13">1.13</a>) Jak je na tom PostgreSQL v porovnání s jinými databázemi?</h3>
+<p>Software můžeme porovnávat z několika různých pohledů: vlastnosti, výkon, spolehlivost, podpora a cena.
+</p>
+<script></script>
+<h4> Vlastnosti </h4>
+<p>PostgreSQL nabízí většinu funkcí funkcionality velkých komerčních DBMS systémů jako jsou: transakce, vnořené dotazy, spouště, referenční integrita a sofistikovaný systém zamykání. Poskytujeme určité funkce, které ostatní systémy běžně nepodporují. Např. uživatelem definované typy, dědičnost, pravidla (rules), a MVCC architekturu.
+</p>
+<h4> Výkon </h4>
+<p>Výkon PostgreSQL je srovnatelný s ostatními komerčními nebo Open Source databázemi. V některých případech je rychlejší, jindy pomalejší. Náš výkon je obvykle +/-10% vůči ostatním databázím.
+</p>
+<h4> Spolehlivost </h4>
+<p>Uvědomujeme si, že databáze musí být stoprocentně spolehlivá, jinak je nepoužitelná. Snažíme se, aby každá verze byla dobře otestována a obsahovala minimum chyb. Každá verze je minimálně několik měsíců v beta testovacím režimu. Do produkčního režimu se dostane, až když nedochází k dalším změnám nebo opravám. Věříme, že jsem více než srovnatelní s ostatními databázemi v této oblasti.
+</p>
+<h4> Podpora </h4>
+<p>Na našich internetových konferencích se setkává velká skupina vývojářů a uživatelů při řešení vyskytujících se problémů.
+Naše internetové konference umožňují kontakt velké skupiny vývojářů a uživatelů. Nemůžeme garantovat opravu chyby, ale komerční DBMSs také vždy negarantují řešení problémů. Věříme ale, že díky přímému kontaktu na vývojáře, naši uživatelskou komunitu, manuálům, a dostupným zdrojovým kódům máme lepší podporu než ostatní DBMSs. Pro ty, kteří preferují komerční "per-incident" podporu, existuje společností, kteří ji nabízejí (FAQ sekce 1.7.)
+</p>
+<h4> Cena </h4>
+<p>PostgreSQL lze používat bezplatně (a to i pro komerční použití). Také můžete neomezeně používat náš kód ve svých produktech s výjimkami specifikovanými v naší licenci (přebíráme BSD licenci).
+</p>
+<h3><a name="item1.14">1.14</a>) Je PostgreSQL připraven na aktuální zavádění letního času v některých zemích?</h3>
+<p>Počínaje verzí 8.0.[4+] podporuje PostgreSQL letní čas také pro USA. Podpora letního času (daylight saving time) pro Kanadu a Západní Austrálii je obsažena ve verzích 8.0.[10+] a 8.1.[6+] a všech následujících verzích. Starší verze používaly systémovou databázi časových zón obsahující, kromě jiného, informaci o tom, zda se pro danou časovou zónu rozlišuje mezi letním a zimním časem.
+</p>
+<hr>
+<h2 align="center">Dotazy na klientská rozhraní</h2>
+<h3><a name="item2.1">2.1</a>) Která rozhraní jsou použitelná pro PostgreSQL?</h3>
+<p>PostgreSQL se distribuuje pouze s rozhraním pro jazyk C a embedded C. Všechna další rozhraní představují nezávislé projekty, které je třeba stáhnout z internetu samostatně. Osamostatnění těchto projektů umožňuje nezávislost vývojových týmů a možnost vydávat nové verze bez ohledu na vydání nové verze PostgreSQL.
+</p>
+<p>Některé programovací jazyky jako je např. PHP obsahují rozhraní pro PostgreSQL. Rozhraní pro jazyky jako je Perl, Tcl, Python a mnoho dalších jsou dostupné na adrese: <a href="http://gborg.postgresql.org" title="http://gborg.postgresql.org">http://gborg.postgresql.org</a> v sekci Drivers/Interfaces.
+</p>
+<h3><a name="item2.2">2.2</a>) Jaké nástroje lze použít pro PostgreSQL a web?</h3>
+<p>Dobrým úvodem do problematiky databází v prostředí webových stránek může být web <a href="http://www.webreview.com" title="http://www.webreview.com">http://www.webreview.com</a>.
+</p>
+<p>PHP (<a href="http://www.php.net" title="http://www.php.net">http://www.php.net</a>) je vynikajícím rozhraním pro tvorbu webů.
+</p>
+<p>Pro složitější úlohy se často používá Perl a jeho BDB:Pg rozhraní s podporou CGI - CGI.pm nebo mod_perl(u).
+</p>
+<h3><a name="item2.3">2.3</a>) Existuje grafické rozhraní pro PostgreSQL?</h3>
+<p>K dispozici je řada grafických nástrojů podporujících PostgreSQL a to od komerčních nebo open source vývojářů. Podrobný seznam naleznete na adrese
+<a href="http://www.postgresql.org/docs/techdocs.54" title="http://www.postgresql.org/docs/techdocs.54">http://www.postgresql.org/docs/techdocs.54</a>.
+</p>
+<hr>
+<h2 align="center">Administrativní dotazy</h2>
+<h3><a name="item3.1">3.1</a>) Jak nainstalovat PostgreSQL jinam než do /usr/local/pgsql?</h3>
+<p>Při spouštění configure nastavte parametr --prefix
+</p>
+<h3><a name="item3.2">3.2</a>) Jak nastavit pravidla pro přístup z jiných stanic?</h3>
+<p>Ve výchozí konfiguraci, PostgreSQL umožňuje pouze připojení z lokálního uživatele prostřednictvím Unix domain sockets nebo TCP/IP spojení. Bez modifikace listen_addresses v souboru postgresql.conf, a povolení adresy v souboru $PGDATA/pg_hba.conf se nelze připojit k PostgreSQL z ostatních stanic. Změna výše zmíněných parametrů vyžaduje restart databázového serveru.
+</p>
+<h3><a name="item3.3">3.3</a>) Jak vyladit databázi na vyšší výkon?</h3>
+<p>Výkon systému můžete ovlivnit ve třech oblastech:
+</p>
+<h4> Změny dotazu </h4>
+<ul><li> Použitím indexů včetně částečných a funkcionálních
+</li>
+<li> Použitím COPY místo opakovaných INSERTů
+</li>
+<li> Sloučením mnoha SQL příkazů do jedné transakce snížením režie na commit
+</li>
+<li> Používáním CLUSTERU, pokud načítáte větší počet řádek podle indexu
+</li>
+<li> Použitím klauzule LIMIT v poddotazech
+</li>
+<li> Použitím předpřipravených dotazů
+</li>
+<li> Používáním ANALYZE. Tento příkaz aktualizuje statistiky, které se používají při optimalizaci dotazu
+</li>
+<li> Pravidelné použití VACUUM nebo používání pg_autovacuum
+</li>
+<li> Odstraněním indexů před rozsáhlými změnami v datech
+</li>
+</ul>
+<h4> Konfigurace serveru </h4>
+<p>Určité parametry v souboru postgresql.conf mají vliv na výkon serveru. Detaily naleznete v příručce Administrátora v Server Run-time Environment/Run-time Configuration. Další komentáře naleznete v <a href="http://www.varlena.com/varlena/GeneralBits/Tidbits/annotated_conf_e.html" title="http://www.varlena.com/varlena/GeneralBits/Tidbits/annotated_conf_e.html">http://www.varlena.com/varlena/GeneralBits/Tidbits/annotated_conf_e.html</a> a <a href="http://www.varlena.com/varlena/GeneralBits/Tidbits/perf.html" title="http://www.varlena.com/varlena/GeneralBits/Tidbits/perf.html">http://www.varlena.com/varlena/GeneralBits/Tidbits/perf.html</a>.
+</p>
+<h4> Výběr hardware </h4>
+<p>Vliv hardware na výkon serveru je popsán v dokumentech <a href="http://candle.pha.pa.us/main/writings/pgsql/hw_performance/index.html" title="http://candle.pha.pa.us/main/writings/pgsql/hw_performance/index.html">http://candle.pha.pa.us/main/writings/pgsql/hw_performance/index.html</a> a <a href="http://www.powerpostgresql.com/PerfList/" title="http://www.powerpostgresql.com/PerfList/">http://www.powerpostgresql.com/PerfList/</a>.
+</p>
+<h3><a name="item3.4">3.4</a>) Jaké mám ladící prostředky?</h3>
+<p>Nastavením log_* proměnných v konfiguraci serveru si vynutíte logování dotazů a procesních statistik, které Vám mohou pomoci při ladění a optimalizaci výkonu.
+</p>
+<h3><a name="item3.5">3.5</a>) Co znamená "Sorry, too many clients", když se zkouším připojit?</h3>
+<p>Překročil jste výchozí limit, který je 100 současně připojených uživatelů. V konfiguraci serveru v postgresql.conf tuto hodnotu můžete zvětšit změnou hodnoty max_connection. Nezapomeňte restartovat server.
+</p>
+<h3><a name="item3.6">3.6</a>) Proč je nutný dump a obnovení (load) databáze při upgradu PostgreSQL?</h3>
+<p>Způsob číslování je popsán v dokumentaci na <a href="http://www.postgresql.org/support/versioning" title="http://www.postgresql.org/support/versioning">http://www.postgresql.org/support/versioning</a>. Instrukce k provedení migrace na vyšší verzi jsou taktéž v dokumentaci na adrese <a href="http://www.postgresql.org/docs/current/static/install-upgrading.html" title="http://www.postgresql.org/docs/current/static/install-upgrading.html">http://www.postgresql.org/docs/current/static/install-upgrading.html</a>.
+</p>
+<h3><a name="item3.7">3.7</a>) Jaký hardware bych měl používat?</h3>
+<p>Jelikož PC jsou většinou kompatibilní, lidé mají tendence věřit, že všechna PC jsou stejně kvalitní. Což není pravda. Paměti ECC, SCSI a kvalitní základní desky jsou mnohem spolehlivější a výkonnější než lacinější hardware. PostgreSQL poběží na většině hardwaru, nicméně pokud je pro Vás spolehlivost a výkon systému důležitá, je dobré věnovat čas nalezení vhodné hardwarové konfigurace. Na našich elektronických konferencích můžete diskutovat o vhodných konfiguracích a značkách.
+</p>
+<hr>
+<h2 align="center">Provozní dotazy</h2>
+<h3><a name="item4.1">4.1</a>) Jak získat pouze první řádek dotazu? Náhodný řádek?</h3>
+<p>Pokud potřebujete pouze několik řádků a pokud víte kolik, použijte
+SELECT LIMIT. Pokud bude možné použít index shodující se s ORDER BY,
+je možné, že se nebude provádět celý dotaz. Pokud neznáte počet záznamů,
+použijte kurzor a příkaz FETCH.
+</p>
+<p>Pro výběr náhodného řádku použijte příkaz ve tvaru:
+</p>
+<pre>
+SELECT col
+FROM tab
+ORDER BY random()
+LIMIT 1;
+</pre>
+<h3><a name="item4.2">4.2</a>) Jak získám seznam tabulek, indexů, databází, a definovaných uživatelů. Mohu vidět dotazy, které používá psql pro zobrazení těchto informací?</h3>
+<p>V psql příkazem \dt získáte seznam tabulek. Úplný seznam příkazů psql získáte příkazem \?. Alternativně si můžete prostudovat zdrojový kód psql - soubor pgsql/src/bin/psql/describe.c, který obsahuje SQL příkazy, které jsou generovány pro získání výstupu psql "backslash" příkazů. Také můžete nastartovat psql s parametrem -E, který způsobí zobrazení všech SQL příkazů, které se odesílají na server. PostgreSQL také podporuje SQL standard INFORMAČNÍ SCHÉMATA (standardní systémové tabulky). Klasickým dotazem do systémových tabulek získáte požadované informace o struktuře databáze.
+</p>
+<p>Systémové tabulky PostgreSQL (mimo rámec SQL standardů) používají prefix pg_. Pro zjištění struktury databáze je můžete použít také, i když preferovány jsou dotazy do informačního schématu.
+</p>
+<p>Seznam všech databází získáte příkazem psql -l
+</p>
+<p>Další inspiraci najdete v souboru pgsql/src/tutorial/syscat.source. Obsahuje ilustrační SELECTy potřebné k získání informací z systémových tabulek databáze.
+</p>
+<h3><a name="item4.3">4.3</a>) Jak změnit datový typ sloupce?</h3>
+<p>Ve verzích 8.0 a pozdějších jednoduše:
+</p>
+<pre>
+ALTER TABLE ALTER COLUMN TYPE
+</pre><p>V starších verzích:
+</p>
+<pre>
+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;
+</pre><p>Po změně spusťte příkaz VACUUM FULL, aby došlo k uvolnění diskového prostoru použitého v tu chvíli již neplatnými záznamy.
+</p>
+<h3><a name="item4.4">4.4</a>) Jaká je maximální velikost řádku, tabulky a databáze?</h3>
+<p>PostgreSQL má tato omezení:
+</p>
+<table border="0">
+<tr><td> Maximální velikost databáze: </td><td> neomezena (existují 32TB db)
+</td></tr>
+<tr><td> Maximální velikost tabulky: </td><td> 32 TB
+</td></tr>
+<tr><td> Maximální velikost řádky: </td><td> 480GB
+</td></tr>
+<tr><td> Maximální velikost položky </td><td> 1 GB
+</td></tr>
+<tr><td> Maximální počet řádků v tabulce: </td><td> neomezeno
+</td></tr>
+<tr><td> Maximální počet sloupců v tabulce: </td><td> 250-1600 podle typů
+</td></tr>
+<tr><td> Maximální počet indexů na tabulce: </td><td> neomezeno
+</td></tr>
+</table>
+<p>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.
+</p>
+<p>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é.
+</p>
+<p>Maximální velikost tabulky a maximální počet sloupců můžeme
+zečtyřnásobit nastavením velikosti bloku na 32K.
+</p>
+<p>Indexy jsou povolené pouze na sloupcích jejichž délka je menší než 2000 znaků. Pokud tuto délku překročíme a index potřebujeme pro zajištění jednoznačnosti, je vhodnější použít funkcionální index nad MD5 funkcí nebo fulltextový index.
+</p>
+<h3><a name="item4.5">4.5</a>) Kolik diskového prostoru je potřeba k uložení dat z normálního textového souboru?</h3>
+<p>PostgreSQL vyžaduje až pětinásobek diskového prostoru k uložení dat z
+textového souboru.
+</p>
+<p>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ěrně dvacet bytů
+dlouhý. Textový soubor bude 2.8 MB dlouhý. Velikost databáze
+obsahující odpovídající data bude zhruba 5.2 MB.
+</p>
+<pre>
+ 24 bytů: hlavička řádku (přibližně)
+ 24 bytů: jedna celočíselná položka a jedna textová
+ + 4 byty: ukazatel na stránku k entici
------------------------------------------------------
- 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)
-</PRE>
- <P>Indexy nemaj� tak velkou re�ii, ale mohou b�t tak� velk�, proto�e
- obsahuj� indexovan� data.</P>
-
- <P>Hodnoty <SMALL>NULL</SMALL> jsou ulo�eny v bitmap�ch, tak�e spot�ebuj� jen velmi m�lo
- diskov�ho prostoru.</P>
-
- <H4><A name="4.7">4.7</A>) Jak z�sk�m seznam vytvo�en�ch tabulek, index�, datab�z�?</H4>
-
- <P><I>psql</I> 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 <I>pg_</I>. Spu�t�n� <I>psql</I> s parametrem <I>-l</I> provede v�pis n�zv�
- v�ech datab�z�.</P>
-
- <P>Soubor <I>pgsql/src/tutorial/syscat.source</I> obsahuje <SMALL>SELECT</SMALL>y p�istupuj�c� k
- syst�mov�m tabulk�mm.</P>
-
- <H4><A name="4.8">4.8</A>) M�j dotaz je pomal� a nepou��v� vytvo�en� indexy. Pro�?</H4>
-
- <P>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�.</P>
-
- <P>PostgreSQL rozhoduje o pou�it� index� na z�klad� statistiky p��stup� k
- tabulce. Tyto statistiky se shroma��uj� p��kazy <SMALL>VACUUM ANALYZE</SMALL> nebo
- <SMALL>ANALYZE</SMALL>. 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.</P>
-
- <P>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.</P>
-
- <P>Jinak je tomu v p��pad� pou�it� <SMALL>LIMIT</SMALL> a <SMALL>ORDER BY</SMALL>, 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:</P>
-<PRE>
- SELECT col
- FROM tab
- ORDER BY col [ DESC ]
- LIMIT 1;
-</PRE>
- <P>Pokud si mysl�te, �e optimizer myln� zvolil sekven�n� prohled�v�n�
- tabulky, pou�ijte p��kaz <CODE>SET enable_seqscan TO 'off'</CODE> a zkuste zda je
- indexn� prohled�v�n� rychlej��.</P>
-
- <P>P�i vyhled�v�n� na z�klad� vzoru jako je nap�. oper�tor <SMALL>LIKE</SMALL> nebo <I>~</I> se
- indexy pou��j� pouze za ur�it�ch skute�nost�:</P>
- <UL>
- <LI>za��tek hledan�ho vzoru mus� b�t ukotven k za��tku, tj.
- <UL>
- <LI>vzor <SMALL>LIKE</SMALL> nesm� za��nat <I>%</I></LI>
- <LI><I>~</I> regul�rn� v�raz mus� za��nat <I>^</I></LI>
- </UL></LI>
- <LI>vzor nesm� za��nat intervalem, nap�. [a-e]</LI>
- <LI>vyhled�van�, kter� nen� Case sensitiv jako je <SMALL>ILIKE</SMALL> nebo <I>~*</I>
- nepou��v� indexy. M��ete ale pou��t funkcion�ln� indexy, kter� jsou
- pos�ny v sekci <A href="#4.12">4.12</A></LI>
- <LI>p�i inicializaci datab�ze (<I>initdb</I>) 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�).</LI>
- </UL>
- <H4><A name="4.9">4.9</A>) Jak zjist�m, jak optimizer dotazu vyhodnocuje m�j dotaz?</H4>
-
- Pod�vejte se do manu�lov� str�nky p��kazu <SMALL>EXPLAIN</SMALL>.
-
- <H4><A name="4.10">4.10</A>) Co to je R-tree index?</H4>
-
- <P>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 <I>point</I>, pak syst�m m��e efektivn� odpov�d�t na dotaz -
- vyber v�echny body uvnit� obd�ln�k�.</P>
-
- <P>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</P>
-
- <P>Tyto materi�ly naleznete v Stonebraker's "Readings in Database Systems".</P>
-
- <P>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.</P>
-
- <H4><A name="4.11">4.11</A>) Co je Genetic Query Optimizer?</H4>
-
- <P><SMALL>GEQO</SMALL> 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.</P>
-
- <H4><A name="4.12">4.12</A>) Jak prov�st vyhled�v�n� regul�rn�ho v�razu case sensitiv,
- insensitiv? Jak pou��t index pro case insensitive vyhled�v�n�?</H4>
-
- <P>Oper�tor <I>~</I> slou�� k porov�n� s regul�rn�m v�razem, jeho modifikace <I>*~</I>
- p�edstavuje case insensitive vyhled�v�n�. Jedn� se o obdobu <SMALL>LIKE</SMALL> a
- <SMALL>ILIKE</SMALL>.</P>
-
- <P>Pro vyhled�v�n� bez ohledu na velk� mal� p�smena pou�ijeme:</P>
-<PRE>
- SELECT *
- FROM tab
- WHERE lower(col) = 'abc';
-</PRE>
- V tomto p��pad� se nepou�ije standardn� index. Nicm�n�, pou�ije se
- funkcion�ln� index, pokud jej vytvo��te:
-<PRE>
- CREATE INDEX tabindex ON tab (lower(col));
-</PRE>
- <H4><A name="4.13">4.13</A>) Jak v dotazu detekovat, �e polo�ka je NULL?</H4>
-
- <P>Ur��te pomoc� <SMALL>IS NULL</SMALL> nebo <SMALL>IS NOT NULL</SMALL></P>
-
- <H4><A name="4.14">4.14</A>) Jak� jsou rozd�ly mezi r�zn�mi znakov�mi typy?</H4>
-<PRE>
-Typ Intern� n�zev Pozn�mka
---------------------------------------------------------------------------
-VARCHAR(n) varchar omezeno maxim�ln� d�lkou, bez dopln�n� mezerami
-CHAR(n) bpchar �et�zec je dopln�n mezerami do dan� d�lky
-TEXT text bez horn�ho limitu na d�lku
-BYTEA bytea pole byt� (bezpe�n� lze ulo�it i znak NULL)
-"char" char jeden znak
-</PRE>
- <P>S intern�mi n�zvy se setk�te v syst�mov�m katalogu a v n�kter�ch
- chybov�ch hl�en�ch.</P>
-
- <P>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 <SMALL>TOAST</SMALL>em, tak�e prostor na disku m��e
- b�t ni��� ne� je o�ek�v�no.</P>
-
- <P><SMALL>VARCHAR(n)</SMALL> je vhodn� pro ukl�d�n� text� promm�n� d�lky s pevn�
- stanovenou maxim�ln� d�lkou. <SMALL>TEXT</SMALL> je pro �et�zce bez omezen� d�lky s
- maximem jeden gigabajt.</P>
-
- <P><SMALL>CHAR(n)</SMALL> slou�� k ukl�d�n� �et�zc� stejn� d�lky. <SMALL>CHAR(n)</SMALL> dopln� pr�zdn�
- znaky do specifikovan� d�lky, zat�mco VARCHAR(n) ulo�� pouze p�edan�
- znaky. <SMALL>BYTEA</SMALL> je ur�eno pro ukl�d�n� bin�rn�ch dat, v�etn� <SMALL>NULL</SMALL> byte.
- V�echny zde popsan� typy maj� podobn� v�konnostn� charakteristiky.</P>
-
- <H4><A name="4.15.1">4.15.1</A>) Jak vytvo�it serial/auto-increment pole?</H4>
-
- <P>PostgreSQL podporuje typ <SMALL>SERIAL</SMALL>. P�i jeho pou�it� se automaticky vytvo��
- SEQUENCE. Nap��klad:</P>
-<PRE>
- CREATE TABLE person (
- id SERIAL,
- name TEXT
- );
-</PRE>
- je automaticky p�evedeno do
-<PRE>
- 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);
-</PRE>
- Viz dokumentace <I>create_sequence</I> v manu�lov�ch str�nk�ch. D�le m��ete
- pou��t unik�tn� hodnotu <I>OID</I> ka�d�ho ��dku. Potom ale mus�te spou�t�t
- <I>pg_dump</I> s p�ep�na�em <I>-o</I>, tak aby z�staly zachov�ny hodnoty <SMALL>OID</SMALL> (u
- p��kazu copy <SMALL>COPY WITH OIDS</SMALL>).
-
- <H4><A name="4.15.2">4.15.2</A>) Jak z�skat hodnotu <SMALL>SERIAL</SMALL> po vlo�en� ��dku?</H4>
-
- <P>Jednou z mo�nost� je z�skat budouc� hodnotu <SMALL>SERIAL</SMALL> funkc� <I>nextval()</I> p�ed
- samotn�m vlo�en�m a pak ji vlo�it explicitn�. Nap��klad v jak�msi
- pseudojazyku:</P>
-<PRE>
- newid = execute("SELECT nextval('person_id_seq')");
- execute("INSERT INTO person (id, name) VALUES (new_id, 'Blaise Pascal')");
-</PRE>
- <P>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
- <I>tabulka_sloupec_seq</I>.</P>
-
- <P>Alternativn� m��ete z�skat hodnotu posledn� generovou sekvenc� funkc�
- <I>currval()</I> po vlo�en�:</P>
-<PRE>
- execute("INSERT INTO person (name) VALUES ('Blaise Pascal')");
- new_id = execute("SELECT currval('person_id_seq')");
-</PRE>
- <P>Kone�n� m��ete pou��t <SMALL>OID</SMALL> hodnotu vr�cenou p��kazem <SMALL>INSERT</SMALL>, 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 <I>$sth->{pg_oid_status}</I>
- po ka�d�m <I>$sth->execute()</I>.</P>
-
- <H4><A name="4.15.3">4.15.3</A>) Nepovede <I>currval()</I> a <I>nextval()</I> k rozhozen�
- podm�nek p�i soub�hu s jin�mi u�ivateli?</H4>
-
- <P>Nikoliv, <I>currval()</I> vrac� hodnotu naposledy generovanou ve va�em
- backendu, a ta tud�� nen� spole�n� v�em u�ivatel�m.</P>
-
- <H4><A name="4.15.4">4.15.4</A>) Pro� nen� vygenerovan� ��slo pou�ito p�i p�eru�en� transakce?
- Pro� vznikaj� d�ry v ��slov�n� vlastn� sekvenc�/SERIAL sloupce?</H4>
-
- <P>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�.</P>
-
- <H4><A name="4.16">4.16</A>) Co to je <SMALL>OID</SMALL>? Co je to <SMALL>TID</SMALL>?</H4>
-
- <P>Ka�d� ��dek vytvo�en� v PostgreSQL z�sk� jedine�n� <SMALL>OID</SMALL>. V�echna <SMALL>OID</SMALL>
- generovan� b�hem inicializace datab�ze jsou men�� ne� 16384
- (include/access/transam.h). V�echna <SMALL>OID</SMALL> generovan� na po�adavek
- u�ivatele jsou rovna nebo vy��� t�to hodnot�. Norm�ln�, v�echna <SMALL>OID</SMALL> jsou
- jedine�n� nejen uvnit� tabulky nebo datab�ze, ale v r�mci cel� instalace
- PostgreSQL</P>
-
- <P>PostgreSQL pou��v� <SMALL>OID</SMALL> ve sv�m intern�m syst�mu tabulek k vytvo�en�
- relac�. Tato <SMALL>OID</SMALL> mohou b�t pou�ita k identifikaci konkr�tn�ho u�ivatele
- a pou�ita v spojen�. Pro <SMALL>OID</SMALL> hodnoty je doporu�en typ <SMALL>OID</SMALL>. Nad t�mto
- sloupcem m��ete vytvo�it index pro urychlen� p��stupu.</P>
-
- <P><SMALL>OID</SMALL> 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 <SMALL>OID</SMALL>, nebo chcete zkop�rovat tabulku s
- p�vodn�mi <SMALL>OID</SMALL>, lze pou��t:</P>
-<PRE>
- 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';
-</PRE>
- <P><SMALL>OID</SMALL> 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.</P>
-
- <P><SMALL>TID</SMALL> 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).</P>
-
- <H4><A name="4.17">4.17</A>) Jak� je v�znam n�kter�ch v�raz� pou�it�ch v PostgreSQL?</H4>
-
- <P>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:</P>
- <UL>
- <LI> tabulka, relace, t��da (table, relation, class)</LI>
- <LI> ��dek, z�znam, ntice (row, record, tuple)</LI>
- <LI> sloupec, polo�ka, atribut (column, field, attribute)</LI>
- <LI> vyhled�n�, v�b�r (retrieve, select)</LI>
- <LI> n�hrada, �prava (replace, update)</LI>
- <LI> p�id�n�, vkl�d�n� (append, insert)</LI>
- <LI> OID, serial value (OID, serial value)</LI>
- <LI> portal, kurzor (portal, cursor)</LI>
- <LI> range variable, jm�no tabulky, alias tabulky (range
- variable, table name, table alias)</LI>
- </UL>
-
- <P>seznam t�chto v�raz� m��ete nal�zt na
- <A href="http://hea-www.harvard.edu/MST/simul/software/docs/pkgs/pgsql/glossary/glossary.html">http://hea-www.harvard.edu/MST/simul/software/docs/pkgs/pgsql/glossary/glossary.html</A>.</P>
-
- <H4><A name="4.18">4.18</A>) Pro� jsem z�skal chybov� hl�en� "ERROR: Memory exhausted in AllocSetAlloc()"?</H4>
-
- <P>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</P>
-<PRE>
- ulimit -d 262144
- limit datasize 256m
-</PRE>
- <P>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.</P>
-
- <H4><A name="4.19">4.19</A>) Jak se dozv�m, kterou verzi PostgreSQL pou��v�m?</H4>
-
- <P>V psql spus�te <CODE>SELECT version();</CODE></P>
-
- <H4><A name="4.20">4.20</A>) Pro� operace s velk�mi objekty kon�� "invalid large obj descriptor"?</H4>
-
- <P>V�echny operace s velk�mi objekty - <CODE>lo_open</CODE>, <CODE>lo_close</CODE>, ... mus�te
- spou�t�t v transakci, tj. mezi p��kazy <CODE>BEGIN WORK</CODE> a <CODE>COMMIT</CODE>.</P>
-
- <P>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�.</P>
-
- Pokud pou��v�te interface podobn� <SMALL>ODBC</SMALL> mus�te nastavit <CODE>set
- auto_commit off</CODE>.
-
- <H4><A name="4.21">4.21</A>) Jak vytvo�it sloupec obsahuj�c� implicitn� aktu�ln� datum?</H4>
-
- <P>Pou�ijte <I>CURRENT_TIMESTAMP</I>:</P>
-<PRE>
-<CODE>
-CREATE TABLE test (x int, modtime timestamp DEFAULT CURRENT_TIMESTAMP );
-</CODE>
-</PRE>
- <H4><A name="4.22">4.22</A>) Pro� jsou moje vno�en� dotazy pou��vaj�c� IN tak pomal�?</H4>
-
- <P>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� <SMALL>IN</SMALL> bylo rychl�. Pro ostatn� p��pady je vhodn�
- nahradit <SMALL>IN</SMALL> <SMALL>EXISTS</SMALL>:</P>
-<PRE>
- SELECT *
- FROM tab
- WHERE col IN (SELECT subcol FROM subtab);
-</PRE>
-<p>na:</p>
-<PRE>
- SELECT *
+ 52 bytů na řádek
+</pre><p>Velikost datové stránky PostgreSQL je 8192 bytů (8KB)
+</p>
+<pre>
+ 8192 bytů na stránce
+---------------------- = 158 řádek na stránku
+ 52 bytů za řádek
+
+100000 řádek
+----------------------- = 633 stránek (zaokrouhleno nahoru)
+ 158 řádek na stránce
+
+633 datových stránek * 8192 bytů na každou stránku = 5,185,536 bytů (5.2 MB)
+</pre><p>Indexy nemají tak velkou režii, ale mohou být také velké, protože
+obsahují indexovaná data.
+</p>
+<p>Hodnoty NULL jsou uloženy v bitmapách, takže zabírají jen velmi málo
+diskového prostoru.
+</p>
+<h3><a name="item4.6">4.6</a>) Můj dotaz je pomalý a nepoužívá vytvořené indexy. Proč?</h3>
+<p>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í.
+</p>
+<p>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.
+</p>
+<p>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ž použití indexu na velké tabulce.
+</p>
+<p>Jinak je tomu v případě použití LIMIT a ORDER BY, při kterém se
+většinou index použije, jelikož je výsledkem pouze malá část tabulky.
+</p>
+<p>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
+prohledávání s indexem rychlejší.
+</p>
+<p>Při vyhledávání na základě vzoru jako je např. operátor LIKE nebo ~ se
+indexy použijí pouze za určitých skutečností:
+</p>
+<ul><li> začátek hledaného vzoru musí být ukotven k začátku, tj.
+<ul><li> vzor LIKE nesmí začínat %
+</li>
+<li> ~ regulární výraz musí začínat ^
+</li>
+</ul>
+</li>
+<li> vzor nesmí začínat intervalem, např. [a-e]
+</li>
+<li> vyhledávaní, které není Case sensitiv jako je ILIKE nebo ~* nepoužívá indexy. Můžete ale použít funkcionální indexy, které jsou popsány v sekci 4.8
+</li>
+<li> při inicializaci databáze (initdb) musí být použito C locale nebo vytvořte speciální text_pattern_index, který umožní, při respektování zmíněných podmínek použití indexu operací LIKE. Pro vyhledávání celých slov je možné a výhodné použít fulltext.
+</li>
+</ul>
+<h3><a name="item4.7">4.7</a>) Jak zjistím, jak se vyhodnocuje můj dotaz?</h3>
+<p>Podívejte se do nápovědy k příkazu EXPLAIN.
+</p>
+<h3><a name="item4.8">4.8</a>) Jak použít case-(in)sensitive regulární výraz? Jak použít index pro case insensitive hledání?</h3>
+<p>Vyhledávání prostřednictvím regulárních vzorů zajišťuje operátor ~, který je case-sensitive. Jeho case-insensitive varianta je operátor ~*. Case-insensitive variací operátoru LIKE je operátor ILIKE.
+</p>
+<p>Case-insensitive vyhledání se řeší:
+</p>
+<pre>
+SELECT *
+FROM tab
+WHERE lower(col) = 'abc';
+</pre><p>Tento dotaz nepoužije standardní index. Musíte použít tzv. funkcionální index:
+</p>
+<pre>
+CREATE INDEX tabindex ON tab (lower(col));
+</pre><p>Pokud index vytvoříme jako unikátní, tak můžeme ukládat řetězce obsahující malá i velká písmena, ale nikoliv řetězce, které se od sebe odlišují jen v malých a velkých písmenech. K zajištění zápisu řetězce obsahující pouze malá nebo pouze velká písmena použijte CHECK kontroly nebo triggery.
+</p>
+<h3><a name="item4.9">4.9</a>) Jak v dotazu detekovat, že položka je NULL? Jak bezpečně spojit dva řetězce, pokud mohou obsahovat NULL? Lze třídit podle toho, jestli je položka NULL nebo ne?</h3>
+<p>Pokud chcete testovat hodnotu NULL použijte operátor IS:
+</p>
+<pre>
+ SELECT *
FROM tab
- WHERE EXISTS (SELECT subcol FROM subtab WHERE subcol = col);
-</PRE>
- <P>Pro urychlen� vytvo�ete index pro subcol. </P>
-
- <P>Ve verzi 7.4 a pozd�j��ch, <SMALL>IN</SMALL> pou��v� stejn� sofistikovanou techniku
- spojov�n� tabulek jako ostatn� dotazy a je preferovan� p�ed <SMALL>EXISTS</SMALL>.</P>
-
- <H4><A name="4.23">4.23</A>) Jak prov�st vn�j�� spojen� (outer join)?</H4>
-
- <P>PostgreSQL podporuje vn�j�� spojen� tabulek standardn�mi SQL p��kazy.
- Zde jsou dva p��klady:</P>
-<PRE>
- SELECT *
- FROM t1 LEFT OUTER JOIN t2 ON (t1.col = t2.col);
-</PRE>
- nebo
-<PRE>
- SELECT *
- FROM t1 LEFT OUTER JOIN USING (col);
-</PRE>
- <P>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� (<SMALL>RIGHT JOIN</SMALL>) p�id�
- nep�ipojen� ��dky z t2. <SMALL>FULL JOIN</SMALL> vr�t� v�echny ��dky, v�etn�
- nep�ipojen�ch z tbulek t1 a t2. Kl��ov� slovo <SMALL>OUTER</SMALL> je nepovinn� a v�e
- se na <SMALL>LEFT</SMALL>, <SMALL>RIGHT</SMALL> a <SMALL>FULL</SMALL> join. B�n�
- spojen� se naz�v� <SMALL>INNER JOIN</SMALL>.</P>
-
- <P>V d��v�j��ch verz�ch se vn�j�� spojen� tabulek mohlo simulovat pomoc�
- <SMALL>UNION</SMALL> a <SMALL>NOT IN</SMALL>. Nap��klad pro spojen� tabulek tab1 a tab2, je
- n�sleduj�c� dotaz ekvivalentn� k vn�j��mu spojen� dvou tabulek:</P>
-<PRE>
- 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;
-</PRE>
-
- <H4><A name="4.24">4.24</A>) Jak prov�st dotaz z v�ce datab�z�?</H4>
-
- <P>PostgreSQL nepodporuje dotazy do jin� ne� aktu�ln� datab�ze.</P>
-
- <P><I>contrib/dblink</I> 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�.</P>
-
- <H4><A name="4.25">4.25</A>) M��e funkce vr�tit v�ce ��dk� nebo sloupc�?</H4>
-
- <P>V PostgreSQL 7.3 m��ete jednodu�e vracet v�ce ��dk� nebo sloupc� z
- funkce, viz:
- <A href="http://techdocs.postgresql.org/guides/SetReturningFunctions">http://techdocs.postgresql.org/guides/SetReturningFunctions</A>.</P>
-
- <H4><A name="4.26">4.26</A>) Pro� nelze spolehliv� vytv��et a ru�it do�asn� tabulky v PL/pgSQL funkc�ch?</H4>
-
- <P>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� <SMALL>EXECUTE</SMALL>, tj.
- dynamick� prov�d�n� dotazu. Tento p��kaz zajist� opakovan� p�eklad
- dotazu p�i ka�d�m vol�n� funkce.</P>
-
- <H4><A name="4.27">4.27</A>) Jak� jsou mo�nosti replikace datab�z�?</H4>
-
- <P>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 <A href="http://gborg.PostgreSQL.org/genpage?replication_research">http://gborg.PostgreSQL.org/genpage?replication_research</A> najdete
- jejich seznam. Na �e�en� multi-master replikaci se pracuje na
- <A href="http://gborg.PostgreSQL.org/project/pgreplication/projdisplay.php">http://gborg.PostgreSQL.org/project/pgreplication/projdisplay.php</A>.</P>
-
- <H4><A name="4.28">4.28</A>) Jak� jsou mo�nosti �ifrov�n� datab�z�?</H4>
- <UL>
- <LI><I>contrib/pgcrypto</I> obsahuje �ifrovac� funkce pou�iteln� v SQL
- dotazech.</LI>
- <LI>K �ifrov�n� p�enosu dat z klienta na server, mus� b�t server
- p�elo�en s podporou <I>ssl</I> a p�ep�na� <I>ssl</I> v <I>postgresql.conf</I> mus� b�t
- nastaven na hodnotu true. Klient mus� m�t vytvo�en z�znam hostssl v
- <I>pg_hba.conf</I> a tak� m�t povolen re�im <I>ssl</I>. Lze pou��t i jin�
- prost�edky, nejen nativn� podporu ssl v PostgreSQL, nap�. stunel a
- ssh.</LI>
- <LI>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
- <I>PASSWORD_ENCRYPTION</I> v <I>postgresql.conf</I></LI>
- <LI> Server m��e b�et na �ifrovan�m souborov�m syst�mu.</LI>
- </UL>
- <HR>
-
- <H2 align="center">Roz�i�ov�n� PostgreSQL</H2>
-
- <H4><A name="5.1">5.1</A>) Napsal jsem UDF funkci, PostgreSQL v�ak kon�� dump core?</H4>
-
- <P>Probl�m m��e b�t zp�soben mnoha okolnostmi. Vyzkou�ejte si svoji funkci
- nejd��ve v n�jak� jednoduch� aplikaci.</P>
-
- <H4><A name="5.2">5.2</A>) Jak mohu p�isp�t n�jak�mi �ikovn�mi datov�mi typy a funkcemi do PostgreSQL?</H4>
-
- <P>Po�lete sv� roz���en� do konference pgsql-hackers, a ono pak mo�n�
- skon�� v podadres��i contrib.</P>
-
- <H4><A name="5.3">5.3</A>) Jak napsat funkci v C vracej�c� ntici?</H4>
-
- <P>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 <I>contrib/tablefunc</I>.</P>
-
- <H4><A name="5.4">5.4</A>) Modifikoval jsem zdrojov� soubory. Tato zm�na nebyla p�i rekompilaci vzata v potaz. Pro�?</H4>
-
- <P><I>Makefile</I> nem� informace o z�vislostech mezi hlavi�kov�mi soubory. Mus�te
- prov�st <I>make clean</I> a pak <I>make</I>. Pokud pou��v�te <SMALL>gcc</SMALL>, m��ete pou��t
- p�ep�na� <I>--enable-depend</I> p��kazu <I>configure</I> k automatick�mu �e�en�
- z�vislost� p�eklada�em.</P>
- </BODY>
-</HTML>
+ WHERE col IS NULL;
+</pre><p>K spojení řetězců, které mohou obsahovat hodnotu NULL, používejte funkci COALESCE(), např.:
+</p>
+<pre>
+ SELECT COALESCE(col1, '') || COALESCE(col2, '')
+ FROM tab
+</pre><p>Pokud chcete třídit podle hodnoty NULL, použijte výraz IS NULL nebo IS NOT NULL v klauzuli ORDER. Hodnota pravda má přednost před hodnotou false a tedy pokud použijete:
+</p>
+<pre>
+ SELECT *
+ FROM tab
+ ORDER BY (col IS NOT NULL)
+</pre><p>tak záznamy s NULL budou na začátku setříděných dat.
+</p>
+<h3><a name="item4.10">4.10</a>) Jaké jsou rozdíly mezi různými znakovými typy?</h3>
+<table border="0">
+<tr><td>Typ </td><td> Interní název </td><td> Poznámky
+</td></tr>
+<tr><td> VARCHAR(n)</td><td> varchar</td><td> n určuje maximální délku
+</td></tr>
+<tr><td> CHAR(n)</td><td> bpchar </td><td> řetězec je do dané délky rozšířen mezerami
+</td></tr>
+<tr><td> TEXT</td><td> text</td><td> bez omezení délky
+</td></tr>
+<tr><td> BYTEA</td><td> bytea</td><td> pole bytů nespecifikované délky
+</td></tr>
+<tr><td> "char"</td><td> char</td><td> jeden znak
+</td></tr>
+</table>
+<p>Na interní názvy můžete narazit v systémovém katalogu nebo v některých chybových hlášeních.
+</p>
+<p>Čtyři první typy jsou tzv. varlena typy (první čtyři byty na disku jsou obsahují délku, ostatní obsahují vlastní data). Skutečně obsazený prostor je tedy o něco málo větší než deklarovaná velikost. Na druhou stranu, delší řetězce jsou komprimovány, takže obsazený prostor na disku může být menší než se čeká.
+</p>
+<p>VARCHAR(n) je vhodný pro ukládání různě dlouhých řetězců u kterých známe délkové omezení, TEXT pro řetězce bez omezení délky (maximum je jeden gigabyte).
+</p>
+<p>CHAR(n) se používá pro uložení stejně dlouhých řetězců. CHAR(n) doplní mezerami na specifikovanou délku, VARCHAR(n) hodnoty se ukládají tak jak jsou. BYTEA je pro ukládání binárních dat - non ASCII hodnot. Všechny zmíněné typy mají podobné výkonové charakteristiky.
+</p>
+<h3><a name="item4.11.1">4.11.1</a>) Jak vytvořit serial/auto-increment položku?</h3>
+<p>V PostgreSQL můžete použít datový typ SERIAL. Jeho použitím se automaticky vytvoří sekvence.
+Například:
+</p>
+<pre>
+CREATE TABLE person (
+ id SERIAL,
+ name TEXT
+);
+</pre><p>je automaticky transformováno na:
+</p>
+<pre>
+CREATE SEQUENCE person_id_seq;
+CREATE TABLE person (
+ id INT4 NOT NULL DEFAULT nextval('person_id_seq'),
+ name TEXT
+);
+</pre><p>Podrobnější informace najdete v manuálu v popisu příkazu create_sequence.
+</p>
+<h3><a name="item4.11.2">4.11.2</a>) Jak získat hodnotu SERIAL po vložení řádku?</h3>
+<p>Nejjednodušším způsob, jak získat vygenerovanou hodnotu typu SERIAL, je využít klauzuli RETURNING. Pro tabulku z 4.11.1 vypadá takto:
+</p>
+<pre>
+INSERT INTO person (name) VALUES ('Blaise Pascal') RETURNING id;
+</pre><p>Také můžete použít funkci nextvall() a její výsledek použít v příkazu INSERT, nebo zavolat currval() po provedení příkazu INSERT.
+</p>
+<h3><a name="item4.11.3">4.11.3</a>) Nezpůsobí currval() a nextval() problémy ve více uživatelském prostředí?</h3>
+<p>Ne, currval vrací vždy hodnotu, která byla vygenerována pro vás.
+</p>
+<h3><a name="item4.11.4">4.11.4</a>) Proč není vygenerované číslo použito při přerušení transakce?Proč vznikají díry v číslování prostřednictvím sekvence nebo typu SERIAL?</h3>
+<p>Poté co sekvence vygeneruje nové číslo, tak se nedochází k zamčení sekvence a nečeká se na úspěšné nebo neúspěšné dokončení transakce. Odvoláním transakce, která si vyžádala čísla sekvence se tato čísla nenávratně ztratí.
+</p>
+<h3><a name="item4.12">4.12</a>) Co to je OID? Co je to CTID?</h3>
+<p>V případě, že tabulku nezaložíme s atributem WITHOUT OIDS, tak má každý řádek unikátní identifikační číslo OID. Toto číslo je 4 bajtové celé číslo, které je jedinečné v celé instalaci. Přeteče po 4 miliardách řádků. PostgreSQL používá OIDs jako interní linky v interních systémových tabulkách.
+</p>
+<p>K získání unikátního čísla v nesystémových tabulkách je vhodnější použití typu SERIAL než OID, jelikož sekvence SERIAL se používá pouze pro jednu tabulku a je tudíž méně náchylná na přetečení. Pokud byste se toho obávali, použijte typ SERIAL8.
+</p>
+<p>CTID se používá k identifikaci konkrétního fyzického řádku. CTID se mění pokud je řádek modifikován nebo znovu načten. Používají ho indexy jako adresaci fyzických řádků.
+</p>
+<h3><a name="item4.13">4.13</a>) Co znamená chybové hlášení "ERROR: Memory exhausted in AllocSetAlloc()"?</h3>
+<p>Pravděpodobně jste vyčerpal dostupnou virtuální paměť, nebo tvůj kernel
+má příliš nízké limity u určitých zdrojů. Před startem PostgreSQL vyzkoušejte:
+</p>
+<pre>
+ulimit -d 262144
+limit datasize 256m
+</pre><p>Možná, že se projde pouze jeden příkaz - záleží to na vašem shellu.
+Měl by zvednout limity datových segmentů vašich procesů na dostatečně velkou
+hodnotu a snad umožnit dokončení dotazu. Změna limitů se bude aplikovat
+pouze na aktuální proces a na všechny nově vytvořené procesy. Jestliže máte
+problém s SQL klientem, protože vám server vrátil příliš dat, zkuste to
+před startem klienta.
+</p>
+<h3><a name="item4.14">4.14</a>) Jak zjistím, kterou verzi PostgreSQL používám?</h3>
+<p>V psql napište:
+</p>
+<pre>
+SELECT version();
+</pre>
+<h3><a name="item4.15">4.15</a>) Jak vytvořit sloupec, který bude implicitně obsahovat aktuální čas?</h3>
+<p>Použijte CURRENT_TIMESTAMP:
+</p>
+<pre>
+CREATE TABLE test (x int, modtime TIMESTAMP DEFAULT CURRENT_TIMESTAMP );
+</pre>
+<h3><a name="item4.16">4.16</a>) Jak provést vnější spojení (outer join)?</h3>
+<p>PostgreSQL podporuje standardní SQL syntaxi pro vnější spojení. Zde jsou
+dva příklady:
+</p>
+<pre>
+SELECT *
+FROM t1 LEFT OUTER JOIN t2 ON (t1.col = t2.col);
+</pre><p>nebo
+</p>
+<pre>
+SELECT *
+FROM t1 LEFT OUTER JOIN t2 USING (col);
+</pre><p>Tyto identické dotazy spojí sloupec t1.col k sloupci t2.col, a ještě vrátí všechny nespárované řádky t2 (ty, které nedohledá v t2). RIGHT JOIN by připojil všechny nespárované řádky z t2. FULL JOIN vrátí všechny spárované řádky i všechny zbývající řádky z obou tabulek. Klíčové slovo OUTER je volitelné. Běžná operace JOIN se také označuje jako vnitřní spojení.
+</p>
+<h3><a name="item4.17">4.17</a>) Jak provést dotaz napříč několika databázemi?</h3>
+<p>Neexistuje žádný způsob, jak se v dotazu odkazovat na tabulky z jiné než aktuální databáze. A to protože má systémové tabulky uložené nezávisle v každé databázi a není tak úplně zřejmé, jak by se dotaz provedený napříč databázemi měl chovat.
+</p>
+<p>Jeden z doplňků dblink umožňuje dotaz nad několika tabulkami pomocí funkcí. Druhý způsob je simultální připojení klienta ke všem relevantním databázím a sloučení výsledku na straně klienta.
+</p>
+<h3><a name="item4.18">4.18</a>) Může funkce vrátit více řádků nebo sloupců?</h3>
+<p>Jde to jednoduše pomocí set-returning funkce. Více na
+<a href="http://www.postgresql.org/docs/techdocs.17" title="http://www.postgresql.org/docs/techdocs.17">http://www.postgresql.org/docs/techdocs.17</a>.
+</p>
+<h3><a name="item4.19">4.19</a>) Co je příčinou chyby "relation with OID xxxxx does not exist"?</h3>
+<p>Nechtěným vedlejším efektem kešování SQL dotazů v PL/pgSQL funkci je problém s neplatnými odkazy na dočasné tabulky, které byly od prvního spuštění funkce zrušeny a znovu vytvořeny před dalším spuštěním PL/pgSQL funkce. Řešením je použít příkaz EXECUTE a to proto, že prováděcí plán SQL příkazu spouštěného příkazem EXECUTE se vytváří pokaždé znovu (neukládá se do cache).
+</p>
+<p>Tento problém by se neměl vyskytovat u PostgreSQL verze 8.3 a vyšších verzích.
+</p>
+<h3><a name="item4.20">4.20</a>) Jaké jsou možnosti replikace databází?</h3>
+<p>Replikaci databáze umožňuje několik technoligií. Každá má určité výhody a nevýhody.
+</p>
+<p>Master/Slave replikaci podporuje jeden hlavní server, který přijímá požadavky na zápis a čtení, a několik podřízených serverů, které umožňují pouze čtení (SELECT). Nejrozšířenějším volně dostupným řešením tohoto typu je <a href="http://main.slony.info/" title="http://main.slony.info/">Slony-I</a>.
+</p>
+<p>Replikace typu Multi-master podporuje existenci několika serverů s povoleným zápisem na více replikovaných serverech. Toto řešení zvyšuje zátěž serverů, protože je nutná synchronizace serverů. Nejrozšířenějším volně dostupným řešením je <a href="http://pgfoundry.org/projects/pgcluster/" title="http://pgfoundry.org/projects/pgcluster/">PGCluster</a>.
+</p>
+<p>Ještě existuje několik komerčních a hardware řešení replikací podporujících různé modely replikace.
+</p>
+<h3><a name="item4.21">4.21</a>) Proč v dotazu nejsou rozpoznány názvy mých tabulek nebo funkcí? Proč jsou velká písmena v názvech automaticky převedena na malá písmena?</h3>
+<p>Nejčastějším důvodem nerozpoznání názvu objektu bylo použití vložení názvu sloupce nebo tabulky mezi uvozovky při zakládání tabulky. Pokud se název zapíše mezi uvozovky, pak je case sensitive, a v důsledku toho je nutné názvy těchto sloupců nebo tabulek v SQL příkazech také vkládat mezi uvozovky (pokud obsahují velká písmena). Některé programy, jako je například pgAdmin, automaticky používají uvozovky. Takže pokud chcete, aby systém identifikoval identifikátor, musíte:
+</p>
+<ul><li> nepoužívat uvozovky v příkazu CREATE TABLE
+</li>
+<li> v identifikátoru použít pouze malá písmena
+</li>
+<li> v dotazech vkládat identifikátory do uvozovek
+</li>
+</ul>
+</body>
+</htm>