From 5a1d35ce5c25f3879be6b8176cab0dba36e77ba0 Mon Sep 17 00:00:00 2001 From: Magnus Hagander Date: Mon, 15 Sep 2008 08:50:09 +0000 Subject: [PATCH] Polish and Turkish FAQ also needed converting to UTF8 --- doc/src/FAQ/FAQ_polish.html | 1608 +++++++++++++++++----------------- doc/src/FAQ/FAQ_turkish.html | 1354 ++++++++++++++-------------- 2 files changed, 1481 insertions(+), 1481 deletions(-) diff --git a/doc/src/FAQ/FAQ_polish.html b/doc/src/FAQ/FAQ_polish.html index 2fdc4a69915..b93d4ddaa5a 100644 --- a/doc/src/FAQ/FAQ_polish.html +++ b/doc/src/FAQ/FAQ_polish.html @@ -6,7 +6,7 @@ - + PostgreSQL FAQ @@ -17,199 +17,199 @@

Ostatnia aktualizacja: Sobota Luty 7 22:16:21 EST 2004

-

Ostatnia aktualizacja t³umaczenia: Pi±tek Marzec 5 19:31:12 EST 2004

+

Ostatnia aktualizacja tłumaczenia: Piątek Marzec 5 19:31:12 EST 2004

Obecny maintainer: Bruce Momjian (pgman@candle.pha.pa.us)

-

T³umaczenie: Marcin Mazurek (TÅ‚umaczenie: Marcin Mazurek (m.mazurek@netsync.pl)

-

Najbardziej aktualn± wersjê tego dokumentu mo¿na znale¼æ pod +

Najbardziej aktualną wersję tego dokumentu można znaleźć pod adresem: http://www.PostgreSQL.org/docs/faqs/FAQ.html.

-

Odpowiedzi na pytania dotycz±ce konkretnych systemów operacyjnych - mo¿na znale¼æ pod adresem: +

Odpowiedzi na pytania dotyczące konkretnych systemów operacyjnych + można znaleźć pod adresem: http://www.PostgreSQL.org/docs/index.html.


-

Pytania ogólne

- 1.1) Co to jest PostgreSQL? Jak to wymawiaæ?
- 1.2) Jak± licencj± chroniony jest PostgreSQL?
- 1.3) Na jakich systemach Unixowych dzia³a +

Pytania ogólne

+ 1.1) Co to jest PostgreSQL? Jak to wymawiać?
+ 1.2) JakÄ… licencjÄ… chroniony jest PostgreSQL?
+ 1.3) Na jakich systemach Unixowych działa PostreSQL?
- 1.4) Na jakich nie-Unixowych systemach dzia³a + 1.4) Na jakich nie-Unixowych systemach dziaÅ‚a PostgreSQL?
- 1.5) Sk±d mogê ¶ci±gn±æ PostgreSQL?
- 1.6) Gdzie mo¿na szukaæ wsparcia technicznego?
- 1.7) Jaka jest ostatnia dostêpna wersja?
- 1.8) Jaka dokumentacja jest dostêpna?
- 1.9) Gdzie mogê znale¼æ informacjê o znanych - b³êdach czy brakuj±cych rozwi±zanich?
- 1.10) Jak mogê siê nauczyæ SQL?
- 1.11) Czy PostgreSQL ma rozwi±zany problem Y2K?
- 1.12) Jak mogê siê przy³±czyæ do grupy osób - bezpo¶rednio pracuj±cych nad rozwojem PostgreSQL?
- 1.13) Jak mogê zg³aszaæ b³êdy?
- 1.14) Jak mo¿na porównaæ PostgreSQL w stosunku + 1.5) SkÄ…d mogÄ™ Å›ciÄ…gnąć PostgreSQL?
+ 1.6) Gdzie można szukać wsparcia technicznego?
+ 1.7) Jaka jest ostatnia dostępna wersja?
+ 1.8) Jaka dokumentacja jest dostępna?
+ 1.9) Gdzie mogę znaleźć informację o znanych + błędach czy brakujących rozwiązanich?
+ 1.10) Jak mogę się nauczyć SQL?
+ 1.11) Czy PostgreSQL ma rozwiÄ…zany problem Y2K?
+ 1.12) Jak mogę się przyłączyć do grupy osób + bezpośrednio pracujących nad rozwojem PostgreSQL?
+ 1.13) Jak mogę zgłaszać błędy?
+ 1.14) Jak można porównać PostgreSQL w stosunku do innych DBMS?
- 1.15) W jaki sposób mogê wesprzeæ finansowo + 1.15) W jaki sposób mogÄ™ wesprzeć finansowo PostgreSQL?
-

Pytania u¿ytkowników

- 2.1) Czy s± jakie¶ driwery ODBC dla +

Pytania użytkowników

+ 2.1) Czy sÄ… jakieÅ› driwery ODBC dla PostgreSQL?
- 2.2) Jakie istniej± narzêdzia pozwalaj±ce na dostêp do + 2.2) Jakie istniejÄ… narzÄ™dzia pozwalajÄ…ce na dostÄ™p do PostgreSQL przez www?
- 2.3) Czy istnieje jakie¶ GUI dla PostgreSQL?
- 2.4) Za pomoc± jakich jêzyków programowania mo¿na - siê komunikowaæ z PostgreSQL?
+ 2.3) Czy istnieje jakieÅ› GUI dla PostgreSQL?
+ 2.4) Za pomocą jakich języków programowania można + się komunikować z PostgreSQL?
-

Pytania dotycz±ce administracji

- 3.1) Jak mogê zainstalowaæ PostgreSQL w innej - lokalizacji ni¿ /usr/local/pgsql?
+

Pytania dotyczÄ…ce administracji

+ 3.1) Jak mogę zainstalować PostgreSQL w innej + lokalizacji niż /usr/local/pgsql?
3.2) Podczas startu postmaster'a, - otrzymujê komunikat: + otrzymujÄ™ komunikat: Bad System Call lub "core dumped". Dlaczego?
3.3) Podczas startu postmaster'a, - otrzymujê komunikat o b³êdzie: IpcMemoryCreate. Dlaczego?
+ otrzymuję komunikat o błędzie: IpcMemoryCreate. Dlaczego?
3.4) Podczas startu postmaster'a, - otrzymujê komunikat o b³êdzie: IpcSemaphoreCreate. Dlaczego?
- 3.5) W jaki sposób mogê kontrolowaæ po³±czenia z - innych hostów?
- 3.6) Jak powinienem skonfigurowaæ system baz - danych aby uzyskaæ lepsz± wydajno¶æ?
- 3.7) Jakie s± mo¿liwo¶ci wyszukiwania b³êdów?
- 3.8) Sk±d siê bierze komunikat: "Sorry, too many - clients" podczas próby po³±czenia siê z baz± danych?
- 3.9) Jakie pliki znajduj± siê w pg_temp?
+ otrzymuję komunikat o błędzie: IpcSemaphoreCreate. Dlaczego?
+ 3.5) W jaki sposób mogę kontrolować połączenia z + innych hostów?
+ 3.6) Jak powinienem skonfigurować system baz + danych aby uzyskać lepszą wydajność?
+ 3.7) Jakie są możliwości wyszukiwania błędów?
+ 3.8) Skąd się bierze komunikat: "Sorry, too many + clients" podczas próby połączenia się z bazą danych?
+ 3.9) Jakie pliki znajdujÄ… siÄ™ w pg_temp?
3.10) Dlaczego konieczne jest przy upgradzie - PostgreSQL korzystanie ze skryptów dump i restore?
+ PostgreSQL korzystanie ze skryptów dump i restore?
-

Pytania dotycz±ce u¿ytkowania

- 4.1) Jaka jest ró¿nica pomiêdzy kursorami - binarnymi (binary cursors) i zwyk³ymi kursorami (normal cursors)?
- 4.2) Jak mogê pobraæ za pomoc± SELECT - jedynie kilka pierwszych wyników zapytania?
- 4.3) Jak mogê uzyskaæ listê wszystkich tabel czy +

Pytania dotyczące użytkowania

+ 4.1) Jaka jest różnica pomiędzy kursorami + binarnymi (binary cursors) i zwykłymi kursorami (normal cursors)?
+ 4.2) Jak mogę pobrać za pomocą SELECT + jedynie kilka pierwszych wyników zapytania?
+ 4.3) Jak mogę uzyskać listę wszystkich tabel czy innych rzeczy pod psql?
- 4.4) Jak usun±æ kolumnê z tabeli lub zmieniæ jej + 4.4) Jak usunąć kolumnÄ™ z tabeli lub zmienić jej typ?
- 4.5) Jaki jest maksymalny rozmiar dla rzêdu, + 4.5) Jaki jest maksymalny rozmiar dla rzÄ™du, tabeli i bazy danych?
- 4.6) Jak du¿o miejsca w bazie danych jest - potrzebne aby przechowaæ dane ze zwyczajnego pliku tekstowego?
- 4.7) Jak mogê sprawdziæ jakie tabele, klucze, - bazy danych i u¿ytkownicy s± utworzeni?
- 4.8) Moje zapytania s± wolne lub nie u¿ywaj± + 4.6) Jak dużo miejsca w bazie danych jest + potrzebne aby przechować dane ze zwyczajnego pliku tekstowego?
+ 4.7) Jak mogę sprawdzić jakie tabele, klucze, + bazy danych i użytkownicy są utworzeni?
+ 4.8) Moje zapytania są wolne lub nie używają kluczy. Dlaczego?
- 4.9) Jak mogê sprawdziæ w jakis sposób "query + 4.9) Jak mogÄ™ sprawdzić w jakis sposób "query optimizer" wykonuje moje zapytanie?
4.10) Co to jest "R-tree index"?
4.11) Co to jest "Genetic Query Optimizer"?
- 4.12) 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?
- 4.13) Jak sprawdziæ w zapytaniu czy pole ma - warto¶æ NULL?
- 4.14) Jaka jest ró¿nica pomiêdzy ró¿nymi typami + 4.12) 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?
+ 4.13) Jak sprawdzić w zapytaniu czy pole ma + wartość NULL?
+ 4.14) Jaka jest różnica pomiędzy różnymi typami tekstowymi (character types)?
- 4.15.1) Jak mogê utworzyæ pole typu int, które samo - zwiêksza swoj± warto¶æ?
- 4.15.2) Jak pobraæ warto¶æ pola typu + 4.15.1) Jak mogÄ™ utworzyć pole typu int, które samo + zwiÄ™ksza swojÄ… wartość?
+ 4.15.2) Jak pobrać wartość pola typu SERIAL po wykonaniu insert'u?
- 4.15.3) Czy u¿ycie currval() i + 4.15.3) Czy użycie currval() i nextval() nie doprowadzi do "race condition" z innymi - u¿ytkownikami?
- 4.15.4) Dlaczego numery sekwencji nie s± - ponownie u¿ywane przy przerwaniu transakcji? - Sk±d siê bior± luki w numerowaniu kolumny tabeli sekwencjami/SERIALem?
+ użytkownikami?
+ 4.15.4) Dlaczego numery sekwencji nie są + ponownie używane przy przerwaniu transakcji? + Skąd się biorą luki w numerowaniu kolumny tabeli sekwencjami/SERIALem?
4.16) Co to jest OID? Co to jest TID?
- 4.17) Jakie jest znaczenie niektórych terminów w + 4.17) Jakie jest znaczenie niektórych terminów w PostgreSQL?
- 4.18) Sk±d bierze siê ten b³±d: "ERROR: Memory + 4.18) SkÄ…d bierze siÄ™ ten błąd: "ERROR: Memory exhausted in AllocSetAlloc()"?
- 4.19) Jak sprawdziæ jakiej wersji PostgreSQL - u¿ywam?
- 4.20) Dlaczego operacje, które wykonujê na - du¿ych obiektach "large-object" zwracaj± komunikat: + 4.19) Jak sprawdzić jakiej wersji PostgreSQL + używam?
+ 4.20) Dlaczego operacje, które wykonuję na + dużych obiektach "large-object" zwracają komunikat: "invalid large obj descriptor"?
- 4.21) Jak stworzyæ kolumnê której domy¶ln± - warto¶ci± bêdzie bie¿±cy czas?
- 4.22) Dlaczego zapytania u¿ywaj±ce - IN s± takie wolne?
- 4.23) Jak wykonaæ "outer join"?
- 4.24) Jak wykonywaæ zapytanie u¿ywaj±ce kilku - baz danych jednocze¶nie?
- 4.25) Jak zwróciæ w funkcji wiele rzêdów lub + 4.21) Jak stworzyć kolumnÄ™ której domyÅ›lnÄ… + wartoÅ›ciÄ… bÄ™dzie bieżący czas?
+ 4.22) Dlaczego zapytania używające + IN są takie wolne?
+ 4.23) Jak wykonać "outer join"?
+ 4.24) Jak wykonywać zapytanie używające kilku + baz danych jednocześnie?
+ 4.25) Jak zwrócić w funkcji wiele rzędów lub kolumn?
- 4.26) Dlaczego nie mogê w sposób pewny - tworzyæ/usuwaæ tabel tymczasowych w funkcjach PL/PgSQL?
- 4.27) Jakie s± mo¿liwo¶ci replikacji w + 4.26) Dlaczego nie mogÄ™ w sposób pewny + tworzyć/usuwać tabel tymczasowych w funkcjach PL/PgSQL?
+ 4.27) Jakie są możliwości replikacji w PostgreSQL?
- 4.28) Jakie mo¿liwo¶ci szyfrowania oferuje + 4.28) Jakie możliwoÅ›ci szyfrowania oferuje PostgreSQL?

Rozwijanie PostgreSQL

