1.Sql执行三个主要阶段
Ø Parse (分析阶段)
- 在内存(shared pool) 中寻找语句
- 检查语法,检查语义,权限
- 合并View,SubQuery
- 生成执行计划
Ø Execute (执行)
- 应用Parse阶段生成的执行计划
- 如果数据在内存中则完成逻辑读,否则物理读
- 对于UPDATE、DELETE语句先锁住有关的行
Ø Fetch (结果返回)
- 如果是select 语句,还要返回执行结果
- 根据需要完成排序
每个阶段都消耗系统资源。
2.常见的数据访问路径
Ø 表的访问
- Table Access Full(Multi-blocks I/O,可并行)
- Table Access By Rowid (先索引访问,得到Rowid)
Ø 索引的访问
- Index Unique Scan (Single Block I/O,不可并行)
§ 返回单个值;唯一索引,等于查询
- Index Range Scan (Single Block I/O,不可并行)
§ 返回多行记录;范围查询
- Index Full Scan
§ 对Index做全部的扫描,返回所有Index的值
- Index Fast Full Scan(Multi-blocks I/O,可并行)
§ 可以并行的访问整个Index
- Index skip Scan
§ 跳过复合索引中的领先列,适用于领先列选择性低的情况
如,(fee_type,finist_time)
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/9399028/viewspace-678635/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/9399028/viewspace-678635/