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
Martin Spott [ Mi, 20 Juni 2007 14:01 ] [ ID #1743775 ]

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
andreas.kretschmer [ Mi, 20 Juni 2007 14:40 ] [ ID #1743776 ]

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
Martin Spott [ Mi, 20 Juni 2007 23:35 ] [ ID #1743777 ]
Datenbanken » gmane.comp.db.postgresql.german » Umfang von OID's

Vorheriges Thema: == WöchentlicherPostgreSQL Newsletter - 24.Juni 2007
Nächstes Thema: == WöchentlicherPostgreSQL Newsletter - 17.Juni 2007