验证oracle决定使用索引时会使用ROWID来访问数据
来源:互联网 发布:淘宝女包店铺介绍 编辑:程序博客网 时间:2024/06/05 10:45
当oracle决定使用索引时会使用ROWID来访问数据,根据索引扫描到的每行ROWID,然后通过ROWID再匹配对应的数据行。注:(在索引中,除了存储每个索引值,还存储相应的ROWID)
如下实验:
1)首先我们通过走索引的方式访问表数据:
SQL> explain plan for select * from emp where empno=7698;
Explained
SQL> select * from table(dbms_xplan.display);
PLAN_TABLE_OUTPUT
--------------------------------------------------------------------------------
Plan hash value: 2949544139
--------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time
--------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | 87 | 2 (0)| 00:0
| 1 | TABLE ACCESS BY INDEX ROWID| EMP | 1 | 87 | 2 (0)| 00:0
|* 2 | INDEX UNIQUE SCAN | PK_EMP | 1 | | 1 (0)| 00:0
--------------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
2 - access("EMPNO"=7698)
14 rows selected
从红色标志来看,oracle根据索引扫描到了14行的ROWID(总共有14条记录),根据扫描到的每行ROWID,再找到表中的数据行。
2)其次我们直接访问ROWID的方式访问数据
SQL> explain plan for select * from emp where rowid='AAASZHAAEAAAACXAAF';
Explained
SQL> select * from table(dbms_xplan.display);
PLAN_TABLE_OUTPUT
--------------------------------------------------------------------------------
Plan hash value: 1116584662
--------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time
--------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | 99 | 1 (0)| 00:00:0
| 1 | TABLE ACCESS BY USER ROWID| EMP | 1 | 99 | 1 (0)| 00:00:0
--------------------------------------------------------------------------------
8 rows selected
如有错误,敬请指正,万分感谢
- 验证oracle决定使用索引时会使用ROWID来访问数据
- 在Python中使用cx_Oracle来访问Oracle
- 使用OTL来访问数据库
- 使用TortoiseGit来访问GitHub
- 使用SwitchySharp来访问google
- 使用Hive来访问HBase
- 使用configobj 来访问配置文件
- oracle rowid 使用注意事项
- 使用XML-RPC来访问Web服务
- 如何使用java来访问BLOB
- JS使用[ ]来访问对象属性
- 使用javascript来访问本地文件夹
- 使用 HttpLib 来访问 Web 服务
- 为什么使用viewWithTag来访问Subview
- JS使用[ ]来访问对象属性
- Perl 使用引用来访问hash 数组
- JS使用[ ]来访问对象属性
- 使用php来访问操作sql server
- 访问者模式
- JSON 字符串 与 java 对象的转换
- phpcms使用cookie的方法
- Java学习心得--异常
- Android启动过程 && Activity的生命周期 && Activity的开机自启动
- 验证oracle决定使用索引时会使用ROWID来访问数据
- QT学习,最简单的Web浏览器
- ndk gdb 调试开发
- phpcms使用session的方法
- Java中equal和"=="的区别
- phpcms v9 调用编辑器的方法
- DMA简介
- 十个jQuery图片画廊插件推荐
- linux下检测ip冲突