重庆思庄Oracle、Redhat认证学习论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2344|回复: 0
打印 上一主题 下一主题

[参考文档] object_id 与 Data_Object_ID 的区别

[复制链接]
跳转到指定楼层
楼主
发表于 2021-12-17 13:03:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
是否有1个东西叫Data_object_id, 如果有的话,它是用来做什么的呢? 正巧,在也有人问这个问题。我当时并不清楚Data_object_id 是什么,但它的确在视图ALL_OBJECTS里存在。 Hmmm..有趣,它到底是什么。最现在那个论坛里回答了, 根据TOM所说:

object_id 是数据库里的对象的唯一标识--数据库中每1个对象都会被分配1个唯一的好号码作为区别的标志。
同样地,每1个数据库object都会link住1个segment(数据段), 而Data_object_id就是分配给那个对应的segment.
(译者住:上面那句不保证正确性,因为1个数据库对象是可以对应不同表空间内多个segment的)
当那个segment发生了任何物理变动,都会令这个数值改变。 这两个ID的值在一开始是相等的,但是当对应segment
发生变动时, Data_object_id会改变。 这两个ID都是Oracle用来表示存放在数据字典的元数据(数据目录)。

看1个例子:
首先查看数据库版本
SQL> select * from v$version;

BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
PL/SQL Release 11.2.0.4.0 - Production
CORE    11.2.0.4.0      Production
TNS for Linux: Version 11.2.0.4.0 - Production
NLSRTL Version 11.2.0.4.0 - Production






创建1张表


查看该表的object_idData_object_id,
注:表tab$OBJ# 存放的就是对象的object_id, 而 dataobj#存放的就是对象的data_object_id.
SQL> select obj#,dataobj#,tab# from tab$ where obj# in
  2     (select object_id from user_objects where object_name='TMP_JASON1');

      OBJ#   DATAOBJ#       TAB#
---------- ---------- ----------
     87416      87416

截断这张表


SQL> truncate table tmp_jason1;


Table truncated.


再查看该表的object_idData_object_id, ..(无变化,作者原文是变化了的,可能由于这张表原来就是空表的关系)
SQL> select obj#,dataobj#,tab# from tab$ where obj# in
  2     (select object_id from user_objects where object_name='TMP_JASON1');

      OBJ#   DATAOBJ#       TAB#
---------- ---------- ----------
     87416      87416

执行alter table xxx move, 这个语句一般用来移动表到另1个表空间(move 后面要加表空间参数),或者用来整理碎片(消除行移植和行链接), 但是会导致索引失效,所以要重建索引。
alter index xxx rebuild online



SQL> alter table tmp_jason1 move;


Table altered.

再查看该表的object_idData_object_id, 见到Data_obj_id已经发生变化了。
SQL> select obj#,dataobj#,tab# from tab$ where obj# in
  2     (select object_id from user_objects where object_name='TMP_JASON1');

      OBJ#   DATAOBJ#       TAB#
---------- ---------- ----------
     87416      87417





分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 支持支持 反对反对
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|重庆思庄Oracle、Redhat认证学习论坛 ( 渝ICP备12004239号-4 )

GMT+8, 2024-11-29 19:14 , Processed in 0.107411 second(s), 21 queries .

重庆思庄学习中心论坛-重庆思庄科技有限公司论坛

© 2001-2020

快速回复 返回顶部 返回列表