Oracle_object_id和data_object_id的区别与联系
来源:互联网 发布:入骨相思知不知 编辑:程序博客网 时间:2024/06/05 05:45
当表刚创建的时候它的object_id和data_object_id都是相等的,但是如果表经过move或truncate等,涉及到segment发生改变后data_object_id将会有变化。
DATA_OBJECT_ID was introduced in 8.0 to track versions of the same segment (certain operations change the version). It is used to discover stale ROWIDs and stale undo records.
下面我们就通过示例来逐步了解一下:
1、新建表
SQL> create table sdxj.xiaoxu_objectid as select * from dba_objects;
表已创建。
2、查看object_id和data_object_id
SQL> select owner,object_name,object_id,data_object_id from dba_objects where object_name='XIAOXU_OBJECTID';
OWNER OBJECT_NAME OBJECT_ID DATA_OBJECT_ID
---------- -------------------------------------------------- ---------- --------------
SDXJ XIAOXU_OBJECTID 77782 77782
----初始大小相等。
3、通过move,create ,alter,truncate 操作观察id变化
3.1 move 操作
SQL> alter table sdxj.xiaoxu_objectid move;
表已更改。
SQL> select owner,object_name,object_id,data_object_id from dba_objects where object_name='XIAOXU_OBJECTID';
OWNER OBJECT_NAME OBJECT_ID DATA_OBJECT_ID
---------- -------------------------------------------------- ---------- --------------
SDXJ XIAOXU_OBJECTID 77782 77783 ---此时object_id不变,data_object_id 发生变化,值增加。
3.2 create index 操作
SQL > create index sdxj.idx_objectid on sdxj.xiaoxu_objectid (object_id) tablespace d_data_01;
SQL> select owner,object_name,object_id,data_object_id from dba_objects where object_name='XIAOXU_OBJECTID';
OWNER OBJECT_NAME OBJECT_ID DATA_OBJECT_ID
---------- -------------------------------------------------- ---------- --------------
SDXJ XIAOXU_OBJECTID 77782 77783 ---创建索引两个值未变。
3.3 alter index 操作
SQL> alter index sdxj.idx_objectid rebuild tablespace users;
索引已更改。
SQL> select owner,object_name,object_id,data_object_id from dba_objects where object_name='XIAOXU_OBJECTID';
OWNER OBJECT_NAME OBJECT_ID DATA_OBJECT_ID
---------- -------------------------------------------------- ---------- --------------
SDXJ XIAOXU_OBJECTID 77782 77783 --经测试alter index ,create indexes,insert into 均未发生变化。
3.4、truncate 操作
SQL> truncate table sdxj.XIAOXU_OBJECTID;
表被截断。
SQL> select owner,object_name,object_id,data_object_id from dba_objects where object_name='XIAOXU_OBJECTID';
OWNER OBJECT_NAME OBJECT_ID DATA_OBJECT_ID
---------- -------------------------------------------------- ---------- --------------
SDXJ XIAOXU_OBJECTID 77782 77790 --值发生变化。
4、新增对象OBJECT_ID
新增的对象object_id 为max(data_object_id)+1
数据库最大data_object_id查询:
select max(data_object_id ) from dba_objects; 得到3251768
新建对象index
create index sdxj.idx_xiao3 on sdxj.XIAOXU_OBJECTID2 (table_name); ---对应object_id 和data_object_id 为3251769
据听说,data_object_id 到大2^32次方,会导致数据库HAND住。
- Oracle_object_id和data_object_id的区别与联系
- Oracle_object_id和data_object_id的区别与联系
- object_id和data_object_id区别与联系
- OBJECT_ID 和 DATA_OBJECT_ID 坑人的区别
- OBJECT_ID和DATA_OBJECT_ID的区别以及ROWID的详解
- 转译:Oracle 中 Object_iD 和 Data_Object_ID 的区别
- &&和&的联系与区别
- OBJECT_ID、DATA_OBJECT_ID与truncate的本质
- 堆和栈的联系与区别
- BS和CS的联系与区别
- /n和/r的区别与联系
- 句柄和指针的区别与联系
- AE和AO的区别与联系
- setContentType和setCharacterEncoding的区别与联系
- DLL与LIB的区别和联系
- Forward和Redirect的联系与区别
- 指针和引用的联系与区别
- sockaddr 和 sockaddr_in 的区别与联系
- iGrimace iOS应用闪退或图标消失的解决办法
- HDU 5386 Cover(模拟)
- MFC动态创建菜单
- 算法导论 10.4.5 O(1)空间遍历二叉树
- 利用HTTP-only Cookie缓解XSS
- Oracle_object_id和data_object_id的区别与联系
- POJ - 3160 Father Christmas flymouse(最长路+强连通分量)
- Swift-常量(let)和变量(var)
- hdu 5389 Zero Escape (dp)
- HDU 5387 Clock
- tableView - 自定义等高cell-xib方式
- 八种排序算法(C语言简易版)
- tableView - 自定义等高cell(frame和masonry方式)
- UVA 12486 Space Elevator(数位DP)