diff options
author | Bruce Momjian | 2004-03-05 19:57:22 +0000 |
---|---|---|
committer | Bruce Momjian | 2004-03-05 19:57:22 +0000 |
commit | 49bc9c45c9aae7710da4ec4d97b1988f8ed089ef (patch) | |
tree | 9fde31e6dee2ba437c9be60d7bef135e8d98b8fa /doc/src | |
parent | aeda110cb9a905e6ad579184a7959e29f9f59a89 (diff) |
Brand 7.4.2. Release notes still need work.
Diffstat (limited to 'doc/src')
-rw-r--r-- | doc/src/FAQ/FAQ.html | 25 | ||||
-rw-r--r-- | doc/src/FAQ/FAQ_DEV.html | 9 | ||||
-rw-r--r-- | doc/src/FAQ/FAQ_german.html | 53 | ||||
-rw-r--r-- | doc/src/FAQ/FAQ_polish.html | 511 | ||||
-rw-r--r-- | doc/src/FAQ/FAQ_russian.html | 17 |
5 files changed, 374 insertions, 241 deletions
diff --git a/doc/src/FAQ/FAQ.html b/doc/src/FAQ/FAQ.html index 764d2d82d09..7ff1653ef1c 100644 --- a/doc/src/FAQ/FAQ.html +++ b/doc/src/FAQ/FAQ.html @@ -10,14 +10,13 @@ alink="#0000ff"> <H1>Frequently Asked Questions (FAQ) for PostgreSQL</H1> - <P>Last updated: Sat Nov 29 23:54:03 EST 2003</P> + <P>Last updated: Sat Feb 7 22:16:21 EST 2004</P> <P>Current maintainer: Bruce Momjian (<A href= "mailto:pgman@candle.pha.pa.us">pgman@candle.pha.pa.us</A>)<BR> </P> - <P>The most recent version of this document can be viewed at <A - href= + <P>The most recent version of this document can be viewed at <A href= "http://www.PostgreSQL.org/docs/faqs/FAQ.html">http://www.PostgreSQL.org/docs/faqs/FAQ.html</A>.</P> <P>Platform-specific questions are answered at <A href= @@ -157,7 +156,8 @@ <H4><A name="1.1">1.1</A>) What is PostgreSQL? How is it pronounced?</H4> - <P>PostgreSQL is pronounced <I>Post-Gres-Q-L</I>.</P> + <P>PostgreSQL is pronounced <I>Post-Gres-Q-L</I>. The name "Postgres" is + also used in conversation.</P> <P>PostgreSQL is an enhancement of the POSTGRES database management system, a next-generation <SMALL>DBMS</SMALL> research prototype. @@ -170,8 +170,12 @@ developers who all subscribe to the PostgreSQL development mailing list. The current coordinator is Marc G. Fournier (<A href= "mailto:scrappy@PostgreSQL.org">scrappy@PostgreSQL.org</A>). (See - section <a href="#1.6">1.6</a> on how to join). This team is now - responsible for all development of PostgreSQL.</P> + section <a href="#1.6">1.6</a> on how to join). This team is now + responsible for all development of PostgreSQL. It is a community + project and is not controlled by any company. To get involved, see + the developer's FAQ,<A href= + "http://www.PostgreSQL.org/docs/faqs/FAQ_DEV.html">http://www.PostgreSQL.org/docs/faqs/FAQ_DEV.html</A> + </P> <P>The authors of PostgreSQL 1.01 were Andrew Yu and Jolly Chen. Many others have contributed to the porting, testing, debugging, @@ -316,7 +320,7 @@ <A href="http://www.PostgreSQL.org">http://www.PostgreSQL.org</A> </BLOCKQUOTE> - <P>There is also an IRC channel on EFNet and Freenode, + <P>There is also an IRC channel on Freenode and EFNet, channel <I>#PostgreSQL</I>. You can use the Unix command <CODE>irc -c '#PostgreSQL' "$USER" irc.phoenix.net.</CODE> or <CODE>irc -c '#PostgreSQL' "$USER" irc.freenode.net.</CODE></P> @@ -326,7 +330,7 @@ <H4><A name="1.7">1.7</A>) What is the latest release?</H4> - <P>The latest release of PostgreSQL is version 7.4.</P> + <P>The latest release of PostgreSQL is version 7.4.1.</P> <P>We plan to have major releases every six to eight months.</P> @@ -446,7 +450,8 @@ release. There is an interesting Web page comparing PostgreSQL to MySQL at <A href="http://openacs.org/philosophy/why-not-mysql.html"> http://openacs.org/philosophy/why-not-mysql.html</A> Also, MySQL is - is a company that distributes its products via open source, not an + is a company that distributes its products via open source, and requires + a commercial license for close-source software, not an open source development community like PostgreSQL.<BR> <BR> @@ -927,7 +932,7 @@ <P>Indexes do not require as much overhead, but do contain the data that is being indexed, so they can be large also.</P> - <P><SMALL>NULL</SMALL>s are stored in bitmaps, so they + <P><SMALL>NULL</SMALL>s are stored as bitmaps, so they use very little space.</P> <H4><A name="4.7">4.7</A>) How do I find out what tables, indexes, diff --git a/doc/src/FAQ/FAQ_DEV.html b/doc/src/FAQ/FAQ_DEV.html index 538d4d1b08d..9775e6c262b 100644 --- a/doc/src/FAQ/FAQ_DEV.html +++ b/doc/src/FAQ/FAQ_DEV.html @@ -12,16 +12,15 @@ <H1>Developer's Frequently Asked Questions (FAQ) for PostgreSQL</H1> - <P>Last updated: Sat Nov 29 23:56:43 EST 2003</P> + <P>Last updated: Tue Feb 10 10:16:31 EST 2004</P> <P>Current maintainer: Bruce Momjian (<A href= "mailto:pgman@candle.pha.pa.us">pgman@candle.pha.pa.us</A>)<BR> </P> - <P>The most recent version of this document can be viewed at the - postgreSQL Web site, <A href= - "http://www.PostgreSQL.org">http://www.PostgreSQL.org</A>.<BR> - </P> + <P>The most recent version of this document can be viewed at <A href= + "http://www.PostgreSQL.org/docs/faqs/FAQ_DEV.html">http://www.PostgreSQL.org/docs/faqs/FAQ_DEV.html</A>.</P> + <HR> <BR> diff --git a/doc/src/FAQ/FAQ_german.html b/doc/src/FAQ/FAQ_german.html index 5042cdfdca9..afa1087f146 100644 --- a/doc/src/FAQ/FAQ_german.html +++ b/doc/src/FAQ/FAQ_german.html @@ -14,7 +14,7 @@ href="mailto:pgman@candle.pha.pa.us">pgman@candle.pha.pa.us</a>).</p> <p>Deutsche Übersetzung von Ian Barwick (<a href="mailto:barwick@gmx.net">barwick@gmx.net</a>).</p> - <p>Letzte Aktualisierung der deutschen Übersetzung: Di., den 02.09.2003, 10:00 CET</p> + <p>Letzte Aktualisierung der deutschen Übersetzung: Fr., den 02.01.2004, 07:30 CET</p> <p>Die aktuellste Version dieses Dokuments liegt auf der PostgreSQL Website:</p> <ul> @@ -220,7 +220,7 @@ href="mailto:pgman@candle.pha.pa.us">pgman@candle.pha.pa.us</a>).</p> in der Vorbereitung.</p> <p>Weitere Informationen zum Status von PostgreSQL auf der Microsoft-Plattform - befinden sich unter <a href="http://techdocs.postgresql.org/guides/Windows">http://techdocs.postgresql.org/guides/Windows</a> (en.).</p> + befinden sich unter <a href="http://techdocs.postgresql.org/guides/Windows">http://techdocs.postgresql.org/guides/Windows</a> (en.) sowie <a href="http://momjian.postgresql.org/main/writings/pgsql/win32.html"> http://momjian.postgresql.org/main/writings/pgsql/win32.html</a> (en.).</p> <p>Eine Portierung für Novell Netware 6 gibt es unter <a href="http://forge.novell.com">http://forge.novell.com</a>.</p> @@ -273,9 +273,10 @@ href="mailto:pgman@candle.pha.pa.us">pgman@candle.pha.pa.us</a>).</p> <blockquote> <a href="http://www.PostgreSQL.org">http://www.PostgreSQL.org</a> </blockquote> - <p>Es gibt außerdem einen IRC-Channel bei EFNet und bei OpenProjects, Channel - <em>#PostgreSQL</em>. Der FAQ-Autor Bruce Momjian nutzt den Unix-Befehl: - <small>irc -c '#PostgreSQL' "$USER" irc.phoenix.net</small> um daran teilzunehmen.</p> + <p>Es gibt außerdem einen IRC-Channel bei EFNet und bei Freenode, Channel + <em>#PostgreSQL</em>. Unter UNIX/Linux können Sie mit z.B. + <small>irc -c '#PostgreSQL' "$USER" irc.phoenix.net</small> bzw. <small>irc -c + '#PostgreSQL' "$USER" irc.freenode.net.</small> daran teilnehmen.</p> <p>Eine Liste von Unternehmen, die Support für PostgreSQL auf kommerzieller Basis leisten, kann unter @@ -284,7 +285,7 @@ href="mailto:pgman@candle.pha.pa.us">pgman@candle.pha.pa.us</a>).</p> <h4><a name="1.7">1.7</a>) Was ist die neueste Version von PostgreSQL?</h4> - <p>Die neueste Version von PostgreSQL ist 7.3.4 .</p> + <p>Die neueste Version von PostgreSQL ist 7.4.1 .</p> <p>Die Freigabe einer neuen Version erfolgt im Schnitt ca. dreimal pro Jahr.</p> @@ -374,13 +375,15 @@ href="mailto:pgman@candle.pha.pa.us">pgman@candle.pha.pa.us</a>).</p> <dt><b>Performanz</b></dt> <dd><p>PostgreSQL weist eine Performanz auf, die mit der von kommerziellen und anderen Open-Source-Datenbanken vergleichbar ist. In - manchen Bereichen ist es schneller, in anderen langsamen. Im - Vergleich zu MySQL oder abgespeckten Datenbank-Systemen sind - INSERT- und UPDATE-Anweisungen aufgrund des Transaktionsaufwands - langsamer. MySQL hat allerdings keine der oben erwähnten - Eigenschaften. PostgreSQL setzt auf Zuverlässigkeit und - Funktionsumfang, obwohl selbstredend ständig an Performanz- - Verbesserungen gearbeitet wird. Ein interessanter Vergleich + manchen Bereichen ist es schneller, in anderen langsamer.</p> + <p>Im Vergleich zu MySQL oder abgespeckten Datenbank-Systemen + ist PostgreSQL in Lastsituationen - z.B. bei zeitgleichen + Zugriffen durch mehrere Nutzer, komplexen Abfragen oder gleichzeitigen + Lese- und Schreibzugriffen schneller. MySQL ist nur bei einfacheren + SELECT-Abfragen mit wenigen Nutzern schneller. MySQL hat allerdings + wenige der oben erwähnten Eigenschaften. PostgreSQL setzt auf + Zuverlässigkeit und Funktionsumfang, dabei wird selbstredend ständig + an Performanz-Verbesserungen gearbeitet. Ein interessanter Vergleich zwischen PostgreSQL und MySQL befindet sich unter dieser URL: <a href="http://openacs.org/philosophy/why-not-mysql.html">http://openacs.org/philosophy/why-not-mysql.html</a></p> </dd> @@ -479,9 +482,8 @@ href="mailto:pgman@candle.pha.pa.us">pgman@candle.pha.pa.us</a>).</p> <p>Es gibt mehrere grafische Schnittstellen für PostgreSQL, darunter PgAccess ( <a href="http://www.pgaccess.org">http://www.pgaccess.org</a>), - PgAdmin II (<a - href="http://www.pgadmin.org">http://www.pgadmin.org</a>, - nur für Win32), RHDB Admin (<a + PgAdmin III (<a + href="http://www.pgadmin.org">http://www.pgadmin.org</a>, RHDB Admin (<a href="http://sources.redhat.com/rhdb/">http://sources.redhat.com/rhdb/ </a>) und Rekall (<a href="http://www.thekompany.com/products/rekall/"> http://www.thekompany.com/products/rekall/</a>, proprietär). Es gibt @@ -785,7 +787,7 @@ href="mailto:pgman@candle.pha.pa.us">pgman@candle.pha.pa.us</a>).</p> <pre> Maximale Größe eine Datenbank? unbeschränkt (es existieren Datenbanken mit 4TB) - Maximale Größe einer Tabelle? 16 TB + Maximale Größe einer Tabelle? 32 TB Maximale Größe einer Zeile? 1,6 TB Maximale Größe einer Spalte? 1 GB Maximale Anzahl von Zeilen in einer Tabelle? @@ -799,7 +801,7 @@ href="mailto:pgman@candle.pha.pa.us">pgman@candle.pha.pa.us</a>).</p> verfügbaren Platten- und Speicherressourcen eingeschränkt sind. Extreme Größen können zu Leistungseinbußen führen.</p> - <p>Die maximale Tabellengröße von 16 TB benötigt keine Large-File-Unterstützung + <p>Die maximale Tabellengröße von 32 TB benötigt keine Large-File-Unterstützung im Betriebssystem. Große Tabellen werden in Dateien mit einer Größe von 1 GB aufgeteilt, wodurch etwaige dateisystem-bedingte Beschränkungen nicht relevant sind.</p> @@ -1012,7 +1014,7 @@ BYTEA bytea Bytearray mit variabler Länge Werts?</h4> <p>PostgreSQL bietet einen <small>SERIAL</small>-Datentyp. Dieser erzeugt automatisch - eine Sequenz und einen Index auf die angegebene Spalte. Zum Beispiel:</p> + eine Sequenz auf die angegebene Spalte. Zum Beispiel:</p> <pre> CREATE TABLE person ( id SERIAL, @@ -1025,7 +1027,6 @@ BYTEA bytea Bytearray mit variabler Länge id INT4 NOT NULL DEFAULT nextval('person_id_seq'), name TEXT ); - CREATE UNIQUE INDEX person_id_key ON person ( id ); </pre><p> umgewandelt.</p> <p>Die <em>create_sequence</em> Man-Page liefert weitere Informationen über Sequenzen. @@ -1180,8 +1181,8 @@ BYTEA bytea Bytearray mit variabler Länge <h4><a name="4.22">4.22</a>) Warum sind meine Unterabfragen (subqueries), die IN verwenden, so langsam?</h4> - <p>Derzeit werden Unterabfragen mit der äusseren Abfrage verbunden, indem - für jede Reihe der äusseren Query die Ergebnisse der Unterabfrage + <p>In Versionen vor 7.4 werden Unterabfragen mit der äusseren Abfrage verbunden, + in dem für jede Reihe der äusseren Query die Ergebnisse der Unterabfrage sequentiell geprüft werden. Um dies zu vermeiden, kann man <small>IN</small> durch <small>EXISTS</small> ersetzen, z.B.:</p> <pre> @@ -1196,8 +1197,10 @@ BYTEA bytea Bytearray mit variabler Länge WHERE EXISTS (SELECT spalte2 FROM tabelle_2 WHERE spalte1 = spalte2) </pre> <p> Damit diese Abfrage effizient durchgeführt wird, sollte für '<em>spalte2</em>' - ein Index angelegt worden sein. Die Einschränkung von Abfragen mit <small>IN</small> - wird in der nächsten PostgreSQL-Version (7.4) behoben werden.</p> + ein Index angelegt worden sein. Ab PostgreSQL 7.4 <small>IN</small> verwendet + die gleichen Methoden wie die normale Tabellenverknüpfung und ist daher soger + <small>EXISTS</small> vorzuziehen. + </p> <h4><a name="4.23">4.23</a>) Wie führe ich einen <small>OUTER JOIN</small> durch?</h4> @@ -1355,8 +1358,6 @@ BYTEA bytea Bytearray mit variabler Länge entgegen, verweise jedoch auf die Mailing-Listen als schnelle und zuverlässige Anlaufstellen.</p> - <p>Diese Übersetzung basiert teilweise auf einer früheren Übersetzung von Karsten - Schulz (<a href="mailto:schulz@linux-systemhaus.de">schulz@linux-systemhaus.de</a>).</p> </body> </html> diff --git a/doc/src/FAQ/FAQ_polish.html b/doc/src/FAQ/FAQ_polish.html index 56a052cf66f..85e04fbaf75 100644 --- a/doc/src/FAQ/FAQ_polish.html +++ b/doc/src/FAQ/FAQ_polish.html @@ -15,7 +15,9 @@ <H1>Frequently Asked Questions (FAQ) o PostgreSQL</H1> - <P>Ostatnia aktualizacja: Thu Apr 18 00:44:51 EDT 2002</P> + <P>Ostatnia aktualizacja: Sobota Luty 7 22:16:21 EST 2004</P> + + <P>Ostatnia aktualizacja tłumaczenia: Piątek Marzec 5 19:31:12 EST 2004</P> <P>Obecny maintainer: Bruce Momjian (<A href= "mailto:pgman@candle.pha.pa.us">pgman@candle.pha.pa.us</A>)<BR> @@ -24,16 +26,15 @@ "mailto:m.mazurek@netsync.pl">m.mazurek@netsync.pl</A>)<BR> </P> - <P>Najbardziej aktualną wersję tego dokumentu można znaleźć pod adresem: <A href= - "http://www.Postgresql.org/docs/faq-english.html">http://www.PostgreSQL.org/docs/faq-english.html</A>.</P> + "http://www.Postgresql.org/docs/faqs/FAQ.html">http://www.PostgreSQL.org/docs/faqs/FAQ.html</A>.</P> <P>Odpowiedzi na pytania dotyczące konkretnych systemów operacyjnych można znaleźć pod adresem: <A href= - "http://www.PostgreSQL.org/users-lounge/docs/faq.html">http://www.PostgreSQL.org/users-lounge/docs/faq.html</A>.</P> + "http://www.PostgreSQL.org/docs/index.html">http://www.PostgreSQL.org/docs/index.html</A>.</P> <HR> <H2 align="center">Pytania ogólne</H2> @@ -64,20 +65,19 @@ PostgreSQL?<BR> <A href="#2.2">2.2</A>) Jakie istnieją narzędzia pozwalające na dostęp do PostgreSQL przez www?<BR> - <A href="#2.3">2.3</A>) Czy istnieje jakieś GUI dla PostgreSQL? - Narzędzie do raportowania? Interfejs dla "embedded query language"?<BR> + <A href="#2.3">2.3</A>) Czy istnieje jakieś GUI dla PostgreSQL?<BR> <A href="#2.4">2.4</A>) Za pomocą jakich języków programowania można się komunikować z PostgreSQL?<BR> - <H2 align="center">Pytania administratora</H2> + <H2 align="center">Pytania dotyczące administracji</H2> <A href="#3.1">3.1</A>) Jak mogę zainstalować PostgreSQL w innej lokalizacji niż <I>/usr/local/pgsql</I>?<BR> <A href="#3.2">3.2</A>) Podczas startu <I>postmaster'a</I>, otrzymuję komunikat: <I>Bad System Call</I> lub "core dumped". Dlaczego?<BR> <A href="#3.3">3.3</A>) Podczas startu <I>postmaster'a</I>, - otrzymuję komunikato błędzie: <I>IpcMemoryCreate</I>. Dlaczego?<BR> + otrzymuję komunikat o błędzie: <I>IpcMemoryCreate</I>. Dlaczego?<BR> <A href="#3.4">3.4</A>) Podczas startu <I>postmaster'a</I>, otrzymuję komunikat o błędzie: <I>IpcSemaphoreCreate</I>. Dlaczego?<BR> <A href="#3.5">3.5</A>) W jaki sposób mogę kontrolować połączenia z @@ -87,9 +87,9 @@ <A href="#3.7">3.7</A>) Jakie są możliwości wyszukiwania błędów?<BR> <A href="#3.8">3.8</A>) Skąd się bierze komunikat: <I>"Sorry, too many clients"</I> podczas próby połączenia się z bazą danych?<BR> - <A href="#3.9">3.9</A>) Co to za pliki typu <I>pg_sorttempNNN.NN</I> - , które znajdują się w katalogu z plikami bazy danych?<BR> - + <A href="#3.9">3.9</A>) Jakie pliki znajdują się w <I>pg_temp</I>?<BR> + <A href="#3.10">3.10</A>) Dlaczego konieczne jest przy upgradzie + PostgreSQL korzystanie ze skryptów dump i restore?<BR> <H2 align="center">Pytania dotyczące użytkowania</H2> <A href="#4.1">4.1</A>) Jaka jest różnica pomiędzy kursorami @@ -98,7 +98,8 @@ jedynie kilka pierwszych wyników zapytania?<BR> <A href="#4.3">4.3</A>) Jak mogę uzyskać listę wszystkich tabel czy innych rzeczy pod <I>psql</I>?<BR> - <A href="#4.4">4.4</A>) Jak usunąć kolumnę z tabeli?<BR> + <A href="#4.4">4.4</A>) Jak usunąć kolumnę z tabeli lub zmienić jej + typ?<BR> <A href="#4.5">4.5</A>) Jaki jest maksymalny rozmiar dla rzędu, tabeli i bazy danych?<BR> <A href="#4.6">4.6</A>) Jak dużo miejsca w bazie danych jest @@ -148,8 +149,13 @@ baz danych jednocześnie?<BR> <A href="#4.25">4.25</A>) Jak zwrócić w funkcji wiele rzędów lub kolumn?<BR> - - + <A href="#4.26">4.26</A>) Dlaczego nie mogę w sposób pewny + tworzyć/usuwać tabel tymczasowych w funkcjach PL/PgSQL?<BR> + <A href="#4.27">4.27</A>) Jakie są możliwości replikacji w + PostgreSQL?<BR> + <A href="#4.28">4.28</A>) Jakie możliwości szyfrowania oferuje + PostgreSQL?<BR> + <H2 align="center">Rozwijanie PostgreSQL</H2> <A href="#5.1">5.1</A>) Napisałem własną funkcję. Kiedy użyję jej w <I>psql</I>, program zrzuca pamięć (dump core)?<BR> @@ -166,7 +172,8 @@ <H4><A name="1.1">1.1</A>) Co to jest PostgreSQL? Jak to wymawiać?</H4> - <P>PostgreSQL wymawia się <I>Post-Gres-kju-el</I>.</P> + <P>PostgreSQL wymawia się <I>Post-Gres-kju-el</I>. Często podczas + rozmów używany jest termin "Postgres"</P> <P>PostgreSQL jest rozszerzeniem systemu zarządzania bazami danych - POSTGRES, kolejną generacją rozwojowego prototypu <SMALL>DBMS</SMALL>. @@ -181,11 +188,14 @@ komunikujących się poprzez mailowe listy dyskusyjne PostgreSQL. Obecnym koordynatorem jest Marc G. Fournier (<A href= "mailto:scrappy@PostgreSQL.org">scrappy@PostgreSQL.org</A>). (Zobacz - poniżej jak się przyłączyć). Ta grupa ludzi jest odpowiedzialna za - cały rozwój PostgreSQL.</P> + pytanie <A href="#1.6">1.6</A> jak się przyłączyć). Ta grupa ludzi jest + odpowiedzialna za cały rozwój PostgreSQL. PostgreSQL jest projektem + nie kontrolowanym przez żadną firmę, aby wziąć udział w jego rozwoju + sprawdź, <A href="http://www.PostgreSQL.org/docs/faqs/FAQ_DEV.html"> + http://www.PostgreSQL.org/docs/faqs/FAQ_DEV.html</a></P> <P>Autorami PostgreSQL 1.01 byli Andrew Yu and Jolly Chen. - Wiele innych osób pomogło przy portowaniu, testowaniu, debugowaniu, i + Wiele innych osób pomogło przy portowaniu, testowaniu, debugowaniu i rozwijaniu kodu. Oryginalny kod Postgresa, na którym został oparty PostgreSQL, był wysiłkiem studentów oraz pracowników pracujących pod kierownictwem profesora Michael'a Stonebraker'a z University of @@ -243,11 +253,11 @@ <P><STRONG>Klient</STRONG></P> - <P>Możliwa jest kompilacja bibliteki C <I>libpq</I> C, psql oraz + <P>Możliwa jest kompilacja bibliteki C <I>libpq</I>, psql oraz innych interfejsów i uruchamianie ich na platformie MS Windows. W tym wypadku klient jest uruchamiany na MS Windows a z serwerem komunikuje się poprzez TCP/IP. Serwer może działać na dowolnej wspieranej platformie - Unixowej. Plik <I>win31.mak</I> jest dołączony + Unixowej. Plik <I>win32.mak</I> jest dołączony do źródeł, aby można było stworzyć bibliotekę <I>libpq</I> oraz program <I>psql</I> działające w środowisku Win32. PostgreSQL może się także komunikować z klientami <SMALL>ODBC</SMALL>.</P> @@ -257,9 +267,18 @@ <P>Serwer może być uruchamiany na Windows NT i Win2k używając bibliotek Cygwin, Cygnus Unix/NT. W pliku <I>pgsql/doc/FAQ_MSWIN</I> znajdującym się w źródłach lub pod adresem: <A href= - "http://www.postgresql.org/docs/faq-mswin.html">MS Windows FAQ</A> - na naszych stronach. Nie planujemy tworzyć portu przeznaczonego - docelowo dla platformy Microsoft.</P> + "http://www.postgresql.org/docs/faqs/text/FAQ_MSWIN">http://www.PostgreSQL.org/docs/faqs/text/FAQ_MSWIN</A> na naszych stronach.<P> + Obecnie prowadzone są prace nad stworzeniem wersji dla MS Win + NT/200/XP. Jeśli chcesz się dowiedzieć o obecnym statusie tych prac + zobacz <A + href="http://techdocs.postgresql.org/guides/Windows">http://techdocs.postgresql.org/guides/Windows</A> and + <A + href="http://momjian.postgresql.org/main/writings/pgsql/win32.html">http://momjian.postgresql.org/main/writings/pgsql/win32.html</A>. + </P> + <P> + Istnieje także port pod Novell Netware 6 dostępny pod adresem <A + href="http://forge.novell.com">http://forge.novell.com</A>. + </P> <H4><A name="1.5">1.5</A>) Skąd można ściągnąć PostgreSQL?</H4> @@ -324,14 +343,13 @@ '#PostgreSQL' "$USER" irc.phoenix.net.</CODE></P> <P>Lista firm oferujących wsparcie na zasadach komercyjnych znajduje - się pod adresem: <A href= - "http://www.postgresql.org/users-lounge/commercial-support.html">http://www.postgresql.org/users-lounge/commercial-support.html</A>.</P> + się pod adresem: <A href= "http://techdocs.postgresql.org/companies.php">http://techdocs.postgresql.org/companies.php</A>.</P> <H4><A name="1.7">1.7</A>) Jaka jest ostatnia dostępna wersja?</H4> - <P>Ostatnia dostępna wersja PostgreSQL to 7.2.1.</P> + <P>Ostatnia dostępna wersja PostgreSQL to 7.4.1.</P> - <P>Planujemy publikowanie kolejnych wersji co cztery miesiące.</P> + <P>Planujemy publikowanie kolejnych wersji co sześć do ośmiu miesięcy.</P> <H4><A name="1.8">1.8</A>) Jaka dokumentacja jest dostępna?</H4> @@ -339,8 +357,8 @@ testowania są załączone w samej dystrybucji. Znajdują się one w katalogu <I>/doc</I>. Manual może być także przeglądany poprzez strony www pod adresem <A href= - "http://www.PostgreSQL.org/users-lounge/docs/">http://www.PostgreSQL.org/users-lounge/docs/</A>.</P> - + "http://www.PostgreSQL.org/docs">http://www.PostgreSQL.org/docs</A>.</P> + <P>Istnieją także dwie książki dostępne online pod adresami <A href= "http://www.PostgreSQL.org/docs/awbook.html">http://www.PostgreSQL.org/docs/awbook.html</A> @@ -348,14 +366,15 @@ "http://www.commandprompt.com/ppbook/">http://www.commandprompt.com/ppbook/</A>. Lista książek o PostgreSQL, które można kupić znajduje się pod adresem <A href= - "http://www.postgresql.org/books/">http://www.postgresql.org/books/</A>. + "http://techdocs.PostgreSQL.org/techdocs/bookreviews.php"> + http://techdocs.PostgreSQL.org/techdocs/bookreviews.php</A>. Zbiór technicznych artykułów o PostgreSQL znajduje się pod adresem <A href= - "http://techdocs.postgresql.org/">http://techdocs.postgresql.org/</A>.</P> + "http://techdocs.PostgreSQL.org">http://techdocs.postgresql.org/</A>.</P> <P><I>psql</I> posiada kilka wbudowanych poleceń \d, za pomoca których można sprawdzić informacje dotyczące typów, operatorów, funkcji, - aggregatów itd.</P> + agregatów itd.</P> <P>Na naszej stronie można znaleźć dużo więcej dokumentacji.</P> @@ -409,8 +428,8 @@ <P>Jest około 12 osób, które mają uprawnienia do commit'owania w <SMALL>CVS</SMALL> PostgreSQL'a. Każdy z nich submitował tak wiele wysokiej jakości patchy, że stało się niemożliwe dla obecnych - commiterów być z nimi na bieżąco, mając pewność że są to poprawki - wysokiej jakości.</P> + commiterów być z nimi na bieżąco, więc musieliśmy im ufać i mieć + pewność, że ich poprawki są wysokiej jakości.</P> <H4><A name="1.13">1.13</A>) Jak mogę zgłaszać błędy?</H4> @@ -437,52 +456,37 @@ oraz wyrafinowany system blokowania. Mamy także właściowści których inni nie posiadają, jak typy definiowane przez użytkownika, dziedziczenie, rules, multi-version concurrency control, która - redukuje problemy z blokowaiem (lock contention).<BR> + redukuje problemy z blokowaniem (lock contention).<BR> <BR> </DD> <DT><B>Wydajność</B></DT> - <DD>PostgreSQL działa w dwóch trybach. Standardowy tryb <I>fsync</I> - zrzuca każdą zakończoną transakcję na dysk, gwarantując w ten - sposób to, że jeśli system operacyjny się zawiesi lub straci - zasilanie wciągu kilku nastepnych sekund, wszystkie Twoje dane - zostaną bezpiecznie zapisane na dysku. W tym trybie, jesteśmy - wolniejsi niż większość komercyjnych baz danych, częściowo dlatego - że niewiele z nich wykonuje taki sposób zapisywania danych jako - domyślne ustawienie. - W trybie <I>no-fsync</I> z reguły jesteśmy szybsi niż komercyjne - bazy danych, chociaż w tym wypadku zawieszenie się systemu może - spowodować uszkodzenie danych. Pracujemy nad tym, aby stworzyć - pośredni tryb, który powoduje mniejszą redukcję wydajności niż tryb - fsync i pozwoli na integralność danych w przeciągu 30 sekund do - załamania się systemu operacyjnego.<BR> - <BR> - Porównując do MySQL czy innych prostych baz danych, jesteśmy - wolniejsi przy wykonywaniu insertów/updatów przez narzut - spowodowany przez transakcje. Oczywiście MySQL nie posiada żadnej z - wymienionych wyżej <I>możliwości</I>. PostgreSQL został zbudowany - aby być DBMS elastycznym i bogatym z różnorakie możliwości, - aczkolwiek dbamy, aby poprawiać jego wydajność poprzez analizę - kodu źródłowego i profilowanie. Ciekawe porównanie PostgreSQL i MySQL - można znaleźć pod adresem <A href= - "http://openacs.org/why-not-mysql.html">http://openacs.org/why-not-mysql.html</A><BR> - - <BR> - Każde połączenie klienta jest obsługiwane przez nas poprzez - stworzenie nowego procesu Unixowego. Procesy backendu dzielą - bufory danych oraz informację o blokadach. Używając wielu - procesorów, różne backendy mogą bez problemu działać na różnych - procesorach.<BR> + <DD>Wydajność PostgreSQL jest podobna do innych komercyjnych i open + source baz danych. W niektórych sytuacjach jest szybszy w + niektórych wolniejszy. W porównianiu do MySQL lub mniejszych baz + danych jesteśmy szybsi przy wielu użytkownikach, skomplikowaych + zapytaniach i dużym obciążeniu podczas. MySQL jest szybszy dla + prostych SELECTów wykonywanych przez niewielu użytkowników. + Spowodowane jest to narzutem, który się pojawia przy transakcjach. + Oczywiście MySQL nie ma większości z rozwiązań opisanych powyżej + w sekcji <I> Możliwości </I>. PostgreSQL został stworzony z myślą o + stabilności, oraz szerokiej gamie możliwości, ale mimo to staramy + się w każdej wersji poprawiać jego wydajność. + Ciekawe porównanie PostgreSQL i MySQL można znaleźć pod adresem <A href= + "http://openacs.org/philosophy/why-not-mysql.html">http://openacs.org/philosophy/why-not-mysql.html</A> + Dodatkowo, MySQL jest firmą, która dystrybuuje jej produkty poprzez + zasadę Open Source i wymaga wykupienia licencji w przypadku + tworzenia close-source software, co ie ma miejsca w przypadku + PostgreSQL.<BR> <BR> </DD> - <DT><B>Stabilność</B></DT> <DD>Zdajemy sobie sprawę, że <SMALL>DBMS</SMALL> musi być stabilny, w przeciwnym wypadku jest bez wartości. Staramy się publikować kod stabilny, dobrze przetestowany, z minimum możliwych błędów. Każde - wydanie poprzedza conajmniej miesiąc testów wersji beta. Patrząc na + wydanie poprzedza co najmniej miesiąc testów wersji beta. Patrząc na historię wydań PostgreSQL widać, że dostarczamy stabilne, dobrze sprawdzone wersje, które są gotowe do użycia w środowisku produkcyjnym. Myślimy, że proces publikowania kolejnych wersji @@ -521,20 +525,20 @@ PostgreSQL?</H4> <P>PostgreSQL korzysta z najlepszej infrastruktury od samego początku - istnienia projektu, tzn. sześciu lat. Wszystko to zawdzięczamy Marc'owi - Fournier'owi, który stworzył tą infrastrukturę i zarządza nią od - lat.</P> + istnienia projektu, czyli roku 1996 kiedy rozpoczeliśmy pracę. Wszystko + to zawdzięczamy Marc'owi Fournier'owi, który stworzył tą infrastrukturę + i zarządza nią od lat.</P> <P>Wysokiej jakości infrastruktura jest bardzo ważna dla każdego projektu open-source. Zapobiega przerwom w rozwoju projektu i jakimkolwiek przestojom.</P> <P>Oczywiście korzystanie z wysokiej jakości infrastruktury nie jest - tanie. Istnieje wiele róznych miesięcznych, czy jednorazowych + tanie. Istnieje wiele różnych miesięcznych, czy jednorazowych wydatków, które trzeba ponosić aby wszystko działało jak należy. Jeśli Ty, bądź Twoja firma może wspomóc finansowo rozwój PostgreSQL odwiedź adres: <A href= - "http://www.pgsql.com/pg_goodies">http://www.pgsql.com/pg_goodies</A> + "http://store.pgsql.com/shopping/">http://store.pgsql.com/shopping/</A> gdzie opisane jest jak to zrobić.</P> <P>Chociaż na stronie wspomniana jest nazwa PostgreSQL Inc, "datki" @@ -542,6 +546,9 @@ przeznaczane na finansowanie jakiejkolwiek firmy. Jeśli wolisz, możesz wysłać czek na adres kontaktowy.</P> <HR> + Jeśli możesz się pochwalić udanymi wdrożeniami PostgreSQL, prosimy + abyś zgłosił nam to na stronie: <A + href="http://advocacy.postgresql.org/">http://advocacy.postgresql.org</a>. <H2 align="center">User Client Questions</H2> @@ -551,25 +558,21 @@ <P>Dostępne są dwa driwery <SMALL>ODBC</SMALL>: PsqlODBC i OpenLink <SMALL>ODBC</SMALL>.</P> - <P>PsqlODBC jest dołączony do źródeł. Więcej informacji na jego temat - możesz znaleźć pod adresem: <A href= - "ftp://ftp.PostgreSQL.org/pub/odbc/">ftp://ftp.PostgreSQL.org/pub/odbc/</A>.</P> - + <P>Możesz pobrać PsqlODBC z adresu <A + href="http://gborg.postgresql.org/project/psqlodbc/projdisplay.php">http://gborg.postgresql.org/project/psqlodbc/projdisplay.php</A> + </P> + <P>OpenLink <SMALL>ODBC</SMALL> może być pobrany z adresu: <A href= "http://www.openlinksw.com/">http://www.openlinksw.com</A>. Współpracuje ze standardowym oprogramowaniem klienckim <SMALL>ODBC</SMALL> więc w ten sposób możesz korzystać z PostgreSQL <SMALL>ODBC</SMALL> - dostępnego na każdej plaformie którą wspiera (Win, Mac, Unix, VMS).</P> + dostępnego na każdej pltaformie którą wspiera (Win, Mac, Unix, VMS).</P> <P>Autorzy będą prawdopodobnie sprzedawać ten produkt osobom które wymagają komercyjnego wsparcia, ale wersja darmowa będzie zawsze dostępna. Wszystkie pytania możesz wysyłać na adres: <A href= "mailto:postgres95@openlink.co.uk">postgres95@openlink.co.uk</A>.</P> - <P>Sprawdź także rozdział o <A href= - "http://www.postgresql.org/devel-corner/docs/programmer/odbc.html">ODBC - w "Programmer's Guide"</A>.</P> - <H4><A name="2.2">2.2</A>) Jakie istnieją narzędzia pozwalające na dostęp do PostgreSQL przez www?</H4> @@ -577,59 +580,56 @@ przez www możesz znaleźć pod adresem: <A href="http://www.webreview.com">http://www.webreview.com</A></P> - <P>Inny znajduje się pod adresem: <A href= - "http://www.phone.net/home/mwm/hotlist/">http://www.phone.net/home/mwm/hotlist/.</A></P> - <P>Do integracji z www, świetnym rozwiązaniem jest PHP. Możesz znaleźć więcej informacji na ten temat pod adresem <A href="http://www.php.net">http://www.php.net</A>.</P> <P>Wiele osób w przypadku skomplikowanych rozwiązań uzywa Perl'a i - modułu CGI.pl.</P> - - <H4><A name="2.3">2.3</A>) Czy istnieje jakieś GUI dla PostgreSQL? - Narzędzie do raportowania? Interfejs dla "embedded query - language"?</H4> - - <P>Mamy całkiem miły interfejs graficzny, który został nazwany - <I>pgaccess</I> i jest on dostarczany jako część źródeł. - <I>pgaccess</I> posiada także generator raportów. Można go znaleźć - pod adresem <A href= - "http://www.flex.ro/pgaccess">http://www.flex.ro/pgaccess</A></P> - - <P>Udostępniliśmy także <I>ecpg</I>, który jest "embedded SQL query - language interface" dla języka C.</P> - - <H4><A name="2.4">2.4</A>) Za pomocą jakich języków programowania + modułu CGI.pl lub mod_perl.</P> + + <H4><A name="2.3">2.3</A>) Czy istnieje jakieś GUI dla PostgreSQL?</H4> + + <P>Tak, istnieje kilka interfejsów graficznych dla PostgreSQL. + Wśród nich PgAccess (<A href="http://www.pgaccess.org"> + http://www.pgaccess.org</A>), PgAdmin III (<A + href="http://www.pgadmin.org">http://www.pgadmin.org</A>), + RHDB Admin (http://sources.redhat.com/rhdb/ ) oraz Rekall ( + http://www.thekompany.com/products/rekall/, komercyjny). Istnieje + także PHPPgAdmin ( http://phppgadmin.sourceforge.net/ ), webowy + interfejs dla PostgreSQL. + </P> + <P> + Więcej informacji na ten temat znajduje się pod adresem See + <A href="http://techdocs.postgresql.org/guides/GUITools">http://techdocs.postgresql.org/guides/GUITools</A>. + + <H4><A name="2.4">2.4</A>) Za pomocą jakich języków programowania można się komunikować z PostgreSQL?</H4> - <P>Mamy wsparcie dla:</P> + <P>Najbardziej popularne języki posiiadają własny interfejs dla + PostgreSQL. Sprawdź listę rozszerzeń dla intersującego Ciebie języka + programowania.</P> + + <P>Ze źródłami PostreSQL dystrubuowane są interfejsy dla + następujących języków programowania:</P> + <UL> <LI>C (libpq)</LI> - <LI>C++ (libpq++)</LI> - <LI>Embedded C (ecpg)</LI> <LI>Java (jdbc)</LI> - <LI>Perl (perl5)</LI> - - <LI>ODBC (odbc)</LI> - <LI>Python (PyGreSQL)</LI> <LI>TCL (libpgtcl)</LI> - - <LI>C Easy API (libpgeasy)</LI> - - <LI>Embedded <SMALL>HTML</SMALL> (<A href= - "http://www.php.net">PHP z http://www.php.net</A>)</LI> </UL> + Inne interfejsy są dostępne pod adresem: + <A href="http://gborg.postgresql.org"> http://gborg.postgresql.org</A> w + sekcji Drivers/Interfaces. <HR> - <H2 align="center">Pytania administratora</H2> + <H2 align="center">Pytania dotyczące administracji</H2> <H4><A name="3.1">3.1</A>) Jak mogę zainstalować PostgreSQL w innej lokalizacji niż <I>/usr/local/pgsql</I>?</H4> @@ -677,7 +677,8 @@ <SMALL>SEMMNS</SMALL> i <SMALL>SEMMNI</SMALL> jądra twojego systemu.</P> <P>Niedziałające semafory mogą spowodować niepoprawne zamknięcie - systemu w czasie intensywnego korzystania z bazy.</P> + systemu w czasie intensywnego korzystania z bazy.</P> + <P>Jeśli treść błędu jest inna, może to oznaczać, że obsługa semaforów nie została włączona do jądra wcale. Zobacz PostgreSQL Administrator's Guide po bardziej szczegółowe informacje o pamięci @@ -692,8 +693,7 @@ <I>postmaster'a</I>, <B>oraz</B> nie umożliwi się autoryzacji na podstawie adresu hostów modyfikując odpowiednio plik - <I>$PGDATA/pg_hba.conf</I>. To zmiany pozwolą na - połączenia TCP/IP.</P> + <I>$PGDATA/pg_hba.conf</I>. To zmiany pozwolą na połączenia TCP/IP.</P> <H4><A name="3.6">3.6</A>) Jak powinienem skonfigurować system baz danych aby uzyskać lepszą wydajność?</H4> @@ -709,7 +709,7 @@ określającym transakcję - <SMALL>BEGIN WORK/COMMIT</SMALL>, są traktowane jako pojedyncza transakcja. Rozważ wykonanie kilku poleceń/zdań SQL w jednym bloku transakcji. To redukuje narzut - powodowany przez transakcję. Przy dużych zmianach w danych, warto + nakładany przez transakcję. Przy dużych zmianach w danych, warto usunąć i stworzyć na nowo indeksy.</P> <P>Jest kilka opcji pozwalających na poprawienie wydajności. @@ -825,19 +825,12 @@ maksymalną liczbę procesów backendu to obawa o wyczerpanie zasobów systemu.</P> - <P>W wersjach PostgreSQL wcześniejszych niż 6.5, maksymalna liczba - backendów była ustawiona na 64, a zmiana tej wartości wymaga - rekompliacji po zmianie stałej MaxBackendId w pliku - <I>include/storage/sinvaladt.h</I>.</P> + <H4><A name="3.9">3.9</A>) Jakie pliki znajdują się w <I>pg_temp</I>?</H4> - <H4><A name="3.9">3.9</A>) Co to są za pliki typu: - <I>pg_sorttempNNN.NN</I>, - które znajdują się w katalogu z plikami bazy danych?</H4> - - <P>Są to tymczasowe pliki utworzone przez executor. Dla przykładu, - jeśli jakaś operacja sortowania jest wymagana do wykonania + <P>Katalog ten zawiera tymczasowe pliki utworzone przez executor. Dla + przykładu, jeśli jakaś operacja sortowania jest wymagana do wykonania <SMALL>ORDER BY,</SMALL> a samo sortowanie wymaga więcej miejsca niż - paratmetr backendu + parametr backendu <I>-S</I> ustawił do wykorzystania, wtedy tymczasowe pliki są używane do przechowywania tych danych.</P> @@ -846,6 +839,25 @@ poprawnie podczas operacji sortowania. Jeśli w danym momencie nie działają żadne procesy backendów mozesz spokojnie usunąć pliki pg_tempNNN.NN.</P> + + <H4><A name="3.9">3.9</A>) Dlaczego konieczne jest przy upgradzie + PostgreSQL korzystanie ze skryptów dump i restore?</H4> + <P> + Twórcy PostgreSQL dokonują jedynie małych zmian pomiędzy małymi + upgradami wersji, np z 7.2 do 7.2.1, wtedy upgrade nie wymaga + korzystania z dump i restore. Przy większych zmianach, np. z wersji + 7.2 do 7.3, często zmianymają wpływ na format przechowywanych danych. + Zmiany te są na tyle skomplikowane, że nie utrzymujemy zgodości z + poprzednimi wersjami PostgreSQL. dump pozwala na wydostanie danych w + takiej postaci, w której łatwe jest ich zaimportowanie do nowszych + wersji bez kłopotu. + </P> + <P> + W wydaniach gdzie zmiany nie dotyczą formatu danych na dysku, można + wykorzystać skryptu pg_upgrade, do upgradu bez użycia dump/restore. + Dokumentacja do danego wydania zawiera informację czy możliwe jest + użycie pg_upgrade. + </P> <HR> <H2 align="center">Pytania dotyczące używania</H2> @@ -870,6 +882,15 @@ <SMALL>ORDER BY</SMALL>, PostgreSQL może wykorzystać jedynie kilka pierwszych rzędów, być może będzie konieczność wykonania zapytania do momentu aż zostaną znalezione pożądane wyniki.</P> + <P> + Aby otrzymać losowy rząd, użyj: + <PRE> + SELECT col + FROM tab + ORDER BY random() + LIMIT 1; + </PRE> + </P> <H4><A name="4.3">4.3</A>) Jak mogę uzyskać listę wszystkich tabel czy innych rzeczy pod <I>psql</I>?</H4> @@ -881,37 +902,53 @@ <I>-E</I> wtedy po wykonaniu polecenia z backslashem wyświetlane będzie zapytanie, które w rzeczywistości jest wykonywane.</P> - <H4><A name="4.4">4.4</A>) Jak usunąć kolumnę z tabeli?</H4> - - <P>Nie mamy zaimplementowanego <SMALL>ALTER TABLE DROP - COLUMN,</SMALL> ale możesz zrobić tak:</P> + <H4><A name="4.4">4.4</A>) Jak usunąć kolumnę z tabeli lub zmienić + jej typ?</H4> + + <P>DROP COLUMNT zostało dodane w wersji 7.3 przy poleceniu ALTER + TABLE DROP COLUMN. We wcześńiejszych wersjach możesz zrobić tak: + </P> <PRE> - SELECT ... -- wybierz zawartość wszystkich kolumn poza tą jedną której chcesz się pozbyć + BEGIN; + LOCAL TABLE old_table; + SELECT ... -- wybierz wszystkie kolumny poza tą jedną której chcesz się pozbyć INTO TABLE new_table FROM old_table; DROP TABLE old_table; ALTER TABLE new_table RENAME TO old_table; </PRE> + <P> + Aby zmienić typ danych kolumny możesz zrobić tak: + </P> + <PRE> + BEGIN; + ALTER TABLE tab ADD COLUMN new_col new_data_type; + UPDATE tab SET new_col = CAST(old_col AS new_data_type); + ALTER TABLE tab DROP COLUMN old_col; + COMMIT; + </PRE> + </P> <H4><A name="4.5">4.5</A>) Jaki jest maksymalny rozmiar dla rzędu, tabeli i bazy danych?</H4> <P>Oto wszystkie ograniczenia:</P> <PRE> - Maksymalny rozmiar dla bazdy danych? nieograniczony ( istnieją bazy danych o wielkości 500 GB databases ) - Maksymalny rozmiar dla tabeli? 16 TB - Maksymalny rozmiar dla rzędu? nieograniczony w 7.1 i późniejszych - Maksymalny rozmiar pola? 1 GB w 7.1 and later + Maksymalny rozmiar dla bazdy danych? nieograniczony ( istnieją + bazy danych o wielkości 32 TB databases ) + Maksymalny rozmiar dla tabeli? 32 TB + Maksymalny rozmiar dla rzędu? 1.6 TB + Maksymalny rozmiar pola? 1 GB Maksymalna liczba rzędów w tabeli? nieograniczona - Maksymalna liczba kolumn w tabeli? 250-1600 w zależoności od typów kolumn - Makasymalna liczba indeksów na tabeli? nieograniczona + Maksymalna liczba kolumn w tabeli? 250-1600 w zależoności od typów kolumn + Makasymalna liczba indeksów na tabeli? nieograniczona </PRE> Oczywiście "nieograniczony" nie jest prawdą tak do końca, istnieją ograniczenia wynikające z dostępnego miejsca na dysku, pamięci/swapa. Kiedy wielkości te będą bardzo duże może odbić się to na wydajności. - <P>Maksymalny rozmiar tabeli, czyli 16 TB nie wymaga od systemu + <P>Maksymalny rozmiar tabeli, czyli 32 TB nie wymaga od systemu operacyjnego wsparcia dla dużych plików. Duże tabele są przechowywane jako pliki o rozmiarze 1 GB, więc ograniczenia co do wielkości plików narzucone przez system plików nie są istotne.</P> @@ -957,6 +994,9 @@ <P>Indeksy nie powodują dużego narzutu na zajmowane miejsce, ale zawierają pewne dane, więc w pewnych przypadkach moga być całkiem duże.</P> + <P> NULLe są przechowywane jako mapy bitowe, więc używają bardzo mało + miejsca. + </P> <H4><A name="4.7">4.7</A>) Jak mogę sprawdzić jakie tabele, klucze, bazy danych i użytkownicy są utworzeni?</H4> @@ -996,17 +1036,39 @@ następuje sortowanie jest zazwyczaj szybsze nię wyszukiwanie za pomocą indeksu na dużej tabeli.</P> Jakkolwiek <SMALL>LIMIT</SMALL> w połączeniu z <SMALL>ORDER BY</SMALL> - często będzie wykorzystywał indeksów poniewąz jedynie mała częśc z - tabeli jest zwracana. + często będzie wykorzystywał indeksy ponieważ jedynie mała część z + tabeli jest zwracana. W rzeczywistości, chociaż MAX() i MIN() nie + używają indeksów, możliwe jest aby zwrócić te wartości używając + indeksów poprzez użycie ORDER BY i LIMIT. + </P> + <PRE> + SELECT col + FROM tab + ORDER BY col [ DESC ] + LIMIT 1; + </PRE> + <P> + Jeśli uważasz, że optimizer myli się wybierając sequential scan, użyj + SET enable_seqscan TO 'off' i uruchom testy aby sprawdzić czy wtym + wypadku zapytanie będzie szybciej wykonywane. <P>Kiedy używa się operatorów dopasujących takich jak - <SMALL>LIKE</SMALL> lub <I>~</I>, indeksy będą używane jedynie jeśli - początek wyszukiwania jest oparty na początku łańcucha tekstu. - Dlatego, aby używac indeksów, - dopasowania operatorem <SMALL>LIKE</SMALL> nie mogą się zaczynać - <I>%</I>, a dopasowania operatorem <I>~</I> (dopasowania regularne) - muszą się zaczynać znakiem specjalnym <I>^</I>.</P> - + <SMALL>LIKE</SMALL> lub <I>~</I>, indeksy będą używane jedynie w + pewnych wypadkach:</P> + <UL> + <LI>Początek wyszukiwania jest oparty na początku łańcucha tekstu. + <UL> + <LI>wzorce <SMALL>LIKE</SMALL> nie mogą się zaczynać <I>%</I> + <LI>dopasowania operatorem <I>~</I> (dopasowania regularne) + muszą się zaczynać znakiem specjalnym <I>^</I>.</P> + </UL> + <LI>Początek wyszukiwania nie może się zaczynać od klas znaków, np. + [a-e]. + <LI>Case-insensitive searches such as ILIKE and ~* do not utilise + indexes. Instead, use functional indexes, which are described in + section 4.12. + <LI>Standardowe locale C musi być uzyte przy wykonywaniu initdb + </UL> <H4><A name="4.9">4.9</A>) Jak mogę sprawdzić w jakis sposób "query optimizer" wykonuje moje zapytanie?</H4> @@ -1051,15 +1113,14 @@ <H4><A name="4.12">4.12</A>) Jak mogę używać wyrażeń regularnych w zapytaniach i zapytań case-insensitive w wyrażeniach regularnych? - jak korzystać z indeksów dla zapytań case-insensitive?</H4> + Jak korzystać z indeksów dla zapytań case-insensitive?</H4> <P>Operator <I>~</I> moze być wykorzystywany do wyszukiwania za pomocą wyrażeń regularnych, a <I>~*</I> do wyszukiwania case-insensitive z wyrażeniami regularnymi. Wariant case-insensitive dla <SMALL>LIKE</SMALL> został nazwany - <SMALL>ILIKE</SMALL> i jest dostępny w PostgreSQL 7.1 i późniejszych - wersjach.</P> + <SMALL>ILIKE</SMALL>.</P> <P>Porównania case-insensitive są zazwyczaj wykonywane w następujący sposób:</P> @@ -1087,31 +1148,41 @@ <PRE> Type Nazwa wewnętrzna Uwagi -------------------------------------------------- -"char" char 1 znak -CHAR(#) bpchar wypełniane pustymi znakami do podanej długości -VARCHAR(#) varchar rozmiar określa maksymalną długość, nie ma tutaj wypełniania +VARCHAR(n) varchar rozmiar określa maksymalną długość, nie ma tutaj wypełniania +CHAR(n) bpchar wypełniane pustymi znakami do podanej długości TEXT text bez limitu na długość łańcucha BYTEA bytea zmiennej długości tablica bajtów (null-byte safe) +"char" char 1 znak </PRE> <P>Jeśli będziesz przeglądać katalogi systemowe lub komunikaty o błędach często spotkasz się z podanymi powyżej nazwami wewnętrznymi.</P> - <P>Ostatnie cztery typy powyżej to tzw typy "varlena" (np. pierwsze + <P>Pierwsze cztery typy powyżej to tzw typy "varlena" (np. pierwsze cztery bajty na dysku to długość, po których jest data). Dlatego faktyczna długośc takiego łańcucha jest trochę większa niż zadeklarowany rozmiar. Te typy także podlegają kompresji lub mogą być przechowywane out-of-line jako <SMALL>TOAST</SMALL>, więc faktyczne zużycie miejsca na dysku może być mniejsze niż oczekiwane.</P> - <P><SMALL>CHAR()</SMALL> jast najlepszym typem do przechowywania - łańcuchów o tej samej długości. <SMALL>VARCHAR()</SMALL> jest + <SMALL>VARCHAR(n)</SMALL> jest najodpowiedniejszy do przechowywania łańcuchów o różnej długości - ale określa on maksymalną jego długość. <SMALL>TEXT</SMALL> jest - najlepszy dla łańcuchów o dowolnej długości, nie przekraczającej 1GB. - <SMALL>BYTEA</SMALL> służy do przechowywania danych binarnych, - w szczególności dla danych zawierających <SMALL>NULL</SMALL> bajty.</P> + ale określa on maksymalną jego długość. + + <SMALL>TEXT</SMALL> jest najlepszy dla łańcuchów o dowolnej długości, + nie przekraczającej 1GB.</P> + + <P> + <SMALL>CHAR(n)</SMALL> jast najlepszym typem do przechowywania + łańcuchów o tej samej długości. CHAR(n) wypełnia dane do żadanej + długości, podczas gdy VARCHAR(n) przechowuje jedynie dane + dostarczone. + + <SMALL>BYTEA</SMALL> służy do przechowywania danych binarnych, + w szczególności dla danych zawierających <SMALL>NULL</SMALL> bajty. + Wszystkie typy opisane tutaj maja podobne charakterystyki jeśli + chodzi o wydajność.</P> <H4><A name="4.15.1">4.15.1</A>) Jak mogę utworzyć pole które samo zwiększa swoją wartość?</H4> @@ -1188,7 +1259,7 @@ BYTEA bytea zmiennej długości tablica bajtów (null-byte s <H4><A name="4.15.4">4.15.4</A>) Dlaczego numery sekwencji nie są ponownie używane przy przerwaniu transakcji? - Skąd się biorą luki w numerowaniu kolumny tabeli + Skąd się biorą luki w numerowaniu kolumny tabeli sekwancjami/SERIALem?</H4> <P>Aby poprawić zbieżność (concurrency), wartości sekwencji są @@ -1197,8 +1268,7 @@ BYTEA bytea zmiennej długości tablica bajtów (null-byte s numerowaniu z przerwanych transakcji.</P> <H4><A name="4.16">4.16</A>) Co to jest <SMALL>OID</SMALL>? Co to - jest - <SMALL>TID</SMALL>?</H4> + jest <SMALL>TID</SMALL>?</H4> <P><SMALL>OID</SMALL> są PostgreSQL'owym rozwiązaniem problemu unikalnych numerów rzędów. Każdy rząd tworzony przez PostgreSQL @@ -1274,15 +1344,15 @@ BYTEA bytea zmiennej długości tablica bajtów (null-byte s </UL> <P>Listę terminów związanych z bazami danych możesz znaleźć pod tym - adresem:<A href= - "http://www.comptechnews.com/~reaster/dbdesign.html">http://www.comptechnews.com/~reaster/dbdesign.html</A></P> + adresem:<A + href="http://hea-www.harvard.edu/MST/simul/software/docs/pkgs/pgsql/glossary/glossary.html">http://hea-www.harvard.edu/MST/simul/software/docs/pkgs/pgsql/glossary/glossary.html</A>. <H4><A name="4.18">4.18</A>) Skąd bierze się ten błąd <I>"ERROR: Memory exhausted in AllocSetAlloc()"</I>?</H4> - <P>Jeśli używasz wersji starszej niż 7.1, upgrade może rozwiązać ten - problem. Jest także mozliwe, że po prostu wyczerpała Ci się pamięć - wirtualna (virtual memory) w systemie lub Twój kernel ma zbyt nisko + <P> + Prawdopodobnie wyczerpała Ci się pamięć wirtualna (virtual memory) + w systemie lub Twój kernel ma zbyt nisko ustawione limity dla pewnych zasobów. Spróbuj wykonać następujące polecenia zanim uruchomisz <I>postmaster'a</I>:</P> <PRE> @@ -1332,29 +1402,38 @@ BYTEA bytea zmiennej długości tablica bajtów (null-byte s <H4><A name="4.22">4.22</A>) Dlaczego zapytania używające <CODE><SMALL>IN</SMALL></CODE> sa takie wolne?</H4> - <P>Obecnie łączymy podzapytania w outer queries poprzez sekwencyjne - przeszukiwanie wyników podzapytania dla każdego rzędu z outer query. - Można to ominąć zastępując <CODE>IN</CODE> przez + <P>W wersjach wcześniejszych niż 7.4 łączymy podzapytania w outer queries + poprzez sekwencyjne przeszukiwanie wyników podzapytania dla każdego rzędu + z outer query. Jeśli podzapytanie zwraca jedynie kilka rzędów a + zewnętrzne zapytanie zwraca ich wiele, IN jest najszybsze. + Aby przyspieszyć inne zapytania można zastąpić <CODE>IN</CODE> przez <CODE>EXISTS</CODE>:</P> <PRE> <CODE>SELECT * FROM tab - WHERE col1 IN (SELECT col2 FROM TAB2) + WHERE col IN (SELECT subcol FROM subtab) </CODE> </PRE> na: <PRE> <CODE>SELECT * FROM tab - WHERE EXISTS (SELECT col2 FROM TAB2 WHERE col1 = col2) + WHERE EXISTS (SELECT subcol FROM subtab WHERE subcol = col) </CODE> </PRE> - Mamy zamiar poprawić to ograniczenie w przyszłych wydaniach. - + <P> + Aby to rozwiązanie było szybkie, subcol powinna być kolumną + indeksowaną. + </P> + <P> + W wersji 7.4 i późniejszych, IN w rzeczywistości używa tej samej + wyrafinowanej techniki łączenia jak normalne zapytania i jest + preferowane nad używaniem EXISTS. + </P> <H4><A name="4.23">4.23</A>) Jak wykonać "outer join"?</H4> - <P>PostgreSQL 7.1 i późniejsze wersje mają zaimplementowane outer join - wykorzystując standardową składnie SQL. Poniżej dwa przykłady:</P> + <P>PostgreSQL ma zaimplementowane outer join + wykorzystując standardową składnię SQL. Poniżej dwa przykłady:</P> <PRE> SELECT * @@ -1367,7 +1446,7 @@ BYTEA bytea zmiennej długości tablica bajtów (null-byte s </PRE> <P>Te dwa identyczne zapytania łączą kolumnę t1.col z kolumną t2.col, - ale także zwrócą niepołączone rzędy w t1 (te które nie pasują w t2). + ale także zwrócą niepołączone rzędy w t1 (te, które nie pasują w t2). <SMALL>RIGHT</SMALL> join dodałby niepołączone rzędy z tabeli t2. <SMALL>FULL</SMALL> join zwróciłby rzędy plus dodatkowo wszystkie rzędy z tabel t1 i t2. Słowo <SMALL>OUTER</SMALL> jest opcjonalne i @@ -1401,19 +1480,63 @@ BYTEA bytea zmiennej długości tablica bajtów (null-byte s katalogi systemowe, nie jest do końca jasne jak zapytanie pomiędzy różnymi bazami danych powinno się zachowywać.</P> - <P>Oczywiście klient może łączyć się z różnymi bazami danych i łączyć - informację w ten sposób uzyskaną.</P> + <P><I>contrib/dblink</I> pozwala na wykonywanie zapytań poprzez różne + bazy danych wywołując odpowiednie funkcje. Oczywiście klient może łączyć + się z różnymi bazami danych i łączyć informację w ten sposób uzyskaną + po stronie klienta.</P> <H4><A name="4.25">4.25</A>) Jak zwrócić w funkcji wiele rzędów lub kolumn?</H4> - <P>Możesz zwracać zbiory z funkcji PL/pgSQL używając - <i>refcursors</i>. Zobacz <a - href="http://developer.postgresql.org/docs/postgres/plpgsql-cursors.html"> - http://developer.postgresql.org/docs/postgres/plpgsql-cursors.html,</a> - sekcję 23.7.3.3.</P> - + <P>Możesz w łatwy sposób zwracać wiele rzędów lub kolumn używając + funkcji z: <A HREF="http://techdocs.postgresql.org/guides/SetReturningFunctions">http://techdocs.postgresql.org/guides/SetReturningFunctions</A>. + <H4><A name="4.26">4.26</A>) Dlaczego nie mogę w sposób pewny + tworzyć/usuwać tabel tymczasowych w funkcjach PL/PgSQL?</H4> + <P> + PL/PgSQL przechowuje w cache zawartość funkcji, niepożądanym efektem tego + jest to, że gdy taka funkcja korzysta z tabel tymczasowych, które są + później kasowane i odtwarzane, a funkcja wywoływana jest ponownie,jej + wywołanie nie powiedzie się ponieważ cachowana funkcja wciąż będzie + wskazywać na stara tablicę tymczasową. Rozwiązaniem tego problemu jest + używanie EXECUTE aby korzystać z tabel tymczasowych w PL/PgSQL. To + spowoduje, że zapytanie będzie parsowane przy każdym wywołaniu + funkcji. + </P> + + <H4><A name="4.27">4.27) Jakie są możliwości replikacji w PostgreSQL?</H4> + <P> + Jest kilka opcji aby stosować replikację typu master/slave. Ten typ + pozwala jedynie masterowi na dokonywanie zmian w bazie danych, a + slave może jedynie te zmiany odczytywać. Na stronie + <A + HREF="http://gborg.PostgreSQL.org/genpage?replication_research">http://gborg.PostgreSQL.org/genpage?replication_research</A> + znajduje się ich lista. Replikacja typu multi-master jest w trakcie + prac, opis projektu znajduje się pod adresem: <A + HREF="http://gborg.PostgreSQL.org/project/pgreplication/projdisplay.php"> +http://gborg.PostgreSQL.org/project/pgreplication/projdisplay.php</A>. + </P> + + <H4><A name="4.28">4.28) Jakie możliwości szyfrowania oferuje + PostgreSQL?</H4> + <P> + <UL> + <LI>contrib/pgcrypto zawiera wiele funkcji za pomocą, których możemy używać + kryptografii w zapytaniach SQL. + <LI>Aby szyfrować transmisję od klienta do serwera, ten musi mieć + ustawioną opcję ssl na true w pliku postgresql.conf, odpowiedni + wpis host lub hostssl musi występować w pliku pg_hba.conf, oraz + sslmode nie może być wyłączone w kliencie. (Warto zwrócić uwagę, że + możliwe jest także używanie transportów szyfrująców przez strony + trzecie, takie jak stunnel lub ssh, poza natywnym wsparciem dla SSL + przez PostgreSQL). + <LI>Hasła użytkowników bazy danych są automatycznie szyfrowane od + wersji 7.3. W poprzednich wersjach, należy tą funkcjonalność poprzez + włączenie opcji PASSWORD_ENCRYPTION w postgresql.conf. + <LI>Serwer może działać używając szyfrowanego systemu plików. + </UL> +</P> + <H2 align="center">Rozwijanie PostgreSQL</H2> <H4><A name="5.1">5.1</A>) Napisałem własną funkcję. Kiedy użyję jej @@ -1432,8 +1555,12 @@ BYTEA bytea zmiennej długości tablica bajtów (null-byte s <H4><A name="5.3">5.3</A>) Jak napisać funkcję C zwracającą krotkę (tuple)?</H4> - <P>To wymaga wysiłku tak olbrzymiego, że nawet autorzy nigdy tego nie - prubowali, chociaż z zalożeń wynika, że jest to możliwe.</P> + <P> + W wersjach PostgreSQL od numeru 7.3, funckje zwracające tabele są w + pęlni wspierane w C, PL/PgSQL i SQL. Sprawdź w Programmer's Guide aby + uzyskać więcej informacji. Przykład funkcji napisanej w C zwracającej + tabelę został umieszczony w <I>contrib/tablefunc</I>. + </P> <H4><A name="5.4">5.4</A>) Zmieniłem plik źródłowy. Dlaczego po rekompilacji nie widać zmiany?</H4> @@ -1443,6 +1570,8 @@ BYTEA bytea zmiennej długości tablica bajtów (null-byte s <I>make clean</I>, a następnie ponownie <I>make</I>. Jeśli używasz <SMALL>GCC</SMALL> możesz użyć opcji <I>--enable-depend</I> przy wykonywaniu <I>configure</I> aby + kompilator mógł określić zależności samodzielnie. + </P> </BODY> </HTML> diff --git a/doc/src/FAQ/FAQ_russian.html b/doc/src/FAQ/FAQ_russian.html index 9c5bf192d77..513b08627b3 100644 --- a/doc/src/FAQ/FAQ_russian.html +++ b/doc/src/FAQ/FAQ_russian.html @@ -12,7 +12,7 @@ <BODY bgcolor="#ffffff" text="#000000" link="#ff0000" vlink="#a00000" alink="#0000ff"> <H1>ďÔ×ĹÔŮ ÎÁ ŢÁÓÔĎ ÚÁÄÁ×ÁĹÍŮĹ ×ĎĐŇĎÓŮ ĐĎ PostgreSQL</H1> - <P>äÁÔÁ ĐĎÓĚĹÄÎĹÇĎ ĎÂÎĎ×ĚĹÎÉŃ: óŇĹÄÁ 19 ÎĎŃÂŇŃ 11:50:04 EDT 2003</P> + <P>äÁÔÁ ĐĎÓĚĹÄÎĹÇĎ ĎÂÎĎ×ĚĹÎÉŃ: ÷ÔĎŇÎÉË 6 ŃÎ×ÁŇŃ 16:42:01 EDT 2003</P> <P>áÎÇĚÉĘÓËÉĘ ×ÁŇÉÁÎÔ ÓĎĐŇĎ×ĎÖÄÁĹÔ: âŇŔÓ íĎÍŘŃÎ (Bruce Momjian) (<A href= "mailto:pgman@candle.pha.pa.us">pgman@candle.pha.pa.us</A>)<BR> @@ -35,7 +35,7 @@ <A href="#1.4">1.4</A>) óŐÝĹÓÔ×ŐŔÔ ĚÉ ×ĹŇÓÉÉ ĐĎŇÔÉŇĎ×ÁÎÎŮĹ ÎĹ ÎÁ Unix ÓÉÓÔĹÍŮ?<BR> <A href="#1.5">1.5</A>) çÄĹ ÍĎÖÎĎ ×ÚŃÔŘ PostgreSQL?<BR> <A href="#1.6">1.6</A>) çÄĹ ĐĎĚŐŢÉÔŘ ĐĎÄÄĹŇÖËŐ?<BR> - <A href="#1.7">1.7</A>) ëÁËÁŃ ĐĎÓĚĹÄÎŃŃ ×ĹŇÓÉŃ?<BR> + <A href="#1.7">1.7</A>) ëÁËÁŃ ×ĹŇÓÉŃ ĐĎÓĚĹÄÎŃŃ?<BR> <A href="#1.8">1.8</A>) ëÁËÁŃ ÄĎËŐÍĹÎÔÁĂÉŃ ÉÍĹĹÔÓŃ × ÎÁĚÉŢÉÉ?<BR> <A href="#1.9">1.9</A>) ëÁË ÎÁĘÔÉ ÉÎĆĎŇÍÁĂÉŔ Ď ÉÚ×ĹÓÔÎŮČ ĎŰÉÂËÁČ ÉĚÉ ĎÔÓŐÔÓÔ×ŐŔÝÉČ ×ĎÚÍĎÖÎĎÓÔŃČ?<BR> @@ -320,7 +320,7 @@ <A href="http://www.PostgreSQL.org">http://www.PostgreSQL.org</A> </BLOCKQUOTE> - <P>ĺÝĹ ÓŐÝĹÓÔ×ŐĹÔ IRC ËÁÎÁĚ ÎÁ EFNet É Freenode, Ó ÎÁÚ×ÁÎÉĹÍ + <P>ĺÝĹ ÓŐÝĹÓÔ×ŐĹÔ IRC ËÁÎÁĚ ÎÁ Freenode É EFNet, Ó ÎÁÚ×ÁÎÉĹÍ <I>#PostgreSQL</I>. ń ÉÓĐĎĚŘÚŐŔ ÄĚŃ ĐĎÄËĚŔŢĹÎÉŃ Ë ÜÔĎÍŐ ËÁÎÁĚŐ ËĎÍÁÎÄŐ Unix <CODE>irc -c '#PostgreSQL' "$USER" irc.phoenix.net.</CODE> ÉĚÉ <CODE>irc -c '#PostgreSQL' "$USER" irc.freenode.net.</CODE></P> @@ -330,7 +330,7 @@ <H4><A name="1.7">1.7</A>) ëÁËÁŃ ĐĎÓĚĹÄÎŃŃ ×ĹŇÓÉŃ?</H4> - <P>đĎÓĚĹÄÎÉĘ ×ŮĐŐÓË PostgreSQL - ÜÔĎ ×ĹŇÓÉŃ 7.4.</P> + <P>đĎÓĚĹÄÎÉĘ ×ŮĐŐÓË PostgreSQL - ÜÔĎ ×ĹŇÓÉŃ 7.4.1</P> <P>íŮ ĐĚÁÎÉŇŐĹÍ ×ŮĐŐÓËÁÔŘ ÎĎ×ŮĹ ×ĹŇÓÉÉ ËÁÖÄŮĹ 6-8 ÍĹÓŃĂĹ×.</P> @@ -565,11 +565,10 @@ ĐĎĚŘÚĎ×ÁÔĹĚŃ?</H4> <P>äÁ, ÓŐÝĹÓÔ×ŐĹÔ ÎĹÓËĎĚŘËĎ ÇŇÁĆÉŢĹÓËÉČ ÉÎÔĹŇĆĹĘÓĎ× ÄĚŃ PostgreSQL. - üÔĎ PgAccess (<A href="http://www.pgaccess.org/">http://www.pgaccess.org</A>, - PgAdmin III (<A href="http://www.pgadmin.org/">http://www.pgadmin.org</A>, - Win32-only), RHDB Admin (<A href="http://sources.redhat.com/rhdb/"> - http://sources.redhat.com/rhdb/</A>) É Rekall - (<A href="http://www.thekompany.com/products/rekall/"> + üÔĎ PgAccess (<A href="http://www.pgaccess.org/">http://www.pgaccess.org</A>), + PgAdmin III (<A href="http://www.pgadmin.org/">http://www.pgadmin.org</A>), + RHDB Admin (<A href="http://sources.redhat.com/rhdb/">http://sources.redhat.com/rhdb/</A>) + É Rekall (<A href="http://www.thekompany.com/products/rekall/"> http://www.thekompany.com/products/rekall/</A>, ËĎÍÍĹŇŢĹÓËÉĘ). ôÁËÖĹ ĹÓÔŘ PHPPgAdmin (<A href="http://phppgadmin.sourceforge.net/"> http://phppgadmin.sourceforge.net/</A>) - ÉÎÔĹŇĆĹĘÓ Ë PostgreSQL, ĎÓÎĎ×ÁÎÎŮĘ |