- 5.1) Napisa³em w³asn± funkcjê. Kiedy u¿yjê jej w - psql, program zrzuca pamiêæ (dump core)?
- 5.2) Jak mogê dodaæ/zg³osiæ nowe typy czy funkcje + 5.1) NapisaÅ‚em wÅ‚asnÄ… funkcjÄ™. Kiedy użyjÄ™ jej w + psql, program zrzuca pamięć (dump core)?
+ 5.2) Jak mogę dodać/zgłosić nowe typy czy funkcje do PostgreSQL?
- 5.3) Jak napisaæ funkcjê C zwracaj±c± krotkê + 5.3) Jak napisać funkcjÄ™ C zwracajÄ…cÄ… krotkÄ™ (tuple)?
- 5.4) Zmieni³em plik ¼ród³owy. Dlaczego po - rekompilacji nie widaæ zmiany?
+ 5.4) Zmieniłem plik źródłowy. Dlaczego po + rekompilacji nie widać zmiany?

-

Pytania ogólne

+

Pytania ogólne

-

1.1) Co to jest PostgreSQL? Jak to wymawiaæ?

+

1.1) Co to jest PostgreSQL? Jak to wymawiać?

-

PostgreSQL wymawia siê Post-Gres-kju-el. Czêsto podczas - rozmów u¿ywany jest termin "Postgres"

+

PostgreSQL wymawia się Post-Gres-kju-el. Często podczas + rozmów używany jest termin "Postgres"

-

PostgreSQL jest rozszerzeniem systemu zarz±dzania bazami danych - - POSTGRES, kolejn± generacj± rozwojowego prototypu DBMS. - Mimo, ¿e PostgreSQL zachowa³ bardzo dobrze zbudowany model danych - (data model) i bogaty zestaw typów danych POSTGRES'a, zast±pi³ - PostQuel'owy jêzyk zapytañ z rozbudowanym podzbiorem jêzyka +

PostgreSQL jest rozszerzeniem systemu zarzÄ…dzania bazami danych - + POSTGRES, kolejnÄ… generacjÄ… rozwojowego prototypu DBMS. + Mimo, że PostgreSQL zachowaÅ‚ bardzo dobrze zbudowany model danych + (data model) i bogaty zestaw typów danych POSTGRES'a, zastÄ…piÅ‚ + PostQuel'owy jÄ™zyk zapytaÅ„ z rozbudowanym podzbiorem jÄ™zyka SQL. PostgreSQL jest oprogramowaniem darmowym - z dostêpnymi ca³ymi ¼ród³ami. + z dostÄ™pnymi caÅ‚ymi źródÅ‚ami.

-

Rozwój PostgreSQL jest prowadzony przez grupê ludzi z Internetu, - komunikuj±cych siê poprzez mailowe listy dyskusyjne PostgreSQL. +

Rozwój PostgreSQL jest prowadzony przez grupÄ™ ludzi z Internetu, + komunikujÄ…cych siÄ™ poprzez mailowe listy dyskusyjne PostgreSQL. Obecnym koordynatorem jest Marc G. Fournier (scrappy@PostgreSQL.org). (Zobacz - pytanie 1.6 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¼, + pytanie 1.6 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ź, http://www.PostgreSQL.org/docs/faqs/FAQ_DEV.html

Autorami PostgreSQL 1.01 byli Andrew Yu and Jolly Chen. - 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 + 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 California w Berkeley.

-

Oryginaln± nazw± oprogramowania w Berkeley by³ Postgres. Po - dodaniu obs³ugi SQL w 1995, nazwa zosta³a zmieniona - na Postgres95. Pod koniec roku 1996 nazwa zosta³a zmieniona na +

Oryginalną nazwą oprogramowania w Berkeley był Postgres. Po + dodaniu obsługi SQL w 1995, nazwa została zmieniona + na Postgres95. Pod koniec roku 1996 nazwa została zmieniona na PostgreSQL.

-

1.2) Jak± licencj± chroniony jest +

1.2) JakÄ… licencjÄ… chroniony jest PostgreSQL?

-

PostgreSQL objêty jest nastêpuj±c± licencj±:

+

PostgreSQL objęty jest następującą licencją:

PostgreSQL Data Base Management System

@@ -235,63 +235,63 @@ UNIVERSITY OF CALIFORNIA HAS NO OBLIGATIONS TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.

-

Tekst powy¿ej, jest klasyczn± licencj± BSD. - Nie posiada ona ¿adnych restrykcji co do u¿ywania kodu ¼ród³owego. - Podoba nam siê i nie zamierzamy jej zmieniaæ.

+

Tekst powyżej, jest klasyczną licencją BSD. + Nie posiada ona żadnych restrykcji co do używania kodu źródłowego. + Podoba nam się i nie zamierzamy jej zmieniać.

-

1.3) Na jakich systemach Unixowych dzia³a +

1.3) Na jakich systemach Unixowych działa PostreSQL?

-

PostgreSQL powinien dzia³aæ na wszystkich nowych Unix-podobnych - systemach. Platformy, które zosta³y szczegó³owo przetestowane podczas - publikowania PostgreSQL s± wymienione w dokumentacji opisuj±cej - instalacjê.

+

PostgreSQL powinien działać na wszystkich nowych Unix-podobnych + systemach. Platformy, które zostały szczegółowo przetestowane podczas + publikowania PostgreSQL są wymienione w dokumentacji opisującej + instalację.

-

1.4) Na jakich nie-Unixowych systemach dzia³a +

1.4) Na jakich nie-Unixowych systemach działa PostgreSQL?

Klient

-

Mo¿liwa 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 siê - poprzez TCP/IP. Serwer mo¿e dzia³aæ na dowolnej wspieranej platformie - Unixowej. Plik win32.mak jest do³±czony - do ¼róde³, aby mo¿na by³o stworzyæ bibliotekê libpq oraz - program psql dzia³aj±ce w ¶rodowisku Win32. PostgreSQL mo¿e siê - tak¿e komunikowaæ z klientami ODBC.

+

Możliwa 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 się + poprzez TCP/IP. Serwer może działać na dowolnej wspieranej platformie + Unixowej. Plik win32.mak jest dołączony + do źródeł, aby można było stworzyć bibliotekę libpq oraz + program psql działające w środowisku Win32. PostgreSQL może się + także komunikować z klientami ODBC.

Serwer

-

Serwer mo¿e byæ uruchamiany na Windows NT i Win2k u¿ywaj±c +

Serwer może być uruchamiany na Windows NT i Win2k używajÄ…c bibliotek Cygwin, Cygnus Unix/NT. W pliku pgsql/doc/FAQ_MSWIN - znajduj±cym siê w ¼ród³ach lub pod adresem: http://www.PostgreSQL.org/docs/faqs/text/FAQ_MSWIN na naszych stronach.

- Obecnie prowadzone s± prace nad stworzeniem wersji dla MS Win - NT/200/XP. Je¶li chcesz siê dowiedzieæ o obecnym statusie tych prac + Obecnie prowadzone sÄ… prace nad stworzeniem wersji dla MS Win + NT/200/XP. JeÅ›li chcesz siÄ™ dowiedzieć o obecnym statusie tych prac zobacz http://techdocs.postgresql.org/guides/Windows and http://momjian.postgresql.org/main/writings/pgsql/win32.html.

- Istnieje tak¿e port pod Novell Netware 6 dostêpny pod adresem http://forge.novell.com.

-

1.5) Sk±d mo¿na ¶ci±gn±æ PostgreSQL?

+

1.5) Skąd można ściągnąć PostgreSQL?

-

G³ówny serwer ftp z dostêpem "anonymous" dla PostgreSQL znajduje - siê ftp://ftp.PostgreSQL.org/pub. - je¶li szukasz mirrorów sprawd¼ nasz± g³ówn± stronê www.

+

Główny serwer ftp z dostępem "anonymous" dla PostgreSQL znajduje + się ftp://ftp.PostgreSQL.org/pub. + jeśli szukasz mirrorów sprawdź naszą główną stronę www.

-

1.6) Gdzie mo¿na szukaæ wsparcia technicznego?

+

1.6) Gdzie można szukać wsparcia technicznego?

-

Adres g³ównej listy mailowej: Adres głównej listy mailowej: pgsql-general@PostgreSQL.org. - Jest ona przeznaczona dyskusjom dotycz±cym spraw zwi±zanych z PostgreSQL. - ¯eby zapisac siê na listê, wy¶lij email z nastêpuj±cymi liniami w - tre¶ci maila (nie w temacie):

+ Jest ona przeznaczona dyskusjom dotyczącym spraw związanych z PostgreSQL. + Żeby zapisac się na listę, wyślij email z następującymi liniami w + treści maila (nie w temacie):

     subscribe
     end
@@ -300,100 +300,100 @@
     

na adres: pgsql-general-request@PostgreSQL.org.

-

Dostêpna jest tak¿e lista wysy³aj±ca digesty. Aby zapisaæ siê na - ni±, wy¶lij email na adres: +

DostÄ™pna jest także lista wysyÅ‚ajÄ…ca digesty. Aby zapisać siÄ™ na + niÄ…, wyÅ›lij email na adres: pgsql-general-digest-request@PostgreSQL.org - z tre¶ci± maila zawieraj±c±:

+ z treścią maila zawierającą:

     subscribe
     end
 
- Digesty s± wysy³ane do cz³onków listy, kiedy na g³ówn± listê dotrze ok - 30k wiadomo¶ci. + Digesty sÄ… wysyÅ‚ane do czÅ‚onków listy, kiedy na głównÄ… listÄ™ dotrze ok + 30k wiadomoÅ›ci. -

Dostêpna jest tak¿e lista po¶wiêcona b³êdom znalezionym w - PostgreSQL. Aby zapisaæ siê na ni± wy¶lij email na adres: +

DostÄ™pna jest także lista poÅ›wiÄ™cona błędom znalezionym w + PostgreSQL. Aby zapisać siÄ™ na niÄ… wyÅ›lij email na adres: pgsql-bugs-request@PostgreSQL.org - z tre¶ci± maila zawieraj±c±:

+ z treścią maila zawierającą:

     subscribe
     end
 
- Lista po¶wiêcona dyskusjom developerów jest dostêpna pod adresem: + Lista poÅ›wiÄ™cona dyskusjom developerów jest dostÄ™pna pod adresem: pgsql-hackers-request@PostgreSQL.org - Aby siê na ni± zapisaæ wy¶lij na jej adres mail z tre¶ci±: + Aby siÄ™ na niÄ… zapisać wyÅ›lij na jej adres mail z treÅ›ciÄ…:
     subscribe
     end
 
-

Dodatkowe informacje o listach mailowych dotycz±cych PostgreSQL - mo¿na znale¼æ na stronach WWW PostgreSQL pod adresem:

+

Dodatkowe informacje o listach mailowych dotyczących PostgreSQL + można znaleźć na stronach WWW PostgreSQL pod adresem:

http://www.PostgreSQL.org

-

W sieci EFNet istnieje kana³ IRC #PostgreSQL. Ja, do - po³±czenia siê z kana³em u¿ywam Unixowego polecenia irc -c +

W sieci EFNet istnieje kanał IRC #PostgreSQL. Ja, do + połączenia się z kanałem używam Unixowego polecenia irc -c '#PostgreSQL' "$USER" irc.phoenix.net.

-

Lista firm oferuj±cych wsparcie na zasadach komercyjnych znajduje - siê pod adresem: http://techdocs.postgresql.org/companies.php.

+

Lista firm oferujÄ…cych wsparcie na zasadach komercyjnych znajduje + siÄ™ pod adresem: http://techdocs.postgresql.org/companies.php.

-

1.7) Jaka jest ostatnia dostêpna wersja?

+

1.7) Jaka jest ostatnia dostępna wersja?

-

Ostatnia dostêpna wersja PostgreSQL to 7.4.1.

+

Ostatnia dostępna wersja PostgreSQL to 7.4.1.

-

Planujemy publikowanie kolejnych wersji co sze¶æ do o¶miu miesiêcy.

+

Planujemy publikowanie kolejnych wersji co sześć do ośmiu miesięcy.

-

1.8) Jaka dokumentacja jest dostêpna?

+

1.8) Jaka dokumentacja jest dostępna?

-

Kilka manuali, stron podêcznika man, oraz kilka przyk³adów do - testowania s± za³±czone w samej dystrybucji. Znajduj± siê one w - katalogu /doc. Manual mo¿e byæ tak¿e przegl±dany poprzez +

Kilka manuali, stron podęcznika man, oraz kilka przykładów do + testowania są załączone w samej dystrybucji. Znajdują się one w + katalogu /doc. Manual może być także przeglądany poprzez strony www pod adresem http://www.PostgreSQL.org/docs.

-

Istniej± tak¿e dwie ksi±¿ki dostêpne online pod adresami +

IstniejÄ… także dwie książki dostÄ™pne online pod adresami http://www.PostgreSQL.org/docs/awbook.html i http://www.commandprompt.com/ppbook/. - Lista ksi±¿ek o PostgreSQL, które mo¿na kupiæ znajduje siê pod adresem + Lista książek o PostgreSQL, które można kupić znajduje siÄ™ pod adresem http://techdocs.PostgreSQL.org/techdocs/bookreviews.php. - Zbiór technicznych artyku³ów o PostgreSQL znajduje siê pod adresem http://techdocs.postgresql.org/.

-

psql posiada kilka wbudowanych poleceñ \d, za pomoca których - mo¿na sprawdziæ informacje dotycz±ce typów, operatorów, funkcji, - agregatów itd.

+

psql posiada kilka wbudowanych poleceń \d, za pomoca których + można sprawdzić informacje dotyczące typów, operatorów, funkcji, + agregatów itd.

-

