著名的Tanel Poder最近在他的博客上发表了《Which number takes more space in an Oracle row?》;Oracle是如何存储数字类型字段的?如果我们惯性思维的话,存储数字123肯定要比存储数字10000000000000000所占用的空间少吧,事实是这样吗?
SQL> select vsize(123) from dual; VSIZE(123) ---------- 3 SQL> select dump(123,16) from dual; DUMP(123,16) -------------------- Typ=2 Len=3: c2,2,18 /* 可以看到Oracle存储数字123需要用到3个字节的空间,其16进程形式为c2,02,18 */ /* 如果是gooooogle(1后面跟n个零)呢? * / SQL> select vsize(power(10,38)) from dual; VSIZE(POWER(10,38)) ------------------- 2