news 2026/10/7 3:18:15

oracle的rowid相关

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
oracle的rowid相关

文中大部分观点均来自Thomas Kyte的《Expert.Oracle.Database.Architecture.9i.and.10g.Programming.Techniques.and.Solutions》一书

1 ALTER TABLE 表名 ENABLE ROW MOVEMENT 允许oracle改变分配给每行的rowid。否则flashback时会报“ORA-08189: cannot flashback thetable because row movement is not enabled”。rowid是在insert时分配的。flashback会对表做delete再重新插入,因此可能分配到不同的新rowid.

2 10g以前,查询dual会产生对数据字典中一个真实的名为“dual”表的全表扫描。SELECT DUMMY FROM DUAL或者SELECT rowid FROMDUAL会在oracle所有版本观察到I/O.如果在9i及之前的版本查询sELECT SYSDATE FROM DUAL或者在PL/SQL中书写variable := SYSDATE都会发生真实的I/O。但在10g,SELECTSYSDATE被视为不需要查询dual表并按照类似于调用函数的方式。因此,如果仅取sysdate,就不再全表扫描dual了

3 rowid仅在同一表中唯一,不同表的可能出现相同的rowid

4 B*Tree index底层叶节点存放rowid

5 可能导致rowid发生变化的操作:
1)update分区表用于分区的列,使得某行必须由一个分区移动到另一个
2)move操作(移动表所属的表空间)和一些分区操作比如splitting or merge partitions(拆分或者合并分区)
3)用ALTER TABLE SHRINK SPACE做segment shrink(表收缩,通过insert+delete重组数据使数据分布更紧密,同时降低HWM释放空闲数据块)
4)更新索引组织表(iot)的主键

6 rowid可以随时变化,不推荐将其物理存储在数据库表列中,使用rowid作为列的数据类型会被视为“bad practice”加以避免。应使用主键代替

7 rowid是找到表中一行的最快方式,可以用于update无索引和主键的表,但要求和其他条件一同使用以免受到rowid变化的影响

8 数据库间的copy或导入导出都会引起ROWID和UROWID的变化

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/7 3:16:43

OpenClaw被禁背后:AI Agent安全风险与数据泄露防护实战

1. 事件背景:OpenClaw 为什么会被标记为“无法安全验证”1.1 OpenClaw 到底是什么先把这个名字讲清楚。OpenClaw 是一个基于 Rust 语言构建的开源 AI Agent 框架,定位是本地化部署和自动化任务执行。它跟普通的聊天机器人有本质区别——它的核心能力是“…

作者头像 李华
网站建设 2026/10/7 3:16:14

HTTP通信原理与调试实战:从浏览器请求到服务器响应的完整链路

我在调试前后端联调的时候,经常遇到刚入行的同事问我一个问题:浏览器里输入一个网址,按下回车,服务器那边到底是怎么把页面送回屏幕上的?这问题看起来基础,但真要往深了问——请求是怎么组织的、服务器怎么…

作者头像 李华
网站建设 2026/10/7 3:16:13

视频打赏平台源码二开:个人免签支付与安卓打包避坑指南

简介:一套基于ThinkPHP全新开发的视频打赏平台源码,定位为带盒子试看、图片视频列表与个人免签支付的完整运营方案,面向需要搭建付费视频、打赏变现及代理商体系的站长或个人开发者。系统全开源、无加密、无授权限制,修复了市面流…

作者头像 李华
网站建设 2026/10/7 3:15:50

C# WinForm自研工作流表单设计器核心实现与踩坑实践

先交代一下背景:年初接了一个OA审批类的项目,其中一块核心需求是让业务人员自己配置审批流程和表单,而不是每次改动都找开发改代码。调研了一圈市面上的工作流组件,要么贵得离谱,要么跟项目技术栈绑定太死,…

作者头像 李华
网站建设 2026/10/7 3:15:43

SpringBoot+Vue教室图书馆预约系统:从架构设计到部署实战

1. 项目概述与需求拆解1.1 这个系统到底解决了什么问题教室和图书馆预约这件事,看起来简单,真正落地的时候坑特别多。我见过太多学校还在用Excel表排教室、用微信群接龙占座位的,一到考试周就乱套——有人提前一天占座、有人借了教室不去、还…

作者头像 李华