Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Oracle NUMBER(p) Speichergröße?

Der verwendete Speicher hängt vom tatsächlichen numerischen Wert sowie von der Spaltengenauigkeit und dem Maßstab der Spalte ab.

Der Oracle 11gR2 Concepts Guide sagt :

Der 10gR2-Leitfaden geht noch weiter :

Wenn Sie Zugriff auf My Oracle Support haben, finden Sie weitere Informationen in Hinweis 1031902.6.

Sie können den tatsächlich verwendeten Speicher mit vsize sehen oder dump .

create table t42 (n number(10));

insert into t42 values (0);
insert into t42 values (1);
insert into t42 values (-1);
insert into t42 values (100);
insert into t42 values (999);
insert into t42 values (65535);
insert into t42 values (1234567890);

select n, vsize(n), dump(n)
from t42
order by n;

          N   VSIZE(N)                           DUMP(N) 
------------ ---------- ---------------------------------
         -1          3           Typ=2 Len=3: 62,100,102 
          0          1                  Typ=2 Len=1: 128 
          1          2                Typ=2 Len=2: 193,2 
        100          2                Typ=2 Len=2: 194,2 
        999          3           Typ=2 Len=3: 194,10,100 
      65535          4          Typ=2 Len=4: 195,7,56,36 
 1234567890          6   Typ=2 Len=6: 197,13,35,57,79,91 

Beachten Sie, dass die Speicherung je nach Wert variiert, obwohl sie alle in einer number(10) enthalten sind Spalte, und dass zwei dreistellige Zahlen unterschiedlich viel Speicherplatz beanspruchen können.