ITPub博客

首页 > 数据库 > Oracle > [20191206]为什么oracle能建立最大object_id=4254950910.txt

[20191206]为什么oracle能建立最大object_id=4254950910.txt

原创 Oracle 作者:lfree 时间:2019-12-05 17:00:21 0 删除 编辑

[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博客 ” ,链接:https://blog.itpub.net/267265/viewspace-2667134/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
熟悉oracle相关技术,擅长sql优化,rman备份与恢复,熟悉linux shell编程。

注册时间:2008-01-03

  • 博文量
    4006
  • 访问量
    7969544