Na naszej stronie mo¿na znale¼æ du¿o wiêcej dokumentacji.

+

Na naszej stronie można znaleźć dużo więcej dokumentacji.

-

1.9) Gdzie mo¿na znale¼æ informacjê o znanych - b³êdach czy brakuj±cych rozwi±zanich?

+

1.9) Gdzie można znaleźć informację o znanych + błędach czy brakujących rozwiązanich?

-

PostgreSQL wspiera rozszerzony podzbiór standardu SQL-92. - Sprawd¼ nasz± listê TODO - aby znale¼æ informacjê o znanych problemach, brakuj±cych - rozwi±zaniach czy przysz³ych planach.

+

PostgreSQL wspiera rozszerzony podzbiór standardu SQL-92. + Sprawdź naszą listę TODO + aby znaleźć informację o znanych problemach, brakujących + rozwiązaniach czy przyszłych planach.

-

1.10) Jak mogê siê nauczyæ +

1.10) Jak mogę się nauczyć SQL?

-

Ksi±¿ka o PostgreSQL Książka o PostgreSQL http://www.PostgreSQL.org/docs/awbook.html - uczy SQL. Jest jeszcze inna ksi±zka o PostgreSQL - dostêpna pod adresem: SQL. Jest jeszcze inna ksiÄ…zka o PostgreSQL + dostÄ™pna pod adresem: http://www.commandprompt.com/ppbook. - Dobry tutorial mo¿esz znale¼æ pod adresem: http://www.intermedia.net/support/sql/sqltut.shtm, oraz @@ -405,211 +405,211 @@ pod adresem: http://members.tripod.com/er4ebus/sql/index.htm

-

Wielu z naszych u¿ytkowników poleca The Practical SQL Handbook, - Bowman, Judith S., et al., Addison-Wesley. Inni polecaj± The +

Wielu z naszych użytkowników poleca The Practical SQL Handbook, + Bowman, Judith S., et al., Addison-Wesley. Inni polecają The Complete Reference SQL, Groff et al., McGraw-Hill.

-

1.11) Czy PostgreSQL ma rozwi±zany problem Y2K?

+

1.11) Czy PostgreSQL ma rozwiÄ…zany problem Y2K?

Tak, bez problemu radzimy sobie z datami po roku 2000 AD, oraz przed rokiem 2000 BC.

-

1.12) Jak mogê siê przy³±czyæ do grupy osób - bezpo¶rednio pracuj±cych nad rozwojem PostgreSQL?

+

1.12) Jak mogę się przyłączyć do grupy osób + bezpośrednio pracujących nad rozwojem PostgreSQL?

-

Przede wszystkim ¶ci±gnij ostatnie dostêpne ¼ród³a i przeczytaj - dokumentacjê przeznaczon± dla developerów na naszej stronie www lub - dostêpn± tak¿e w ¼ród³ach PostgreSQL. Nastêpnie zapisz siê na listy +

Przede wszystkim Å›ciÄ…gnij ostatnie dostÄ™pne źródÅ‚a i przeczytaj + dokumentacjÄ™ przeznaczonÄ… dla developerów na naszej stronie www lub + dostÄ™pnÄ… także w źródÅ‚ach PostgreSQL. NastÄ™pnie zapisz siÄ™ na listy mailowe pgsql-hackers i - pgsql-patches. I na koniec, wysy³aj nam wysokiej jako¶ci - patch'e na listê pgsql-patches.

+ pgsql-patches. I na koniec, wysyłaj nam wysokiej jakości + patch'e na listę pgsql-patches.

-

Jest oko³o 12 osób, które maj± uprawnienia do commit'owania w - CVS 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, wiêc musieli¶my im ufaæ i mieæ - pewno¶æ, ¿e ich poprawki s± wysokiej jako¶ci.

+

Jest około 12 osób, które mają uprawnienia do commit'owania w + CVS 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, więc musieliśmy im ufać i mieć + pewność, że ich poprawki są wysokiej jakości.

-

1.13) Jak mogê zg³aszaæ b³êdy?

+

1.13) Jak mogę zgłaszać błędy?

-

Zajrzyj na stronê Zajrzyj na stronÄ™ PostgreSQL BugTool, na - której opisane s± wskazówki jak zg³aszaæ informacje o b³êdach.

+ której opisane są wskazówki jak zgłaszać informacje o błędach.

-

Zajrzyj tak¿e na nasz ftp Zajrzyj także na nasz ftp ftp://ftp.PostgreSQL.org/pub, aby - sprawdziæ czy nie ma nowszych wersji PostgreSQL czy patchy.

+ sprawdzić czy nie ma nowszych wersji PostgreSQL czy patchy.

-

1.14) Jak mo¿na porównaæ PostgreSQL w stosunku +

1.14) Jak można porównać PostgreSQL w stosunku do innych DBMS?

-

Jest kilka sposobów oceny softwaru: mo¿liwo¶ci, - wydajno¶æ, stabilno¶æ, wsparcie i cena.

+

Jest kilka sposobów oceny softwaru: możliwości, + wydajność, stabilność, wsparcie i cena.

-
Mo¿liwo¶ci
+
Możliwości
-
PostgreSQL posiada mo¿liwo¶ci dostêpne w du¿ych, komercyjnych +
PostgreSQL posiada możliwoÅ›ci dostÄ™pne w dużych, komercyjnych systemach DBMS, takie jak transakcje, podzapytania (subselects), triggery, widoki, klucze obce, referential integrity, - 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 + 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 blokowaniem (lock contention).

-
Wydajno¶æ
+
Wydajność
-
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 Mo¿liwo¶ci . 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 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 MożliwoÅ›ci . 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 http://openacs.org/philosophy/why-not-mysql.html - Dodatkowo, MySQL jest firm±, która dystrybuuje jej produkty poprzez - zasadê Open Source i wymaga wykupienia licencji w przypadku + 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.

-
Stabilno¶æ
+
Stabilność
-
Zdajemy sobie sprawê, ¿e DBMS 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 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 - opracowany przez nas jest jednym z lepszych w¶ród innych twórców +
Zdajemy sobie sprawę, że DBMS 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 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 + opracowany przez nas jest jednym z lepszych wśród innych twórców oprogramowania bazodanowego.

Wsparcie
-
Dziêki naszym listom mailowym masz dostêp do du¿ej liczby - programistów i u¿ytkowników, którzy pomagaj± rozwi±zaæ ka¿dy - napotkany problem. Chocia¿ nie mo¿emy gwarantowaæ znalezienia - rozwi±zania danego problemu, nie ró¿nimy siê w tym od innych - komercyjnych systemów DBMS. Bezpo¶redni kontakt z - programistami, u¿ytkownikami, dokumentacj± i kodem ¼ród³owym - sprawiaj±, ¿e wsparcie oferowane PostgreSQL niejednokrotnie jest - lepsze ni¿ w innych systemach DBMS. Istnieje tak¿e - mo¿liwo¶æ skorzystania z komercyjnego wsparcia dla tych, których - takiego rozwi±zania potrzebuj±. - (Sprawd¼ ten punkt FAQ.)
+
Dzięki naszym listom mailowym masz dostęp do dużej liczby + programistów i użytkowników, którzy pomagają rozwiązać każdy + napotkany problem. Chociaż nie możemy gwarantować znalezienia + rozwiązania danego problemu, nie różnimy się w tym od innych + komercyjnych systemów DBMS. Bezpośredni kontakt z + programistami, użytkownikami, dokumentacją i kodem źródłowym + sprawiają, że wsparcie oferowane PostgreSQL niejednokrotnie jest + lepsze niż w innych systemach DBMS. Istnieje także + możliwość skorzystania z komercyjnego wsparcia dla tych, których + takiego rozwiązania potrzebują. + (Sprawdź ten punkt FAQ.)

Cena
-
Korzystanie z PostgreSQL jest darmowe, zarówno w przypadku - komercyjnym jak i niekomercyjnym. Mo¿esz korzystaæ z naszego kodu - ¼ród³owego w Twoim produkcie bez ¿adnych ograniczeñ, poza tymi - wymienionymi w licencji BSD przytoczonej powy¿ej.
+
Korzystanie z PostgreSQL jest darmowe, zarówno w przypadku + komercyjnym jak i niekomercyjnym. Możesz korzystać z naszego kodu + źródłowego w Twoim produkcie bez żadnych ograniczeń, poza tymi + wymienionymi w licencji BSD przytoczonej powyżej.

-

1.15) W jaki sposób mogê wesprzeæ finansowo +

1.15) W jaki sposób mogę wesprzeć finansowo PostgreSQL?

-

PostgreSQL korzysta z najlepszej infrastruktury od samego pocz±tku - 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.

+

PostgreSQL korzysta z najlepszej infrastruktury od samego początku + 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.

-

Wysokiej jako¶ci infrastruktura jest bardzo wa¿na dla ka¿dego +

Wysokiej jakości infrastruktura jest bardzo ważna dla każdego projektu open-source. Zapobiega przerwom w rozwoju projektu i jakimkolwiek przestojom.

-

Oczywi¶cie korzystanie z wysokiej jako¶ci infrastruktury nie jest - 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: OczywiÅ›cie korzystanie z wysokiej jakoÅ›ci infrastruktury nie jest + 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: http://store.pgsql.com/shopping/ - gdzie opisane jest jak to zrobiæ.

+ gdzie opisane jest jak to zrobić.

-

Chocia¿ na stronie wspomniana jest nazwa PostgreSQL Inc, "datki" - s± przeznaczone jedynie na rozwój projektu PostgreSQL i nie s± - przeznaczane na finansowanie jakiejkolwiek firmy. Je¶li wolisz, - mo¿esz wys³aæ czek na adres kontaktowy.

+

Chociaż na stronie wspomniana jest nazwa PostgreSQL Inc, "datki" + są przeznaczone jedynie na rozwój projektu PostgreSQL i nie są + przeznaczane na finansowanie jakiejkolwiek firmy. Jeśli wolisz, + możesz wysłać czek na adres kontaktowy.


- Je¶li mo¿esz siê pochwaliæ udanymi wdro¿eniami PostgreSQL, prosimy - aby¶ zg³osi³ nam to na stronie: http://advocacy.postgresql.org.

User Client Questions

-

2.1) Czy s± jakie¶ driwery ODBC dla +

2.1) Czy sÄ… jakieÅ› driwery ODBC dla PostgreSQL?

-

Dostêpne s± dwa driwery ODBC: PsqlODBC +

Dostępne są dwa driwery ODBC: PsqlODBC i OpenLink ODBC.

-

Mo¿esz pobraæ PsqlODBC z adresu Możesz pobrać PsqlODBC z adresu http://gborg.postgresql.org/project/psqlodbc/projdisplay.php

-

OpenLink ODBC mo¿e byæ pobrany z adresu: OpenLink ODBC może być pobrany z adresu: http://www.openlinksw.com. - Wspó³pracuje ze standardowym oprogramowaniem klienckim ODBC - wiêc w ten sposób mo¿esz korzystaæ z PostgreSQL ODBC - dostêpnego na ka¿dej pltaformie któr± wspiera (Win, Mac, Unix, VMS).

+ Współpracuje ze standardowym oprogramowaniem klienckim ODBC + więc w ten sposób możesz korzystać z PostgreSQL ODBC + dostępnego na każdej pltaformie którą wspiera (Win, Mac, Unix, VMS).

-

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: 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: postgres95@openlink.co.uk.

-

2.2) Jakie istniej± narzêdzia pozwalaj±ce na dostêp do +

2.2) Jakie istnieją narzędzia pozwalające na dostęp do PostgreSQL przez www?

-

Dobry podrêcznik dla pocz±tkuj±cych o dostêpie do bazy danych - przez www mo¿esz znale¼æ pod adresem: +

Dobry podręcznik dla początkujących o dostępie do bazy danych + przez www możesz znaleźć pod adresem: http://www.webreview.com

-

Do integracji z www, ¶wietnym rozwi±zaniem jest PHP. Mo¿esz - znale¼æ wiêcej informacji na ten temat pod adresem +

Do integracji z www, świetnym rozwiązaniem jest PHP. Możesz + znaleźć więcej informacji na ten temat pod adresem http://www.php.net.

-

Wiele osób w przypadku skomplikowanych rozwi±zañ uzywa Perl'a i - modu³u CGI.pl lub mod_perl.

+

Wiele osób w przypadku skomplikowanych rozwiązań uzywa Perl'a i + modułu CGI.pl lub mod_perl.

-

2.3) Czy istnieje jakie¶ GUI dla PostgreSQL?

+

2.3) Czy istnieje jakieÅ› GUI dla PostgreSQL?

-

Tak, istnieje kilka interfejsów graficznych dla PostgreSQL. - W¶ród nich PgAccess ( +

Tak, istnieje kilka interfejsów graficznych dla PostgreSQL. + WÅ›ró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 - tak¿e PHPPgAdmin ( http://phppgadmin.sourceforge.net/ ), webowy + także PHPPgAdmin ( http://phppgadmin.sourceforge.net/ ), webowy interfejs dla PostgreSQL.

- Wiêcej informacji na ten temat znajduje siê pod adresem See + WiÄ™cej informacji na ten temat znajduje siÄ™ pod adresem See http://techdocs.postgresql.org/guides/GUITools.

-

2.4) Za pomoc± jakich jêzyków programowania - mo¿na siê komunikowaæ z PostgreSQL?

+

2.4) Za pomocą jakich języków programowania + można się komunikować z PostgreSQL?

-

Najbardziej popularne jêzyki posiiadaj± w³asny interfejs dla - PostgreSQL. Sprawd¼ listê rozszerzeñ dla intersuj±cego Ciebie jêzyka +

