1
0
mirror of https://github.com/postgres/postgres.git synced 2025-07-30 11:03:19 +03:00

Update German FAQ.

Ian Barwick
This commit is contained in:
Bruce Momjian
2005-01-17 02:42:31 +00:00
parent 83ef003f2c
commit 5be1e13dd1
2 changed files with 558 additions and 587 deletions

View File

@ -5,17 +5,19 @@
Deutsche <20>bersetzung von Ian Barwick (barwick@gmx.net).
Letzte Aktualisierung der deutschen <20>bersetzung: Fr., den 17.12.2004,
Letzte Aktualisierung der deutschen <20>bersetzung: So., den 16.1.2005,
22:30 MEZ
Die aktuellste Version dieses Dokuments liegt auf der
PostgreSQL-Website:
* http://www.postgresql.org/docs/faqs/FAQ.html (engl.)
* http://www.postgresql.org/docs/faqs/FAQ_german.html (dt.)
* http://www.postgresql.org/files/documentation/faqs/FAQ.html
(engl.)
* http://www.postgresql.org/files/documentation/faqs/FAQ_german.html
(dt.)
<20>bersetzungen dieses Dokuments in andere Sprachen sowie plattform-
spezifische FAQs k<>nnen unter
http://www.postgresql.org/docs/index.html#faqs eingesehen werden.
spezifische FAQs k<>nnen unter http://www.postgresql.org/docs/faq/
eingesehen werden.
_________________________________________________________________
Allgemeine Fragen
@ -69,55 +71,52 @@
Cursors?
4.2) Wie w<>hle ich per SELECT-Anweisung nur die ersten paar Zeilen
bzw. eine beliebige Zeile in einer Abfrage aus?
4.3) Wie bekomme ich eine Liste der Tabellen oder anderen Dinge, die
ich in psql sehen kann?
4.3) Wie finde ich heraus, welche Tabellen, Indizes, Datenbanken oder
Benutzer in der Datenbank definiert sind? Wie bekomme ich die von psql
verwendeten Abfragen?
4.4) Wie entferne ich eine Spalte aus einer Tabelle? Wie <20>ndere ich
den Datentyp einer Spalte?
4.5) Was ist die Maximalgr<67><72>e f<>r eine Zeile, eine Tabelle, eine
Datenbank?
4.6) Wieviel Plattenplatz wird ben<65>tigt, um die Daten aus einer
typischen Textdatei abzuspeichern?
4.7) Wie finde ich heraus, welche Tabellen, Indizes, Datenbanken oder
Benutzer in der Datenbank definiert sind?Wie finde ich heraus, welche
Indizes oder Operationen in der Datenbank definiert sind?
4.8) Meine Abfragen sind langsam oder nutzen die Indizes nicht. Warum?
4.9) Auf welche Weise kann ich sehen, wie der Abfrage-Optimierer
4.7) Meine Abfragen sind langsam oder nutzen die Indizes nicht. Warum?
4.8) Auf welche Weise kann ich sehen, wie der Abfrage-Optimierer
("GEQO") meine Abfrage auswertet?
4.10) Was ist ein R-Tree Index?
4.11) Was ist der "Genetic Query Optimizer"?
4.12) Wie verfahre ich bei der Suche mit regul<75>ren Ausdr<64>cken und bei
4.9) Was ist ein R-Tree Index?
4.10) Was ist der "Genetic Query Optimizer"?
4.11) Wie verfahre ich bei der Suche mit regul<75>ren Ausdr<64>cken und bei
einer Suche, bei der Gro<72>- und Kleinschreibweisen ignoriert werden?
Wie verwende ich bei solchen Suchabfragen einen Index?
4.13) Wie ermittle ich in einer Abfrage, ob ein Feld NULL ist?
4.14) Was ist der Unterschied zwischen den verschiedenen CHAR-Typen?
4.15.1) Wie erzeuge ich ein serielles Feld mit automatischer Erh<72>hung
4.12) Wie ermittle ich in einer Abfrage, ob ein Feld NULL ist?
4.13) Was ist der Unterschied zwischen den verschiedenen CHAR-Typen?
4.14.1) Wie erzeuge ich ein serielles Feld mit automatischer Erh<72>hung
des Wertes?
4.15.2) Wie bekomme ich den Wert einer SERIAL-Sequenz?
4.15.3) F<>hrt currval() zu einer Race-Condition mit anderen Nutzern?
4.15.4) Warum werden die Sequenzwerte nach einem Transaktionsabbruch
4.14.2) Wie bekomme ich den Wert einer SERIAL-Sequenz?
4.14.3) F<>hrt currval() zu einer Race-Condition mit anderen Nutzern?
4.14.4) Warum werden die Sequenzwerte nach einem Transaktionsabbruch
nicht zur<75>ckgesetzt? Warum gibt es L<>cken in der Nummerierung meiner
Sequenz-/SERIAL-Spalte?
4.16) Was ist ein OID? Was ist ein TID?
4.17) Welche Bedeutung haben die verschiedenen Ausdr<64>cke, die in
4.15) Was ist ein OID? Was ist ein TID?
4.16) Welche Bedeutung haben die verschiedenen Ausdr<64>cke, die in
PostgreSQL benutzt werden (z.B. attribute, class,...)?
4.18) Wieso bekomme ich den Fehler: "FATAL: Memory exhausted in
4.17) Wieso bekomme ich den Fehler: "FATAL: Memory exhausted in
AllocSetAlloc()"?
4.19) Wie kann ich feststellen, welche PostgreSQL-Version bei mir
4.18) Wie kann ich feststellen, welche PostgreSQL-Version bei mir
l<>uft?
4.20) Bei "large-object"-Operationen kommt die Fehlermeldung: "invalid
4.19) Bei "large-object"-Operationen kommt die Fehlermeldung: "invalid
large obj descriptor". Warum?
4.21) Wie kann ich eine Spalte erstellen, deren Default-Wert immer die
4.20) Wie kann ich eine Spalte erstellen, deren Default-Wert immer die
aktuelle Uhrzeit enthalten soll?
4.22) Warum sind meine Unterabfragen (subqueries), die IN verwenden,
4.21) Warum sind meine Unterabfragen (subqueries), die IN verwenden,
so langsam?
4.23) Wie f<>hre ich einen OUTER JOIN durch?
4.24) Wie kann ich Abfragen <20>ber mehrere Datenbanken hinweg ausf<73>hren?
4.25) Wie kann ich mehrere Zeilen bzw. Spalten von einer Funktion
4.22) Wie f<>hre ich einen OUTER JOIN durch?
4.23) Wie kann ich Abfragen <20>ber mehrere Datenbanken hinweg ausf<73>hren?
4.24) Wie kann ich mehrere Zeilen bzw. Spalten von einer Funktion
zur<75>ckgeben lassen?
4.26) Warum kann ich tempor<6F>re Tabellen in PL/PgSQL-Funktionen nicht
4.25) Warum kann ich tempor<6F>re Tabellen in PL/PgSQL-Funktionen nicht
zuverl<72>ssig erstellen bzw. l<>schen?
4.27) Welche M<>glichkeiten zur Datenbank-Replikation gibt es?
4.28) Welche M<>glichkeiten zur Verschl<68>sselung gibt es?
4.26) Welche M<>glichkeiten zur Verschl<EFBFBD>sselung gibt es?
PostgreSQL erweitern
@ -135,10 +134,8 @@
1.1) Was ist PostgreSQL? Wie wird es ausgesprochen?
Die (englische) Aussprache ist "Post-Gres-Q-L". Eine MP3-Datei zum
Anh<EFBFBD>ren gibt es hier: http://www.postgresql.org/postgresql.mp3. Im
allgemeinen Sprachgebrauch hat sich die Kurzform "Postgres" auch
durchgesetzt.
Die (englische) Aussprache ist "Post-Gres-Q-L". Im allgemeinen
Sprachgebrauch hat sich die Kurzform "Postgres" auch durchgesetzt.
PostgreSQL ist eine Weiterentwicklung des POSTGRES-Datenbank-Systems,
eines zukunftsweisenden DBMS-Forschungsprototyps. W<>hrend PostgreSQL
@ -175,7 +172,7 @@
PostgreSQL Data Base Management System
Portions copyright (c) 1996-2004, PostgreSQL Global Development Group
Portions Copyright (c) 1996-2005, PostgreSQL Global Development Group
Portions Copyright (c) 1994-6 Regents of the University of California
Permission to use, copy, modify, and distribute this software and its
@ -228,6 +225,10 @@
Eine Portierung f<>r Novell Netware 6 gibt es unter
http://forge.novell.com.
F<>r OS/2 (eComStation) gibt es eine Version hier:
http://hobbes.nmsu.edu/cgi-bin/h-search?sh=1&button=Search&key=postgre
SQL&stype=all&sort=type&dir=%2F
1.5) Woher bekomme ich PostgreSQL?
Der zentrale FTP-Server f<>r PostgreSQL ist der ftp-Server
@ -285,7 +286,7 @@
1.7) Was ist die neueste Version von PostgreSQL?
Die neueste Version von PostgreSQL ist 7.4.6 .
Die neueste Version von PostgreSQL ist 8.0.0 .
Die Freigabe einer neuen Version erfolgt im Schnitt alle 6 bis 8
Monaten.
@ -531,8 +532,9 @@
Serverprozesse ab, die Sie f<>r postmaster konfiguriert haben. Bei den
voreingestellten Werten f<>r Puffer und Prozesse ben<65>tigen Sie bei den
meisten Systemen ein Minimum von ca. 1 MB. Der "PostgreSQL
Administrator's Guide" () enth<74>lt weitere Informationen zu Shared
Memory und Semaphores.
Administrator's Guide"
(http://www.postgresql.org/docs/current/static/kernel-resources.html)
enth<74>lt weitere Informationen zu Shared Memory und Semaphores.
3.4) Wenn ich versuche, den postmaster zu starten, bekomme ich
"IpcSemaphoreCreate"-Fehlermeldungen. Warum?
@ -759,8 +761,9 @@ SELECT pg_backend_pid()
LIMIT 1
4.3) Wie bekomme ich eine Liste der Tabellen oder anderen Dinge, die ich in
psql sehen kann?
4.3) Wie finde ich heraus, welche Tabellen, Indizes, Datenbanken oder
Benutzer in der Datenbank definiert sind? Wie bekomme ich die von psql
verwendeten Abfragen?
In psql zeigt der Befehl \dt eine Liste der Datenbanktabellen. Weitere
psql-Befehle lassen sich mit \? anzeigen. Sie k<>nnen sich die Datei
@ -768,9 +771,13 @@ SELECT pg_backend_pid()
enth<74>lt die SQL-Abfragen, die die Backslash-Kommandos (\) ausf<73>hren.
Sie k<>nnen psql auch mit der -E Option starten. Danach gibt psql die
Abfragen aus, die es bei der Ausf<73>hrung der Befehle benutzt. Au<41>erdem
biete PostgreSQL ein SQLi-kompatibles INFORMATION SCHEMA, das
biete PostgreSQL ein SQL-kompatibles INFORMATION SCHEMA, das
Metainformation <20>ber die Datenbank zur Verf<72>gung stellt.
Die Datei pgsql/src/tutorial/syscat.source enth<74>lt au<61>erdem viele
SELECT- Abfragen, mit deren Hilfe man Information <20>ber die
Systemtabellen erhalten kann.
4.4) Wie entferne ich eine Spalte aus einer Tabelle? Wie <20>ndere ich den
Datentyp einer Spalte?
@ -862,19 +869,7 @@ SELECT pg_backend_pid()
NULL-Werte werden als Bitmaps gespeichert, wodurch sie sehr wenig
Platz in Anspruch nehmen.
4.7) Wie finde ich heraus, welche Tabellen, Indizes, Datenbanken oder
Benutzer in der Datenbank definiert sind?
psql hat eine Vielzahl von Backslash-Befehlen, mit denen solche
Informationen angezeigt werden k<>nnen. Der Befehl \? zeigt eine
<20>bersicht. Au<41>erdem zeigt der Befehl \l eine Liste von allen
verf<72>gbaren Datenbanken an.
Die Datei pgsql/src/tutorial/syscat.source enth<74>lt au<61>erdem viele
SELECT-Anweisungen, mit deren Hilfe man Information <20>ber die
Systemtabellen erhalten kann.
4.8) Meine Abfragen sind langsam oder benutzen die Indizes nicht. Warum?
4.7) Meine Abfragen sind langsam oder benutzen die Indizes nicht. Warum?
Indizes werden nicht automatisch bei jeder Abfrage verwendet. Indizes
werden nur dann verwendet, wenn die abzufragende Tabelle eine
@ -935,12 +930,12 @@ SELECT pg_backend_pid()
nicht ermitteln k<>nnen. Es ist allerdings m<>glich, einen besonderen
text_pattern_ops-Index f<>r solche F<>lle zu erstellen.
4.9) Auf welche Weise kann ich sehen, wie der Abfrage-Optimierer meine
4.8) Auf welche Weise kann ich sehen, wie der Abfrage-Optimierer meine
Abfrage auswertet?
Vgl. die EXPLAIN Man-Page.
4.10) Was ist ein R-Tree Index?
4.9) Was ist ein R-Tree Index?
Ein R-Tree Index wird benutzt, um r<>umliche Daten zu indizieren. Ein
Hash-Index kann nicht f<>r Bereichssuchen genutzt werden. Ein B-Tree
@ -967,14 +962,14 @@ SELECT pg_backend_pid()
allerdings eine Menge Arbeit und wir haben derzeit keinerlei
Dokumentation dar<61>ber, wie das zu machen w<>re.
4.11) Was ist der "Genetic Query Optimizer"?
4.10) Was ist der "Genetic Query Optimizer"?
Das GEQO-Modul in PostgreSQL soll dazu dienen, das Optimierungsproblem
beim JOIN von vielen Tabellen auf der Basis genetischer Algorithmen
(GA) zu l<>sen. Es erm<72>glicht die Behandlung von gro<72>en JOIN-Queries
durch eine nicht-ersch<63>pfende Suche.
4.12) Wie verfahre ich bei der Suche mit regul<75>ren Ausdr<64>cken und bei einer
4.11) Wie verfahre ich bei der Suche mit regul<75>ren Ausdr<64>cken und bei einer
Suche, bei der Gro<72>- und Kleinschreibweisen ignoriert werden? Wie verwende
ich einen Index bei solchen Suchabfragen?
@ -992,11 +987,11 @@ SELECT pg_backend_pid()
funktionalen Index an, so wird er auf jeden Fall verwendet:
CREATE INDEX tabelle_index ON tabelle (LOWER(spalte))
4.13) Wie ermittle ich in einer Abfrage, ob ein Feld NULL ist?
4.12) Wie ermittle ich in einer Abfrage, ob ein Feld NULL ist?
Testen Sie die Spalte mit IS NULL bzw. IS NOT NULL.
4.14) Was ist der Unterschied zwischen den verschiedenen CHAR-Typen?
4.13) Was ist der Unterschied zwischen den verschiedenen CHAR-Typen?
Typ interner Name Bemerkungen
-------------------------------------------------
@ -1034,7 +1029,7 @@ BYTEA bytea Bytearray mit variabler L
Alle der hier erw<72>hnten Typen weisen <20>hnliche Performanzeigenschaften
auf.
4.15.1) Wie erzeuge ich ein serielles Feld mit automatischer Erh<72>hung des
4.14.1) Wie erzeuge ich ein serielles Feld mit automatischer Erh<72>hung des
Werts (serial/auto-increment)?
PostgreSQL bietet einen SERIAL-Datentyp. Dieser erzeugt automatisch
@ -1059,12 +1054,12 @@ BYTEA bytea Bytearray mit variabler L
exportieren und reimportieren wollen, m<>ssen Sie die Option -o von
pg_dump bzw. COPY WITH OIDS verwenden, um die OIDs beizubehalten.
4.15.2) Wie bekomme ich den Wert einer SERIAL-Sequenz?
4.14.2) Wie bekomme ich den Wert einer SERIAL-Sequenz?
Eine M<>glichkeit w<>re, mit der nextval()-Funktion den n<>chsten
SERIAL-Wert von dem Sequenzobjekt vor der Auszuf<75>hrung einer
INSERT-Anweisung anzufordern und ihn dann explizit in die
INSERT-Anweisung einzubinden. Anhand der Beispieltabelle in 4.15.1
INSERT-Anweisung einzubinden. Anhand der Beispieltabelle in 4.14.1
k<>nnte dieser Vorgang in einer Pseudosprache so aussehen:
new_id = output of execute("SELECT nextval('person_id_seq')");
execute("INSERT INTO person (id, name) VALUES (new_id, 'Blaise Pascal')");
@ -1092,13 +1087,13 @@ BYTEA bytea Bytearray mit variabler L
Mit zum Beispiel dem DBD::Pg-Modul von Perl wird der OID-Wert nach
einem $sth->excute() <20>ber $sth->{pg_oid_status} zur<75>ckgeliefert.
4.15.3) F<>hren currval() und nextval() zu einer Race-Condition mit anderen
4.14.3) F<>hren currval() und nextval() zu einer Race-Condition mit anderen
Nutzern?
Nein. currval() liefert einen Wert zur<75>ck, der von Ihrem Backend
bestimmt wird, und der anderen Benutzern nicht zur Verf<72>gung steht.
4.15.4) Warum werden die Sequenzwerte nach einem Transaktionsabbruch nicht
4.14.4) Warum werden die Sequenzwerte nach einem Transaktionsabbruch nicht
zur<75>ckgesetzt? Warum gibt es L<>cken in der Nummerierung meiner
Sequenz-/SERIAL-Spalte?
@ -1108,7 +1103,7 @@ BYTEA bytea Bytearray mit variabler L
zugeteilt. L<>cken in der Sequenznummerierung werden durch abgebrochene
Transaktionen verursacht.
4.16) Was ist ein OID? Was ist ein TID?
4.15) Was ist ein OID? Was ist ein TID?
OIDs sind PostgreSQLs Antwort auf eindeutige Zeilen-IDs. Jede Zeile,
die in PostgreSQL erzeugt wird, bekommt eine eindeutige OID. Alle
@ -1144,7 +1139,7 @@ BYTEA bytea Bytearray mit variabler L
ver<65>ndert oder zur<75>ckgeladen werden. Sie werden in Indexeintr<74>gen
benutzt um auf die physikalischen Zeilen zu zeigen.
4.17) Welche Bedeutung haben die verschiedenen Ausdr<64>cke, die in PostgreSQL
4.16) Welche Bedeutung haben die verschiedenen Ausdr<64>cke, die in PostgreSQL
benutzt werden (z.B. attribute, class,...)?
Einige der Quelltexte und die <20>ltere Dokumentation nutzen allgemeine
@ -1163,7 +1158,7 @@ BYTEA bytea Bytearray mit variabler L
http://hea-www.harvard.edu/MST/simul/software/docs/pkgs/pgsql/glossary
/glossary.html (engl.).
4.18) Wieso bekomme ich einen Fehler: "ERROR: Memory exhausted in
4.17) Wieso bekomme ich einen Fehler: "ERROR: Memory exhausted in
AllocSetAlloc()"?
Wahrscheinlich gibt es keinen virtuellen Speicher mehr in Ihrem System
@ -1179,11 +1174,11 @@ BYTEA bytea Bytearray mit variabler L
haben, weil das Backend zu viele Daten zur<75>ckliefert, versuchen Sie
dies vor dem Start des SQL-Clients.
4.19) Wie kann ich feststellen, welche PostgreSQL-Version bei mir l<>uft?
4.18) Wie kann ich feststellen, welche PostgreSQL-Version bei mir l<>uft?
Geben Sie in psql SELECT VERSION(); ein.
4.20) Bei "large-object"-Operationen kommt die Fehlermeldung: "invalid
4.19) Bei "large-object"-Operationen kommt die Fehlermeldung: "invalid
large obj descriptor". Warum?
Sie sollten die Anweisungen BEGIN WORK und COMMIT bei jeden Gebrauch
@ -1199,13 +1194,13 @@ BYTEA bytea Bytearray mit variabler L
Falls Sie eine Client-Schnittstelle wie ODBC benutzen, kann es sein,
dass die auto-commit-Option ausgeschaltet werden muss.
4.21) Wie kann ich eine Spalte erstellen, deren Default-Wert immer die
4.20) Wie kann ich eine Spalte erstellen, deren Default-Wert immer die
aktuelle Uhrzeit enthalten soll?
Dazu verwenden Sie CURRENT_TIMESTAMP:
CREATE TABLE test (x int, modtime timestamp DEFAULT CURRENT_TIMESTAMP );
4.22) Warum sind meine Unterabfragen (subqueries), die IN verwenden, so
4.21) Warum sind meine Unterabfragen (subqueries), die IN verwenden, so
langsam?
In Versionen vor 7.4 werden Unterabfragen mit der <20>usseren Abfrage
@ -1226,7 +1221,7 @@ BYTEA bytea Bytearray mit variabler L
gleichen Methoden wie die normale Tabellenverkn<6B>pfung und ist daher
soger EXISTS vorzuziehen.
4.23) Wie f<>hre ich einen OUTER JOIN durch?
4.22) Wie f<>hre ich einen OUTER JOIN durch?
PostgreSQL ab der Version 7.1 unterst<73>tzt OUTER JOINs nach dem SQL-
Standardsyntax. Hier zwei Beispiele:
@ -1261,7 +1256,7 @@ BYTEA bytea Bytearray mit variabler L
WHERE t1.spalte1 NOT IN (SELECT t2.spalte1 FROM tabelle_2 t2)
ORDER BY spalte1
4.24) Wie kann ich Abfragen <20>ber mehrere Datenbanken hinweg ausf<73>hren?
4.23) Wie kann ich Abfragen <20>ber mehrere Datenbanken hinweg ausf<73>hren?
Es gibt keinen Weg, innerhalb einer Abfrage auf mehr als eine
Datenbank zuzugreifen. Da PostgreSQL datenbank-spezifische
@ -1280,13 +1275,13 @@ BYTEA bytea Bytearray mit variabler L
Anwendungen k<>nnten diese einen geeigneten Ersatz f<>r den Zugriff auf
eine andere Datenbank bieten.
4.25) Wie kann ich mehrere Zeilen bzw. Spalten von einer Funktion
4.24) Wie kann ich mehrere Zeilen bzw. Spalten von einer Funktion
zur<75>ckgeben lassen?
Ab 7.3 k<>nnen Funktionen mehrere Zeilen und Spalten zur<75>ckgeben, vgl.:
http://techdocs.postgresql.org/guides/SetReturningFunctions.
4.26) Warum kann ich tempor<6F>re Tabellen in PL/PgSQL-Funktionen nicht
4.25) Warum kann ich tempor<6F>re Tabellen in PL/PgSQL-Funktionen nicht
zuverl<72>ssig erstellen bzw. l<>schen?
PL/PgSQL verarbeitet die Inhalte einer Funktion in eine Cache. Dies
@ -1300,15 +1295,7 @@ BYTEA bytea Bytearray mit variabler L
mittels EXECUTE auf tempor<6F>re Tabellen zuzugreifen. Diese bewirkt,
dass bei jedem Funktionsruf die betreffende Abfrage neu geparst wird.
4.27) Welche M<>glichkeiten zur Datenbank-Replikation gibt es?
Es existieren mehrere Ans<6E>tze zur Master/Slave-Replikation in
PostgreSQL. In diesen werden Daten<65>nderungen in der Master-Datenbank
durchgef<65>hrt und an Slave-Datenbanken weitergeleitet. Informationen
<20>ber diese L<>sungen befinden sich auf der folgenden Seite (unten):
http://gborg.postgresql.org/genpage?replication_research .
4.28) Welche M<>glichkeiten zur Verschl<68>sselung gibt es?
4.26) Welche M<>glichkeiten zur Verschl<EFBFBD>sselung gibt es?
* contrib/pgcrypto enth<74>lt diverse Funktionen f<>r die Ben<65>tzung mit
SQL-Abfragen.

File diff suppressed because it is too large Load Diff