Oracle 中 Object_iD 和 Data_Object_ID 的区别
2021/4/11 2:27:03
本文主要是介绍Oracle 中 Object_iD 和 Data_Object_ID 的区别,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
Oracle 中 Object_iD 和 Data_Object_ID 的区别
转译自Aman Sharma的blog:
http://blog.aristadba.com/?tag=data_object_id
是否有1个东西叫
Data_object_id
, 如果有的话,它是用来做什么的呢? 正巧,在
OTN论坛
也有人问这个问题。我当时并不清楚
Data_object_id
是什么,但它的确在视图
ALL_OBJECTS
里存在。 Hmmm..有趣,它到底是什么。
ASK Tom
最现在那个论坛里回答了, 根据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个例子:
首先查看数据库版本
创建1张表
查看该表的
object_id
和
Data_object_id
,
注:表
tab$
仲
OBJ#
存放的就是对象的
object_id
, 而
dataobj#
存放的就是对象的
data_object_id
.
截断这张表
再查看该表的
object_id
和
Data_object_id
, ..(无变化,作者原文是变化了的,可能由于这张表原来就是空表的关系)
执行
alter table
xxx
move
, 这个语句一般用来移动表到另1个表空间(
move
后面要加表空间参数),或者用来整理碎片(
消除行移植和行链接)
, 但是会导致索引失效,所以要重建索引。
alter index xxx rebuild online
再查看该表的
object_id
和
Data_object_id
, 见到Data_obj_id已经发生变化了。
这篇关于Oracle 中 Object_iD 和 Data_Object_ID 的区别的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-25【机器学习(二)】分类和回归任务-决策树(Decision Tree,DT)算法-Sentosa_DSML社区版
- 2024-11-23增量更新怎么做?-icode9专业技术文章分享
- 2024-11-23压缩包加密方案有哪些?-icode9专业技术文章分享
- 2024-11-23用shell怎么写一个开机时自动同步远程仓库的代码?-icode9专业技术文章分享
- 2024-11-23webman可以同步自己的仓库吗?-icode9专业技术文章分享
- 2024-11-23在 Webman 中怎么判断是否有某命令进程正在运行?-icode9专业技术文章分享
- 2024-11-23如何重置new Swiper?-icode9专业技术文章分享
- 2024-11-23oss直传有什么好处?-icode9专业技术文章分享
- 2024-11-23如何将oss直传封装成一个组件在其他页面调用时都可以使用?-icode9专业技术文章分享
- 2024-11-23怎么使用laravel 11在代码里获取路由列表?-icode9专业技术文章分享