diff options
author | Bruce Momjian | 2005-03-11 21:46:54 +0000 |
---|---|---|
committer | Bruce Momjian | 2005-03-11 21:46:54 +0000 |
commit | b9de4a26cf1b34f9a9a6c9bdfc8d3878bd075ce1 (patch) | |
tree | 6a8f8056b8e972d3909d8438b951bebeb2797e23 /doc/FAQ_czech | |
parent | caad817d1c250017b3f456417ecf14fa7ad083e6 (diff) |
Here's the patch to fix a lot of markup errors in the HTML FAQs. Doesn't
change content (at least not supposed to).
Magnus Hagander
Diffstat (limited to 'doc/FAQ_czech')
-rw-r--r-- | doc/FAQ_czech | 2282 |
1 files changed, 1105 insertions, 1177 deletions
diff --git a/doc/FAQ_czech b/doc/FAQ_czech index 1fd6627b8a5..1a2b33cb687 100644 --- a/doc/FAQ_czech +++ b/doc/FAQ_czech @@ -1,855 +1,823 @@ -�asto kladen� dotazy (FAQ) PostgreSQL -===================================== - -Obecn� ot�zky -============= -1.1 Co je PostgreSQL? Jak se vyslovuje? -1.2 Jak� je licence na PostgreSQL? -1.3 Na kter�ch Unixex lze spustit PostgreSQL? -1.4 Kter� ne-unixov� platformy jsou podporovan�? -1.5 Kde mohu z�skat PostgreSQL? -1.6 Kde mohu z�skat podporu? -1.7 Kde je posledn� verze? -1.8 Jak� je dostupn� dokumentace? -1.9 Kde najdu seznam zn�m�ch chyb nebo nepodporovan�ch vlastnost�? -1.10 Jak se mohu nau�it SQL? - -1.11 Nem� PostgreSQL probl�my s rokem 2000? -1.12 Jak se p�ipojit k v�voj��sk�mu t�mu? -1.13 Kam podat report o chyb�? -1.14 Jak je na tom PostgreSQL v porovn�n� s jin�mi datab�zemi? -1.15 Jak lze finan�n� pomoci PostgreSQL? - -User client dotazy -================== -2.1 Kde naleznu ODBC ovlada�e pro PostgreSQL? -2.2 Jak� n�stroje lze pou��t pro PostgreSQL a web? -2.3 Existuje grafick� rozhran� pro PostgreSQL? -2.4 Kter� programovac� jazyky maj� podporu pro PostgreSQL? - -Administrativn� dotazy -====================== -3.1 Jak nainstalovat PostgreSQL jinam ne� do /usr/local/pgsql? -3.2 P�i startu postmaster, dostanu chybov� hl�en� Bad System Call nebo -core dump. Pro�? 3.3 P�i startu postmastera dostanu hl�en� o chyb� -IpcMemoryCreate. Pro�? 3.4 P�i startu postmastera dostanu hl�en� o -chyb� IpcSemaphoreCreate. Pro�? 3.5 Jak povolit nebo zak�zat p��stup z -jin�ch stanic? 3.6 Jak ladit datab�zov� stroj na lep�� v�kon? - -3.7 Jak� jsou mo�nosti lad�n�? -3.8 Pro� dostanu "Sorry, too many clients", kdy� se zkou��m p�ipojit? -3.9 K �emu slou�� adres�� pgsql_tmp? - -3.10 Pro� je po�adov�no dump a obnoven� (load) datab�ze b�hem upgrade -mezi velk�mi verzemi PostgreSQL? - -Provozn� dotazy -=============== -4.1 ��m se li�� bin�rn� a norm�ln� kurzor? -4.2 Jak z�skat pouze prvn� ��dek dotazu? N�hodn� ��dek? -4.3 Jak z�sk�m seznam tabulek nebo jinak jak jej z�sk� psql? -4.4 Jak odstran�m sloupec tabulky, jak zm�n�m jeho typ? -4.5 Jak� je maxim�ln� velikost ��dku, tabulky a datab�ze? -4.6 Kolik diskov�ho prostoru je pot�eba k ulo�en� dat z norm�ln�ho -textov�ho souboru? 4.7 Jak z�sk�m seznam vytvo�en�ch tabulek, index�, -datab�z�? 4.8 M�j dotaz je pomal� a nepou��v� vytvo�en� indexy. Pro�? -4.9 Jak zjist�m, jak optimizer dotazu vyhodnocuje m�j dotaz? - -4.10 Co to je R-tree index? -4.11 Co je Genetic Query Optimizer? -4.12 Jak prov�st vyhled�v�n� regul�rn�ho v�razu case sensitiv, -insensitiv? Jak pou��t index pro case insensitive vyhled�v�n�? 4.13 Jak -v dotazu detekovat, �e polo�ka je NULL? 4.14 Jak� jsou rozd�ly mezi -r�zn�mi znakov�mi typy? 4.15.1 Jak vytvo�it serial/auto-increment pole? -4.15.2 Jak z�skat hodnotu SERIAL po vlo�en� ��dku? - -4.15.3 Nepovede currval() a nextval() k rozhozen� podm�nek p�i soub�hu s -jin�mi u�ivateli? 4.15.4 Pro� nen� vygenerovan� ��slo pou�ito p�i -p�eru�en� transakce? Pro� vznikaj� d�ry v ��slov�n� vlastn� -sekvenc�/SERIAL sloupce? 4.16 Co to je OID? Co je to TID? - -4.17 Jak� je v�znam n�kter�ch v�raz� pou�it�ch v PostgreSQL? -4.18 Pro� jsem z�skal chybov� hl�en� "ERROR: Memory exhausted in -AllocSetAlloc()"? 4.19 Jak se dozv�m, kterou verzi PostgreSQL pou��v�m? -4.20 Pro� operace s velk�mi objekty kon�� "invalid large obj -descriptor"? 4.21 Jak vytvo�it sloupec obsahuj�c� implicitn� aktu�ln� -datum? 4.22 Pro� jsou moje vno�en� dotazy pou��vaj�c� IN tak pomal�? -4.23 Jak prov�st vn�j�� spojen� (outer join)? - -4.24 Jak prov�st dotaz nap��� n�kolika datab�zemi? -4.25 M��e funkce vr�tit v�ce ��dk� nebo sloupc�? -4.26 Pro� nelze spolehliv� vytv��et a ru�it do�asn� tabulky v PL/pgSQL -funkc�ch? 4.27 Jak� jsou mo�nosti replikace datab�z�? - -4.28 Jak� jsou mo�nosti �ifrov�n� datab�z�? - -Roz�i�ov�n� PostgreSQL -====================== -5.1 Napsal jsem UDF funkci, PostgreSQL v�ak kon�� dump core? -5.2 Jak mohu p�isp�t n�jak�mi �ikovn�mi datov�mi typy a funkcemi do -PostgreSQL? 5.3 Jak napsat funkci v C vracej�c� ntici? - -5.4 Modifikoval jsem zdrojov� soubory. Tato zm�na nebyla p�i rekompilaci -vzata v potaz. Pro�? ------------------------------------------------------------------------- - -Obecn� ot�zky -============= - -1.1 Co je PostgreSQL? Jak se vyslovuje? ---------------------------------------- - -PostgreSQL se vyslovuje Post-Gres-Q-L. - -PostgreSQL vych�z� z datab�ze POSTGRES - v�zkumn�ho prototypu DBMS nov� -generace. Z postgresu byl p�evzat siln� datov� model a bohat� soubor -datov�ch typ� a jeho dotazovac� jazyk PostQuel byl nahrazen roz���enou -podmno�inou jazyka SQL. PostgreSQL lze pou��vat bez omezen� a jeho -zdrojov� k�dy jsou voln� k dispozici. - -PostgreSQL vyv�j� t�m v�voj��� p�ihl�en�ch do v�voj��sk� konference -PostgreSQL. Sou�asn�m koordin�torem je Marc G. Fournier. (Odpov�� 1.6. - -jak se zapojit). Tento t�m je zodpov�dn� za ve�ker� v�voj PostgreSQL. - -Autory prvn� verze PostgreSQL 1.01 byli Andrew Yu and Jolly Chen. Do -portace, testov�n�, lad�n� a roz�i�ov�n� k�du se zapojilo mnoho dal��ch -v�voj��� . P�vodni k�d Postgresu, ze kter�ho PostgreSQL vych�z�, je -v�sledkem �sil� mnoha student� a program�tor� pracuj�c�ch pod veden�m -prof. Michaela Stonebrakera na University of California v Berkley. - -P�vodn� n�zev software z Berkley byl Postgres. Po p�id�n� jazyka SQL se -n�zev zm�nil na Postgres95. Koncem roku 1996 byl RDBMS p�ejmenov�n na -PostgreSQL. - -1.2 Jak� je licence na PostgreSQL? ----------------------------------- - -PostgreSQL je p�edm�tem n�sleduj�c�ch autorsk�ch pr�v: - -D�l�� copyright (c) 1996-2002, PostgreSQL Global Development Group - -D�l�� copyright (c) 1994-6, Regents of the University of California - -Ud�luje se opr�vn�n� k u�it�, rozmno�ov�n�, prov�d�n� �prav a -roz�i�ov�n� tohoto softwaru a dokumentace k n�mu, pro jak�koli ��ely, -bez licen�n�ho poplatku a bez p�semn� licen�n� smlouvy, za podm�nky, �e -na v�ech jeho kopi�ch je uvedeno ozn�men� o v��e uveden�ch pr�vech, -jako� i obsah tohoto a dvou n�sleduj�c�ch odstavc�. - -THE UNIVERSITY OF CALIFORNIA ("KALIFORNSK� UNIVERZITA") NEN� V ��DN�M -P��PAD� ODPOV�DNA ��DN� T�ET� OSOB� ZA P��MOU, NEP��MOU, ZVL��TN�, -NAHODILOU NEBO V�SLEDNOU �KODU, V�ETN� U�L�HO ZISKU, ZP�SOBENOU U�IT�M -TOHOTO SOFTWARU A DOKUMENTACE K N�MU, A TO I V P��PAD�, �E THE -UNIVERSITY OF CALIFORNIA BYLA INFORMOV�NA O MO�NOSTI VZNIKU TAKOV� -�KODY. - -THE UNIVERSITY OF CALIFORNIA ZEJM�NA NEPOSKYTUJE JAK�KOLI Z�RUKY, A TO -NEJEN Z�RUKY OBCHODOVATELNOSTI A VHODNOSTI TOHOTO V�ROBKU KE SPECIFICK�M -��EL�M. NͮE UVEDEN� SOFTWARE JE POSKYTNUT "JAK STOJ� A LE��" A THE -UNIVERSITY OF CALIFORNIA NEN� POVINNA ZAJISTIT JEHO �DR�BU, PODPORU, -AKTUALIZACI, VYLEP�EN� NEBO MODIFIKACI. - -V��e uveden� je BSD licence, b�n� licence otev�en�ho zdroje. Nen� zde -��dn� omezen� ohledn� u�it� k�du zdroje. Jsme s t�m spokojeni a nem�me v -�myslu na t�to skute�nosti cokoli m�nit. - -1.3 Na kter�ch Unixex lze spustit PostgreSQL? ---------------------------------------------- - -PostgreSQL b�� na v�ech modern�ch unixov�ch platform�ch. V instala�n�ch -instrukc�ch naleznete aktu�ln� seznam v�ech platforem na kter�ch byla -testov�n�m ov��ena funkcionalita PostgreSQL. - -1.4 Kter� ne-unixov� platformy jsou podporovan�? ------------------------------------------------- - -Klient ------- - -Knihovna libpq, psql a n�kter� dal�� moduly byly p�elo�eny pro MS -Windows. Klienta lze provozovat na MS Windows, ten prost�ednictv�m -TCP/IP protokolu komunikuje se serverem b��c�m na n�kter� z -podporovan�ch Unixov�ch platforem. K p�ekladu lze pou��t win32.mak a -Win32 knihovny libpq a psql. K datab�zi PostgerSQL lze p�istupovat skrze -rozhran� ODBC. - -Server ------- - -Server m��e b�t na WindowsNT a Win2k provozov�n pouze s knihovnou -Cygwin, Cygnus Unix/NT porting library. Na nativn�m portu pro MS Win -NT/2000/XP se pracuje. Existuj�c� port pro Novell Netware 6 naleznete na -http://forge.novell.com. - -1.5 Kde mohu z�skat PostgreSQL? -------------------------------- - -Prim�rn�m anonymn�m ftp serverem pro PostgreSQL je -ftp://ftp.PostgreSQL.org/pub . Seznam zrcadel naleznete na na�ich -webov�ch str�nk�ch. - -1.6 Kde mohu z�skat podporu? ----------------------------- - -Hlavn�m mailov� konference je [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 mailto:[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 mailto:[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 Kde je posledn� verze? --------------------------- - -Posledn� verz� je PostgreSQL 7.4.. Pl�nujeme uvolnit velkou verzi -ka�d�ch �est a� osm m�s�c�. - -1.8 Jak� je dostupn� dokumentace? ---------------------------------- - -R�zn� manu�ly, manu�lov� str�nky a n�kolik mal�ch testovac�ch p��klad� -jsou sou��sti distribuce. Pod�vejte se do adres��e /doc. Manu�ly jsou -p��stupn� online na http://www.PostgreSQL.org/docs. - -Na adres�ch http://www.PostgreSQL.org/docs/awbook.html a -http://www.commandprompt.com/ppbook/ naleznezte dv� online knihy o -PostgreSQL. Seznam dostupn� literatury je na -http://techdocs.PostgreSQL.org/techdocs/bookreviews.php. Soubor -technick�ch �l�nk� s tematikou PostgresQL najdete na -http://techdocs.PostgreSQL.org/. - -psql m� u�ite�n� metap��kaz \d slou��c� k zobrazen� informac� o typech, -oper�torech, funkc�, agrega�n�ch funkc� atd. - -V�ce dokumentace naleznete na na�ich webov�ch str�nk�ch. - -1.9 Kde najdu seznam zn�m�ch chyb nebo nepodporovan�ch vlastnost�? ------------------------------------------------------------------- - -PostgreSQL podporuje roz���enou podmno�inu SQL-92. V na�em TODO [1] -najdete seznam zn�m�ch chyb, chyb�j�c�ch vlastnost� a seznam vlastnost�, -kter� budou do syst�mu implementov�ny v budoucnu (v�etn� priorit). - -1.10 Jak se mohu nau�it SQL? ----------------------------- - -V knize The PostgreSQL book na -http://www.PostgreSQL.org/docs/awbook.html je vysv�tlen jazyk SQL (vy�la -�esky). Dal�� dostupnou knihou je http://www.commandprompt.com/ppbook. -Kvalitn� n�vody naleznete na -http://www.intermedia.net/support/sql/sqltut.shtm, na -http://www.intermedia.net/support/sql/sqltut.shtm [2] , a na -http://sqlcourse.com. - -Dal�� je Teach Yourself SQL in 21 days, Second Edition na -http://members.tripod.com/er4ebus/sql/index.htm. - -Mnoho u�ivatel� doporu�uje The Practical SQL Handbook, Bowman, Judith -S., et al., Addison-Wesley. Jin� preferuj� The Complete Reference SQL, -Groff et al., McGraw-Hill. - -1.11 Nem� PostgreSQL probl�my s rokem 2000? -------------------------------------------- - -Nem�, m��eme pracovat s datumy po roce 2000 na�eho letopo�tu i p�ed -rokem 2000 p�.n.l. - -1.12 Jak se p�ipojit k v�voj��sk�mu t�mu? ------------------------------------------ - -Nejd��ve si st�hn�te nejnov�j�� zdroje a p�e�t�te si v�voj��skou -dokumentaci na na�em webu nebo v distribuci. Pak se p�ihla�te do -konferenc� pgsql-hackers a pgsql-patches. Kvalitn� z�platy pos�lejte do -pgsql-patches. - -Pr�vo commit m� v cvs archivu asi t�in�cti lid�. Ka�d� z nich poslal -mnoho kvalitn�ch z�plat, tak�e tehdej�� commiters m�li jistotu, �e budou -p�edkl�dat jenom kvalitn� z�platy a mohli jim p�ed�lit v�t�� pr�va. - -1.13 Kam podat report o chyb�? ------------------------------- - -Nav�tivte na�i PostgreSQL BugTool str�nku na -http://www.PostgreSQL.org/bugs/bugs.php, kter� obsahuje n�vod a sm�rnice -jak podat chybov� report. - -Ov��te si na na�em ftp serveru ftp://ftp.PostgreSQL.org/pub, zda-li m�te -nejnov�j�� verzi PostgreSQL a zda-li k n� neexistuj� n�jak� z�platy. - -1.14 Jak je na tom PostgreSQL v porovn�n� s jin�mi datab�zemi? --------------------------------------------------------------- - -Existuje n�kolik hledisek jak porovn�vat software: vlastnosti, v�kon, -spolehlivost, podpora a cena. - -Vlastnosti ----------- - -PostgreSQL m� hodn� spole�n�ch vlastnost� s velk�mi komer�n�mi DBMS, -nap�. transakce, vno�en� dotazy, spou�t�, pohledy, kontrolu referen�n� -integrity a sofistikovan� zamyk�n�. Podporuje n�kter� vlastnosti, kter� -tyto syst�my nemaj�, u�ivatelem definovan� typy, d�di�nost, pravidla, -MVCC redukuj�c� zamyk�n�. - -V�kon ------ - -V�konnostn� je na tom PostgreSQL podobn� jako dal�� komer�n� ale i open -source datab�ze, v n��em je rychlej��, jindy pomalej��. V porovn�n� s -MySQL a podobn�mi datab�zov�mi syst�my je PostgreSQL rychlej�� p�i -v�ceu�ivatelsk�m p��stupu, slo�it�j��ch dotazech a zat��en� read/write -dotazy. MySQL je rychlej�� v jednodu���ch dotazech s mal�m po�tem -u�ivatel�. Nav�c, MySQL nepodporuje mnoh� vlatnosti zm�n�n� v sekci -vlastnosti. Zapracovali jsme na spolehlivosti a podporovan�ch -vlastnostech, a v�kon zvy�ujeme v ka�d� verzi. Zaj�mavou str�nku -porovn�vaj�c� PostgreSQL a MySQL naleznete na -http://openacs.org/philosophy/why-not-mysql.html. Za v�vojem MySQL nen� -Open Source komunita, ale komer�n� spole�nost, p�esto�e svoje produkty -distribuuje jako Open Source. - -Spolehlivost ------------- - -Jsme si v�domi, �e datab�ze mus� b�t spolehliv�, jinak je nepou�iteln�. -Sna��me se zve�ej�ovat dob�e otestovan�, stabiln� k�d s minimem chyb. -Ka�d� verze je v�ce ne� m�s�c v beta testov�n�, a na�e historie verz� -ukazuje, �e m��eme nab�dnout stabiln�, solidn� verze, kter� jsou -p�ipraveny pro re�ln� nasazen�. V t�to oblasti jsme srovnateln� s -dal��mi datab�zemi. - -Podpora -------- - -Na na�� mailov� konferenci m��ete kontaktovat velkou skupinu v�voj��� a -u�ivatel�.probl�m�. Nem��eme garantovat opravu, nicm�n� komer�n� -datab�ze tak� ne v�dy nab�dnou opravu. Podle ohlas� je na�e podpora -hodnocena l�pe ne� u jin�ch DBMS a to d�ky p��m�mu kontaktu s v�voj��i, -velkou komunitou u�ivatel�, kvalitn�mi manu�ly a p��stupn�m zdrojov�m -k�dem. Pro u�ivatele, kte�� vy�aduj� podporu ke konkr�tn�m p��pad�m, -existuje placen� podpora (FAQ sekce 1.6). - -Cena ----- - -PosgreSQL lze voln� pou��vat pro nekomer�n� i komer�n� pou�it�. M��ete -do sv�ch produkt� p�idat n� k�d bez omezen�, respektive v souladu s -podm�nkami na�� licen�n� smlouvy (v duchu BSD licence). - -1.15 Jak lze finan�n� pomoci PostgreSQL? ----------------------------------------- - -PosgreSQL m� prvot��dn� infrastrukturu od na�eho za��tku v roce 1996. -Vd���me za to Marku Fournierovi, kter� zalo�il a spravoval tuto -infrastrukturu n�kolik let. - -Kvalitn� infrastruktura je velice d�le�it� pro ka�d� open source -projekt. P�edch�z� nedorozum�n�m, kter� velice zdr�uj� pokrok v -projektu. - -Tato infrastruktura nen� lacin�. K jej�mu zaji�t�n� je t�eba st�le -hradit ur�it� m�s��n� a jednor�zov� ��stky. Pokud m�te Vy nebo Va�e -spole�nost pen�ze, kter� n�m m��ete darovat, obra�e se na -http://store.pgsql.com/shopping/ a darujte je. - -A�koliv webov� str�nka zmi�uje PostgreSQL, Inc. vklady jsou ur�eny pouze -k podpo�e projektu PostgreSQL a nepodporuj� ��dnou existuj�c� -spole�nost. Pokud to vy�adujete, m��ete poslat kontrolu na na�i -kontaktn� adresu. - -Pokud m�te p��klad �sp�n�ho nasazen� PostgreSQL, p�ihla�t� se na n� -advocacy site na http://advocacy.postgresql.org. - ------------------------------------------------------------------------- - -User client dotazy -================== - -2.1 Kde naleznu ODBC ovlada�e pro PostgreSQL? ---------------------------------------------- - -Pro PostgreSQL existuj� dva ODBC ovlada�e - PsqlODBC a OpenLink ODBC. - -PsqlODBC je ke sta�en� na -http://gborg.postgresql.org/project/psqlodbc/projdisplay.php. - -OpenLink m��ete z�skat na http://www.openlinksw.com. Spolupracuje s -jejich klientsk�m programov�m vybaven�m a je dostupn� pro v�echny jimi -podporovan� platformy (Win, Mac, Unix, VMS). - -Tento ovlada� je ur�en pro ty, kte�� vy�aduj� podporu komer�n� kvality, -nicm�n� freeware verze je dostupn� a funk�n�. Dotazy zas�lejte na - -2.2 Jak� n�stroje lze pou��t pro PostgreSQL a web? --------------------------------------------------- - -P�kn� �vod do datab�zov�ch technologi� zabezpe�uj�c�ch chod webov�ch -str�nek najdete na http://www.webreview.com. - -Pro tvorbu webu existuje excelentn� rozhran� PHP, kter� naleznete na -http://www.php.net. - -Pro slo�it�j�� p��pady se �asto pou��v� Perl a CGI.pm nebo mod_perl. - -2.3 Existuje grafick� rozhran� pro PostgreSQL? ----------------------------------------------- - -Pro PostgreSQL existuje n�kolik grafick�ch rozhran�: PgAccess -(http://www.php.net), PgAdmin (http://www.php.net), RHDB Admin -(http://sources.redhat.com/rhdb/) a Rekall ( -http://www.thekompany.com/products/rekall/). D�le existuje PHPPgAdmin -(http://phppgadmin.sourceforge.net/) rozhran� PostgreSQL zalo�en� na web -technologii. - -�pln�j�� seznam najdete na -http://techdocs.postgresql.org/guides/GUITools. - -2.4 Kter� programovac� jazyky maj� podporu pro PostgreSQL? ----------------------------------------------------------- - -V�t�ina programovac�ch jazyk� obsahuje rozhran� pro PostgreSQL. -Pod�vejte se do roz�i�uj�c�ch modul� Va�eho programovac�ho jazyka. - -Distribuce PostgreSQL obsahuje tato rozhran�: - - - C (libpq) - - Embbedded C (ecpg) - - Java (jdbc) - - Python (PyGreSQL) - - TCL (libpgtcl) - -Dal�� rozhran� jsou dostupn� na http://gborg.postgresql.org v sekci -Drivers/Interfaces. - ------------------------------------------------------------------------- - -Administrativn� dotazy -====================== - -3.1 Jak nainstalovat PostgreSQL jinam ne� do /usr/local/pgsql? --------------------------------------------------------------- - -Pou�ijte volbu --prefix p�i spu�t�n� configure - -3.2 P�i startu postmaster, dostanu chybov� hl�en� Bad System Call nebo core dump. Pro�? ----------------------------------------------------------------------------------------- - -D�vody mohou b�t r�zn�, ale nejprve zkontrolujte, zda V� syst�m -podporuje System V extensions. PostgreSQL vy�aduje v j�d�e podporu -sd�len� pam�ti a semafor�. - -3.3 P�i startu postmastera dostanu hl�en� o chyb� IpcMemoryCreate. Pro�? -------------------------------------------------------------------------- - -Bu�to nem�te spr�vn� nakonfigurovanou sd�lenou pam� v j�d�e nebo musite -zv�t�it jej� velikost. Pot�ebn� velikost je z�visl� na architektu�e a na -tom, kolik pam�ov�ch buffer� a backend� m�te povoleno pro postmastera. -Pro v�t�inu syst�m� s p�eddefinovan�m po�tem backend� a pam�ov�ch -buffer� je minimum zhruba 1MB. V -http://www.postgresql.org/docs/view.php?version=current&idoc=1&file=kern -el-resources.html [3] naleznete podrobn�j�� informace o sd�len� pam�ti a -semaforech. - -3.4 P�i startu postmastera dostanu hl�en� o chyb� IpcSemaphoreCreate. Pro�? ----------------------------------------------------------------------------- - -Pokud dostane chybovou zpr�vu IpcSemaphoreCreate: semget failed (No -space left on device), pak va�e j�dro nem� dost voln�ch semafor�. -PostgreSQL vy�aduje jeden semafor pro ka�d� backend v pozad�. Do�asn�m -�e�en�m je start postmastera s limitem backend�. Pou�ijte p�ep�na� -N s -hodnotou men�� ne� 32. �pln�m �e�en�m je zv��en� hodnot SEMMNS a SEMMNI -jadra. - -Nefunk�n� semafory mohou zp�sobit p�d b�hem intenzivn�ch datab�zov�ch -operac�. - -Pokud se tato chyba vyskytuje je�t� n�kde jinde, mo�n� nem�te v�bec -nakonfigurov�ny semafory ve va�em j�d�e. V PostgreSQL Administrator's -Guide najdete podrobn�j�� popis po�adavk� na sd�lenou pam�t a semafory. - -3.5 Jak povolit nebo zak�zat p��stup z jin�ch stanic? ------------------------------------------------------ - -P�i v�choz�m nastaven� PostgreSQL odep�e p��stup z jin�ch stanic ne� -lok�ln� s pou�it�m UDP. Datab�ze se zp��stupn� jin�m stanic�m nastaven�m -p�ep�na�e -i postmastera a povolen�m stanice a ur�en�m re�imu -autentifikace v $PGDATA/pg_hba.conf. T�m se povol� TCP/IP spojen�. -ZASTARAL� - -3.6 Jak ladit datab�zov� stroj na lep�� v�kon? ----------------------------------------------- - -Ur�it� pomohou indexy. P��kaz EXPLAIN zobraz� zp�sob interpretace Va�eho -dotazu a pou�it� index�. - -P�i v�t�� d�vce INSERT� uva�ujte o n�hrad� p��kazem COPY. Ten je mnohem -rychlej�� ne�li samotn� INSERT. Ka�d� p��kaz mimo blok BEGIN WORK/COMMIT -se prov�d� ve vlastn� transakci. Zva�te, zda-li by se nedalo n�kolik -p��kaz� spojit do jedn� transakce. T�m se sn��� re�ie na transakce. P�ed -proveden�m rozs�hl�ch zm�n zru�te indexy, kter� po dokon�en� zm�n op�t -vytvo�te. - -M�te n�kolik dal��ch mo�nost�, jak zlep�it v�kon. M��ete zak�zat fsyn() -p�i startu postmastera p�ep�na�i -o -F. Tyto p�ep�na�e zabr�n� fsync(), -tj. z�pisu na disk po ka�d� transakci. - -M��ete zv��it velikost pam�ov�ch buffer� pou�it�ch backendy tj. -parametr -B postmasteru. Pokud ale tato hodnota bude p��li� velk�, tak -mo�n� nespust�te postmastera jeliko� dos�hnete limitu sd�len� pam�ti. -Ka�d� buffer m� 8K a implicitn� je 64 buffer�. - -D�le m��ete pou��t p�ep�na� -S k zv��en� limitu pam�ti pro backendy na -do�asn� t��d�n�. Hodnota je m�n�na v kilobytech a v�choz� nastaven� je -512, tj. 512K. - -M��ete pou��t p��kaz CLUSTER, kter� uspo��d� fyzicky data v tabulk�ch -podle indexu. V�ce na manu�lov�ch str�nk�ch p��kazu CLUSTER. - -3.7 Jak� jsou mo�nosti lad�n�? ------------------------------- - -M�te n�kolik mo�nost� jak se dostat k u�ite�n�m stavov�m informac�m. - -Zaprv�, p�i p�ekladu pou�ijte p�ep�na� --enable-cassert, t�m se zapne -monitorov�n� a n�sledn� zastaven� aplikace, kdy� se proces v backendu -dostane do neo�ek�van�ho stavu. - -Jak postmaster tak postgres m� n�kolik p�ep�na�� umo��uj�c�ch lad�n�. -Postmaster nastartujte tak, abyste si byli jisti, �e je standartn� -v�stup a standartn� chybov� v�stup p�esm�rov�n do souboru logu, -nap��klad: - -cd /usr/local/pgsql -./bin/postmaster > server.log 2>&1 & - -T�m se vytvo�� log v adres��i PostgreSQL, Tento soubor obsahuje u�ite�n� -informace o probl�mech a chyb�ch vyskytl�ch se na serveru. Postmaster m� -p�ep�na� -d ur�uj�c�, jak podrobn� maj� b�t reportovan� informace, tj. -debug level. Pozor, p�i velk� hodnot� debug levelu rychle roste velikost -souboru logu. - -Pokud neb�� postmaster, m��ete spustit backend PostgreSQL z p��kazov� -��dky a napsat sv�j SQL dotaz p��mo v backendu (doporu�eno pouze pro -lad�n�). Dotaz je v tomto p��pad� ukon�en novou ��dkou, nikoliv -st�edn�kem. Pokud m�te aplikaci p�elo�enou s lad�c�mi symboly, m��ete -pou��t debbuger k monitorov�n� procesu. Pokud nen� backend spu�t�n -postmasterem, pak neb�� ve sv�m obvykl�m prost�ed� a tud�� n�kter� -probl�my dan� interakc� mezi backendy nemohou b�t nasimulov�ny. - -Pokud b�� postmaster, spus�e psql v jednom okn� a pak si zjist�te PID -procesu postgres pou�it�ho psql. V debuggeru sep�ipojte k postgresql -PID. Pak nastavte breakpointy v debuggeru a zadejte dotaz v psql. Pokud -lad�te startup postgresu, pak nastavte PGOPTIONS="-W n" a spus�e psql. -Tento p�ep�na� zp�sob� pauzu n sekund, tak�e budete m�t �as se p�ipojit -k procesu, a nastavit breakpointy a pokra�ovat v startup posloupnosti. - -Pro lad�n� a m��en� v�konu mohou b�t u�ite�n� p�ep�na�e -s, -A a -t -programu postgres (backend). - -M��ete prov�st p�eklad s profilac�, tak abyste vid�li kolik �asu -zab�raj� jednotliv� funkce. Soubory s profily backend� jsou ulo�eny v -adres��i pgsql/data/base/dbname. Profil klienta pak v jeho aktu�ln�m -adres��i. Korektn� profilace v prost�ed� Linux po�aduje konfiguraci -syst�mu s parametrem -DLINUX_PROFILE. - -3.8 Pro� dostanu "Sorry, too many clients", kdy� se zkou��m p�ipojit? ---------------------------------------------------------------------- - -Zvy�te limit postmastera na maxim�ln� po�et sou�asn� spu�t�n�ch -backend�. - -V�choz� hodnota je 32 backend�. Tuto hodnotu zv���te zastaven�m a -op�tovn�m spu�t�n�m postmastera s parametrem -N nebo �pravou -postgresql.conf. - -P�i zv��en� hodnoty -N nad 32 mus�te zv��it hodnotu -B nad v�choz� 64, --B mus� b�t minim�ln� dvakr�t v�t��, nebo je�t� l�pe v�ce. Pravd�podobn� -zjist�te, �e pro velk� po�et proces� backendu je nutn� zv��it n�kter� -parametry j�dra. Jsou to p�edev��m maxim�ln� velikost sd�len� pam�ti -SHMMAX, maxim�ln� po�et semaf�r� SEMMNS a SEMMNI, maxim�ln� po�et -proces� NPROC, maxim�ln� po�et proces� u�ivatele MAXUPRC a maxim�ln� -po�et otev�en�ch soubor� NFILE a NINODE. D�vod pro omezen� maxim�ln�ho -po�tu backend� je fakt, �e by mohlo doj�t k vy�erp�n� zdroj� Va�eho -syst�mu. - -3.9 K �emu slou�� adres�� pgsql_tmp? ------------------------------------- - -Tento adres�� obsahuje do�asn� soubory vytvo�en� exekutorem dotaz�. -Nap��klad, kdy� je nutn� t��d�n� k zaji�t�n� ORDER BY a t��d�n� m� v�t�� -n�roky na prostor ne� povoluje parametr -S backendu, pak je vytvo�en -do�asn� soubor k ulo�en� extra �daj�. - -Do�asn� soubory jsou obvykle maz�ny automaticky, ale m��e se st�t, �e -b�hem t��d�n� server spadne. Zastaven� a dal�� start postmastera zajist� -odstran�n� soubor� s t�chto adres���. - -3.10 Pro� je po�adov�no dump a obnoven� (load) datab�ze b�hem upgrade mezi velk�mi verzemi PostgreSQL? ------------------------------------------------------------------------------------------------------- - -PostgreSQL se minim�ln� m�n� b�hem mal�ch verz�, tak�e nap�. p�i upgrade -z 7.2 na 7.2.1 nen� nutn� dump a load datab�ze. Ale velk� verze �asto -m�n� intern� form�t syst�mov�ch tabulek a datov�ch soubor�. Tyto zm�ny -jsou natolik rozs�hl�, �e nelze zajistit zp�tnou kompatibilitu pro -datov� soubory. Dump ulo�� data v obecn�m form�tu, tak�e mohou b�t -na�tena a pou��v�na v nov�m intern�m form�tu. - ------------------------------------------------------------------------- - -Provozn� dotazy -=============== - -4.1 ��m se li�� bin�rn� a norm�ln� kurzor? ------------------------------------------- - -Popis najdete v manu�lov� str�nce DECLARE - -4.2 Jak z�skat pouze prvn� ��dek dotazu? N�hodn� ��dek? -------------------------------------------------------- - -Pod�vejte se do man. str�nky p��kazu FETCH, nebo pou�ijte SELECT ... -LIMIT ... - -Nen� nutn� zpracov�vat cel� dotaz, kdy� pot�ebujete pouze n�kolik -prvn�ch ��dk�. Pokud existuje index ORDER BY, PostgreSQL je schopen -p�eru�it zpracov�n� dotazu po z�sk�n� po�adovan�ho po�tu ��dk�. - -K z�sk�n� n�hodn�ho ��dku pou�ijte: - -SELECT col FROM tab - ORDER BY random() LIMIT 1; - -4.3 Jak z�sk�m seznam tabulek nebo jinak jak jej z�sk� psql? ------------------------------------------------------------- - -Pod�vejte se do zdrojov�ch k�d� psql do souboru -pgsql/src/bin/psql/describe.c. Ten obsahuje SQL p��kazy, kter� se -pou��vaj� v psql metap��kazech. D�le m��ete spustit psql s p�ep�na�em --E, kter� zp�sob� zobrazen� ka�d�ho dotazu, kter� zpracov�n� metap��kazu -vyvol�. - -4.4 Jak odstran�m sloupec tabulky, jak zm�n�m jeho typ? -------------------------------------------------------- - -Po��naje verz� 7.3 m��ete pou��t p��kaz ALTER TABLE DROP COLUMN. Ve -star��ch verz�ch m��ete pou��t n�sleduj�c� postup: - -BEGIN; -LOCK TABLE old_table; -SELECT ... -- mimo sloupec, kter� chceme odstranit - INTO TABLE new_table; -DROP TABLE old_table; -ALTER TABLE new_table RENAME TO old_table; -COMMIT; - -Pro zm�nu typu sloupce je t�eba prov�st: - -BEGIN; -ALTER TABLE tab ADD COLUMN new_col new_data_type; -UPDATE tab SET new_col = CAST(old_col AS new_data_type; -ALTER TABLE tab DROP COLUMN old_col; -COMMIT; - -Pot� prove�te VACUUM FULL tab - uvoln�te t�m diskov� prostor zabran� -nyn� ji� neplatn�mi ��dky. - -4.5 Jak� je maxim�ln� velikost ��dku, tabulky a datab�ze? ---------------------------------------------------------- - -PostgreSQL m� tato omezen�: - - Maxim�ln� velikost datab�ze: neomezena (existuj� 32TB db) - - Maxim�ln� velikost tabulky: 32 TB - - Maxim�ln� velikost ��dky: 1.6 TB - - Maxim�ln� velikost polo�ky 1 GB - - Maxim�ln� po�et ��dk� v tabulce: neomezeno - - Maxim�ln� po�et sloupc� v tabulce: 250-1600 podle typ� - - Maxim�ln� po�et index� na tabulce: neomezeno - -Ve skute�nosti nic nen� neomezeno, limitem b�v� v�dy dostupn� diskov� -pam� nebo velikost opera�n� pam�ti. Pokud m�te n�kterou z t�chto hodnot -neobvykle velkou, m��e doj�t ke sn��en� v�konu. - -Maxim�ln� velikost tabulky je 32 TB a nevy�aduje podporu velk�ch soubor� -opera�n�m syst�mem. Velk� tabulky se ukl�daj� do n�kolika 1 GB soubor� -tak�e limity souborov�ho syst�mu nejsou podstatn�. - -Maxim�ln� velikost tabulky a maxim�ln� po�et sloupc� m��eme -ze�ty�n�sobit nastaven�m velikosti bloku na 32K. - -4.6 Kolik diskov�ho prostoru je pot�eba k ulo�en� dat z norm�ln�ho textov�ho souboru? -------------------------------------------------------------------------------------- - -PostgreSQL vy�aduje a� p�tin�sobek diskov�ho prostoru k ulo�en� dat z -textov�ho souboru. - -Nap��klad, uva�ujme soubor se 100 tis�ci ��dky obsahuj�c� na ka�d� ��dce -cel� ��slo a textov� popis. Text je v pr�m�ru dvacet byt� dlouh�. -Textov� soubor bude 2.8 MB dlouh�. Velikost datab�ze obsahuj�c� -odpov�daj�c� data bude zhruba 6.4 MB. - - 36 byt�: hlavi�ka ��dku (p�ibli�n�) - 24 byt�: jedna celo��seln� polo�ka a jedna textov� - 4 byty: ukazatel na str�nku k ntici ------------------------------------------------------- - 64 byt� na ��dek - -Velikost datov� str�nky PostgreSQL je 8KB - - 8192 byt� na str�nce ----------------------- = 128 ��dek na str�nku - 64 byt� za ��dek - -100000 ��dek --------------------- = 782 str�nek (zaokrouhleno nahoru) -128 ��dek na str�nce - -782 * 8192 = 6, 406, 144 byt� (6.4 MB) - -Indexy nemaj� tak velkou re�ii, ale mohou b�t tak� velk�, proto�e -obsahuj� indexovan� data. - -Hodnoty NULL jsou ulo�eny v bitmap�ch, tak�e spot�ebuj� jen velmi m�lo -diskov�ho prostoru. - -4.7 Jak z�sk�m seznam vytvo�en�ch tabulek, index�, datab�z�? ------------------------------------------------------------- - -psql m� sadu metap��kaz� k zobrazen� t�chto informac�. Jejich seznam -z�sk�te p��kazem \?. D�le se m��ete pod�vat na obsah syst�mov�ch tabulek -za��naj�c�ch pg_. Spu�t�n� psql s parametrem -l provede v�pis n�zv� -v�ech datab�z�. - -Soubor pgsql/src/tutorial/syscat.source obsahuje SELECTy p�istupuj�c� k -syst�mov�m tabulk�mm. - -4.8 M�j dotaz je pomal� a nepou��v� vytvo�en� indexy. Pro�? ------------------------------------------------------------ - -Ka�d� dotaz nemus� nutn� pou��t existuj�c� indexy. Index se pou�ije -tehdy, kdy� je tabulka v�t�� ne� ur�it� minim�ln� velikost, a dotaz -vyb�r� pouze procentu�ln� malou ��st ��dk� tabulky. To proto, �e n�hodn� -p��stup k disku dan� �ten�m indexu m��e b�t pomalej�� ne� line�rn� �ten� -tabulky nebo sekven�n� �ten�, - -PostgreSQL rozhoduje o pou�it� index� na z�klad� statistiky p��stup� k -tabulce. Tyto statistiky se shroma��uj� p��kazy VACUUM ANALYZE nebo -ANALYZE. D�ky statistik�m m� optimizer informaci o po�tu ��dek v tabulce -a m��e l�pe rozhodnout o pou�it� index�. Statistiky se uplatn� p�i -ur�en� optim�ln�ho po�ad� a metody spojen� tabulek. Statistiky by se -m�li aktualizovat opakovan�, tak jak se m�n� obsah tabulek. - -Indexy nejsou oby�ejn� pou�ity pro set��d�n� nebo spojen� tabulek. -Sekven�n� zpracov�n� n�sledovan� explicitn�m t��d�n�m je oby�ejn� -rychlej�� ne� indexn� �ten� na velk� tabulce. - -Jinak je tomu v p��pad� pou�it� LIMIT a ORDER BY, p�i kter�m se v�t�inou -index pou�ije, v�sledkem je pouze mal� ��st tabulky. Funkce MAX() a -MIN() nepou��vaj� indexy, ale je mo�n� tut� hodnotu z�skat - -SELECT col FROM tab - ORDER BY col [ DESC ] LIMIT 1; - -Pokud si mysl�te, �e optimizer myln� zvolil sekven�n� prohled�v�n� -tabulky, pou�ijte p��kaz SET enable_seqscan TO 'off' a zkuste zda je -indexn� prohled�v�n� rychlej��. - -P�i vyhled�v�n� na z�klad� vzoru jako je nap�. oper�tor LIKE nebo ~ se -indexy pou��j� pouze za ur�it�ch skute�nost�: - - - za��tek hledan�ho vzoru mus� b�t ukotven k za��tku, tj. - - * vzor LIKE nesm� za��nat % - * regul�rn� v�raz mus� za��nat ^ - - - vzor nesm� za��nat intervalem, nap�. [a-e] - - - vyhled�van�, kter� nen� Case sensitiv nepou��v� indexy. - M��ete ale pou��t funkcion�ln� indexy, kter� jsou pos�ny v sekci - 4.12 - - p�i inicializaci datab�ze (initdb) mus� b�t pou�ito C locale - (pozn. p�ekladatele - tud�� v na�ich podm�nk�ch nepou�iteln�, - nepracovalo by �esk� t��d�n�). - -4.9 Jak zjist�m, jak optimizer dotazu vyhodnocuje m�j dotaz? ------------------------------------------------------------- - -Pod�vejte se do manu�lov� str�nky p��kazu EXPLAIN. - -4.10 Co to je R-tree index? ---------------------------- - -R-tree index se pou��v� pro indexov�n� prostorov�ch dat. Hash index -nem��e obslou�it prohled�v�n� oblast�. B-tree index m��e ��dit vyhled�n� -oblast� v jedn� dimenzi. R-tree index m��e podporovat hled�n� v -multidimenzion�ln�ch datech. Pou�ijeme-li nap��klad R-tree index na -atributy typu point, pak syst�m m��e efektivn� odpov�d�t na dotaz - -vyber v�echny body uvnit� obd�ln�k�. - -P�vodn� n�vrh R-tree je Guttman, A. "R-trees: A Dynamic Index Structure -for Spatial Searching." Proceedings of the 1984 ACM SIGMOD Int'l Conf on -Mgmt of Data, 45-57 - -Tyto materi�ly naleznete v Stonebraker's "Readings in Database Systems". - -Vestav�n� R-tree m��e slou�it k indexaci polygon� a oblast�. Teoreticky -m��eme R-tree pou��t i pro v�ce dimenz� (jin� ne� 3D). Ve skute�nosti -ale takov� roz���en� R-tree vy�aduje trochu pr�ce a ve sou�astnosti -chyb� dokumentace jak na to. - -4.11 Co je Genetic Query Optimizer? ------------------------------------ - -GEQO modul urychluje optimalizaci dotaz� p�i spojov�n� mno�stv� tabulek -metodou Genetick�ch algoritm� (GA). To umo��uje z�skat velk�ho mno�stv� -variant spojen� p�i ne�pln�m prohled�v�n�m. - -4.12 Jak prov�st vyhled�v�n� regul�rn�ho v�razu case sensitiv, -insensitiv? Jak pou��t index pro case insensitive vyhled�v�n�? - -Oper�tor ~ slou�� k porov�n� s regul�rn�m v�razem, jeho modifikace *~ -p�edstavuje case insensitive vyhled�v�n�. Jedn� se o obdobu LIKE a -ILIKE. - -Pro vyhled�v�n� bez ohledu na velk� mal� p�smena pou�ijeme - -SELECT * FROM tab - WHERE lower(col) = 'abc'; - -V tomto p��pad� se nepou�ije standardn� index. Nicm�n�, pou�ije se -funkcion�ln� index, pokud jej vytvo��te - -CREATE INDEX tabindex ON tab (lower(col)); - -4.13 Jak v dotazu detekovat, �e polo�ka je NULL? ------------------------------------------------- - -Ur��te pomoc� IS NULL nebo IS NOT NULL - -4.14 Jak� jsou rozd�ly mezi r�zn�mi znakov�mi typy? ---------------------------------------------------- + �asto kladen� dotazy (FAQ) PostgreSQL + + Posledn� aktualizace: St�eda 23. �ervna 21:10:00 EST 2004 + + Sou�asn� spr�vce: Bruce Momjian ([email protected]) + + P�elo�il: Pavel St�hule ([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. + + Odpov�di na dotazy relevantn� ke konkr�tn�m platform�m lze nal�zt na + adrese: http://www.PostgreSQL.org/docs/index.html. + _________________________________________________________________ + + Obecn� ot�zky + + 1.1) Co je PostgreSQL? Jak se vyslovuje? + 1.2) Jak� je licence na PostgreSQL? + 1.3) Na kter�ch Unixex lze spustit PostgreSQL? + 1.4) Kter� ne-unixov� platformy jsou podporovan�? + 1.5) Kde mohu z�skat PostgreSQL? + 1.6) Kde mohu z�skat podporu? + 1.7) Kde je posledn� verze? + 1.8) Jak� je dostupn� dokumentace? + 1.9) Kde najdu seznam zn�m�ch chyb nebo nepodporovan�ch vlastnost�? + 1.10) Jak se mohu nau�it SQL? + 1.11) Nem� PostgreSQL probl�my s rokem 2000? + 1.12) Jak se p�ipojit k v�voj��sk�mu t�mu? + 1.13) Kam podat report o chyb�? + 1.14) Jak je na tom PostgreSQL v porovn�n� s jin�mi datab�zemi? + 1.15) Jak lze finan�n� pomoci PostgreSQL? + + User client dotazy + + 2.1) Kde naleznu ODBC ovlada�e pro PostgreSQL? + 2.2) Jak� n�stroje lze pou��t pro PostgreSQL a web? + 2.3) Existuje grafick� rozhran� pro PostgreSQL? + 2.4) Kter� programovac� jazyky maj� podporu pro PostgreSQL? + + Administrativn� dotazy + + 3.1) Jak nainstalovat PostgreSQL jinam ne� do /usr/local/pgsql? + 3.2) P�i startu postmaster, dostanu chybov� hl�en� Bad System Call + nebo core dump. Pro�? + 3.3) P�i startu postmastera dostanu hl�en� o chyb� IpcMemoryCreate. + Pro�? + 3.4) P�i startu postmastera dostanu hl�en� o chyb� + IpcSemaphoreCreate. Pro�? + 3.5) Jak povolit nebo zak�zat p��stup z jin�ch stanic? + 3.6) Jak ladit datab�zov� stroj na lep�� v�kon? + 3.7) Jak� jsou mo�nosti lad�n�? + 3.8) Pro� dostanu "Sorry, too many clients", kdy� se zkou��m p�ipojit? + 3.9) K �emu slou�� adres�� pgsql_tmp? + 3.10) Pro� je po�adov�no dump a obnoven� (load) datab�ze b�hem upgrade + mezi velk�mi verzemi PostgreSQL? + + Provozn� dotazy + + 4.1) ��m se li�� bin�rn� a norm�ln� kurzor? + 4.2) Jak z�skat pouze prvn� ��dek dotazu? N�hodn� ��dek? + 4.3) Jak z�sk�m seznam tabulek nebo jinak jak jej z�sk� psql? + 4.4) Jak odstran�m sloupec tabulky, jak zm�n�m jeho typ? + 4.5) Jak� je maxim�ln� velikost ��dku, tabulky a datab�ze? + 4.6) Kolik diskov�ho prostoru je pot�eba k ulo�en� dat z norm�ln�ho + textov�ho souboru? + 4.7) Jak z�sk�m seznam vytvo�en�ch tabulek, index�, datab�z�? + 4.8) M�j dotaz je pomal� a nepou��v� vytvo�en� indexy. Pro�? + 4.9) Jak zjist�m, jak optimizer dotazu vyhodnocuje m�j dotaz? + 4.10) Co to je R-tree index? + 4.11) Co je Genetic Query Optimizer? + 4.12) Jak prov�st vyhled�v�n� regul�rn�ho v�razu case sensitiv, + insensitiv? Jak pou��t index pro case insensitive vyhled�v�n�? + 4.13) Jak v dotazu detekovat, �e polo�ka je NULL? + 4.14) Jak� jsou rozd�ly mezi r�zn�mi znakov�mi typy? + 4.15.1) Jak vytvo�it serial/auto-increment pole? + 4.15.2) Jak z�skat hodnotu SERIAL po vlo�en� ��dku? + 4.15.3) Nepovede currval() a nextval() k rozhozen� podm�nek p�i + soub�hu s jin�mi u�ivateli? + 4.15.4) Pro� nen� vygenerovan� ��slo pou�ito p�i p�eru�en� transakce? + Pro� vznikaj� d�ry v ��slov�n� vlastn� sekvenc�/SERIAL sloupce? + 4.16) Co to je OID? Co je to TID? + 4.17) Jak� je v�znam n�kter�ch v�raz� pou�it�ch v PostgreSQL? + 4.18) Pro� jsem z�skal chybov� hl�en� "ERROR: Memory exhausted in + AllocSetAlloc()"? + 4.19) Jak se dozv�m, kterou verzi PostgreSQL pou��v�m? + 4.20) Pro� operace s velk�mi objekty kon�� "invalid large obj + descriptor"? + 4.21) Jak vytvo�it sloupec obsahuj�c� implicitn� aktu�ln� datum? + 4.22) Pro� jsou moje vno�en� dotazy pou��vaj�c� IN tak pomal�? + 4.23) Jak prov�st vn�j�� spojen� (outer join)? + 4.24) Jak prov�st dotaz nap��� n�kolika datab�zemi? + 4.25) M��e funkce vr�tit v�ce ��dk� nebo sloupc�? + 4.26) Pro� nelze spolehliv� vytv��et a ru�it do�asn� tabulky v + PL/pgSQL funkc�ch? + 4.27) Jak� jsou mo�nosti replikace datab�z�? + 4.28) Jak� jsou mo�nosti �ifrov�n� datab�z�? + + Roz�i�ov�n� PostgreSQL + + 5.1) Napsal jsem UDF funkci, PostgreSQL v�ak kon�� dump core? + 5.2) Jak mohu p�isp�t n�jak�mi �ikovn�mi datov�mi typy a funkcemi do + PostgreSQL? + 5.3) Jak napsat funkci v C vracej�c� ntici? + 5.4) Modifikoval jsem zdrojov� soubory. Tato zm�na nebyla p�i + rekompilaci vzata v potaz. Pro�? + _________________________________________________________________ + + Obecn� ot�zky + + 1.1) Co je PostgreSQL? Jak se vyslovuje? + + PostgreSQL se vyslovuje Post-Gres-Q-L. Zvukov� z�znam je dostupn� na + adrese . + + PostgreSQL vych�z� z datab�ze POSTGRES (a st�le je n�kdy ozna�ov�n + zjednodu�en� jako Postgres) - v�zkumn�ho prototypu DBMS nov� generace. + Z postgresu byl p�evzat siln� datov� model a bohat� soubor datov�ch + typ� a jeho dotazovac� jazyk PostQuel byl nahrazen roz���enou + podmno�inou jazyka SQL. PostgreSQL lze pou��vat bez omezen� a jeho + zdrojov� k�dy jsou voln� k dispozici. + + PostgreSQL vyv�j� t�m v�voj��� p�ihl�en�ch do v�voj��sk� konference + PostgreSQL. Sou�asn�m koordin�torem je Marc G. Fournier + ([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-2005, PostgreSQL Global Development Group + D�l�� Copyright (c) 1994-6, Regents of the University of California + + Ud�luje se opr�vn�n� k u�it�, rozmno�ov�n�, prov�d�n� �prav a + roz�i�ov�n� tohoto softwaru a dokumentace k n�mu, pro jak�koli ��ely, + bez licen�n�ho poplatku a bez p�semn� licen�n� smlouvy, za podm�nky, + �e na v�ech jeho kopi�ch je uvedeno ozn�men� o v��e uveden�ch pr�vech, + jako� i obsah tohoto a dvou n�sleduj�c�ch odstavc�. + + THE UNIVERSITY OF CALIFORNIA ("KALIFORNSK� UNIVERZITA") NEN� V ��DN�M + P��PAD� ODPOV�DNA ��DN� T�ET� OSOB� ZA P��MOU, NEP��MOU, ZVL��TN�, + NAHODILOU NEBO V�SLEDNOU �KODU, V�ETN� U�L�HO ZISKU, ZP�SOBENOU U�IT�M + TOHOTO SOFTWARU A DOKUMENTACE K N�MU, A TO I V P��PAD�, �E THE + UNIVERSITY OF CALIFORNIA BYLA INFORMOV�NA O MO�NOSTI VZNIKU TAKOV� + �KODY. + + HE UNIVERSITY OF CALIFORNIA ZEJM�NA NEPOSKYTUJE JAK�KOLI Z�RUKY, A TO + NEJEN Z�RUKY OBCHODOVATELNOSTI A VHODNOSTI TOHOTO V�ROBKU KE + SPECIFICK�M ��EL�M. NͮE UVEDEN� SOFTWARE JE POSKYTNUT "JAK STOJ� A + LE��" A THE UNIVERSITY OF CALIFORNIA NEN� POVINNA ZAJISTIT JEHO + �DR�BU, PODPORU, AKTUALIZACI, VYLEP�EN� NEBO MODIFIKACI. + + V��e uveden� je BSD licence, b�n� licence otev�en�ho zdroje. Nen� zde + ��dn� omezen� ohledn� u�it� k�du zdroje. Jsme s t�m spokojeni a nem�me + v �myslu na t�to skute�nosti cokoli m�nit. + + 1.3) Na kter�ch Unixex lze spustit PostgreSQL? + + PostgreSQL b�� na v�ech modern�ch unixov�ch platform�ch. V + instala�n�ch instrukc�ch naleznete aktu�ln� seznam v�ech platforem na + kter�ch byla testov�n�m ov��ena funkcionalita PostgreSQL. + + 1.4) Kter� ne-unixov� platformy jsou podporovan�? + + Klient + + Knihovna libpq, psql a n�kter� dal�� moduly byly p�elo�eny pro MS + Windows. Klienta lze provozovat na MS Windows, ten prost�ednictv�m + TCP/IP protokolu komunikuje se serverem b��c�m na n�kter� z + podporovan�ch Unixov�ch platforem. K p�ekladu lze pou��t win32.mak a + Win32 knihovny libpq a psql. K datab�zi PostgerSQL lze p�istupovat + skrze rozhran� ODBC. + + Server + + Server m��e b�t na WindowsNT a Win2k provozov�n pouze s knihovnou + Cygwin, Cygnus Unix/NT porting library. V�ce pgsql/doc/FAQ_MSWIN v + distribuci nebo MS Windows FAQ na adrese + http://www.PostgreSQL.org/docs/faqs/text/FAQ_MSWIN. + + Na nativn�m portu pro MS Win NT/2000/XP se pracuje. Dal�� informace o + aktu�ln�m stavu PostgreSQL pro Windows naleznet na adrese + http://techdocs.postgresql.org/guides/Windows a + http://momjian.postgresql.org/main/writings/pgsql/win32.html. + + Existuj�c� port pro Novell Netware 6 naleznete na + http://forge.novell.com. + + 1.5) Kde mohu z�skat PostgreSQL? + + Prim�rn�m anonymn�m ftp serverem pro PostgreSQL je + ftp://ftp.PostgreSQL.org/pub. Seznam zrcadel naleznete na na�ich + webov�ch str�nk�ch. + + 1.6) Kde mohu z�skat podporu? + + Hlavn� mailov� konference je: [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. + _________________________________________________________________ + + Pokud m�te p��klad �sp�n�ho nasazen� PostgreSQL, p�ihla�t� se na n� + advocacy site na http://advocacy.postgresql.org. + + User client dotazy + + 2.1) Kde naleznu ODBC ovlada�e pro PostgreSQL? + + Pro PostgreSQL existuj� dva ODBC ovlada�e - PsqlODBC a OpenLink ODBC. + + PsqlODBC je ke sta�en� na + http://gborg.postgresql.org/project/psqlodbc/projdisplay.php. + + OpenLink m��ete z�skat na http://www.openlinksw.com. Spolupracuje s + jejich klientsk�m programov�m vybaven�m a je dostupn� pro v�echny jimi + podporovan� platformy (Win, Mac, Unix, VMS). + + Tento ovlada� je ur�en pro ty, kte�� vy�aduj� podporu komer�n� + kvality, nicm�n� freeware verze je dostupn� a funk�n�. Dotazy + zas�lejte na [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. + + Pro slo�it�j�� p��pady se �asto pou��v� Perl a CGI.pm nebo mod_perl. + + 2.3) Existuje grafick� rozhran� pro PostgreSQL? + + Pro PostgreSQL existuje n�kolik grafick�ch rozhran�: PgAccess + (http://www.php.net), PgAdmin III (http://www.php.net), RHDB Admin + (http://sources.redhat.com/rhdb/) a Rekall ( + http://www.thekompany.com/products/rekall/). D�le je�t� PhpPgAdmin + (http://phppgadmin.sourceforge.net/) co� je rozhran� PostgreSQL + zalo�en� na web technologii. + + �pln�j�� seznam najdete na + http://techdocs.postgresql.org/guides/GUITools. + + 2.4) Kter� programovac� jazyky maj� podporu pro PostgreSQL? + + V�t�ina programovac�ch jazyk� obsahuje rozhran� pro PostgreSQL. + Pod�vejte se do roz�i�uj�c�ch modul� Va�eho programovac�ho jazyka. + + Distribuce PostgreSQL obsahuje tato rozhran�: + * C (libpq) + * Embbedded C (ecpg) + * Java (jdbc) + * Python (PyGreSQL) + * TCL (libpgtcl) + + Dal�� rozhran� jsou dostupn� na http://gborg.postgresql.org v sekci + Drivers/Interfaces. + _________________________________________________________________ + + Administrativn� dotazy + + 3.1) Jak nainstalovat PostgreSQL jinam ne� do /usr/local/pgsql? + + Pou�ijte volbu --prefix p�i spu�t�n� configure. + + 3.2) P�i startu postmaster, dostanu chybov� hl�en� Bad System Call nebo + core dump. Pro�? + + D�vody mohou b�t r�zn�, ale nejprve zkontrolujte, zda V� syst�m + podporuje System V extensions. PostgreSQL vy�aduje v j�d�e podporu + sd�len� pam�ti a semafor�. + + 3.3) P�i startu postmastera dostanu hl�en� o chyb� IpcMemoryCreate. Pro�? + + Bu�to nem�te spr�vn� nakonfigurovanou sd�lenou pam� v j�d�e nebo + musite zv�t�it jej� velikost. Pot�ebn� velikost je z�visl� na + architektu�e a na tom, kolik pam�ov�ch buffer� a backend� m�te + povoleno pro postmastera. Pro v�t�inu syst�m� s p�eddefinovan�m po�tem + backend� a pam�ov�ch buffer� je minimum zhruba 1MB. V PostgreSQL + Administrator's Guide naleznete podrobn�j�� informace o sd�len� pam�ti + a semaforech. + + 3.4) P�i startu postmastera dostanu hl�en� o chyb� IpcSemaphoreCreate. + Pro�? + + Pokud dostane chybovou zpr�vu IpcSemaphoreCreate: semget failed (No + space left on device), pak va�e j�dro nem� dost voln�ch semafor�. + PostgreSQL vy�aduje jeden semafor pro ka�d� backend v pozad�. Do�asn�m + �e�en�m je start postmaster s limitem backend�. Pou�ijte p�ep�na� -N s + hodnotou men�� ne� 32. �pln�m �e�en�m je zv��en� hodnot SEMMNS a + SEMMNI jadra. + + Nefunk�n� semafory mohou zp�sobit p�d b�hem intenzivn�ch datab�zov�ch + operac�. + + Pokud se tato chyba vyskytuje je�t� n�kde jinde, mo�n� nem�te v�bec + nakonfigurov�ny semafory ve va�em j�d�e. V PostgreSQL Administrator's + Guide najdete podrobn�j�� popis po�adavk� na sd�lenou pam�t a + semafory. + + 3.5) Jak povolit nebo zak�zat p��stup z jin�ch stanic? + + P�i v�choz�m nastaven� PostgreSQL odep�e p��stup z jin�ch stanic ne� + lok�ln� s pou�it�m UDP. P��stup z jin�ch stroj� nen� mo�n� dokud jej + nepovol�te nastaven�m tcpip_socket v postgresql.conf a ur�en�m zp�sobu + autentifikace v $PGDATA/pg_hba.conf. + + 3.6) Jak ladit datab�zov� stroj na lep�� v�kon? + + Ur�it� pomohou indexy. P��kaz EXPLAIN ANALYZE V�m umo�n� sledovat jak + PostgreSQL interpretuje V� dotaz a kter� indexy pou��v�. + + P�i v�t�� d�vce INSERT� uva�ujte o n�hrad� p��kazem COPY. Ten je + mnohem rychlej�� ne�li samotn� INSERT. Ka�d� p��kaz mimo blok BEGIN + WORK/COMMIT se prov�d� ve vlastn� transakci. Zva�te, zda-li by se + nedalo n�kolik p��kaz� spojit do jedn� transakce. T�m se sn��� re�ie + na transakce. P�ed proveden�m rozs�hl�ch zm�n zru�te indexy, kter� po + dokon�en� zm�n op�t vytvo�te. + + M�te n�kolik dal��ch mo�nost�, jak zlep�it v�kon. M��ete zak�zat + fsyn() p�i startu postmastera p�ep�na�i -o -F. Tyto p�ep�na�e zabr�n� + fsync(), tj. z�pisu na disk po ka�d� transakci. + + M��ete zv��it velikost pam�ov�ch buffer� pou�it�ch backendy tj. + parametr -B postmasteru. Pokud ale tato hodnota bude p��li� velk�, tak + mo�n� nespust�te postmastera jeliko� dos�hnete limitu sd�len� pam�ti. + Ka�d� buffer m� 8K a implicitn� je 64 buffer�. + + D�le m��ete pou��t p�ep�na� -S k zv��en� limitu pam�ti pro backendy na + do�asn� t��d�n�. Hodnota je m�n�na v kilobytech a v�choz� nastaven� je + 512, tj. 512K. + + M��ete pou��t p��kaz CLUSTER, kter� uspo��d� fyzicky data v tabulk�ch + podle indexu. V�ce na manu�lov�ch str�nk�ch p��kazu CLUSTER. + + 3.7) Jak� jsou mo�nosti lad�n�? + + M�te n�kolik mo�nost� jak se dostat k u�ite�n�m stavov�m informac�m. + + Zaprv�, p�i p�ekladu pou�ijte p�ep�na� --enable-cassert, t�m se zapne + monitorov�n� a n�sledn� zastaven� aplikace, kdy� se proces v backendu + dostane do neo�ek�van�ho stavu. + + Jak postmaster tak postgres m� n�kolik p�ep�na�� umo��uj�c�ch lad�n�. + Postmaster nastartujte tak, abyste si byli jisti, �e je standartn� + v�stup a standartn� chybov� v�stup p�esm�rov�n do souboru logu, + nap��klad: + cd /usr/local/pgsql + ./bin/postmaster > server.log 2>&1 & + + T�m se vytvo�� log v adres��i PostgreSQL, Tento soubor obsahuje + u�ite�n� informace o probl�mech a chyb�ch vyskytl�ch se na serveru. + Postmaster m� p�ep�na� -d ur�uj�c�, jak podrobn� maj� b�t reportovan� + informace, tj. debug level. Pozor, p�i velk� hodnot� debug levelu + rychle roste velikost souboru logu. + + Pokud neb�� postmaster, m��ete spustit backend PostgreSQL z p��kazov� + ��dky a napsat sv�j SQL dotaz p��mo v backendu (doporu�eno pouze pro + lad�n�). Dotaz je v tomto p��pad� ukon�en novou ��dkou, nikoliv + st�edn�kem. Pokud m�te aplikaci p�elo�enou s lad�c�mi symboly, m��ete + pou��t debbuger k monitorov�n� procesu. Pokud nen� backend spu�t�n + postmasterem, pak neb�� ve sv�m obvykl�m prost�ed� a tud�� n�kter� + probl�my dan� interakc� mezi backendy nemohou b�t nasimulov�ny. + + Pokud b�� postmaster, spus�e psql v jednom okn� a pak si zjist�te PID + procesu postgres pou�it�ho psql. V debuggeru sep�ipojte k postgresql + PID. Pak nastavte breakpointy v debuggeru a zadejte dotaz v psql. + Pokud lad�te startup postgresu, pak nastavte PGOPTIONS="-W n" a spus�e + psql. Tento p�ep�na� zp�sob� pauzu n sekund, tak�e budete m�t �as se + p�ipojit k procesu, a nastavit breakpointy a pokra�ovat v startup + posloupnosti. + + Pro lad�n� a m��en� v�konu mohou b�t u�ite�n� p�ep�na�e -s, -A a -t + programu postgres (backend). + + M��ete prov�st p�eklad s profilac�, tak abyste vid�li kolik �asu + zab�raj� jednotliv� funkce. Soubory s profily backend� jsou ulo�eny v + adres��i pgsql/data/base/dbname. Profil klienta pak v jeho aktu�ln�m + adres��i. Korektn� profilace v prost�ed� Linux po�aduje konfiguraci + syst�mu s parametrem -DLINUX_PROFILE. + + 3.8) Pro� dostanu "Sorry, too many clients", kdy� se zkou��m p�ipojit? + + Zvy�te limit postmastera na maxim�ln� po�et sou�asn� spu�t�n�ch + backend�. + + V�choz� hodnota je 32 backend�. Tuto hodnotu zv���te zastaven�m a + op�tovn�m spu�t�n�m postmastera s parametrem -N nebo �pravou + postgresql.conf. + + P�i zv��en� hodnoty -N nad 32 mus�te zv��it hodnotu -B nad v�choz� 64, + -B mus� b�t minim�ln� dvakr�t v�t��, nebo je�t� l�pe v�ce. + Pravd�podobn� zjist�te, �e pro velk� po�et proces� backendu je nutn� + zv��it n�kter� parametry j�dra. Jsou to p�edev��m maxim�ln� velikost + sd�len� pam�ti SHMMAX, maxim�ln� po�et semaf�r� SEMMNS a SEMMNI, + maxim�ln� po�et proces� NPROC, maxim�ln� po�et proces� u�ivatele + MAXUPRC a maxim�ln� po�et otev�en�ch soubor� NFILE a NINODE. D�vod pro + omezen� maxim�ln�ho po�tu backend� je fakt, �e by mohlo doj�t k + vy�erp�n� zdroj� Va�eho syst�mu. + + 3.9) K �emu slou�� adres�� pgsql_tmp? + + Tento adres�� obsahuje do�asn� soubory vytvo�en� exekutorem dotaz�. + Nap��klad, kdy� je nutn� t��d�n� k zaji�t�n� ORDER BY a t��d�n� m� + v�t�� n�roky na prostor ne� povoluje parametr -S backendu, pak je + vytvo�en do�asn� soubor k ulo�en� extra �daj�. + + Do�asn� soubory jsou obvykle maz�ny automaticky, ale m��e se st�t, �e + b�hem t��d�n� server spadne. Zastaven� a dal�� start postmastera + zajist� odstran�n� soubor� s t�chto adres���. + + 3.10) Pro� je po�adov�no dump a obnoven� (load) datab�ze b�hem upgrade mezi + velk�mi verzemi PostgreSQL? + + PostgreSQL se minim�ln� m�n� b�hem mal�ch verz�, tak�e nap�. p�i + upgrade z 7.2 na 7.2.1 nen� nutn� dump a load datab�ze. Ale v�ynamn� + verze �asto m�n� intern� form�t syst�mov�ch tabulek a datov�ch + soubor�. Tyto zm�ny jsou natolik rozs�hl�, �e nelze zajistit zp�tnou + kompatibilitu pro datov� soubory. Dump ulo�� data v obecn�m form�tu, + tak�e mohou b�t na�tena a pou��v�na v nov�m intern�m form�tu. + _________________________________________________________________ + + Provozn� dotazy + + 4.1) ��m se li�� bin�rn� a norm�ln� kurzor? + + Popis najdete v manu�lov� str�nce DECLARE + + 4.2) Jak z�skat pouze prvn� ��dek dotazu? N�hodn� ��dek? + + Pod�vejte se do man. str�nky p��kazu FETCH, nebo pou�ijte SELECT ... + LIMIT ... + + I kdy� pot�ebujete z�skat pouze prvn�ch n�kolik ��dk�, je t�eba + zpracovat v�echna data, nap�. pokud dotaz m� ORDER BY. Pokud v�ak + existuje index, kter� odpov�d� ORDER BY, PostgreSQL m��e z�skat pouze + prvn�ch n ��dk� a ukon�it zpracov�n� dotazu. + + K z�sk�n� n�hodn�ho ��dku pou�ijte: + SELECT col + FROM tab + ORDER BY random() + LIMIT 1; + + 4.3) Jak z�sk�m seznam tabulek nebo jinak jak jej z�sk� psql? + + P��kaz \dt v psql zobraz� seznam tabulek. �pln� seznam p��kaz� psql + dostanete p��kazem \?. Tak� se m��ete pod�vat do zdrojov�ch k�d� psql + do souboru pgsql/src/bin/psql/describe.c. Ten obsahuje SQL p��kazy, + kter� se pou��vaj� v psql metap��kazech. D�le m��ete spustit psql s + p�ep�na�em -E, kter� zp�sob� zobrazen� ka�d�ho dotazu, kter� + zpracov�n� metap��kazu vyvol�. PostgreSQL nab�z� SQLi INFORMATION + SCHEMA s tabulkami obsahuj�c� informace o datab�zi. + + 4.4) Jak odstran�m sloupec tabulky, jak zm�n�m jeho typ? + + Po��naje verz� 7.3 m��ete pou��t p��kaz ALTER TABLE DROP COLUMN. Ve + star��ch verz�ch m��ete pou��t n�sleduj�c� postup: + BEGIN; + LOCK TABLE old_table; + SELECT ... -- mimo sloupec, kter� chceme odstranit + INTO TABLE new_table; + DROP TABLE old_table; + ALTER TABLE new_table RENAME TO old_table; + COMMIT; + + Pro zm�nu typu sloupce je t�eba prov�st: + BEGIN; + ALTER TABLE tab ADD COLUMN new_col new_data_type; + UPDATE tab SET new_col = CAST(old_col AS new_data_type; + ALTER TABLE tab DROP COLUMN old_col; + COMMIT; + + Pot� prove�te VACUUM FULL tab - uvoln�te t�m diskov� prostor zabran� + nyn� ji� neplatn�mi ��dky. + + 4.5) Jak� je maxim�ln� velikost ��dku, tabulky a datab�ze? + + PostgreSQL m� tato omezen�: + Maxim�ln� velikost datab�ze: neomezena (existuj� 32TB db) + Maxim�ln� velikost tabulky: 32 TB + Maxim�ln� velikost ��dky: 1.6 TB + Maxim�ln� velikost polo�ky 1 GB + Maxim�ln� po�et ��dk� v tabulce: neomezeno + Maxim�ln� po�et sloupc� v tabulce: 250-1600 podle typ� + Maxim�ln� po�et index� na tabulce: neomezeno + + Ve skute�nosti nic nen� neomezeno, limitem b�v� v�dy dostupn� diskov� + pam� nebo velikost opera�n� pam�ti. Pokud m�te n�kterou z t�chto + hodnot neobvykle velkou, m��e doj�t ke sn��en� v�konu. + + Maxim�ln� velikost tabulky je 32 TB a nevy�aduje podporu velk�ch + soubor� opera�n�m syst�mem. Velk� tabulky se ukl�daj� do n�kolika 1 GB + soubor� tak�e limity souborov�ho syst�mu nejsou podstatn�. + + Maxim�ln� velikost tabulky a maxim�ln� po�et sloupc� m��eme + ze�ty�n�sobit nastaven�m velikosti bloku na 32K. + + 4.6) Kolik diskov�ho prostoru je pot�eba k ulo�en� dat z + + norm�ln�ho textov�ho souboru? + + PostgreSQL vy�aduje a� p�tin�sobek diskov�ho prostoru k ulo�en� dat z + textov�ho souboru. + + Nap��klad, uva�ujme soubor se 100 tis�ci ��dky obsahuj�c� na ka�d� + ��dce cel� ��slo a textov� popis. Text je v pr�m�ru dvacet byt� + dlouh�. Textov� soubor bude 2.8 MB dlouh�. Velikost datab�ze + obsahuj�c� odpov�daj�c� data bude zhruba 6.4 MB. + 36 byt�: hlavi�ka ��dku (p�ibli�n�) + 24 byt�: jedna celo��seln� polo�ka a jedna textov� + + 4 byty: ukazatel na str�nku k ntici + ------------------------------------------------------ + 64 byt� na ��dek + + Velikost datov� str�nky PostgreSQL je 8KB + + 8192 byt� na str�nce + ---------------------- = 128 ��dek na str�nku + 64 byt� za ��dek + + 100000 ��dek + -------------------- = 782 str�nek (zaokrouhleno nahoru) + 128 ��dek na str�nce + + 782 * 8192 = 6, 406, 144 byt� (6.4 MB) + + Indexy nemaj� tak velkou re�ii, ale mohou b�t tak� velk�, proto�e + obsahuj� indexovan� data. + + Hodnoty NULL jsou ulo�eny v bitmap�ch, tak�e spot�ebuj� jen velmi m�lo + diskov�ho prostoru. + + 4.7) Jak z�sk�m seznam vytvo�en�ch tabulek, index�, datab�z�? + + psql m� sadu metap��kaz� k zobrazen� t�chto informac�. Jejich seznam + z�sk�te p��kazem \?. D�le se m��ete pod�vat na obsah syst�mov�ch + tabulek za��naj�c�ch pg_. Spu�t�n� psql s parametrem -l provede v�pis + n�zv� v�ech datab�z�. + + Soubor pgsql/src/tutorial/syscat.source obsahuje SELECTy p�istupuj�c� + k syst�mov�m tabulk�mm. + + 4.8) M�j dotaz je pomal� a nepou��v� vytvo�en� indexy. Pro�? + + Ka�d� dotaz nemus� nutn� pou��t existuj�c� indexy. Index se pou�ije + tehdy, kdy� je tabulka v�t�� ne� ur�it� minim�ln� velikost, a dotaz + vyb�r� pouze procentu�ln� malou ��st ��dk� tabulky. To proto, �e + n�hodn� p��stup k disku dan� �ten�m indexu m��e b�t pomalej�� ne� + line�rn� �ten� tabulky nebo sekven�n� �ten�. + + PostgreSQL rozhoduje o pou�it� index� na z�klad� statistiky p��stup� k + tabulce. Tyto statistiky se shroma��uj� p��kazy VACUUM ANALYZE nebo + ANALYZE. D�ky statistik�m m� optimizer informaci o po�tu ��dek v + tabulce a m��e l�pe rozhodnout o pou�it� index�. Statistiky se uplatn� + p�i ur�en� optim�ln�ho po�ad� a metody spojen� tabulek. Statistiky by + se m�li aktualizovat opakovan�, tak jak se m�n� obsah tabulek. + + Indexy nejsou oby�ejn� pou�ity pro set��d�n� nebo spojen� tabulek. + Sekven�n� zpracov�n� n�sledovan� explicitn�m t��d�n�m je oby�ejn� + rychlej�� ne� indexn� �ten� na velk� tabulce. + + Jinak je tomu v p��pad� pou�it� LIMIT a ORDER BY, p�i kter�m se + v�t�inou index pou�ije, v�sledkem je pouze mal� ��st tabulky. Funkce + MAX() a MIN() nepou��vaj� indexy, ale je mo�n� tut� hodnotu z�skat: + SELECT col + FROM tab + ORDER BY col [ DESC ] + LIMIT 1; + + Pokud si mysl�te, �e optimizer myln� zvolil sekven�n� prohled�v�n� + tabulky, pou�ijte p��kaz SET enable_seqscan TO 'off' a zkuste zda je + indexn� prohled�v�n� rychlej��. + + P�i vyhled�v�n� na z�klad� vzoru jako je nap�. oper�tor LIKE nebo ~ se + indexy pou��j� pouze za ur�it�ch skute�nost�: + * za��tek hledan�ho vzoru mus� b�t ukotven k za��tku, tj. + + vzor LIKE nesm� za��nat % + + ~ regul�rn� v�raz mus� za��nat ^ + * vzor nesm� za��nat intervalem, nap�. [a-e] + * vyhled�van�, kter� nen� Case sensitiv jako je ILIKE nebo ~* + nepou��v� indexy. M��ete ale pou��t funkcion�ln� indexy, kter� + jsou pos�ny v sekci 4.12 + * p�i inicializaci datab�ze (initdb) mus� b�t pou�ito C locale + (pozn. p�ekladatele - tud�� v na�ich podm�nk�ch nepou�iteln�, + nepracovalo by �esk� t��d�n�). + + 4.9) Jak zjist�m, jak optimizer dotazu vyhodnocuje m�j dotaz? + + Pod�vejte se do manu�lov� str�nky p��kazu EXPLAIN. + + 4.10) Co to je R-tree index? + + R-tree index se pou��v� pro indexov�n� prostorov�ch dat. Hash index + nem��e obslou�it prohled�v�n� oblast�. B-tree index m��e ��dit + vyhled�n� oblast� v jedn� dimenzi. R-tree index m��e podporovat + hled�n� v multidimenzion�ln�ch datech. Pou�ijeme-li nap��klad R-tree + index na atributy typu point, pak syst�m m��e efektivn� odpov�d�t na + dotaz - vyber v�echny body uvnit� obd�ln�k�. + + P�vodn� n�vrh R-tree je Guttman, A. "R-trees: A Dynamic Index + Structure for Spatial Searching." Proceedings of the 1984 ACM SIGMOD + Int'l Conf on Mgmt of Data, 45-57 + + Tyto materi�ly naleznete v Stonebraker's "Readings in Database + Systems". + + Vestav�n� R-tree m��e slou�it k indexaci polygon� a oblast�. + Teoreticky m��eme R-tree pou��t i pro v�ce dimenz� (jin� ne� 3D). Ve + skute�nosti ale takov� roz���en� R-tree vy�aduje trochu pr�ce a ve + sou�astnosti chyb� dokumentace jak na to. + + 4.11) Co je Genetic Query Optimizer? + + GEQO modul urychluje optimalizaci dotaz� p�i spojov�n� mno�stv� + tabulek metodou Genetick�ch algoritm� (GA). To umo��uje z�skat velk�ho + mno�stv� variant spojen� p�i ne�pln�m prohled�v�n�m. + + 4.12) Jak prov�st vyhled�v�n� regul�rn�ho v�razu case sensitiv, insensitiv? + Jak pou��t index pro case insensitive vyhled�v�n�? + + Oper�tor ~ slou�� k porov�n� s regul�rn�m v�razem, jeho modifikace *~ + p�edstavuje case insensitive vyhled�v�n�. Jedn� se o obdobu LIKE a + ILIKE. + + Pro vyhled�v�n� bez ohledu na velk� mal� p�smena pou�ijeme: + SELECT * + FROM tab + WHERE lower(col) = 'abc'; + + V tomto p��pad� se nepou�ije standardn� index. Nicm�n�, pou�ije se + funkcion�ln� index, pokud jej vytvo��te: + CREATE INDEX tabindex ON tab (lower(col)); + + 4.13) Jak v dotazu detekovat, �e polo�ka je NULL? + + Ur��te pomoc� IS NULL nebo IS NOT NULL + + 4.14) Jak� jsou rozd�ly mezi r�zn�mi znakov�mi typy? + Typ Intern� n�zev Pozn�mka -------------------------------------------------------------------------- VARCHAR(n) varchar omezeno maxim�ln� d�lkou, bez dopln�n� mezerami @@ -858,332 +826,292 @@ TEXT text bez horn�ho limitu na d�lku BYTEA bytea pole byt� (bezpe�n� lze ulo�it i znak NULL) "char" char jeden znak -S intern�mi n�zvy se setk�te v syst�mov�m katalogu a v n�kter�ch -chybov�ch hl�en�ch. - -Prvn� �ty�i uveden� typy jsou tzv. varlena typy (tj. prvn� �ty�i byty na -disku nesou �daj o d�lce, n�sleduj� samotn� data). Proto skute�n� -pou�it� prostor je v�dy o n�co m�lo v�t�� ne� deklarovan� d�lka. Naopak, -tyto datov� typy jsou komprimov�nty TOASTem, tak�e prostor na disku m��e -b�t ni��� ne� je o�ek�v�no. - -VARCHAR(n) je vhodn� pro ukl�d�n� text� promm�n� d�lky s pevn� -stanovenou maxim�ln� d�lkou. TEXT je pro �et�zce bez omezen� d�lky s -maximem jeden gigabajt. - -CHAR(n) slou�� k ukl�d�n� �et�zc� stejn� d�lky. CHAR(n) dopln� pr�zdn� -znaky do specifikovan� d�lky, zat�mco VARCHAR(n) ulo�� pouze p�edan� -znaky. BYTEA je ur�eno pro ukl�d�n� bin�rn�ch dat, v�etn� NULL byte. -V�echny zde popsan� typy maj� podobn� v�konnostn� charakteristiky. - -4.15.1 Jak vytvo�it serial/auto-increment pole? ------------------------------------------------ - -PostgreSQL podporuje typ SERIAL. P�i jeho pou�it� se automaticky vytvo�� -SEQUENCE a index na sloupci (Pro vy��� verze to neplat� OV��IT). -Nap��klad: - -CREATE TABLE person ( - id SERIAL, - name TEXT -); - -je automaticky p�evedeno do - -CREATE SEQUENCE person_id_seq; -CREATE TABLE person ( - id INT4 NOT NULL DEFAULT nextval('person_id_seq'), - name TEXT -); -CREATE UNIQUE INDEX person_id_key ON person(id); - -Viz dokumentace create_sequence v manu�lov�ch str�nk�ch. D�le m��ete -pou��t unik�tn� hodnotu OID ka�d�ho ��dku. Potom ale mus�te spou�t�t -pg_dump s p�ep�na�em -o, tak aby z�staly zachov�ny hodnoty OID (u -p��kazu copy COPY WITH OIDS). - -4.15.2 Jak z�skat hodnotu SERIAL po vlo�en� ��dku? --------------------------------------------------- - -Jednou z mo�nost� je z�skat budouc� hodnotu SERIAL funkc� nextval p�ed -samotn�m vlo�en�m a pak ji vlo�it explicitn�. Nap��klad v jak�msi -pseudojazyku - -newid = execute("SELECT nextval('person_id_seq')"); -execute("INSERT INTO person (id, name) VALUES (new_id, 'Blaise Pascal')"); - -M��ete pak je�t� pou��t hodnotu newid v dal��ch dotazech, nap�. jako -hodnotu ciz�ho kl��e. N�zev automaticky vytvo�en� sekvence je -tabulka_sloupec_seq. - -Alternativn� m��ete z�skat hodnotu posledn� generovou sekvenc� funkc� -currval() po vlo�en� - -execute("INSERT INTO person (name) VALUES ('Blaise Pascal')"); -new_id = execute("SELECT currval('person_id_seq')"); - -Kone�n� m��ete pou��t OID hodnotu vr�cenou p��kazem INSERT, ale to je -pravd�podobn� nejm�n� p�enositeln� �e�en�. V Perlu p�i pou�it� DBI -modulu Edmunda Mergleho DBD:Pg oid hodnotu z�sk�me $sth->{pg_oid_status} -po ka�d�m $sth->execute(). - -4.15.3 Nepovede currval() a nextval() k rozhozen� podm�nek p�i soub�hu s jin�mi u�ivateli? ------------------------------------------------------------------------------------------- - -Nikoliv, currval() vrac� hodnotu naposledy generovanou ve va�em -backendu, a ta tud�� nen� spole�n� v�em u�ivatel�m. - -4.15.4 Pro� nen� vygenerovan� ��slo pou�ito p�i p�eru�en� transakce? -Pro� vznikaj� d�ry v ��slov�n� vlastn� sekvenc�/SERIAL sloupce? - -K zaji�t�n� efektivnosti soub�hu, jsou hodnoty posloupnosti, kdy� se o -n� po��d�, a sekvence nen� zam�ena do ukon�en� transakce. To zp�sobuje -d�ry v ��slov�n� ze zru�en�ch transakc�. - -4.16 Co to je OID? Co je to TID? --------------------------------- - -Ka�d� ��dek vytvo�en� v PostgreSQL z�sk� jedine�n� OID. V�echna OID -generovan� b�hem inicializace datab�ze jsou men�� ne� 16384 -(include/access/transam.h). V�echna OID generovan� na po�adavek -u�ivatele jsou rovna nebo vy��� t�to hodnot�. Norm�ln�, v�echna OID jsou -jedine�n� nejen uvnit� tabulky nebo datab�ze, ale v r�mci cel� instalace -PostgreSQL - -PostgreSQL pou��v� OID ve sv�m intern�m syst�mu tabulek k vytvo�en� -relac�. Tato OID mohou b�t pou�ita k identifikaci konkr�tn�ho u�ivatele -a pou�ita v spojen�. Pro OID hodnoty je doporu�en typ OID. Nad t�mto -sloupcem m��ete vytvo�it index pro urychlen� p��stupu. - -OID jsou d�na v�em ��dk�m z centr�ln� oblasti a jsou pou�ita v ka�d� -datab�zi. Pokud pot�ebujete zm�nit OID, nebo chcete zkop�rovat tabulku s -p�vodn�mi OID, lze pou��t - -CREATE TABLE new_table(old_oid oid, mycol int); -SELECT old_oid, mycol INTO new FROM old; -COPY new TO '/tmp/pgtable'; -DELETE FROM new; -COPY new WITH OIDS FROM '/tmp/pgtable'; - -OID jsou ulo�ena jako 4bajtov� integer a p�ete�ou po �ty�ech miliard�ch. -Nebylo hl�eno, �e by se tak n�kdy stalo, p�esto ale pl�nujeme odstranit -tento limit d��v ne� se tak stane. - -TID se pou��vaj� i identifikaci fyzick�ch ��dk� s hodnotou bloku a -offsetu. TIDs se m�n� modifikac� ��dk� (pou��v� se jako ukazatel indexu -fyzick�ho ��dku). - -4.17 Jak� je v�znam n�kter�ch v�raz� pou�it�ch v PostgreSQL? ------------------------------------------------------------- - -V n�kter�ch zdrojov�ch k�dech nebo star�� dokumentaci se m��ete setkat s -n�sleduj�c�mi v�razy, kter� maj� �ir�� v�znam. Zde je p��klad nekter�ch: - - - tabulka, relace, t��da (table, relation, class) - - ��dek, z�znam, ntice (row, record, tuple) - - sloupec, polo�ka, atribut (column, field, attribute) - - vyhled�n�, v�b�r (retrieve, select) - - - n�hrada, �prava (replace, update) - - p�id�n�, vkl�d�n� (append, insert) - - OID, serial value (OID, serial value) - - portal, kurzor (portal, cursor) - - range variable, jm�no tabulky, alias tabulky (range - variable, table name, table alias) - -seznam t�chto v�raz� m��ete nal�zt na -http://hea-www.harvard.edu/MST/simul/software/docs/pkgs/pgsql/glossary/g -lossary.html. - -4.18 Pro� jsem z�skal chybov� hl�en� "ERROR: Memory exhausted in AllocSetAlloc()"? ------------------------------------------------------------------------------------ - -Pravd�podobn� do�lo k vy�erp�n� virtu�ln� pam�i na Va�em syst�mu, nebo -j�dro m� n�zk� limit pro ur�it� zdroje. Vyzkou�ejte p�ed startem -posmatera - -ulimit -d 262144 -limit datasize 256m - -Z�le�� na Va�em shellu, zda budou tyto p��kazy �sp�n�, m�ly by zv��it -limit datov�ho segmentu pro Va�e procesy a umo�nit tak dokon�en� dotazu. -Tyto p��kazy se aplikuj� na aktu�ln� proces a v�echny synovsk� procesy -vytvo�en� po proveden� p��kazu. Pokud m�te probl�my s SQL klientem -proto�e backend vrac� p��li� mnoho dat, zkuste zv��it limity p�ed -startem klienta. - -4.19 Jak se dozv�m, kterou verzi PostgreSQL pou��v�m? ------------------------------------------------------ - -V psql spus�te - -SELECT version(); - -4.20 Pro� operace s velk�mi objekty kon�� "invalid large obj descriptor"? -------------------------------------------------------------------------- - -V�echny operace s velk�mi objekty - lo_open, lo_close, ... mus�te -spou�t�t v transakci, tj. mezi p��kazy BEGIN WORK a COMMIT. - -PostgreSQL uvol�uje handle velk�ch objekt� p�i skon�en� transakce. Pokud -budete pracovat s velk�mi objekty mimo transakci, pravd�podobn� -dostanete toto chybov� hl�en�, proto�e handle ji� budou neplatn�. - -Pokud pou��v�te interface podobn� ODBC mus�te nastavit set auto_commit -off - -4.21 Jak vytvo�it sloupec obsahuj�c� implicitn� aktu�ln� datum? ---------------------------------------------------------------- - -Pou�ijte CURRENT_TIMESTAMP + S intern�mi n�zvy se setk�te v syst�mov�m katalogu a v n�kter�ch + chybov�ch hl�en�ch. + + Prvn� �ty�i uveden� typy jsou tzv. varlena typy (tj. prvn� �ty�i byty + na disku nesou �daj o d�lce, n�sleduj� samotn� data). Proto skute�n� + pou�it� prostor je v�dy o n�co m�lo v�t�� ne� deklarovan� d�lka. + Naopak, tyto datov� typy jsou komprimov�nty TOASTem, tak�e prostor na + disku m��e b�t ni��� ne� je o�ek�v�no. + + VARCHAR(n) je vhodn� pro ukl�d�n� text� promm�n� d�lky s pevn� + stanovenou maxim�ln� d�lkou. TEXT je pro �et�zce bez omezen� d�lky s + maximem jeden gigabajt. + + CHAR(n) slou�� k ukl�d�n� �et�zc� stejn� d�lky. CHAR(n) dopln� pr�zdn� + znaky do specifikovan� d�lky, zat�mco VARCHAR(n) ulo�� pouze p�edan� + znaky. BYTEA je ur�eno pro ukl�d�n� bin�rn�ch dat, v�etn� NULL byte. + V�echny zde popsan� typy maj� podobn� v�konnostn� charakteristiky. + + 4.15.1) Jak vytvo�it serial/auto-increment pole? + + PostgreSQL podporuje typ SERIAL. P�i jeho pou�it� se automaticky + vytvo�� SEQUENCE. Nap��klad: + CREATE TABLE person ( + id SERIAL, + name TEXT + ); + + je automaticky p�evedeno do + CREATE SEQUENCE person_id_seq; + CREATE TABLE person ( + id INT4 NOT NULL DEFAULT nextval('person_id_seq'), + name TEXT + ); + CREATE UNIQUE INDEX person_id_key ON person(id); + + Viz dokumentace create_sequence v manu�lov�ch str�nk�ch. D�le m��ete + pou��t unik�tn� hodnotu OID ka�d�ho ��dku. Potom ale mus�te spou�t�t + pg_dump s p�ep�na�em -o, tak aby z�staly zachov�ny hodnoty OID (u + p��kazu copy COPY WITH OIDS). + + 4.15.2) Jak z�skat hodnotu SERIAL po vlo�en� ��dku? + + Jednou z mo�nost� je z�skat budouc� hodnotu SERIAL funkc� nextval() + p�ed samotn�m vlo�en�m a pak ji vlo�it explicitn�. Nap��klad v jak�msi + pseudojazyku: + newid = execute("SELECT nextval('person_id_seq')"); + execute("INSERT INTO person (id, name) VALUES (new_id, 'Blaise Pascal')"); + + M��ete pak je�t� pou��t hodnotu newid v dal��ch dotazech, nap�. jako + hodnotu ciz�ho kl��e. N�zev automaticky vytvo�en� sekvence je + tabulka_sloupec_seq. + + Alternativn� m��ete z�skat hodnotu posledn� generovou sekvenc� funkc� + currval() po vlo�en�: + execute("INSERT INTO person (name) VALUES ('Blaise Pascal')"); + new_id = execute("SELECT currval('person_id_seq')"); + + Kone�n� m��ete pou��t OID hodnotu vr�cenou p��kazem INSERT, ale to je + pravd�podobn� nejm�n� p�enositeln� �e�en�. V Perlu p�i pou�it� DBI + modulu Edmunda Mergleho DBD:Pg oid hodnotu z�sk�me + $sth->{pg_oid_status} po ka�d�m $sth->execute(). + + 4.15.3) Nepovede currval() a nextval() k rozhozen� podm�nek p�i soub�hu s + jin�mi u�ivateli? + + Nikoliv, currval() vrac� hodnotu naposledy generovanou ve va�em + backendu, a ta tud�� nen� spole�n� v�em u�ivatel�m. + + 4.15.4) Pro� nen� vygenerovan� ��slo pou�ito p�i p�eru�en� transakce? Pro� + vznikaj� d�ry v ��slov�n� vlastn� sekvenc�/SERIAL sloupce? + + K zaji�t�n� efektivnosti soub�hu, jsou hodnoty posloupnosti, kdy� se o + n� po��d�, a sekvence nen� zam�ena do ukon�en� transakce. To zp�sobuje + d�ry v ��slov�n� ze zru�en�ch transakc�. + + 4.16) Co to je OID? Co je to TID? + + Ka�d� ��dek vytvo�en� v PostgreSQL z�sk� jedine�n� OID. V�echna OID + generovan� b�hem inicializace datab�ze jsou men�� ne� 16384 + (include/access/transam.h). V�echna OID generovan� na po�adavek + u�ivatele jsou rovna nebo vy��� t�to hodnot�. Norm�ln�, v�echna OID + jsou jedine�n� nejen uvnit� tabulky nebo datab�ze, ale v r�mci cel� + instalace PostgreSQL + + PostgreSQL pou��v� OID ve sv�m intern�m syst�mu tabulek k vytvo�en� + relac�. Tato OID mohou b�t pou�ita k identifikaci konkr�tn�ho + u�ivatele a pou�ita v spojen�. Pro OID hodnoty je doporu�en typ OID. + Nad t�mto sloupcem m��ete vytvo�it index pro urychlen� p��stupu. + + OID jsou d�na v�em ��dk�m z centr�ln� oblasti a jsou pou�ita v ka�d� + datab�zi. Pokud pot�ebujete zm�nit OID, nebo chcete zkop�rovat tabulku + s p�vodn�mi OID, lze pou��t: + CREATE TABLE new_table(old_oid oid, mycol int); + SELECT old_oid, mycol INTO new FROM old; + COPY new TO '/tmp/pgtable'; + DELETE FROM new; + COPY new WITH OIDS FROM '/tmp/pgtable'; + + OID jsou ulo�ena jako 4bajtov� integer a p�ete�ou po �ty�ech + miliard�ch. Nebylo hl�eno, �e by se tak n�kdy stalo, p�esto ale + pl�nujeme odstranit tento limit d��v ne� se tak stane. + + TID se pou��vaj� i identifikaci fyzick�ch ��dk� s hodnotou bloku a + offsetu. TIDs se m�n� modifikac� ��dk� (pou��v� se jako ukazatel + indexu fyzick�ho ��dku). + + 4.17) Jak� je v�znam n�kter�ch v�raz� pou�it�ch v PostgreSQL? + + V n�kter�ch zdrojov�ch k�dech nebo star�� dokumentaci se m��ete setkat + s n�sleduj�c�mi v�razy, kter� maj� �ir�� v�znam. Zde je p��klad + nekter�ch: + * tabulka, relace, t��da (table, relation, class) + * ��dek, z�znam, ntice (row, record, tuple) + * sloupec, polo�ka, atribut (column, field, attribute) + * vyhled�n�, v�b�r (retrieve, select) + * n�hrada, �prava (replace, update) + * p�id�n�, vkl�d�n� (append, insert) + * OID, serial value (OID, serial value) + * portal, kurzor (portal, cursor) + * range variable, jm�no tabulky, alias tabulky (range variable, + table name, table alias) + + seznam t�chto v�raz� m��ete nal�zt na + http://hea-www.harvard.edu/MST/simul/software/docs/pkgs/pgsql/glossary + /glossary.html. + + 4.18) Pro� jsem z�skal chybov� hl�en� "ERROR: Memory exhausted in + AllocSetAlloc()"? + + Pravd�podobn� do�lo k vy�erp�n� virtu�ln� pam�i na Va�em syst�mu, + nebo j�dro m� n�zk� limit pro ur�it� zdroje. Vyzkou�ejte p�ed startem + posmatera + ulimit -d 262144 + limit datasize 256m + + Z�le�� na Va�em shellu, zda budou tyto p��kazy �sp�n�, m�ly by zv��it + limit datov�ho segmentu pro Va�e procesy a umo�nit tak dokon�en� + dotazu. Tyto p��kazy se aplikuj� na aktu�ln� proces a v�echny synovsk� + procesy vytvo�en� po proveden� p��kazu. Pokud m�te probl�my s SQL + klientem proto�e backend vrac� p��li� mnoho dat, zkuste zv��it limity + p�ed startem klienta. + + 4.19) Jak se dozv�m, kterou verzi PostgreSQL pou��v�m? + + V psql spus�te SELECT version(); + + 4.20) Pro� operace s velk�mi objekty kon�� "invalid large obj descriptor"? + + V�echny operace s velk�mi objekty - lo_open, lo_close, ... mus�te + spou�t�t v transakci, tj. mezi p��kazy BEGIN WORK a COMMIT. + + PostgreSQL uvol�uje handle velk�ch objekt� p�i skon�en� transakce. + Pokud budete pracovat s velk�mi objekty mimo transakci, pravd�podobn� + dostanete toto chybov� hl�en�, proto�e handle ji� budou neplatn�. + Pokud pou��v�te interface podobn� ODBC mus�te nastavit set auto_commit + off. + + 4.21) Jak vytvo�it sloupec obsahuj�c� implicitn� aktu�ln� datum? + + Pou�ijte CURRENT_TIMESTAMP: CREATE TABLE test (x int, modtime timestamp DEFAULT CURRENT_TIMESTAMP ); -4.22 Pro� jsou moje vno�en� dotazy pou��vaj�c� IN tak pomal�? -------------------------------------------------------------- - -Aktu�ln� spojujeme tabulky se sekven�n�m skenov�n�m v�sledku pro ka�d� -��dek vn�j��ho dotazu. Pokud vno�en� dotaz m� pouze n�kolik ��dk� a -vn�j�� dotaz vrac� hodn� ��dek, IN je rychl�. V jin�ch p��padech -nahra�te IN EXISTS: - -SELECT * FROM tab - WHERE col IN (SELECT subcol FROM subtab); - -takto - -SELECT * FROM tab - WHERE EXISTS (SELECT subcol FROM subtab WHERE subcol = col); - -Pro urychlen� vytvo�ete index pro subcol. Tento v�konnostn� probl�m byl -odstran�n ve verzi 7.4. - -4.23 Jak prov�st vn�j�� spojen� (outer join)? ---------------------------------------------- - -PostgreSQL podporuje vn�j�� spojen� tabulek standardn�mi SQL p��kazy. -Zde jsou dva p��klady: - -SELECT * FROM t1 LEFT OUTER JOIN t2 ON (t1.col = t2.col); - -nebo - -SELECT * FROM t1 LEFT OUTER JOIN USING (col); - -Tyto identick� dotazy napoj� t1.col na t2.col a je�t� p�id� nep�ipojen� -��dky z t1 (kter� nemaj� obdoby v t2). Prav� spojen� (RIGHT JOIN) p�id� -nep�ipojen� ��dky z t2. FULL JOIN vr�t� v�echny ��dky, v�etn� -nep�ipojen�ch z tbulek t1 a t2. Kl��ov� slovo OUTER je nepovinn� a v�e -se na LEFT, RIGHT a FULL join. B�n� spojen� se naz�v� INNER JOIN. - -V d��v�j��ch verz�ch se vn�j�� spojen� tabulek mohlo simulovat pomoc� -UNION a NOT IN. Nap��klad pro spojen� tabulek tab1 a tab2, je -n�sleduj�c� dotaz ekvivalentn� k vn�j��mu spojen� dvou tabulek: - -SELECT tab1.col2, tab2.col2 FROM tab1, tab2 - WHERE tab1.col1 = tab2.col1 -UNION ALL -SELECT tab1.col2, NULL FROM tab1 - WHERE tab1.col1 NOT IN (SELECT tab2.col1 FROM tab2) -ORDER BY col1; - -4.24 Jak prov�st dotaz nap��� n�kolika datab�zemi? --------------------------------------------------- - -PostgreSQL nenab�z� ��dn� zp�sob, jak se dot�zat do jin� datab�ze ne� do -aktu�ln�. Dopln�k contrib/dblink umo��uje dotaz do ciz� datab�ze -prost�ednictv�m funkce. Na stran� klienta nen� probl�m si otev��t v�ce -simult�ln�ch p��stup� do r�zn�ch datab�z� a spojovat v�sledek na stran� -klienta. - -4.25 M��e funkce vr�tit v�ce ��dk� nebo sloupc�? ------------------------------------------------- - -V PostgreSQL 7.3 m��ete jednodu�e vracet v�ce ��dk� nebo sloupc� z -funkce, viz: -http://techdocs.postgresql.org/guides/SetReturningFunctions. - -4.26 Pro� nelze spolehliv� vytv��et a ru�it do�asn� tabulky v PL/pgSQL funkc�ch? --------------------------------------------------------------------------------- - -P�elo�en� k�d PL/pgSQL funkce je ulo�en ve vyrovn�vac� pam�ti, tj. -funkce je p�ekl�d�na pouze p�i zm�n� k�du, nikoliv p�ed ka�d�m vol�n�m -funkce. Necht�n�m vedlej��m efektem je, �e vol�n� funkce sel�e, kdy� se -funkce odkazuje na do�asnou tabulku, pokud tato tabulka byla od p�ekladu -funkce zru�ena (a�koliv ji� byla znovu vytvo�ena a existuje). Jedin�m -�e�en�m probl�mu je p��stup k do�asn� tabulce pomoc� EXECUTE, tj. -dynamick� prov�d�n� dotazu. Tento p��kaz zajist� opakovan� p�eklad -dotazu p�i ka�d�m vol�n� funkce. - -4.27 Jak� jsou mo�nosti replikace datab�z�? -------------------------------------------- - -Existuje n�kolik dostupn�ch �e�en� master/slave replikac�. Ty povoluj� -modifikace master datab�ze a slave datab�z�m umo��uj� pouze �ten�. Na -konci http://gborg.PostgreSQL.org/genpage?replication_research najdete -jejich seznam. Na �e�en� multi-master replikaci se pracuje na -http://gborg.PostgreSQL.org/project/pgreplication/projdisplay.php. - -4.28 Jak� jsou mo�nosti �ifrov�n� datab�z�? -------------------------------------------- - - - - contrib/pgcrypto obsahuje �ifrovac� funkce pou�iteln� v SQL - dotazech. - - - - - K �ifrov�n� p�enosu dat z klienta na server, mus� b�t server - p�elo�en s podporou ssl a p�ep�na� sslv postgresql.conf mus� b�t - nastaven na hodnotu true. Klient mus� m�t vytvo�en z�znam hostssl v - pg_hba.conf a tak� m�t povolen re�im ssl. Lze pou��t i jin� - prost�edky, nejen nativn� podporu ssl v PostgreSQL, nap�. stunel a - ssh. - - - - - Hesla u�ivatel� datab�ze jsou za�ifrov�na po��naje verz� 7.3. Ve - star��ch verz�ch toto chov�n� muselo b�t vynuceno volbou - PASSWORD_ENCRYPTION v postgresql.conf - - - - - Server m��e b�et na �ifrovan�m souborov�m syst�mu. - ------------------------------------------------------------------------- - -Roz�i�ov�n� PostgreSQL -====================== - -5.1 Napsal jsem UDF funkci, PostgreSQL v�ak kon�� dump core? ------------------------------------------------------------- - -Probl�m m��e b�t zp�soben mnoha okolnostmi. Vyzkou�ejte si svoji funkci -nejd��ve v n�jak� jednoduch� aplikaci. - -5.2 Jak mohu p�isp�t n�jak�mi �ikovn�mi datov�mi typy a funkcemi do PostgreSQL? -------------------------------------------------------------------------------- - -Po�lete sv� roz���en� do konference pgsql-hackers, a ono pak mo�n� -skon�� v podadres��i contrib. - -5.3 Jak napsat funkci v C vracej�c� ntici? ------------------------------------------- - -Funkce vracej�c� tabulky jsou podporovan� PostgreSQL 7.3 a vy��� pro -jazyky C, PL/PgSQL a SQL. V�ce naleznete v The Programmer's Guide. -P��klady t�chto funkc� pro C naleznete v contrib/tablefunc. - -5.4 Modifikoval jsem zdrojov� soubory. Tato zm�na nebyla p�i rekompilaci vzata v potaz. Pro�? ---------------------------------------------------------------------------------------------- - -Makefile nem� informace o z�vislostech mezi hlavi�kov�mi soubory. Mus�te -prov�st make clean a pak make. Pokud pou��v�te gcc, m��ete pou��t -p�ep�na� --enable-depend p��kazu configure k automatick�mu �e�en� -z�vislost� p�eklada�em. - - -[1] http://developer.postgresql.org/todo.php -[2] http://ourworld.compuserve.com/homepages/graeme_birchall/HTM_COOK.HTM -[3] http://postgresql.ok.cz/PostgreSQL%20Administrator%27sGuide - + 4.22) Pro� jsou moje vno�en� dotazy pou��vaj�c� IN tak pomal�? + + D��v�j�� verze (p�ed 7.4) spojovali vno�en� dotazy k vn�j��m + sekven�n�m �ten�m v�sledku poddotazu pro ka�d� ��dek vn�j��ho dotazu. + Pokud poddotaz vr�til n�kolik m�lo ��dk� IN bylo rychl�. Pro ostatn� + p��pady je vhodn� nahradit IN EXISTS: + SELECT * + FROM tab + WHERE col IN (SELECT subcol FROM subtab); + + na: + SELECT * + FROM tab + WHERE EXISTS (SELECT subcol FROM subtab WHERE subcol = col); + + Pro urychlen� vytvo�ete index pro subcol. + + Ve verzi 7.4 a pozd�j��ch, IN pou��v� stejn� sofistikovanou techniku + spojov�n� tabulek jako ostatn� dotazy a je preferovan� p�ed EXISTS. + + 4.23) Jak prov�st vn�j�� spojen� (outer join)? + + PostgreSQL podporuje vn�j�� spojen� tabulek standardn�mi SQL p��kazy. + Zde jsou dva p��klady: + SELECT * + FROM t1 LEFT OUTER JOIN t2 ON (t1.col = t2.col); + + nebo + SELECT * + FROM t1 LEFT OUTER JOIN USING (col); + + Tyto identick� dotazy napoj� t1.col na t2.col a je�t� p�id� + nep�ipojen� ��dky z t1 (kter� nemaj� obdoby v t2). Prav� spojen� + (RIGHT JOIN) p�id� nep�ipojen� ��dky z t2. FULL JOIN vr�t� v�echny + ��dky, v�etn� nep�ipojen�ch z tbulek t1 a t2. Kl��ov� slovo OUTER je + nepovinn� a v�e se na LEFT, RIGHT a FULL join. B�n� spojen� se + naz�v� INNER JOIN. + + V d��v�j��ch verz�ch se vn�j�� spojen� tabulek mohlo simulovat pomoc� + UNION a NOT IN. Nap��klad pro spojen� tabulek tab1 a tab2, je + n�sleduj�c� dotaz ekvivalentn� k vn�j��mu spojen� dvou tabulek: + SELECT tab1.col2, tab2.col2 + FROM tab1, tab2 + WHERE tab1.col1 = tab2.col1 + UNION ALL + SELECT tab1.col2, NULL + FROM tab1 + WHERE tab1.col1 NOT IN (SELECT tab2.col1 FROM tab2) + ORDER BY col1; + + 4.24) Jak prov�st dotaz z v�ce datab�z�? + + PostgreSQL nepodporuje dotazy do jin� ne� aktu�ln� datab�ze. + + contrib/dblink nab�z� funkce umo��uj�c� proveden� dotazu v jin� + datab�zi. Klient si m��e otev��t simult�ln� p�ipojen� do r�zn�ch db + bez omezen�. + + 4.25) M��e funkce vr�tit v�ce ��dk� nebo sloupc�? + + V PostgreSQL 7.3 m��ete jednodu�e vracet v�ce ��dk� nebo sloupc� z + funkce, viz: + http://techdocs.postgresql.org/guides/SetReturningFunctions. + + 4.26) Pro� nelze spolehliv� vytv��et a ru�it do�asn� tabulky v PL/pgSQL + funkc�ch? + + P�elo�en� k�d PL/pgSQL funkce je ulo�en ve vyrovn�vac� pam�ti, tj. + funkce je p�ekl�d�na pouze p�i zm�n� k�du, nikoliv p�ed ka�d�m vol�n�m + funkce. Necht�n�m vedlej��m efektem je, �e vol�n� funkce sel�e, kdy� + se funkce odkazuje na do�asnou tabulku, pokud tato tabulka byla od + p�ekladu funkce zru�ena (a�koliv ji� byla znovu vytvo�ena a existuje). + Jedin�m �e�en�m probl�mu je p��stup k do�asn� tabulce pomoc� EXECUTE, + tj. dynamick� prov�d�n� dotazu. Tento p��kaz zajist� opakovan� p�eklad + dotazu p�i ka�d�m vol�n� funkce. + + 4.27) Jak� jsou mo�nosti replikace datab�z�? + + Existuje n�kolik dostupn�ch �e�en� master/slave replikac�, tj umo��uj� + modifikace master datab�ze a slave datab�z�m umo��uj� pouze �ten�. Na + konci http://gborg.PostgreSQL.org/genpage?replication_research najdete + jejich seznam. Na �e�en� multi-master replikaci se pracuje na + http://gborg.PostgreSQL.org/project/pgreplication/projdisplay.php. + + 4.28) Jak� jsou mo�nosti �ifrov�n� datab�z�? + + * contrib/pgcrypto obsahuje �ifrovac� funkce pou�iteln� v SQL + dotazech. + * K �ifrov�n� p�enosu dat z klienta na server, mus� b�t server + p�elo�en s podporou ssl a p�ep�na� ssl v postgresql.conf mus� b�t + nastaven na hodnotu true. Klient mus� m�t vytvo�en z�znam hostssl + v pg_hba.conf a tak� m�t povolen re�im ssl. Lze pou��t i jin� + prost�edky, nejen nativn� podporu ssl v PostgreSQL, nap�. stunel a + ssh. + * Hesla u�ivatel� datab�ze jsou za�ifrov�na po��naje verz� 7.3. Ve + star��ch verz�ch toto chov�n� muselo b�t vynuceno volbou + PASSWORD_ENCRYPTION v postgresql.conf + * Server m��e b�et na �ifrovan�m souborov�m syst�mu. + _________________________________________________________________ + + Roz�i�ov�n� PostgreSQL + + 5.1) Napsal jsem UDF funkci, PostgreSQL v�ak kon�� dump core? + + Probl�m m��e b�t zp�soben mnoha okolnostmi. Vyzkou�ejte si svoji + funkci nejd��ve v n�jak� jednoduch� aplikaci. + + 5.2) Jak mohu p�isp�t n�jak�mi �ikovn�mi datov�mi typy a funkcemi do + PostgreSQL? + + Po�lete sv� roz���en� do konference pgsql-hackers, a ono pak mo�n� + skon�� v podadres��i contrib. + + 5.3) Jak napsat funkci v C vracej�c� ntici? + + Funkce vracej�c� tabulky jsou podporovan� PostgreSQL 7.3 a vy��� pro + jazyky C, PL/PgSQL a SQL. V�ce naleznete v The Programmer's Guide. + P��klady t�chto funkc� pro C naleznete v contrib/tablefunc. + + 5.4) Modifikoval jsem zdrojov� soubory. Tato zm�na nebyla p�i rekompilaci + vzata v potaz. Pro�? + + Makefile nem� informace o z�vislostech mezi hlavi�kov�mi soubory. + Mus�te prov�st make clean a pak make. Pokud pou��v�te gcc, m��ete + pou��t p�ep�na� --enable-depend p��kazu configure k automatick�mu + �e�en� z�vislost� p�eklada�em. |