Najbardziej popularne języki posiiadają własny interfejs dla + PostgreSQL. Sprawdź listę rozszerzeń dla intersującego Ciebie języka programowania.

-

Ze ¼ród³ami PostreSQL dystrubuowane s± interfejsy dla - nastêpuj±cych jêzyków programowania:

+

Ze źródłami PostreSQL dystrubuowane są interfejsy dla + następujących języków programowania:

    @@ -623,266 +623,266 @@
  • TCL (libpgtcl)
- Inne interfejsy s± dostêpne pod adresem: + Inne interfejsy sÄ… dostÄ™pne pod adresem: http://gborg.postgresql.org w sekcji Drivers/Interfaces.
-

Pytania dotycz±ce administracji

+

Pytania dotyczÄ…ce administracji

-

3.1) Jak mogê zainstalowaæ PostgreSQL w innej - lokalizacji ni¿ /usr/local/pgsql?

+

3.1) Jak mogę zainstalować PostgreSQL w innej + lokalizacji niż /usr/local/pgsql?

-

U¿yj opcji --prefix podczas uruchamiania skryptu +

Użyj opcji --prefix podczas uruchamiania skryptu configure.

3.2) Podczas startu postmaster'a, - otrzymujê komunikat o b³êdzie: Bad System Call lub "core dumped". + otrzymujÄ™ komunikat o błędzie: Bad System Call lub "core dumped". Dlaczego?

-

Ten b³±d mo¿e byæ wynikiem wielu problemów, ale na pocz±tek - sprawd¼ czy masz zainstalowane rozszerzenia systemu V w j±drze - systemu. PostgreSQL wymaga do pracy zainstalowanej obs³ugi pamiêci - dzielonej i semaforów.

+

Ten błąd może być wynikiem wielu problemów, ale na początek + sprawdź czy masz zainstalowane rozszerzenia systemu V w jądrze + systemu. PostgreSQL wymaga do pracy zainstalowanej obsługi pamięci + dzielonej i semaforów.

3.3) Podczas startu postmaster'a, - otrzymujê komunikat o b³êdzie: IpcMemoryCreate. + otrzymujÄ™ komunikat o błędzie: IpcMemoryCreate. Dlaczego?

-

Albo nie masz poprawnie skonfigurowanej obs³ugi pamiêci dzielonej - w j±drze systemu, albo musisz zwiêkszyæ jej dostêpny rozmiar. - Dok³adna ilo¶æ jak± potrzebujesz jest zale¿na od architektury systemu - na jakim pracujesz, jak du¿o buforów oraz jak du¿o procesów backendu - skonfigurowa³e¶ dla postmaster'a. Dla wiêkszo¶ci systemów, z - domy¶ln± liczb± buforów i procesów potrzebujesz minimum w - przybli¿eniu 1MB. Zobacz Albo nie masz poprawnie skonfigurowanej obsÅ‚ugi pamiÄ™ci dzielonej + w jÄ…drze systemu, albo musisz zwiÄ™kszyć jej dostÄ™pny rozmiar. + DokÅ‚adna ilość jakÄ… potrzebujesz jest zależna od architektury systemu + na jakim pracujesz, jak dużo buforów oraz jak dużo procesów backendu + skonfigurowaÅ‚eÅ› dla postmaster'a. Dla wiÄ™kszoÅ›ci systemów, z + domyÅ›lnÄ… liczbÄ… buforów i procesów potrzebujesz minimum w + przybliżeniu 1MB. Zobacz PostgreSQL - Administrator's Guide gdzie szczegó³owo zosta³o opisane - wykorzystanie pamiêci dzielonej i semaforów.

+ Administrator's Guide gdzie szczegółowo zostało opisane + wykorzystanie pamięci dzielonej i semaforów.

3.4) Podczas startu postmaster'a, - otrzymujê komunikat o b³êdzie: IpcSemaphoreCreate. + otrzymujÄ™ komunikat o błędzie: IpcSemaphoreCreate. Dlaczego?

-

Je¶li tre¶æ b³êdu brzmi: IpcSemaphoreCreate: semget failed - (No space left on device) oznacza to, ¿e j±dro systemu nie jest - skonfigurowane do obs³ugi wystarczaj±cej liczby semaforów. +

JeÅ›li treść błędu brzmi: IpcSemaphoreCreate: semget failed + (No space left on device) oznacza to, że jÄ…dro systemu nie jest + skonfigurowane do obsÅ‚ugi wystarczajÄ…cej liczby semaforów. Postgres wymaga jednego semafor'a na potencjalny jeden proces backend. - Tymczasowym rozwi±zaniem jest uruchomienie programu postmaster - z mniejsz± maksymaln± liczb± procesów backend. - U¿yj opcji -N z parameterem mniejszym od domy¶lnego - 32. - Bardziej trwa³ym rozwi±zaniem jest zwiêkszenie parametrów - SEMMNS i SEMMNI j±dra twojego systemu.

+ Tymczasowym rozwiązaniem jest uruchomienie programu postmaster + z mniejszą maksymalną liczbą procesów backend. + Użyj opcji -N z parameterem mniejszym od domyślnego - 32. + Bardziej trwałym rozwiązaniem jest zwiększenie parametrów + SEMMNS i SEMMNI jądra twojego systemu.

-

Niedzia³aj±ce semafory mog± spowodowaæ niepoprawne zamkniêcie +

Niedziałające semafory mogą spowodować niepoprawne zamknięcie systemu w czasie intensywnego korzystania z bazy.

-

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 +

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 dzielonej i semaforach.

-

3.5) W jaki sposób mogê kontrolowaæ po³±czenia - z innych hostów?

+

3.5) W jaki sposób mogę kontrolować połączenia + z innych hostów?

-

Domy¶lnie PostgreSQL pozwala jedynie na po³±czenia za pomoc± - socketów Unixowych z lokalnego hosta. Inne hosty nie bêd± mog³y siê - po³±czyæ z serwerem dopóki nie zostanie dodana opcja -i do +

DomyÅ›lnie PostgreSQL pozwala jedynie na połączenia za pomocÄ… + socketów Unixowych z lokalnego hosta. Inne hosty nie bÄ™dÄ… mogÅ‚y siÄ™ + połączyć z serwerem dopóki nie zostanie dodana opcja -i do postmaster'a, - oraz nie umo¿liwi siê autoryzacji na podstawie adresu hostów - modyfikuj±c odpowiednio plik - $PGDATA/pg_hba.conf. To zmiany pozwol± na po³±czenia TCP/IP.

+ oraz nie umożliwi się autoryzacji na podstawie adresu hostów + modyfikując odpowiednio plik + $PGDATA/pg_hba.conf. To zmiany pozwolą na połączenia TCP/IP.

-

3.6) Jak powinienem skonfigurowaæ system baz - danych aby uzyskaæ lepsz± wydajno¶æ?

+

3.6) Jak powinienem skonfigurować system baz + danych aby uzyskać lepszą wydajność?

-

Indeksy bez w±tpienia mog± przyspieszyæ wykonywanie zapytañ. - Polecenie EXPLAIN pozwala zobaczyæ jak PostgreSQL - interpretuje Twoje zapytanie i które indeksy s± u¿ywane.

+

Indeksy bez wątpienia mogą przyspieszyć wykonywanie zapytań. + Polecenie EXPLAIN pozwala zobaczyć jak PostgreSQL + interpretuje Twoje zapytanie i które indeksy są używane.

-

Je¶li wykonujesz bardzo du¿o INSERTów, mo¿e warto - je wykonaæ za pomoc± jednego du¿ego pliku u¿ywaj±c polecenia - COPY. Jest to du¿o szybsze ni¿ pojedyncze +

JeÅ›li wykonujesz bardzo dużo INSERTów, może warto + je wykonać za pomocÄ… jednego dużego pliku używajÄ…c polecenia + COPY. Jest to dużo szybsze niż pojedyncze INSERTy. Po drugie polecenia SQL nie zawarte w bloku - okre¶laj±cym transakcjê - BEGIN WORK/COMMIT, s± - traktowane jako pojedyncza transakcja. Rozwa¿ wykonanie kilku - poleceñ/zdañ SQL w jednym bloku transakcji. To redukuje narzut - nak³adany przez transakcjê. Przy du¿ych zmianach w danych, warto - usun±æ i stworzyæ na nowo indeksy.

+ określającym transakcję - BEGIN WORK/COMMIT, są + traktowane jako pojedyncza transakcja. Rozważ wykonanie kilku + poleceń/zdań SQL w jednym bloku transakcji. To redukuje narzut + nakładany przez transakcję. Przy dużych zmianach w danych, warto + usunąć i stworzyć na nowo indeksy.

-

Jest kilka opcji pozwalaj±cych na poprawienie wydajno¶ci. - Mo¿esz wy³±czyæ fsync() poprzez uruchomienie postmaster'a - z opcjami -o -F. To spowoduje, ¿e - fsync() nie bêdzie zrzuca³ danych na dysk po ka¿dej +

Jest kilka opcji pozwalających na poprawienie wydajności. + Możesz wyłączyć fsync() poprzez uruchomienie postmaster'a + z opcjami -o -F. To spowoduje, że + fsync() nie będzie zrzucał danych na dysk po każdej transakcji.

-

Mo¿esz tak¿e uruchomiæ postmaster'a z opcj± -B - aby zwiêkszyæ wielko¶æ pamiêci dzielonej u¿ywanej przez procesy - backendów. Je¶li ustawisz t± warto¶æ zbyt wysoko i przekroczysz limity - ustawione przez kernel na pamiêæ dzielon±, postmaster mo¿e siê - nie uruchomiæ. Ka¿dy bufor zajmuje 8K a domy¶lna ilo¶æ buforów to 64.

+

Możesz także uruchomić postmaster'a z opcją -B + aby zwiększyć wielkość pamięci dzielonej używanej przez procesy + backendów. Jeśli ustawisz tą wartość zbyt wysoko i przekroczysz limity + ustawione przez kernel na pamięć dzieloną, postmaster może się + nie uruchomić. Każdy bufor zajmuje 8K a domyślna ilość buforów to 64.

-

Mo¿esz tak¿e u¿yæ opcji -S dla backendu aby zwiêkszyæ - maksymaln± warto¶æ pamiêci u¿ywan± przez proces backendu podczas - sortowania. Opcja -S jest ustawiana warto¶ci± podawan± w - kilobajtach, domy¶lna warto¶æ to 512K.

+

Możesz także użyć opcji -S dla backendu aby zwiększyć + maksymalną wartość pamięci używaną przez proces backendu podczas + sortowania. Opcja -S jest ustawiana wartością podawaną w + kilobajtach, domyślna wartość to 512K.

-

Mo¿esz tak¿e u¿yæ polecenia CLUSTER aby pogrupowaæ +

Możesz także użyć polecenia CLUSTER aby pogrupować dane w tabelach wg indeksu. Zobacz opis polecenia CLUSTER - w manualu ¿eby dowiedzieæ siê wiêcej.

+ w manualu żeby dowiedzieć się więcej.

-

3.7) Jakie s± mo¿liwo¶ci wyszukiwania - b³êdów?

+

3.7) Jakie są możliwości wyszukiwania + błędów?

-

PostgreSQL ma kilka mo¿liwo¶ci na raportowanie informacji o - jego statusie, które mog± byæ przydatne przy debugowaniu procesu.

+

PostgreSQL ma kilka możliwości na raportowanie informacji o + jego statusie, które mogą być przydatne przy debugowaniu procesu.

-

Przede wszystkim uruchom skrypt configure z opcj± - --enable-cassert, wiele funkcji assert() monitoruj± postêp - procesu backend i zatrzymuj± program kiedy wydarzy siê co¶ +

Przede wszystkim uruchom skrypt configure z opcją + --enable-cassert, wiele funkcji assert() monitorują postęp + procesu backend i zatrzymują program kiedy wydarzy się coś nieoczekiwanego.

-

Zarówno postmaster jak i postgres maj± kilka opcji - do debugowania. Za ka¿dym razem kiedy uruchamiasz postmaster'a, - upewnij siê, ¿e wysy³asz standardowe wyj¶cie i error do pliku z - logami, np. w ten sposób:

+

Zarówno postmaster jak i postgres mają kilka opcji + do debugowania. Za każdym razem kiedy uruchamiasz postmaster'a, + upewnij się, że wysyłasz standardowe wyjście i error do pliku z + logami, np. w ten sposób:

     cd /usr/local/pgsql
     ./bin/postmaster >server.log 2>&1 &
 
-

To utworzy plik server.log w g³ównym katalogu PostgreSQL. - Ten plik zawiera po¿yteczne informacje o problemach i b³êdach, które - wydarzy³y siê podczas pracy serwera. Postmaster posiada opcjê - -d, która pozwala na raportowanie bardzo szczególowych - informacji. Do opcji -d podajemy liczbê, która okre¶la - szczegó³owo¶æ wysy³anych informacji. Musisz mieæ ¶wiadomo¶æ, ¿e - wysoki poziom logowania bêdzie powodowa³ tworzenie bardzo duzych - plików z logami.

+

To utworzy plik server.log w głównym katalogu PostgreSQL. + Ten plik zawiera pożyteczne informacje o problemach i błędach, które + wydarzyły się podczas pracy serwera. Postmaster posiada opcję + -d, która pozwala na raportowanie bardzo szczególowych + informacji. Do opcji -d podajemy liczbę, która określa + szczegółowość wysyłanych informacji. Musisz mieć świadomość, że + wysoki poziom logowania będzie powodował tworzenie bardzo duzych + plików z logami.

-

