获得执行计划方法-一 ORACLE AUTOTRACE
admin
2023-05-14 13:42:05
0次

ORACLE sql trace

    
AUTOTRACE 命令

1 SET AUTOTRACE OFF                   此为默认值,即关闭Autotrace
2 SET AUTOTRACE ON                    产生结果集和解释计划并列出统计
3 SET AUTOTRACE ON EXPLAIN            显示结果集和解释计划不显示统计
4 SETAUTOTRACE TRACEONLY              显示解释计划和统计,尽管执行该语句但您将看不到结果集
5 SET AUTOTRACE  TRACEONLY STATISTICS 只显示统计

SQL> set autotrace on
SQL> select * from dual
  2  ;

D
-
X


Execution Plan
----------------------------------------------------------
Plan hash value: 272002086

--------------------------------------------------------------------------
| Id  | Operation         | Name | Rows  | Bytes | Cost (%CPU)| Time     |
--------------------------------------------------------------------------
|   0 | SELECT STATEMENT  |      |     1 |     2 |     2   (0)| 00:00:01 |
|   1 |  TABLE ACCESS FULL| DUAL |     1 |     2 |     2   (0)| 00:00:01 |
--------------------------------------------------------------------------


Statistics
----------------------------------------------------------
          1  recursive calls
          0  db block gets
          3  consistent gets
          0  physical reads
          0  redo size
        407  bytes sent via SQL*Net to client
        385  bytes received via SQL*Net from client
          2  SQL*Net roundtrips to/from client
          0  sorts (memory)
          0  sorts (disk)
          1  rows processed

各统计信息含义
db block gets    从buffer cache中读取的block的数量
consistent gets  从buffer cache中读取的undo数据的block的数量
physical reads   从磁盘读取的block的数量
redo size        DML生成的redo的大小
sorts (memory)   在内存执行的排序量
sorts (disk)     在磁盘上执行的排序量


db block gets 是取得current mode下的buffer cache
consistent gets 取的是consistent  mode 下buffer cache ,其中consistent  read 需要undo block 构造一致读块

官方文档如下

  • Current mode

    A current mode get, also called a db block get, is a retrieval of a block as it currently appears in the buffer cache.

    current mode 也叫 db block get ,是对buffer cache 中当前块的检索。

     For example, if an uncommitted transaction has updated two rows in a block, then a current mode get retrieves the block with these uncommitted rows. 

    例如,如果一个尚未提交的事物修改了一个块的两行,current模式个检索块时,包括两个尚未提交的行

    The database uses db block gets most frequently during modification statements, which must update only the current version of the block.

    数据库通常在使用修改语句时  使用db block get ,哪个必须修改当前块的版本。

  • Consistent mode

    A consistent read get is a retrieval of a read-consistent version of a block. This retrieval may use undo data.

    一致读读取的是块的一致性版本,这通常要使用undo 块。


     For example, if an uncommitted transaction has updated two rows in a block, and if a query in a separate session requests the block,

     例如 一个未提交事物修改了一个块的两行,另一个session查询这个块

     then the database uses undo data to create a read-consistent version of this block (called a consistent read clone) that does not include the uncommitted updates.

     数据库使用undo,创建一个一致读版本的块(被称为一致读的块克隆),不包含未提交的update。

     Typically, a query retrieves blocks in consistent mode.
    典型的,查询在一致读模式下进行检索




相关内容

热门资讯

空调连续工作多久需要停机休息 空调连续工作的时间取决于多个因素,包括空调的型号、功率、使用环境和维护情况等。一般来说,空调可以连续...
空调哪个符号是除湿的 空调除湿功能通常用一个水滴形状的符号表示。不同品牌和型号的空调遥控器可能会有所差异,但一般来说,除湿...
格力空调多长时间加一次氟利昂 1、一般情况下,空调对氟利昂的使用量是非常小的,所以在空调使用了四年左右的时候再考虑加也没问题。2、...
空调用多长时间需要加氟一次 一般情况下是五年。当出现以下这几种情况时,空调才需要加氟。1、空调的室内机和室外机各有两个接口,当接...
格调生活·C标思享荟:卡萨帝在... 9月12日的郑州龙湖金融岛,夜风轻拂,灯光璀璨。“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑...
品牌价值破千亿、高端份额持续领... 9月12日,“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑州站”在郑州龙湖金融岛举办。2026...
空调主板坏了修800还是换新的 空调主板坏了是修还是换新,需要考虑多个因素,以下是一些建议:1. 维修成本:如果维修费用较低,比如 ...
空调开多久需要休息多长时间 问题:空调开多久需要休息多长时间回答:1、在使用空调的过程中,一般空调开7~8个小时左右需要休息2~...
中央空调多长时间清洗一次 1、一般空调开机前清洗一次即可,空调开机中间时段再清洗一次,空调关机时清洗一次,这样比较合理。2、空...
中央空调氟利昂多久加一次 看空调制热和制冷程度,很多人的观点认为氟利昂必须一年放一次,其实这个观点是错误的,理解上面有点偏差,...