Skip site navigation (1) Skip section navigation (2)

Re: Umfang von OID's

From: "A(dot) Kretschmer" <andreas(dot)kretschmer(at)schollglas(dot)com>
To: pgsql-de-allgemein(at)postgresql(dot)org
Subject: Re: Umfang von OID's
Date: 2007-06-20 12:40:38
Message-ID: 20070620124038.GB10728@a-kretschmer.de (view raw or flat)
Thread:
Lists: pgsql-de-allgemein
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=# create table bigtable (id bigserial);
NOTICE:  CREATE TABLE will create implicit sequence "bigtable_id_seq" for serial column "bigtable.id"
CREATE TABLE
test=*# 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=de&q=postgresql+oid+wraparound&btnG=Suche&meta=


Andreas
-- 
Andreas Kretschmer
Kontakt:  Heynitz: 035242/47150,   D1: 0160/7141639 (mehr: -> Header)
GnuPG-ID:   0x3FFF606C, privat 0x7F4584DA   http://wwwkeys.de.pgp.net

In response to

Responses

pgsql-de-allgemein by date

Next:From: Martin SpottDate: 2007-06-20 21:35:24
Subject: Re: Umfang von OID's
Previous:From: Martin SpottDate: 2007-06-20 12:01:33
Subject: Umfang von OID's

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group