Je¶li postmaster nie zosta³ uruchomiony, mo¿esz uruchomiæ - postgres'owy backend z linii poleceñ, i uruchomiæ Twoje - polecenie SQL bezpo¶rednio na nim. - Taki sposób jest polecany jedynie w przypadku debugowania. - Zwróæ uwagê, ¿e w tym wypadku zapytanie koñczy znak nowej linii a nie - ¶rednik. Je¶li skompilowa³e¶ z opcjami debugowania mozesz u¿yæ - debuggera aby sprawdziæ co siê dzieje. Poniew¿ backend nie zosta³ - uruchomiony przez postmaster'a, nie dzia³a w identycznym - ¶rodowisku, co oznacza ¿e powtórzenie warunków w jakich wyst±pi³y - problemy moze byæ problemem.

+

Jeśli postmaster nie został uruchomiony, możesz uruchomić + postgres'owy backend z linii poleceń, i uruchomić Twoje + polecenie SQL bezpośrednio na nim. + Taki sposób jest polecany jedynie w przypadku debugowania. + Zwróć uwagę, że w tym wypadku zapytanie kończy znak nowej linii a nie + średnik. Jeśli skompilowałeś z opcjami debugowania mozesz użyć + debuggera aby sprawdzić co się dzieje. Poniewż backend nie został + uruchomiony przez postmaster'a, nie działa w identycznym + środowisku, co oznacza że powtórzenie warunków w jakich wystąpiły + problemy moze być problemem.

-

Je¶li postmaster dzia³a, uruchom psql w jednym z - okien, nastêpnie znajd¼ PID procesu postgres - u¿ywanego przez psql. U¿yj debuggera aby do - PID'u postgres'a. Mo¿esz ustawiaæ pu³apki - (breakpoints) w debuggerze i wykonywaæ zapytania z psql. - Je¶li debugujesz uruchamianie postgres'a, mo¿esz ustawiæ zmienn± - PGOPTIONS="-W n", nastêpnie uruchomiæ psql. - Opcja ta pozwoli spowolniæ uruchomienie na - n sekund aby¶ móg³ siê po³±czyæ z procesem za pomoc± - debugera, ustawiæ jakiekolwiek pu³apki i kontynuowaæ proces +

Jeśli postmaster działa, uruchom psql w jednym z + okien, następnie znajdź PID procesu postgres + używanego przez psql. Użyj debuggera aby do + PID'u postgres'a. Możesz ustawiać pułapki + (breakpoints) w debuggerze i wykonywać zapytania z psql. + Jeśli debugujesz uruchamianie postgres'a, możesz ustawić zmienną + PGOPTIONS="-W n", następnie uruchomić psql. + Opcja ta pozwoli spowolnić uruchomienie na + n sekund abyś mógł się połączyć z procesem za pomocą + debugera, ustawić jakiekolwiek pułapki i kontynuować proces uruchamiania.

-

postgres mo¿e byæ uruchamiany z opcjami -s, -A i - -t, które mog± byæ bardzo przydatne przy debuggowaniu i ocenie - wydajno¶ci.

+

postgres może być uruchamiany z opcjami -s, -A i + -t, które mogą być bardzo przydatne przy debuggowaniu i ocenie + wydajności.

-

Mo¿esz tak¿e skompilowaæ z profilingiem aby zobaczyæ jakie funkcje - ile czasu wykonuj± siê. Pliki profilowane dla backendu zostan± +

Możesz także skompilować z profilingiem aby zobaczyć jakie funkcje + ile czasu wykonujÄ… siÄ™. Pliki profilowane dla backendu zostanÄ… umieszczone w katalogu - pgsql/data/base/dbname. Pliki profilu klienta zostan± - umieszczone w bie¿±cym katalogu klienta. Linux wymaga aby kompilowaæ - z opcj± -DLINUX_PROFILE aby profilowanie odbywa³o siê + pgsql/data/base/dbname. Pliki profilu klienta zostanÄ… + umieszczone w bieżącym katalogu klienta. Linux wymaga aby kompilować + z opcjÄ… -DLINUX_PROFILE aby profilowanie odbywaÅ‚o siÄ™ poprawnie.

-

3.8) Sk±d siê bierze komunikat: "Sorry, too - many clients" podczas próby po³±czenia siê z baz± danych?

+

3.8) Skąd się bierze komunikat: "Sorry, too + many clients" podczas próby połączenia się z bazą danych?

-

Musisz zwiêkszyæ limit ilo¶ci jednoczesnych procesów bacekendu +

Musisz zwiększyć limit ilości jednoczesnych procesów bacekendu dla procesu postmaster'a.

-

Domy¶lny limit to 32 procesy. Mo¿esz go zwiêkszyæ przez restart - postmaster z odpowiedni± warto¶ci± ustawian± opcjê -N w +

Domyślny limit to 32 procesy. Możesz go zwiększyć przez restart + postmaster z odpowiednią wartością ustawianą opcję -N w pliku postgresql.conf.

-

We¼ pod uwagê, ¿e je¶li zwiêkszysz warto¶æ podan± w opcji - -N na wiêcej ni¿ 32 musisz tak¿e zwiêkszyæ warto¶æ w opcji - -B ponad jej domy¶ln± warto¶æ 64; warto¶æ -B musi byæ - co najmniej dwa razy wiêksza od warto¶ci podanej w opcji - -N, a prawdopodobnie powinna byæ w rzeczywisto¶ci jeszcze - wiêksza dla optymalnej wydajno¶ci. - Dla du¿ej liczby procesów backendu na pewno zauwa¿ysz, ¿e trzeba - zwiêkszyæ ró¿ne parametry j±dra Unixa. Rzeczy, które powniene¶ - sprawdziæ to maksymalna liczba bloków pamiêci dzielonej, - SHMMAX; maksymalna liczba semaforów, SEMMNS +

Weź pod uwagÄ™, że jeÅ›li zwiÄ™kszysz wartość podanÄ… w opcji + -N na wiÄ™cej niż 32 musisz także zwiÄ™kszyć wartość w opcji + -B ponad jej domyÅ›lnÄ… wartość 64; wartość -B musi być + co najmniej dwa razy wiÄ™ksza od wartoÅ›ci podanej w opcji + -N, a prawdopodobnie powinna być w rzeczywistoÅ›ci jeszcze + wiÄ™ksza dla optymalnej wydajnoÅ›ci. + Dla dużej liczby procesów backendu na pewno zauważysz, że trzeba + zwiÄ™kszyć różne parametry jÄ…dra Unixa. Rzeczy, które pownieneÅ› + sprawdzić to maksymalna liczba bloków pamiÄ™ci dzielonej, + SHMMAX; maksymalna liczba semaforów, SEMMNS oraz SEMMNI; - maksymalna liczba procesów, NPROC; maksymalna liczba - procesów na jednego u¿ytkownika, MAXUPRC; i maksymalna - liczba otwartych plików, NFILE oraz - NINODE. Powód dla którego PostgreSQL ma limit na - maksymaln± liczbê procesów backendu to obawa o wyczerpanie zasobów + maksymalna liczba procesów, NPROC; maksymalna liczba + procesów na jednego użytkownika, MAXUPRC; i maksymalna + liczba otwartych plików, NFILE oraz + NINODE. Powód dla którego PostgreSQL ma limit na + maksymalnÄ… liczbÄ™ procesów backendu to obawa o wyczerpanie zasobów systemu.

-

3.9) Jakie pliki znajduj± siê w pg_temp?

+

3.9) Jakie pliki znajdujÄ… siÄ™ w pg_temp?

Katalog ten zawiera tymczasowe pliki utworzone przez executor. Dla - przyk³adu, je¶li jaka¶ operacja sortowania jest wymagana do wykonania - ORDER BY, a samo sortowanie wymaga wiêcej miejsca ni¿ + przykÅ‚adu, jeÅ›li jakaÅ› operacja sortowania jest wymagana do wykonania + ORDER BY, a samo sortowanie wymaga wiÄ™cej miejsca niż parametr backendu - -S ustawi³ do wykorzystania, wtedy tymczasowe pliki s± u¿ywane + -S ustawiÅ‚ do wykorzystania, wtedy tymczasowe pliki sÄ… używane do przechowywania tych danych.

-

Pliki tymczasowe powinny byæ usuniête automatycznie, ale mog³o siê - to nie staæ je¶li proces backendu w miêdzyczasie nie zakoñczy³ siê - poprawnie podczas operacji sortowania. Je¶li w danym momencie nie - dzia³aj± ¿adne procesy backendów mozesz spokojnie usun±æ pliki +

Pliki tymczasowe powinny być usunięte automatycznie, ale mogło się + to nie stać jeśli proces backendu w międzyczasie nie zakończył się + poprawnie podczas operacji sortowania. Jeśli w danym momencie nie + działają żadne procesy backendów mozesz spokojnie usunąć pliki pg_tempNNN.NN.

3.9) Dlaczego konieczne jest przy upgradzie - PostgreSQL korzystanie ze skryptów dump i restore?

+ PostgreSQL korzystanie ze skryptów dump i restore?

- Twórcy PostgreSQL dokonuj± jedynie ma³ych zmian pomiêdzy ma³ymi + 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 + 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. + takiej postaci, w której Å‚atwe jest ich zaimportowanie do nowszych + wersji bez kÅ‚opotu.

- 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. + 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.


-

Pytania dotycz±ce u¿ywania

+

Pytania dotyczące używania

-

4.1) Jaka jest ró¿nica pomiêdzy kursorami - binarnymi (binary cursors) i zwyk³ymi kursorami (normal +

4.1) Jaka jest różnica pomiędzy kursorami + binarnymi (binary cursors) i zwykłymi kursorami (normal cursors)?

Zobacz w manualu opis polecenia DECLARE.

-

4.2) Jak mogê pobraæ za pomoc± - SELECT jedynie kilka pierwszych wyników +

4.2) Jak mogę pobrać za pomocą + SELECT jedynie kilka pierwszych wyników zapytania?

-

Zobacz w manualu opis polecenia FETCH lub u¿yj +

Zobacz w manualu opis polecenia FETCH lub użyj polecenia SELECT ... LIMIT....

-

Nawet je¶li chesz pobraæ kilka pierwszych rzêdów z wyniku - zapytania, ca³e zapytanie musi zostaæ wykonane. Byc mo¿e powiniene¶ - skorzystaæ z polecenia ORDER BY. - Je¶li istnieje indeks który odpowiada polom okre¶lonym przez - ORDER BY, 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.

+

Nawet jeśli chesz pobrać kilka pierwszych rzędów z wyniku + zapytania, całe zapytanie musi zostać wykonane. Byc może powinieneś + skorzystać z polecenia ORDER BY. + Jeśli istnieje indeks który odpowiada polom określonym przez + ORDER BY, 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.

- Aby otrzymaæ losowy rz±d, u¿yj:

+ Aby otrzymać losowy rząd, użyj:

     SELECT col
     FROM tab
@@ -890,33 +890,33 @@
     LIMIT 1;
 	 
-

4.3) Jak mogê uzyskaæ listê wszystkich tabel +

4.3) Jak mogę uzyskać listę wszystkich tabel czy innych rzeczy pod psql?

-

Mo¿esz sprawdziæ zawarto¶æ ¼róde³ psql, a konkretnie plik +

Możesz sprawdzić zawartość źródeÅ‚ psql, a konkretnie plik pgsql/src/bin/psql/describe.c. Zawiera on polecenia - SQL które generuja wyniki komend z backslashem. - Mo¿esz tak¿e uruchomiæ psql z opcj± - -E wtedy po wykonaniu polecenia z backslashem wy¶wietlane - bêdzie zapytanie, które w rzeczywisto¶ci jest wykonywane.

+ SQL które generuja wyniki komend z backslashem. + Możesz także uruchomić psql z opcją + -E wtedy po wykonaniu polecenia z backslashem wyświetlane + będzie zapytanie, które w rzeczywistości jest wykonywane.

-

4.4) Jak usun±æ kolumnê z tabeli lub zmieniæ +

4.4) Jak usunąć kolumnę z tabeli lub zmienić jej typ?

-

DROP COLUMNT zosta³o dodane w wersji 7.3 przy poleceniu ALTER - TABLE DROP COLUMN. We wcze¶ñiejszych wersjach mo¿esz zrobiæ tak: +

DROP COLUMNT zostało dodane w wersji 7.3 przy poleceniu ALTER + TABLE DROP COLUMN. We wcześńiejszych wersjach możesz zrobić tak:

 	 BEGIN;
 	 LOCAL TABLE old_table;
-    SELECT ...  -- wybierz wszystkie kolumny poza t± jedn± której chcesz siê pozbyæ
+    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;
 

- Aby zmieniæ typ danych kolumny mo¿esz zrobiæ tak: + Aby zmienić typ danych kolumny możesz zrobić tak:

    BEGIN;
@@ -926,117 +926,117 @@
    COMMIT;
 	
-

4.5) Jaki jest maksymalny rozmiar dla rzêdu, +

4.5) Jaki jest maksymalny rozmiar dla rzędu, tabeli i bazy danych?

Oto wszystkie ograniczenia:

-    Maksymalny rozmiar dla bazdy danych?     nieograniczony ( istniej±
-	 bazy danych o wielko¶ci 32 TB databases )
+    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 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 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
 
- 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. + 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.

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.

+ 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.

-

Masymalny rozmiar tabeli i maksymalna liczba kolumn mo¿e byæ - zwiêkszona je¶li zwiêkszymy domy¶lny rozmiar bloku (block size) do +

Masymalny rozmiar tabeli i maksymalna liczba kolumn może być + zwiększona jeśli zwiększymy domyślny rozmiar bloku (block size) do 32k.

-

4.6) Jak du¿o miejsca w bazie danych jest - konieczne aby przechowywaæ dane ze zwyczajnego pliku +

