打开 PL/SQL,Tools --> Preferences --> Window Types --> Plan Window中,定义需要显示的列元素。
在 Command Window中,输入SQL语句并选中,
依次选择菜单 Tools --> Explain Plan 或按下快捷键F5,即可展示出SQL语句的执行效率
执行顺序
缩进最多的最先执行,缩进相同,最上边的最先执行。
表访问的几种方式
- 全表扫描 TABLE ACCESS FULL
读取表中所有行,与where子句进行比较,不建议使用,如果需要读取的数据量达到全表数据5%以上可用。 - 通过ROWID的表存取 TABLE ACCESS BY INDEX ROWID
读取单行数据最快的方法 - 索引扫描 TABLE ACCESS BY INDEX SCAN
扫描索引得到对应的ROWID;
通过ROWID定位到具体的行读取数据。
索引扫描方式
INDEX UNIQUE SCAN 索引唯一扫描
每次至多返回一条记录,表中某字段存在 UNIQUE PRIMARY约束时,实现的扫描方式。
INDEX RANGE SCAN 索引范围扫描
使用一个索引存取多行数据,
在唯一索引上使用了范围操作符 > < between;
在组合索引上,只使用了部分列查询(必须包含前导列,否则会走全表扫描);
对非唯一索引上的任何查询
INDEX FULL SCAN 索引全扫描
查询出的数据都必须从索引中可以直接得到,查询结果会排序
INDEX FAST FULL SCAN 索引快速扫描
查询结果不排序
INDEX SKIP SCAN 跳跃扫描
表中一个复合索引,且在查询时有除了前导列外的其它作为条件。
网友评论