[20191206]為什麼oracle能建立最大object_id=4254950910.txt

lfree發表於2019-12-05

[20191206]為什麼oracle能建立最大object_id=4254950910.txt

--//昨天的測試,最大obj$.obj#=4254950910.不理解為什麼,實際上oracle內部還有一些X$以及相關檢視.
--//大於obj#=4254950911保留給這些記憶體表使用.
--//連結:http://blog.itpub.net/267265/viewspace-2666794/

SYS@book> @ ver1
PORT_STRING                    VERSION        BANNER
------------------------------ -------------- --------------------------------------------------------------------------------
x86_64/Linux 2.4.xx            11.2.0.4.0     Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production

SYS@book> select * from (select * from v$fixed_table order by OBJECT_ID) where rownum<=10;
NAME           OBJECT_ID TYPE    TABLE_NUM
------------- ---------- ------ ----------
X$KQFTA       4294950912 TABLE           0
X$KQFVI       4294950913 TABLE           1
X$KQFDT       4294950914 TABLE           3
V$WAITSTAT    4294950915 VIEW        65537
V$ROWCACHE    4294950916 VIEW        65537
V$PROCESS     4294950917 VIEW        65537
V$BGPROCESS   4294950918 VIEW        65537
V$SESSION     4294950919 VIEW        65537
V$TRANSACTION 4294950920 VIEW        65537
V$LATCH       4294950921 VIEW        65537
10 rows selected.

--//這些物件的最小OBJECT_ID正好是4294950912.
--//2^32-1 = 4294967295
--//4294967295-4294950911 = 16384
--//故意保留16384為這些物件使用.

SYS@book> select count(*) from (select rownum+4294950911 from dual connect by level<=16384 minus select object_id from v$fixed_table );
  COUNT(*)
----------
     14322

SYS@book> select count(*) from v$fixed_table ;
  COUNT(*)
----------
      2062

--//14322+2062 = 16384,僅僅使用2062個.

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/267265/viewspace-2667134/,如需轉載,請註明出處,否則將追究法律責任。

相關文章