4.6) Jak dużo miejsca w bazie danych jest + konieczne aby przechowywać dane ze zwyczajnego pliku tekstowego?

-

Baza danych PostgreSQL mo¿e potrzebowaæ do piêciu razy wiêcej - miejsca na przechowywanie danych z plików tekstowych ni¿ ich - objêto¶æ.

+

Baza danych PostgreSQL może potrzebować do pięciu razy więcej + miejsca na przechowywanie danych z plików tekstowych niż ich + objętość.

-

Jako przyk³ad mo¿emy rozwa¿yæ plik sk³adaj±cy siê z 100,000 linii - zbudowanych z liczby ca³kowitej oraz opisu tekstowego w ka¿dej. - Za³ó¿my, ¿e ¶rednio ka¿dy ³añcuch tekstu w linii zajmuje 20 - bajtów. Ca³y plik powinien zajmowaæ ok. 2.8 MB. Rozmiar pliku bazy danych w - PostgreSQL zawieraj±cego te dane mozna oszacowaæ na oko³o 6.4MB:

+

Jako przykład możemy rozważyć plik składający się z 100,000 linii + zbudowanych z liczby całkowitej oraz opisu tekstowego w każdej. + Załóżmy, że średnio każdy łańcuch tekstu w linii zajmuje 20 + bajtów. Cały plik powinien zajmować ok. 2.8 MB. Rozmiar pliku bazy danych w + PostgreSQL zawierającego te dane mozna oszacować na około 6.4MB:

-    36 bajtów: nag³ówek ka¿dego rzêdu w przybli¿eniu)
+    36 bajtów: nagłówek każdego rzędu w przybliżeniu)
     24 bajty:  jedno pole int i jedno pole typu text
-   + 4 bajty:  wka¼nik na stronie do krotki
+   + 4 bajty:  wkaźnik na stronie do krotki
    --------------------------------------------------
-    64 bajty w jednym rzêdzie
+    64 bajty w jednym rzędzie
 
-	Strona danych w PostgreSQL zajmuje 8192 bajtów (8 KB), wiêc:
+	Strona danych w PostgreSQL zajmuje 8192 bajtów (8 KB), więc:
 
-   8192 bajtów na stronê
-   ---------------------   =  128 rzêdów na jedn± strone w bazie (zaokr±glone w dó³)
-     64 bajtów na rz±d
+   8192 bajtów na stronę
+   ---------------------   =  128 rzędów na jedną strone w bazie (zaokrąglone w dół)
+     64 bajtów na rząd
 
-   100000 rzêdów danych
-   -----------------------  =  782 stron w bazie danych (zaokr±glone w górê)
-      128 rzêdów na stronê
+   100000 rzędów danych
+   -----------------------  =  782 stron w bazie danych (zaokrąglone w górę)
+      128 rzędów na stronę
 
-782 stron w bazie * 8192 bajtów na stronê  =  6,406,144 bajtów (6.4 MB)
+782 stron w bazie * 8192 bajtów na stronę  =  6,406,144 bajtów (6.4 MB)
 
-

Indeksy nie powoduj± du¿ego narzutu na zajmowane miejsce, - ale zawieraj± pewne dane, - wiêc w pewnych przypadkach moga byæ ca³kiem du¿e.

-

NULLe s± przechowywane jako mapy bitowe, wiêc u¿ywaj± bardzo ma³o +

Indeksy nie powodują dużego narzutu na zajmowane miejsce, + ale zawierają pewne dane, + więc w pewnych przypadkach moga być całkiem duże.

+

NULLe są przechowywane jako mapy bitowe, więc używają bardzo mało miejsca.

-

4.7) Jak mogê sprawdziæ jakie tabele, klucze, - bazy danych i u¿ytkownicy s± utworzeni?

+

4.7) Jak mogę sprawdzić jakie tabele, klucze, + bazy danych i użytkownicy są utworzeni?

-

psql ma ca³kiem du¿± ilo¶æ poleceñ z backslashem aby - wydobyæ takie informacje. Wprowad¼ \? aby zobaczyæ ich spis. Istniej± - tak¿e tablice systemowe rozpoczynaj±ce siê od pg_, zawieraj±ce - interesuj±ce Ciebie informacje. Wykonanie psql -l poka¿e spis +

psql ma całkiem dużą ilość poleceń z backslashem aby + wydobyć takie informacje. Wprowadź \? aby zobaczyć ich spis. Istnieją + także tablice systemowe rozpoczynające się od pg_, zawierające + interesujące Ciebie informacje. Wykonanie psql -l pokaże spis wszystkich baz danych.

-

Obejrzyj tak¿e plik pgsql/src/tutorial/syscat.source. - Zawiera on wiele z zapytañ typu SELECT, które s± - potrzebne aby wydobyæ informacje z tablic systemowych.

+

Obejrzyj także plik pgsql/src/tutorial/syscat.source. + Zawiera on wiele z zapytań typu SELECT, które są + potrzebne aby wydobyć informacje z tablic systemowych.

-

4.8) Moje zapytania s± wolne lub nie u¿ywaj± +

4.8) Moje zapytania są wolne lub nie używają kluczy. Dlaczego?

- Indeksy nie s± u¿ywane automatycznie przez k±¿de z zapytañ. Ideksy s± - u¿ywane jedynie gdy tabela jest odpowiedniego rozmiaru, wiêkszego ni¿ - wymagany minimalny, a zapytanie wybiera jedynie ma³y procent - zawarto¶ci tabeli. Wynika to z tego, ¿e losowy dostep do dysku - powodowany przez ideksowane poszukiwanie jest czasami wolniejsze ni¿ - poszukiwanie sekwencyjne bez u¿ycia kluczy. + Indeksy nie sÄ… używane automatycznie przez kążde z zapytaÅ„. Ideksy sÄ… + używane jedynie gdy tabela jest odpowiedniego rozmiaru, wiÄ™kszego niż + wymagany minimalny, a zapytanie wybiera jedynie maÅ‚y procent + zawartoÅ›ci tabeli. Wynika to z tego, że losowy dostep do dysku + powodowany przez ideksowane poszukiwanie jest czasami wolniejsze niż + poszukiwanie sekwencyjne bez użycia kluczy. -

¯eby zdecydowaæ czy indeks powinien byc u¿ywany, PostgreSQL musi - mieæ statystyki dotycz±ce danej tabeli. S± one gromadzone przez - u¿ycie polecenia VACUUM ANALYZE, lub poprostu - ANALYZE. u¿ywaj±c statystyk, optymalizator wie ile - rzêdów jest w tabeli i mo¿e lepiej okre¶liæ czy indeksy powinny byæ - u¿yte. Statystyki mog± byæ tak¿e pomocne w okre¶leniu najlepszej - kolejno¶ci wykonania z³±czenia (join) i jego sposobu. Gromadzenie - statystyk powinno siê odbywaæ w okre¶lonych interwa³ach czasu - poniewa¿ dane w tabelach zmieniaj± siê.

+

Żeby zdecydować czy indeks powinien byc używany, PostgreSQL musi + mieć statystyki dotyczące danej tabeli. Są one gromadzone przez + użycie polecenia VACUUM ANALYZE, lub poprostu + ANALYZE. używając statystyk, optymalizator wie ile + rzędów jest w tabeli i może lepiej określić czy indeksy powinny być + użyte. Statystyki mogą być także pomocne w określeniu najlepszej + kolejności wykonania złączenia (join) i jego sposobu. Gromadzenie + statystyk powinno się odbywać w określonych interwałach czasu + ponieważ dane w tabelach zmieniają się.

-

Indeksy nie s± zazwyczaj u¿ywane przez ORDER BY lub - przy wykonywaniu z³±czeñ (join). Sekwencyjne przeszukiwanie po którym - nastêpuje sortowanie jest zazwyczaj szybsze niê wyszukiwanie za - pomoc± indeksu na du¿ej tabeli.

-

Jakkolwiek LIMIT w po³±czeniu z ORDER BY - 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. +

Indeksy nie są zazwyczaj używane przez ORDER BY lub + przy wykonywaniu złączeń (join). Sekwencyjne przeszukiwanie po którym + następuje sortowanie jest zazwyczaj szybsze nię wyszukiwanie za + pomocą indeksu na dużej tabeli.

+

Jakkolwiek LIMIT w połączeniu z ORDER BY + 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.

     SELECT col
@@ -1045,147 +1045,147 @@
     LIMIT 1;					 
 	

- 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.

+ 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.

-

Kiedy u¿ywa siê operatorów dopasuj±cych takich jak - LIKE lub ~, indeksy bêd± u¿ywane jedynie w +

Kiedy używa się operatorów dopasujących takich jak + LIKE lub ~, indeksy będą używane jedynie w pewnych wypadkach:

    -
  • Pocz±tek wyszukiwania jest oparty na pocz±tku ³añcucha tekstu. +
  • PoczÄ…tek wyszukiwania jest oparty na poczÄ…tku Å‚aÅ„cucha tekstu.
      -
    • wzorce LIKE nie mog± siê zaczynaæ %
    • +
    • wzorce LIKE nie mogÄ… siÄ™ zaczynać %
    • dopasowania operatorem ~ (dopasowania regularne) - musz± siê zaczynaæ znakiem specjalnym ^.
    • + muszÄ… siÄ™ zaczynać znakiem specjalnym ^.
  • -
  • Pocz±tek wyszukiwania nie mo¿e siê zaczynaæ od klas znaków, np. +
  • PoczÄ…tek wyszukiwania nie może siÄ™ zaczynać 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 byæ uzyte przy wykonywaniu initdb
  • +
  • Standardowe locale C musi być uzyte przy wykonywaniu initdb
-

4.9) Jak mogê sprawdziæ w jakis sposób "query +

4.9) Jak mogę sprawdzić w jakis sposób "query optimizer" wykonuje moje zapytanie?

Zobacz manual dla polecenia EXPLAIN.

4.10) Co to jest "R-tree index"?

-

Indeks R-tree jest u¿ywany do indeksowania danych przestrzennych. - Indeks hasuuj±cy nie nadaje siê do wyszukiwania odleg³o¶ci. - Natomiast indeks typu B-tree mo¿e wyszukiwaæ odleglo¶ci jedynie w +

Indeks R-tree jest używany do indeksowania danych przestrzennych. + Indeks hasuujÄ…cy nie nadaje siÄ™ do wyszukiwania odlegÅ‚oÅ›ci. + Natomiast indeks typu B-tree może wyszukiwać odlegloÅ›ci jedynie w jednowymiarowych przestrzeniach. R-tree indeks radzi sobie z - przestrzeniami wielo-wymiarowymi. Dla przyk³adu, je¶li zostanie - za³o¿ony indeks typu R-tree na polu typu point, system mo¿e - bardziej wydajnie odpowiadaæ na zapytania typu + przestrzeniami wielo-wymiarowymi. Dla przykÅ‚adu, jeÅ›li zostanie + zaÅ‚ożony indeks typu R-tree na polu typu point, system może + bardziej wydajnie odpowiadać na zapytania typu "select all points within a bounding rectangle."

-

¬ród³owym dokumentem opisuj±cym oryginalnie projektowanie R-tree - indeksów jest:

+

Źródłowym dokumentem opisującym oryginalnie projektowanie R-tree + indeksów jest:

Guttman, A. "R-trees: A Dynamic Index Structure for Spatial Searching." Proceedings of the 1984 ACM SIGMOD Int'l Conf on Mgmt of Data, 45-57.

-

Ten dokument mo¿esz znale¼æ tak¿e w pracy Stonebraker'a "Readings in +

Ten dokument możesz znaleźć także w pracy Stonebraker'a "Readings in Database Systems".

-

Wbudowane indeksy R-trees radz± sobie w wielobokami i boxes. - Teoretycznie, indeksy R-tree mog± byæ rozszerzone o mo¿liwo¶ci - indeksowania w wiêcej wymiarowych przestrzeniach. W praktyce, - rozbudowa indeksów R-tree wymaga trochê pracy, a w tej chwili nie - dysponujemy jak±kolwiek dokumentacj± jak to zrobiæ.

+

Wbudowane indeksy R-trees radzą sobie w wielobokami i boxes. + Teoretycznie, indeksy R-tree mogą być rozszerzone o możliwości + indeksowania w więcej wymiarowych przestrzeniach. W praktyce, + rozbudowa indeksów R-tree wymaga trochę pracy, a w tej chwili nie + dysponujemy jakąkolwiek dokumentacją jak to zrobić.

4.11) Co to jest "Genetic Query Optimizer"?

-

Modu³ GEQO ma za zadanie przyspieszenie - optymalizacji zapytañ ³±cz±c wiele tabel za pomoc± algorytmów - genetycznych (Genetic Algorithm (GA)). Pozwala na u¿ywanie du¿ych - zapytañ ³±cz±cych tabele (join queries) bez wykorzystywania - zasobo¿ernego wyszukiwania.

+

Moduł GEQO ma za zadanie przyspieszenie + optymalizacji zapytań łącząc wiele tabel za pomocą algorytmów + genetycznych (Genetic Algorithm (GA)). Pozwala na używanie dużych + zapytań łączących tabele (join queries) bez wykorzystywania + zasobożernego wyszukiwania.

-

4.12) Jak mogê u¿ywaæ wyra¿eñ regularnych w - zapytaniach i zapytañ case-insensitive w wyra¿eniach +

4.12) 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?

+ Jak korzystać z indeksów dla zapytań case-insensitive? -

Operator ~ moze byæ wykorzystywany do wyszukiwania za - pomoc± wyra¿eñ regularnych, a - ~* do wyszukiwania case-insensitive z wyra¿eniami +

