Umfang von OID's
Moin,
kann mir mal jemand etwas Sortierungshilfe geben ? ;-)
Stimmt es, dass ich unabhaengig von der verwendeten Plattform
(64-bittig vs. 32-bittig Solaris oder Linux) immer maximal 2^32 OID's
"verbraten" kann ?
Wenn ich also Tabellen explizit mit OID's erzeuge und die dann auch als
PRIMARY KEY verwende, dann stosse ich, abzueglich etwas
Verwaltungs-Overhead, grob geschaetzt bei gut 4 Milliarden
Tabellenzeilen an eine Grenze. Richtig ?
Wenn ich die Tabellen _nicht_ explizit mit OID's erzeuge, dann stosse
ich ebenfalls an dieselbe Grenze, weil die Dinger ohnehin zur internen
Organisation verwendet werden. Auch richtig ?
Hat mal jemand eine System eingerichtet und ist an diese Grenze
gestossen ? Was passiert dann, kann ich dann keine neuen Zeilen mehr in
'ne Tabelle schreiben und der Rest laeuft froehlich weiter ?
Besten Dank fuer Aufklaerung,
Martin.
--
Unix _IS_ user friendly - it's just selective about who its friends are !
------------------------------------------------------------ --------------
---------------------------(end of broadcast)---------------------------
TIP 6: explain analyze is your friend
Re: Umfang von OID's
am Wed, dem 20.06.2007, um 12:01:33 +0000 mailte Martin Spott folgendes:
> Moin,
> kann mir mal jemand etwas Sortierungshilfe geben ? ;-)
ich versuch es mal.
>
> Stimmt es, dass ich unabhaengig von der verwendeten Plattform
> (64-bittig vs. 32-bittig Solaris oder Linux) immer maximal 2^32 OID's
> "verbraten" kann ?
Ja. OID ist vom Typ int4.
>
> Wenn ich also Tabellen explizit mit OID's erzeuge und die dann auch als
> PRIMARY KEY verwende, dann stosse ich, abzueglich etwas
> Verwaltungs-Overhead, grob geschaetzt bei gut 4 Milliarden
> Tabellenzeilen an eine Grenze. Richtig ?
Ja.
Die Verwendung von OIDs als PK ist im übrigen eine schlechte Idee.
Stichwort: Backup/Restore und bereits verwendete OIDs.
>
> Wenn ich die Tabellen _nicht_ explizit mit OID's erzeuge, dann stosse
> ich ebenfalls an dieselbe Grenze, weil die Dinger ohnehin zur internen
> Organisation verwendet werden. Auch richtig ?
Nein. Per default werden sie nicht mehr angelegt, weil nicht benötigt.
Wenn Du mehr als 4 Mrd pro table brauchst, nimmst Du ein BIGSERIAL:
test=3D# create table bigtable (id bigserial);
NOTICE: CREATE TABLE will create implicit sequence "bigtable_id_seq" for=
serial column "bigtable.id"
CREATE TABLE
test=3D*# select max_value from bigtable_id_seq;
max_value
---------------------
9223372036854775807
(1 row)
Ich unterstelle einfach mal, das dies Dir reichen sollte.
>
> Hat mal jemand eine System eingerichtet und ist an diese Grenze
> gestossen ? Was passiert dann, kann ich dann keine neuen Zeilen mehr in
> 'ne Tabelle schreiben und der Rest laeuft froehlich weiter ?
Es passieren bösen Dinge, ja.:
- Deine Katze wird überfahren
- der Wellensittich fällt tot von der Stange
- die Frau geht fremd
- http://www.google.de/search?hl=3Dde&q=3Dpostgresql+oid+wrapa round&btnG=3D=
Suche&meta=3D
Andreas
--
Andreas Kretschmer
Kontakt: Heynitz: 035242/47150, D1: 0160/7141639 (mehr: -> Header)
GnuPG-ID: 0x3FFF606C, privat 0x7F4584DA http://wwwkeys.de.pgp.net
---------------------------(end of broadcast)---------------------------
TIP 2: Don't 'kill -9' the postmaster
Re: Umfang von OID's
"A. Kretschmer" wrote:
> am Wed, dem 20.06.2007, um 12:01:33 +0000 mailte Martin Spott folgendes:
> > kann mir mal jemand etwas Sortierungshilfe geben ? ;-)
>
> ich versuch es mal.
Das Unterfangen war erfolgreich !
> > Hat mal jemand eine System eingerichtet und ist an diese Grenze
> > gestossen ? Was passiert dann, kann ich dann keine neuen Zeilen mehr in
> > 'ne Tabelle schreiben und der Rest laeuft froehlich weiter ?
>
> Es passieren b?sen Dinge, ja.:
Es fehlte der Hinweis auf die mysterioesen Vorgaenge am Rande der
Erdscheibe :-)
Dankeschoen,
Martin.
--
Unix _IS_ user friendly - it's just selective about who its friends are !
------------------------------------------------------------ --------------
---------------------------(end of broadcast)---------------------------
TIP 1: if posting/reading through Usenet, please send an appropriate
subscribe-nomail command to majordomo [at] postgresql.org so that your
message can get through to the mailing list cleanly