From 4e9face69aab7cebe2fe4d42ccc732584dec0b8e Mon Sep 17 00:00:00 2001 From: Bruce Momjian <bruce@momjian.us> Date: Mon, 13 Jan 2003 23:00:32 +0000 Subject: [PATCH] Add Hugarian FAQ, from Laszlo Hornyak --- doc/FAQ_hungarian | 1121 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 1121 insertions(+) create mode 100644 doc/FAQ_hungarian diff --git a/doc/FAQ_hungarian b/doc/FAQ_hungarian new file mode 100644 index 00000000000..c26d294d55f --- /dev/null +++ b/doc/FAQ_hungarian @@ -0,0 +1,1121 @@ + + PostgreSQL GyIK + Utols� m�dos�t�s d�tuma: 2002 Okt 20. + + A GyIK karbantart�ja: Bruce Momjian (pgman@candle.pha.pa.us) + Ford�t�: Horny�k L�szl� (hornyakl.NOSPAM@inf.elte.hu) + + A legfrissebb verzi� itt �rhet� el (angol): + http://www.PostgreSQL.org/docs/faq-english.html. + + Platform specifikus k�rd�sek: + http://www.PostgreSQL.org/users-lounge/docs/faq.html. + _________________________________________________________________ + + �ltal�nos k�rd�sek + + 1.1) Mi a PostgreSQL? Hogy kell kimondani? + 1.2) Mik a PostgreSQL felhaszn�l�si felt�telei? + 1.3) Milyen UNIX oper�ci�s rendszereken fut PostgreSQL? + 1.4) Milyen nem UNIX oper�ci�s rendszerek el�rhet�ek? + 1.5) Hogyan tudok PostgreSQL-t szerezni? + 1.6) Hogyan kapok term�kt�mogat�st? + 1.7) Melyik a legfrissebb kiad�s? + 1.8) Milyen dokument�ci� �ll rendelkez�sre? + 1.9) Hogyan tal�lok inform�ci�t hib�kr�l vagy hi�nyz� funkcional�t�sr�l? + 1.10) Hogy tanuljam meg az SQL nyelvet? + 1.11) A PostgreSQL 2000. �v kompatibilis? + 1.12) Hogyan lehet csatlakozni a fejleszt� csapathoz? + 1.13) Hogyan k�ldjek hibajelent�st? + 1.14) Milyen a PostgreSQL m�s DBMS-ekkel �sszehasonl�tva? + 1.15) Hogyan tudom �zletileg segiteni a PostgreSQL-t? + + Felhaszn�l�i kliens k�rd�sek + + 2.1) Van ODBC meghajt� PostgreSQL-hez? + 2.2) Milyen eszk�z�k �llnak rendelkez�sre PostgreSQL Web fejleszt�sekhez? + 2.3) Van a PostgreSQL-hez grafikus felhaszn�l�i fel�let ? Riport + gener�tor? Be�gyazott lek�rdez� nyelv fel�let? + 2.4) Milyen programoz�si nyelvekkel lehet el�rni a PostgreSQL szervert? + + Adminisztr�ci�s k�rd�sek + + 3.1) Hogyan tudom a PostgreSQL-t /usr/local/pgsql -t�l elt�r� helyre + install�lni? + 3.2) AMikor elind�tom a postmaster-t, egy "Bad System Call"-t vagy core + dump-ot kapok. Mi�rt? + 3.3) Amikor megpr�b�lom inditani a postmaster-t, "IpcMemoryCreate" hib�kat + kapok. Mi�rt? + 3.4) Amikor megpr�b�lom inditani a postmaster-t, "IpcSemaphoreCreate" hib�kat + kapok. Mi�rt? + 3.5) Hogyan tudom kontroll�lni a m�s g�pekr�l �rkez� kapcsolat k�r�seket? + 3.6) Hogyan tudom nagyobb teljes�tm�nyre hangolni az adatb�zisomat? + 3.7) Milyen hibakeres� lehet�s�gek �rhet�ek el? + 3.8) Mi�rt kapok "Sorry, too many clients" hib�t csatlakoz�sn�l? + 3.9) Mi van pgsql_tmp k�nyvt�rban? + 3.10) Mi�rt kell dumpolni �s �jrat�lteni PostgreSQL kiad�s v�lt�s�n�l? + + M�k�dtet�si k�rd�sek + + 4.1) Mi a k�l�nbs�g a bin�ris �s a norm�l kurzorok k�z�tt? + 4.2) Hogyan tudom select-elni a lek�rdez�s els� p�r sor�t? + 4.3) Hogy tudom kilist�zni a t�bl�kat vagy m�s dolgokat a PostgreSQL-ben? + 4.4) Hogyan tudok elt�vol�tani egy oszlopot egy t�bl�b�l? + 4.5) Mi a maxim�lis m�rete egy sornak, egy t�bl�nak vagy egy adatb�zisnak? + 4.6) Mekkora adatb�zis lemez ter�let sz�ks�ges egy tipikus sz�veg �llom�ny + t�rol�s�hoz? + 4.7) Hogy tudhatom meg milyen t�bl�k, indexek, adatb�zisok vagy felhaszn�l�k + vannak defini�lva? + 4.8) A lek�rdez�seim lass�ak, vagy nem haszn�lj�k az indexeket. Mi�rt? + 4.9) Hogy tudom ellen�rizni, hogy optimaliz�lta a lek�rdez�s optimaliz�l� a + lek�rdez�sem? + 4.10) Mi az R-tree index? + 4.11) Mi a Genetic Query Optimizer? + 4.12) Hogyan tudok regexp keres�st �s case-insensitive regexp keres�st + haszn�lni? Hogyan tudok indexet haszn�lni case-insensitive keres�shez? + 4.13) Hogyan tudom �szlelni egy lek�rdez�sban, ha egy mez� NULL? + 4.14) Mi a k�l�nbs�g a k�l�nb�z� karaktert�pusok k�z�tt? + 4.15.1) Hogyan tudok l�trehozni automatikusan n�vekv� �rt�k� mez�t? + 4.15.2) Hogyan kaphatom meg egy SERIAL besz�r�s �rt�k�t? + 4.15.3) A currval() �s a nextval() nem teremt holtpont vesz�lyes helyzetet + a felhaszn�l�k k�z�tt? + 4.15.4) Mi�rt nem haszn�l�dnak fel �jra a sequence sz�mok tranzakci� abort + eset�n? + Mi�rt vannak probl�m�k a serial oszlopok sz�moz�s�val? + 4.16) Mi a OID? Mi a TID? + 4.17) Mi a PostgreSQL-ben haszn�lt kifejez�sek jelent�se? + 4.18) Mi�rt kapom ezt a hib�t: "ERROR: Memory exhausted in + AllocSetAlloc()"? + 4.19) Hogyan tudhatom meg PostgreSQL, milyen verzi�t futtatok? + 4.20) Mi�rt kapok "invalid large obj descriptor" hib�t nagy objektumok + kezel�s�n�l? + 4.21) Hogy hozhatok l�tre olyan oszlopot, aminek alap�rtelmezett �r�tke a + jelenlegi id�? + 4.22) Mi�rt olyan lassuak az al-lek�rdez�seim IN-nel? + 4.23) Hogyan tudok outer join-t v�grehajtani? + 4.24) Hogyan tudok t�bb adatb�zison v�grehajtani lek�rdez�st? + 4.25) Hogy tudok t�bb soros vagy oszlopos eredm�nyt visszaadni egy + funkci�b�l? + 4.26) Mi�rt nem tudom megbizhat�an l�trehozni �s t�r�lni az �tmeneti + t�bl�kat a PL/pgSQL funkci�kban? + 4.27) Milyen replik�ci�s lehet�s�gek vannak? + 4.28) Milyen k�dol�si lehet�s�gek vannak? + + A PostgreSQL kiterjeszt�se + + 5.1) �rtam egy felhaszn�l�i funkci�t. Mi�rt core dumpol az adatb�zis amikor + haszn�lom? + 5.2) Hogyan lehet �j adatt�pusokat �s funkci�kat hozz�adni a PostgreSQL + disztrib�ci�hoz? + 5.3) Hogyan lehet olyan C funkci�t �rni, ami Tuple-t ad vissza? + (t�bb soros t�bb oszlopos eredm�nyek) + 5.4) Megv�ltoztattam egy forr�s �llom�nyt. Mi�rt nem v�ltozik a bin�ris + �jraford�t�s ut�n? + _________________________________________________________________ + + + �ltal�nos k�rd�sek + + + 1.1) Mi a PostgreSQL? Hogy kell kimondani? + �gy ejstd ki: Post-Gres-Q-L. + (Vagy tal�n ink�bb t�ltsd le a kis mp3-at a PostgreSQL homepage-r�l) + + A PostgreSQL a POSTGRES adatb�zis management rendszer egy kieg�sz�t�se, + ami egy k�vetkez� gener�ci�s DBMS kutat�si protot�pus. Megtartja a + POSTGRES adatmodell�t �s gazdag adatt�pus v�laszt�k�t, de a PostQuel + lek�rdez� nyelvet az SQL egy kiterjesztett verzi�j�val helyettes�ti. + A PostgreSQL szabad �s a teljes forr�sk�d hozz�f�rhet�. + + A PostgreSQL fejleszt�s�t egy csapat v�gzi, amelynek minden tagja + megtal�lhat� a PostgreSQL fejleszt�i levelez�si list�n. A jelenlegi + koordin�tor Marc G. Fournier (scrappyp@PostgreSQL.org). Ez a csapat + felel�s minden fejleszt�s�rt. + + A PostgreSQL 1.01 alkot�i Andrew Yu �s Jolly Chen voltak. Sokan + j�rultak hozz� portol�ssal, tesztel�ssel, hibakeres�ssel �s + fejleszt�ssel. Az eredeti Postgres k�d, amib�l a PostgreSQL sz�rmazik + Michael Stonebraker professzor ir�ny�t�sa alatt fejlesztettek az + egyetem programoz�i, tanul�i �s v�gzett tanul�i. + + A szoftver ereeti neve Postgres volt. Amikor SQL funkcional�t�ssal + eg�sz�tett�k ki 1995-ben, a nev�t Postgres95-re v�ltoztatt�k. 1996 + v�g�n kapta mai nev�t. + + 1.2) Mik a PostgreSQL felhaszn�l�si felt�telei? + + Az eredeti angol copyright sz�veg: + -------------------- + PostgreSQL is subject to the following COPYRIGHT: + + PostgreSQL Data Base Management System + + Portions copyright (c) 1996-2002, PostgreSQL Global Development Group + Portions Copyright (c) 1994-6 Regents of the University of California + + Permission to use, copy, modify, and distribute this software and its + documentation for any purpose, without fee, and without a written + agreement is hereby granted, provided that the above copyright notice + and this paragraph and the following two paragraphs appear in all + copies. + + IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY + FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, + INCLUDING LOST PROFITS, ARISING OUT OF THE USE OF THIS SOFTWARE AND + ITS DOCUMENTATION, EVEN IF THE UNIVERSITY OF CALIFORNIA HAS BEEN + ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE + PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE UNIVERSITY OF + CALIFORNIA HAS NO OBLIGATIONS TO PROVIDE MAINTENANCE, SUPPORT, + UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + + The above is the BSD license, the classic open-source license. It has + no restrictions on how the source code may be used. We like it and + have no intention of changing it. + -------------------- + + Ami nagyon leegyszer�s�tve azt jelenti, hogy jogod van haszn�lni a + szoftvert mindenf�le ellenszolg�ltat�s (p�nz, stb) n�lk�l, a forr�s + k�dot m�dos�thatod, �s tov�bbadhatod, DE semmilyen, a szoftver haszn�lat�b�l + k�vetkez� k�rosod�s�rt nem v�llal garanci�t a fejleszt�. + + A fenti a BSD licensz, egy klasszikus nyilt-forr�sk�d licensz. Nem + tartalmaz megszor�t�sokat arra, hogy a forr�sk�dot hogyan haszn�lod fel. + Kedvelj�k ezt a licensz form�t �s nem �ll sz�nd�kunkban megv�ltoztatni. + + 1.3) Milyen UNIX oper�ci�s rendszereken fut PostgreSQL? + + �ltal�ban minden UNIX-kompatibilis oper�ci�s rendszer k�pes arra hogy + futtassa a PostgreSQL-t. Azokat a platformokat, amiken tesztelt�k a + kiad�st megal�lhatod a install�ci�s utas�t�sok k�z�tt. + + 1.4) Milyen nem UNIX oper�ci�s rendszerek el�rhet�ek? + + Kliens + + A libpq C f�ggv�nyk�nyvt�rat, a psql-t �s m�s fel�leteket le lehet �gy + ford�tani, hogy fussanak MS Windows oper�ci�s rendszereken. Ebben az esetben + a kliens MS Windows-on fut �s TCP/IP seg�ts�g�vel kommunik�l a Unixon + fut� szerverrel. A "win32.mak" �llom�ny a kiad�s r�sze, ennek seg�ts�g�vel + lehet Win32 platformokra leford�tani a libpq-t �s a psql-t. A PostgreSQL + ODBC kliensekkel is k�pes kommunik�lni. + + Szerver + + Az adatb�zis szerver Cygwin seg�ts�g�vel fut Windows NT �s Win2k + rendszereken. Tov�bbi inform�ci� tal�lhat� a pgsql/doc/FAQ_MSWIN + �llom�nyban �s a MS Windows FAQ-ban a k�vetkez� helyen: + http://www.PostgreSQL.org/docs/faq-mswin.html. + + Nat�v MS Windows NT/2000/XP portok jelenleg fejleszt�s alatt �llnak. + + 1.5) Hogyan tudok PostgreSQL-t szerezni? + + Az els�dleges anonim ftp oldal: + ftp://ftp.PostgreSQL.org/pub. + A t�k�r oldalak list�ja megtal�lhat� a f� weboldalunkon. + + 1.6) Hogyan kapok term�kt�mogat�st? + + Az els�dleges lista a pgsql-general@postgresql.org. Ez haszn�lhat� + a PostgreSQL-lel kapcsolatos p�rbesz�dekre. Ha fel szeretn�l �ratkozni, + k�ldj egy levelet a k�vetkez� tartalommal (nem t�rggyal) a + pgsql-general-request@postgresql.org c�mre: + subscribe + end + + Az kivonatot minden tagnak elk�ldi a szerver, amikor a f� list�n + �sszegy�lt k�r�lbel�l 30k �zenet. + + Van egy hib�kkal kapcsolatos levelez�si lista is: + pgsql-bugs-request@PostgreSQL.org a k�vetkez� tartalommal: + subscribe + end + + A fejleszt?i levelez�si lista: + pgsql-hackers-request@PostgreSQL.org a k�vetkez? tertalommal: + subscribe + end + + Egy�b levelez�si list�k tal�lhat�ak a weboldalunkon: + + http://www.PostgreSQL.org + + Van egy IRC csatorna is #PostgreSQL n�ven ahol felteheted k�r�dseid. + A k�vetkez� unix paranccsal csatlakozhatsz: + irc -c '#PostgreSQL' "$USER" irc.phoenix.net. + + A kereskedelmi term�kt�mogat�st ny�jt� c�gek list�ja el�rhet� itt: + http://www.PostgreSQL.org/users-lounge/commercial-support.html + + 1.7) Melyik a legfrissebb kiad�s? + + A legfrissebb PostgreSQL kiad�s a 7.3. + + A tervek szerint minden negyedik h�napban van �j kiad�s. + + 1.8) Milyen dokument�ci� �ll rendelkez�sre? + + Sz�mos k�zik�nyv, man oldalak �s kis teszt p�ld�k tal�lhat�ak a kiad�sban + a doc/ k�nyvt�r alatt. Az interneten is olvashatod a dokument�ci�t a + k�vetkez� c�men: + http://www.PostgreSQL.org/users-lounge/docs/. + + K�t PostgreSQL k�nyv �rhet� el az interneten a + http://www.PostgreSQL.org/docs/awbook.html �s a + http://www.commandprompt.com/ppbook/ c�meken. + A megv�s�rolhat� k�nyvek list�ja itt tal�lhat�: + http://www.ca.PostgreSQL.org/books/. + A PostgreSQL-lel kapcsolatos technikai jelleg� cikkek gy?jtem�nye: + http://techdocs.PostgreSQL.org/. + + A psql parancs rendelkezik n�h�ny \d utas�t�ssal, amellyekkel list�zhat�ak + az oper�torok, a funkci�k, stb. + + A website is tartalmaz tov�bbi dokument�ci�kat. + + 1.9) Hogyan tal�lok inform�ci�t hib�kr�l vagy hi�nyz� funkcional�t�sr�l? + + A PostgreSQLaz SQL-92 szabv�ny egy kieg�sz�t�se. N�zd meg a TODO list�kat + ha �rdekelnek az ismert hib�k. + + 1.10) Hogy tanuljam meg az SQL nyelvet? + + A PostgreSQL k�nyv a http://www.PostgreSQL.org/docs/awbook.html + c�men tartalmaz SQL alapokat. El�rhet� egy m�sik SQL k�nyv is a + http://www.commandprompt.com/ppbook c�men. Egy sz�p oktat� anyag + tal�lhat� a http://www.intermedia.net/support/sql/sqltut.shtm, + a http://ourworld.compuserve.com/homepages/graeme_birchall/HTM_COOK.HTM + �s a http://sqlcourse.com oldalakon. + + Egy m�sik lehet�s�g a "Tan�tsd magad 21 nap alatt SQL-re, m�sodik + kiad�s" a http://members.tripod.com/er4ebus/sql/index.htm. + + Sok felhaszn�lonk tetszett a gyakorlati SQL k�nyv ("The Practical + SQL Handbook"). + + 1.11) A PostgreSQL 2000. �v kompatibilis? + + Igen, k�nnyed�n kezeli a 2000 ut�ni �s id�sz�m�t�sunk el�tt 2000 el�tti + d�tumokat is. + + 1.12) Hogyan lehet csatlakozni a fejleszt� csapathoz? + + El�ssz�r is t�ltsd le a forr�sk�dot, �s olvasd el a PostgreSQL + fejleszt�i dokumnet�ci�t a web oldalunkon vagy a kiad�sban. Ezut�n + �ratkozz fel a pgsql-hackers �s a pgsql-patches levelez�si list�kra. + V�g�l pedig k�ldj be magas szinvonal� patch-eket a pgsql-patches list�ra. + + Van egy p�r ember, akiknek commit privil�giumuk a PostgreSQL CVS f�n. + �k olyan sok magas szinvonal� patch-et k�ldtek be, hogy az addigi + csapat m�r nem tudta k�vetni, �s nem volt k�ts�g�nk arr�l, hogy a + patch-ek amiket �k k�ldenek j� min�s�g�. + + 1.13) Hogyan k�ldjek hibajelent�st? + + L�togass el a BugTool oldalra: + http://www.PostgreSQL.org/bugs/bugs.php + Itt megtal�lod k�vetend� utas�t�sokat. + + Ellen�rizd az ftp oldalunkon is, hogy nincs-e �jabb verzi� vagy folt. + ftp://ftp.PostgreSQL.org/pub + + 1.14) Milyen a PostgreSQL m�s DBMS-ekkel �sszehasonl�tva? + + Sz�mos n�z�pontb�l lehet vizsg�lni a szoftvert: k�pess�gek, teljes�tm�ny + megb�zhat�s�g, t�mogatotts�g �s �r. + + K�pess�gek + A PostgreSQL rendelkezik a nagy, kereskedelmi DBMS-ek k�pess�geivel: + tranzakci�k, al-lek�rdez�sek, triggerek, n�zetek, k�ls� kulcsok, + integr�t�s �s kifinoult z�rmechanizmusok. Van n�h�ny k�pess�ge, + ami a kereskedelmi adatb�zisokb�l hi�nyzik, mint p�ld�ul a + felhaszn�l� �ltal defini�lt t�pusok, �r�kl�d�s, szab�lyok �s + verzi� kontroll a z�rol�si vit�k reduk�l�s��rt. + + Teljes�tm�ny + A PostgreSQL teljes�tm�nye hasonl�t a kereskedelmi �s m�s ny�lt + adatb�zis szerverek�hez. Lehet bizonyos esetekben lassabb, m�sokban + gyorsabb. A MySQL nev� tanul� RDBMS p�ld�ul gyorsabban hajt v�gre + insert/update m�veleteket, mivel a tranzakci�kat elsum�kolja. + Persze a MySQL nem rendelkezik a k�pess�gek r�szben felsoroltak + nagy r�sz�vel nem rendelkezik. Mi a megb�zhat�s�gra �s a + k�pess�gekre �p�t�nk, b�r a teljes�tm�ny is n� minden kiad�ssal. + Van egy �rdekes oldal a MySQL �s a PostgreSQL �sszehasonl�t�s�val + a http://openacs.org/philosophy/why-not-mysql.html c�men. + + Megb�zhat�s�g + Tudjuk hogy ha egy DBMS nem megb�zhat�, akkor teljesen haszontalan. + Igyeksz�nk j�l tesztelt, stabil k�dot kiadni, amiben a lehet� + legkevesebb hiba van. Minden kiad�s el�tt eltellik legal�bb 1 + h�nap b�ta teszt, �s a kiad�si t�rt�net is azt mutatja, hogy + stabil k�dot adunk ki, ami k�szen �ll a produkt�v felhaszn�l�sra. + �gy gondoljuk, fel�lm�lunk m�s adatb�zis szoftvereket ezen a t�ren. + + T�mogat�s + A levelez�si list�ink kapcsolatot teremtenek a fejleszt�k + �s felhaszn�l�k csoportj�val , akik seg�tenek a probl�m�k + megold�s�ban. B�r nem tudjuk garant�lni hogy ki tudjuk + jav�tani a hib�t, m�s, kereskedelmi adatb�zis c�gek sem tudj�k. + A fejleszt� csoport k�zvetlen el�r�si lehet�s�ge, a k�z�ss�g, + a dokument�ci� �s a forr�sk�d gyakran t�mogat�st biztos�t, + mint m�s adatb�zisokn�l. Van kereskedelmi, alkalmi t�mogat�s + azoknak, akiknek sz�ks�ge van r� (l�sd: 1.6). + + �r + A PostgreSQL szabad b�rmilyen felhaszn�l�sra, ak�r kereskedelmire + is. A term�khez hozz�adhatod a saj�t forr�sk�djaidat korl�toz�s + n�lk�l, + We are free for all use, both commercial and non-commercial. + You can add our code to your product with no limitations, + except those outlined in our BSD-style license stated above. + + 1.15) Hogyan tudom �zletileg segiteni a PostgreSQL-t? + + A PostgreSQL els� oszt�ly� infrastrukt�r�val rendelkezik, amit 1996-ban + ind�tottunk el. Mindent Marc Fourniernek k�sz�nhet�nk, aki l�trehozta + �s karbantartja a rendszert. + + A min�s�gi infrastrukt�ra nagyon fontos egy nyilt forr�s� szoftver + eset�ben. Megv�d az olyan fennakad�sokt�l, amelyek komoly k�s�seket + okoznak a fejleszt�sekben. + + Term�szetesen ez az infrastrukt�ra nem olcs�. Sz�mos havi �s �lland� + kiad�sunk van. Ha a c�gednek van p�nze, amivel t�mogatn� er�fesz�t�seinket, + k�rlek l�togass el a http://store.pgsql.com/shopping/ oldalra. + + B�r a weboldal "PostgreSQL, Inc"-k�nt eml�ti, a hozz�j�rul�sok kiz�r�lag + a PostgreSQL fejleszt�sre �rtend�ek, �s nem egy meghat�rozott c�gnek. Ha + jobban tetszik, k�ldhetsz csekket is a kapcsolati c�mek b�rmelyik�re. + + _________________________________________________________________ + + User Client Questions + + 2.1) Van ODBC meghajt� PostgreSQL-hez? + + K�t ODBC meghajt� �rhet� el: PsqlODBC �s a OpenLink ODBC. + + A PsqlODBC a PostgreSQL kiad�s r�sze. Tov�bbi inform�ci� tal�lhat� a + ftp://ftp.PostgreSQL.org/pub/odbc/ oldalon. + + Az OpenLink ODBC-t a http://www.openlinksw.com c�mr�l t�ltheted le. + Ez az � szabv�nyos ODBC kliens szoftver�kkel m�k�dik, �gy minden + �ltaluk t�mogatott platformon (Win, Mac, Unix, VMS) el�rhet� lesz + a PostgreSQL szerver. + + Tal�n olyan vev�knek fogj�k eladni, akik kereskedelmi min�s�g� term�ket + szeretn�nek kapni, de a freeware verzi� mindig el�rhet� lesz. K�rd�seidet + a term�kkel kapcsolatban a postgres95@openlink.co.uk c�men teheted fel. + + Olvasd el az ODBC fejezetet is a programoz�k k�zik�nyv�ben! + + 2.2) Milyen eszk�z�k �llnak rendelkez�sre PostgreSQL Web fejleszt�sekhez? + + Egy sz�p bemutat� olvashat� az adatb�zissal t�mogatott web oldalanr�l + a http://www.webreview.com weboldalon. + + A web integr�ci�hoz a PHP egy kiv�ll� szoftver. Let�lthet� a + http://www.php.net c�mr�l. + + Komplexebb esetekre sokan haszn�lj�k a Perl fel�letet �s a CGI.pm vagy a + mod_perl-t. + + 2.3) Van a PostgreSQL-hez grafikus felhaszn�l�i fel�let ? Riport + gener�tor? Be�gyazott lek�rdez� nyelv fel�let? + + Van egy sz�p PgAccess nev� grafikus fel�let�nk, ami riport gener�tork�nt + is haszn�lhat�. A weboldal�t megtal�lod a http://www.pgaccess.org/ c�men. + + A disztrib�ci� tartalmazza az ecpg programot is, ami egy be�gyazott SQL + lek�rdez�si fel�let C nyelvhez. + + 2.4) Milyen programoz�si nyelvekkel lehet el�rni a PostgreSQL szervert? + + A k�vetkez�k: + * C (libpq) + * C++ (libpq++) + * Embedded C (ecpg) + * Java (jdbc) + * Perl (DBD::Pg and perl5) + * ODBC (odbc) + * Python (PyGreSQL) + * TCL (libpgtcl) + * C Easy API (libpgeasy) + * PHP ('pg_' functions, Pear::DB) + + Tov�bbi programoz�si fel�letek �rhet�ek el a + http://www.PostgreSQL.org/interfaces.html �s a + http://gborg.PostgreSQL.org oldalakon. + + _________________________________________________________________ + + Adminisztr�ci�s k�rd�sek + + 3.1) Hogyan tudom a PostgreSQL-t /usr/local/pgsql -t�l elt�r� helyre + install�lni? + + A configure script --prefix param�ter�nek haszn�lat�val. + + 3.2) AMikor elind�tom a postmaster-t, egy "Bad System Call"-t vagy core + dump-ot kapok. + Mi�rt? + + Sz�mos probl�ma lehet, de legel�ssz�r ellen�rizd le, hogy a kerneled + System V kieg�sz�t�sekkel rendelkezik-e. A PostgreSQL haszn�lja a + kernel osztott mem�ria �s szemafor API-j�t. + + 3.3) Amikor megpr�b�lom inditani a postmaster-t, "IpcMemoryCreate" hib�kat + kapok. Mi�rt? + + Vagy nincs megfelel�en konfigur�lva a kerneled osztott mem�ria t�mogat�sa + vagy meg kell nagyobb�tanod a maxim�lis osztott mem�ria m�retet. + A pontos m�ret sz�ks�glet f�gg az architekt�r�dt�l �s att�l hogy h�ny + buffert �s processzt konfigur�lsz a postmasternek. Legal�bb 1 MB + ter�letre sz�ks�ged van. A PostgreSQL Adminisztr�ci� k�zik�nyvben + olvashatsz r�szletesebb inform�ci�kat az osztott mem�ri�r�l �s a + szemaforokr�l. + + 3.4) Amikor megpr�b�lom inditani a postmaster-t, "IpcSemaphoreCreate" + hib�kat kapok. Mi�rt? + + Ha a hiba�zenet ez: " IpcSemaphoreCreate: semget failed (No space + left on device)", akkor a kerneled konfigur�ci�ja nem tesz lehet?v� + elegend? szemafort. A PostgreSQL szerver processzenk�nt 1 szemafort + ig�nyel. Egy �tmeneti megold�s lehet az hogy a postmastert kevesebb + maxim�lis processz sz�mmal inditod el. Haszn�ld a -D param�tert. + Egy sokkal megfelel�bb megold�s az ha n�veled a kerneled SEMMNS + �s SEMMNI param�tereit. + + A hib�s szemaforok is adat�zis lerobban�s�hoz is vezethet nagy terhel�s + eset�n. + Ha a hiba�zenet valami m�s, lehet hogy nincs szemaforok t�mogat�s + forditva a kerneledbe. Olvasd el a PostgreSQL adminisztr�torok + k�zik�nyv�ben az osztott mem�ri�r�l �s a szemaforokr�l sz�l� fejezetet. + + 3.5) Hogyan tudom kontroll�lni a m�s g�pekr�l �rkez� kapcsolat k�r�seket? + + Alap�rtelmez�sben a PostgreSQL a helyi kapcsolatokat Unix socketekkel + val�s�tja meg. M�s g�pek nem lesznek k�pesek csatlakozni, ha nem + enged�lyezi azt -i opci�val a postmasternek, �s nem �ll�t be host alap� + azonos�t�st a pg_hba.conf �llom�nyban. Ezzel v�lnak lehet�v� a TCP/IP + kapcsolatok. + + 3.6) Hogyan tudom nagyobb teljes�tm�nyre hangolni az adatb�zisomat? + + Az indexel�s felt�tlen�l gyors�tja a lek�rdez�seket. Az EXPLAIN + parancs lehet�v� teszi hogy l�sd, hogy a PostgreSQL mik�nt interpret�lja + a lek�rdez�st �s melyik indexet haszn�lja. + + Ha sok INSERT m�veletet hajtassz v�gre, csin�ld nagy k�tegekben a COPY + paranccsal. Ez sokkal gyorsabb mint az egyedi INSERT parancsok. M�sodszor: + Azok a m�veletek, amelyek nincsenek tranzakci� blokkon bel�l, azok saj�t + tranzakci�t ind�tanak. Sok m�veletet �rdemes egy tranzakci�n bel�l + v�grehajtani. Ez cs�kkenti a tranzakci� kezel�s t�bbletidej�t. Az indexeket + javasolt a nagy adatv�ltoz�sok el�tt elt�vol�tani, majd �jra l�trehizni. + + Sz�mos teljes�tm�ny jav�t� lehet�s�g van. Kikapcsolhatod az fsync() + m�veletet a postmaster -o -F opci�kval val� ind�t�sakor. �gy nem fog + az amugy lass� fsync() f�ggv�ny megh�v�dni minden tranzakci� v�g�n. + + Haszn�lhatod a postmaster -B opci�j�t is az osztott mem�ria szegmens + m�ret�nek n�vel�s�hez. Ha az �rt�ket t�l magasra �ll�tod, lehet hogy + a postmaster nem indul el, mert t�ll�pted az oper�ci�s rendszer �ltal + megengedett m�retet. Minden buffer 8K m�ret� �s alap�rtelmez�sban 64 + buffer van. + + A -S opci�val n�velheted a szerver �tmeneti rendez�sekre fenntartott + mem�ria ter�let�t. Az �rt�ket kilobyteban add meg. Az alap�rtelmezett + �rt�k 512K. + + Haszn�lhatod a CLUSTER utas�t�st is, hogy a t�bl�kat egy indexnek + megfelel�en csoportos�tsd. Olvasd el a CLUSTER k�zik�nyv oldalt tov�bbi + r�szletek�rt. + + + 3.7) Milyen hibakeres� lehet�s�gek �rhet�ek el? + + A PostgreSQL sz�mos lehet�s�ggel rendelkezik ami �rt�kes lehet a hiba- + keres�sn�l. + + El�ssz�r is, futtathatod a configure scriptet --enable-cassert + opci�val, sok assert() funkci�hiv�s ellen�rzi a program fut�s�t �s + meg�llitja ha valami v�ratlan hiba t�rt�nik. + + Mind a postmaster �s a postgres sz�mos hibakeres� lehet�s�ggel rendelkezik. + Mindig amikor elinditod a postmastert, gy�z�dj meg r�la, hogy a kimenetet + log �llom�nyba k�ld�d. Igy: + cd /usr/local/pgsql + ./bin/postmaster >server.log 2>&1 & + + Ez egy server.log �llom�nyt hoz l�tre a fels� PostgreSQL k�nyvt�rban. + Ez az �llom�ny tartlamaz majd sz�mos hasznos inform�ci�t a szerverrel + kapcsolatos probl�m�kr�l �s hib�kr�l. A postmaster -d opci�j�val lehet + r�szletesebb hibakeres� inform�ci�t kapni. A -d opci�hoz meg kell + hat�rozni egy hiba szintet. Vigy�zz, a magas hibakeres� szint nagy + log �llom�nyt okozhat. + + Ha a postmaster nem fut, akkor futtathatod a postgres szervert + parancssorb�l is, �s az SQL kifejez�st k�zvetlen�l ennek adhatod �t. + Ez csak hibakeres�s eset�ben javasolt. Az �j sor a kifejez�s v�g�t jelenti, + nem a pontosvessz�. Ha hibakeres� opci�kkal forditottad a szervert, + haszn�lhatsz egy debuggert is hogy l�sd hogy mi t�rt�nik. Mivel igy a + szervert nem a postmaster inditotta, nem t�bbfelhaszn�l�s k�rnyezetk�nt + fut, igy a z�rol�si �s a szerverek k�z�tti kommunik�ci�s hiba jelens�gek + nem jelentkeznek. + + Ha m�r fut a postmaster, indits egy psql-t, �s n�zd meg a szerver processz + PID-j�t! Egy debuggert haszn�lhatsz a processzhez csatlakoz�shoz. + Be�llithatsz t�r�spontokat �s elindithatsz lek�rdez�seket. Ha a postgres + indit�sban keresel hib�t, a PGOPTIONS k�rnyezeti v�ltoz�t �llitsd be "-W n" + �rt�kre. Ez n m�sodperc v�rakoz�st id�z el�, igy tudsz csatlakozni a + processzhez, el tdsz hejezni t�r�spontokat, majd folytathatod a indit�st. + + A postgres program -s, -A �s -t opci�i is nagyon hasznosak lehetnek + hibakeres�sn�l �s teljesitm�ny m�r�sn�l. + + Profiling leht�s�ggel is fordithatod a szervert, hogy l�sd melyik + funkci�k foglalj�k el a fut�si id�t. A szerver profile �llom�nyai + a pgsql/data/base/dbname k�nzvt�rba ker�lnek, a kliens profile + �llom�nyok az aktu�lis k�nyvt�rba. Linuxon ehhez sz�ks�ges a + -DLINUX_PROFILE ford�t�si direktiva. + + 3.8) Mi�rt kapok "Sorry, too many clients" (T�l sok kliens) + hib�t csatlakoz�sn�l? + + N�velned kell a postmaster egyidej�leg futtatott szerver processz sz�m + korl�tj�t. + + Az alap�rtelmezett korl�t 32 processz. Ezt n�velhetjed �gy, hogy + �jrainditod a postmastert �s -N opci�val meghat�rotod az �j �rt�ket, + vagz m�dositod a postgresql.conf-ot. + + Ne felejtsd el, hogy ha n�veled a szerver processzek maxim�lis sz�m�t, + akkor bufferek sz�m�t is n�velned kell, legal�bb a processzek sz�m�nak + k�tszeres�re. Nagy processz sz�mokeset�ben val�szin�leg a Unix + konfigur�ci�s param�tereken is n�velni kell. Ellen�rizd a SHMMAX + (az osztott mem�ria szegmensek maxim�lis m�rete), a SEMMNS �s a SEMMNI + (a szemaforok maxim�lis sz�ma), az NPROC (a processzek maxim�lis sz�ma), + a MAXUPRC (felhaszn�l�nk�nti maxim�lis processz sz�m) �s a NFILE �s NINODE + (a megnzitott �llom�nzok maxim�lis sz�ma) param�tereket. A PostgreSQL + az�rt korl�tozza k�l�n a processz sz�mot, hogy a rendszeredet ne terhelhesse + meg t�ls�gosan. + + A PostgreSQL 6.5 verzi�ban a maxim�lis szerver processz sz�m 64 volt �s + a m�dosit�shoz bele kellett irni a include/storage/sinvaladt.h �llom�nyba + �s �jra kellett forditani a servert. + + 3.9) Mi van pgsql_tmp k�nyvt�rban? + + Ez a k�nyvt�r a lek�rdez�s v�grehajt� �ltal l�trehezott �tmeneti + �llom�nyokat tartalmazza. P�ld�ul ha egy rendez�st kell v�grehajtani + egy ORDER BY kifejez�s miatt �s a m?velet t�bb mem�ri�t vesz + ig�nybe, mint amennyit a -S param�ter megenged, akkor az �tmeneti + k�nyvt�rban hoz l�tre egy �llom�nyt a fennmarad� adat t�rol�s�ra. + + Az �tmeneti �llom�nyok t�bbnyire t�rl?dnek, de meg is maradhat ha + p�ld�ul v�ratlan hib�val le�ll a szerver egy rendez�s k�zben. Indit�skor + �s le�llit�skor ezeket az �llom�nyokat t�rli a postmaster. + + 3.10) Mi�rt kell dumpolni �s �jrat�lteni PostgreSQL kiad�s v�lt�s�n�l? + + A PostgreSQL csapat csak apr�bb v�ltoztat�sokat hajt v�gre a kisebb + kiad�sok k�z�tt, igy ha 7.2 verzi�r�l �llsz �t 7.2.1 verzi�ra, akkor nem + sz�ks�ges kidumplonod az adatb�zist. A nagy kiad�sok eset�ben (p�ld�ul + verzi�r�l 7.3-ra �tt�r�sn�l) v�ltozik a bels? adatstrukt�r�k �s + adat�llom�nyok form�tuma.Ezeka v�ltoz�sok gyakran nagyon �sszetettek, + ez�rt ink�b nem tartunk fenn visszafel� kompatibilit�st. A dump + az adatot �ltal�nos form�tumban irja ki, majd az �j form�tumban lehet + azt visszat�leni. + + Azokban a kiad�sokban, amelyek k�z�tt az adat form�tum nem v�ltozik, + a pg_upgrade program haszn�lhat� dumpol�s �s helzre�llit�s n�lk�l. + + _________________________________________________________________ + + M�k�dtet�si k�rd�sek + + 4.1) Mi a k�l�nbs�g a bin�ris �s a norm�l kurzorok k�z�tt? + + N�zd meg a DECLARE dokument�ci�j�t. + + 4.2) Hogyan tudom select-elni a lek�rdez�s els� p�r sor�t? + + Olvasd el a FETCH dokumnet�ci�j�t, vagy haszn�ld a SELECT + LIMIT-et. + + Az eg�sz lek�rdez�st v�gre kell hajtani, m�g akkor is, ha csak az als� + p�r sort akarod megkapni. Gondolj arra, hogy a lek�rdez�sben lehet ORDER BY + is. Ha van olyan index, ami megdfelel az ORDER BY kifejez�sednek, a + PostgreSQL k�pes lehet az els� n�h�ny rekord visszaad�s�ra, vagy a teljes + lek�rdez�snek le kell futnia, amig a k�rt rekordok le nem gener�l�dnak. + + 4.3) Hogy tudom kilist�zni a t�bl�kat vagy m�s dolgokat a PostgreSQL-ben? + + Elolvashatod a psql forr�s k�dj�ban a pgsql/src/bin/psql/describe.c + �llom�nyban. Ez SQL parancsokat tartalmaz, amelyek azokat a kimeneteket + �llitj�k el�, amiket a per jellel kezd�d� parancsok adnak vissza. + + 4.4) Hogyan tudok elt�vol�tani egy oszlopot egy t�bl�b�l? + + Ez a funkcionalit�s a 7.3 verzi�t�l kezdve �rhet� el az ALTER TABLE + DROP COLUMN -nal. A r�gebbi verti�kban igy lehet v�grehajtani: + BEGIN; + LOCK TABLE old_table; + SELECT ... -- minden oszlopot, kiv�tel amit t�r�lni szeretn�l + INTO TABLE new_table + FROM old_table; + DROP TABLE old_table; + ALTER TABLE new_table RENAME TO old_table; + COMMIT; + + 4.5) Mi a maxim�lis m�rete egy sornak, egy t�bl�nak vagy egy adatb�zisnak? + + A korl�tok: + adatb�zis: korl�tlan (1 TB az �ltalunk ismert lagnagyobb) + t�bla: 16 TB + rekord/sor 1.6TB + mez� 1 GB + a t�bla sorainak sz�ma: korl�tlan + a t�bla oszlopainak sz�ma: 250-1600 az oszlop nevekt�l f�gg�en + A t�bla indexeinek sz�ma: korl�tlan + + Term�szetesen nem igaz�n korl�tlan, de a t�rter�let, mem�ria �s egy�b + k�ls� t�nyez�k korl�tozz�k. A teljesitm�ny romolhat, ha ezek az �rt�kek + szokatlanul nagyok. + + A 16 TB-os legnagyobb t�bla m�ret nem ig�nyel nagy �llom�ny t�mogat�st. + A nagy t�bl�k t�bb 1 GB m�ret� �llom�nyba ker�lnek, igy az �llom�ny + rendszer korl�tai nem l�nyegesek. + + A maxim�lis t�bla m�ret �s az oszlopok maxim�lis oszlop sz�m n�velhet�, + ha az alap�rtelmezett blokkm�retet 32k-ra n�veled. + + 4.6) Mekkora adatb�zis lemez ter�let sz�ks�ges egy tipikus sz�veg �llom�ny + t�rol�s�hoz? + + A PostgreSQL ak�r a sz�veg �llom�ny helyig�nz�nek �tsz�r�s�t is elfoglalhaja. + + K�pzelj el p�ld�ul, egy 100.000 soros sz�veget, aminek minde sora + egy sz�mb�l �s egy sz�vegb�l �ll. Tegy�k el, hogy �tlagosan 20 byte hossz� + sz�vegek. Ez a sz�veg�llom�ny k�r�lbel�l 2.8 MB helyet foglalna el. + A t�bla ami a fenti adatszerkezetet elt�roln�, k�r�lbel�l 6.4 MB-os lenne. + Ezt a k�vetkez�k�ppen sz�molhatjuk ki: + 36 byte: sor fejl�c + 24 byte: egy int mez� + egy sz�veg mez� + 4 byte: mutato + --------------------------------------- + 64 byte soronkent. + + Az adat oldal m�rete a PostgreSQL-ben 8192 byte, igy + 8192 / 64 = 128 rekord adatb�zis oldalank�nt (lefel� kerekitve). + + 100000 rekord / 128 rekord oldalank�nt = 782 adat oldal (felel� kerekitve). + + 782 adatb�zis oldal * 8192 byte olalank�nt = 6,406,144 byte (6.4 MB) + + Az indexek nem foglalnak t�l sokat, de tartalmazz�k az indexelt adatot, + igy ezek is lehetnek nagyok. + + A NULL �rt�kek bitt�rk�pben vannak t�rolva, igy kev�s helyet foglanak. + + + 4.7) Hogy tudhatom meg milyen t�bl�k, indexek, adatb�zisok vagy felhaszn�l�k + vannak defini�lva? + + A psql-ben tal�lsz sz�mos '\' karakterrel kezd�d� utas�t�st az ilyen + inform�ci�k list�z�s�ra. A '\?' segits�g�vel tudot kilist�zni ezeket + a parancsokat. Ezen kiv�l vannak rendszer t�bl�k, amelyek nevei 'pg_' + -vel kezd�dnek. + + Pr�b�ld ki a pgsql/src/tutorial/syscat.source �llom�nyt is. Ez sok + p�ld�t tartalmaz az rendszert�bl�kon v�grehajtott SELECT-ekr�l. + + 4.8) A lek�rdez�seim lass�ak, vagy nem haszn�lj�k az indexeket. Mi�rt? + + Az indexeket nem haszn�lja a szerver minden lek�rdez�sn�l automatikusan. + Csak akkor haszn�l indexet, ha a t�bla m�rete egy megadott als� hat�r + felett van, �s a lek�rdez�s csak a sorok egy kis r�sz�t �rinti. Ez az�rt + van, mert a v�letlen hozz�f�r�s m�g mindig lassabb lehet mint az t�bla + szekvenci�lis olvas�sa. + + Hogy a PostgreSQL meg tudja hat�rozni hogy kell-e indexet haszn�lni, + l�teznie kell egy statisztik�nak a t�bl�r�l. Ez a statisztikai adatok a + VAACUM ANALYZE vagy az egyszer? ANALYZE m?veletek sor�n + j�nnek l�tre. A statisztikai adatok felhaszn�l�s�val az optimaliz�l� + meg tudja hat�rozni, hogy h�ny sor van a t�bl�ban, �s el tudja d�nteni, + hogy haszn�ljon-e indexet. A statisztiaki adatgy�jt�st id?nk�nt v�gre + kell hajtani, ahogy a t�bla adatai v�ltoznak. + + Az indexeket norm�lis esetben nem haszn�lja az ORDER BY vagy + az OUTER JOIN. A szekvenci�lis olvas�s �ltal�ban gyorsabb, mint az + index keres�s egy nagy t�bl�ban. + B�r a LIMIT az ORDER BY-val kombin�lva haszn�lhat indexet, mert + a t�bla csak kis r�sze �rintett. B�r a MIN �s MAX SQL funkci�k sem + haszn�lj�k az indexeket, ezeket az �rt�keket egy ORDER BY + LIMIT + lek�rdez�ssel is le lehet k�rdezni: + SELECT col + FROM tab + ORDER BY col [ DESC ] + LIMIT 1; + + Amikor helyettes�t� jel oper�torokat haszn�lsz, mint a LIKE kulcssz� + vagy a ~, az indexeket csak bizonyos k�r�lm�nyek k�z�tt lehet haszn�lni: + * A keres� string kezdete a keres�si minta elej�n kell hogz legyen. + p�ld�ul: + + A LIKE mint�k nem kezd�dhetnek % jellel. + + ~ (regexp) kifejez�sek nem kezd�dhetnek ^ jellel. + * A keres�si kifejez�s nem kezd�dhet karakter oszt�llyal. + * A case-insensitive keres�s (ILIKE, ~*) nem haszn�lnak indexet + ehelyett funkcion�lis indexet haszn�lnak, amit a 4.12 pontban + tal�lhatsz. + * Az alap�rtelmezett C hellyel kell futtatni az initdb�t. + + 4.9) Hogy tudom ellen�rizni, hogy optimaliz�lta a lek�rdez�s optimaliz�l� + a lek�rdez�sem? + + Olvasd el a dokument�ci� EXPLAIN-r�l sz�l� r�sz�t. + + 4.10) Mi az R-tree index? + + Az R-tree index a t�rbeli adat indexel�s�re alkalmas. Egy hash + index nem k�pes tartom�ny keres�sekre. A B-tree index csak egy + dimenzi�n kezeli a tartom�ny keres�seket. P�ld�ul ha az indexet + egy pont (point adatt�pus) t�pus� mez.re �p�tj�k, gyorsabban + kezeli az olyan jelleg� lek�rdez�seket, mint egy adott k�rben + tal�lhat� pontok. + + Az R-tree tervez�si mint�t eredetileg le�r� sz�veg: + + 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. + + Ezt olvashatod Stonebraker "Readings in Database Systems" c. + k�nyv�ben. + + A be�p�tett R-tree kezelni tudj�k a soksz�geket (polygon adatt�pus) + �s a dobozokat (box). Elm�letileg, az R-tree kiterjeszthet� tov�bbi + dimenzi�kra is. Gyakorlatilag ezen dolgoznod kell egy kicsit, �s + m�g nincs dokument�ci�nk arr�l hogy az hogyan m�k�dik. + + 4.11) Mi a Genetic Query Optimizer? + + A GEQO modul a lek�rdez�s optimaliz�ci� sebess�g�t n�veli nagy + mennzis�g? t�bla �sszekapcsol�sa eset�n. Lehet?v� teszi a nagy + lek�rdez�sek v�grehajt�s�t nem teljes keres�ssel. + + 4.12) Hogyan tudok regexp keres�st �s case-insensitive regexp keres�st + haszn�lni? Hogyan tudok indexet haszn�lni case-insensitive keres�shez? + + A ~ oper�tor hajt v�gre regul�ris kifejez�s (regexp) �rtelmez�st, + a ~* ennek case-insensitive v�ltozata. A LIKE case-insensitive + v�ltozata az ILIKE. + + A case-insensitive egyenl�s�g m�veleteket �ltal�ban igy hajtjuk + v�gre: + SELECT * + FROM tab + WHERE lower(col) = 'abc'; + + Ez nem fog indexet haszn�lni, b�r l�trehozhatsz egy funkci� indexet: + CREATE INDEX tabindex ON tab (lower(col)); + + 4.13) Hogyan tudom �szlelni egy lek�rdez�sben, ha egy mez� NULL? + + Haszn�ld "IS NULL"-t �s az "IS NOT NULL"-t. + + 4.14) Mi a k�l�nbs�g a k�l�nb�z� karaktert�pusok k�z�tt? + +Type Internal Name Notes +-------------------------------------------------- +"char" char 1 character +CHAR(n) bpchar blank padded to the specified fixed length +VARCHAR(n) varchar size specifies maximum length, no padding +TEXT text no specific upper limit on length +BYTEA bytea variable-length byte array (null-byte safe) + + L�tni fogod a bels� elnevez�s�ket, ha tanulm�nyozod a rendszert�bl�kat + �s n�h�ny hiba�zenetet. + + Az ut�bbi n�gy a "varlena" t�pusok, ami a t�rol�suk m�dj�ra utal: + az els? 4 byte a lemezen a hossz�s�g, a t�bbi az adat. A val�di m�ret + teh�t nagyobb mint a deklar�lt hossz�s�g.Ezek azadatok t�m�ritve + t�rol�dnak el, igy kevesebb helyet foglalnek el az el�re sz�mitottn�l. + + A CHAR(n) a legjobb megold�s, ha stabil hossz�s�g� stringet t�rolsz. + A VARCHAR(n) j� arra az esetekre, ha a hossz�s�g v�ltozik, de van + fels� korl�tja. A TEXT t�pus korl�tlan hossz�s�g� (1 GB-ig) sz�vegek + t�rol�s�ra alklamas. A BYTEA bin�ris adatok t�rol�s�ra van. A + teljesitm�ny mutat�i hasonl�ak ezenek a t�pusoknak. + + 4.15.1) Hogyan tudok l�trehozni automatikusan n�vekv� �rt�k� mez�t? + + A PostgreSQL rendelkezik egy SERIAL adatt�pussal. Ez egy szekvenci�t + �s egy indexet hoz l�tre az oszlopon. P�ld�ul ez: + CREATE TABLE person ( + id SERIAL, + name TEXT + ); + + ugyanezt jelenti: + 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 ); + + A szekvenci�kkal kapcsolatban olvasd el a create_sequence man + oldalt. A sor OID-j�t is haszn�lhatod egyedi azonosit�k�nt, b�r + ebben az esetben figyelj a pg_gump haszn�lat�n�l a -o opci�ra + (COPY WITH OIDS, m�sol�s OID-dal), hogy meg?rizd az �rt�keket. + + 4.15.2) Hogyan kaphatom meg egy SERIAL besz�r�s �rt�k�t? + + Egy megold�s erre az, ha a nextval() funkci�val megszerzed az + �rt�ket m�g miel�tt besz�rn�d az adatot a t�bl�ba. Erre itt l�thatsz + egy p�ld�t: + new_id = execute("SELECT nextval('person_id_seq')"); + execute("INSERT INTO person (id, name) VALUES (new_id, 'Blaise Pascal')"); + + Esetleg lek�rdezheted a szekvencia �llapot�t a sor besz�r�sa ut�n. + execute("INSERT INTO person (name) VALUES ('Blaise Pascal')"); + new_id = execute("SELECT currval('person_id_seq')"); + + V�g�l pedig, haszn�lhatod a visszaadott OID �rt�ket is, b�r ez a lehet� + legkev�sb� portolhat�. Perl DBI-ben, Edmund Mergl DBD::Pg modulj�ban + az OID �rt�k haszn�lhat� a $sth->execute() ut�n ($sth->{pg_oid_status}). + + 4.15.3) A currval() �s a nextval() nem teremt holtpont vesz�lyes helyzetet + a felhaszn�l�k k�z�tt? + + Nem. A currval() funkci� a szerver processzed �ltal adott �rt�ket adja + vissza, nem pedig a t�bbi szerver processz �ltal adtottat. + + 4.15.4) Mi�rt nem haszn�l�dnak fel �jra a sequence sz�mok tranzakci� + abort eset�n? + Mi�rt vannak probl�m�k a serial oszlopok sz�moz�s�val? + + A p�rhuzamoss�g fejleszt�se �rdek�ben a sorozat sz�mokat k�r�sre + adja ki a szerver fut� tranzakci�knak, �s azokat nem z�rja, amig + a tranzakci� v�get nem �r. Ez jukakat okoz a sz�moz�sokban a + visszaforditott tranzakci�k miatt. + + 4.16) Mi a OID? Mi a TID? + + Az OID a PostgreSQL egyedi sor azonosit�ja. Minden sor, ami l�trej�n + a szerveren, kap egy OID-t. Minden OID, amit az initdb alatt j�n l�tre + 16384 alatt van (l�sd include/access/transam.h). Minden, felhaszn�l� + �ltal l�trehozott OID legal�bb ennyi. Alap�rtelmez�sben, az OID + nem csak a t�bl�ban vagy az adatb�zisban egyedi, hanem a teljes + PostgreSQL adatb�zis rendszerben. + + A PostgreSQL az OID-okat a bels� t�bl�iban haszn�lja a sorok t�bl�k + k�z�tt �sszekapcsol�s�hoz. Ezek az OID-k haszn�lhat�ak a rekordok + azonosit�s�ra is amikor t�bl�kat csatol �ssze a szerver (JOIN). + Az OID-ot haszn�lhatod mez� t�pusk�nt is, �s indexelheted is. + + Az OID �rt�k egy k�zponti ter�letr�l sz�rmazik, amit minden szerver + processz haszn�l. Ha az OID-ot valami m�sra szeretn�d cser�lni: + 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'; + + Az OID 4 byte-os integer �rt�kk�nt t�rol�dik, igy 4 milli�rdn�l t�lcsordul. + M�g soha senki nem jelezte hogy ez t�rt�nt volna, �s ezt a korl�tot + igyeksz�nk elt�volitani, m�g miel�tt b�rki �szrevenn�. + + A TID a fizikai sorok blokk �s offszet c�mmel val� azonosit�s�ra szolg�l. + A TID v�ltozik minden rekord modosit�s �s t�rl�s alkalm�val. Ezeket az + indexek haszn�lj�k hogy a fizikai sort gyorsan megtal�lj�k. + + 4.17) Mi a PostgreSQL-ben haszn�lt kifejez�sek jelent�se? + + N�hol a forr�s k�dban �s a dokumnet�ci�ban tal�lhat�ak kifejez�sek, + amelyek �ltal�nosabb jelent�ssel b�rnak. Itt van n�h�ny: + * t�bla (table), rel�ci� (relation), oszt�ly (class) + * sor (row), rekord (record), tuple (nincs magyar jelent�s) + * oszlop (column), mez� (field), attributum (attribute) + * retrieve, select + * helyettesit (replace), m�dosit (update) + * hozz�f�z (append), besz�r (insert) + * OID, sorozat �rt�k (serial value) + * portal, cursor + * range variable, t�bla n�v, t�bla alias + + Az �ltal�nos adatb�zis kifejez�sek �sszefoglal�j�t itt olvashat�: + http://hea-www.harvard.edu/MST/simul/software/docs/pkgs/pgsql/glossary + /glossary.html + + 4.18) Mi�rt kapom ezt a hib�t: "ERROR: Memory exhausted in + AllocSetAlloc()"? + + Lehet hogy elfogyott a virtu�lis mem�ri�d, vagy a kerneled er�forr�s + korl�tai alacsonyak. Pr�b�ld ki ezt miel�tt elinditan�d a postmastert: + ulimit -d 262144 + limit datasize 256m + + A shellt�l f�gg�en ezek k�z�l csak az egyik fut majd le, de a + processzek adatszegmens�t sokkal magasabbra �llitja, ami tal�n + el�g lesz a lek�rdez�s v�grehajt�s�hoz. Ez az utas�t�s a jelenlegi + processzre (a shelled) �rv�nyes, �s minden �ltala l�trehozott + processzre. Ha probl�m�d van az SQL klienssel, mert a szerver + t�l nagy adatot k�ld vissza, pr�b�ld meg e klienssel is ugyanezt. + + 4.19) Hogyan tudhatom meg PostgreSQL, milyen verzi�t futtatok? + + A psql programban select version(); + + 4.20) Mi�rt kapok "invalid large obj descriptor" hib�t nagy objektumok + kezel�s�n�l? + + A nagy objektumok kezel�s�t egy tranzakci�s blokkban helyezd el. + (BEGIN �s COMMIT k�z�tt) + + Jelenleg a PostgreSQL ezt a szab�lyt azzal teszi k�telez�v�, hogy a + tranzakci� v�g�n a nagy objektumokat lez�rja, igy a tranzakci� ut�n + az els� m�velet amit az objektumon v�grahajtan�l hib�s lesz. + + Ha olyan programoz�si fel�letet haszn�lsz mint az ODBC vagy a JDBC + akkor val�szin�leg ki kell kapcsolnod az auto-commit-ot. + + + 4.21) Hogy hozhatok l�tre olyan oszlopot, aminek alap�rtelmezett + �r�tke a jelenlegi id�? + + Haszn�ld a CURRENT_TIMESTAMP -ot: +CREATE TABLE test (x int, modtime timestamp DEFAULT CURRENT_TIMESTAMP ); + + 4.22) Mi�rt olyan lassuak az al-lek�rdez�seim IN-nel? + + Jelenleg az al-lek�rdez�seket a k�ls� lek�rdez�shez csatoljuk. Ha + az allek�rdez�s csak kev�s sort eredm�nyez �s a k�ls� lek�rdez�s + sokat, akkor az IN is gyors. Az EXISTS kulcssz� haszn�lat�val + gyorsithatod a lek�rdez�seket. + SELECT * + FROM tab + WHERE col IN (SELECT subcol FROM subtab); + + EXISTS haszn�lat�val: + SELECT * + FROM tab + WHERE EXISTS (SELECT subcol FROM subtab WHERE subcol = col); + + Ahhoz hogy ez gyorsan fusson le, a subcol indexelt oszlopnak kell + hogy legyen. Rem�lj�k ezt a korl�tot siker�l hamarosan legy�zn�nk. + + 4.23) Hogyan tudok outer join-t v�grehajtani? + + A PostgreSQL a szabv�nyos SQL szintaktik�t k�veti. Itt van k�t p�lda: + SELECT * + FROM t1 LEFT OUTER JOIN t2 ON (t1.col = t2.col); + + vagy + SELECT * + FROM t1 LEFT OUTER JOIN t2 USING (col); + + Ezek az identikus lek�rdez�sek �sszekapcsolj�k a t1.col �s a t2.col + mez�ket, �s a t1 b�rmelyik kapcsolatlan sor�t is visszadj�k. A RIGHT + JOIN a t2 kapcsolatlan sorait adta volna vissza, a FULL JOIN pedig + a kapcsolt, �s mindk�t t�bla kapcsolatlan sorait adja. Az OUTER + kulcssz� opcion�lis, a LEFT, RIGHT �s FULL JOIN szintaktikailag + helyes. Az �tlagos �sszekapcsol�sokat INNER JOIN-nak nevezz�k. + + Az el�z� kiad�sokban a OUTER JOIN lek�rdez�seket UNION �s NOT IN + kulcsszavakkal lehetett szimul�lni. P�ld�ul a tab1 �s a tab2 + �sszekapcsol�sa: + SELECT tab1.col1, tab2.col2 + FROM tab1, tab2 + WHERE tab1.col1 = tab2.col1 + UNION ALL + SELECT tab1.col1, NULL + FROM tab1 + WHERE tab1.col1 NOT IN (SELECT tab2.col1 FROM tab2) + ORDER BY col1 + + 4.24) Hogyan tudok t�bb adatb�zison v�grehajtani lek�rdez�st? + + Arra nincs lehet�s�g, hogy m�s adatb�zisb�l k�rdezz le adatot. + Mivel a PostgreSQL adatb�zis specifikus rendszer t�bl�kat t�lt + be, bizonytalan hogy egy adatb�zisok k�z�tti lek�rdez�snek hogyan + kellene viselkednie. + + A contrib/dblink k�nyvt�rban tal�lsz egy megold�st erre, ami + funkci� hiv�sok segits�g�vel m�k�dik. Persze, a kliens hozhat l�tre + szimult�n kapcsolatot t�bb adatb�zissal, �s �sszef�s�lheti az + eredm�nyeket. + + 4.25) Hogy tudok t�bb soros vagy oszlopos eredm�nyt visszaadni egy + funkci�b�l? + + A PL/pgSQL t�rolt elj�r�s nyelvvel refcursor haszn�lat�val. + R�szletesen itt: + http://www.PostgreSQL.org/idocs/index.php?plpgsql-cursors.html + + 4.26) Mi�rt nem tudom megbizhat�an l�trehozni �s t�r�lni az �tmeneti + t�bl�kat a PL/pgSQL funkci�kban? + + A PL/pgSQL cacheli a funkci�k tartalm�t, aminek az a szerencs�tlen + mell�khat�sa, hogy ha egy PL/pgSQL funkci� haszn�l egy �tmeneti + t�bl�t, ami k�s?bb t�rl�dik majd ujra l�trej�n, akkor az �jra lefut� + funkci� nem fogja megtal�lni a t�bl�t, mert a cache v�ltozat a r�gi + t�bl�ra tartalmaz mutat�t. A megold�s erre az EXECUTE utas�t�s + haszn�lata az �tmeneti t�bl�k kezel�s�re PL/pgSQL-ben. Ez a + lek�rdez�s �jraford�t�s�t fogja el�id�zni minden alkalommal. + + 4.27) Milyen replik�ci�s lehet�s�gek vannak? + + Sz�mos master/slave replik�ci�s lehet�s�g l�tezik. Ez csak a master + adatb�zis sz�m�ra teszi lehet�v�, hogy az adatokat v�ltoztassa. Egy + List�t olvashatsz ezekr�l itt: + http://gborg.PostgreSQL.org/genpage?replication_research + + Egy t�bbfelhaszn�l�s replik�ci�s rendszer k�sz�l itt: + http://gborg.PostgreSQL.org/project/pgreplication/projdisplay.php. + + 4.28) Milyen k�dol�si lehet�s�gek vannak? + + - A cotrib/pgcrypto tartlamaz sz�mos SQL lek�rdez�sben haszn�lhat� k�dol�st. + - A kliens-szerver kommunik�ci� rejtjelez�s�re a hostssl haszn�lhat�. + Ezt a pg_hba.conf-ben enged�lyeztheted. + - Az adatb�zis felhszn�l�k jelszavait t�rol�skor k�dolja a rendszer. R�gebbi + verzi�kban a PASSWORD_ENCRYPTION opci�val lehetett + bekapcsolni. + - A szerveren haszn�lhatsz k�dolt f�jrendszert. + _________________________________________________________________ + + A PostgreSQL kiterjeszt�se + + 5.1) �rtam egy felhaszn�l�i funkci�t. Mi�rt core dumpol az adatb�zis amikor + haszn�lom? + + Sz�mos probl�ma lehet. El�bb prob�ld ki a funkci�dat egy k�l�n�ll� + alkalmaz�sban. + + 5.2) Hogyan lehet �j adatt�pusokat �s funkci�kat hozz�adni a PostgreSQL + disztrib�ci�hoz? + + K�ldd el a kieg�sz�t�seid a pgsql-hackers levelez�si list�ra �s a + forr�skodjaid v�g�l a contrib-ban k�tnek ki. + + 5.3) Hogyan lehet olyan C funkci�t �rni, ami Tuple-t ad vissza? + + A 7.3 verzi�t�l kezdve a PostgreSQL t�mogatja a t�bl�zatokat + viszzaad� funkci�kat C, PL/pgSQL �s SQL nyelveken. B�vebb + dokument�ci�t a Programoz� k�zik�nyvben tal�lsz. Egy C p�lda + funkci� tal�lhat� a contrib/tablefunc k�nyvt�rban. + + 5.4) Megv�ltoztattam egy forr�s �llom�nyt. Mi�rt nem v�ltozik a bin�ris + �jraford�t�s ut�n? + + A Makefile-ok nem ismerik a include �llom�nyok megfelel� f�gg�s�geit. + V�gre kell hajtanod egy make clean-t, majd �jra egy make-t. Ha GCC-t + haszn�lsz felhaszn�lhatod a configure script --enable-depend opci�j�t, + �gy a compiler maga fogja ellen�rizni a f�gg�s�geket. + -- GitLab