mirror of https://github.com/postgres/postgres
Brand 7.4.2. Release notes still need work.
This commit is contained in:
parent
aeda110cb9
commit
49bc9c45c9
4
INSTALL
4
INSTALL
|
@ -180,7 +180,7 @@ Substitute your paths appropriately.
|
|||
need to do this.
|
||||
To make the backup, you can use the "pg_dumpall" command from the version
|
||||
you are currently running. For best results, however, try to use the
|
||||
"pg_dumpall" command from PostgreSQL 7.4.1, since this version contains
|
||||
"pg_dumpall" command from PostgreSQL 7.4.2, since this version contains
|
||||
bug fixes and improvements over older versions. While this advice might
|
||||
seem idiosyncratic since you haven't installed the new version yet, it is
|
||||
advisable to follow it if you plan to install the new version in parallel
|
||||
|
@ -212,7 +212,7 @@ Substitute your paths appropriately.
|
|||
|
||||
mv /usr/local/pgsql /usr/local/pgsql.old
|
||||
|
||||
After you have installed PostgreSQL 7.4.1, create a new database directory and
|
||||
After you have installed PostgreSQL 7.4.2, create a new database directory and
|
||||
start the new server. Remember that you must execute these commands while
|
||||
logged in to the special database user account (which you already have if you
|
||||
are upgrading).
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
#! /bin/sh
|
||||
# Guess values for system-dependent variables and create Makefiles.
|
||||
# Generated by GNU Autoconf 2.53 for PostgreSQL 7.4.1.
|
||||
# Generated by GNU Autoconf 2.53 for PostgreSQL 7.4.2.
|
||||
#
|
||||
# Report bugs to <pgsql-bugs@postgresql.org>.
|
||||
#
|
||||
|
@ -258,8 +258,8 @@ SHELL=${CONFIG_SHELL-/bin/sh}
|
|||
# Identity of this package.
|
||||
PACKAGE_NAME='PostgreSQL'
|
||||
PACKAGE_TARNAME='postgresql'
|
||||
PACKAGE_VERSION='7.4.1'
|
||||
PACKAGE_STRING='PostgreSQL 7.4.1'
|
||||
PACKAGE_VERSION='7.4.2'
|
||||
PACKAGE_STRING='PostgreSQL 7.4.2'
|
||||
PACKAGE_BUGREPORT='pgsql-bugs@postgresql.org'
|
||||
|
||||
ac_unique_file="src/backend/access/common/heaptuple.c"
|
||||
|
@ -769,7 +769,7 @@ if test "$ac_init_help" = "long"; then
|
|||
# Omit some internal or obsolete options to make the list less imposing.
|
||||
# This message is too long to be a string in the A/UX 3.1 sh.
|
||||
cat <<_ACEOF
|
||||
\`configure' configures PostgreSQL 7.4.1 to adapt to many kinds of systems.
|
||||
\`configure' configures PostgreSQL 7.4.2 to adapt to many kinds of systems.
|
||||
|
||||
Usage: $0 [OPTION]... [VAR=VALUE]...
|
||||
|
||||
|
@ -830,7 +830,7 @@ fi
|
|||
|
||||
if test -n "$ac_init_help"; then
|
||||
case $ac_init_help in
|
||||
short | recursive ) echo "Configuration of PostgreSQL 7.4.1:";;
|
||||
short | recursive ) echo "Configuration of PostgreSQL 7.4.2:";;
|
||||
esac
|
||||
cat <<\_ACEOF
|
||||
|
||||
|
@ -950,7 +950,7 @@ fi
|
|||
test -n "$ac_init_help" && exit 0
|
||||
if $ac_init_version; then
|
||||
cat <<\_ACEOF
|
||||
PostgreSQL configure 7.4.1
|
||||
PostgreSQL configure 7.4.2
|
||||
generated by GNU Autoconf 2.53
|
||||
|
||||
Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002
|
||||
|
@ -967,7 +967,7 @@ cat >&5 <<_ACEOF
|
|||
This file contains any messages produced by compilers while
|
||||
running configure, to aid debugging if configure makes a mistake.
|
||||
|
||||
It was created by PostgreSQL $as_me 7.4.1, which was
|
||||
It was created by PostgreSQL $as_me 7.4.2, which was
|
||||
generated by GNU Autoconf 2.53. Invocation command line was
|
||||
|
||||
$ $0 $@
|
||||
|
@ -17990,7 +17990,7 @@ _ASBOX
|
|||
} >&5
|
||||
cat >&5 <<_CSEOF
|
||||
|
||||
This file was extended by PostgreSQL $as_me 7.4.1, which was
|
||||
This file was extended by PostgreSQL $as_me 7.4.2, which was
|
||||
generated by GNU Autoconf 2.53. Invocation command line was
|
||||
|
||||
CONFIG_FILES = $CONFIG_FILES
|
||||
|
@ -18052,7 +18052,7 @@ _ACEOF
|
|||
|
||||
cat >>$CONFIG_STATUS <<_ACEOF
|
||||
ac_cs_version="\\
|
||||
PostgreSQL config.status 7.4.1
|
||||
PostgreSQL config.status 7.4.2
|
||||
configured by $0, generated by GNU Autoconf 2.53,
|
||||
with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
dnl Process this file with autoconf to produce a configure script.
|
||||
dnl $Header: /cvsroot/pgsql/configure.in,v 1.301.2.5 2004/02/11 17:32:09 momjian Exp $
|
||||
dnl $Header: /cvsroot/pgsql/configure.in,v 1.301.2.6 2004/03/05 19:57:20 momjian Exp $
|
||||
dnl
|
||||
dnl Developers, please strive to achieve this order:
|
||||
dnl
|
||||
|
@ -21,7 +21,7 @@ dnl The GNU folks apparently haven't heard that some people don't use
|
|||
dnl Texinfo. Use this sorcery to use "docdir" instead of "infodir".
|
||||
m4_define([info], [doc])
|
||||
m4_define([infodir], [docdir])
|
||||
AC_INIT([PostgreSQL], [7.4.1], [pgsql-bugs@postgresql.org])
|
||||
AC_INIT([PostgreSQL], [7.4.2], [pgsql-bugs@postgresql.org])
|
||||
m4_undefine([infodir])
|
||||
m4_undefine([info])
|
||||
AC_SUBST(docdir)
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
|
||||
Developer's Frequently Asked Questions (FAQ) for PostgreSQL
|
||||
|
||||
Last updated: Sat Nov 29 23:56:43 EST 2003
|
||||
Last updated: Tue Feb 10 10:16:31 EST 2004
|
||||
|
||||
Current maintainer: Bruce Momjian (pgman@candle.pha.pa.us)
|
||||
|
||||
The most recent version of this document can be viewed at the
|
||||
postgreSQL Web site, http://www.PostgreSQL.org.
|
||||
The most recent version of this document can be viewed at
|
||||
http://www.PostgreSQL.org/docs/faqs/FAQ_DEV.html.
|
||||
_________________________________________________________________
|
||||
|
||||
General Questions
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
How to install PostgreSQL on Windows
|
||||
====================================
|
||||
|
||||
$Date: 2003/12/13 16:57:36 $
|
||||
$Date: 2004/03/05 19:57:20 $
|
||||
|
||||
PostgreSQL requires the appropriate subset of Cygwin DLLs to be
|
||||
installed in order that it functions under Windows.
|
||||
|
|
|
@ -5,8 +5,8 @@
|
|||
|
||||
Deutsche Übersetzung von Ian Barwick (barwick@gmx.net).
|
||||
|
||||
Letzte Aktualisierung der deutschen Übersetzung: Di., den 02.09.2003,
|
||||
10:00 CET
|
||||
Letzte Aktualisierung der deutschen Übersetzung: Fr., den 02.01.2004,
|
||||
07:30 CET
|
||||
|
||||
Die aktuellste Version dieses Dokuments liegt auf der PostgreSQL
|
||||
Website:
|
||||
|
@ -229,7 +229,8 @@
|
|||
|
||||
Weitere Informationen zum Status von PostgreSQL auf der
|
||||
Microsoft-Plattform befinden sich unter
|
||||
http://techdocs.postgresql.org/guides/Windows (en.).
|
||||
http://techdocs.postgresql.org/guides/Windows (en.) sowie
|
||||
http://momjian.postgresql.org/main/writings/pgsql/win32.html (en.).
|
||||
|
||||
Eine Portierung für Novell Netware 6 gibt es unter
|
||||
http://forge.novell.com.
|
||||
|
@ -280,10 +281,10 @@
|
|||
|
||||
http://www.PostgreSQL.org
|
||||
|
||||
Es gibt außerdem einen IRC-Channel bei EFNet und bei OpenProjects,
|
||||
Channel #PostgreSQL. Der FAQ-Autor Bruce Momjian nutzt den
|
||||
Unix-Befehl: irc -c '#PostgreSQL' "$USER" irc.phoenix.net um daran
|
||||
teilzunehmen.
|
||||
Es gibt außerdem einen IRC-Channel bei EFNet und bei Freenode, Channel
|
||||
#PostgreSQL. Unter UNIX/Linux können Sie mit z.B. irc -c '#PostgreSQL'
|
||||
"$USER" irc.phoenix.net bzw. irc -c '#PostgreSQL' "$USER"
|
||||
irc.freenode.net. daran teilnehmen.
|
||||
|
||||
Eine Liste von Unternehmen, die Support für PostgreSQL auf
|
||||
kommerzieller Basis leisten, kann unter
|
||||
|
@ -291,7 +292,7 @@
|
|||
|
||||
1.7) Was ist die neueste Version von PostgreSQL?
|
||||
|
||||
Die neueste Version von PostgreSQL ist 7.3.4 .
|
||||
Die neueste Version von PostgreSQL ist 7.4.1 .
|
||||
|
||||
Die Freigabe einer neuen Version erfolgt im Schnitt ca. dreimal pro
|
||||
Jahr.
|
||||
|
@ -386,14 +387,18 @@
|
|||
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 zwischen PostgreSQL und MySQL befindet
|
||||
sich unter dieser URL:
|
||||
langsamer.
|
||||
|
||||
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:
|
||||
http://openacs.org/philosophy/why-not-mysql.html
|
||||
|
||||
Zuverlässigkeit
|
||||
|
@ -488,12 +493,11 @@
|
|||
2.3) Hat PostgreSQL eine grafische Benutzerschnittstelle?
|
||||
|
||||
Es gibt mehrere grafische Schnittstellen für PostgreSQL, darunter
|
||||
PgAccess ( http://www.pgaccess.org), PgAdmin II
|
||||
(http://www.pgadmin.org, nur für Win32), RHDB Admin
|
||||
(http://sources.redhat.com/rhdb/ ) und Rekall (
|
||||
http://www.thekompany.com/products/rekall/, proprietär). Es gibt
|
||||
außerdem PHPPgAdmin ( http://phppgadmin.sourceforge.net/ ), eine
|
||||
web-basierte Schnittstelle.
|
||||
PgAccess ( http://www.pgaccess.org), PgAdmin III
|
||||
(http://www.pgadmin.org, RHDB Admin (http://sources.redhat.com/rhdb/ )
|
||||
und Rekall ( http://www.thekompany.com/products/rekall/, proprietär).
|
||||
Es gibt außerdem PHPPgAdmin ( http://phppgadmin.sourceforge.net/ ),
|
||||
eine web-basierte Schnittstelle.
|
||||
|
||||
2.4) Welche Programmiersprachen und Schnittstellen gibt es?
|
||||
|
||||
|
@ -788,7 +792,7 @@
|
|||
Es bestehen folgende Obergrenzen:
|
||||
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?
|
||||
|
@ -802,7 +806,7 @@
|
|||
verfügbaren Platten- und Speicherressourcen eingeschränkt sind.
|
||||
Extreme Größen können zu Leistungseinbußen führen.
|
||||
|
||||
Die maximale Tabellengröße von 16 TB benötigt keine
|
||||
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.
|
||||
|
@ -1016,7 +1020,7 @@ BYTEA bytea Bytearray mit variabler L
|
|||
Werts?
|
||||
|
||||
PostgreSQL bietet einen SERIAL-Datentyp. Dieser erzeugt automatisch
|
||||
eine Sequenz und einen Index auf die angegebene Spalte. Zum Beispiel:
|
||||
eine Sequenz auf die angegebene Spalte. Zum Beispiel:
|
||||
CREATE TABLE person (
|
||||
id SERIAL,
|
||||
name TEXT
|
||||
|
@ -1028,7 +1032,6 @@ BYTEA bytea Bytearray mit variabler L
|
|||
id INT4 NOT NULL DEFAULT nextval('person_id_seq'),
|
||||
name TEXT
|
||||
);
|
||||
CREATE UNIQUE INDEX person_id_key ON person ( id );
|
||||
|
||||
umgewandelt.
|
||||
|
||||
|
@ -1175,10 +1178,10 @@ BYTEA bytea Bytearray mit variabler L
|
|||
4.22) Warum sind meine Unterabfragen (subqueries), die IN verwenden, so
|
||||
langsam?
|
||||
|
||||
Derzeit werden Unterabfragen mit der äusseren Abfrage verbunden, indem
|
||||
für jede Reihe der äusseren Query die Ergebnisse der Unterabfrage
|
||||
sequentiell geprüft werden. Um dies zu vermeiden, kann man IN durch
|
||||
EXISTS ersetzen, z.B.:
|
||||
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 IN durch EXISTS ersetzen, z.B.:
|
||||
SELECT *
|
||||
FROM tabelle_1
|
||||
WHERE spalte1 IN (SELECT spalte2 FROM tabelle_2)
|
||||
|
@ -1189,8 +1192,9 @@ BYTEA bytea Bytearray mit variabler L
|
|||
WHERE EXISTS (SELECT spalte2 FROM tabelle_2 WHERE spalte1 = spalte2)
|
||||
|
||||
Damit diese Abfrage effizient durchgeführt wird, sollte für 'spalte2'
|
||||
ein Index angelegt worden sein. Die Einschränkung von Abfragen mit IN
|
||||
wird in der nächsten PostgreSQL-Version (7.4) behoben werden.
|
||||
ein Index angelegt worden sein. Ab PostgreSQL 7.4 IN verwendet die
|
||||
gleichen Methoden wie die normale Tabellenverknüpfung und ist daher
|
||||
soger EXISTS vorzuziehen.
|
||||
|
||||
4.23) Wie führe ich einen OUTER JOIN durch?
|
||||
|
||||
|
@ -1344,6 +1348,3 @@ BYTEA bytea Bytearray mit variabler L
|
|||
Verständnisfragen zum Inhalt der FAQ freue ich mich. Ich nehme auch
|
||||
allgemeine Fragen zu PostgreSQL gerne entgegen, verweise jedoch auf
|
||||
die Mailing-Listen als schnelle und zuverlässige Anlaufstellen.
|
||||
|
||||
Diese Übersetzung basiert teilweise auf einer früheren Übersetzung von
|
||||
Karsten Schulz (schulz@linux-systemhaus.de).
|
||||
|
|
442
doc/FAQ_polish
442
doc/FAQ_polish
|
@ -1,18 +1,19 @@
|
|||
|
||||
Frequently Asked Questions (FAQ) o PostgreSQL
|
||||
|
||||
Ostatnia aktualizacja: Thu Apr 18 00:44:51 EDT 2002
|
||||
Ostatnia aktualizacja: Sobota Luty 7 22:16:21 EST 2004
|
||||
|
||||
Ostatnia aktualizacja tl/umaczenia: Piatek Marzec 5 19:31:12 EST 2004
|
||||
|
||||
Obecny maintainer: Bruce Momjian (pgman@candle.pha.pa.us)
|
||||
|
||||
Tl/umaczenie: Marcin Mazurek (m.mazurek@netsync.pl)
|
||||
|
||||
Najbardziej aktualna wersje tego dokumentu mozna znalezc pod adresem:
|
||||
http://www.PostgreSQL.org/docs/faq-english.html.
|
||||
http://www.PostgreSQL.org/docs/faqs/FAQ.html.
|
||||
|
||||
Odpowiedzi na pytania dotyczace konkretnych systemów operacyjnych
|
||||
mozna znalezc pod adresem:
|
||||
http://www.PostgreSQL.org/users-lounge/docs/faq.html.
|
||||
mozna znalezc pod adresem: http://www.PostgreSQL.org/docs/index.html.
|
||||
_________________________________________________________________
|
||||
|
||||
Pytania ogólne
|
||||
|
@ -40,18 +41,17 @@
|
|||
2.1) Czy sa jakies driwery ODBC dla PostgreSQL?
|
||||
2.2) Jakie istnieja narzedzia pozwalajace na dostep do PostgreSQL
|
||||
przez www?
|
||||
2.3) Czy istnieje jakies GUI dla PostgreSQL? Narzedzie do
|
||||
raportowania? Interfejs dla "embedded query language"?
|
||||
2.3) Czy istnieje jakies GUI dla PostgreSQL?
|
||||
2.4) Za pomoca jakich jezyków programowania mozna sie komunikowac z
|
||||
PostgreSQL?
|
||||
|
||||
Pytania administratora
|
||||
Pytania dotyczace administracji
|
||||
|
||||
3.1) Jak moge zainstalowac PostgreSQL w innej lokalizacji niz
|
||||
/usr/local/pgsql?
|
||||
3.2) Podczas startu postmaster'a, otrzymuje komunikat: Bad System Call
|
||||
lub "core dumped". Dlaczego?
|
||||
3.3) Podczas startu postmaster'a, otrzymuje komunikato bl/edzie:
|
||||
3.3) Podczas startu postmaster'a, otrzymuje komunikat o bl/edzie:
|
||||
IpcMemoryCreate. Dlaczego?
|
||||
3.4) Podczas startu postmaster'a, otrzymuje komunikat o bl/edzie:
|
||||
IpcSemaphoreCreate. Dlaczego?
|
||||
|
@ -61,8 +61,9 @@
|
|||
3.7) Jakie sa mozliwosci wyszukiwania bl/edów?
|
||||
3.8) Skad sie bierze komunikat: "Sorry, too many clients" podczas
|
||||
próby pol/aczenia sie z baza danych?
|
||||
3.9) Co to za pliki typu pg_sorttempNNN.NN , które znajduja sie w
|
||||
katalogu z plikami bazy danych?
|
||||
3.9) Jakie pliki znajduja sie w pg_temp?
|
||||
3.10) Dlaczego konieczne jest przy upgradzie PostgreSQL korzystanie ze
|
||||
skryptów dump i restore?
|
||||
|
||||
Pytania dotyczace uzytkowania
|
||||
|
||||
|
@ -72,7 +73,7 @@
|
|||
zapytania?
|
||||
4.3) Jak moge uzyskac liste wszystkich tabel czy innych rzeczy pod
|
||||
psql?
|
||||
4.4) Jak usunac kolumne z tabeli?
|
||||
4.4) Jak usunac kolumne z tabeli lub zmienic jej typ?
|
||||
4.5) Jaki jest maksymalny rozmiar dla rzedu, tabeli i bazy danych?
|
||||
4.6) Jak duzo miejsca w bazie danych jest potrzebne aby przechowac
|
||||
dane ze zwyczajnego pliku tekstowego?
|
||||
|
@ -110,6 +111,10 @@
|
|||
4.23) Jak wykonac "outer join"?
|
||||
4.24) Jak wykonywac zapytanie uzywajace kilku baz danych jednoczesnie?
|
||||
4.25) Jak zwrócic w funkcji wiele rzedów lub kolumn?
|
||||
4.26) Dlaczego nie moge w sposób pewny tworzyc/usuwac tabel
|
||||
tymczasowych w funkcjach PL/PgSQL?
|
||||
4.27) Jakie sa mozliwosci replikacji w PostgreSQL?
|
||||
4.28) Jakie mozliwosci szyfrowania oferuje PostgreSQL?
|
||||
|
||||
Rozwijanie PostgreSQL
|
||||
|
||||
|
@ -125,7 +130,8 @@
|
|||
|
||||
1.1) Co to jest PostgreSQL? Jak to wymawiac?
|
||||
|
||||
PostgreSQL wymawia sie Post-Gres-kju-el.
|
||||
PostgreSQL wymawia sie Post-Gres-kju-el. Czesto podczas rozmów uzywany
|
||||
jest termin "Postgres"
|
||||
|
||||
PostgreSQL jest rozszerzeniem systemu zarzadzania bazami danych -
|
||||
POSTGRES, kolejna generacja rozwojowego prototypu DBMS. Mimo, ze
|
||||
|
@ -137,11 +143,13 @@
|
|||
Rozwój PostgreSQL jest prowadzony przez grupe ludzi z Internetu,
|
||||
komunikujacych sie poprzez mailowe listy dyskusyjne PostgreSQL.
|
||||
Obecnym koordynatorem jest Marc G. Fournier (scrappy@PostgreSQL.org).
|
||||
(Zobacz ponizej jak sie przyl/aczyc). Ta grupa ludzi jest
|
||||
odpowiedzialna za cal/y rozwój PostgreSQL.
|
||||
(Zobacz pytanie 1.6 jak sie przyl/aczyc). Ta grupa ludzi jest
|
||||
odpowiedzialna za cal/y rozwój PostgreSQL. PostgreSQL jest projektem
|
||||
nie kontrolowanym przez zadna firme, aby wziac udzial/ w jego rozwoju
|
||||
sprawdz, http://www.PostgreSQL.org/docs/faqs/FAQ_DEV.html
|
||||
|
||||
Autorami PostgreSQL 1.01 byli Andrew Yu and Jolly Chen. Wiele innych
|
||||
osób pomogl/o przy portowaniu, testowaniu, debugowaniu, i rozwijaniu
|
||||
osób pomogl/o przy portowaniu, testowaniu, debugowaniu i rozwijaniu
|
||||
kodu. Oryginalny kod Postgresa, na którym zostal/ oparty PostgreSQL,
|
||||
byl/ wysil/kiem studentów oraz pracowników pracujacych pod
|
||||
kierownictwem profesora Michael'a Stonebraker'a z University of
|
||||
|
@ -194,11 +202,11 @@
|
|||
|
||||
Klient
|
||||
|
||||
Mozliwa jest kompilacja bibliteki C libpq C, psql oraz innych
|
||||
Mozliwa jest kompilacja bibliteki C libpq, psql oraz innych
|
||||
interfejsów i uruchamianie ich na platformie MS Windows. W tym wypadku
|
||||
klient jest uruchamiany na MS Windows a z serwerem komunikuje sie
|
||||
poprzez TCP/IP. Serwer moze dzial/ac na dowolnej wspieranej platformie
|
||||
Unixowej. Plik win31.mak jest dol/aczony do zródel/, aby mozna byl/o
|
||||
Unixowej. Plik win32.mak jest dol/aczony do zródel/, aby mozna byl/o
|
||||
stworzyc biblioteke libpq oraz program psql dzial/ajace w srodowisku
|
||||
Win32. PostgreSQL moze sie takze komunikowac z klientami ODBC.
|
||||
|
||||
|
@ -206,9 +214,17 @@
|
|||
|
||||
Serwer moze byc uruchamiany na Windows NT i Win2k uzywajac bibliotek
|
||||
Cygwin, Cygnus Unix/NT. W pliku pgsql/doc/FAQ_MSWIN znajdujacym sie w
|
||||
zródl/ach lub pod adresem: MS Windows FAQ na naszych stronach. Nie
|
||||
planujemy tworzyc portu przeznaczonego docelowo dla platformy
|
||||
Microsoft.
|
||||
zródl/ach lub pod adresem:
|
||||
http://www.PostgreSQL.org/docs/faqs/text/FAQ_MSWIN na naszych
|
||||
stronach.
|
||||
|
||||
Obecnie prowadzone sa prace nad stworzeniem wersji dla MS Win
|
||||
NT/200/XP. Jesli chcesz sie dowiedziec o obecnym statusie tych prac
|
||||
zobacz http://techdocs.postgresql.org/guides/Windows and
|
||||
http://momjian.postgresql.org/main/writings/pgsql/win32.html.
|
||||
|
||||
Istnieje takze port pod Novell Netware 6 dostepny pod adresem
|
||||
http://forge.novell.com.
|
||||
|
||||
1.5) Skad mozna sciagnac PostgreSQL?
|
||||
|
||||
|
@ -258,31 +274,31 @@
|
|||
irc.phoenix.net.
|
||||
|
||||
Lista firm oferujacych wsparcie na zasadach komercyjnych znajduje sie
|
||||
pod adresem:
|
||||
http://www.postgresql.org/users-lounge/commercial-support.html.
|
||||
pod adresem: http://techdocs.postgresql.org/companies.php.
|
||||
|
||||
1.7) Jaka jest ostatnia dostepna wersja?
|
||||
|
||||
Ostatnia dostepna wersja PostgreSQL to 7.2.1.
|
||||
Ostatnia dostepna wersja PostgreSQL to 7.4.1.
|
||||
|
||||
Planujemy publikowanie kolejnych wersji co cztery miesiace.
|
||||
Planujemy publikowanie kolejnych wersji co szesc do osmiu miesiecy.
|
||||
|
||||
1.8) Jaka dokumentacja jest dostepna?
|
||||
|
||||
Kilka manuali, stron podecznika man, oraz kilka przykl/adów do
|
||||
testowania sa zal/aczone w samej dystrybucji. Znajduja sie one w
|
||||
katalogu /doc. Manual moze byc takze przegladany poprzez strony www
|
||||
pod adresem http://www.PostgreSQL.org/users-lounge/docs/.
|
||||
pod adresem http://www.PostgreSQL.org/docs.
|
||||
|
||||
Istnieja takze dwie ksiazki dostepne online pod adresami
|
||||
http://www.PostgreSQL.org/docs/awbook.html i
|
||||
http://www.commandprompt.com/ppbook/. Lista ksiazek o PostgreSQL,
|
||||
które mozna kupic znajduje sie pod adresem
|
||||
http://www.postgresql.org/books/. Zbiór technicznych artykul/ów o
|
||||
PostgreSQL znajduje sie pod adresem http://techdocs.postgresql.org/.
|
||||
http://techdocs.PostgreSQL.org/techdocs/bookreviews.php. Zbiór
|
||||
technicznych artykul/ów o PostgreSQL znajduje sie pod adresem
|
||||
http://techdocs.postgresql.org/.
|
||||
|
||||
psql posiada kilka wbudowanych polecen \d, za pomoca których mozna
|
||||
sprawdzic informacje dotyczace typów, operatorów, funkcji, aggregatów
|
||||
sprawdzic informacje dotyczace typów, operatorów, funkcji, agregatów
|
||||
itd.
|
||||
|
||||
Na naszej stronie mozna znalezc duzo wiecej dokumentacji.
|
||||
|
@ -327,7 +343,8 @@
|
|||
Jest okol/o 12 osób, które maja uprawnienia do commit'owania w CVS
|
||||
PostgreSQL'a. Kazdy z nich submitowal/ tak wiele wysokiej jakosci
|
||||
patchy, ze stal/o sie niemozliwe dla obecnych commiterów byc z nimi na
|
||||
biezaco, majac pewnosc ze sa to poprawki wysokiej jakosci.
|
||||
biezaco, wiec musielismy im ufac i miec pewnosc, ze ich poprawki sa
|
||||
wysokiej jakosci.
|
||||
|
||||
1.13) Jak moge zgl/aszac bl/edy?
|
||||
|
||||
|
@ -349,44 +366,33 @@
|
|||
integrity, oraz wyrafinowany system blokowania. Mamy takze
|
||||
wl/asciowsci których inni nie posiadaja, jak typy definiowane
|
||||
przez uzytkownika, dziedziczenie, rules, multi-version
|
||||
concurrency control, która redukuje problemy z blokowaiem (lock
|
||||
contention).
|
||||
concurrency control, która redukuje problemy z blokowaniem
|
||||
(lock contention).
|
||||
|
||||
Wydajnosc
|
||||
PostgreSQL dzial/a w dwóch trybach. Standardowy tryb fsync
|
||||
zrzuca kazda zakonczona transakcje na dysk, gwarantujac w ten
|
||||
sposób to, ze jesli system operacyjny sie zawiesi lub straci
|
||||
zasilanie wciagu kilku nastepnych sekund, wszystkie Twoje dane
|
||||
zostana bezpiecznie zapisane na dysku. W tym trybie, jestesmy
|
||||
wolniejsi niz wiekszosc komercyjnych baz danych, czesciowo
|
||||
dlatego ze niewiele z nich wykonuje taki sposób zapisywania
|
||||
danych jako domyslne ustawienie. W trybie no-fsync z regul/y
|
||||
jestesmy szybsi niz komercyjne bazy danych, chociaz w tym
|
||||
wypadku zawieszenie sie systemu moze spowodowac uszkodzenie
|
||||
danych. Pracujemy nad tym, aby stworzyc posredni tryb, który
|
||||
powoduje mniejsza redukcje wydajnosci niz tryb fsync i pozwoli
|
||||
na integralnosc danych w przeciagu 30 sekund do zal/amania sie
|
||||
systemu operacyjnego.
|
||||
Porównujac do MySQL czy innych prostych baz danych, jestesmy
|
||||
wolniejsi przy wykonywaniu insertów/updatów przez narzut
|
||||
spowodowany przez transakcje. Oczywiscie MySQL nie posiada
|
||||
zadnej z wymienionych wyzej mozliwosci. PostgreSQL zostal/
|
||||
zbudowany aby byc DBMS elastycznym i bogatym z róznorakie
|
||||
mozliwosci, aczkolwiek dbamy, aby poprawiac jego wydajnosc
|
||||
poprzez analize kodu zródl/owego i profilowanie. Ciekawe
|
||||
porównanie PostgreSQL i MySQL mozna znalezc pod adresem
|
||||
http://openacs.org/why-not-mysql.html
|
||||
Kazde pol/aczenie klienta jest obsl/ugiwane przez nas poprzez
|
||||
stworzenie nowego procesu Unixowego. Procesy backendu dziela
|
||||
bufory danych oraz informacje o blokadach. Uzywajac wielu
|
||||
procesorów, rózne backendy moga bez problemu dzial/ac na
|
||||
róznych procesorach.
|
||||
Wydajnosc PostgreSQL jest podobna do innych komercyjnych i open
|
||||
source baz danych. W niektórych sytuacjach jest szybszy w
|
||||
niektórych wolniejszy. W porównianiu do MySQL lub mniejszych
|
||||
baz danych jestesmy szybsi przy wielu uzytkownikach,
|
||||
skomplikowaych zapytaniach i duzym obciazeniu podczas. MySQL
|
||||
jest szybszy dla prostych SELECTów wykonywanych przez niewielu
|
||||
uzytkowników. Spowodowane jest to narzutem, który sie pojawia
|
||||
przy transakcjach. Oczywiscie MySQL nie ma wiekszosci z
|
||||
rozwiazan opisanych powyzej w sekcji Mozliwosci . PostgreSQL
|
||||
zostal/ stworzony z mysla o stabilnosci, oraz szerokiej gamie
|
||||
mozliwosci, ale mimo to staramy sie w kazdej wersji poprawiac
|
||||
jego wydajnosc. Ciekawe porównanie PostgreSQL i MySQL mozna
|
||||
znalezc pod adresem
|
||||
http://openacs.org/philosophy/why-not-mysql.html Dodatkowo,
|
||||
MySQL jest firma, która dystrybuuje jej produkty poprzez zasade
|
||||
Open Source i wymaga wykupienia licencji w przypadku tworzenia
|
||||
close-source software, co ie ma miejsca w przypadku PostgreSQL.
|
||||
|
||||
Stabilnosc
|
||||
Zdajemy sobie sprawe, ze DBMS musi byc stabilny, w przeciwnym
|
||||
wypadku jest bez wartosci. Staramy sie publikowac kod stabilny,
|
||||
dobrze przetestowany, z minimum mozliwych bl/edów. Kazde
|
||||
wydanie poprzedza conajmniej miesiac testów wersji beta.
|
||||
wydanie poprzedza co najmniej miesiac testów wersji beta.
|
||||
Patrzac na historie wydan PostgreSQL widac, ze dostarczamy
|
||||
stabilne, dobrze sprawdzone wersje, które sa gotowe do uzycia w
|
||||
srodowisku produkcyjnym. Myslimy, ze proces publikowania
|
||||
|
@ -415,9 +421,9 @@
|
|||
1.15) W jaki sposób moge wesprzec finansowo PostgreSQL?
|
||||
|
||||
PostgreSQL korzysta z najlepszej infrastruktury od samego poczatku
|
||||
istnienia projektu, tzn. szesciu lat. Wszystko to zawdzieczamy
|
||||
Marc'owi Fournier'owi, który stworzyl/ ta infrastrukture i zarzadza
|
||||
nia od lat.
|
||||
istnienia projektu, czyli roku 1996 kiedy rozpoczelismy prace.
|
||||
Wszystko to zawdzieczamy Marc'owi Fournier'owi, który stworzyl/ ta
|
||||
infrastrukture i zarzadza nia od lat.
|
||||
|
||||
Wysokiej jakosci infrastruktura jest bardzo wazna dla kazdego projektu
|
||||
open-source. Zapobiega przerwom w rozwoju projektu i jakimkolwiek
|
||||
|
@ -427,7 +433,7 @@
|
|||
tanie. Istnieje wiele róznych miesiecznych, czy jednorazowych
|
||||
wydatków, które trzeba ponosic aby wszystko dzial/al/o jak nalezy.
|
||||
Jesli Ty, badz Twoja firma moze wspomóc finansowo rozwój PostgreSQL
|
||||
odwiedz adres: http://www.pgsql.com/pg_goodies gdzie opisane jest jak
|
||||
odwiedz adres: http://store.pgsql.com/shopping/ gdzie opisane jest jak
|
||||
to zrobic.
|
||||
|
||||
Chociaz na stronie wspomniana jest nazwa PostgreSQL Inc, "datki" sa
|
||||
|
@ -436,69 +442,72 @@
|
|||
wysl/ac czek na adres kontaktowy.
|
||||
_________________________________________________________________
|
||||
|
||||
Jesli mozesz sie pochwalic udanymi wdrozeniami PostgreSQL, prosimy
|
||||
abys zgl/osil/ nam to na stronie: http://advocacy.postgresql.org.
|
||||
|
||||
User Client Questions
|
||||
|
||||
2.1) Czy sa jakies driwery ODBC dla PostgreSQL?
|
||||
|
||||
Dostepne sa dwa driwery ODBC: PsqlODBC i OpenLink ODBC.
|
||||
|
||||
PsqlODBC jest dol/aczony do zródel/. Wiecej informacji na jego temat
|
||||
mozesz znalezc pod adresem: ftp://ftp.PostgreSQL.org/pub/odbc/.
|
||||
Mozesz pobrac PsqlODBC z adresu
|
||||
http://gborg.postgresql.org/project/psqlodbc/projdisplay.php
|
||||
|
||||
OpenLink ODBC moze byc pobrany z adresu: http://www.openlinksw.com.
|
||||
Wspól/pracuje ze standardowym oprogramowaniem klienckim ODBC wiec w
|
||||
ten sposób mozesz korzystac z PostgreSQL ODBC dostepnego na kazdej
|
||||
plaformie która wspiera (Win, Mac, Unix, VMS).
|
||||
pltaformie która wspiera (Win, Mac, Unix, VMS).
|
||||
|
||||
Autorzy beda prawdopodobnie sprzedawac ten produkt osobom które
|
||||
wymagaja komercyjnego wsparcia, ale wersja darmowa bedzie zawsze
|
||||
dostepna. Wszystkie pytania mozesz wysyl/ac na adres:
|
||||
postgres95@openlink.co.uk.
|
||||
|
||||
Sprawdz takze rozdzial/ o ODBC w "Programmer's Guide".
|
||||
|
||||
2.2) Jakie istnieja narzedzia pozwalajace na dostep do PostgreSQL przez
|
||||
www?
|
||||
|
||||
Dobry podrecznik dla poczatkujacych o dostepie do bazy danych przez
|
||||
www mozesz znalezc pod adresem: http://www.webreview.com
|
||||
|
||||
Inny znajduje sie pod adresem: http://www.phone.net/home/mwm/hotlist/.
|
||||
|
||||
Do integracji z www, swietnym rozwiazaniem jest PHP. Mozesz znalezc
|
||||
wiecej informacji na ten temat pod adresem http://www.php.net.
|
||||
|
||||
Wiele osób w przypadku skomplikowanych rozwiazan uzywa Perl'a i
|
||||
modul/u CGI.pl.
|
||||
modul/u CGI.pl lub mod_perl.
|
||||
|
||||
2.3) Czy istnieje jakies GUI dla PostgreSQL? Narzedzie do raportowania?
|
||||
Interfejs dla "embedded query language"?
|
||||
2.3) Czy istnieje jakies GUI dla PostgreSQL?
|
||||
|
||||
Mamy cal/kiem mil/y interfejs graficzny, który zostal/ nazwany
|
||||
pgaccess i jest on dostarczany jako czesc zródel/. pgaccess posiada
|
||||
takze generator raportów. Mozna go znalezc pod adresem
|
||||
http://www.flex.ro/pgaccess
|
||||
Tak, istnieje kilka interfejsów graficznych dla PostgreSQL. Wsród nich
|
||||
PgAccess ( http://www.pgaccess.org), PgAdmin III
|
||||
(http://www.pgadmin.org), RHDB Admin (http://sources.redhat.com/rhdb/
|
||||
) oraz Rekall ( http://www.thekompany.com/products/rekall/,
|
||||
komercyjny). Istnieje takze PHPPgAdmin (
|
||||
http://phppgadmin.sourceforge.net/ ), webowy interfejs dla PostgreSQL.
|
||||
|
||||
Udostepnilismy takze ecpg, który jest "embedded SQL query language
|
||||
interface" dla jezyka C.
|
||||
Wiecej informacji na ten temat znajduje sie pod adresem See
|
||||
http://techdocs.postgresql.org/guides/GUITools.
|
||||
|
||||
2.4) Za pomoca jakich jezyków programowania mozna sie komunikowac z
|
||||
PostgreSQL?
|
||||
|
||||
Mamy wsparcie dla:
|
||||
Najbardziej popularne jezyki posiiadaja wl/asny interfejs dla
|
||||
PostgreSQL. Sprawdz liste rozszerzen dla intersujacego Ciebie jezyka
|
||||
programowania.
|
||||
|
||||
Ze zródl/ami PostreSQL dystrubuowane sa interfejsy dla nastepujacych
|
||||
jezyków programowania:
|
||||
* C (libpq)
|
||||
* C++ (libpq++)
|
||||
* Embedded C (ecpg)
|
||||
* Java (jdbc)
|
||||
* Perl (perl5)
|
||||
* ODBC (odbc)
|
||||
* Python (PyGreSQL)
|
||||
* TCL (libpgtcl)
|
||||
* C Easy API (libpgeasy)
|
||||
* Embedded HTML (PHP z http://www.php.net)
|
||||
|
||||
Inne interfejsy sa dostepne pod adresem: http://gborg.postgresql.org w
|
||||
sekcji Drivers/Interfaces.
|
||||
_________________________________________________________________
|
||||
|
||||
Pytania administratora
|
||||
Pytania dotyczace administracji
|
||||
|
||||
3.1) Jak moge zainstalowac PostgreSQL w innej lokalizacji niz
|
||||
/usr/local/pgsql?
|
||||
|
@ -566,7 +575,7 @@
|
|||
pojedyncze INSERTy. Po drugie polecenia SQL nie zawarte w bloku
|
||||
okreslajacym transakcje - BEGIN WORK/COMMIT, sa traktowane jako
|
||||
pojedyncza transakcja. Rozwaz wykonanie kilku polecen/zdan SQL w
|
||||
jednym bloku transakcji. To redukuje narzut powodowany przez
|
||||
jednym bloku transakcji. To redukuje narzut nakl/adany przez
|
||||
transakcje. Przy duzych zmianach w danych, warto usunac i stworzyc na
|
||||
nowo indeksy.
|
||||
|
||||
|
@ -665,25 +674,36 @@
|
|||
limit na maksymalna liczbe procesów backendu to obawa o wyczerpanie
|
||||
zasobów systemu.
|
||||
|
||||
W wersjach PostgreSQL wczesniejszych niz 6.5, maksymalna liczba
|
||||
backendów byl/a ustawiona na 64, a zmiana tej wartosci wymaga
|
||||
rekompliacji po zmianie stal/ej MaxBackendId w pliku
|
||||
include/storage/sinvaladt.h.
|
||||
|
||||
3.9) Co to sa za pliki typu: pg_sorttempNNN.NN, które znajduja sie w
|
||||
katalogu z plikami bazy danych?
|
||||
3.9) Jakie pliki znajduja sie w pg_temp?
|
||||
|
||||
Sa to tymczasowe pliki utworzone przez executor. Dla przykl/adu, jesli
|
||||
jakas operacja sortowania jest wymagana do wykonania ORDER BY, a samo
|
||||
sortowanie wymaga wiecej miejsca niz paratmetr backendu -S ustawil/ do
|
||||
wykorzystania, wtedy tymczasowe pliki sa uzywane do przechowywania
|
||||
tych danych.
|
||||
Katalog ten zawiera tymczasowe pliki utworzone przez executor. Dla
|
||||
przykl/adu, jesli jakas operacja sortowania jest wymagana do wykonania
|
||||
ORDER BY, a samo sortowanie wymaga wiecej miejsca niz parametr
|
||||
backendu -S ustawil/ do wykorzystania, wtedy tymczasowe pliki sa
|
||||
uzywane do przechowywania tych danych.
|
||||
|
||||
Pliki tymczasowe powinny byc usuniete automatycznie, ale mogl/o sie to
|
||||
nie stac jesli proces backendu w miedzyczasie nie zakonczyl/ sie
|
||||
poprawnie podczas operacji sortowania. Jesli w danym momencie nie
|
||||
dzial/aja zadne procesy backendów mozesz spokojnie usunac pliki
|
||||
pg_tempNNN.NN.
|
||||
|
||||
3.9) Dlaczego konieczne jest przy upgradzie PostgreSQL korzystanie ze
|
||||
skryptów dump i restore?
|
||||
|
||||
Twórcy PostgreSQL dokonuja jedynie mal/ych zmian pomiedzy mal/ymi
|
||||
upgradami wersji, np z 7.2 do 7.2.1, wtedy upgrade nie wymaga
|
||||
korzystania z dump i restore. Przy wiekszych zmianach, np. z wersji
|
||||
7.2 do 7.3, czesto zmianymaja wpl/yw na format przechowywanych danych.
|
||||
Zmiany te sa na tyle skomplikowane, ze nie utrzymujemy zgodosci z
|
||||
poprzednimi wersjami PostgreSQL. dump pozwala na wydostanie danych w
|
||||
takiej postaci, w której l/atwe jest ich zaimportowanie do nowszych
|
||||
wersji bez kl/opotu.
|
||||
|
||||
W wydaniach gdzie zmiany nie dotycza formatu danych na dysku, mozna
|
||||
wykorzystac skryptu pg_upgrade, do upgradu bez uzycia dump/restore.
|
||||
Dokumentacja do danego wydania zawiera informacje czy mozliwe jest
|
||||
uzycie pg_upgrade.
|
||||
_________________________________________________________________
|
||||
|
||||
Pytania dotyczace uzywania
|
||||
|
@ -706,6 +726,13 @@
|
|||
pierwszych rzedów, byc moze bedzie koniecznosc wykonania zapytania do
|
||||
momentu az zostana znalezione pozadane wyniki.
|
||||
|
||||
Aby otrzymac losowy rzad, uzyj:
|
||||
SELECT col
|
||||
FROM tab
|
||||
ORDER BY random()
|
||||
LIMIT 1;
|
||||
|
||||
|
||||
4.3) Jak moge uzyskac liste wszystkich tabel czy innych rzeczy pod psql?
|
||||
|
||||
Mozesz sprawdzic zawartosc zródel/ psql, a konkretnie plik
|
||||
|
@ -714,36 +741,44 @@
|
|||
wtedy po wykonaniu polecenia z backslashem wyswietlane bedzie
|
||||
zapytanie, które w rzeczywistosci jest wykonywane.
|
||||
|
||||
4.4) Jak usunac kolumne z tabeli?
|
||||
4.4) Jak usunac kolumne z tabeli lub zmienic jej typ?
|
||||
|
||||
Nie mamy zaimplementowanego ALTER TABLE DROP COLUMN, ale mozesz zrobic
|
||||
tak:
|
||||
SELECT ... -- wybierz zawartosc wszystkich kolumn poza ta jedna której chc
|
||||
esz sie pozbyc
|
||||
DROP COLUMNT zostal/o dodane w wersji 7.3 przy poleceniu ALTER TABLE
|
||||
DROP COLUMN. We wczesniejszych wersjach mozesz zrobic tak:
|
||||
BEGIN;
|
||||
LOCAL TABLE old_table;
|
||||
SELECT ... -- wybierz wszystkie kolumny poza ta jedna której chcesz sie po
|
||||
zbyc
|
||||
INTO TABLE new_table
|
||||
FROM old_table;
|
||||
DROP TABLE old_table;
|
||||
ALTER TABLE new_table RENAME TO old_table;
|
||||
|
||||
Aby zmienic typ danych kolumny mozesz zrobic tak:
|
||||
BEGIN;
|
||||
ALTER TABLE tab ADD COLUMN new_col new_data_type;
|
||||
UPDATE tab SET new_col = CAST(old_col AS new_data_type);
|
||||
ALTER TABLE tab DROP COLUMN old_col;
|
||||
COMMIT;
|
||||
|
||||
4.5) Jaki jest maksymalny rozmiar dla rzedu, tabeli i bazy danych?
|
||||
|
||||
Oto wszystkie ograniczenia:
|
||||
Maksymalny rozmiar dla bazdy danych? nieograniczony ( istnieja bazy dan
|
||||
ych o wielkosci 500 GB databases )
|
||||
Maksymalny rozmiar dla tabeli? 16 TB
|
||||
Maksymalny rozmiar dla rzedu? nieograniczony w 7.1 i pózniejszyc
|
||||
h
|
||||
Maksymalny rozmiar pola? 1 GB w 7.1 and later
|
||||
Maksymalny rozmiar dla bazdy danych? nieograniczony ( istnieja
|
||||
bazy danych o wielkosci 32 TB databases )
|
||||
Maksymalny rozmiar dla tabeli? 32 TB
|
||||
Maksymalny rozmiar dla rzedu? 1.6 TB
|
||||
Maksymalny rozmiar pola? 1 GB
|
||||
Maksymalna liczba rzedów w tabeli? nieograniczona
|
||||
Maksymalna liczba kolumn w tabeli? 250-1600 w zalezonosci od typów kolum
|
||||
n
|
||||
Makasymalna liczba indeksów na tabeli? nieograniczona
|
||||
Maksymalna liczba kolumn w tabeli? 250-1600 w zalezonosci od typów ko
|
||||
lumn
|
||||
Makasymalna liczba indeksów na tabeli? nieograniczona
|
||||
|
||||
Oczywiscie "nieograniczony" nie jest prawda tak do konca, istnieja
|
||||
ograniczenia wynikajace z dostepnego miejsca na dysku, pamieci/swapa.
|
||||
Kiedy wielkosci te beda bardzo duze moze odbic sie to na wydajnosci.
|
||||
|
||||
Maksymalny rozmiar tabeli, czyli 16 TB nie wymaga od systemu
|
||||
Maksymalny rozmiar tabeli, czyli 32 TB nie wymaga od systemu
|
||||
operacyjnego wsparcia dla duzych plików. Duze tabele sa przechowywane
|
||||
jako pliki o rozmiarze 1 GB, wiec ograniczenia co do wielkosci plików
|
||||
narzucone przez system plików nie sa istotne.
|
||||
|
@ -786,6 +821,9 @@ n
|
|||
zawieraja pewne dane, wiec w pewnych przypadkach moga byc cal/kiem
|
||||
duze.
|
||||
|
||||
NULLe sa przechowywane jako mapy bitowe, wiec uzywaja bardzo mal/o
|
||||
miejsca.
|
||||
|
||||
4.7) Jak moge sprawdzic jakie tabele, klucze, bazy danych i uzytkownicy sa
|
||||
utworzeni?
|
||||
|
||||
|
@ -821,14 +859,32 @@ n
|
|||
sortowanie jest zazwyczaj szybsze nie wyszukiwanie za pomoca indeksu
|
||||
na duzej tabeli.
|
||||
Jakkolwiek LIMIT w pol/aczeniu z ORDER BY czesto bedzie wykorzystywal/
|
||||
indeksów poniewaz jedynie mal/a czesc z tabeli jest zwracana.
|
||||
indeksy poniewaz jedynie mal/a czesc z tabeli jest zwracana. W
|
||||
rzeczywistosci, chociaz MAX() i MIN() nie uzywaja indeksów, mozliwe
|
||||
jest aby zwrócic te wartosci uzywajac indeksów poprzez uzycie ORDER BY
|
||||
i LIMIT.
|
||||
SELECT col
|
||||
FROM tab
|
||||
ORDER BY col [ DESC ]
|
||||
LIMIT 1;
|
||||
|
||||
Jesli uwazasz, ze optimizer myli sie wybierajac sequential scan, uzyj
|
||||
SET enable_seqscan TO 'off' i uruchom testy aby sprawdzic czy wtym
|
||||
wypadku zapytanie bedzie szybciej wykonywane.
|
||||
|
||||
Kiedy uzywa sie operatorów dopasujacych takich jak LIKE lub ~, indeksy
|
||||
beda uzywane jedynie jesli poczatek wyszukiwania jest oparty na
|
||||
poczatku l/ancucha tekstu. Dlatego, aby uzywac indeksów, dopasowania
|
||||
operatorem LIKE nie moga sie zaczynac %, a dopasowania operatorem ~
|
||||
(dopasowania regularne) musza sie zaczynac znakiem specjalnym ^.
|
||||
|
||||
beda uzywane jedynie w pewnych wypadkach:
|
||||
* Poczatek wyszukiwania jest oparty na poczatku l/ancucha tekstu.
|
||||
+ wzorce LIKE nie moga sie zaczynac %
|
||||
+ dopasowania operatorem ~ (dopasowania regularne) musza sie
|
||||
zaczynac znakiem specjalnym ^.
|
||||
* Poczatek wyszukiwania nie moze sie zaczynac od klas znaków, np.
|
||||
[a-e].
|
||||
* Case-insensitive searches such as ILIKE and ~* do not utilise
|
||||
indexes. Instead, use functional indexes, which are described in
|
||||
section 4.12.
|
||||
* Standardowe locale C musi byc uzyte przy wykonywaniu initdb
|
||||
|
||||
4.9) Jak moge sprawdzic w jakis sposób "query optimizer" wykonuje moje
|
||||
zapytanie?
|
||||
|
||||
|
@ -869,13 +925,12 @@ n
|
|||
queries) bez wykorzystywania zasobozernego wyszukiwania.
|
||||
|
||||
4.12) Jak moge uzywac wyrazen regularnych w zapytaniach i zapytan
|
||||
case-insensitive w wyrazeniach regularnych? jak korzystac z indeksów dla
|
||||
case-insensitive w wyrazeniach regularnych? Jak korzystac z indeksów dla
|
||||
zapytan case-insensitive?
|
||||
|
||||
Operator ~ moze byc wykorzystywany do wyszukiwania za pomoca wyrazen
|
||||
regularnych, a ~* do wyszukiwania case-insensitive z wyrazeniami
|
||||
regularnymi. Wariant case-insensitive dla LIKE zostal/ nazwany ILIKE i
|
||||
jest dostepny w PostgreSQL 7.1 i pózniejszych wersjach.
|
||||
regularnymi. Wariant case-insensitive dla LIKE zostal/ nazwany ILIKE.
|
||||
|
||||
Porównania case-insensitive sa zazwyczaj wykonywane w nastepujacy
|
||||
sposób:
|
||||
|
@ -897,31 +952,35 @@ n
|
|||
|
||||
Type Nazwa wewnetrzna Uwagi
|
||||
--------------------------------------------------
|
||||
"char" char 1 znak
|
||||
CHAR(#) bpchar wypel/niane pustymi znakami do podanej dl/ug
|
||||
osci
|
||||
VARCHAR(#) varchar rozmiar okresla maksymalna dl/ugosc, nie ma
|
||||
VARCHAR(n) varchar rozmiar okresla maksymalna dl/ugosc, nie ma
|
||||
tutaj wypel/niania
|
||||
CHAR(n) bpchar wypel/niane pustymi znakami do podanej dl/ug
|
||||
osci
|
||||
TEXT text bez limitu na dl/ugosc l/ancucha
|
||||
BYTEA bytea zmiennej dl/ugosci tablica bajtów (null-byte
|
||||
safe)
|
||||
"char" char 1 znak
|
||||
|
||||
Jesli bedziesz przegladac katalogi systemowe lub komunikaty o bl/edach
|
||||
czesto spotkasz sie z podanymi powyzej nazwami wewnetrznymi.
|
||||
|
||||
Ostatnie cztery typy powyzej to tzw typy "varlena" (np. pierwsze
|
||||
Pierwsze cztery typy powyzej to tzw typy "varlena" (np. pierwsze
|
||||
cztery bajty na dysku to dl/ugosc, po których jest data). Dlatego
|
||||
faktyczna dl/ugosc takiego l/ancucha jest troche wieksza niz
|
||||
zadeklarowany rozmiar. Te typy takze podlegaja kompresji lub moga byc
|
||||
przechowywane out-of-line jako TOAST, wiec faktyczne zuzycie miejsca
|
||||
na dysku moze byc mniejsze niz oczekiwane.
|
||||
VARCHAR(n) jest najodpowiedniejszy do przechowywania l/ancuchów o
|
||||
róznej dl/ugosci ale okresla on maksymalna jego dl/ugosc. TEXT jest
|
||||
najlepszy dla l/ancuchów o dowolnej dl/ugosci, nie przekraczajacej
|
||||
1GB.
|
||||
|
||||
CHAR() jast najlepszym typem do przechowywania l/ancuchów o tej samej
|
||||
dl/ugosci. VARCHAR() jest najodpowiedniejszy do przechowywania
|
||||
l/ancuchów o róznej dl/ugosci ale okresla on maksymalna jego dl/ugosc.
|
||||
TEXT jest najlepszy dla l/ancuchów o dowolnej dl/ugosci, nie
|
||||
przekraczajacej 1GB. BYTEA sl/uzy do przechowywania danych binarnych,
|
||||
w szczególnosci dla danych zawierajacych NULL bajty.
|
||||
CHAR(n) jast najlepszym typem do przechowywania l/ancuchów o tej samej
|
||||
dl/ugosci. CHAR(n) wypel/nia dane do zadanej dl/ugosci, podczas gdy
|
||||
VARCHAR(n) przechowuje jedynie dane dostarczone. BYTEA sl/uzy do
|
||||
przechowywania danych binarnych, w szczególnosci dla danych
|
||||
zawierajacych NULL bajty. Wszystkie typy opisane tutaj maja podobne
|
||||
charakterystyki jesli chodzi o wydajnosc.
|
||||
|
||||
4.15.1) Jak moge utworzyc pole które samo zwieksza swoja wartosc?
|
||||
|
||||
|
@ -1039,16 +1098,16 @@ BYTEA bytea zmiennej dl/ugosci tablica bajt
|
|||
* range variable, table name, table alias
|
||||
|
||||
Liste terminów zwiazanych z bazami danych mozesz znalezc pod tym
|
||||
adresem:http://www.comptechnews.com/~reaster/dbdesign.html
|
||||
adresem:http://hea-www.harvard.edu/MST/simul/software/docs/pkgs/pgsql/
|
||||
glossary/glossary.html.
|
||||
|
||||
4.18) Skad bierze sie ten bl/ad "ERROR: Memory exhausted in
|
||||
AllocSetAlloc()"?
|
||||
|
||||
Jesli uzywasz wersji starszej niz 7.1, upgrade moze rozwiazac ten
|
||||
problem. Jest takze mozliwe, ze po prostu wyczerpal/a Ci sie pamiec
|
||||
wirtualna (virtual memory) w systemie lub Twój kernel ma zbyt nisko
|
||||
ustawione limity dla pewnych zasobów. Spróbuj wykonac nastepujace
|
||||
polecenia zanim uruchomisz postmaster'a:
|
||||
Prawdopodobnie wyczerpal/a Ci sie pamiec wirtualna (virtual memory) w
|
||||
systemie lub Twój kernel ma zbyt nisko ustawione limity dla pewnych
|
||||
zasobów. Spróbuj wykonac nastepujace polecenia zanim uruchomisz
|
||||
postmaster'a:
|
||||
ulimit -d 262144
|
||||
limit datasize 256m
|
||||
|
||||
|
@ -1087,24 +1146,31 @@ CREATE TABLE test (x int, modtime timestamp DEFAULT CURRENT_TIMESTAMP );
|
|||
|
||||
4.22) Dlaczego zapytania uzywajace IN sa takie wolne?
|
||||
|
||||
Obecnie l/aczymy podzapytania w outer queries poprzez sekwencyjne
|
||||
przeszukiwanie wyników podzapytania dla kazdego rzedu z outer query.
|
||||
Mozna to ominac zastepujac IN przez EXISTS:
|
||||
W wersjach wczesniejszych niz 7.4 l/aczymy podzapytania w outer
|
||||
queries poprzez sekwencyjne przeszukiwanie wyników podzapytania dla
|
||||
kazdego rzedu z outer query. Jesli podzapytanie zwraca jedynie kilka
|
||||
rzedów a zewnetrzne zapytanie zwraca ich wiele, IN jest najszybsze.
|
||||
Aby przyspieszyc inne zapytania mozna zastapic IN przez EXISTS:
|
||||
SELECT *
|
||||
FROM tab
|
||||
WHERE col1 IN (SELECT col2 FROM TAB2)
|
||||
WHERE col IN (SELECT subcol FROM subtab)
|
||||
|
||||
na:
|
||||
SELECT *
|
||||
FROM tab
|
||||
WHERE EXISTS (SELECT col2 FROM TAB2 WHERE col1 = col2)
|
||||
WHERE EXISTS (SELECT subcol FROM subtab WHERE subcol = col)
|
||||
|
||||
Mamy zamiar poprawic to ograniczenie w przyszl/ych wydaniach.
|
||||
Aby to rozwiazanie byl/o szybkie, subcol powinna byc kolumna
|
||||
indeksowana.
|
||||
|
||||
W wersji 7.4 i pózniejszych, IN w rzeczywistosci uzywa tej samej
|
||||
wyrafinowanej techniki l/aczenia jak normalne zapytania i jest
|
||||
preferowane nad uzywaniem EXISTS.
|
||||
|
||||
4.23) Jak wykonac "outer join"?
|
||||
|
||||
PostgreSQL 7.1 i pózniejsze wersje maja zaimplementowane outer join
|
||||
wykorzystujac standardowa skl/adnie SQL. Ponizej dwa przykl/ady:
|
||||
PostgreSQL ma zaimplementowane outer join wykorzystujac standardowa
|
||||
skl/adnie SQL. Ponizej dwa przykl/ady:
|
||||
SELECT *
|
||||
FROM t1 LEFT OUTER JOIN t2 ON (t1.col = t2.col);
|
||||
|
||||
|
@ -1113,7 +1179,7 @@ SELECT *
|
|||
FROM t1 LEFT OUTER JOIN t2 USING (col);
|
||||
|
||||
Te dwa identyczne zapytania l/acza kolumne t1.col z kolumna t2.col,
|
||||
ale takze zwróca niepol/aczone rzedy w t1 (te które nie pasuja w t2).
|
||||
ale takze zwróca niepol/aczone rzedy w t1 (te, które nie pasuja w t2).
|
||||
RIGHT join dodal/by niepol/aczone rzedy z tabeli t2. FULL join
|
||||
zwrócil/by rzedy plus dodatkowo wszystkie rzedy z tabel t1 i t2.
|
||||
Sl/owo OUTER jest opcjonalne i jest dodawane domyslnie przy LEFT,
|
||||
|
@ -1138,37 +1204,75 @@ SELECT *
|
|||
katalogi systemowe, nie jest do konca jasne jak zapytanie pomiedzy
|
||||
róznymi bazami danych powinno sie zachowywac.
|
||||
|
||||
Oczywiscie klient moze l/aczyc sie z róznymi bazami danych i l/aczyc
|
||||
informacje w ten sposób uzyskana.
|
||||
contrib/dblink pozwala na wykonywanie zapytan poprzez rózne bazy
|
||||
danych wywol/ujac odpowiednie funkcje. Oczywiscie klient moze l/aczyc
|
||||
sie z róznymi bazami danych i l/aczyc informacje w ten sposób uzyskana
|
||||
po stronie klienta.
|
||||
|
||||
4.25) Jak zwrócic w funkcji wiele rzedów lub kolumn?
|
||||
|
||||
Mozesz zwracac zbiory z funkcji PL/pgSQL uzywajac refcursors. Zobacz
|
||||
http://developer.postgresql.org/docs/postgres/plpgsql-cursors.html,
|
||||
sekcje 23.7.3.3.
|
||||
Mozesz w l/atwy sposób zwracac wiele rzedów lub kolumn uzywajac
|
||||
funkcji z:
|
||||
http://techdocs.postgresql.org/guides/SetReturningFunctions.
|
||||
|
||||
4.26) Dlaczego nie moge w sposób pewny tworzyc/usuwac tabel tymczasowych w
|
||||
funkcjach PL/PgSQL?
|
||||
|
||||
PL/PgSQL przechowuje w cache zawartosc funkcji, niepozadanym efektem
|
||||
tego jest to, ze gdy taka funkcja korzysta z tabel tymczasowych, które
|
||||
sa pózniej kasowane i odtwarzane, a funkcja wywol/ywana jest
|
||||
ponownie,jej wywol/anie nie powiedzie sie poniewaz cachowana funkcja
|
||||
wciaz bedzie wskazywac na stara tablice tymczasowa. Rozwiazaniem tego
|
||||
problemu jest uzywanie EXECUTE aby korzystac z tabel tymczasowych w
|
||||
PL/PgSQL. To spowoduje, ze zapytanie bedzie parsowane przy kazdym
|
||||
wywol/aniu funkcji.
|
||||
|
||||
4.27) Jakie sa mozliwosci replikacji w PostgreSQL?
|
||||
|
||||
Jest kilka opcji aby stosowac replikacje typu master/slave. Ten typ pozwala
|
||||
jedynie masterowi na dokonywanie zmian w bazie danych, a slave moze jedynie
|
||||
te zmiany odczytywac. Na stronie
|
||||
http://gborg.PostgreSQL.org/genpage?replication_research znajduje sie ich
|
||||
lista. Replikacja typu multi-master jest w trakcie prac, opis projektu
|
||||
znajduje sie pod adresem:
|
||||
http://gborg.PostgreSQL.org/project/pgreplication/projdisplay.php.
|
||||
4.28) Jakie mozliwosci szyfrowania oferuje PostgreSQL?
|
||||
|
||||
* contrib/pgcrypto zawiera wiele funkcji za pomoca, których mozemy
|
||||
uzywac kryptografii w zapytaniach SQL.
|
||||
* Aby szyfrowac transmisje od klienta do serwera, ten musi miec
|
||||
ustawiona opcje ssl na true w pliku postgresql.conf, odpowiedni
|
||||
wpis host lub hostssl musi wystepowac w pliku pg_hba.conf, oraz
|
||||
sslmode nie moze byc wyl/aczone w kliencie. (Warto zwrócic uwage,
|
||||
ze mozliwe jest takze uzywanie transportów szyfrujaców przez
|
||||
strony trzecie, takie jak stunnel lub ssh, poza natywnym wsparciem
|
||||
dla SSL przez PostgreSQL).
|
||||
* Hasl/a uzytkowników bazy danych sa automatycznie szyfrowane od
|
||||
wersji 7.3. W poprzednich wersjach, nalezy ta funkcjonalnosc
|
||||
poprzez wl/aczenie opcji PASSWORD_ENCRYPTION w postgresql.conf.
|
||||
* Serwer moze dzial/ac uzywajac szyfrowanego systemu plików.
|
||||
|
||||
Rozwijanie PostgreSQL
|
||||
|
||||
5.1) Napisal/em wl/asna funkcje. Kiedy uzyje jej w psql, program zrzuca
|
||||
pamiec (dump core)?
|
||||
|
||||
Problem moze byc spowodowany przez bardzo wiele rzeczy. Spróbuj
|
||||
najpierw przetestowac Twoja funkcje w samodzielnie dzial/ajacym
|
||||
programie.
|
||||
|
||||
Problem moze byc spowodowany przez bardzo wiele rzeczy. Spróbuj najpierw
|
||||
przetestowac Twoja funkcje w samodzielnie dzial/ajacym programie.
|
||||
5.2) Jak moge dodac/zgl/osic nowe typy czy funkcje do PostgreSQL?
|
||||
|
||||
Wyslij Twoje propozycje na liste mailowa pgsql-hackers, wtedy
|
||||
prawdopodobnie Twój kod znajdzie sie w katalogu contrib/.
|
||||
|
||||
Wyslij Twoje propozycje na liste mailowa pgsql-hackers, wtedy
|
||||
prawdopodobnie Twój kod znajdzie sie w katalogu contrib/.
|
||||
5.3) Jak napisac funkcje C zwracajaca krotke (tuple)?
|
||||
|
||||
To wymaga wysil/ku tak olbrzymiego, ze nawet autorzy nigdy tego nie
|
||||
prubowali, chociaz z zalozen wynika, ze jest to mozliwe.
|
||||
|
||||
W wersjach PostgreSQL od numeru 7.3, funckje zwracajace tabele sa w pelni
|
||||
wspierane w C, PL/PgSQL i SQL. Sprawdz w Programmer's Guide aby uzyskac
|
||||
wiecej informacji. Przykl/ad funkcji napisanej w C zwracajacej tabele
|
||||
zostal/ umieszczony w contrib/tablefunc.
|
||||
5.4) Zmienil/em plik zródl/owy. Dlaczego po rekompilacji nie widac zmiany?
|
||||
|
||||
Pliki Makefiles nie maja dorzuconych odpowiednich zaleznosci dla
|
||||
plików nagl/ówkowych (include files). Wykonaj najpierw make clean, a
|
||||
nastepnie ponownie make. Jesli uzywasz GCC mozesz uzyc opcji
|
||||
--enable-depend przy wykonywaniu configure aby
|
||||
Pliki Makefiles nie maja dorzuconych odpowiednich zaleznosci dla plików
|
||||
nagl/ówkowych (include files). Wykonaj najpierw make clean, a nastepnie
|
||||
ponownie make. Jesli uzywasz GCC mozesz uzyc opcji --enable-depend przy
|
||||
wykonywaniu configure aby kompilator mógl/ okreslic zaleznosci
|
||||
samodzielnie.
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
|
||||
Otvety na chasto zadavaemye voprosy po PostgreSQL
|
||||
|
||||
Data poslednego obnovleniya: Sreda 19 noyabrya 11:50:04 EDT 2003
|
||||
Data poslednego obnovleniya: Vtornik 6 yanvarya 16:42:01 EDT 2003
|
||||
|
||||
Anglijskij variant soprovozhdaet: Bryus Mom'yan (Bruce Momjian)
|
||||
(pgman@candle.pha.pa.us)
|
||||
|
@ -23,7 +23,7 @@
|
|||
1.4) Suschestvuyut li versii portirovannye ne na Unix sistemy?
|
||||
1.5) Gde mozhno vzyat' PostgreSQL?
|
||||
1.6) Gde poluchit' podderzhku?
|
||||
1.7) Kakaya poslednyaya versiya?
|
||||
1.7) Kakaya versiya poslednyaya?
|
||||
1.8) Kakaya dokumentaciya imeetsya v nalichii?
|
||||
1.9) Kak najti informaciyu ob izvestnyh oshibkah ili otsutstvuyuschih
|
||||
vozmozhnostyah?
|
||||
|
@ -273,7 +273,7 @@
|
|||
|
||||
http://www.PostgreSQL.org
|
||||
|
||||
Esche suschestvuet IRC kanal na EFNet i Freenode, s nazvaniem
|
||||
Esche suschestvuet IRC kanal na Freenode i EFNet, s nazvaniem
|
||||
#PostgreSQL. YA ispol'zuyu dlya podklyucheniya k `etomu kanalu komandu
|
||||
Unix irc -c '#PostgreSQL' "$USER" irc.phoenix.net. ili irc -c
|
||||
'#PostgreSQL' "$USER" irc.freenode.net.
|
||||
|
@ -283,7 +283,7 @@
|
|||
|
||||
1.7) Kakaya poslednyaya versiya?
|
||||
|
||||
Poslednij vypusk PostgreSQL - `eto versiya 7.4.
|
||||
Poslednij vypusk PostgreSQL - `eto versiya 7.4.1
|
||||
|
||||
My planiruem vypuskat' novye versii kazhdye 6-8 mesyacev.
|
||||
|
||||
|
@ -486,12 +486,11 @@
|
|||
2.3) Est' li u PostgreSQL graficheskij interfejs pol'zovatelya?
|
||||
|
||||
Da, suschestvuet neskol'ko graficheskih interfejsov dlya PostgreSQL.
|
||||
`Eto PgAccess (http://www.pgaccess.org, PgAdmin III
|
||||
(http://www.pgadmin.org, Win32-only), RHDB Admin (
|
||||
http://sources.redhat.com/rhdb/) i Rekall (
|
||||
http://www.thekompany.com/products/rekall/, kommercheskij). Takzhe
|
||||
est' PHPPgAdmin ( http://phppgadmin.sourceforge.net/) - interfejs k
|
||||
PostgreSQL, osnovannyj na Web.
|
||||
`Eto PgAccess (http://www.pgaccess.org), PgAdmin III
|
||||
(http://www.pgadmin.org), RHDB Admin (http://sources.redhat.com/rhdb/)
|
||||
i Rekall ( http://www.thekompany.com/products/rekall/, kommercheskij).
|
||||
Takzhe est' PHPPgAdmin ( http://phppgadmin.sourceforge.net/) -
|
||||
interfejs k PostgreSQL, osnovannyj na Web.
|
||||
|
||||
2.4) Kakie yazyki mogut vzaimodejstvovat' s PostgreSQL?
|
||||
|
||||
|
|
|
@ -27,7 +27,7 @@ System Configuration
|
|||
|
||||
Operating System (example: Linux 2.4.18) :
|
||||
|
||||
PostgreSQL version (example: PostgreSQL-7.4.1): PostgreSQL-7.4.1
|
||||
PostgreSQL version (example: PostgreSQL-7.4.2): PostgreSQL-7.4.2
|
||||
|
||||
Compiler used (example: gcc 2.95.2) :
|
||||
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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>
|
||||
|
||||
|
|
|
@ -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
|
|||
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
|
|||
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
|
|||
<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
|
|||
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
|
|||
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>
|
||||
|
||||
|
|
|
@ -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>
|
||||
modułu CGI.pl lub mod_perl.</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>
|
||||
<H4><A name="2.3">2.3</A>) Czy istnieje jakieś GUI dla PostgreSQL?</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
|
||||
<P>Tak, istnieje kilka interfejsów graficznych dla PostgreSQL.
|
||||
Wśród nich PgAccess (<A href="http://www.pgaccess.org">
|
||||
http://www.pgaccess.org</A>), PgAdmin III (<A
|
||||
href="http://www.pgadmin.org">http://www.pgadmin.org</A>),
|
||||
RHDB Admin (http://sources.redhat.com/rhdb/ ) oraz Rekall (
|
||||
http://www.thekompany.com/products/rekall/, komercyjny). Istnieje
|
||||
także PHPPgAdmin ( http://phppgadmin.sourceforge.net/ ), webowy
|
||||
interfejs dla PostgreSQL.
|
||||
</P>
|
||||
<P>
|
||||
Więcej informacji na ten temat znajduje się pod adresem See
|
||||
<A href="http://techdocs.postgresql.org/guides/GUITools">http://techdocs.postgresql.org/guides/GUITools</A>.
|
||||
|
||||
<H4><A name="2.4">2.4</A>) Za pomocą jakich języków programowania
|
||||
można się komunikować z PostgreSQL?</H4>
|
||||
|
||||
<P>Mamy wsparcie dla:</P>
|
||||
<P>Najbardziej popularne języki posiiadają własny interfejs dla
|
||||
PostgreSQL. Sprawdź listę rozszerzeń dla intersującego Ciebie języka
|
||||
programowania.</P>
|
||||
|
||||
<P>Ze źródłami PostreSQL dystrubuowane są interfejsy dla
|
||||
następujących języków programowania:</P>
|
||||
|
||||
|
||||
<UL>
|
||||
<LI>C (libpq)</LI>
|
||||
|
||||
<LI>C++ (libpq++)</LI>
|
||||
|
||||
<LI>Embedded C (ecpg)</LI>
|
||||
|
||||
<LI>Java (jdbc)</LI>
|
||||
|
||||
<LI>Perl (perl5)</LI>
|
||||
|
||||
<LI>ODBC (odbc)</LI>
|
||||
|
||||
<LI>Python (PyGreSQL)</LI>
|
||||
|
||||
<LI>TCL (libpgtcl)</LI>
|
||||
|
||||
<LI>C Easy API (libpgeasy)</LI>
|
||||
|
||||
<LI>Embedded <SMALL>HTML</SMALL> (<A href=
|
||||
"http://www.php.net">PHP z http://www.php.net</A>)</LI>
|
||||
</UL>
|
||||
Inne interfejsy są dostępne pod adresem:
|
||||
<A href="http://gborg.postgresql.org"> http://gborg.postgresql.org</A> w
|
||||
sekcji Drivers/Interfaces.
|
||||
<HR>
|
||||
|
||||
<H2 align="center">Pytania administratora</H2>
|
||||
<H2 align="center">Pytania dotyczące administracji</H2>
|
||||
|
||||
<H4><A name="3.1">3.1</A>) Jak mogę zainstalować PostgreSQL w innej
|
||||
lokalizacji niż <I>/usr/local/pgsql</I>?</H4>
|
||||
|
@ -677,7 +677,8 @@
|
|||
<SMALL>SEMMNS</SMALL> i <SMALL>SEMMNI</SMALL> jądra twojego systemu.</P>
|
||||
|
||||
<P>Niedziałające semafory mogą spowodować niepoprawne zamknięcie
|
||||
systemu w czasie intensywnego korzystania z bazy.</P>
|
||||
systemu w czasie intensywnego korzystania z bazy.</P>
|
||||
|
||||
<P>Jeśli treść błędu jest inna, może to oznaczać, że obsługa semaforów
|
||||
nie została włączona do jądra wcale. Zobacz PostgreSQL
|
||||
Administrator's Guide po bardziej szczegółowe informacje o pamięci
|
||||
|
@ -692,8 +693,7 @@
|
|||
<I>postmaster'a</I>,
|
||||
<B>oraz</B> nie umożliwi się autoryzacji na podstawie adresu hostów
|
||||
modyfikując odpowiednio plik
|
||||
<I>$PGDATA/pg_hba.conf</I>. To zmiany pozwolą na
|
||||
połączenia TCP/IP.</P>
|
||||
<I>$PGDATA/pg_hba.conf</I>. To zmiany pozwolą na połączenia TCP/IP.</P>
|
||||
|
||||
<H4><A name="3.6">3.6</A>) Jak powinienem skonfigurować system baz
|
||||
danych aby uzyskać lepszą wydajność?</H4>
|
||||
|
@ -709,7 +709,7 @@
|
|||
określającym transakcję - <SMALL>BEGIN WORK/COMMIT</SMALL>, są
|
||||
traktowane jako pojedyncza transakcja. Rozważ wykonanie kilku
|
||||
poleceń/zdań SQL w jednym bloku transakcji. To redukuje narzut
|
||||
powodowany przez transakcję. Przy dużych zmianach w danych, warto
|
||||
nakładany przez transakcję. Przy dużych zmianach w danych, warto
|
||||
usunąć i stworzyć na nowo indeksy.</P>
|
||||
|
||||
<P>Jest kilka opcji pozwalających na poprawienie wydajności.
|
||||
|
@ -825,19 +825,12 @@
|
|||
maksymalną liczbę procesów backendu to obawa o wyczerpanie zasobów
|
||||
systemu.</P>
|
||||
|
||||
<P>W wersjach PostgreSQL wcześniejszych niż 6.5, maksymalna liczba
|
||||
backendów była ustawiona na 64, a zmiana tej wartości wymaga
|
||||
rekompliacji po zmianie stałej MaxBackendId w pliku
|
||||
<I>include/storage/sinvaladt.h</I>.</P>
|
||||
<H4><A name="3.9">3.9</A>) Jakie pliki znajdują się w <I>pg_temp</I>?</H4>
|
||||
|
||||
<H4><A name="3.9">3.9</A>) Co to są za pliki typu:
|
||||
<I>pg_sorttempNNN.NN</I>,
|
||||
które znajdują się w katalogu z plikami bazy danych?</H4>
|
||||
|
||||
<P>Są to tymczasowe pliki utworzone przez executor. Dla przykładu,
|
||||
jeśli jakaś operacja sortowania jest wymagana do wykonania
|
||||
<P>Katalog ten zawiera tymczasowe pliki utworzone przez executor. Dla
|
||||
przykładu, jeśli jakaś operacja sortowania jest wymagana do wykonania
|
||||
<SMALL>ORDER BY,</SMALL> a samo sortowanie wymaga więcej miejsca niż
|
||||
paratmetr backendu
|
||||
parametr backendu
|
||||
<I>-S</I> ustawił do wykorzystania, wtedy tymczasowe pliki są używane
|
||||
do przechowywania tych danych.</P>
|
||||
|
||||
|
@ -846,6 +839,25 @@
|
|||
poprawnie podczas operacji sortowania. Jeśli w danym momencie nie
|
||||
działają żadne procesy backendów mozesz spokojnie usunąć pliki
|
||||
pg_tempNNN.NN.</P>
|
||||
|
||||
<H4><A name="3.9">3.9</A>) Dlaczego konieczne jest przy upgradzie
|
||||
PostgreSQL korzystanie ze skryptów dump i restore?</H4>
|
||||
<P>
|
||||
Twórcy PostgreSQL dokonują jedynie małych zmian pomiędzy małymi
|
||||
upgradami wersji, np z 7.2 do 7.2.1, wtedy upgrade nie wymaga
|
||||
korzystania z dump i restore. Przy większych zmianach, np. z wersji
|
||||
7.2 do 7.3, często zmianymają wpływ na format przechowywanych danych.
|
||||
Zmiany te są na tyle skomplikowane, że nie utrzymujemy zgodości z
|
||||
poprzednimi wersjami PostgreSQL. dump pozwala na wydostanie danych w
|
||||
takiej postaci, w której łatwe jest ich zaimportowanie do nowszych
|
||||
wersji bez kłopotu.
|
||||
</P>
|
||||
<P>
|
||||
W wydaniach gdzie zmiany nie dotyczą formatu danych na dysku, można
|
||||
wykorzystać skryptu pg_upgrade, do upgradu bez użycia dump/restore.
|
||||
Dokumentacja do danego wydania zawiera informację czy możliwe jest
|
||||
użycie pg_upgrade.
|
||||
</P>
|
||||
<HR>
|
||||
|
||||
<H2 align="center">Pytania dotyczące używania</H2>
|
||||
|
@ -870,6 +882,15 @@
|
|||
<SMALL>ORDER BY</SMALL>, PostgreSQL może wykorzystać jedynie kilka
|
||||
pierwszych rzędów, być może będzie konieczność wykonania zapytania do
|
||||
momentu aż zostaną znalezione pożądane wyniki.</P>
|
||||
<P>
|
||||
Aby otrzymać losowy rząd, użyj:
|
||||
<PRE>
|
||||
SELECT col
|
||||
FROM tab
|
||||
ORDER BY random()
|
||||
LIMIT 1;
|
||||
</PRE>
|
||||
</P>
|
||||
|
||||
<H4><A name="4.3">4.3</A>) Jak mogę uzyskać listę wszystkich tabel
|
||||
czy innych rzeczy pod <I>psql</I>?</H4>
|
||||
|
@ -881,37 +902,53 @@
|
|||
<I>-E</I> wtedy po wykonaniu polecenia z backslashem wyświetlane
|
||||
będzie zapytanie, które w rzeczywistości jest wykonywane.</P>
|
||||
|
||||
<H4><A name="4.4">4.4</A>) Jak usunąć kolumnę z tabeli?</H4>
|
||||
|
||||
<P>Nie mamy zaimplementowanego <SMALL>ALTER TABLE DROP
|
||||
COLUMN,</SMALL> ale możesz zrobić tak:</P>
|
||||
<H4><A name="4.4">4.4</A>) Jak usunąć kolumnę z tabeli lub zmienić
|
||||
jej typ?</H4>
|
||||
|
||||
<P>DROP COLUMNT zostało dodane w wersji 7.3 przy poleceniu ALTER
|
||||
TABLE DROP COLUMN. We wcześńiejszych wersjach możesz zrobić tak:
|
||||
</P>
|
||||
<PRE>
|
||||
SELECT ... -- wybierz zawartość wszystkich kolumn poza tą jedną której chcesz się pozbyć
|
||||
BEGIN;
|
||||
LOCAL TABLE old_table;
|
||||
SELECT ... -- wybierz wszystkie kolumny poza tą jedną której chcesz się pozbyć
|
||||
INTO TABLE new_table
|
||||
FROM old_table;
|
||||
DROP TABLE old_table;
|
||||
ALTER TABLE new_table RENAME TO old_table;
|
||||
</PRE>
|
||||
<P>
|
||||
Aby zmienić typ danych kolumny możesz zrobić tak:
|
||||
</P>
|
||||
<PRE>
|
||||
BEGIN;
|
||||
ALTER TABLE tab ADD COLUMN new_col new_data_type;
|
||||
UPDATE tab SET new_col = CAST(old_col AS new_data_type);
|
||||
ALTER TABLE tab DROP COLUMN old_col;
|
||||
COMMIT;
|
||||
</PRE>
|
||||
</P>
|
||||
|
||||
<H4><A name="4.5">4.5</A>) Jaki jest maksymalny rozmiar dla rzędu,
|
||||
tabeli i bazy danych?</H4>
|
||||
|
||||
<P>Oto wszystkie ograniczenia:</P>
|
||||
<PRE>
|
||||
Maksymalny rozmiar dla bazdy danych? nieograniczony ( istnieją bazy danych o wielkości 500 GB databases )
|
||||
Maksymalny rozmiar dla tabeli? 16 TB
|
||||
Maksymalny rozmiar dla rzędu? nieograniczony w 7.1 i późniejszych
|
||||
Maksymalny rozmiar pola? 1 GB w 7.1 and later
|
||||
Maksymalny rozmiar dla bazdy danych? nieograniczony ( istnieją
|
||||
bazy danych o wielkości 32 TB databases )
|
||||
Maksymalny rozmiar dla tabeli? 32 TB
|
||||
Maksymalny rozmiar dla rzędu? 1.6 TB
|
||||
Maksymalny rozmiar pola? 1 GB
|
||||
Maksymalna liczba rzędów w tabeli? nieograniczona
|
||||
Maksymalna liczba kolumn w tabeli? 250-1600 w zależoności od typów kolumn
|
||||
Makasymalna liczba indeksów na tabeli? nieograniczona
|
||||
Maksymalna liczba kolumn w tabeli? 250-1600 w zależoności od typów kolumn
|
||||
Makasymalna liczba indeksów na tabeli? nieograniczona
|
||||
</PRE>
|
||||
|
||||
Oczywiście "nieograniczony" nie jest prawdą tak do końca, istnieją
|
||||
ograniczenia wynikające z dostępnego miejsca na dysku, pamięci/swapa.
|
||||
Kiedy wielkości te będą bardzo duże może odbić się to na wydajności.
|
||||
|
||||
<P>Maksymalny rozmiar tabeli, czyli 16 TB nie wymaga od systemu
|
||||
<P>Maksymalny rozmiar tabeli, czyli 32 TB nie wymaga od systemu
|
||||
operacyjnego wsparcia dla dużych plików. Duże tabele są przechowywane
|
||||
jako pliki o rozmiarze 1 GB, więc ograniczenia co do wielkości plików
|
||||
narzucone przez system plików nie są istotne.</P>
|
||||
|
@ -957,6 +994,9 @@
|
|||
<P>Indeksy nie powodują dużego narzutu na zajmowane miejsce,
|
||||
ale zawierają pewne dane,
|
||||
więc w pewnych przypadkach moga być całkiem duże.</P>
|
||||
<P> NULLe są przechowywane jako mapy bitowe, więc używają bardzo mało
|
||||
miejsca.
|
||||
</P>
|
||||
|
||||
<H4><A name="4.7">4.7</A>) Jak mogę sprawdzić jakie tabele, klucze,
|
||||
bazy danych i użytkownicy są utworzeni?</H4>
|
||||
|
@ -996,17 +1036,39 @@
|
|||
następuje sortowanie jest zazwyczaj szybsze nię wyszukiwanie za
|
||||
pomocą indeksu na dużej tabeli.</P>
|
||||
Jakkolwiek <SMALL>LIMIT</SMALL> w połączeniu z <SMALL>ORDER BY</SMALL>
|
||||
często będzie wykorzystywał indeksów poniewąz jedynie mała częśc z
|
||||
tabeli jest zwracana.
|
||||
często będzie wykorzystywał indeksy ponieważ jedynie mała część z
|
||||
tabeli jest zwracana. W rzeczywistości, chociaż MAX() i MIN() nie
|
||||
używają indeksów, możliwe jest aby zwrócić te wartości używając
|
||||
indeksów poprzez użycie ORDER BY i LIMIT.
|
||||
</P>
|
||||
<PRE>
|
||||
SELECT col
|
||||
FROM tab
|
||||
ORDER BY col [ DESC ]
|
||||
LIMIT 1;
|
||||
</PRE>
|
||||
<P>
|
||||
Jeśli uważasz, że optimizer myli się wybierając sequential scan, użyj
|
||||
SET enable_seqscan TO 'off' i uruchom testy aby sprawdzić czy wtym
|
||||
wypadku zapytanie będzie szybciej wykonywane.
|
||||
|
||||
<P>Kiedy używa się operatorów dopasujących takich jak
|
||||
<SMALL>LIKE</SMALL> lub <I>~</I>, indeksy będą używane jedynie jeśli
|
||||
początek wyszukiwania jest oparty na początku łańcucha tekstu.
|
||||
Dlatego, aby używac indeksów,
|
||||
dopasowania operatorem <SMALL>LIKE</SMALL> nie mogą się zaczynać
|
||||
<I>%</I>, a dopasowania operatorem <I>~</I> (dopasowania regularne)
|
||||
muszą się zaczynać znakiem specjalnym <I>^</I>.</P>
|
||||
|
||||
<SMALL>LIKE</SMALL> lub <I>~</I>, indeksy będą używane jedynie w
|
||||
pewnych wypadkach:</P>
|
||||
<UL>
|
||||
<LI>Początek wyszukiwania jest oparty na początku łańcucha tekstu.
|
||||
<UL>
|
||||
<LI>wzorce <SMALL>LIKE</SMALL> nie mogą się zaczynać <I>%</I>
|
||||
<LI>dopasowania operatorem <I>~</I> (dopasowania regularne)
|
||||
muszą się zaczynać znakiem specjalnym <I>^</I>.</P>
|
||||
</UL>
|
||||
<LI>Początek wyszukiwania nie może się zaczynać od klas znaków, np.
|
||||
[a-e].
|
||||
<LI>Case-insensitive searches such as ILIKE and ~* do not utilise
|
||||
indexes. Instead, use functional indexes, which are described in
|
||||
section 4.12.
|
||||
<LI>Standardowe locale C musi być uzyte przy wykonywaniu initdb
|
||||
</UL>
|
||||
<H4><A name="4.9">4.9</A>) Jak mogę sprawdzić w jakis sposób "query
|
||||
optimizer" wykonuje moje zapytanie?</H4>
|
||||
|
||||
|
@ -1051,15 +1113,14 @@
|
|||
<H4><A name="4.12">4.12</A>) Jak mogę używać wyrażeń regularnych w
|
||||
zapytaniach i zapytań case-insensitive w wyrażeniach
|
||||
regularnych?
|
||||
jak korzystać z indeksów dla zapytań case-insensitive?</H4>
|
||||
Jak korzystać z indeksów dla zapytań case-insensitive?</H4>
|
||||
|
||||
<P>Operator <I>~</I> moze być wykorzystywany do wyszukiwania za
|
||||
pomocą wyrażeń regularnych, a
|
||||
<I>~*</I> do wyszukiwania case-insensitive z wyrażeniami
|
||||
regularnymi.
|
||||
Wariant case-insensitive dla <SMALL>LIKE</SMALL> został nazwany
|
||||
<SMALL>ILIKE</SMALL> i jest dostępny w PostgreSQL 7.1 i późniejszych
|
||||
wersjach.</P>
|
||||
<SMALL>ILIKE</SMALL>.</P>
|
||||
|
||||
<P>Porównania case-insensitive są zazwyczaj wykonywane w następujący
|
||||
sposób:</P>
|
||||
|
@ -1087,31 +1148,41 @@
|
|||
<PRE>
|
||||
Type Nazwa wewnętrzna Uwagi
|
||||
--------------------------------------------------
|
||||
"char" char 1 znak
|
||||
CHAR(#) bpchar wypełniane pustymi znakami do podanej długości
|
||||
VARCHAR(#) varchar rozmiar określa maksymalną długość, nie ma tutaj wypełniania
|
||||
VARCHAR(n) varchar rozmiar określa maksymalną długość, nie ma tutaj wypełniania
|
||||
CHAR(n) bpchar wypełniane pustymi znakami do podanej długości
|
||||
TEXT text bez limitu na długość łańcucha
|
||||
BYTEA bytea zmiennej długości tablica bajtów (null-byte safe)
|
||||
"char" char 1 znak
|
||||
</PRE>
|
||||
|
||||
<P>Jeśli będziesz przeglądać katalogi systemowe lub komunikaty o
|
||||
błędach często spotkasz się z podanymi powyżej nazwami
|
||||
wewnętrznymi.</P>
|
||||
|
||||
<P>Ostatnie cztery typy powyżej to tzw typy "varlena" (np. pierwsze
|
||||
<P>Pierwsze cztery typy powyżej to tzw typy "varlena" (np. pierwsze
|
||||
cztery bajty na dysku to długość, po których jest data). Dlatego
|
||||
faktyczna długośc takiego łańcucha jest trochę większa niż
|
||||
zadeklarowany rozmiar. Te typy także podlegają kompresji lub mogą być
|
||||
przechowywane out-of-line jako <SMALL>TOAST</SMALL>, więc faktyczne
|
||||
zużycie miejsca na dysku może być mniejsze niż oczekiwane.</P>
|
||||
|
||||
<P><SMALL>CHAR()</SMALL> jast najlepszym typem do przechowywania
|
||||
łańcuchów o tej samej długości. <SMALL>VARCHAR()</SMALL> jest
|
||||
<SMALL>VARCHAR(n)</SMALL> jest
|
||||
najodpowiedniejszy do przechowywania łańcuchów o różnej długości
|
||||
ale określa on maksymalną jego długość. <SMALL>TEXT</SMALL> jest
|
||||
najlepszy dla łańcuchów o dowolnej długości, nie przekraczającej 1GB.
|
||||
<SMALL>BYTEA</SMALL> służy do przechowywania danych binarnych,
|
||||
w szczególności dla danych zawierających <SMALL>NULL</SMALL> bajty.</P>
|
||||
ale określa on maksymalną jego długość.
|
||||
|
||||
<SMALL>TEXT</SMALL> jest najlepszy dla łańcuchów o dowolnej długości,
|
||||
nie przekraczającej 1GB.</P>
|
||||
|
||||
<P>
|
||||
<SMALL>CHAR(n)</SMALL> jast najlepszym typem do przechowywania
|
||||
łańcuchów o tej samej długości. CHAR(n) wypełnia dane do żadanej
|
||||
długości, podczas gdy VARCHAR(n) przechowuje jedynie dane
|
||||
dostarczone.
|
||||
|
||||
<SMALL>BYTEA</SMALL> służy do przechowywania danych binarnych,
|
||||
w szczególności dla danych zawierających <SMALL>NULL</SMALL> bajty.
|
||||
Wszystkie typy opisane tutaj maja podobne charakterystyki jeśli
|
||||
chodzi o wydajność.</P>
|
||||
|
||||
<H4><A name="4.15.1">4.15.1</A>) Jak mogę utworzyć pole które samo
|
||||
zwiększa swoją wartość?</H4>
|
||||
|
@ -1188,7 +1259,7 @@ BYTEA bytea zmiennej d
|
|||
|
||||
<H4><A name="4.15.4">4.15.4</A>) Dlaczego numery sekwencji nie są
|
||||
ponownie używane przy przerwaniu transakcji?
|
||||
Skąd się biorą luki w numerowaniu kolumny tabeli
|
||||
Skąd się biorą luki w numerowaniu kolumny tabeli
|
||||
sekwancjami/SERIALem?</H4>
|
||||
|
||||
<P>Aby poprawić zbieżność (concurrency), wartości sekwencji są
|
||||
|
@ -1197,8 +1268,7 @@ BYTEA bytea zmiennej d
|
|||
numerowaniu z przerwanych transakcji.</P>
|
||||
|
||||
<H4><A name="4.16">4.16</A>) Co to jest <SMALL>OID</SMALL>? Co to
|
||||
jest
|
||||
<SMALL>TID</SMALL>?</H4>
|
||||
jest <SMALL>TID</SMALL>?</H4>
|
||||
|
||||
<P><SMALL>OID</SMALL> są PostgreSQL'owym rozwiązaniem problemu
|
||||
unikalnych numerów rzędów. Każdy rząd tworzony przez PostgreSQL
|
||||
|
@ -1274,15 +1344,15 @@ BYTEA bytea zmiennej d
|
|||
</UL>
|
||||
|
||||
<P>Listę terminów związanych z bazami danych możesz znaleźć pod tym
|
||||
adresem:<A href=
|
||||
"http://www.comptechnews.com/~reaster/dbdesign.html">http://www.comptechnews.com/~reaster/dbdesign.html</A></P>
|
||||
adresem:<A
|
||||
href="http://hea-www.harvard.edu/MST/simul/software/docs/pkgs/pgsql/glossary/glossary.html">http://hea-www.harvard.edu/MST/simul/software/docs/pkgs/pgsql/glossary/glossary.html</A>.
|
||||
|
||||
<H4><A name="4.18">4.18</A>) Skąd bierze się ten błąd <I>"ERROR:
|
||||
Memory exhausted in AllocSetAlloc()"</I>?</H4>
|
||||
|
||||
<P>Jeśli używasz wersji starszej niż 7.1, upgrade może rozwiązać ten
|
||||
problem. Jest także mozliwe, że po prostu wyczerpała Ci się pamięć
|
||||
wirtualna (virtual memory) w systemie lub Twój kernel ma zbyt nisko
|
||||
<P>
|
||||
Prawdopodobnie wyczerpała Ci się pamięć wirtualna (virtual memory)
|
||||
w systemie lub Twój kernel ma zbyt nisko
|
||||
ustawione limity dla pewnych zasobów. Spróbuj wykonać następujące
|
||||
polecenia zanim uruchomisz <I>postmaster'a</I>:</P>
|
||||
<PRE>
|
||||
|
@ -1332,29 +1402,38 @@ BYTEA bytea zmiennej d
|
|||
<H4><A name="4.22">4.22</A>) Dlaczego zapytania używające
|
||||
<CODE><SMALL>IN</SMALL></CODE> sa takie wolne?</H4>
|
||||
|
||||
<P>Obecnie łączymy podzapytania w outer queries poprzez sekwencyjne
|
||||
przeszukiwanie wyników podzapytania dla każdego rzędu z outer query.
|
||||
Można to ominąć zastępując <CODE>IN</CODE> przez
|
||||
<P>W wersjach wcześniejszych niż 7.4 łączymy podzapytania w outer queries
|
||||
poprzez sekwencyjne przeszukiwanie wyników podzapytania dla każdego rzędu
|
||||
z outer query. Jeśli podzapytanie zwraca jedynie kilka rzędów a
|
||||
zewnętrzne zapytanie zwraca ich wiele, IN jest najszybsze.
|
||||
Aby przyspieszyć inne zapytania można zastąpić <CODE>IN</CODE> przez
|
||||
<CODE>EXISTS</CODE>:</P>
|
||||
<PRE>
|
||||
<CODE>SELECT *
|
||||
FROM tab
|
||||
WHERE col1 IN (SELECT col2 FROM TAB2)
|
||||
WHERE col IN (SELECT subcol FROM subtab)
|
||||
</CODE>
|
||||
</PRE>
|
||||
na:
|
||||
<PRE>
|
||||
<CODE>SELECT *
|
||||
FROM tab
|
||||
WHERE EXISTS (SELECT col2 FROM TAB2 WHERE col1 = col2)
|
||||
WHERE EXISTS (SELECT subcol FROM subtab WHERE subcol = col)
|
||||
</CODE>
|
||||
</PRE>
|
||||
Mamy zamiar poprawić to ograniczenie w przyszłych wydaniach.
|
||||
|
||||
<P>
|
||||
Aby to rozwiązanie było szybkie, subcol powinna być kolumną
|
||||
indeksowaną.
|
||||
</P>
|
||||
<P>
|
||||
W wersji 7.4 i późniejszych, IN w rzeczywistości używa tej samej
|
||||
wyrafinowanej techniki łączenia jak normalne zapytania i jest
|
||||
preferowane nad używaniem EXISTS.
|
||||
</P>
|
||||
<H4><A name="4.23">4.23</A>) Jak wykonać "outer join"?</H4>
|
||||
|
||||
<P>PostgreSQL 7.1 i późniejsze wersje mają zaimplementowane outer join
|
||||
wykorzystując standardową składnie SQL. Poniżej dwa przykłady:</P>
|
||||
<P>PostgreSQL ma zaimplementowane outer join
|
||||
wykorzystując standardową składnię SQL. Poniżej dwa przykłady:</P>
|
||||
|
||||
<PRE>
|
||||
SELECT *
|
||||
|
@ -1367,7 +1446,7 @@ BYTEA bytea zmiennej d
|
|||
</PRE>
|
||||
|
||||
<P>Te dwa identyczne zapytania łączą kolumnę t1.col z kolumną t2.col,
|
||||
ale także zwrócą niepołączone rzędy w t1 (te które nie pasują w t2).
|
||||
ale także zwrócą niepołączone rzędy w t1 (te, które nie pasują w t2).
|
||||
<SMALL>RIGHT</SMALL> join dodałby niepołączone rzędy z tabeli t2.
|
||||
<SMALL>FULL</SMALL> join zwróciłby rzędy plus dodatkowo wszystkie
|
||||
rzędy z tabel t1 i t2. Słowo <SMALL>OUTER</SMALL> jest opcjonalne i
|
||||
|
@ -1401,19 +1480,63 @@ BYTEA bytea zmiennej d
|
|||
katalogi systemowe, nie jest do końca jasne jak zapytanie pomiędzy
|
||||
różnymi bazami danych powinno się zachowywać.</P>
|
||||
|
||||
<P>Oczywiście klient może łączyć się z różnymi bazami danych i łączyć
|
||||
informację w ten sposób uzyskaną.</P>
|
||||
<P><I>contrib/dblink</I> pozwala na wykonywanie zapytań poprzez różne
|
||||
bazy danych wywołując odpowiednie funkcje. Oczywiście klient może łączyć
|
||||
się z różnymi bazami danych i łączyć informację w ten sposób uzyskaną
|
||||
po stronie klienta.</P>
|
||||
|
||||
<H4><A name="4.25">4.25</A>) Jak zwrócić w funkcji wiele rzędów lub
|
||||
kolumn?</H4>
|
||||
|
||||
<P>Możesz zwracać zbiory z funkcji PL/pgSQL używając
|
||||
<i>refcursors</i>. Zobacz <a
|
||||
href="http://developer.postgresql.org/docs/postgres/plpgsql-cursors.html">
|
||||
http://developer.postgresql.org/docs/postgres/plpgsql-cursors.html,</a>
|
||||
sekcję 23.7.3.3.</P>
|
||||
|
||||
<P>Możesz w łatwy sposób zwracać wiele rzędów lub kolumn używając
|
||||
funkcji z: <A HREF="http://techdocs.postgresql.org/guides/SetReturningFunctions">http://techdocs.postgresql.org/guides/SetReturningFunctions</A>.
|
||||
|
||||
<H4><A name="4.26">4.26</A>) Dlaczego nie mogę w sposób pewny
|
||||
tworzyć/usuwać tabel tymczasowych w funkcjach PL/PgSQL?</H4>
|
||||
<P>
|
||||
PL/PgSQL przechowuje w cache zawartość funkcji, niepożądanym efektem tego
|
||||
jest to, że gdy taka funkcja korzysta z tabel tymczasowych, które są
|
||||
później kasowane i odtwarzane, a funkcja wywoływana jest ponownie,jej
|
||||
wywołanie nie powiedzie się ponieważ cachowana funkcja wciąż będzie
|
||||
wskazywać na stara tablicę tymczasową. Rozwiązaniem tego problemu jest
|
||||
używanie EXECUTE aby korzystać z tabel tymczasowych w PL/PgSQL. To
|
||||
spowoduje, że zapytanie będzie parsowane przy każdym wywołaniu
|
||||
funkcji.
|
||||
</P>
|
||||
|
||||
<H4><A name="4.27">4.27) Jakie są możliwości replikacji w PostgreSQL?</H4>
|
||||
<P>
|
||||
Jest kilka opcji aby stosować replikację typu master/slave. Ten typ
|
||||
pozwala jedynie masterowi na dokonywanie zmian w bazie danych, a
|
||||
slave może jedynie te zmiany odczytywać. Na stronie
|
||||
<A
|
||||
HREF="http://gborg.PostgreSQL.org/genpage?replication_research">http://gborg.PostgreSQL.org/genpage?replication_research</A>
|
||||
znajduje się ich lista. Replikacja typu multi-master jest w trakcie
|
||||
prac, opis projektu znajduje się pod adresem: <A
|
||||
HREF="http://gborg.PostgreSQL.org/project/pgreplication/projdisplay.php">
|
||||
http://gborg.PostgreSQL.org/project/pgreplication/projdisplay.php</A>.
|
||||
</P>
|
||||
|
||||
<H4><A name="4.28">4.28) Jakie możliwości szyfrowania oferuje
|
||||
PostgreSQL?</H4>
|
||||
<P>
|
||||
<UL>
|
||||
<LI>contrib/pgcrypto zawiera wiele funkcji za pomocą, których możemy używać
|
||||
kryptografii w zapytaniach SQL.
|
||||
<LI>Aby szyfrować transmisję od klienta do serwera, ten musi mieć
|
||||
ustawioną opcję ssl na true w pliku postgresql.conf, odpowiedni
|
||||
wpis host lub hostssl musi występować w pliku pg_hba.conf, oraz
|
||||
sslmode nie może być wyłączone w kliencie. (Warto zwrócić uwagę, że
|
||||
możliwe jest także używanie transportów szyfrująców przez strony
|
||||
trzecie, takie jak stunnel lub ssh, poza natywnym wsparciem dla SSL
|
||||
przez PostgreSQL).
|
||||
<LI>Hasła użytkowników bazy danych są automatycznie szyfrowane od
|
||||
wersji 7.3. W poprzednich wersjach, należy tą funkcjonalność poprzez
|
||||
włączenie opcji PASSWORD_ENCRYPTION w postgresql.conf.
|
||||
<LI>Serwer może działać używając szyfrowanego systemu plików.
|
||||
</UL>
|
||||
</P>
|
||||
|
||||
<H2 align="center">Rozwijanie PostgreSQL</H2>
|
||||
|
||||
<H4><A name="5.1">5.1</A>) Napisałem własną funkcję. Kiedy użyję jej
|
||||
|
@ -1432,8 +1555,12 @@ BYTEA bytea zmiennej d
|
|||
<H4><A name="5.3">5.3</A>) Jak napisać funkcję C zwracającą krotkę
|
||||
(tuple)?</H4>
|
||||
|
||||
<P>To wymaga wysiłku tak olbrzymiego, że nawet autorzy nigdy tego nie
|
||||
prubowali, chociaż z zalożeń wynika, że jest to możliwe.</P>
|
||||
<P>
|
||||
W wersjach PostgreSQL od numeru 7.3, funckje zwracające tabele są w
|
||||
pęlni wspierane w C, PL/PgSQL i SQL. Sprawdź w Programmer's Guide aby
|
||||
uzyskać więcej informacji. Przykład funkcji napisanej w C zwracającej
|
||||
tabelę został umieszczony w <I>contrib/tablefunc</I>.
|
||||
</P>
|
||||
|
||||
<H4><A name="5.4">5.4</A>) Zmieniłem plik źródłowy. Dlaczego po
|
||||
rekompilacji nie widać zmiany?</H4>
|
||||
|
@ -1443,6 +1570,8 @@ BYTEA bytea zmiennej d
|
|||
<I>make clean</I>, a następnie ponownie <I>make</I>.
|
||||
Jeśli używasz <SMALL>GCC</SMALL> możesz użyć opcji
|
||||
<I>--enable-depend</I> przy wykonywaniu <I>configure</I> aby
|
||||
kompilator mógł określić zależności samodzielnie.
|
||||
</P>
|
||||
</BODY>
|
||||
</HTML>
|
||||
|
||||
|
|
|
@ -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, основанный
|
||||
|
|
|
@ -3,8 +3,8 @@
|
|||
/*
|
||||
* Parts of pg_config.h that you get with autoconf on other systems
|
||||
*/
|
||||
#define PG_VERSION "7.4.1"
|
||||
#define PG_VERSION_STR "7.4.1 (win32)"
|
||||
#define PG_VERSION "7.4.2"
|
||||
#define PG_VERSION_STR "7.4.2 (win32)"
|
||||
|
||||
#define SYSCONFDIR ""
|
||||
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
#include <winver.h>
|
||||
|
||||
VS_VERSION_INFO VERSIONINFO
|
||||
FILEVERSION 7,4,1,0
|
||||
PRODUCTVERSION 7,4,1,0
|
||||
FILEVERSION 7,4,2,0
|
||||
PRODUCTVERSION 7,4,2,0
|
||||
FILEFLAGSMASK 0x3fL
|
||||
FILEFLAGS 0
|
||||
FILEOS VOS__WINDOWS32
|
||||
|
@ -15,13 +15,13 @@ BEGIN
|
|||
BEGIN
|
||||
VALUE "CompanyName", "\0"
|
||||
VALUE "FileDescription", "PostgreSQL Access Library\0"
|
||||
VALUE "FileVersion", "7, 4, 1, 0\0"
|
||||
VALUE "FileVersion", "7, 4, 2, 0\0"
|
||||
VALUE "InternalName", "libpq\0"
|
||||
VALUE "LegalCopyright", "Copyright (C) 2003\0"
|
||||
VALUE "LegalTrademarks", "\0"
|
||||
VALUE "OriginalFilename", "libpq.dll\0"
|
||||
VALUE "ProductName", "PostgreSQL\0"
|
||||
VALUE "ProductVersion", "7, 4, 1, 0\0"
|
||||
VALUE "ProductVersion", "7, 4, 2, 0\0"
|
||||
END
|
||||
END
|
||||
BLOCK "VarFileInfo"
|
||||
|
|
Loading…
Reference in New Issue