sql调优第一步explain plan执行计划

时间:2022-03-18 01:18:14

explain plan  是sql的执行计划  。如果一条sql平时执行的好好的,有一天突然变得很差,如果排除系统资源和阻塞的原因,基本可以断定是执行计划出现了问题。

执行计划可以定位sql性能的问题。

sql调优第一步explain plan执行计划

sql调优第一步explain plan执行计划

sql调优第一步explain plan执行计划


2.使用sql语句

EXPLAIN PLAN FOR SELECT * FROM DAVE;

SELECT plan_table_output FROM TABLE(DBMS_XPLAN.DISPLAY('PLAN_TABLE'));

或者    

select * from table(dbms_xplan.display);

字段解释

    ID:一个序号,不是执行的先后顺序,执行先后根据缩进判断

    Operation:当前操作的内容

    Rows:当前操作的Cardinality,Oracle估计当前操作的返回结果集

    CPU:Oracle计算出的一个数值,用于说明SQL执行的代价

    Time:估计当前操作时间

db block gets:从buffer cache中读取的block的数量

consistent gets:从buffer cache中读取的undo数据的block数量

physical reads:从磁盘读取的block的数量

redo size:DML生成的redo的大小

sorts(memory):在内存执行的排序量

sorts(disk):在磁盘上上执行的排序量


Physical Reads通常是我们最关心的,如果这个值很高,说明要从磁盘请求大量的数据到Buffer Cache里,通常意味着系统里存在大量全表扫描的SQL语句,这会影响到数据库的性能,因此尽量避免语句做全表扫描,对于全表扫描的SQL语句,建议增加相关的索引,优化SQL语句来解决