ORACLE--执行计划

本文详细介绍了ORACLE执行计划的查看方式,遵循的执行顺序原则——由上至下,从右向左,并解析了执行计划中的ID、Operation、Rows、Cost等关键字段。重点讨论了Access和Filter谓词在SQL执行中的作用,以及统计信息如recursive calls、db block gets等在评估性能时的意义。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

查看方式

 EXPLAIN PLAN FOR
 SELECT
    T1.ORDER_KEY   AS    ORDER_KEY     --注文キー
    ,T1.EXECUTION_NO  AS    EXECUTION_NO    --出来履歴
    ,T1.RECSEQNO   AS    RECSEQNO     --レコードシーケンスNO
    ,T1.ORDER_DATE_TIME  AS    ORDER_DATE_TIME    --発注日時
    ,T1.PRODUCT_KEY   AS    PRODUCT_KEY     --銘柄コード
    ,T1.EXCHANGE_DESC  AS    EXCHANGE_DESC    --取引所
    ,T2.MGRCOD    AS    MGRCOD      --銘柄コード
  FROM
   KW301_001 T1
  LEFT OUTER JOIN SN101 T2 ON T1.PRODUCT_KEY = T2.MGRCOD
  WHERE
   T1. PRODUCT_TYPE = 'CB';
      
SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY); 

在这里插入图片描述

执行顺序

执行顺序的原则是:由上至下,从右向左
由上至下:在执行计划中一般含有多个节点,相同级别(或并列)的节点,靠上的优先执行,靠下的后执行

从右向左:在某个节点下还存在多个子节点,先从最靠右的子节点开始执行。
一般按缩进长度来判断,缩进最大的最先执行,如果有2行缩进一样,那么就先执行上面的。
在这里插入图片描述

执行计划中字段解释

ID: 一个序号,但不是执行的先后顺序。执行的先后根据缩进来判断。
Operation: 当前操作的内容。
Rows: 当前操作的Cardinality,Oracle估计当前操作的返回结果集。
Cost(CPU):Oracle 计算出来的一个数值(代价),用于说明SQL执行的代价。
Time:Oracle 估计当前操作的时间。
谓词说明
Access :

通过某种方式定位了需要的数据,然后读取出这些结果集,叫做Access。
表示这个谓词条件的值将会影响数据的访问路劲(表还是索引)。

Filter:

把所有的数据都访问了,然后过滤掉不需要的数据,这种方式叫做filter 。
表示谓词条件的值不会影响数据的访问路劲,只起过滤的作用。

在谓词中主要注意access,要考虑谓词的条件,使用的访问路径是否正确。

Statistics(统计信息)说明

recursive calls
产生的递归sql调用的条数。
 
Db block gets:
从buffer cache中读取的block的数量
consistent gets
从buffer cache中读取的undo数据的block的数量   
physical reads
从磁盘读取的block的数量  
redo size
DML生成的redo的大小   
bytes sent via SQLNet to client
数据库服务器通过SQL
Net向查询客户端发送的查询结果字节数
bytes received via SQLNet from client
通过SQL
Net接受的来自客户端的数据字节数
SQL*Net roundtrips to/from client
服务器和客户端来回往返通信的Oracle Net messages条数
sorts (memory)
在内存执行的排序量   
sorts (disk)
在磁盘上执行的排序量
rows processed
处理的数据的行数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值