explain plan初接触

利用 explain plan,我们可以查看oracle优化器用来执行sql语句的查询计划。同trace相比,explain plan由于不用进行查询跟踪,只是分析执行计划,所以使用起来更为快速便捷。使用explain plan分析sql语句后,会在表plan_table中插入数据,查询该表即可获取sql执行计划,从而为开展sql优化提供方便。

一个简单的例子:

explain plan set statement_id='pay' for select * from pay where id>333

执行后,会在plan_table中插入数据,执行如下查询:

select lpad('',2*(level-1))||level||'.'||nvl(position,0)||' '||
    operation||' '||options||' '||object_name||' '||object_type
    ||' '||decode(id,0,statement_id||'cost='||position)||cost
    ||' '||object_node"query plan"
    from plan_table start with id=0 and statement_id='pay'
    connect by prior id=parent_id and statement_id='pay'

,即可得到相应的sql执行计划:

1.1022 SELECT STATEMENT    paycost=10221022
2.1 TABLE ACCESS FULL PAY  1022

注意,由于此处查询plan_table是采用从上至下的方式读取,所以阅读时应该由内向外阅读,即2。1先于1。1

执行。显然,此处由于表没有设置索引,所以查询为全表查询,开销是很大的。所以,借助此分析结果便可以

考虑进行sql优化。

 

你可能感兴趣的:(oracle,sql,优化,object,table,Access)