Oracle 查看执行计划

执行计划:即数据库计划如何去执行SQL语句

查看执行计划:

方法一:选中需查看执行计划的SQL语句 然后按 F5      效果图如下:


方法二:1.执行       EXPLAIN PLAN FOR    +需查看执行计划的SQL语句

                 2.执行     select * from table(dbms_xplan.display)

                  效果图如下:

以上执行计划中各列的意义如下
id:序号(id的大小不代表执行的先后顺序
Operation:操作内容
Rows:当前操作的cardinality,数据库估算当前返回结果集的行数,这个行源可能是一个表,一个索引,也有可能是一个子查询。
Bytes:当前操作的数据量的大小
Cost(%CPU):数据库计算出来的一个数值,用于说明SQL执行的代价。
Time:数据库估算当前操作所需要的时间

access:表示谓词条件的值会影响数据的访问路径(表还是索引,这里是索引)

如果是filter则表示谓词条件的值只起到过滤的作用 并不会影响数据访问路径

---------------------------------------------------------测试例子------------------------------------------------------------------------------------------------

执行未优化代码

EXPLAIN PLAN FOR
select s_code,site_name,su_site from tb_site ts ,tb_bill tb  where  ts.site_name=tb.send_site
执行select * from table(dbms_xplan.display) 效果图如下


执行优化代码

EXPLAIN PLAN FOR
select s_code,site_name,su_site from tb_site ts
where exists(select 'X' from tb_bill tb  where  ts.site_name=tb.send_site)
执行 select * from table(dbms_xplan.display)效果图如下:


由上两图对比可见

未优化SQL 的Rows为4342 (与统计查询结果一样)

优化后SQL的ROWs为169

如此可见

rows 的多少直接影响了执行计划访问数据的选择  是选择使用索引还是使用全表扫描的方式



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

tiegenZ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值