• rowid简介

  rowid就是唯一标志记录物理位置的一个id,在oracle 8版本以前,rowid由file#+block#+row#组成,占用6个bytes的空间,10 bit 的 file# ,22bit 的 block# ,16 bit 的 row#。

  从oracle 8开始rowid变成了extend rowid,由data_object_id#+rfile#+block#+row#组成,占用10个bytes的空间, 32bit的 data_object_id#,10 bit 的 rfile#,22bit 的 block#,16 bit 的 row#.

  由于rowid的组成从file#变成了rfile#,所以数据文件数的限制也从整个库不能超过1023个变成了每个表空间不能超过1023个 数据文件。

  • 比较file#和rfile#

  file#标识逻辑标识,

  rfile#标识对应segment的标识

  归根结底的原因是因为 ROWID 的存储格式造成的.

  因为 rowid 中文件编号标志只有10bit,最大数据容量1024,由于不存在0编号文件,所以实际上只允许1023个文件编号。在oracle8 之前的版本的数据库中,rowid是受限的,只包括 file# /block# /row# ,则数据库最多只允许1023个文件。

   而oracle8开始rowid 包括 data_object_id# / Rfile#  /block# /rowid# 。data object id 的引入,同时支持了表分区的概念,一个表可以拥有多个分区(segment),而一个分区可以在不同的表空间中(由Rfile# 表示在segment对应的表空间中对应的 相对文件编号)。这样表的容量也增大了。 扩展的rowid使得oracle不再局限于数据文件只能有1023个的限制,而一个表可以分区,也使得表的容量不再局限于单个表空间中(1023个文件的限制)。

最新文章

  1. Favorite Setting
  2. MongoDB 副本集管理(不定时更新)
  3. bootshrap会改变IE浏览器滚动条样式
  4. 2013 ACM/ICPC 长春网络赛E题
  5. JavaScript调试技巧之console.log()详解
  6. [转载] 深入理解Linux修改hostname
  7. Android5.0新控件CardView的介绍和使用
  8. [DevExpress]GridControl 同步列头checkbox与列中checkbox状态
  9. [C入门 - 游戏编程系列] 贪吃蛇篇(四) - 食物实现
  10. php+ajax+json
  11. 为什么要初始化CSS?
  12. SQL企业级面试题
  13. [翻译]【目录】编写高性能 .NET 代码
  14. 【腾讯Bugly干货分享】舞动的表情包——浅析GIF格式图片的存储和压缩
  15. 10.21CRM项目(01)
  16. Effective C++笔记:继承与面向对象设计
  17. 基于Apache在本地配置多个虚拟主机站点
  18. ArcEngine9.3迁移至ArcObject10.1
  19. [VB.NET][C#]二维向量的基本运算
  20. [洛谷P3228] [HNOI2013]数列

热门文章

  1. 在IOS输入框中 键盘上显示“搜索”
  2. linux下压缩与解压(zip、unzip、tar)详解
  3. hmtl的标签属性
  4. DWORD类型的IP地址转换为CString字符串
  5. ubnt+ros 接入无线
  6. express创建项目
  7. python中使用xlrd、xlwt操作excel表格详解
  8. ios device model 详细内容
  9. 在ios8中做的屏幕旋转功能
  10. Catalan数(数论)