@@ -15,7 +15,9 @@
< H1 > Frequently Asked Questions (FAQ) o PostgreSQL< / H1 >
< P > Ostatnia aktualizacja: Thu Apr 18 00:44:5 1 ED T 2002 < / P >
< P > Ostatnia aktualizacja: Sobota Luty 7 22:16:2 1 ES T 2004 < / P >
< P > Ostatnia aktualizacja t<> umaczenia: Pi<50> 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<6C> wersj<73> tego dokumentu mo<6D> na znale<6C> <65> 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<63> ce konkretnych system<65> w operacyjnych
mo<6D> na znale<6C> <65> 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<6F> lne< / H2 >
@@ -64,20 +65,19 @@
PostgreSQL?< BR >
< A href = "#2.2" > 2.2< / A > ) Jakie istniej<65> narz<72> dzia pozwalaj<61> ce na dost<73> p do
PostgreSQL przez www?< BR >
< A href = "#2.3" > 2.3< / A > ) Czy istnieje jakie<69> GUI dla PostgreSQL?
Narz<72> dzie do raportowania? Interfejs dla "embedded query language"?< BR >
< A href = "#2.3" > 2.3< / A > ) Czy istnieje jakie<69> GUI dla PostgreSQL?< BR >
< A href = "#2.4" > 2.4< / A > ) Za pomoc<6F> jakich j<> zyk<79> w programowania mo<6D> na
si<73> komunikowa<77> z PostgreSQL?< BR >
< H2 align = "center" > Pytania administratora < / H2 >
< H2 align = "center" > Pytania dotycz<EFBFBD> ce administracji < / H2 >
< A href = "#3.1" > 3.1< / A > ) Jak mog<6F> zainstalowa<77> PostgreSQL w innej
lokalizacji ni<6E> < I > /usr/local/pgsql< / I > ?< BR >
< A href = "#3.2" > 3.2< / A > ) Podczas startu < I > postmaster'a< / I > ,
otrzymuj<75> 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<75> komunikato b<> <62> dzie: < I > IpcMemoryCreate< / I > . Dlaczego?< BR >
otrzymuj<75> komunikat o b<> <62> dzie: < I > IpcMemoryCreate< / I > . Dlaczego?< BR >
< A href = "#3.4" > 3.4< / A > ) Podczas startu < I > postmaster'a< / I > ,
otrzymuj<75> komunikat o b<> <62> dzie: < I > IpcSemaphoreCreate< / I > . Dlaczego?< BR >
< A href = "#3.5" > 3.5< / A > ) W jaki spos<6F> b mog<6F> kontrolowa<77> po<70> <6F> czenia z
@@ -87,9 +87,9 @@
< A href = "#3.7" > 3.7< / A > ) Jakie s<> mo<6D> liwo<77> ci wyszukiwania b<> <62> d<EFBFBD> w?< BR >
< A href = "#3.8" > 3.8< / A > ) Sk<53> d si<73> bierze komunikat: < I > "Sorry, too many
clients"< / I > podczas pr<70> by po<70> <6F> czenia si<73> z baz<61> danych?< BR >
< A href = "#3.9" > 3.9< / A > ) Co to za pliki typu < I > pg_sorttempNNN.NN< / I >
, kt<6B> re znajduj<75> si<73> w katalogu z plikami bazy danych?< BR >
< A href = "#3.9" > 3.9< / A > ) Jakie pliki znajduj<75> si<73> w < I > pg_temp< / I > ?< BR >
< A href = "#3.10" > 3.10< / A > ) Dlaczego konieczne jest przy upgradzie
PostgreSQL korzystanie ze skrypt<70> w dump i restore?< BR >
< H2 align = "center" > Pytania dotycz<63> ce u<> ytkowania< / H2 >
< A href = "#4.1" > 4.1< / A > ) Jaka jest r<> <72> nica pomi<6D> dzy kursorami
@@ -98,7 +98,8 @@
jedynie kilka pierwszych wynik<69> w zapytania?< BR >
< A href = "#4.3" > 4.3< / A > ) Jak mog<6F> uzyska<6B> list<73> wszystkich tabel czy
innych rzeczy pod < I > psql< / I > ?< BR >
< A href = "#4.4" > 4.4< / A > ) Jak usun<75> <6E> kolumn<6D> z tabeli?< BR >
< A href = "#4.4" > 4.4< / A > ) Jak usun<75> <6E> kolumn<6D> z tabeli lub zmieni<6E> jej
typ?< BR >
< A href = "#4.5" > 4.5< / A > ) Jaki jest maksymalny rozmiar dla rz<72> du,
tabeli i bazy danych?< BR >
< A href = "#4.6" > 4.6< / A > ) Jak du<64> o miejsca w bazie danych jest
@@ -148,8 +149,13 @@
baz danych jednocze<7A> nie?< BR >
< A href = "#4.25" > 4.25< / A > ) Jak zwr<77> ci<63> w funkcji wiele rz<72> d<EFBFBD> w lub
kolumn?< BR >
< A href = "#4.26" > 4.26< / A > ) Dlaczego nie mog<6F> w spos<6F> b pewny
tworzy<7A> /usuwa<77> tabel tymczasowych w funkcjach PL/PgSQL?< BR >
< A href = "#4.27" > 4.27< / A > ) Jakie s<> mo<6D> liwo<77> ci replikacji w
PostgreSQL?< BR >
< A href = "#4.28" > 4.28< / A > ) Jakie mo<6D> liwo<77> ci szyfrowania oferuje
PostgreSQL?< BR >
< H2 align = "center" > Rozwijanie PostgreSQL< / H2 >
< A href = "#5.1" > 5.1< / A > ) Napisa<73> em w<> asn<73> funkcj<63> . Kiedy u<> yj<79> jej w
< I > psql< / I > , program zrzuca pami<6D> <69> (dump core)?< BR >
@@ -166,7 +172,8 @@
< H4 > < A name = "1.1" > 1.1< / A > ) Co to jest PostgreSQL? Jak to wymawia<69> ?< / H4 >
< P > PostgreSQL wymawia si<73> < I > Post-Gres-kju-el< / I > .< / P >
< P > PostgreSQL wymawia si<73> < I > Post-Gres-kju-el< / I > . Cz<43> sto podczas
rozm<7A> w u<> ywany jest termin "Postgres"< / P >
< P > PostgreSQL jest rozszerzeniem systemu zarz<72> dzania bazami danych -
POSTGRES, kolejn<6A> generacj<63> rozwojowego prototypu < SMALL > DBMS< / SMALL > .
@@ -181,11 +188,14 @@
komunikuj<75> cych si<73> poprzez mailowe listy dyskusyjne PostgreSQL.
Obecnym koordynatorem jest Marc G. Fournier (< A href =
"mailto:scrappy@PostgreSQL.org" > scrappy@PostgreSQL.org< / A > ). (Zobacz
poni<EFBFBD> ej jak si<73> przy<7A> <79> czy<7A> ). Ta grupa ludzi jest odpowiedzialna za
ca<63> y rozw<7A> j PostgreSQL.< / P >
pytanie < A href = "#1.6" > 1.6< / A > jak si<73> przy<7A> <79> czy<7A> ). Ta grupa ludzi jest
odpowiedzialna za ca<EFBFBD> y rozw<7A> j PostgreSQL. PostgreSQL jest projektem
nie kontrolowanym przez <20> adn<64> firm<72> , aby wzi<7A> <69> udzia<69> w jego rozwoju
sprawd<77> , < 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<6F> b pomog<6F> o przy portowaniu, testowaniu, debugowaniu, i
Wiele innych os<6F> b pomog<6F> o przy portowaniu, testowaniu, debugowaniu i
rozwijaniu kodu. Oryginalny kod Postgresa, na kt<6B> rym zosta<74> oparty
PostgreSQL, by<62> wysi<73> kiem student<6E> w oraz pracownik<69> w pracuj<75> cych pod
kierownictwem profesora Michael'a Stonebraker'a z University of
@@ -243,11 +253,11 @@
< P > < STRONG > Klient< / STRONG > < / P >
< P > Mo<EFBFBD> liwa jest kompilacja bibliteki C < I > libpq< / I > C , psql oraz
< P > Mo<EFBFBD> liwa jest kompilacja bibliteki C < I > libpq< / I > , psql oraz
innych interfejs<6A> w i uruchamianie ich na platformie MS Windows. W tym
wypadku klient jest uruchamiany na MS Windows a z serwerem komunikuje si<73>
poprzez TCP/IP. Serwer mo<6D> e dzia<69> a<EFBFBD> na dowolnej wspieranej platformie
Unixowej. Plik < I > win31 .mak< / I > jest do<64> <6F> czony
Unixowej. Plik < I > win32 .mak< / I > jest do<64> <6F> czony
do <20> r<EFBFBD> de<64> , aby mo<6D> na by<62> o stworzy<7A> bibliotek<65> < I > libpq< / I > oraz
program < I > psql< / I > dzia<69> aj<61> ce w <20> rodowisku Win32. PostgreSQL mo<6D> e si<73>
tak<61> e komunikowa<77> z klientami < SMALL > ODBC< / SMALL > .< / P >
@@ -257,9 +267,18 @@
< P > Serwer mo<6D> e by<62> uruchamiany na Windows NT i Win2k u<> ywaj<61> c
bibliotek Cygwin, Cygnus Unix/NT. W pliku < I > pgsql/doc/FAQ_MSWIN< / I >
znajduj<75> cym si<73> w <20> r<EFBFBD> d<EFBFBD> ach lub pod adresem: < A href =
"http://www.postgresql.org/docs/faq-mswin.html" > MS Windows FAQ< / A >
na naszych stronach. Nie planujemy tworzy<7A> 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<4A> li chcesz si<73> dowiedzie<69> 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<61> e port pod Novell Netware 6 dost<73> pny pod adresem < A
href = "http://forge.novell.com" > http://forge.novell.com< / A > .
< / P >
< H4 > < A name = "1.5" > 1.5< / A > ) Sk<53> d mo<6D> na <20> ci<63> gn<67> <6E> PostgreSQL?< / H4 >
@@ -324,14 +343,13 @@
'#PostgreSQL' "$USER" irc.phoenix.net.< / CODE > < / P >
< P > Lista firm oferuj<75> cych wsparcie na zasadach komercyjnych znajduje
si<73> 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<73> 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<73> pna wersja?< / H4 >
< P > Ostatnia dost<73> pna wersja PostgreSQL to 7.2 .1.< / P >
< P > Ostatnia dost<73> pna wersja PostgreSQL to 7.4 .1.< / P >
< P > Planujemy publikowanie kolejnych wersji co cztery miesi<73> ce .< / P >
< P > Planujemy publikowanie kolejnych wersji co sze<EFBFBD> <EFBFBD> do o<> miu miesi<73> cy .< / P >
< H4 > < A name = "1.8" > 1.8< / A > ) Jaka dokumentacja jest dost<73> pna?< / H4 >
@@ -339,8 +357,8 @@
testowania s<> za<7A> <61> czone w samej dystrybucji. Znajduj<75> si<73> one w
katalogu < I > /doc< / I > . Manual mo<6D> e by<62> tak<61> e przegl<67> 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<EFBFBD> tak<61> e dwie ksi<73> <69> ki dost<73> 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<73> <69> ek o PostgreSQL, kt<6B> re mo<6D> na kupi<70> znajduje si<73> pod adresem
< A href =
"http://www.postgresql.org/books/" > http://www.p ostgresql .org/books/< / A > .
"http://techdocs.P ostgreSQL .org/techdocs/bookreviews.php" >
http://techdocs.PostgreSQL.org/techdocs/bookreviews.php< / A > .
Zbi<62> r technicznych artyku<6B> <75> w o PostgreSQL znajduje si<73> pod adresem < A
href =
"http://techdocs.p ostgresql .org/ " > http://techdocs.postgresql.org/< / A > .< / P >
"http://techdocs.P ostgreSQL .org" > http://techdocs.postgresql.org/< / A > .< / P >
< P > < I > psql< / I > posiada kilka wbudowanych polece<63> \d, za pomoca kt<6B> rych
mo<6D> na sprawdzi<7A> informacje dotycz<63> ce typ<79> w, operator<6F> w, funkcji,
agg regat<EFBFBD> w itd.< / P >
agregat<61> w itd.< / P >
< P > Na naszej stronie mo<6D> na znale<6C> <65> du<64> o wi<77> cej dokumentacji.< / P >
@@ -409,8 +428,8 @@
< P > Jest oko<6B> o 12 os<6F> b, kt<6B> re maj<61> uprawnienia do commit'owania w
< SMALL > CVS< / SMALL > PostgreSQL'a. Ka<4B> dy z nich submitowa<77> tak wiele
wysokiej jako<6B> ci patchy, <20> e sta<74> o si<73> niemo<6D> liwe dla obecnych
commiter<65> w by<62> z nimi na bie<69> <65> co, maj<EFBFBD> c pewno<6E> <6F> <20> e s<> to poprawki
wysokiej jako<6B> ci.< / P >
commiter<65> w by<62> z nimi na bie<69> <65> co, wi<EFBFBD> c musieli<6C> my im ufa<66> i mie<69>
pewno<6E> <6F> , <20> e ich poprawki s<> wysokiej jako<6B> ci.< / P >
< H4 > < A name = "1.13" > 1.13< / A > ) Jak mog<6F> zg<7A> asza<7A> b<> <62> dy?< / H4 >
@@ -437,52 +456,37 @@
oraz wyrafinowany system blokowania. Mamy tak<61> e w<> a<EFBFBD> ciow<6F> ci kt<6B> rych
inni nie posiadaj<61> , jak typy definiowane przez u<> ytkownika,
dziedziczenie, rules, multi-version concurrency control, kt<6B> ra
redukuje problemy z blokowaiem (lock contention).< BR >
redukuje problemy z blokowan iem (lock contention).< BR >
< BR >
< / DD >
< DT > < B > Wydajno<EFBFBD> <EFBFBD> < / B > < / DT >
< DD > PostgreSQL dzia<EFBFBD> a w dw<64> ch trybach. Standardowy tryb < I > fsync< / I >
zrzuca ka<6B> d<EFBFBD> zako<6B> czon<6F> transakcj<63> na dysk, gwarantuj<75> c w ten
spos<EFBFBD> b to, <20> e je<6A> li system operacyjny si<73> zawiesi lub straci
zasilanie wci<63> gu kilku nastepnych sekund, wszystkie Twoje dane
zostan<EFBFBD> bezpiecznie zapisane na dysku. W tym trybie, jeste<74> my
wolniejsi ni<6E> wi<77> kszo<7A> <6F> komercyjnych baz danych, cz<63> <7A> ciowo dlatego
<EFBFBD> e niewiele z nich wykonuje taki spos<6F> b zapisywania danych jako
domy<EFBFBD> lne ustawienie.
W trybie < I > no-fsync< / I > z regu<67> y jeste<74> my szybsi ni<6E> komercyjne
bazy danych, chocia<69> w tym wypadku zawieszenie si<73> systemu mo<6D> e
spowodowa<EFBFBD> uszkodzenie danych. Pracujemy nad tym, aby stworzy<7A>
po<EFBFBD> redni tryb, kt<6B> ry powoduje mniejsz<73> redukcj<63> wydajno<6E> ci ni<6E> tryb
fsync i pozwoli na integralno<6E> <6F> danych w przeci<63> gu 30 sekund do
za<EFBFBD> amania si<73> systemu operacyjnego.< BR >
< BR >
Por<6F> wnuj<75> c do MySQL czy innych prostych baz danych, jeste<74> my
wolniejsi przy wykonywaniu insert<72> w/updat<61> w przez narzut
spowodowany przez transakcje. Oczywi<77> cie MySQL nie posiada <20> adnej z
wymienionych wy<77> ej < I > mo<EFBFBD> liwo<EFBFBD> ci< / I > . PostgreSQL zosta<74> zbudowany
aby by<62> DBMS elastycznym i bogatym z r<> <72> norakie mo<6D> liwo<77> ci,
aczkolwiek dbamy, aby poprawia<69> jego wydajno<6E> <6F> poprzez analiz<69>
kodu <20> r<EFBFBD> d<EFBFBD> owego i profilowanie. Ciekawe por<6F> wnanie PostgreSQL i MySQL
mo<6D> na znale<6C> <65> pod adresem < A href =
"http://openacs.org/why-not-mysql.html" > http://openacs.org/why-not-mysql.html< / A > < BR >
< BR >
Ka<4B> de po<70> <6F> czenie klienta jest obs<62> ugiwane przez nas poprzez
stworzenie nowego procesu Unixowego. Procesy backendu dziel<65>
bufory danych oraz informacj<63> o blokadach. U<> ywaj<61> c wielu
procesor<6F> w, r<> <72> ne backendy mog<6F> bez problemu dzia<69> a<EFBFBD> na r<> <72> nych
procesorach.< BR >
< DD > Wydajno<EFBFBD> <EFBFBD> PostgreSQL jest podobna do innych komercyjnych i open
source baz danych. W niekt<6B> rych sytuacjach jest szybszy w
niekt<EFBFBD> rych wolniejszy. W por<6F> wnianiu do MySQL lub mniejszych baz
danych jeste<74> my szybsi przy wielu u<> ytkownikach, skomplikowaych
zapytaniach i du<64> ym obci<63> <69> eniu podczas. MySQL jest szybszy dla
prostych SELECT<43> w wykonywanych przez niewielu u<> ytkownik<69> w.
Spowodowane jest to narzutem, kt<6B> ry si<73> pojawia przy transakcjach.
Oczywi<EFBFBD> cie MySQL nie ma wi<77> kszo<7A> ci z rozwi<77> za<7A> opisanych powy<77> ej
w sekcji < I > Mo<4D> liwo<77> ci < / I > . PostgreSQL zosta<74> stworzony z my<6D> l<EFBFBD> o
stabilno<EFBFBD> ci, oraz szerokiej gamie mo<6D> liwo<77> ci, ale mimo to staramy
si<EFBFBD> w ka<6B> dej wersji poprawia<69> jego wydajno<6E> <6F> .
Ciekawe por<6F> wnanie PostgreSQL i MySQL mo<6D> na znale<6C> <65> 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<72> , kt<6B> ra dystrybuuje jej produkty poprzez
zasad<61> 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<EFBFBD> <EFBFBD> < / B > < / DT >
< DD > Zdajemy sobie spraw<61> , <20> e < SMALL > DBMS< / SMALL > musi by<62> stabilny,
w przeciwnym wypadku jest bez warto<74> ci. Staramy si<73> publikowa<77> kod
stabilny, dobrze przetestowany, z minimum mo<6D> liwych b<> <62> d<EFBFBD> w. Ka<4B> de
wydanie poprzedza conajmniej miesi<73> c test<73> w wersji beta. Patrz<72> c na
wydanie poprzedza co najmniej miesi<73> c test<73> w wersji beta. Patrz<72> c na
histori<72> wyda<64> PostgreSQL wida<64> , <20> e dostarczamy stabilne, dobrze
sprawdzone wersje, kt<6B> re s<> gotowe do u<> ycia w <20> rodowisku
produkcyjnym. My<4D> limy, <20> e proces publikowania kolejnych wersji
@@ -521,20 +525,20 @@
PostgreSQL?< / H4 >
< P > PostgreSQL korzysta z najlepszej infrastruktury od samego pocz<63> tku
istnienia projektu, tzn. sze<7A> ciu lat. Wszystko to zawdzi<7A> czamy Marc'owi
Fournier'owi, kt<6B> ry stworzy<7A> t<> infrastruktur<75> i zarz<72> dza ni<6E> od
lat.< / P >
istnienia projektu, czyli roku 1996 kiedy rozpoczeli<6C> my prac<61> . Wszystko
to zawdzi<7A> czamy Marc'owi Fournier'owi, kt<6B> ry stworzy<7A> t<> infrastruktur<75>
i zarz<72> dza ni<6E> od lat.< / P >
< P > Wysokiej jako<6B> ci infrastruktura jest bardzo wa<77> na dla ka<6B> dego
projektu open-source. Zapobiega przerwom w rozwoju projektu i
jakimkolwiek przestojom.< / P >
< P > Oczywi<EFBFBD> cie korzystanie z wysokiej jako<6B> ci infrastruktury nie jest
tanie. Istnieje wiele r<> z nych miesi<73> cznych, czy jednorazowych
tanie. Istnieje wiele r<> <EFBFBD> nych miesi<73> cznych, czy jednorazowych
wydatk<74> w, kt<6B> re trzeba ponosi<73> aby wszystko dzia<69> a<EFBFBD> o jak nale<6C> y.
Je<4A> li Ty, b<> d<EFBFBD> Twoja firma mo<6D> e wspom<6F> c finansowo rozw<7A> j PostgreSQL
odwied<65> 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<62> .< / P >
< P > Chocia<EFBFBD> na stronie wspomniana jest nazwa PostgreSQL Inc, "datki"
@@ -542,6 +546,9 @@
przeznaczane na finansowanie jakiejkolwiek firmy. Je<4A> li wolisz,
mo<6D> esz wys<79> a<EFBFBD> czek na adres kontaktowy.< / P >
< HR >
Je<4A> li mo<6D> esz si<73> pochwali<6C> udanymi wdro<72> eniami PostgreSQL, prosimy
aby<62> zg<7A> osi<73> 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<EFBFBD> pne s<> dwa driwery < SMALL > ODBC< / SMALL > : PsqlODBC
i OpenLink < SMALL > ODBC< / SMALL > .< / P >
< P > PsqlODBC jest do<64> <6F> czony do <20> r<EFBFBD> de<64> . Wi<57> cej informacji na jego temat
mo<EFBFBD> esz znale<6C> <65> pod adresem: < A href =
"ftp://ftp.PostgreSQL.org/pub/odbc/" > ftp://ftp.PostgreSQL.org/pub/odbc/< / A > . < / P >
< P > Mo<EFBFBD> esz pobra<72> 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<6D> e by<62> pobrany z adresu: < A href =
"http://www.openlinksw.com/" > http://www.openlinksw.com< / A > .
Wsp<73> <70> pracuje ze standardowym oprogramowaniem klienckim < SMALL > ODBC< / SMALL >
wi<77> c w ten spos<6F> b mo<6D> esz korzysta<74> z PostgreSQL < SMALL > ODBC< / SMALL >
dost<73> pnego na ka<6B> dej plaformie kt<6B> r<EFBFBD> wspiera (Win, Mac, Unix, VMS).< / P >
dost<73> pnego na ka<6B> dej plt aformie kt<6B> r<EFBFBD> wspiera (Win, Mac, Unix, VMS).< / P >
< P > Autorzy b<> d<EFBFBD> prawdopodobnie sprzedawa<77> ten produkt osobom kt<6B> re
wymagaj<61> komercyjnego wsparcia, ale wersja darmowa b<> dzie zawsze
dost<73> pna. Wszystkie pytania mo<6D> esz wysy<73> a<EFBFBD> na adres: < A href =
"mailto:postgres95@openlink.co.uk" > postgres95@openlink.co.uk< / A > .< / P >
< P > Sprawd<EFBFBD> tak<61> e rozdzia<69> 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<65> narz<72> dzia pozwalaj<61> ce na dost<73> p do
PostgreSQL przez www?< / H4 >
@@ -577,59 +580,56 @@
przez www mo<6D> esz znale<6C> <65> pod adresem:
< A href = "http://www.webreview.com" > http://www.webreview.com< / A > < / P >
< P > Inny znajduje si<73> 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, <20> wietnym rozwi<77> zaniem jest PHP. Mo<4D> esz
znale<6C> <65> wi<77> cej informacji na ten temat pod adresem
< A href = "http://www.php.net" > http://www.php.net< / A > .< / P >
< P > Wiele os<6F> b w przypadku skomplikowanych rozwi<77> za<7A> uzywa Perl'a i
modu<64> u CGI.pl.< / P >
modu<64> u CGI.pl lub mod_perl .< / P >
< H4 > < A name = "2.3" > 2.3< / A > ) Czy istnieje jakie<69> GUI dla PostgreSQL?
Narz<72> dzie do raportowania? Interfejs dla "embedded query
language"?< / H4 >
< H4 > < A name = "2.3" > 2.3< / A > ) Czy istnieje jakie<69> GUI dla PostgreSQL?< / H4 >
< P > Mamy ca<63> kiem mi<6D> y interfejs graficzny, kt<6B> ry zosta<74> nazwany
< I > pgaccess< / I > i jest on dostarczany jako cz<63> <7A> <EFBFBD> <20> r<EFBFBD> de<64> .
< I > pgaccess< / I > posiada tak<61> e generator raport<72> w. Mo<4D> na go znale<6C> <65>
pod adresem < A href =
"http://www.flex.ro/pgaccess" > http://www.flex.ro/pgaccess< / A > < / P >
< P > Udost<EFBFBD> pnili<EFBFBD> my tak<61> e < I > ecpg< / I > , kt<6B> ry jest "embedded SQL quer y
language interface" dla j<EFBFBD> zyka C.< / P >
< H4 > < A name = "2.4" > 2.4< / A > ) Za pomoc<6F> jakich j<> zyk<79> w programowania
< P > Tak, istnieje kilka interfejs<EFBFBD> w graficznych dla PostgreSQL.
W<EFBFBD> r<EFBFBD> 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<61> e PHPPgAdmin ( http://phppgadmin.sourceforge.net/ ), webow y
interfejs dla PostgreSQL.
< / P >
< P >
Wi<57> cej informacji na ten temat znajduje si<73> 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<6F> jakich j<> zyk<79> w programowania
mo<6D> na si<73> komunikowa<77> z PostgreSQL?< / H4 >
< P > Mamy wsparcie dla:< / P >
< P > Najbardziej popularne j<> zyki posiiadaj<61> w<> asny interfejs dla
PostgreSQL. Sprawd<77> list<73> rozszerze<7A> dla intersuj<75> cego Ciebie j<> zyka
programowania.< / P >
< P > Ze <20> r<EFBFBD> d<EFBFBD> ami PostreSQL dystrubuowane s<> interfejsy dla
nast<73> puj<75> cych j<> zyk<79> 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<73> 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<EFBFBD> ce administracji < / H2 >
< H4 > < A name = "3.1" > 3.1< / A > ) Jak mog<6F> zainstalowa<77> PostgreSQL w innej
lokalizacji ni<6E> < I > /usr/local/pgsql< / I > ?< / H4 >
@@ -677,7 +677,8 @@
< SMALL > SEMMNS< / SMALL > i < SMALL > SEMMNI< / SMALL > j<> dra twojego systemu.< / P >
< P > Niedzia<EFBFBD> aj<EFBFBD> ce semafory mog<6F> spowodowa<77> niepoprawne zamkni<6E> cie
systemu w czasie intensywnego korzystania z bazy.< / P >
systemu w czasie intensywnego korzystania z bazy.< / P >
< P > Je<EFBFBD> li tre<72> <65> b<> <62> du jest inna, mo<6D> e to oznacza<7A> , <20> e obs<62> uga semafor<6F> w
nie zosta<74> a w<> <77> czona do j<> dra wcale. Zobacz PostgreSQL
Administrator's Guide po bardziej szczeg<65> <67> owe informacje o pami<6D> ci
@@ -692,8 +693,7 @@
< I > postmaster'a< / I > ,
< B > oraz< / B > nie umo<6D> liwi si<73> autoryzacji na podstawie adresu host<73> w
modyfikuj<75> c odpowiednio plik
< I > $PGDATA/pg_hba.conf< / I > . To zmiany pozwol<6F> na
po<70> <6F> czenia TCP/IP.< / P >
< I > $PGDATA/pg_hba.conf< / I > . To zmiany pozwol<6F> na po<70> <6F> czenia TCP/IP.< / P >
< H4 > < A name = "3.6" > 3.6< / A > ) Jak powinienem skonfigurowa<77> system baz
danych aby uzyska<6B> lepsz<73> wydajno<6E> <6F> ?< / H4 >
@@ -709,7 +709,7 @@
okre<72> laj<61> cym transakcj<63> - < SMALL > BEGIN WORK/COMMIT< / SMALL > , s<>
traktowane jako pojedyncza transakcja. Rozwa<77> wykonanie kilku
polece<63> /zda<64> SQL w jednym bloku transakcji. To redukuje narzut
powodow any przez transakcj<63> . Przy du<64> ych zmianach w danych, warto
nak<EFBFBD> ad any przez transakcj<63> . Przy du<64> ych zmianach w danych, warto
usun<75> <6E> i stworzy<7A> na nowo indeksy.< / P >
< P > Jest kilka opcji pozwalaj<61> cych na poprawienie wydajno<6E> ci.
@@ -825,19 +825,12 @@
maksymaln<6C> liczb<7A> proces<65> w backendu to obawa o wyczerpanie zasob<6F> w
systemu.< / P >
< P > W wersjach PostgreSQL wcze<7A> niejszych ni<6E> 6.5, maksymalna liczba
backend<6E> w by<62> a ustawiona na 64, a zmiana tej warto<74> ci wymaga
rekompliacji po zmianie sta<74> ej MaxBackendId w pliku
< I > include/storage/sinvaladt.h< / I > .< / P >
< H4 > < A name = "3.9" > 3.9< / A > ) Jakie pliki znajduj<75> si<73> 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<6B> re znajduj<75> si<73> w katalogu z plikami bazy danych?< / H4 >
< P > S<EFBFBD> to tymczasowe pliki utworzone przez executor. Dla przyk<79> adu,
je<6A> li jaka<6B> operacja sortowania jest wymagana do wykonania
< P > Katalog ten zawiera tymczasowe pliki utworzone przez executor. Dla
przyk<EFBFBD> adu, je<6A> li jaka<6B> operacja sortowania jest wymagana do wykonania
< SMALL > ORDER BY,< / SMALL > a samo sortowanie wymaga wi<77> cej miejsca ni<6E>
parat metr backendu
parametr backendu
< I > -S< / I > ustawi<77> do wykorzystania, wtedy tymczasowe pliki s<> u<> ywane
do przechowywania tych danych.< / P >
@@ -846,6 +839,25 @@
poprawnie podczas operacji sortowania. Je<4A> li w danym momencie nie
dzia<69> aj<61> <20> adne procesy backend<6E> w mozesz spokojnie usun<75> <6E> pliki
pg_tempNNN.NN.< / P >
< H4 > < A name = "3.9" > 3.9< / A > ) Dlaczego konieczne jest przy upgradzie
PostgreSQL korzystanie ze skrypt<70> w dump i restore?< / H4 >
< P >
Tw<54> rcy PostgreSQL dokonuj<75> jedynie ma<6D> ych zmian pomi<6D> dzy ma<6D> ymi
upgradami wersji, np z 7.2 do 7.2.1, wtedy upgrade nie wymaga
korzystania z dump i restore. Przy wi<77> kszych zmianach, np. z wersji
7.2 do 7.3, cz<63> sto zmianymaj<61> wp<77> yw na format przechowywanych danych.
Zmiany te s<> na tyle skomplikowane, <20> e nie utrzymujemy zgodo<64> ci z
poprzednimi wersjami PostgreSQL. dump pozwala na wydostanie danych w
takiej postaci, w kt<6B> rej <20> atwe jest ich zaimportowanie do nowszych
wersji bez k<> opotu.
< / P >
< P >
W wydaniach gdzie zmiany nie dotycz<63> formatu danych na dysku, mo<6D> na
wykorzysta<74> skryptu pg_upgrade, do upgradu bez u<> ycia dump/restore.
Dokumentacja do danego wydania zawiera informacj<63> czy mo<6D> liwe jest
u<> ycie pg_upgrade.
< / P >
< HR >
< H2 align = "center" > Pytania dotycz<63> ce u<> ywania< / H2 >
@@ -870,6 +882,15 @@
< SMALL > ORDER BY< / SMALL > , PostgreSQL mo<6D> e wykorzysta<74> jedynie kilka
pierwszych rz<72> d<EFBFBD> w, by<62> mo<6D> e b<> dzie konieczno<6E> <6F> wykonania zapytania do
momentu a<> zostan<61> znalezione po<70> <6F> dane wyniki.< / P >
< P >
Aby otrzyma<6D> losowy rz<72> 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<6F> uzyska<6B> list<73> wszystkich tabel
czy innych rzeczy pod < I > psql< / I > ?< / H4 >
@@ -881,37 +902,53 @@
< I > -E< / I > wtedy po wykonaniu polecenia z backslashem wy<77> wietlane
b<> dzie zapytanie, kt<6B> re w rzeczywisto<74> ci jest wykonywane.< / P >
< H4 > < A name = "4.4" > 4.4< / A > ) Jak usun<75> <6E> kolumn<6D> z tabeli?< / H4 >
< P > Nie mamy zaimplementowanego < SMALL > ALTER TABLE DROP
COLUMN,< / SMALL > ale mo<6D> esz zrobi<62> tak:< / P >
< H4 > < A name = "4.4" > 4.4< / A > ) Jak usun<75> <6E> kolumn<6D> z tabeli lub zmieni<6E>
jej typ?< / H4 >
< P > DROP COLUMNT zosta<74> o dodane w wersji 7.3 przy poleceniu ALTER
TABLE DROP COLUMN. We wcze<7A> <65> iejszych wersjach mo<6D> esz zrobi<62> tak:
< / P >
< PRE >
SELECT ... -- wybierz zawarto<74> <6F> wszystkich kolumn poza t<> jedn<64> kt<6B> rej chcesz si<73> pozby<62>
BEGIN;
LOCAL TABLE old_table;
SELECT ... -- wybierz wszystkie kolumny poza t<> jedn<64> kt<6B> rej chcesz si<73> pozby<62>
INTO TABLE new_table
FROM old_table;
DROP TABLE old_table;
ALTER TABLE new_table RENAME TO old_table;
< / PRE >
< P >
Aby zmieni<6E> typ danych kolumny mo<6D> esz zrobi<62> 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<72> du,
tabeli i bazy danych?< / H4 >
< P > Oto wszystkie ograniczenia:< / P >
< PRE >
Maksymalny rozmiar dla bazdy danych? nieograniczony ( istniej<65> bazy danych o wielko<6B> ci 500 GB databases )
Maksymalny rozmiar dla tabeli? 16 TB
Maksymalny rozmiar dla rz<EFBFBD> du ? nieograniczony w 7.1 i p<> <70> niejszych
Maksymalny rozmiar pola? 1 GB w 7.1 and later
Maksymalny rozmiar dla bazdy danych? nieograniczony ( istniej<65>
bazy danych o wielko<6B> ci 32 TB databases )
Maksymalny rozmiar dla tabeli ? 32 TB
Maksymalny rozmiar dla rz<72> du? 1.6 TB
Maksymalny rozmiar pola? 1 GB
Maksymalna liczba rz<72> d<EFBFBD> w w tabeli? nieograniczona
Maksymalna liczba kolumn w tabeli? 250-1600 w zale<6C> ono<6E> ci od typ<79> w kolumn
Makasymalna liczba indeks<6B> w na tabeli? nieograniczona
Maksymalna liczba kolumn w tabeli? 250-1600 w zale<6C> ono<6E> ci od typ<79> w kolumn
Makasymalna liczba indeks<6B> w na tabeli? nieograniczona
< / PRE >
Oczywi<77> cie "nieograniczony" nie jest prawd<77> tak do ko<6B> ca, istniej<65>
ograniczenia wynikaj<61> ce z dost<73> pnego miejsca na dysku, pami<6D> ci/swapa.
Kiedy wielko<6B> ci te b<> d<EFBFBD> bardzo du<64> e mo<6D> e odbi<62> si<73> to na wydajno<6E> 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<64> ych plik<69> w. Du<44> e tabele s<> przechowywane
jako pliki o rozmiarze 1 GB, wi<77> c ograniczenia co do wielko<6B> ci plik<69> w
narzucone przez system plik<69> w nie s<> istotne.< / P >
@@ -957,6 +994,9 @@
< P > Indeksy nie powoduj<75> du<64> ego narzutu na zajmowane miejsce,
ale zawieraj<61> pewne dane,
wi<77> c w pewnych przypadkach moga by<62> ca<63> kiem du<64> e.< / P >
< P > NULLe s<> przechowywane jako mapy bitowe, wi<77> c u<> ywaj<61> bardzo ma<6D> o
miejsca.
< / P >
< H4 > < A name = "4.7" > 4.7< / A > ) Jak mog<6F> sprawdzi<7A> jakie tabele, klucze,
bazy danych i u<> ytkownicy s<> utworzeni?< / H4 >
@@ -996,17 +1036,39 @@
nast<73> puje sortowanie jest zazwyczaj szybsze ni<6E> wyszukiwanie za
pomoc<6F> indeksu na du<64> ej tabeli.< / P >
Jakkolwiek < SMALL > LIMIT< / SMALL > w po<70> <6F> czeniu z < SMALL > ORDER BY< / SMALL >
cz<63> sto b<> dzie wykorzystywa<77> indeks<EFBFBD> w poniew<65> z jedynie ma<6D> a cz<63> <7A> c z
tabeli jest zwracana.
cz<63> sto b<> dzie wykorzystywa<77> indeksy poniewa <EFBFBD> jedynie ma<6D> a cz<63> <7A> <EFBFBD> z
tabeli jest zwracana. W rzeczywisto<74> ci, chocia<69> MAX() i MIN() nie
u<> ywaj<61> indeks<6B> w, mo<6D> liwe jest aby zwr<77> ci<63> te warto<74> ci u<> ywaj<61> c
indeks<6B> w poprzez u<> ycie ORDER BY i LIMIT.
< / P >
< PRE >
SELECT col
FROM tab
ORDER BY col [ DESC ]
LIMIT 1;
< / PRE >
< P >
Je<4A> li uwa<77> asz, <20> e optimizer myli si<73> wybieraj<61> c sequential scan, u<> yj
SET enable_seqscan TO 'off' i uruchom testy aby sprawdzi<7A> czy wtym
wypadku zapytanie b<> dzie szybciej wykonywane.
< P > Kiedy u<> ywa si<73> operator<6F> w dopasuj<75> cych takich jak
< SMALL > LIKE< / SMALL > lub < I > ~< / I > , indeksy b<> d<EFBFBD> u<> ywane jedynie je<EFBFBD> li
pocz<EFBFBD> tek wyszukiwania jest oparty na pocz<63> tku <20> a<EFBFBD> cucha tekstu.
Dlatego, aby u<> ywac indeks<6B> w,
dopasowania operatorem < SMALL > LIKE< / SMALL > nie mog<6F> si<73> zaczyna<6E>
< I > %< / I > , a dopasowania operatorem < I > ~< / I > (dopasowania regularne)
musz<EFBFBD> si<73> zaczyna<6E> znakiem specjalnym < I > ^ < / I > .< / P >
< SMALL > LIKE< / SMALL > lub < I > ~< / I > , indeksy b<> d<EFBFBD> u<> ywane jedynie w
pewnych wypadkach:< / P >
< UL >
< LI > Pocz<EFBFBD> tek wyszukiwania jest oparty na pocz<63> tku <20> a<EFBFBD> cucha tekstu.
< UL >
< LI > wzorce < SMALL > LIKE< / SMALL > nie mog<6F> si<73> zaczyna<6E> < I > % < / I >
< LI > dopasowania operatorem < I > ~< / I > (dopasowania regularne)
musz<73> si<73> zaczyna<6E> znakiem specjalnym < I > ^< / I > .< / P >
< / UL >
< LI > Pocz<EFBFBD> tek wyszukiwania nie mo<6D> e si<73> zaczyna<6E> od klas znak<61> 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<62> uzyte przy wykonywaniu initdb
< / UL >
< H4 > < A name = "4.9" > 4.9< / A > ) Jak mog<6F> sprawdzi<7A> w jakis spos<6F> b "query
optimizer" wykonuje moje zapytanie?< / H4 >
@@ -1051,15 +1113,14 @@
< H4 > < A name = "4.12" > 4.12< / A > ) Jak mog<6F> u<> ywa<77> wyra<72> e<EFBFBD> regularnych w
zapytaniach i zapyta<74> case-insensitive w wyra<72> eniach
regularnych?
j ak korzysta<74> z indeks<6B> w dla zapyta<74> case-insensitive?< / H4 >
J ak korzysta<74> z indeks<6B> w dla zapyta<74> case-insensitive?< / H4 >
< P > Operator < I > ~< / I > moze by<62> wykorzystywany do wyszukiwania za
pomoc<6F> wyra<72> e<EFBFBD> regularnych, a
< I > ~*< / I > do wyszukiwania case-insensitive z wyra<72> eniami
regularnymi.
Wariant case-insensitive dla < SMALL > LIKE< / SMALL > zosta<74> nazwany
< SMALL > ILIKE< / SMALL > i jest dost<73> pny w PostgreSQL 7.1 i p<> <70> niejszych
wersjach.< / P >
< SMALL > ILIKE< / SMALL > .< / P >
< P > Por<EFBFBD> wnania case-insensitive s<> zazwyczaj wykonywane w nast<73> puj<75> cy
spos<6F> b:< / P >
@@ -1087,31 +1148,41 @@
< PRE >
Type Nazwa wewn<77> trzna Uwagi
--------------------------------------------------
"char" char 1 znak
CHAR(# ) bpchar wype<70> niane pustymi znakami do podanej d<> ugo<67> ci
VARCHAR(#) varchar rozmiar okre<72> la maksymaln<6C> d<> ugo<67> <6F> , nie ma tutaj wype<70> niania
VARCHAR(n) var char rozmiar okre<72> la maksymaln<6C> d<> ugo<67> <6F> , nie ma tutaj wype<70> niania
CHAR(n ) bpchar wype<70> niane pustymi znakami do podanej d<> ugo<67> ci
TEXT text bez limitu na d<> ugo<67> <6F> <20> a<EFBFBD> cucha
BYTEA bytea zmiennej d<> ugo<67> ci tablica bajt<6A> w (null-byte safe)
"char" char 1 znak
< / PRE >
< P > Je<EFBFBD> li b<> dziesz przegl<67> da<64> katalogi systemowe lub komunikaty o
b<> <62> dach cz<63> sto spotkasz si<73> z podanymi powy<77> ej nazwami
wewn<77> trznymi.< / P >
< P > Ostatni e cztery typy powy<77> ej to tzw typy "varlena" (np. pierwsze
< P > Pierwsz e cztery typy powy<77> ej to tzw typy "varlena" (np. pierwsze
cztery bajty na dysku to d<> ugo<67> <6F> , po kt<6B> rych jest data). Dlatego
faktyczna d<> ugo<67> c takiego <20> a<EFBFBD> cucha jest troch<63> wi<77> ksza ni<6E>
zadeklarowany rozmiar. Te typy tak<61> e podlegaj<61> kompresji lub mog<6F> by<62>
przechowywane out-of-line jako < SMALL > TOAST< / SMALL > , wi<77> c faktyczne
zu<7A> ycie miejsca na dysku mo<6D> e by<62> mniejsze ni<6E> oczekiwane.< / P >
< P > < SMALL> CHAR()< / SMALL > jast najlepszym typem do przechowywania
<20> a<EFBFBD> cuch<63> w o tej samej d<> ugo<67> ci. < SMALL > VARCHAR()< / SMALL > jest
< SMALL > VAR CHAR(n )< / SMALL > jest
najodpowiedniejszy do przechowywania <20> a<EFBFBD> cuch<63> w o r<> <72> nej d<> ugo<67> ci
ale okre<72> la on maksymaln<6C> jego d<> ugo<67> <6F> . < SMALL > TEXT< / SMALL > jest
najlepszy dla <20> a<EFBFBD> cuch<63> w o dowolnej d<> ugo<67> ci, nie przekraczaj<61> cej 1GB.
< SMALL > BYTEA < / SMALL > s<EFBFBD> u<EFBFBD> y do przechowywania danych binarnych ,
w szczeg<65> lno<6E> ci dla danych zawieraj<61> cych < SMALL > NULL< / SMALL > bajty .< / P >
ale okre<72> la on maksymaln<6C> jego d<> ugo<67> <6F> .
< SMALL > TEXT < / SMALL > jest najlepszy dla <20> a<EFBFBD> cuch<63> w o dowolnej d<> ugo<67> ci ,
nie przekraczaj<61> cej 1GB .< / P >
< P >
< SMALL > CHAR(n)< / SMALL > jast najlepszym typem do przechowywania
<20> a<EFBFBD> cuch<63> w o tej samej d<> ugo<67> ci. CHAR(n) wype<70> nia dane do <20> adanej
d<> ugo<67> ci, podczas gdy VARCHAR(n) przechowuje jedynie dane
dostarczone.
< SMALL > BYTEA< / SMALL > s<> u<EFBFBD> y do przechowywania danych binarnych,
w szczeg<65> lno<6E> ci dla danych zawieraj<61> cych < SMALL > NULL< / SMALL > bajty.
Wszystkie typy opisane tutaj maja podobne charakterystyki je<6A> li
chodzi o wydajno<6E> <6F> .< / P >
< H4 > < A name = "4.15.1" > 4.15.1< / A > ) Jak mog<6F> utworzy<7A> pole kt<6B> re samo
zwi<77> ksza swoj<6F> warto<74> <6F> ?< / 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<53> d si<73> bior<6F> luki w numerowaniu kolumny tabeli
Sk<53> d si<73> bior<6F> luki w numerowaniu kolumny tabeli
sekwancjami/SERIALem?< / H4 >
< P > Aby poprawi<77> zbie<69> no<6E> <6F> (concurrency), warto<74> 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<77> zaniem problemu
unikalnych numer<65> w rz<72> d<EFBFBD> w. Ka<4B> dy rz<72> d tworzony przez PostgreSQL
@@ -1274,15 +1344,15 @@ BYTEA bytea zmiennej d
< / UL >
< P > List<EFBFBD> termin<69> w zwi<77> zanych z bazami danych mo<6D> esz znale<6C> <65> 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<53> d bierze si<73> ten b<> <62> d < I > "ERROR:
Memory exhausted in AllocSetAlloc()"< / I > ?< / H4 >
< P > Je<EFBFBD> li u<> ywasz wersji starszej ni<6E> 7.1, upgrade mo<6D> e rozwi<77> za<7A> ten
problem. Jest tak<61> e mozliwe, <20> e po prostu wyczerpa<70> a Ci si<73> pami<6D> <69>
wirtualna (virtual memory) w systemie lub Tw<54> j kernel ma zbyt nisko
< P >
Prawdopodobnie wyczerpa<70> a Ci si<73> pami<6D> <69> wirtualna (virtual memory)
w systemie lub Tw<54> j kernel ma zbyt nisko
ustawione limity dla pewnych zasob<6F> w. Spr<70> buj wykona<6E> nast<73> puj<75> 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<61> ce
< CODE > < SMALL > IN< / SMALL > < / CODE > sa takie wolne?< / H4 >
< P > Obecnie <20> <> czymy podzapytania w outer queries poprzez sekwencyjne
przeszukiwanie wynik<69> w podzapytania dla ka<6B> dego rz<72> du z outer query.
Mo<EFBFBD> na to omin<69> <6E> zast<73> puj<75> c < CODE > IN< / CODE > przez
< P > W wersjach wcze<7A> niejszych ni<6E> 7.4 <20> <> czymy podzapytania w outer queries
poprzez sekwencyjne przeszukiwanie wynik<69> w podzapytania dla ka<6B> dego rz<72> du
z outer query. Je<4A> li podzapytanie zwraca jedynie kilka rz<72> d<EFBFBD> w a
zewn<77> trzne zapytanie zwraca ich wiele, IN jest najszybsze.
Aby przyspieszy<7A> inne zapytania mo<6D> na zast<73> pi<70> < CODE > IN< / CODE > przez
< CODE > EXISTS< / CODE > :< / P >
< PRE >
< CODE > SELECT *
FROM tab
WHERE col1 IN (SELECT col2 FROM TAB2 )
WHERE col IN (SELECT sub col FROM subtab )
< / CODE >
< / PRE >
na:
< PRE >
< CODE > SELECT *
FROM tab
WHERE EXISTS (SELECT col2 FROM TAB2 WHERE col1 = col2 )
WHERE EXISTS (SELECT sub col FROM subtab WHERE sub col = col)
< / CODE >
< / PRE >
Mamy zamiar poprawi<77> to ograniczenie w przysz<73> ych wydaniach.
< P >
Aby to rozwi<77> zanie by<62> o szybkie, subcol powinna by<62> kolumn<6D>
indeksowan<61> .
< / P >
< P >
W wersji 7.4 i p<> <70> niejszych, IN w rzeczywisto<74> ci u<> ywa tej samej
wyrafinowanej techniki <20> <> czenia jak normalne zapytania i jest
preferowane nad u<> ywaniem EXISTS.
< / P >
< H4 > < A name = "4.23" > 4.23< / A > ) Jak wykona<6E> "outer join"?< / H4 >
< P > PostgreSQL 7.1 i p<> <70> niejsze wersje maj<61> zaimplementowane outer join
wykorzystuj<75> c standardow<6F> sk<73> adnie SQL. Poni<6E> ej dwa przyk<79> ady:< / P >
< P > PostgreSQL ma zaimplementowane outer join
wykorzystuj<75> c standardow<6F> sk<73> adni<EFBFBD> SQL. Poni<6E> ej dwa przyk<79> ady:< / P >
< PRE >
SELECT *
@@ -1367,7 +1446,7 @@ BYTEA bytea zmiennej d
< / PRE >
< P > Te dwa identyczne zapytania <20> <> cz<63> kolumn<6D> t1.col z kolumn<6D> t2.col,
ale tak<61> e zwr<77> c<EFBFBD> niepo<70> <6F> czone rz<72> dy w t1 (te kt<6B> re nie pasuj<75> w t2).
ale tak<61> e zwr<77> c<EFBFBD> niepo<70> <6F> czone rz<72> dy w t1 (te, kt<6B> re nie pasuj<75> w t2).
< SMALL > RIGHT< / SMALL > join doda<64> by niepo<70> <6F> czone rz<72> dy z tabeli t2.
< SMALL > FULL< / SMALL > join zwr<77> ci<63> by rz<72> dy plus dodatkowo wszystkie
rz<72> 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<6B> ca jasne jak zapytanie pomi<6D> dzy
r<> <72> nymi bazami danych powinno si<73> zachowywa<77> .< / P >
< P > Oczywi<EFBFBD> cie klient mo<6D> e <20> <> czy<7A> si<73> z r<> <72> nymi bazami danych i <20> <> czy<7A>
informacj<EFBFBD> w ten spos<6F> b uzyskan<61> .< / P >
< P > < I > contrib/dblink< / I > pozwala na wykonywanie zapyta<74> poprzez r<> <72> ne
bazy danych wywo<77> uj<75> c odpowiednie funkcje. Oczywi<77> cie klient mo<6D> e <20> <> czy<7A>
si<73> z r<> <72> nymi bazami danych i <20> <> czy<7A> informacj<63> w ten spos<6F> b uzyskan<61>
po stronie klienta.< / P >
< H4 > < A name = "4.25" > 4.25< / A > ) Jak zwr<77> ci<63> w funkcji wiele rz<72> d<EFBFBD> w lub
kolumn?< / H4 >
< P > Mo<EFBFBD> esz zwraca<EFBFBD> zbiory z funkcji PL/pgSQL u<> ywaj<61> c
< i > refcursor s< / i > . Zobacz < a
href = "http://developer.postgresql.org/docs/postgres/plpgsql-cursors.html" >
http://developer.postgresql.org/docs/postgres/plpgsql-cursors.html,< / a >
sekcj<63> 23.7.3.3.< / P >
< P > Mo<EFBFBD> esz w <20> atwy spos<6F> b zwraca<63> wiele rz<72> d<EFBFBD> w lub kolumn u<> ywaj<61> c
funkcji z: < A HREF = "http://techdocs.postgresql.org/guides/SetReturningFunctions" > http://techdocs.postgresql.org/guides/SetReturningFunction s< / A > .
< H4 > < A name = "4.26" > 4.26< / A > ) Dlaczego nie mog<6F> w spos<6F> b pewny
tworzy<7A> /usuwa<77> tabel tymczasowych w funkcjach PL/PgSQL?< / H4 >
< P >
PL/PgSQL przechowuje w cache zawarto<74> <6F> funkcji, niepo<70> <6F> danym efektem tego
jest to, <20> e gdy taka funkcja korzysta z tabel tymczasowych, kt<6B> re s<>
p<> <70> niej kasowane i odtwarzane, a funkcja wywo<77> ywana jest ponownie,jej
wywo<77> anie nie powiedzie si<73> poniewa<77> cachowana funkcja wci<63> <69> b<> dzie
wskazywa<77> na stara tablic<69> tymczasow<6F> . Rozwi<77> zaniem tego problemu jest
u<> ywanie EXECUTE aby korzysta<74> z tabel tymczasowych w PL/PgSQL. To
spowoduje, <20> e zapytanie b<> dzie parsowane przy ka<6B> dym wywo<77> aniu
funkcji.
< / P >
< H4 > < A name = "4.27" > 4.27) Jakie s<> mo<6D> liwo<77> ci replikacji w PostgreSQL?< / H4 >
< P >
Jest kilka opcji aby stosowa<77> replikacj<63> typu master/slave. Ten typ
pozwala jedynie masterowi na dokonywanie zmian w bazie danych, a
slave mo<6D> e jedynie te zmiany odczytywa<77> . Na stronie
< A
HREF = "http://gborg.PostgreSQL.org/genpage?replication_research" > http://gborg.PostgreSQL.org/genpage?replication_research< / A >
znajduje si<73> ich lista. Replikacja typu multi-master jest w trakcie
prac, opis projektu znajduje si<73> 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<6D> liwo<77> ci szyfrowania oferuje
PostgreSQL?< / H4 >
< P >
< UL >
< LI > contrib/pgcrypto zawiera wiele funkcji za pomoc<6F> , kt<6B> rych mo<6D> emy u<> ywa<77>
kryptografii w zapytaniach SQL.
< LI > Aby szyfrowa<77> transmisj<73> od klienta do serwera, ten musi mie<69>
ustawion<6F> opcj<63> ssl na true w pliku postgresql.conf, odpowiedni
wpis host lub hostssl musi wyst<73> powa<77> w pliku pg_hba.conf, oraz
sslmode nie mo<6D> e by<62> wy<77> <79> czone w kliencie. (Warto zwr<77> ci<63> uwag<61> , <20> e
mo<6D> liwe jest tak<61> e u<> ywanie transport<72> w szyfruj<75> c<EFBFBD> w przez strony
trzecie, takie jak stunnel lub ssh, poza natywnym wsparciem dla SSL
przez PostgreSQL).
< LI > Has<EFBFBD> a u<> ytkownik<69> w bazy danych s<> automatycznie szyfrowane od
wersji 7.3. W poprzednich wersjach, nale<6C> y t<> funkcjonalno<6E> <6F> poprzez
w<> <77> czenie opcji PASSWORD_ENCRYPTION w postgresql.conf.
< LI > Serwer mo<6D> e dzia<69> a<EFBFBD> u<> ywaj<61> c szyfrowanego systemu plik<69> w.
< / UL >
< / P >
< H2 align = "center" > Rozwijanie PostgreSQL< / H2 >
< H4 > < A name = "5.1" > 5.1< / A > ) Napisa<73> em w<> asn<73> funkcj<63> . Kiedy u<> yj<79> jej
@@ -1432,8 +1555,12 @@ BYTEA bytea zmiennej d
< H4 > < A name = "5.3" > 5.3< / A > ) Jak napisa<73> funkcj<63> C zwracaj<61> c<EFBFBD> krotk<74>
(tuple)?< / H4 >
< P > To wymaga wysi<73> ku tak olbrzymiego, <20> e nawet autorzy nigdy tego nie
prubowali, chocia<69> z zalo<6C> e<EFBFBD> wynika, <20> e jest to mo<6D> liwe.< / P >
< P >
W wersjach PostgreSQL od numeru 7.3, funckje zwracaj<61> ce tabele s<> w
p<> lni wspierane w C, PL/PgSQL i SQL. Sprawd<77> w Programmer's Guide aby
uzyska<6B> wi<77> cej informacji. Przyk<79> ad funkcji napisanej w C zwracaj<61> cej
tabel<65> zosta<74> umieszczony w < I > contrib/tablefunc< / I > .
< / P >
< H4 > < A name = "5.4" > 5.4< / A > ) Zmieni<6E> em plik <20> r<EFBFBD> d<EFBFBD> owy. Dlaczego po
rekompilacji nie wida<64> zmiany?< / H4 >
@@ -1443,6 +1570,8 @@ BYTEA bytea zmiennej d
< I > make clean< / I > , a nast<73> pnie ponownie < I > make< / I > .
Je<4A> li u<> ywasz < SMALL > GCC< / SMALL > mo<6D> esz u<> y<EFBFBD> opcji
< I > --enable-depend< / I > przy wykonywaniu < I > configure< / I > aby
kompilator m<> g<EFBFBD> okre<72> li<6C> zale<6C> no<6E> ci samodzielnie.
< / P >
< / BODY >
< / HTML >