Oracle执行计划-SQL优化
Oracle执行计划-SQL优化
plsq查看sql是否走索引
选中sql 执行 F5
或者
生成计划
explain plan for
select insuredappage from lcpol where insuredappage < 20;
查看计划
SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY('PLAN_TABLE', NULL, 'TYPICAL'));
两种情况结果
执行计划核心字段解析
1.
Id
含义:执行步骤的唯一标识符,按层级缩进显示执行顺序。
规则:
从内向外(缩进最深的步骤最先执行)。
同层级从上到下(操作号小的先执行)。
根节点Id为0,表示最终结果集。
2.
Operation
含义:操作类型,揭示数据访问方式。常见操作包括:
TABLE ACCESS FULL:全表扫描(效率低,需优化)。
INDEX RANGE SCAN:索引范围扫描(高效)。
NESTED LOOPS:嵌套循环连接(适合驱动表数据少时)。
HASH JOIN:哈希连接(适合大表关联)。
3.
Name
含义:操作涉及的对象名称(表或索引)。
特殊值:
<derived N>:派生表(如子查询结果)。
<union M,N>:UNION操作的临时表。
4.
Rows (E-Rows)
含义:优化器预估当前操作返回的行数。
重要性:若实际行数与预估差异大(如相差10倍以上),可能统计信息过期,需更新统计信息。
5.
Cost (%CPU)
含义:执行当前步骤的预估资源消耗(CPU占比)。
作用:用于比较不同执行计划的效率(Cost越低越好)。
6.
Time
含义:预估当前步骤执行时间(HH:MM:SS格式)。