Operator ~ moze być wykorzystywany do wyszukiwania za + pomocÄ… wyrażeÅ„ regularnych, a + ~* do wyszukiwania case-insensitive z wyrażeniami regularnymi. - Wariant case-insensitive dla LIKE zosta³ nazwany + Wariant case-insensitive dla LIKE zostaÅ‚ nazwany ILIKE.

-

Porównania case-insensitive s± zazwyczaj wykonywane w nastêpuj±cy - sposób:

+

Porównania case-insensitive są zazwyczaj wykonywane w następujący + sposób:

     SELECT *
     FROM tab
     WHERE lower(col) = 'abc'
    
 
- W tym wypadku standardowe indeksy nie bêd± u¿ywane. Mo¿esz utworzyæ + W tym wypadku standardowe indeksy nie bÄ™dÄ… używane. Możesz utworzyć indeks funkcyjny, poprzez:
     CREATE INDEX tabindex on tab (lower(col));
    
 
-

4.13) Jak sprawdziæ w zapytaniu czy pole ma - warto¶æ NULL?

+

4.13) Jak sprawdzić w zapytaniu czy pole ma + wartość NULL?

-

Mo¿esz to sprawdziæ, testuj±c warto¶æ kolumny warunkiem +

Możesz to sprawdzić, testując wartość kolumny warunkiem IS NULL albo IS NOT NULL.

-

4.14) Jaka jest ró¿nica pomiêdzy ró¿nymi +

4.14) Jaka jest różnica pomiędzy różnymi typami tekstowymi (character types)?

-Type            Nazwa wewnêtrzna   Uwagi
+Type            Nazwa wewnętrzna   Uwagi
 --------------------------------------------------
-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)
+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
 
-

Je¶li bêdziesz przegl±daæ katalogi systemowe lub komunikaty o - b³êdach czêsto spotkasz siê z podanymi powy¿ej nazwami - wewnêtrznymi.

+

Jeśli będziesz przeglądać katalogi systemowe lub komunikaty o + błędach często spotkasz się z podanymi powyżej nazwami + wewnętrznymi.

-

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 TOAST, wiêc faktyczne - zu¿ycie miejsca na dysku mo¿e byæ mniejsze ni¿ oczekiwane.

+

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 TOAST, więc faktyczne + zużycie miejsca na dysku może być mniejsze niż oczekiwane.

VARCHAR(n) jest - najodpowiedniejszy do przechowywania ³añcuchów o ró¿nej d³ugo¶ci - ale okre¶la on maksymaln± jego d³ugo¶æ. + najodpowiedniejszy do przechowywania Å‚aÅ„cuchów o różnej dÅ‚ugoÅ›ci + ale okreÅ›la on maksymalnÄ… jego dÅ‚ugość. - TEXT jest najlepszy dla ³añcuchów o dowolnej d³ugo¶ci, - nie przekraczaj±cej 1GB.

+ TEXT jest najlepszy dla łańcuchów o dowolnej długości, + nie przekraczającej 1GB.

CHAR(n) 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 + Å‚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. - BYTEA s³u¿y do przechowywania danych binarnych, - w szczególno¶ci dla danych zawieraj±cych NULL bajty. - Wszystkie typy opisane tutaj maja podobne charakterystyki je¶li - chodzi o wydajno¶æ.

+ BYTEA służy do przechowywania danych binarnych, + w szczególności dla danych zawierających NULL bajty. + Wszystkie typy opisane tutaj maja podobne charakterystyki jeśli + chodzi o wydajność.

-

4.15.1) Jak mogê utworzyæ pole które samo - zwiêksza swoj± warto¶æ?

+

4.15.1) Jak mogę utworzyć pole które samo + zwiększa swoją wartość?

PostgreSQL ma zaimplementowany typ SERIAL. - Automatycznie tworzy sekwencjê i indeks na tej kolumnie. Dla + Automatycznie tworzy sekwencjÄ™ i indeks na tej kolumnie. Dla przykladu:

     CREATE TABLE person ( 
@@ -1193,7 +1193,7 @@ BYTEA           bytea              zmiennej d
         name TEXT 
     );
 
- zostanie automatycznie przt³umaczone na: + zostanie automatycznie prztÅ‚umaczone na:
     CREATE SEQUENCE person_id_seq;
     CREATE TABLE person ( 
@@ -1202,95 +1202,95 @@ BYTEA           bytea              zmiennej d
     );
     CREATE UNIQUE INDEX person_id_key ON person ( id );
 
- Wiêcej informacji o sekwencjach znajdziesz w manualu o - create_sequence. Mo¿esz tak¿e u¿yæ pola OID jako - unikalnej warto¶ci dla ka¿dego rzêdu danych. Je¶li bêdziesz - potrzebowa³ z backupowaæ dane robi±c dump bazy i odtworzyæ j±, musisz - u¿yc pg_dump z opcj± -o lub polecenia COPY - WITH OIDS aby zachowaæ OIDy. + WiÄ™cej informacji o sekwencjach znajdziesz w manualu o + create_sequence. Możesz także użyć pola OID jako + unikalnej wartoÅ›ci dla każdego rzÄ™du danych. JeÅ›li bÄ™dziesz + potrzebowaÅ‚ z backupować dane robiÄ…c dump bazy i odtworzyć jÄ…, musisz + użyc pg_dump z opcjÄ… -o lub polecenia COPY + WITH OIDS aby zachować OIDy. -

4.15.2) Jak pobraæ warto¶æ pola typu +

4.15.2) Jak pobrać wartość pola typu SERIAL po wykonaniu insert'u?

-

Jednym z podej¶æ jest pobranie kolejnej warto¶ci typu - SERIAL z sekwencji za pomoc± funkcji nextval() - zanim zostanie wstawiona, a pó¼niej nale¿y jej u¿yæ. U¿ywaj±c - przyk³adu z tabeli z punktu 4.15.1, mo¿e to - wygl±daæ w Perlu na przyk³ad w ten sposób:

+

Jednym z podejść jest pobranie kolejnej wartości typu + SERIAL z sekwencji za pomocą funkcji nextval() + zanim zostanie wstawiona, a później należy jej użyć. Używając + przykładu z tabeli z punktu 4.15.1, może to + wyglądać w Perlu na przykład w ten sposób:

     new_id = output of "SELECT nextval('person_id_seq')"
     INSERT INTO person (id, name) VALUES (new_id, 'Blaise Pascal');
 
- Bêdziesz mia³ wtedy t± warto¶æ przechowan± w zmiennej - new_id do u¿ytku w innych zapytaniach (np. jako klucz - obcy do tabeli person). Warto zwróciæ uwagê, ¿e nazwa + BÄ™dziesz miaÅ‚ wtedy tÄ… wartość przechowanÄ… w zmiennej + new_id do użytku w innych zapytaniach (np. jako klucz + obcy do tabeli person). Warto zwrócić uwagÄ™, że nazwa automatycznie utworzonej sekwencji - SEQUENCE bêdzie nastêpuj±ca: + SEQUENCE bÄ™dzie nastÄ™pujÄ…ca: <tabela>_<kolumnatypuserial>_seq, gdzie - tabela i kolumnatypuserial s± nazwami Twojej tabeli i + tabela i kolumnatypuserial sÄ… nazwami Twojej tabeli i Twojej kolumny typu SERIAL. -

Inne rozwi±zanie to u¿ycie funkcji currval() na pola typu - SERIAL po dodaniu nowej warto¶ci do rzêdu zawieraj±cego - kolumnê typu SERIAL z wstawion± domy¶lnie warto¶ci±, +

Inne rozwiązanie to użycie funkcji currval() na pola typu + SERIAL po dodaniu nowej wartości do rzędu zawierającego + kolumnę typu SERIAL z wstawioną domyślnie wartością, np.

     INSERT INTO person (name) VALUES ('Blaise Pascal');
     new_id = output of "SELECT currval('person_id_seq')";
 
- Ostatecznie mo¿esz u¿yæ OID - zwracanej po wykonaniu INSERT, chocia¿ to jest najmniej - przeno¶ne rozwi±zanie. - W Perlu, wykorzystuj±c bibliotekê DBI z modu³em Edmunda Mergla - DBD::Pg, oid jest dostêpny poprzez $sth->{pg_oid_status} po + Ostatecznie możesz użyć OID + zwracanej po wykonaniu INSERT, chociaż to jest najmniej + przenoÅ›ne rozwiÄ…zanie. + W Perlu, wykorzystujÄ…c bibliotekÄ™ DBI z moduÅ‚em Edmunda Mergla + DBD::Pg, oid jest dostÄ™pny poprzez $sth->{pg_oid_status} po wykonaniu $sth->execute(). -

4.15.3) Czy u¿ycie currval() i +

4.15.3) Czy użycie currval() i nextval() nie doprowadzi do race condition z innymi - u¿ytkownikami?

+ użytkownikami? -

Nie. currval() zwraca bie¿±c± warto¶æ przypisan± przez Twój - backend, a nie przez wszystkich u¿ytkowników.

+

Nie. currval() zwraca bieżącą wartość przypisaną przez Twój + backend, a nie przez wszystkich użytkowników.

-

4.15.4) Dlaczego numery sekwencji nie s± - ponownie u¿ywane przy przerwaniu transakcji? - Sk±d siê bior± luki w numerowaniu kolumny tabeli +

4.15.4) Dlaczego numery sekwencji nie są + ponownie używane przy przerwaniu transakcji? + Skąd się biorą luki w numerowaniu kolumny tabeli sekwancjami/SERIALem?

-

Aby poprawiæ zbie¿no¶æ (concurrency), warto¶ci sekwencji s± - podawane dzia³aj±cym transakcjom kiedy tego potrzebuj± i nie s± - blokowane dopóki transakcja siê nie zakoñczy. To spowoduje przerwy w +

Aby poprawić zbieżność (concurrency), wartości sekwencji są + podawane działającym transakcjom kiedy tego potrzebują i nie są + blokowane dopóki transakcja się nie zakończy. To spowoduje przerwy w numerowaniu z przerwanych transakcji.

4.16) Co to jest OID? Co to jest TID?

-

OID s± PostgreSQL'owym rozwi±zaniem problemu - unikalnych numerów rzêdów. Ka¿dy rz±d tworzony przez PostgreSQL +

OID sÄ… PostgreSQL'owym rozwiÄ…zaniem problemu + unikalnych numerów rzÄ™dów. Każdy rzÄ…d tworzony przez PostgreSQL otrzymuje unikalny OID. Wszystkie OIDy generowane podczas procesu uruchamianego przez skrypt - initdb maj± mniejsz± warto¶æ ni¿ 16384 (na podstawie pliku + initdb majÄ… mniejszÄ… wartość niż 16384 (na podstawie pliku backend/access/transam.h). Wszystkie - OIDy tworzone przez u¿ytkownika sa równe lub wiêksze - podanej wcze¶niej warto¶ci. Domy¶lnie - wszystkie OIDy s± unikalne nie tylko w pojedyñczej - tabeli czy bazie danych ale w ca³ej instalacji PostgreSQL.

+ OIDy tworzone przez użytkownika sa równe lub większe + podanej wcześniej wartości. Domyślnie + wszystkie OIDy są unikalne nie tylko w pojedyńczej + tabeli czy bazie danych ale w całej instalacji PostgreSQL.

-

PostgreSQL u¿ywa OIDów w swoim wewnêtrznym systemie - tabel, aby mo¿na by³o je ³±czyæ. - Te OIDy mog± byc u¿ywane aby identyfikowac rzêdy w - tabelach i wykorzystywaæ je w z³±czeniach tych tabel. Zaleca siê aby¶ - u¿ywa³ typu OID aby przechowywaæ warto¶ci - OID. Mo¿esz utworzyæ indeks na polu - OID aby dostêp do niego by³ szybszy.

+

PostgreSQL używa OIDów w swoim wewnętrznym systemie + tabel, aby można było je łączyć. + Te OIDy mogą byc używane aby identyfikowac rzędy w + tabelach i wykorzystywać je w złączeniach tych tabel. Zaleca się abyś + używał typu OID aby przechowywać wartości + OID. Możesz utworzyć indeks na polu + OID aby dostęp do niego był szybszy.

-

OID s± przypisane do wszystkich rzêdów z jednego - g³ównego miejsca i u¿ywane sa przez wszystkie bazy danych. Je¶li - chcia³by¶ zmieniæ OID na co¶ innego, lub je¶li - chcia³by¶ zrobiæ kopiê tabeli, z orginalnymi OIDami - nie ma ¿adnego przeciwwskazania aby¶ to zrobi³:

+

OID są przypisane do wszystkich rzędów z jednego + głównego miejsca i używane sa przez wszystkie bazy danych. Jeśli + chciałbyś zmienić OID na coś innego, lub jeśli + chciałbyś zrobić kopię tabeli, z orginalnymi OIDami + nie ma żadnego przeciwwskazania abyś to zrobił:

         CREATE TABLE new_table(old_oid oid, mycol int);
@@ -1304,21 +1304,21 @@ BYTEA           bytea              zmiennej d
 -->
 
-

OIDy s± przechowywane jako cztero-bajtowe liczby - ca³kowite i skoñcz± siê po osi±gniêciu czterech miliardów. Nikt jak - dot±d nie zg³osi³ aby co¶ takiego siê stalo, ale mamy zamiar pozbyæ - siê tego ograniczenia zanim kto¶ to zg³osi.

+

OIDy są przechowywane jako cztero-bajtowe liczby + całkowite i skończą się po osiągnięciu czterech miliardów. Nikt jak + dotąd nie zgłosił aby coś takiego się stalo, ale mamy zamiar pozbyć + się tego ograniczenia zanim ktoś to zgłosi.

-

