From aef037723f8176008a69bff9496551c9f99a4f91 Mon Sep 17 00:00:00 2001 From: Bruce Momjian <bruce@momjian.us> Date: Fri, 5 Mar 2004 19:29:23 +0000 Subject: [PATCH] Update Polish FAQ, from Marcin Mazurek. --- doc/FAQ_polish | 444 +++++++++++++++++++------------ doc/src/FAQ/FAQ_polish.html | 511 ++++++++++++++++++++++-------------- 2 files changed, 594 insertions(+), 361 deletions(-) diff --git a/doc/FAQ_polish b/doc/FAQ_polish index d89b8ea7abe..f98902093c5 100644 --- a/doc/FAQ_polish +++ b/doc/FAQ_polish @@ -1,18 +1,19 @@ Frequently Asked Questions (FAQ) o PostgreSQL - Ostatnia aktualizacja: Thu Apr 18 00:44:51 EDT 2002 + Ostatnia aktualizacja: Sobota Luty 7 22:16:21 EST 2004 + + Ostatnia aktualizacja tl/umaczenia: Piatek Marzec 5 19:31:12 EST 2004 Obecny maintainer: Bruce Momjian (pgman@candle.pha.pa.us) Tl/umaczenie: Marcin Mazurek (m.mazurek@netsync.pl) Najbardziej aktualna wersje tego dokumentu mozna znalezc pod adresem: - http://www.PostgreSQL.org/docs/faq-english.html. + http://www.PostgreSQL.org/docs/faqs/FAQ.html. Odpowiedzi na pytania dotyczace konkretnych system�w operacyjnych - mozna znalezc pod adresem: - http://www.PostgreSQL.org/users-lounge/docs/faq.html. + mozna znalezc pod adresem: http://www.PostgreSQL.org/docs/index.html. _________________________________________________________________ Pytania og�lne @@ -40,18 +41,17 @@ 2.1) Czy sa jakies driwery ODBC dla PostgreSQL? 2.2) Jakie istnieja narzedzia pozwalajace na dostep do PostgreSQL przez www? - 2.3) Czy istnieje jakies GUI dla PostgreSQL? Narzedzie do - raportowania? Interfejs dla "embedded query language"? + 2.3) Czy istnieje jakies GUI dla PostgreSQL? 2.4) Za pomoca jakich jezyk�w programowania mozna sie komunikowac z PostgreSQL? - Pytania administratora + Pytania dotyczace administracji 3.1) Jak moge zainstalowac PostgreSQL w innej lokalizacji niz /usr/local/pgsql? 3.2) Podczas startu postmaster'a, otrzymuje komunikat: Bad System Call lub "core dumped". Dlaczego? - 3.3) Podczas startu postmaster'a, otrzymuje komunikato bl/edzie: + 3.3) Podczas startu postmaster'a, otrzymuje komunikat o bl/edzie: IpcMemoryCreate. Dlaczego? 3.4) Podczas startu postmaster'a, otrzymuje komunikat o bl/edzie: IpcSemaphoreCreate. Dlaczego? @@ -61,8 +61,9 @@ 3.7) Jakie sa mozliwosci wyszukiwania bl/ed�w? 3.8) Skad sie bierze komunikat: "Sorry, too many clients" podczas pr�by pol/aczenia sie z baza danych? - 3.9) Co to za pliki typu pg_sorttempNNN.NN , kt�re znajduja sie w - katalogu z plikami bazy danych? + 3.9) Jakie pliki znajduja sie w pg_temp? + 3.10) Dlaczego konieczne jest przy upgradzie PostgreSQL korzystanie ze + skrypt�w dump i restore? Pytania dotyczace uzytkowania @@ -72,7 +73,7 @@ zapytania? 4.3) Jak moge uzyskac liste wszystkich tabel czy innych rzeczy pod psql? - 4.4) Jak usunac kolumne z tabeli? + 4.4) Jak usunac kolumne z tabeli lub zmienic jej typ? 4.5) Jaki jest maksymalny rozmiar dla rzedu, tabeli i bazy danych? 4.6) Jak duzo miejsca w bazie danych jest potrzebne aby przechowac dane ze zwyczajnego pliku tekstowego? @@ -110,6 +111,10 @@ 4.23) Jak wykonac "outer join"? 4.24) Jak wykonywac zapytanie uzywajace kilku baz danych jednoczesnie? 4.25) Jak zwr�cic w funkcji wiele rzed�w lub kolumn? + 4.26) Dlaczego nie moge w spos�b pewny tworzyc/usuwac tabel + tymczasowych w funkcjach PL/PgSQL? + 4.27) Jakie sa mozliwosci replikacji w PostgreSQL? + 4.28) Jakie mozliwosci szyfrowania oferuje PostgreSQL? Rozwijanie PostgreSQL @@ -125,7 +130,8 @@ 1.1) Co to jest PostgreSQL? Jak to wymawiac? - PostgreSQL wymawia sie Post-Gres-kju-el. + PostgreSQL wymawia sie Post-Gres-kju-el. Czesto podczas rozm�w uzywany + jest termin "Postgres" PostgreSQL jest rozszerzeniem systemu zarzadzania bazami danych - POSTGRES, kolejna generacja rozwojowego prototypu DBMS. Mimo, ze @@ -137,11 +143,13 @@ Rozw�j PostgreSQL jest prowadzony przez grupe ludzi z Internetu, komunikujacych sie poprzez mailowe listy dyskusyjne PostgreSQL. Obecnym koordynatorem jest Marc G. Fournier (scrappy@PostgreSQL.org). - (Zobacz ponizej jak sie przyl/aczyc). Ta grupa ludzi jest - odpowiedzialna za cal/y rozw�j PostgreSQL. + (Zobacz pytanie 1.6 jak sie przyl/aczyc). Ta grupa ludzi jest + odpowiedzialna za cal/y rozw�j PostgreSQL. PostgreSQL jest projektem + nie kontrolowanym przez zadna firme, aby wziac udzial/ w jego rozwoju + sprawdz, http://www.PostgreSQL.org/docs/faqs/FAQ_DEV.html Autorami PostgreSQL 1.01 byli Andrew Yu and Jolly Chen. Wiele innych - os�b pomogl/o przy portowaniu, testowaniu, debugowaniu, i rozwijaniu + os�b pomogl/o przy portowaniu, testowaniu, debugowaniu i rozwijaniu kodu. Oryginalny kod Postgresa, na kt�rym zostal/ oparty PostgreSQL, byl/ wysil/kiem student�w oraz pracownik�w pracujacych pod kierownictwem profesora Michael'a Stonebraker'a z University of @@ -194,11 +202,11 @@ Klient - Mozliwa jest kompilacja bibliteki C libpq C, psql oraz innych + Mozliwa jest kompilacja bibliteki C libpq, psql oraz innych interfejs�w i uruchamianie ich na platformie MS Windows. W tym wypadku klient jest uruchamiany na MS Windows a z serwerem komunikuje sie poprzez TCP/IP. Serwer moze dzial/ac na dowolnej wspieranej platformie - Unixowej. Plik win31.mak jest dol/aczony do zr�del/, aby mozna byl/o + Unixowej. Plik win32.mak jest dol/aczony do zr�del/, aby mozna byl/o stworzyc biblioteke libpq oraz program psql dzial/ajace w srodowisku Win32. PostgreSQL moze sie takze komunikowac z klientami ODBC. @@ -206,9 +214,17 @@ Serwer moze byc uruchamiany na Windows NT i Win2k uzywajac bibliotek Cygwin, Cygnus Unix/NT. W pliku pgsql/doc/FAQ_MSWIN znajdujacym sie w - zr�dl/ach lub pod adresem: MS Windows FAQ na naszych stronach. Nie - planujemy tworzyc portu przeznaczonego docelowo dla platformy - Microsoft. + zr�dl/ach lub pod adresem: + http://www.PostgreSQL.org/docs/faqs/text/FAQ_MSWIN na naszych + stronach. + + Obecnie prowadzone sa prace nad stworzeniem wersji dla MS Win + NT/200/XP. Jesli chcesz sie dowiedziec o obecnym statusie tych prac + zobacz http://techdocs.postgresql.org/guides/Windows and + http://momjian.postgresql.org/main/writings/pgsql/win32.html. + + Istnieje takze port pod Novell Netware 6 dostepny pod adresem + http://forge.novell.com. 1.5) Skad mozna sciagnac PostgreSQL? @@ -258,31 +274,31 @@ irc.phoenix.net. Lista firm oferujacych wsparcie na zasadach komercyjnych znajduje sie - pod adresem: - http://www.postgresql.org/users-lounge/commercial-support.html. + pod adresem: http://techdocs.postgresql.org/companies.php. 1.7) Jaka jest ostatnia dostepna wersja? - Ostatnia dostepna wersja PostgreSQL to 7.2.1. + Ostatnia dostepna wersja PostgreSQL to 7.4.1. - Planujemy publikowanie kolejnych wersji co cztery miesiace. + Planujemy publikowanie kolejnych wersji co szesc do osmiu miesiecy. 1.8) Jaka dokumentacja jest dostepna? Kilka manuali, stron podecznika man, oraz kilka przykl/ad�w do testowania sa zal/aczone w samej dystrybucji. Znajduja sie one w katalogu /doc. Manual moze byc takze przegladany poprzez strony www - pod adresem http://www.PostgreSQL.org/users-lounge/docs/. + pod adresem http://www.PostgreSQL.org/docs. Istnieja takze dwie ksiazki dostepne online pod adresami http://www.PostgreSQL.org/docs/awbook.html i http://www.commandprompt.com/ppbook/. Lista ksiazek o PostgreSQL, kt�re mozna kupic znajduje sie pod adresem - http://www.postgresql.org/books/. Zbi�r technicznych artykul/�w o - PostgreSQL znajduje sie pod adresem http://techdocs.postgresql.org/. + http://techdocs.PostgreSQL.org/techdocs/bookreviews.php. Zbi�r + technicznych artykul/�w o PostgreSQL znajduje sie pod adresem + http://techdocs.postgresql.org/. psql posiada kilka wbudowanych polecen \d, za pomoca kt�rych mozna - sprawdzic informacje dotyczace typ�w, operator�w, funkcji, aggregat�w + sprawdzic informacje dotyczace typ�w, operator�w, funkcji, agregat�w itd. Na naszej stronie mozna znalezc duzo wiecej dokumentacji. @@ -327,7 +343,8 @@ Jest okol/o 12 os�b, kt�re maja uprawnienia do commit'owania w CVS PostgreSQL'a. Kazdy z nich submitowal/ tak wiele wysokiej jakosci patchy, ze stal/o sie niemozliwe dla obecnych commiter�w byc z nimi na - biezaco, majac pewnosc ze sa to poprawki wysokiej jakosci. + biezaco, wiec musielismy im ufac i miec pewnosc, ze ich poprawki sa + wysokiej jakosci. 1.13) Jak moge zgl/aszac bl/edy? @@ -349,44 +366,33 @@ integrity, oraz wyrafinowany system blokowania. Mamy takze wl/asciowsci kt�rych inni nie posiadaja, jak typy definiowane przez uzytkownika, dziedziczenie, rules, multi-version - concurrency control, kt�ra redukuje problemy z blokowaiem (lock - contention). + concurrency control, kt�ra redukuje problemy z blokowaniem + (lock contention). Wydajnosc - PostgreSQL dzial/a w dw�ch trybach. Standardowy tryb fsync - zrzuca kazda zakonczona transakcje na dysk, gwarantujac w ten - spos�b to, ze jesli system operacyjny sie zawiesi lub straci - zasilanie wciagu kilku nastepnych sekund, wszystkie Twoje dane - zostana bezpiecznie zapisane na dysku. W tym trybie, jestesmy - wolniejsi niz wiekszosc komercyjnych baz danych, czesciowo - dlatego ze niewiele z nich wykonuje taki spos�b zapisywania - danych jako domyslne ustawienie. W trybie no-fsync z regul/y - jestesmy szybsi niz komercyjne bazy danych, chociaz w tym - wypadku zawieszenie sie systemu moze spowodowac uszkodzenie - danych. Pracujemy nad tym, aby stworzyc posredni tryb, kt�ry - powoduje mniejsza redukcje wydajnosci niz tryb fsync i pozwoli - na integralnosc danych w przeciagu 30 sekund do zal/amania sie - systemu operacyjnego. - Por�wnujac do MySQL czy innych prostych baz danych, jestesmy - wolniejsi przy wykonywaniu insert�w/updat�w przez narzut - spowodowany przez transakcje. Oczywiscie MySQL nie posiada - zadnej z wymienionych wyzej mozliwosci. PostgreSQL zostal/ - zbudowany aby byc DBMS elastycznym i bogatym z r�znorakie - mozliwosci, aczkolwiek dbamy, aby poprawiac jego wydajnosc - poprzez analize kodu zr�dl/owego i profilowanie. Ciekawe - por�wnanie PostgreSQL i MySQL mozna znalezc pod adresem - http://openacs.org/why-not-mysql.html - Kazde pol/aczenie klienta jest obsl/ugiwane przez nas poprzez - stworzenie nowego procesu Unixowego. Procesy backendu dziela - bufory danych oraz informacje o blokadach. Uzywajac wielu - procesor�w, r�zne backendy moga bez problemu dzial/ac na - r�znych procesorach. + Wydajnosc PostgreSQL jest podobna do innych komercyjnych i open + source baz danych. W niekt�rych sytuacjach jest szybszy w + niekt�rych wolniejszy. W por�wnianiu do MySQL lub mniejszych + baz danych jestesmy szybsi przy wielu uzytkownikach, + skomplikowaych zapytaniach i duzym obciazeniu podczas. MySQL + jest szybszy dla prostych SELECT�w wykonywanych przez niewielu + uzytkownik�w. Spowodowane jest to narzutem, kt�ry sie pojawia + przy transakcjach. Oczywiscie MySQL nie ma wiekszosci z + rozwiazan opisanych powyzej w sekcji Mozliwosci . PostgreSQL + zostal/ stworzony z mysla o stabilnosci, oraz szerokiej gamie + mozliwosci, ale mimo to staramy sie w kazdej wersji poprawiac + jego wydajnosc. Ciekawe por�wnanie PostgreSQL i MySQL mozna + znalezc pod adresem + http://openacs.org/philosophy/why-not-mysql.html Dodatkowo, + MySQL jest firma, kt�ra dystrybuuje jej produkty poprzez zasade + Open Source i wymaga wykupienia licencji w przypadku tworzenia + close-source software, co ie ma miejsca w przypadku PostgreSQL. Stabilnosc Zdajemy sobie sprawe, ze DBMS musi byc stabilny, w przeciwnym wypadku jest bez wartosci. Staramy sie publikowac kod stabilny, dobrze przetestowany, z minimum mozliwych bl/ed�w. Kazde - wydanie poprzedza conajmniej miesiac test�w wersji beta. + wydanie poprzedza co najmniej miesiac test�w wersji beta. Patrzac na historie wydan PostgreSQL widac, ze dostarczamy stabilne, dobrze sprawdzone wersje, kt�re sa gotowe do uzycia w srodowisku produkcyjnym. Myslimy, ze proces publikowania @@ -415,9 +421,9 @@ 1.15) W jaki spos�b moge wesprzec finansowo PostgreSQL? PostgreSQL korzysta z najlepszej infrastruktury od samego poczatku - istnienia projektu, tzn. szesciu lat. Wszystko to zawdzieczamy - Marc'owi Fournier'owi, kt�ry stworzyl/ ta infrastrukture i zarzadza - nia od lat. + istnienia projektu, czyli roku 1996 kiedy rozpoczelismy prace. + Wszystko to zawdzieczamy Marc'owi Fournier'owi, kt�ry stworzyl/ ta + infrastrukture i zarzadza nia od lat. Wysokiej jakosci infrastruktura jest bardzo wazna dla kazdego projektu open-source. Zapobiega przerwom w rozwoju projektu i jakimkolwiek @@ -427,7 +433,7 @@ tanie. Istnieje wiele r�znych miesiecznych, czy jednorazowych wydatk�w, kt�re trzeba ponosic aby wszystko dzial/al/o jak nalezy. Jesli Ty, badz Twoja firma moze wspom�c finansowo rozw�j PostgreSQL - odwiedz adres: http://www.pgsql.com/pg_goodies gdzie opisane jest jak + odwiedz adres: http://store.pgsql.com/shopping/ gdzie opisane jest jak to zrobic. Chociaz na stronie wspomniana jest nazwa PostgreSQL Inc, "datki" sa @@ -436,69 +442,72 @@ wysl/ac czek na adres kontaktowy. _________________________________________________________________ + Jesli mozesz sie pochwalic udanymi wdrozeniami PostgreSQL, prosimy + abys zgl/osil/ nam to na stronie: http://advocacy.postgresql.org. + User Client Questions 2.1) Czy sa jakies driwery ODBC dla PostgreSQL? Dostepne sa dwa driwery ODBC: PsqlODBC i OpenLink ODBC. - PsqlODBC jest dol/aczony do zr�del/. Wiecej informacji na jego temat - mozesz znalezc pod adresem: ftp://ftp.PostgreSQL.org/pub/odbc/. + Mozesz pobrac PsqlODBC z adresu + http://gborg.postgresql.org/project/psqlodbc/projdisplay.php OpenLink ODBC moze byc pobrany z adresu: http://www.openlinksw.com. Wsp�l/pracuje ze standardowym oprogramowaniem klienckim ODBC wiec w ten spos�b mozesz korzystac z PostgreSQL ODBC dostepnego na kazdej - plaformie kt�ra wspiera (Win, Mac, Unix, VMS). + pltaformie kt�ra wspiera (Win, Mac, Unix, VMS). Autorzy beda prawdopodobnie sprzedawac ten produkt osobom kt�re wymagaja komercyjnego wsparcia, ale wersja darmowa bedzie zawsze dostepna. Wszystkie pytania mozesz wysyl/ac na adres: postgres95@openlink.co.uk. - Sprawdz takze rozdzial/ o ODBC w "Programmer's Guide". - 2.2) Jakie istnieja narzedzia pozwalajace na dostep do PostgreSQL przez www? Dobry podrecznik dla poczatkujacych o dostepie do bazy danych przez www mozesz znalezc pod adresem: http://www.webreview.com - Inny znajduje sie pod adresem: http://www.phone.net/home/mwm/hotlist/. - Do integracji z www, swietnym rozwiazaniem jest PHP. Mozesz znalezc wiecej informacji na ten temat pod adresem http://www.php.net. Wiele os�b w przypadku skomplikowanych rozwiazan uzywa Perl'a i - modul/u CGI.pl. + modul/u CGI.pl lub mod_perl. - 2.3) Czy istnieje jakies GUI dla PostgreSQL? Narzedzie do raportowania? - Interfejs dla "embedded query language"? + 2.3) Czy istnieje jakies GUI dla PostgreSQL? - Mamy cal/kiem mil/y interfejs graficzny, kt�ry zostal/ nazwany - pgaccess i jest on dostarczany jako czesc zr�del/. pgaccess posiada - takze generator raport�w. Mozna go znalezc pod adresem - http://www.flex.ro/pgaccess + Tak, istnieje kilka interfejs�w graficznych dla PostgreSQL. Wsr�d nich + PgAccess ( http://www.pgaccess.org), PgAdmin III + (http://www.pgadmin.org), RHDB Admin (http://sources.redhat.com/rhdb/ + ) oraz Rekall ( http://www.thekompany.com/products/rekall/, + komercyjny). Istnieje takze PHPPgAdmin ( + http://phppgadmin.sourceforge.net/ ), webowy interfejs dla PostgreSQL. - Udostepnilismy takze ecpg, kt�ry jest "embedded SQL query language - interface" dla jezyka C. + Wiecej informacji na ten temat znajduje sie pod adresem See + http://techdocs.postgresql.org/guides/GUITools. 2.4) Za pomoca jakich jezyk�w programowania mozna sie komunikowac z PostgreSQL? - Mamy wsparcie dla: + Najbardziej popularne jezyki posiiadaja wl/asny interfejs dla + PostgreSQL. Sprawdz liste rozszerzen dla intersujacego Ciebie jezyka + programowania. + + Ze zr�dl/ami PostreSQL dystrubuowane sa interfejsy dla nastepujacych + jezyk�w programowania: * C (libpq) - * C++ (libpq++) * Embedded C (ecpg) * Java (jdbc) - * Perl (perl5) - * ODBC (odbc) * Python (PyGreSQL) * TCL (libpgtcl) - * C Easy API (libpgeasy) - * Embedded HTML (PHP z http://www.php.net) + + Inne interfejsy sa dostepne pod adresem: http://gborg.postgresql.org w + sekcji Drivers/Interfaces. _________________________________________________________________ - Pytania administratora + Pytania dotyczace administracji 3.1) Jak moge zainstalowac PostgreSQL w innej lokalizacji niz /usr/local/pgsql? @@ -566,7 +575,7 @@ pojedyncze INSERTy. Po drugie polecenia SQL nie zawarte w bloku okreslajacym transakcje - BEGIN WORK/COMMIT, sa traktowane jako pojedyncza transakcja. Rozwaz wykonanie kilku polecen/zdan SQL w - jednym bloku transakcji. To redukuje narzut powodowany przez + jednym bloku transakcji. To redukuje narzut nakl/adany przez transakcje. Przy duzych zmianach w danych, warto usunac i stworzyc na nowo indeksy. @@ -665,25 +674,36 @@ limit na maksymalna liczbe proces�w backendu to obawa o wyczerpanie zasob�w systemu. - W wersjach PostgreSQL wczesniejszych niz 6.5, maksymalna liczba - backend�w byl/a ustawiona na 64, a zmiana tej wartosci wymaga - rekompliacji po zmianie stal/ej MaxBackendId w pliku - include/storage/sinvaladt.h. - - 3.9) Co to sa za pliki typu: pg_sorttempNNN.NN, kt�re znajduja sie w - katalogu z plikami bazy danych? + 3.9) Jakie pliki znajduja sie w pg_temp? - Sa to tymczasowe pliki utworzone przez executor. Dla przykl/adu, jesli - jakas operacja sortowania jest wymagana do wykonania ORDER BY, a samo - sortowanie wymaga wiecej miejsca niz paratmetr backendu -S ustawil/ do - wykorzystania, wtedy tymczasowe pliki sa uzywane do przechowywania - tych danych. + Katalog ten zawiera tymczasowe pliki utworzone przez executor. Dla + przykl/adu, jesli jakas operacja sortowania jest wymagana do wykonania + ORDER BY, a samo sortowanie wymaga wiecej miejsca niz parametr + backendu -S ustawil/ do wykorzystania, wtedy tymczasowe pliki sa + uzywane do przechowywania tych danych. Pliki tymczasowe powinny byc usuniete automatycznie, ale mogl/o sie to nie stac jesli proces backendu w miedzyczasie nie zakonczyl/ sie poprawnie podczas operacji sortowania. Jesli w danym momencie nie dzial/aja zadne procesy backend�w mozesz spokojnie usunac pliki pg_tempNNN.NN. + + 3.9) Dlaczego konieczne jest przy upgradzie PostgreSQL korzystanie ze + skrypt�w dump i restore? + + Tw�rcy PostgreSQL dokonuja jedynie mal/ych zmian pomiedzy mal/ymi + upgradami wersji, np z 7.2 do 7.2.1, wtedy upgrade nie wymaga + korzystania z dump i restore. Przy wiekszych zmianach, np. z wersji + 7.2 do 7.3, czesto zmianymaja wpl/yw na format przechowywanych danych. + Zmiany te sa na tyle skomplikowane, ze nie utrzymujemy zgodosci z + poprzednimi wersjami PostgreSQL. dump pozwala na wydostanie danych w + takiej postaci, w kt�rej l/atwe jest ich zaimportowanie do nowszych + wersji bez kl/opotu. + + W wydaniach gdzie zmiany nie dotycza formatu danych na dysku, mozna + wykorzystac skryptu pg_upgrade, do upgradu bez uzycia dump/restore. + Dokumentacja do danego wydania zawiera informacje czy mozliwe jest + uzycie pg_upgrade. _________________________________________________________________ Pytania dotyczace uzywania @@ -706,6 +726,13 @@ pierwszych rzed�w, byc moze bedzie koniecznosc wykonania zapytania do momentu az zostana znalezione pozadane wyniki. + Aby otrzymac losowy rzad, uzyj: + SELECT col + FROM tab + ORDER BY random() + LIMIT 1; + + 4.3) Jak moge uzyskac liste wszystkich tabel czy innych rzeczy pod psql? Mozesz sprawdzic zawartosc zr�del/ psql, a konkretnie plik @@ -714,36 +741,44 @@ wtedy po wykonaniu polecenia z backslashem wyswietlane bedzie zapytanie, kt�re w rzeczywistosci jest wykonywane. - 4.4) Jak usunac kolumne z tabeli? + 4.4) Jak usunac kolumne z tabeli lub zmienic jej typ? - Nie mamy zaimplementowanego ALTER TABLE DROP COLUMN, ale mozesz zrobic - tak: - SELECT ... -- wybierz zawartosc wszystkich kolumn poza ta jedna kt�rej chc -esz sie pozbyc + DROP COLUMNT zostal/o dodane w wersji 7.3 przy poleceniu ALTER TABLE + DROP COLUMN. We wczesniejszych wersjach mozesz zrobic tak: + BEGIN; + LOCAL TABLE old_table; + SELECT ... -- wybierz wszystkie kolumny poza ta jedna kt�rej chcesz sie po +zbyc INTO TABLE new_table FROM old_table; DROP TABLE old_table; ALTER TABLE new_table RENAME TO old_table; + Aby zmienic typ danych kolumny mozesz zrobic tak: + BEGIN; + ALTER TABLE tab ADD COLUMN new_col new_data_type; + UPDATE tab SET new_col = CAST(old_col AS new_data_type); + ALTER TABLE tab DROP COLUMN old_col; + COMMIT; + 4.5) Jaki jest maksymalny rozmiar dla rzedu, tabeli i bazy danych? Oto wszystkie ograniczenia: - Maksymalny rozmiar dla bazdy danych? nieograniczony ( istnieja bazy dan -ych o wielkosci 500 GB databases ) - Maksymalny rozmiar dla tabeli? 16 TB - Maksymalny rozmiar dla rzedu? nieograniczony w 7.1 i p�zniejszyc -h - Maksymalny rozmiar pola? 1 GB w 7.1 and later + Maksymalny rozmiar dla bazdy danych? nieograniczony ( istnieja + bazy danych o wielkosci 32 TB databases ) + Maksymalny rozmiar dla tabeli? 32 TB + Maksymalny rozmiar dla rzedu? 1.6 TB + Maksymalny rozmiar pola? 1 GB Maksymalna liczba rzed�w w tabeli? nieograniczona - Maksymalna liczba kolumn w tabeli? 250-1600 w zalezonosci od typ�w kolum -n - Makasymalna liczba indeks�w na tabeli? nieograniczona + Maksymalna liczba kolumn w tabeli? 250-1600 w zalezonosci od typ�w ko +lumn + Makasymalna liczba indeks�w na tabeli? nieograniczona Oczywiscie "nieograniczony" nie jest prawda tak do konca, istnieja ograniczenia wynikajace z dostepnego miejsca na dysku, pamieci/swapa. Kiedy wielkosci te beda bardzo duze moze odbic sie to na wydajnosci. - Maksymalny rozmiar tabeli, czyli 16 TB nie wymaga od systemu + Maksymalny rozmiar tabeli, czyli 32 TB nie wymaga od systemu operacyjnego wsparcia dla duzych plik�w. Duze tabele sa przechowywane jako pliki o rozmiarze 1 GB, wiec ograniczenia co do wielkosci plik�w narzucone przez system plik�w nie sa istotne. @@ -786,6 +821,9 @@ n zawieraja pewne dane, wiec w pewnych przypadkach moga byc cal/kiem duze. + NULLe sa przechowywane jako mapy bitowe, wiec uzywaja bardzo mal/o + miejsca. + 4.7) Jak moge sprawdzic jakie tabele, klucze, bazy danych i uzytkownicy sa utworzeni? @@ -821,14 +859,32 @@ n sortowanie jest zazwyczaj szybsze nie wyszukiwanie za pomoca indeksu na duzej tabeli. Jakkolwiek LIMIT w pol/aczeniu z ORDER BY czesto bedzie wykorzystywal/ - indeks�w poniewaz jedynie mal/a czesc z tabeli jest zwracana. + indeksy poniewaz jedynie mal/a czesc z tabeli jest zwracana. W + rzeczywistosci, chociaz MAX() i MIN() nie uzywaja indeks�w, mozliwe + jest aby zwr�cic te wartosci uzywajac indeks�w poprzez uzycie ORDER BY + i LIMIT. + SELECT col + FROM tab + ORDER BY col [ DESC ] + LIMIT 1; + + Jesli uwazasz, ze optimizer myli sie wybierajac sequential scan, uzyj + SET enable_seqscan TO 'off' i uruchom testy aby sprawdzic czy wtym + wypadku zapytanie bedzie szybciej wykonywane. Kiedy uzywa sie operator�w dopasujacych takich jak LIKE lub ~, indeksy - beda uzywane jedynie jesli poczatek wyszukiwania jest oparty na - poczatku l/ancucha tekstu. Dlatego, aby uzywac indeks�w, dopasowania - operatorem LIKE nie moga sie zaczynac %, a dopasowania operatorem ~ - (dopasowania regularne) musza sie zaczynac znakiem specjalnym ^. - + beda uzywane jedynie w pewnych wypadkach: + * Poczatek wyszukiwania jest oparty na poczatku l/ancucha tekstu. + + wzorce LIKE nie moga sie zaczynac % + + dopasowania operatorem ~ (dopasowania regularne) musza sie + zaczynac znakiem specjalnym ^. + * Poczatek wyszukiwania nie moze sie zaczynac od klas znak�w, np. + [a-e]. + * Case-insensitive searches such as ILIKE and ~* do not utilise + indexes. Instead, use functional indexes, which are described in + section 4.12. + * Standardowe locale C musi byc uzyte przy wykonywaniu initdb + 4.9) Jak moge sprawdzic w jakis spos�b "query optimizer" wykonuje moje zapytanie? @@ -869,13 +925,12 @@ n queries) bez wykorzystywania zasobozernego wyszukiwania. 4.12) Jak moge uzywac wyrazen regularnych w zapytaniach i zapytan - case-insensitive w wyrazeniach regularnych? jak korzystac z indeks�w dla + case-insensitive w wyrazeniach regularnych? Jak korzystac z indeks�w dla zapytan case-insensitive? Operator ~ moze byc wykorzystywany do wyszukiwania za pomoca wyrazen regularnych, a ~* do wyszukiwania case-insensitive z wyrazeniami - regularnymi. Wariant case-insensitive dla LIKE zostal/ nazwany ILIKE i - jest dostepny w PostgreSQL 7.1 i p�zniejszych wersjach. + regularnymi. Wariant case-insensitive dla LIKE zostal/ nazwany ILIKE. Por�wnania case-insensitive sa zazwyczaj wykonywane w nastepujacy spos�b: @@ -897,31 +952,35 @@ n Type Nazwa wewnetrzna Uwagi -------------------------------------------------- -"char" char 1 znak -CHAR(#) bpchar wypel/niane pustymi znakami do podanej dl/ug -osci -VARCHAR(#) varchar rozmiar okresla maksymalna dl/ugosc, nie ma +VARCHAR(n) varchar rozmiar okresla maksymalna dl/ugosc, nie ma tutaj wypel/niania +CHAR(n) bpchar wypel/niane pustymi znakami do podanej dl/ug +osci TEXT text bez limitu na dl/ugosc l/ancucha BYTEA bytea zmiennej dl/ugosci tablica bajt�w (null-byte safe) +"char" char 1 znak Jesli bedziesz przegladac katalogi systemowe lub komunikaty o bl/edach czesto spotkasz sie z podanymi powyzej nazwami wewnetrznymi. - Ostatnie cztery typy powyzej to tzw typy "varlena" (np. pierwsze + Pierwsze cztery typy powyzej to tzw typy "varlena" (np. pierwsze cztery bajty na dysku to dl/ugosc, po kt�rych jest data). Dlatego faktyczna dl/ugosc takiego l/ancucha jest troche wieksza niz zadeklarowany rozmiar. Te typy takze podlegaja kompresji lub moga byc przechowywane out-of-line jako TOAST, wiec faktyczne zuzycie miejsca na dysku moze byc mniejsze niz oczekiwane. - - CHAR() jast najlepszym typem do przechowywania l/ancuch�w o tej samej - dl/ugosci. VARCHAR() jest najodpowiedniejszy do przechowywania - l/ancuch�w o r�znej dl/ugosci ale okresla on maksymalna jego dl/ugosc. - TEXT jest najlepszy dla l/ancuch�w o dowolnej dl/ugosci, nie - przekraczajacej 1GB. BYTEA sl/uzy do przechowywania danych binarnych, - w szczeg�lnosci dla danych zawierajacych NULL bajty. + VARCHAR(n) jest najodpowiedniejszy do przechowywania l/ancuch�w o + r�znej dl/ugosci ale okresla on maksymalna jego dl/ugosc. TEXT jest + najlepszy dla l/ancuch�w o dowolnej dl/ugosci, nie przekraczajacej + 1GB. + + CHAR(n) jast najlepszym typem do przechowywania l/ancuch�w o tej samej + dl/ugosci. CHAR(n) wypel/nia dane do zadanej dl/ugosci, podczas gdy + VARCHAR(n) przechowuje jedynie dane dostarczone. BYTEA sl/uzy do + przechowywania danych binarnych, w szczeg�lnosci dla danych + zawierajacych NULL bajty. Wszystkie typy opisane tutaj maja podobne + charakterystyki jesli chodzi o wydajnosc. 4.15.1) Jak moge utworzyc pole kt�re samo zwieksza swoja wartosc? @@ -1039,16 +1098,16 @@ BYTEA bytea zmiennej dl/ugosci tablica bajt * range variable, table name, table alias Liste termin�w zwiazanych z bazami danych mozesz znalezc pod tym - adresem:http://www.comptechnews.com/~reaster/dbdesign.html + adresem:http://hea-www.harvard.edu/MST/simul/software/docs/pkgs/pgsql/ + glossary/glossary.html. 4.18) Skad bierze sie ten bl/ad "ERROR: Memory exhausted in AllocSetAlloc()"? - Jesli uzywasz wersji starszej niz 7.1, upgrade moze rozwiazac ten - problem. Jest takze mozliwe, ze po prostu wyczerpal/a Ci sie pamiec - wirtualna (virtual memory) w systemie lub Tw�j kernel ma zbyt nisko - ustawione limity dla pewnych zasob�w. Spr�buj wykonac nastepujace - polecenia zanim uruchomisz postmaster'a: + Prawdopodobnie wyczerpal/a Ci sie pamiec wirtualna (virtual memory) w + systemie lub Tw�j kernel ma zbyt nisko ustawione limity dla pewnych + zasob�w. Spr�buj wykonac nastepujace polecenia zanim uruchomisz + postmaster'a: ulimit -d 262144 limit datasize 256m @@ -1087,24 +1146,31 @@ CREATE TABLE test (x int, modtime timestamp DEFAULT CURRENT_TIMESTAMP ); 4.22) Dlaczego zapytania uzywajace IN sa takie wolne? - Obecnie l/aczymy podzapytania w outer queries poprzez sekwencyjne - przeszukiwanie wynik�w podzapytania dla kazdego rzedu z outer query. - Mozna to ominac zastepujac IN przez EXISTS: + W wersjach wczesniejszych niz 7.4 l/aczymy podzapytania w outer + queries poprzez sekwencyjne przeszukiwanie wynik�w podzapytania dla + kazdego rzedu z outer query. Jesli podzapytanie zwraca jedynie kilka + rzed�w a zewnetrzne zapytanie zwraca ich wiele, IN jest najszybsze. + Aby przyspieszyc inne zapytania mozna zastapic IN przez EXISTS: SELECT * FROM tab - WHERE col1 IN (SELECT col2 FROM TAB2) + WHERE col IN (SELECT subcol FROM subtab) na: SELECT * FROM tab - WHERE EXISTS (SELECT col2 FROM TAB2 WHERE col1 = col2) + WHERE EXISTS (SELECT subcol FROM subtab WHERE subcol = col) - Mamy zamiar poprawic to ograniczenie w przyszl/ych wydaniach. + Aby to rozwiazanie byl/o szybkie, subcol powinna byc kolumna + indeksowana. + + W wersji 7.4 i p�zniejszych, IN w rzeczywistosci uzywa tej samej + wyrafinowanej techniki l/aczenia jak normalne zapytania i jest + preferowane nad uzywaniem EXISTS. 4.23) Jak wykonac "outer join"? - PostgreSQL 7.1 i p�zniejsze wersje maja zaimplementowane outer join - wykorzystujac standardowa skl/adnie SQL. Ponizej dwa przykl/ady: + PostgreSQL ma zaimplementowane outer join wykorzystujac standardowa + skl/adnie SQL. Ponizej dwa przykl/ady: SELECT * FROM t1 LEFT OUTER JOIN t2 ON (t1.col = t2.col); @@ -1113,7 +1179,7 @@ SELECT * FROM t1 LEFT OUTER JOIN t2 USING (col); Te dwa identyczne zapytania l/acza kolumne t1.col z kolumna t2.col, - ale takze zwr�ca niepol/aczone rzedy w t1 (te kt�re nie pasuja w t2). + ale takze zwr�ca niepol/aczone rzedy w t1 (te, kt�re nie pasuja w t2). RIGHT join dodal/by niepol/aczone rzedy z tabeli t2. FULL join zwr�cil/by rzedy plus dodatkowo wszystkie rzedy z tabel t1 i t2. Sl/owo OUTER jest opcjonalne i jest dodawane domyslnie przy LEFT, @@ -1138,37 +1204,75 @@ SELECT * katalogi systemowe, nie jest do konca jasne jak zapytanie pomiedzy r�znymi bazami danych powinno sie zachowywac. - Oczywiscie klient moze l/aczyc sie z r�znymi bazami danych i l/aczyc - informacje w ten spos�b uzyskana. + contrib/dblink pozwala na wykonywanie zapytan poprzez r�zne bazy + danych wywol/ujac odpowiednie funkcje. Oczywiscie klient moze l/aczyc + sie z r�znymi bazami danych i l/aczyc informacje w ten spos�b uzyskana + po stronie klienta. 4.25) Jak zwr�cic w funkcji wiele rzed�w lub kolumn? - Mozesz zwracac zbiory z funkcji PL/pgSQL uzywajac refcursors. Zobacz - http://developer.postgresql.org/docs/postgres/plpgsql-cursors.html, - sekcje 23.7.3.3. + Mozesz w l/atwy spos�b zwracac wiele rzed�w lub kolumn uzywajac + funkcji z: + http://techdocs.postgresql.org/guides/SetReturningFunctions. + 4.26) Dlaczego nie moge w spos�b pewny tworzyc/usuwac tabel tymczasowych w + funkcjach PL/PgSQL? + + PL/PgSQL przechowuje w cache zawartosc funkcji, niepozadanym efektem + tego jest to, ze gdy taka funkcja korzysta z tabel tymczasowych, kt�re + sa p�zniej kasowane i odtwarzane, a funkcja wywol/ywana jest + ponownie,jej wywol/anie nie powiedzie sie poniewaz cachowana funkcja + wciaz bedzie wskazywac na stara tablice tymczasowa. Rozwiazaniem tego + problemu jest uzywanie EXECUTE aby korzystac z tabel tymczasowych w + PL/PgSQL. To spowoduje, ze zapytanie bedzie parsowane przy kazdym + wywol/aniu funkcji. + + 4.27) Jakie sa mozliwosci replikacji w PostgreSQL? + + Jest kilka opcji aby stosowac replikacje typu master/slave. Ten typ pozwala + jedynie masterowi na dokonywanie zmian w bazie danych, a slave moze jedynie + te zmiany odczytywac. Na stronie + http://gborg.PostgreSQL.org/genpage?replication_research znajduje sie ich + lista. Replikacja typu multi-master jest w trakcie prac, opis projektu + znajduje sie pod adresem: + http://gborg.PostgreSQL.org/project/pgreplication/projdisplay.php. + 4.28) Jakie mozliwosci szyfrowania oferuje PostgreSQL? + + * contrib/pgcrypto zawiera wiele funkcji za pomoca, kt�rych mozemy + uzywac kryptografii w zapytaniach SQL. + * Aby szyfrowac transmisje od klienta do serwera, ten musi miec + ustawiona opcje ssl na true w pliku postgresql.conf, odpowiedni + wpis host lub hostssl musi wystepowac w pliku pg_hba.conf, oraz + sslmode nie moze byc wyl/aczone w kliencie. (Warto zwr�cic uwage, + ze mozliwe jest takze uzywanie transport�w szyfrujac�w przez + strony trzecie, takie jak stunnel lub ssh, poza natywnym wsparciem + dla SSL przez PostgreSQL). + * Hasl/a uzytkownik�w bazy danych sa automatycznie szyfrowane od + wersji 7.3. W poprzednich wersjach, nalezy ta funkcjonalnosc + poprzez wl/aczenie opcji PASSWORD_ENCRYPTION w postgresql.conf. + * Serwer moze dzial/ac uzywajac szyfrowanego systemu plik�w. + Rozwijanie PostgreSQL 5.1) Napisal/em wl/asna funkcje. Kiedy uzyje jej w psql, program zrzuca pamiec (dump core)? - Problem moze byc spowodowany przez bardzo wiele rzeczy. Spr�buj - najpierw przetestowac Twoja funkcje w samodzielnie dzial/ajacym - programie. - + Problem moze byc spowodowany przez bardzo wiele rzeczy. Spr�buj najpierw + przetestowac Twoja funkcje w samodzielnie dzial/ajacym programie. 5.2) Jak moge dodac/zgl/osic nowe typy czy funkcje do PostgreSQL? - Wyslij Twoje propozycje na liste mailowa pgsql-hackers, wtedy - prawdopodobnie Tw�j kod znajdzie sie w katalogu contrib/. - + Wyslij Twoje propozycje na liste mailowa pgsql-hackers, wtedy + prawdopodobnie Tw�j kod znajdzie sie w katalogu contrib/. 5.3) Jak napisac funkcje C zwracajaca krotke (tuple)? - To wymaga wysil/ku tak olbrzymiego, ze nawet autorzy nigdy tego nie - prubowali, chociaz z zalozen wynika, ze jest to mozliwe. - + W wersjach PostgreSQL od numeru 7.3, funckje zwracajace tabele sa w pelni + wspierane w C, PL/PgSQL i SQL. Sprawdz w Programmer's Guide aby uzyskac + wiecej informacji. Przykl/ad funkcji napisanej w C zwracajacej tabele + zostal/ umieszczony w contrib/tablefunc. 5.4) Zmienil/em plik zr�dl/owy. Dlaczego po rekompilacji nie widac zmiany? - Pliki Makefiles nie maja dorzuconych odpowiednich zaleznosci dla - plik�w nagl/�wkowych (include files). Wykonaj najpierw make clean, a - nastepnie ponownie make. Jesli uzywasz GCC mozesz uzyc opcji - --enable-depend przy wykonywaniu configure aby + Pliki Makefiles nie maja dorzuconych odpowiednich zaleznosci dla plik�w + nagl/�wkowych (include files). Wykonaj najpierw make clean, a nastepnie + ponownie make. Jesli uzywasz GCC mozesz uzyc opcji --enable-depend przy + wykonywaniu configure aby kompilator m�gl/ okreslic zaleznosci + samodzielnie. diff --git a/doc/src/FAQ/FAQ_polish.html b/doc/src/FAQ/FAQ_polish.html index 56a052cf66f..85e04fbaf75 100644 --- a/doc/src/FAQ/FAQ_polish.html +++ b/doc/src/FAQ/FAQ_polish.html @@ -15,7 +15,9 @@ <H1>Frequently Asked Questions (FAQ) o PostgreSQL</H1> - <P>Ostatnia aktualizacja: Thu Apr 18 00:44:51 EDT 2002</P> + <P>Ostatnia aktualizacja: Sobota Luty 7 22:16:21 EST 2004</P> + + <P>Ostatnia aktualizacja t�umaczenia: Pi�tek Marzec 5 19:31:12 EST 2004</P> <P>Obecny maintainer: Bruce Momjian (<A href= "mailto:pgman@candle.pha.pa.us">pgman@candle.pha.pa.us</A>)<BR> @@ -24,16 +26,15 @@ "mailto:m.mazurek@netsync.pl">m.mazurek@netsync.pl</A>)<BR> </P> - <P>Najbardziej aktualn� wersj� tego dokumentu mo�na znale�� pod adresem: <A href= - "http://www.Postgresql.org/docs/faq-english.html">http://www.PostgreSQL.org/docs/faq-english.html</A>.</P> + "http://www.Postgresql.org/docs/faqs/FAQ.html">http://www.PostgreSQL.org/docs/faqs/FAQ.html</A>.</P> <P>Odpowiedzi na pytania dotycz�ce konkretnych system�w operacyjnych mo�na znale�� pod adresem: <A href= - "http://www.PostgreSQL.org/users-lounge/docs/faq.html">http://www.PostgreSQL.org/users-lounge/docs/faq.html</A>.</P> + "http://www.PostgreSQL.org/docs/index.html">http://www.PostgreSQL.org/docs/index.html</A>.</P> <HR> <H2 align="center">Pytania og�lne</H2> @@ -64,20 +65,19 @@ PostgreSQL?<BR> <A href="#2.2">2.2</A>) Jakie istniej� narz�dzia pozwalaj�ce na dost�p do PostgreSQL przez www?<BR> - <A href="#2.3">2.3</A>) Czy istnieje jakie� GUI dla PostgreSQL? - Narz�dzie do raportowania? Interfejs dla "embedded query language"?<BR> + <A href="#2.3">2.3</A>) Czy istnieje jakie� GUI dla PostgreSQL?<BR> <A href="#2.4">2.4</A>) Za pomoc� jakich j�zyk�w programowania mo�na si� komunikowa� z PostgreSQL?<BR> - <H2 align="center">Pytania administratora</H2> + <H2 align="center">Pytania dotycz�ce administracji</H2> <A href="#3.1">3.1</A>) Jak mog� zainstalowa� PostgreSQL w innej lokalizacji ni� <I>/usr/local/pgsql</I>?<BR> <A href="#3.2">3.2</A>) Podczas startu <I>postmaster'a</I>, otrzymuj� komunikat: <I>Bad System Call</I> lub "core dumped". Dlaczego?<BR> <A href="#3.3">3.3</A>) Podczas startu <I>postmaster'a</I>, - otrzymuj� komunikato b��dzie: <I>IpcMemoryCreate</I>. Dlaczego?<BR> + otrzymuj� komunikat o b��dzie: <I>IpcMemoryCreate</I>. Dlaczego?<BR> <A href="#3.4">3.4</A>) Podczas startu <I>postmaster'a</I>, otrzymuj� komunikat o b��dzie: <I>IpcSemaphoreCreate</I>. Dlaczego?<BR> <A href="#3.5">3.5</A>) W jaki spos�b mog� kontrolowa� po��czenia z @@ -87,9 +87,9 @@ <A href="#3.7">3.7</A>) Jakie s� mo�liwo�ci wyszukiwania b��d�w?<BR> <A href="#3.8">3.8</A>) Sk�d si� bierze komunikat: <I>"Sorry, too many clients"</I> podczas pr�by po��czenia si� z baz� danych?<BR> - <A href="#3.9">3.9</A>) Co to za pliki typu <I>pg_sorttempNNN.NN</I> - , kt�re znajduj� si� w katalogu z plikami bazy danych?<BR> - + <A href="#3.9">3.9</A>) Jakie pliki znajduj� si� w <I>pg_temp</I>?<BR> + <A href="#3.10">3.10</A>) Dlaczego konieczne jest przy upgradzie + PostgreSQL korzystanie ze skrypt�w dump i restore?<BR> <H2 align="center">Pytania dotycz�ce u�ytkowania</H2> <A href="#4.1">4.1</A>) Jaka jest r�nica pomi�dzy kursorami @@ -98,7 +98,8 @@ jedynie kilka pierwszych wynik�w zapytania?<BR> <A href="#4.3">4.3</A>) Jak mog� uzyska� list� wszystkich tabel czy innych rzeczy pod <I>psql</I>?<BR> - <A href="#4.4">4.4</A>) Jak usun�� kolumn� z tabeli?<BR> + <A href="#4.4">4.4</A>) Jak usun�� kolumn� z tabeli lub zmieni� jej + typ?<BR> <A href="#4.5">4.5</A>) Jaki jest maksymalny rozmiar dla rz�du, tabeli i bazy danych?<BR> <A href="#4.6">4.6</A>) Jak du�o miejsca w bazie danych jest @@ -148,8 +149,13 @@ baz danych jednocze�nie?<BR> <A href="#4.25">4.25</A>) Jak zwr�ci� w funkcji wiele rz�d�w lub kolumn?<BR> - - + <A href="#4.26">4.26</A>) Dlaczego nie mog� w spos�b pewny + tworzy�/usuwa� tabel tymczasowych w funkcjach PL/PgSQL?<BR> + <A href="#4.27">4.27</A>) Jakie s� mo�liwo�ci replikacji w + PostgreSQL?<BR> + <A href="#4.28">4.28</A>) Jakie mo�liwo�ci szyfrowania oferuje + PostgreSQL?<BR> + <H2 align="center">Rozwijanie PostgreSQL</H2> <A href="#5.1">5.1</A>) Napisa�em w�asn� funkcj�. Kiedy u�yj� jej w <I>psql</I>, program zrzuca pami�� (dump core)?<BR> @@ -166,7 +172,8 @@ <H4><A name="1.1">1.1</A>) Co to jest PostgreSQL? Jak to wymawia�?</H4> - <P>PostgreSQL wymawia si� <I>Post-Gres-kju-el</I>.</P> + <P>PostgreSQL wymawia si� <I>Post-Gres-kju-el</I>. Cz�sto podczas + rozm�w u�ywany jest termin "Postgres"</P> <P>PostgreSQL jest rozszerzeniem systemu zarz�dzania bazami danych - POSTGRES, kolejn� generacj� rozwojowego prototypu <SMALL>DBMS</SMALL>. @@ -181,11 +188,14 @@ komunikuj�cych si� poprzez mailowe listy dyskusyjne PostgreSQL. Obecnym koordynatorem jest Marc G. Fournier (<A href= "mailto:scrappy@PostgreSQL.org">scrappy@PostgreSQL.org</A>). (Zobacz - poni�ej jak si� przy��czy�). Ta grupa ludzi jest odpowiedzialna za - ca�y rozw�j PostgreSQL.</P> + pytanie <A href="#1.6">1.6</A> jak si� przy��czy�). Ta grupa ludzi jest + odpowiedzialna za ca�y rozw�j PostgreSQL. PostgreSQL jest projektem + nie kontrolowanym przez �adn� firm�, aby wzi�� udzia� w jego rozwoju + sprawd�, <A href="http://www.PostgreSQL.org/docs/faqs/FAQ_DEV.html"> + http://www.PostgreSQL.org/docs/faqs/FAQ_DEV.html</a></P> <P>Autorami PostgreSQL 1.01 byli Andrew Yu and Jolly Chen. - Wiele innych os�b pomog�o przy portowaniu, testowaniu, debugowaniu, i + Wiele innych os�b pomog�o przy portowaniu, testowaniu, debugowaniu i rozwijaniu kodu. Oryginalny kod Postgresa, na kt�rym zosta� oparty PostgreSQL, by� wysi�kiem student�w oraz pracownik�w pracuj�cych pod kierownictwem profesora Michael'a Stonebraker'a z University of @@ -243,11 +253,11 @@ <P><STRONG>Klient</STRONG></P> - <P>Mo�liwa jest kompilacja bibliteki C <I>libpq</I> C, psql oraz + <P>Mo�liwa jest kompilacja bibliteki C <I>libpq</I>, psql oraz innych interfejs�w i uruchamianie ich na platformie MS Windows. W tym wypadku klient jest uruchamiany na MS Windows a z serwerem komunikuje si� poprzez TCP/IP. Serwer mo�e dzia�a� na dowolnej wspieranej platformie - Unixowej. Plik <I>win31.mak</I> jest do��czony + Unixowej. Plik <I>win32.mak</I> jest do��czony do �r�de�, aby mo�na by�o stworzy� bibliotek� <I>libpq</I> oraz program <I>psql</I> dzia�aj�ce w �rodowisku Win32. PostgreSQL mo�e si� tak�e komunikowa� z klientami <SMALL>ODBC</SMALL>.</P> @@ -257,9 +267,18 @@ <P>Serwer mo�e by� uruchamiany na Windows NT i Win2k u�ywaj�c bibliotek Cygwin, Cygnus Unix/NT. W pliku <I>pgsql/doc/FAQ_MSWIN</I> znajduj�cym si� w �r�d�ach lub pod adresem: <A href= - "http://www.postgresql.org/docs/faq-mswin.html">MS Windows FAQ</A> - na naszych stronach. Nie planujemy tworzy� portu przeznaczonego - docelowo dla platformy Microsoft.</P> + "http://www.postgresql.org/docs/faqs/text/FAQ_MSWIN">http://www.PostgreSQL.org/docs/faqs/text/FAQ_MSWIN</A> na naszych stronach.<P> + Obecnie prowadzone s� prace nad stworzeniem wersji dla MS Win + NT/200/XP. Je�li chcesz si� dowiedzie� o obecnym statusie tych prac + zobacz <A + href="http://techdocs.postgresql.org/guides/Windows">http://techdocs.postgresql.org/guides/Windows</A> and + <A + href="http://momjian.postgresql.org/main/writings/pgsql/win32.html">http://momjian.postgresql.org/main/writings/pgsql/win32.html</A>. + </P> + <P> + Istnieje tak�e port pod Novell Netware 6 dost�pny pod adresem <A + href="http://forge.novell.com">http://forge.novell.com</A>. + </P> <H4><A name="1.5">1.5</A>) Sk�d mo�na �ci�gn�� PostgreSQL?</H4> @@ -324,14 +343,13 @@ '#PostgreSQL' "$USER" irc.phoenix.net.</CODE></P> <P>Lista firm oferuj�cych wsparcie na zasadach komercyjnych znajduje - si� pod adresem: <A href= - "http://www.postgresql.org/users-lounge/commercial-support.html">http://www.postgresql.org/users-lounge/commercial-support.html</A>.</P> + si� pod adresem: <A href= "http://techdocs.postgresql.org/companies.php">http://techdocs.postgresql.org/companies.php</A>.</P> <H4><A name="1.7">1.7</A>) Jaka jest ostatnia dost�pna wersja?</H4> - <P>Ostatnia dost�pna wersja PostgreSQL to 7.2.1.</P> + <P>Ostatnia dost�pna wersja PostgreSQL to 7.4.1.</P> - <P>Planujemy publikowanie kolejnych wersji co cztery miesi�ce.</P> + <P>Planujemy publikowanie kolejnych wersji co sze�� do o�miu miesi�cy.</P> <H4><A name="1.8">1.8</A>) Jaka dokumentacja jest dost�pna?</H4> @@ -339,8 +357,8 @@ testowania s� za��czone w samej dystrybucji. Znajduj� si� one w katalogu <I>/doc</I>. Manual mo�e by� tak�e przegl�dany poprzez strony www pod adresem <A href= - "http://www.PostgreSQL.org/users-lounge/docs/">http://www.PostgreSQL.org/users-lounge/docs/</A>.</P> - + "http://www.PostgreSQL.org/docs">http://www.PostgreSQL.org/docs</A>.</P> + <P>Istniej� tak�e dwie ksi��ki dost�pne online pod adresami <A href= "http://www.PostgreSQL.org/docs/awbook.html">http://www.PostgreSQL.org/docs/awbook.html</A> @@ -348,14 +366,15 @@ "http://www.commandprompt.com/ppbook/">http://www.commandprompt.com/ppbook/</A>. Lista ksi��ek o PostgreSQL, kt�re mo�na kupi� znajduje si� pod adresem <A href= - "http://www.postgresql.org/books/">http://www.postgresql.org/books/</A>. + "http://techdocs.PostgreSQL.org/techdocs/bookreviews.php"> + http://techdocs.PostgreSQL.org/techdocs/bookreviews.php</A>. Zbi�r technicznych artyku��w o PostgreSQL znajduje si� pod adresem <A href= - "http://techdocs.postgresql.org/">http://techdocs.postgresql.org/</A>.</P> + "http://techdocs.PostgreSQL.org">http://techdocs.postgresql.org/</A>.</P> <P><I>psql</I> posiada kilka wbudowanych polece� \d, za pomoca kt�rych mo�na sprawdzi� informacje dotycz�ce typ�w, operator�w, funkcji, - aggregat�w itd.</P> + agregat�w itd.</P> <P>Na naszej stronie mo�na znale�� du�o wi�cej dokumentacji.</P> @@ -409,8 +428,8 @@ <P>Jest oko�o 12 os�b, kt�re maj� uprawnienia do commit'owania w <SMALL>CVS</SMALL> PostgreSQL'a. Ka�dy z nich submitowa� tak wiele wysokiej jako�ci patchy, �e sta�o si� niemo�liwe dla obecnych - commiter�w by� z nimi na bie��co, maj�c pewno�� �e s� to poprawki - wysokiej jako�ci.</P> + commiter�w by� z nimi na bie��co, wi�c musieli�my im ufa� i mie� + pewno��, �e ich poprawki s� wysokiej jako�ci.</P> <H4><A name="1.13">1.13</A>) Jak mog� zg�asza� b��dy?</H4> @@ -437,52 +456,37 @@ oraz wyrafinowany system blokowania. Mamy tak�e w�a�ciow�ci kt�rych inni nie posiadaj�, jak typy definiowane przez u�ytkownika, dziedziczenie, rules, multi-version concurrency control, kt�ra - redukuje problemy z blokowaiem (lock contention).<BR> + redukuje problemy z blokowaniem (lock contention).<BR> <BR> </DD> <DT><B>Wydajno��</B></DT> - <DD>PostgreSQL dzia�a w dw�ch trybach. Standardowy tryb <I>fsync</I> - zrzuca ka�d� zako�czon� transakcj� na dysk, gwarantuj�c w ten - spos�b to, �e je�li system operacyjny si� zawiesi lub straci - zasilanie wci�gu kilku nastepnych sekund, wszystkie Twoje dane - zostan� bezpiecznie zapisane na dysku. W tym trybie, jeste�my - wolniejsi ni� wi�kszo�� komercyjnych baz danych, cz�ciowo dlatego - �e niewiele z nich wykonuje taki spos�b zapisywania danych jako - domy�lne ustawienie. - W trybie <I>no-fsync</I> z regu�y jeste�my szybsi ni� komercyjne - bazy danych, chocia� w tym wypadku zawieszenie si� systemu mo�e - spowodowa� uszkodzenie danych. Pracujemy nad tym, aby stworzy� - po�redni tryb, kt�ry powoduje mniejsz� redukcj� wydajno�ci ni� tryb - fsync i pozwoli na integralno�� danych w przeci�gu 30 sekund do - za�amania si� systemu operacyjnego.<BR> - <BR> - Por�wnuj�c do MySQL czy innych prostych baz danych, jeste�my - wolniejsi przy wykonywaniu insert�w/updat�w przez narzut - spowodowany przez transakcje. Oczywi�cie MySQL nie posiada �adnej z - wymienionych wy�ej <I>mo�liwo�ci</I>. PostgreSQL zosta� zbudowany - aby by� DBMS elastycznym i bogatym z r�norakie mo�liwo�ci, - aczkolwiek dbamy, aby poprawia� jego wydajno�� poprzez analiz� - kodu �r�d�owego i profilowanie. Ciekawe por�wnanie PostgreSQL i MySQL - mo�na znale�� pod adresem <A href= - "http://openacs.org/why-not-mysql.html">http://openacs.org/why-not-mysql.html</A><BR> - - <BR> - Ka�de po��czenie klienta jest obs�ugiwane przez nas poprzez - stworzenie nowego procesu Unixowego. Procesy backendu dziel� - bufory danych oraz informacj� o blokadach. U�ywaj�c wielu - procesor�w, r�ne backendy mog� bez problemu dzia�a� na r�nych - procesorach.<BR> + <DD>Wydajno�� PostgreSQL jest podobna do innych komercyjnych i open + source baz danych. W niekt�rych sytuacjach jest szybszy w + niekt�rych wolniejszy. W por�wnianiu do MySQL lub mniejszych baz + danych jeste�my szybsi przy wielu u�ytkownikach, skomplikowaych + zapytaniach i du�ym obci��eniu podczas. MySQL jest szybszy dla + prostych SELECT�w wykonywanych przez niewielu u�ytkownik�w. + Spowodowane jest to narzutem, kt�ry si� pojawia przy transakcjach. + Oczywi�cie MySQL nie ma wi�kszo�ci z rozwi�za� opisanych powy�ej + w sekcji <I> Mo�liwo�ci </I>. PostgreSQL zosta� stworzony z my�l� o + stabilno�ci, oraz szerokiej gamie mo�liwo�ci, ale mimo to staramy + si� w ka�dej wersji poprawia� jego wydajno��. + Ciekawe por�wnanie PostgreSQL i MySQL mo�na znale�� pod adresem <A href= + "http://openacs.org/philosophy/why-not-mysql.html">http://openacs.org/philosophy/why-not-mysql.html</A> + Dodatkowo, MySQL jest firm�, kt�ra dystrybuuje jej produkty poprzez + zasad� Open Source i wymaga wykupienia licencji w przypadku + tworzenia close-source software, co ie ma miejsca w przypadku + PostgreSQL.<BR> <BR> </DD> - <DT><B>Stabilno��</B></DT> <DD>Zdajemy sobie spraw�, �e <SMALL>DBMS</SMALL> musi by� stabilny, w przeciwnym wypadku jest bez warto�ci. Staramy si� publikowa� kod stabilny, dobrze przetestowany, z minimum mo�liwych b��d�w. Ka�de - wydanie poprzedza conajmniej miesi�c test�w wersji beta. Patrz�c na + wydanie poprzedza co najmniej miesi�c test�w wersji beta. Patrz�c na histori� wyda� PostgreSQL wida�, �e dostarczamy stabilne, dobrze sprawdzone wersje, kt�re s� gotowe do u�ycia w �rodowisku produkcyjnym. My�limy, �e proces publikowania kolejnych wersji @@ -521,20 +525,20 @@ PostgreSQL?</H4> <P>PostgreSQL korzysta z najlepszej infrastruktury od samego pocz�tku - istnienia projektu, tzn. sze�ciu lat. Wszystko to zawdzi�czamy Marc'owi - Fournier'owi, kt�ry stworzy� t� infrastruktur� i zarz�dza ni� od - lat.</P> + istnienia projektu, czyli roku 1996 kiedy rozpoczeli�my prac�. Wszystko + to zawdzi�czamy Marc'owi Fournier'owi, kt�ry stworzy� t� infrastruktur� + i zarz�dza ni� od lat.</P> <P>Wysokiej jako�ci infrastruktura jest bardzo wa�na dla ka�dego projektu open-source. Zapobiega przerwom w rozwoju projektu i jakimkolwiek przestojom.</P> <P>Oczywi�cie korzystanie z wysokiej jako�ci infrastruktury nie jest - tanie. Istnieje wiele r�znych miesi�cznych, czy jednorazowych + tanie. Istnieje wiele r�nych miesi�cznych, czy jednorazowych wydatk�w, kt�re trzeba ponosi� aby wszystko dzia�a�o jak nale�y. Je�li Ty, b�d� Twoja firma mo�e wspom�c finansowo rozw�j PostgreSQL odwied� adres: <A href= - "http://www.pgsql.com/pg_goodies">http://www.pgsql.com/pg_goodies</A> + "http://store.pgsql.com/shopping/">http://store.pgsql.com/shopping/</A> gdzie opisane jest jak to zrobi�.</P> <P>Chocia� na stronie wspomniana jest nazwa PostgreSQL Inc, "datki" @@ -542,6 +546,9 @@ przeznaczane na finansowanie jakiejkolwiek firmy. Je�li wolisz, mo�esz wys�a� czek na adres kontaktowy.</P> <HR> + Je�li mo�esz si� pochwali� udanymi wdro�eniami PostgreSQL, prosimy + aby� zg�osi� nam to na stronie: <A + href="http://advocacy.postgresql.org/">http://advocacy.postgresql.org</a>. <H2 align="center">User Client Questions</H2> @@ -551,25 +558,21 @@ <P>Dost�pne s� dwa driwery <SMALL>ODBC</SMALL>: PsqlODBC i OpenLink <SMALL>ODBC</SMALL>.</P> - <P>PsqlODBC jest do��czony do �r�de�. Wi�cej informacji na jego temat - mo�esz znale�� pod adresem: <A href= - "ftp://ftp.PostgreSQL.org/pub/odbc/">ftp://ftp.PostgreSQL.org/pub/odbc/</A>.</P> - + <P>Mo�esz pobra� PsqlODBC z adresu <A + href="http://gborg.postgresql.org/project/psqlodbc/projdisplay.php">http://gborg.postgresql.org/project/psqlodbc/projdisplay.php</A> + </P> + <P>OpenLink <SMALL>ODBC</SMALL> mo�e by� pobrany z adresu: <A href= "http://www.openlinksw.com/">http://www.openlinksw.com</A>. Wsp�pracuje ze standardowym oprogramowaniem klienckim <SMALL>ODBC</SMALL> wi�c w ten spos�b mo�esz korzysta� z PostgreSQL <SMALL>ODBC</SMALL> - dost�pnego na ka�dej plaformie kt�r� wspiera (Win, Mac, Unix, VMS).</P> + dost�pnego na ka�dej pltaformie kt�r� wspiera (Win, Mac, Unix, VMS).</P> <P>Autorzy b�d� prawdopodobnie sprzedawa� ten produkt osobom kt�re wymagaj� komercyjnego wsparcia, ale wersja darmowa b�dzie zawsze dost�pna. Wszystkie pytania mo�esz wysy�a� na adres: <A href= "mailto:postgres95@openlink.co.uk">postgres95@openlink.co.uk</A>.</P> - <P>Sprawd� tak�e rozdzia� o <A href= - "http://www.postgresql.org/devel-corner/docs/programmer/odbc.html">ODBC - w "Programmer's Guide"</A>.</P> - <H4><A name="2.2">2.2</A>) Jakie istniej� narz�dzia pozwalaj�ce na dost�p do PostgreSQL przez www?</H4> @@ -577,59 +580,56 @@ przez www mo�esz znale�� pod adresem: <A href="http://www.webreview.com">http://www.webreview.com</A></P> - <P>Inny znajduje si� pod adresem: <A href= - "http://www.phone.net/home/mwm/hotlist/">http://www.phone.net/home/mwm/hotlist/.</A></P> - <P>Do integracji z www, �wietnym rozwi�zaniem jest PHP. Mo�esz znale�� wi�cej informacji na ten temat pod adresem <A href="http://www.php.net">http://www.php.net</A>.</P> <P>Wiele os�b w przypadku skomplikowanych rozwi�za� uzywa Perl'a i - modu�u CGI.pl.</P> - - <H4><A name="2.3">2.3</A>) Czy istnieje jakie� GUI dla PostgreSQL? - Narz�dzie do raportowania? Interfejs dla "embedded query - language"?</H4> - - <P>Mamy ca�kiem mi�y interfejs graficzny, kt�ry zosta� nazwany - <I>pgaccess</I> i jest on dostarczany jako cz�� �r�de�. - <I>pgaccess</I> posiada tak�e generator raport�w. Mo�na go znale�� - pod adresem <A href= - "http://www.flex.ro/pgaccess">http://www.flex.ro/pgaccess</A></P> - - <P>Udost�pnili�my tak�e <I>ecpg</I>, kt�ry jest "embedded SQL query - language interface" dla j�zyka C.</P> - - <H4><A name="2.4">2.4</A>) Za pomoc� jakich j�zyk�w programowania + modu�u CGI.pl lub mod_perl.</P> + + <H4><A name="2.3">2.3</A>) Czy istnieje jakie� GUI dla PostgreSQL?</H4> + + <P>Tak, istnieje kilka interfejs�w graficznych dla PostgreSQL. + W�r�d nich PgAccess (<A href="http://www.pgaccess.org"> + http://www.pgaccess.org</A>), PgAdmin III (<A + href="http://www.pgadmin.org">http://www.pgadmin.org</A>), + RHDB Admin (http://sources.redhat.com/rhdb/ ) oraz Rekall ( + http://www.thekompany.com/products/rekall/, komercyjny). Istnieje + tak�e PHPPgAdmin ( http://phppgadmin.sourceforge.net/ ), webowy + interfejs dla PostgreSQL. + </P> + <P> + Wi�cej informacji na ten temat znajduje si� pod adresem See + <A href="http://techdocs.postgresql.org/guides/GUITools">http://techdocs.postgresql.org/guides/GUITools</A>. + + <H4><A name="2.4">2.4</A>) Za pomoc� jakich j�zyk�w programowania mo�na si� komunikowa� z PostgreSQL?</H4> - <P>Mamy wsparcie dla:</P> + <P>Najbardziej popularne j�zyki posiiadaj� w�asny interfejs dla + PostgreSQL. Sprawd� list� rozszerze� dla intersuj�cego Ciebie j�zyka + programowania.</P> + + <P>Ze �r�d�ami PostreSQL dystrubuowane s� interfejsy dla + nast�puj�cych j�zyk�w programowania:</P> + <UL> <LI>C (libpq)</LI> - <LI>C++ (libpq++)</LI> - <LI>Embedded C (ecpg)</LI> <LI>Java (jdbc)</LI> - <LI>Perl (perl5)</LI> - - <LI>ODBC (odbc)</LI> - <LI>Python (PyGreSQL)</LI> <LI>TCL (libpgtcl)</LI> - - <LI>C Easy API (libpgeasy)</LI> - - <LI>Embedded <SMALL>HTML</SMALL> (<A href= - "http://www.php.net">PHP z http://www.php.net</A>)</LI> </UL> + Inne interfejsy s� dost�pne pod adresem: + <A href="http://gborg.postgresql.org"> http://gborg.postgresql.org</A> w + sekcji Drivers/Interfaces. <HR> - <H2 align="center">Pytania administratora</H2> + <H2 align="center">Pytania dotycz�ce administracji</H2> <H4><A name="3.1">3.1</A>) Jak mog� zainstalowa� PostgreSQL w innej lokalizacji ni� <I>/usr/local/pgsql</I>?</H4> @@ -677,7 +677,8 @@ <SMALL>SEMMNS</SMALL> i <SMALL>SEMMNI</SMALL> j�dra twojego systemu.</P> <P>Niedzia�aj�ce semafory mog� spowodowa� niepoprawne zamkni�cie - systemu w czasie intensywnego korzystania z bazy.</P> + systemu w czasie intensywnego korzystania z bazy.</P> + <P>Je�li tre�� b��du jest inna, mo�e to oznacza�, �e obs�uga semafor�w nie zosta�a w��czona do j�dra wcale. Zobacz PostgreSQL Administrator's Guide po bardziej szczeg�owe informacje o pami�ci @@ -692,8 +693,7 @@ <I>postmaster'a</I>, <B>oraz</B> nie umo�liwi si� autoryzacji na podstawie adresu host�w modyfikuj�c odpowiednio plik - <I>$PGDATA/pg_hba.conf</I>. To zmiany pozwol� na - po��czenia TCP/IP.</P> + <I>$PGDATA/pg_hba.conf</I>. To zmiany pozwol� na po��czenia TCP/IP.</P> <H4><A name="3.6">3.6</A>) Jak powinienem skonfigurowa� system baz danych aby uzyska� lepsz� wydajno��?</H4> @@ -709,7 +709,7 @@ okre�laj�cym transakcj� - <SMALL>BEGIN WORK/COMMIT</SMALL>, s� traktowane jako pojedyncza transakcja. Rozwa� wykonanie kilku polece�/zda� SQL w jednym bloku transakcji. To redukuje narzut - powodowany przez transakcj�. Przy du�ych zmianach w danych, warto + nak�adany przez transakcj�. Przy du�ych zmianach w danych, warto usun�� i stworzy� na nowo indeksy.</P> <P>Jest kilka opcji pozwalaj�cych na poprawienie wydajno�ci. @@ -825,19 +825,12 @@ maksymaln� liczb� proces�w backendu to obawa o wyczerpanie zasob�w systemu.</P> - <P>W wersjach PostgreSQL wcze�niejszych ni� 6.5, maksymalna liczba - backend�w by�a ustawiona na 64, a zmiana tej warto�ci wymaga - rekompliacji po zmianie sta�ej MaxBackendId w pliku - <I>include/storage/sinvaladt.h</I>.</P> + <H4><A name="3.9">3.9</A>) Jakie pliki znajduj� si� w <I>pg_temp</I>?</H4> - <H4><A name="3.9">3.9</A>) Co to s� za pliki typu: - <I>pg_sorttempNNN.NN</I>, - kt�re znajduj� si� w katalogu z plikami bazy danych?</H4> - - <P>S� to tymczasowe pliki utworzone przez executor. Dla przyk�adu, - je�li jaka� operacja sortowania jest wymagana do wykonania + <P>Katalog ten zawiera tymczasowe pliki utworzone przez executor. Dla + przyk�adu, je�li jaka� operacja sortowania jest wymagana do wykonania <SMALL>ORDER BY,</SMALL> a samo sortowanie wymaga wi�cej miejsca ni� - paratmetr backendu + parametr backendu <I>-S</I> ustawi� do wykorzystania, wtedy tymczasowe pliki s� u�ywane do przechowywania tych danych.</P> @@ -846,6 +839,25 @@ poprawnie podczas operacji sortowania. Je�li w danym momencie nie dzia�aj� �adne procesy backend�w mozesz spokojnie usun�� pliki pg_tempNNN.NN.</P> + + <H4><A name="3.9">3.9</A>) Dlaczego konieczne jest przy upgradzie + PostgreSQL korzystanie ze skrypt�w dump i restore?</H4> + <P> + Tw�rcy PostgreSQL dokonuj� jedynie ma�ych zmian pomi�dzy ma�ymi + upgradami wersji, np z 7.2 do 7.2.1, wtedy upgrade nie wymaga + korzystania z dump i restore. Przy wi�kszych zmianach, np. z wersji + 7.2 do 7.3, cz�sto zmianymaj� wp�yw na format przechowywanych danych. + Zmiany te s� na tyle skomplikowane, �e nie utrzymujemy zgodo�ci z + poprzednimi wersjami PostgreSQL. dump pozwala na wydostanie danych w + takiej postaci, w kt�rej �atwe jest ich zaimportowanie do nowszych + wersji bez k�opotu. + </P> + <P> + W wydaniach gdzie zmiany nie dotycz� formatu danych na dysku, mo�na + wykorzysta� skryptu pg_upgrade, do upgradu bez u�ycia dump/restore. + Dokumentacja do danego wydania zawiera informacj� czy mo�liwe jest + u�ycie pg_upgrade. + </P> <HR> <H2 align="center">Pytania dotycz�ce u�ywania</H2> @@ -870,6 +882,15 @@ <SMALL>ORDER BY</SMALL>, PostgreSQL mo�e wykorzysta� jedynie kilka pierwszych rz�d�w, by� mo�e b�dzie konieczno�� wykonania zapytania do momentu a� zostan� znalezione po��dane wyniki.</P> + <P> + Aby otrzyma� losowy rz�d, u�yj: + <PRE> + SELECT col + FROM tab + ORDER BY random() + LIMIT 1; + </PRE> + </P> <H4><A name="4.3">4.3</A>) Jak mog� uzyska� list� wszystkich tabel czy innych rzeczy pod <I>psql</I>?</H4> @@ -881,37 +902,53 @@ <I>-E</I> wtedy po wykonaniu polecenia z backslashem wy�wietlane b�dzie zapytanie, kt�re w rzeczywisto�ci jest wykonywane.</P> - <H4><A name="4.4">4.4</A>) Jak usun�� kolumn� z tabeli?</H4> - - <P>Nie mamy zaimplementowanego <SMALL>ALTER TABLE DROP - COLUMN,</SMALL> ale mo�esz zrobi� tak:</P> + <H4><A name="4.4">4.4</A>) Jak usun�� kolumn� z tabeli lub zmieni� + jej typ?</H4> + + <P>DROP COLUMNT zosta�o dodane w wersji 7.3 przy poleceniu ALTER + TABLE DROP COLUMN. We wcze��iejszych wersjach mo�esz zrobi� tak: + </P> <PRE> - SELECT ... -- wybierz zawarto�� wszystkich kolumn poza t� jedn� kt�rej chcesz si� pozby� + BEGIN; + LOCAL TABLE old_table; + SELECT ... -- wybierz wszystkie kolumny poza t� jedn� kt�rej chcesz si� pozby� INTO TABLE new_table FROM old_table; DROP TABLE old_table; ALTER TABLE new_table RENAME TO old_table; </PRE> + <P> + Aby zmieni� typ danych kolumny mo�esz zrobi� tak: + </P> + <PRE> + BEGIN; + ALTER TABLE tab ADD COLUMN new_col new_data_type; + UPDATE tab SET new_col = CAST(old_col AS new_data_type); + ALTER TABLE tab DROP COLUMN old_col; + COMMIT; + </PRE> + </P> <H4><A name="4.5">4.5</A>) Jaki jest maksymalny rozmiar dla rz�du, tabeli i bazy danych?</H4> <P>Oto wszystkie ograniczenia:</P> <PRE> - Maksymalny rozmiar dla bazdy danych? nieograniczony ( istniej� bazy danych o wielko�ci 500 GB databases ) - Maksymalny rozmiar dla tabeli? 16 TB - Maksymalny rozmiar dla rz�du? nieograniczony w 7.1 i p�niejszych - Maksymalny rozmiar pola? 1 GB w 7.1 and later + Maksymalny rozmiar dla bazdy danych? nieograniczony ( istniej� + bazy danych o wielko�ci 32 TB databases ) + Maksymalny rozmiar dla tabeli? 32 TB + Maksymalny rozmiar dla rz�du? 1.6 TB + Maksymalny rozmiar pola? 1 GB Maksymalna liczba rz�d�w w tabeli? nieograniczona - Maksymalna liczba kolumn w tabeli? 250-1600 w zale�ono�ci od typ�w kolumn - Makasymalna liczba indeks�w na tabeli? nieograniczona + Maksymalna liczba kolumn w tabeli? 250-1600 w zale�ono�ci od typ�w kolumn + Makasymalna liczba indeks�w na tabeli? nieograniczona </PRE> Oczywi�cie "nieograniczony" nie jest prawd� tak do ko�ca, istniej� ograniczenia wynikaj�ce z dost�pnego miejsca na dysku, pami�ci/swapa. Kiedy wielko�ci te b�d� bardzo du�e mo�e odbi� si� to na wydajno�ci. - <P>Maksymalny rozmiar tabeli, czyli 16 TB nie wymaga od systemu + <P>Maksymalny rozmiar tabeli, czyli 32 TB nie wymaga od systemu operacyjnego wsparcia dla du�ych plik�w. Du�e tabele s� przechowywane jako pliki o rozmiarze 1 GB, wi�c ograniczenia co do wielko�ci plik�w narzucone przez system plik�w nie s� istotne.</P> @@ -957,6 +994,9 @@ <P>Indeksy nie powoduj� du�ego narzutu na zajmowane miejsce, ale zawieraj� pewne dane, wi�c w pewnych przypadkach moga by� ca�kiem du�e.</P> + <P> NULLe s� przechowywane jako mapy bitowe, wi�c u�ywaj� bardzo ma�o + miejsca. + </P> <H4><A name="4.7">4.7</A>) Jak mog� sprawdzi� jakie tabele, klucze, bazy danych i u�ytkownicy s� utworzeni?</H4> @@ -996,17 +1036,39 @@ nast�puje sortowanie jest zazwyczaj szybsze ni� wyszukiwanie za pomoc� indeksu na du�ej tabeli.</P> Jakkolwiek <SMALL>LIMIT</SMALL> w po��czeniu z <SMALL>ORDER BY</SMALL> - cz�sto b�dzie wykorzystywa� indeks�w poniew�z jedynie ma�a cz�c z - tabeli jest zwracana. + cz�sto b�dzie wykorzystywa� indeksy poniewa� jedynie ma�a cz�� z + tabeli jest zwracana. W rzeczywisto�ci, chocia� MAX() i MIN() nie + u�ywaj� indeks�w, mo�liwe jest aby zwr�ci� te warto�ci u�ywaj�c + indeks�w poprzez u�ycie ORDER BY i LIMIT. + </P> + <PRE> + SELECT col + FROM tab + ORDER BY col [ DESC ] + LIMIT 1; + </PRE> + <P> + Je�li uwa�asz, �e optimizer myli si� wybieraj�c sequential scan, u�yj + SET enable_seqscan TO 'off' i uruchom testy aby sprawdzi� czy wtym + wypadku zapytanie b�dzie szybciej wykonywane. <P>Kiedy u�ywa si� operator�w dopasuj�cych takich jak - <SMALL>LIKE</SMALL> lub <I>~</I>, indeksy b�d� u�ywane jedynie je�li - pocz�tek wyszukiwania jest oparty na pocz�tku �a�cucha tekstu. - Dlatego, aby u�ywac indeks�w, - dopasowania operatorem <SMALL>LIKE</SMALL> nie mog� si� zaczyna� - <I>%</I>, a dopasowania operatorem <I>~</I> (dopasowania regularne) - musz� si� zaczyna� znakiem specjalnym <I>^</I>.</P> - + <SMALL>LIKE</SMALL> lub <I>~</I>, indeksy b�d� u�ywane jedynie w + pewnych wypadkach:</P> + <UL> + <LI>Pocz�tek wyszukiwania jest oparty na pocz�tku �a�cucha tekstu. + <UL> + <LI>wzorce <SMALL>LIKE</SMALL> nie mog� si� zaczyna� <I>%</I> + <LI>dopasowania operatorem <I>~</I> (dopasowania regularne) + musz� si� zaczyna� znakiem specjalnym <I>^</I>.</P> + </UL> + <LI>Pocz�tek wyszukiwania nie mo�e si� zaczyna� od klas znak�w, np. + [a-e]. + <LI>Case-insensitive searches such as ILIKE and ~* do not utilise + indexes. Instead, use functional indexes, which are described in + section 4.12. + <LI>Standardowe locale C musi by� uzyte przy wykonywaniu initdb + </UL> <H4><A name="4.9">4.9</A>) Jak mog� sprawdzi� w jakis spos�b "query optimizer" wykonuje moje zapytanie?</H4> @@ -1051,15 +1113,14 @@ <H4><A name="4.12">4.12</A>) Jak mog� u�ywa� wyra�e� regularnych w zapytaniach i zapyta� case-insensitive w wyra�eniach regularnych? - jak korzysta� z indeks�w dla zapyta� case-insensitive?</H4> + Jak korzysta� z indeks�w dla zapyta� case-insensitive?</H4> <P>Operator <I>~</I> moze by� wykorzystywany do wyszukiwania za pomoc� wyra�e� regularnych, a <I>~*</I> do wyszukiwania case-insensitive z wyra�eniami regularnymi. Wariant case-insensitive dla <SMALL>LIKE</SMALL> zosta� nazwany - <SMALL>ILIKE</SMALL> i jest dost�pny w PostgreSQL 7.1 i p�niejszych - wersjach.</P> + <SMALL>ILIKE</SMALL>.</P> <P>Por�wnania case-insensitive s� zazwyczaj wykonywane w nast�puj�cy spos�b:</P> @@ -1087,31 +1148,41 @@ <PRE> Type Nazwa wewn�trzna Uwagi -------------------------------------------------- -"char" char 1 znak -CHAR(#) bpchar wype�niane pustymi znakami do podanej d�ugo�ci -VARCHAR(#) varchar rozmiar okre�la maksymaln� d�ugo��, nie ma tutaj wype�niania +VARCHAR(n) varchar rozmiar okre�la maksymaln� d�ugo��, nie ma tutaj wype�niania +CHAR(n) bpchar wype�niane pustymi znakami do podanej d�ugo�ci TEXT text bez limitu na d�ugo�� �a�cucha BYTEA bytea zmiennej d�ugo�ci tablica bajt�w (null-byte safe) +"char" char 1 znak </PRE> <P>Je�li b�dziesz przegl�da� katalogi systemowe lub komunikaty o b��dach cz�sto spotkasz si� z podanymi powy�ej nazwami wewn�trznymi.</P> - <P>Ostatnie cztery typy powy�ej to tzw typy "varlena" (np. pierwsze + <P>Pierwsze cztery typy powy�ej to tzw typy "varlena" (np. pierwsze cztery bajty na dysku to d�ugo��, po kt�rych jest data). Dlatego faktyczna d�ugo�c takiego �a�cucha jest troch� wi�ksza ni� zadeklarowany rozmiar. Te typy tak�e podlegaj� kompresji lub mog� by� przechowywane out-of-line jako <SMALL>TOAST</SMALL>, wi�c faktyczne zu�ycie miejsca na dysku mo�e by� mniejsze ni� oczekiwane.</P> - <P><SMALL>CHAR()</SMALL> jast najlepszym typem do przechowywania - �a�cuch�w o tej samej d�ugo�ci. <SMALL>VARCHAR()</SMALL> jest + <SMALL>VARCHAR(n)</SMALL> jest najodpowiedniejszy do przechowywania �a�cuch�w o r�nej d�ugo�ci - ale okre�la on maksymaln� jego d�ugo��. <SMALL>TEXT</SMALL> jest - najlepszy dla �a�cuch�w o dowolnej d�ugo�ci, nie przekraczaj�cej 1GB. - <SMALL>BYTEA</SMALL> s�u�y do przechowywania danych binarnych, - w szczeg�lno�ci dla danych zawieraj�cych <SMALL>NULL</SMALL> bajty.</P> + ale okre�la on maksymaln� jego d�ugo��. + + <SMALL>TEXT</SMALL> jest najlepszy dla �a�cuch�w o dowolnej d�ugo�ci, + nie przekraczaj�cej 1GB.</P> + + <P> + <SMALL>CHAR(n)</SMALL> jast najlepszym typem do przechowywania + �a�cuch�w o tej samej d�ugo�ci. CHAR(n) wype�nia dane do �adanej + d�ugo�ci, podczas gdy VARCHAR(n) przechowuje jedynie dane + dostarczone. + + <SMALL>BYTEA</SMALL> s�u�y do przechowywania danych binarnych, + w szczeg�lno�ci dla danych zawieraj�cych <SMALL>NULL</SMALL> bajty. + Wszystkie typy opisane tutaj maja podobne charakterystyki je�li + chodzi o wydajno��.</P> <H4><A name="4.15.1">4.15.1</A>) Jak mog� utworzy� pole kt�re samo zwi�ksza swoj� warto��?</H4> @@ -1188,7 +1259,7 @@ BYTEA bytea zmiennej d <H4><A name="4.15.4">4.15.4</A>) Dlaczego numery sekwencji nie s� ponownie u�ywane przy przerwaniu transakcji? - Sk�d si� bior� luki w numerowaniu kolumny tabeli + Sk�d si� bior� luki w numerowaniu kolumny tabeli sekwancjami/SERIALem?</H4> <P>Aby poprawi� zbie�no�� (concurrency), warto�ci sekwencji s� @@ -1197,8 +1268,7 @@ BYTEA bytea zmiennej d numerowaniu z przerwanych transakcji.</P> <H4><A name="4.16">4.16</A>) Co to jest <SMALL>OID</SMALL>? Co to - jest - <SMALL>TID</SMALL>?</H4> + jest <SMALL>TID</SMALL>?</H4> <P><SMALL>OID</SMALL> s� PostgreSQL'owym rozwi�zaniem problemu unikalnych numer�w rz�d�w. Ka�dy rz�d tworzony przez PostgreSQL @@ -1274,15 +1344,15 @@ BYTEA bytea zmiennej d </UL> <P>List� termin�w zwi�zanych z bazami danych mo�esz znale�� pod tym - adresem:<A href= - "http://www.comptechnews.com/~reaster/dbdesign.html">http://www.comptechnews.com/~reaster/dbdesign.html</A></P> + adresem:<A + href="http://hea-www.harvard.edu/MST/simul/software/docs/pkgs/pgsql/glossary/glossary.html">http://hea-www.harvard.edu/MST/simul/software/docs/pkgs/pgsql/glossary/glossary.html</A>. <H4><A name="4.18">4.18</A>) Sk�d bierze si� ten b��d <I>"ERROR: Memory exhausted in AllocSetAlloc()"</I>?</H4> - <P>Je�li u�ywasz wersji starszej ni� 7.1, upgrade mo�e rozwi�za� ten - problem. Jest tak�e mozliwe, �e po prostu wyczerpa�a Ci si� pami�� - wirtualna (virtual memory) w systemie lub Tw�j kernel ma zbyt nisko + <P> + Prawdopodobnie wyczerpa�a Ci si� pami�� wirtualna (virtual memory) + w systemie lub Tw�j kernel ma zbyt nisko ustawione limity dla pewnych zasob�w. Spr�buj wykona� nast�puj�ce polecenia zanim uruchomisz <I>postmaster'a</I>:</P> <PRE> @@ -1332,29 +1402,38 @@ BYTEA bytea zmiennej d <H4><A name="4.22">4.22</A>) Dlaczego zapytania u�ywaj�ce <CODE><SMALL>IN</SMALL></CODE> sa takie wolne?</H4> - <P>Obecnie ��czymy podzapytania w outer queries poprzez sekwencyjne - przeszukiwanie wynik�w podzapytania dla ka�dego rz�du z outer query. - Mo�na to omin�� zast�puj�c <CODE>IN</CODE> przez + <P>W wersjach wcze�niejszych ni� 7.4 ��czymy podzapytania w outer queries + poprzez sekwencyjne przeszukiwanie wynik�w podzapytania dla ka�dego rz�du + z outer query. Je�li podzapytanie zwraca jedynie kilka rz�d�w a + zewn�trzne zapytanie zwraca ich wiele, IN jest najszybsze. + Aby przyspieszy� inne zapytania mo�na zast�pi� <CODE>IN</CODE> przez <CODE>EXISTS</CODE>:</P> <PRE> <CODE>SELECT * FROM tab - WHERE col1 IN (SELECT col2 FROM TAB2) + WHERE col IN (SELECT subcol FROM subtab) </CODE> </PRE> na: <PRE> <CODE>SELECT * FROM tab - WHERE EXISTS (SELECT col2 FROM TAB2 WHERE col1 = col2) + WHERE EXISTS (SELECT subcol FROM subtab WHERE subcol = col) </CODE> </PRE> - Mamy zamiar poprawi� to ograniczenie w przysz�ych wydaniach. - + <P> + Aby to rozwi�zanie by�o szybkie, subcol powinna by� kolumn� + indeksowan�. + </P> + <P> + W wersji 7.4 i p�niejszych, IN w rzeczywisto�ci u�ywa tej samej + wyrafinowanej techniki ��czenia jak normalne zapytania i jest + preferowane nad u�ywaniem EXISTS. + </P> <H4><A name="4.23">4.23</A>) Jak wykona� "outer join"?</H4> - <P>PostgreSQL 7.1 i p�niejsze wersje maj� zaimplementowane outer join - wykorzystuj�c standardow� sk�adnie SQL. Poni�ej dwa przyk�ady:</P> + <P>PostgreSQL ma zaimplementowane outer join + wykorzystuj�c standardow� sk�adni� SQL. Poni�ej dwa przyk�ady:</P> <PRE> SELECT * @@ -1367,7 +1446,7 @@ BYTEA bytea zmiennej d </PRE> <P>Te dwa identyczne zapytania ��cz� kolumn� t1.col z kolumn� t2.col, - ale tak�e zwr�c� niepo��czone rz�dy w t1 (te kt�re nie pasuj� w t2). + ale tak�e zwr�c� niepo��czone rz�dy w t1 (te, kt�re nie pasuj� w t2). <SMALL>RIGHT</SMALL> join doda�by niepo��czone rz�dy z tabeli t2. <SMALL>FULL</SMALL> join zwr�ci�by rz�dy plus dodatkowo wszystkie rz�dy z tabel t1 i t2. S�owo <SMALL>OUTER</SMALL> jest opcjonalne i @@ -1401,19 +1480,63 @@ BYTEA bytea zmiennej d katalogi systemowe, nie jest do ko�ca jasne jak zapytanie pomi�dzy r�nymi bazami danych powinno si� zachowywa�.</P> - <P>Oczywi�cie klient mo�e ��czy� si� z r�nymi bazami danych i ��czy� - informacj� w ten spos�b uzyskan�.</P> + <P><I>contrib/dblink</I> pozwala na wykonywanie zapyta� poprzez r�ne + bazy danych wywo�uj�c odpowiednie funkcje. Oczywi�cie klient mo�e ��czy� + si� z r�nymi bazami danych i ��czy� informacj� w ten spos�b uzyskan� + po stronie klienta.</P> <H4><A name="4.25">4.25</A>) Jak zwr�ci� w funkcji wiele rz�d�w lub kolumn?</H4> - <P>Mo�esz zwraca� zbiory z funkcji PL/pgSQL u�ywaj�c - <i>refcursors</i>. Zobacz <a - href="http://developer.postgresql.org/docs/postgres/plpgsql-cursors.html"> - http://developer.postgresql.org/docs/postgres/plpgsql-cursors.html,</a> - sekcj� 23.7.3.3.</P> - + <P>Mo�esz w �atwy spos�b zwraca� wiele rz�d�w lub kolumn u�ywaj�c + funkcji z: <A HREF="http://techdocs.postgresql.org/guides/SetReturningFunctions">http://techdocs.postgresql.org/guides/SetReturningFunctions</A>. + <H4><A name="4.26">4.26</A>) Dlaczego nie mog� w spos�b pewny + tworzy�/usuwa� tabel tymczasowych w funkcjach PL/PgSQL?</H4> + <P> + PL/PgSQL przechowuje w cache zawarto�� funkcji, niepo��danym efektem tego + jest to, �e gdy taka funkcja korzysta z tabel tymczasowych, kt�re s� + p�niej kasowane i odtwarzane, a funkcja wywo�ywana jest ponownie,jej + wywo�anie nie powiedzie si� poniewa� cachowana funkcja wci�� b�dzie + wskazywa� na stara tablic� tymczasow�. Rozwi�zaniem tego problemu jest + u�ywanie EXECUTE aby korzysta� z tabel tymczasowych w PL/PgSQL. To + spowoduje, �e zapytanie b�dzie parsowane przy ka�dym wywo�aniu + funkcji. + </P> + + <H4><A name="4.27">4.27) Jakie s� mo�liwo�ci replikacji w PostgreSQL?</H4> + <P> + Jest kilka opcji aby stosowa� replikacj� typu master/slave. Ten typ + pozwala jedynie masterowi na dokonywanie zmian w bazie danych, a + slave mo�e jedynie te zmiany odczytywa�. Na stronie + <A + HREF="http://gborg.PostgreSQL.org/genpage?replication_research">http://gborg.PostgreSQL.org/genpage?replication_research</A> + znajduje si� ich lista. Replikacja typu multi-master jest w trakcie + prac, opis projektu znajduje si� pod adresem: <A + HREF="http://gborg.PostgreSQL.org/project/pgreplication/projdisplay.php"> +http://gborg.PostgreSQL.org/project/pgreplication/projdisplay.php</A>. + </P> + + <H4><A name="4.28">4.28) Jakie mo�liwo�ci szyfrowania oferuje + PostgreSQL?</H4> + <P> + <UL> + <LI>contrib/pgcrypto zawiera wiele funkcji za pomoc�, kt�rych mo�emy u�ywa� + kryptografii w zapytaniach SQL. + <LI>Aby szyfrowa� transmisj� od klienta do serwera, ten musi mie� + ustawion� opcj� ssl na true w pliku postgresql.conf, odpowiedni + wpis host lub hostssl musi wyst�powa� w pliku pg_hba.conf, oraz + sslmode nie mo�e by� wy��czone w kliencie. (Warto zwr�ci� uwag�, �e + mo�liwe jest tak�e u�ywanie transport�w szyfruj�c�w przez strony + trzecie, takie jak stunnel lub ssh, poza natywnym wsparciem dla SSL + przez PostgreSQL). + <LI>Has�a u�ytkownik�w bazy danych s� automatycznie szyfrowane od + wersji 7.3. W poprzednich wersjach, nale�y t� funkcjonalno�� poprzez + w��czenie opcji PASSWORD_ENCRYPTION w postgresql.conf. + <LI>Serwer mo�e dzia�a� u�ywaj�c szyfrowanego systemu plik�w. + </UL> +</P> + <H2 align="center">Rozwijanie PostgreSQL</H2> <H4><A name="5.1">5.1</A>) Napisa�em w�asn� funkcj�. Kiedy u�yj� jej @@ -1432,8 +1555,12 @@ BYTEA bytea zmiennej d <H4><A name="5.3">5.3</A>) Jak napisa� funkcj� C zwracaj�c� krotk� (tuple)?</H4> - <P>To wymaga wysi�ku tak olbrzymiego, �e nawet autorzy nigdy tego nie - prubowali, chocia� z zalo�e� wynika, �e jest to mo�liwe.</P> + <P> + W wersjach PostgreSQL od numeru 7.3, funckje zwracaj�ce tabele s� w + p�lni wspierane w C, PL/PgSQL i SQL. Sprawd� w Programmer's Guide aby + uzyska� wi�cej informacji. Przyk�ad funkcji napisanej w C zwracaj�cej + tabel� zosta� umieszczony w <I>contrib/tablefunc</I>. + </P> <H4><A name="5.4">5.4</A>) Zmieni�em plik �r�d�owy. Dlaczego po rekompilacji nie wida� zmiany?</H4> @@ -1443,6 +1570,8 @@ BYTEA bytea zmiennej d <I>make clean</I>, a nast�pnie ponownie <I>make</I>. Je�li u�ywasz <SMALL>GCC</SMALL> mo�esz u�y� opcji <I>--enable-depend</I> przy wykonywaniu <I>configure</I> aby + kompilator m�g� okre�li� zale�no�ci samodzielnie. + </P> </BODY> </HTML> -- GitLab