TID s± u¿ywane aby zidentyfikowaæ konkretne rzêdy z - blokami i warto¶ci± ofsetów. TIDy zmieniaj± siê wraz - ze zmianami rzêdów. Sa u¿ywane przez indeksy, aby wskazywaæ do - fizycznych rzêdów.

+

TID są używane aby zidentyfikować konkretne rzędy z + blokami i wartością ofsetów. TIDy zmieniają się wraz + ze zmianami rzędów. Sa używane przez indeksy, aby wskazywać do + fizycznych rzędów.

-

4.17) Jakie jest znaczenie niektórych terminów +

4.17) Jakie jest znaczenie niektórych terminów w PostgreSQL?

-

W czê¶ci kodu ¼ród³owego i starszej dokumentacji u¿ywamy terminów, - które maj± bardziej ogólne znaczenie. Oto niektóre z nich:

+

W części kodu źródłowego i starszej dokumentacji używamy terminów, + które mają bardziej ogólne znaczenie. Oto niektóre z nich:

  • table, relation, class
  • @@ -1340,70 +1340,70 @@ BYTEA bytea zmiennej d
  • range variable, table name, table alias
-

Listê terminów zwi±zanych z bazami danych mo¿esz znale¼æ pod tym +

Listę terminów związanych z bazami danych możesz znaleźć pod tym adresem:http://hea-www.harvard.edu/MST/simul/software/docs/pkgs/pgsql/glossary/glossary.html.

-

4.18) Sk±d bierze siê ten b³±d "ERROR: +

4.18) Skąd bierze się ten błąd "ERROR: Memory exhausted in AllocSetAlloc()"?

- 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 + 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 postmaster'a:

     ulimit -d 262144
     limit datasize 256m
 
- W zale¿no¶ci od shell'a jakiego u¿ywasz jedno z tych poleceñ mo¿e nie - zadzia³aæ, ale to ustawienie pozwoli ustawiæ segment danych dla - procesu znacznie wiêkszy i byæ mo¿e pozwoli wykonaæ zapytanie. - To polecenie zadzia³a dla bie¿±cego procesu oraz wszytkich podprocesów - utworzonych po wykonaniu polecenia. Je¶li ten problem wystêpuje z - klientem SQL, poniewa¿ backend zwraca zbyt du¿o danych, - spróbuj wykonaæ to polecenie przed uruchomieniem klienta. + W zależnoÅ›ci od shell'a jakiego używasz jedno z tych poleceÅ„ może nie + zadziaÅ‚ać, ale to ustawienie pozwoli ustawić segment danych dla + procesu znacznie wiÄ™kszy i być może pozwoli wykonać zapytanie. + To polecenie zadziaÅ‚a dla bieżącego procesu oraz wszytkich podprocesów + utworzonych po wykonaniu polecenia. JeÅ›li ten problem wystÄ™puje z + klientem SQL, ponieważ backend zwraca zbyt dużo danych, + spróbuj wykonać to polecenie przed uruchomieniem klienta. -

4.19) Jak sprawdziæ jakiej wersji PostgreSQL - u¿ywam?

+

4.19) Jak sprawdzić jakiej wersji PostgreSQL + używam?

W psql, wpisz select version();

-

4.20) Dlaczego operacje, które wykonujê na - du¿ych obiektach "large-object" zwracaj± komunikat: +

4.20) Dlaczego operacje, które wykonuję na + dużych obiektach "large-object" zwracają komunikat: "invalid large obj descriptor"?

-

Musisz u¿yæ BEGIN WORK i COMMIT - przed i po u¿yciu uchwytu do du¿ego obiektu, tzn. musisz nimi otoczyæ +

Musisz użyć BEGIN WORK i COMMIT + przed i po użyciu uchwytu do dużego obiektu, tzn. musisz nimi otoczyć funkcje lo_open ... lo_close.

-

Obecnie PostgreSQL u¿ywj±c "rule" zamyka uchwyt do du¿ego obiektu - przy ka¿dym wywo³aniu "commit". Wiêc pierwsze próba zrobienia +

Obecnie PostgreSQL używjÄ…c "rule" zamyka uchwyt do dużego obiektu + przy każdym wywoÅ‚aniu "commit". WiÄ™c pierwsze próba zrobienia czegokolwiek z uchwytem spowoduje wypisanie: invalid large obj - descriptor. Kod, który do tej pory dzia³a³ (przynajmniej - wiêkszo¶æ razy) bêdzie teraz generowa³ informacjê o b³êdzie je¶li nie - bêdziesz korzysta³ z transakcji.

+ descriptor
. Kod, który do tej pory działał (przynajmniej + większość razy) będzie teraz generował informację o błędzie jeśli nie + będziesz korzystał z transakcji.

-

Je¶li u¿ywasz interfejsu klienta jak ODBC byæ mo¿e - bêdziesz musia³ ustawiæ auto-commit off.

+

Jeśli używasz interfejsu klienta jak ODBC być może + będziesz musiał ustawić auto-commit off.

-

4.21) Jak stworzyæ kolumnê której domy¶ln± - warto¶ci± bêdzie bie¿±cy czas?

+

4.21) Jak stworzyć kolumnę której domyślną + wartością będzie bieżący czas?

-

U¿yj CURRENT_TIMESTAMP:

+

Użyj CURRENT_TIMESTAMP:

 CREATE TABLE test (x int, modtime timestamp DEFAULT CURRENT_TIMESTAMP );
 
 
-

4.22) Dlaczego zapytania u¿ywaj±ce +

4.22) Dlaczego zapytania używające IN sa takie wolne?

-

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æ IN przez +

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ć IN przez EXISTS:

 SELECT *
@@ -1419,18 +1419,18 @@ BYTEA           bytea              zmiennej d
 
 

- Aby to rozwi±zanie by³o szybkie, subcol powinna byæ kolumn± - indeksowan±. + Aby to rozwiÄ…zanie byÅ‚o szybkie, subcol powinna być kolumnÄ… + indeksowanÄ….

- 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. + 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.

-

4.23) Jak wykonaæ "outer join"?

+

4.23) Jak wykonać "outer join"?

PostgreSQL ma zaimplementowane outer join - wykorzystuj±c standardow± sk³adniê SQL. Poni¿ej dwa przyk³ady:

+ wykorzystując standardową składnię SQL. Poniżej dwa przykłady:

     SELECT *
@@ -1442,19 +1442,19 @@ BYTEA           bytea              zmiennej d
     FROM t1 LEFT OUTER JOIN t2 USING (col);
 
-

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). - RIGHT join doda³by niepo³±czone rzêdy z tabeli t2. - FULL join zwróci³by rzêdy plus dodatkowo wszystkie - rzêdy z tabel t1 i t2. S³owo OUTER jest opcjonalne i - jest dodawane domy¶lnie przy +

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). + RIGHT join dodaÅ‚by niepołączone rzÄ™dy z tabeli t2. + FULL join zwróciÅ‚by rzÄ™dy plus dodatkowo wszystkie + rzÄ™dy z tabel t1 i t2. SÅ‚owo OUTER jest opcjonalne i + jest dodawane domyÅ›lnie przy LEFT, RIGHT, i FULL - join'ach. Zwyk³e join'y s± nazywane INNER joins.

+ join'ach. Zwykłe join'y są nazywane INNER joins.

-

W poprzednich wersjach "outer joins" mog± byæ zasymulowane poprzez - u¿ycie slowa kluczowego - UNION i NOT IN. Dla przyk³adu, ³±cz±c - tabele tab1 i tab2, nastêpuj±ce zapytanie wykonuje +

W poprzednich wersjach "outer joins" mogą być zasymulowane poprzez + użycie slowa kluczowego + UNION i NOT IN. Dla przykładu, łącząc + tabele tab1 i tab2, następujące zapytanie wykonuje outer join:

@@ -1469,103 +1469,103 @@ BYTEA bytea zmiennej d ORDER BY col1
-

4.24) Jak wykonywaæ zapytanie u¿ywaj±ce kilku - baz danych jednocze¶nie?

+

4.24) Jak wykonywać zapytanie używające kilku + baz danych jednocześnie?

-

Nie ma takiej mo¿liwo¶ci aby w zapytaniu odpytawaæ inn± baze danych - poza bie¿±c±. Poniewa¿ PostgreSQL ³aduje specyficzne dla bazy danych - katalogi systemowe, nie jest do koñca jasne jak zapytanie pomiêdzy - ró¿nymi bazami danych powinno siê zachowywaæ.

+

Nie ma takiej możliwości aby w zapytaniu odpytawać inną baze danych + poza bieżącą. Ponieważ PostgreSQL ładuje specyficzne dla bazy danych + katalogi systemowe, nie jest do końca jasne jak zapytanie pomiędzy + różnymi bazami danych powinno się zachowywać.

-

contrib/dblink 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± +

contrib/dblink 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.

-

4.25) Jak zwróciæ w funkcji wiele rzêdów lub +

4.25) Jak zwrócić w funkcji wiele rzędów lub kolumn?

-

Mo¿esz w ³atwy sposób zwracaæ wiele rzêdów lub kolumn u¿ywaj±c +

Możesz w łatwy sposób zwracać wiele rzędów lub kolumn używając funkcji z: http://techdocs.postgresql.org/guides/SetReturningFunctions.

-

4.26) Dlaczego nie mogê w sposób pewny - tworzyæ/usuwaæ tabel tymczasowych w funkcjach PL/PgSQL?

+

4.26) Dlaczego nie mogę w sposób pewny + tworzyć/usuwać tabel tymczasowych w funkcjach PL/PgSQL?

- 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 + 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.

-

4.27) Jakie s± mo¿liwo¶ci replikacji w PostgreSQL?

+

4.27) Jakie są możliwości replikacji w PostgreSQL?

- Jest kilka opcji aby stosowaæ replikacjê typu master/slave. Ten typ + 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 + slave może jedynie te zmiany odczytywać. Na stronie http://gborg.PostgreSQL.org/genpage?replication_research - znajduje siê ich lista. Replikacja typu multi-master jest w trakcie - prac, opis projektu znajduje siê pod adresem: http://gborg.PostgreSQL.org/project/pgreplication/projdisplay.php.

-

4.28) Jakie mo¿liwo¶ci szyfrowania oferuje +

4.28) Jakie możliwości szyfrowania oferuje PostgreSQL?

    -
  • contrib/pgcrypto zawiera wiele funkcji za pomoc±, których mo¿emy u¿ywaæ +
  • contrib/pgcrypto zawiera wiele funkcji za pomocÄ…, których możemy używać kryptografii w zapytaniach SQL.
  • -
  • 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 +
  • 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).
  • -
  • 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.
  • -
  • Serwer mo¿e dzia³aæ u¿ywaj±c szyfrowanego systemu plików.
  • +
  • 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.
  • +
  • Serwer może dziaÅ‚ać używajÄ…c szyfrowanego systemu plików.

Rozwijanie PostgreSQL

-

5.1) Napisa³em w³asn± funkcjê. Kiedy u¿yjê jej - w psql, program zrzuca pamiêæ (dump core)?

+

5.1) Napisałem własną funkcję. Kiedy użyję jej + w psql, program zrzuca pamięć (dump core)?

-

Problem mo¿e byæ spowodowany przez bardzo wiele rzeczy. Spróbuj - najpierw przetestowaæ Twoj± funkcjê w samodzielnie dzia³aj±cym programie. +

Problem może być spowodowany przez bardzo wiele rzeczy. Spróbuj + najpierw przetestować Twoją funkcję w samodzielnie działającym programie.

-

5.2) Jak mogê dodaæ/zg³osiæ nowe typy czy +

5.2) Jak mogę dodać/zgłosić nowe typy czy funkcje do PostgreSQL?

-

Wy¶lij Twoje propozycje na listê mailow± pgsql-hackers, - wtedy prawdopodobnie Twój kod znajdzie siê w katalogu contrib/.

+

Wyślij Twoje propozycje na listę mailową pgsql-hackers, + wtedy prawdopodobnie Twój kod znajdzie się w katalogu contrib/.

-

5.3) Jak napisaæ funkcjê C zwracaj±c± krotkê +

5.3) Jak napisać funkcję C zwracającą krotkę (tuple)?

- 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 contrib/tablefunc. + 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 contrib/tablefunc.

-

5.4) Zmieni³em plik ¼ród³owy. Dlaczego po - rekompilacji nie widaæ zmiany?

+

5.4) Zmieniłem plik źródłowy. Dlaczego po + rekompilacji nie widać zmiany?

-

Pliki Makefiles nie maj± dorzuconych odpowiednich - zale¿no¶ci dla plików nag³ówkowych (include files). Wykonaj najpierw - make clean, a nastêpnie ponownie make. - Je¶li u¿ywasz GCC mo¿esz u¿yæ opcji +

Pliki Makefiles nie majÄ… dorzuconych odpowiednich + zależnoÅ›ci dla plików nagłówkowych (include files). Wykonaj najpierw + make clean, a nastÄ™pnie ponownie make. + JeÅ›li używasz GCC możesz użyć opcji --enable-depend przy wykonywaniu configure aby - kompilator móg³ okre¶liæ zale¿no¶ci samodzielnie. + kompilator mógÅ‚ okreÅ›lić zależnoÅ›ci samodzielnie.

diff --git a/doc/src/FAQ/FAQ_turkish.html b/doc/src/FAQ/FAQ_turkish.html index 20f970ab8d1..13c6f7fd43e 100644 --- a/doc/src/FAQ/FAQ_turkish.html +++ b/doc/src/FAQ/FAQ_turkish.html @@ -1,8 +1,8 @@ - - PostgreSQL Sýkça Sorulan Sorular - Türkçe + + PostgreSQL Sıkça Sorulan Sorular - Türkçe