获得执行计划方法-一 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.
    典型的,查询在一致读模式下进行检索




相关内容

热门资讯

以军士兵集体丢掉武器抗命,大喊... 据凤凰卫视报道,以色列国防军一军事基地7月30日发生士兵抗命事件,约120名士兵抗议指挥官做法,将武...
蒋成华任商务部副部长 国务院任免国家工作人员。任命蒋成华为商务部副部长。免去蒋成华的商务部国际贸易谈判副代表职务。
伊朗驻华大使:在军事威胁下,不... 新华社北京7月31日电(记者刁慧琳) 伊朗驻华大使法兹里7月28日表示,伊美回到谈判桌的前提是美国必...
伊朗革命卫队在霍尔木兹海峡击中... 当地时间31日,伊朗伊斯兰革命卫队发布声明称,革命卫队海军当天在霍尔木兹海峡击中并扣留了两艘违反禁令...
美媒:特朗普,遇到了一个更强硬... 据《纽约时报》7月29日报道,就在特朗普总统看似放弃战事升级计划几天后,美国再次与伊朗交火。上周末,...
女子做气管镜时不幸身亡,丈夫称... 7月29日,西安刘先生反映妻子在当地医院做支气管镜检查时死亡,看监控时发现医生疑有违规操作。刘先生表...
全网“帮卖西瓜”,然后呢? 近日,河南部分地区西瓜滞销的消息在网上热度很高。很多地方也伸出援手:有景区收购千斤西瓜、免费赠予游客...
美媒:乌克兰袭击伊朗船只,险引... 据《纽约时报》7月28日报道,据伊朗和西方官员称,伊朗曾考虑攻击乌克兰的一个港口,以报复乌克兰对一艘...
20年里,他只画美女,用东方风... 迈进KIM在上海的工作室,迎面是一整墙的美女们。她们像是刚从一场时髦的沙龙里退场,或倚或立,眉宇间是...
Google在港推出AI代理G... 观点网讯:7月29日,Google在香港推出AI代理Gemini Spark,该代理可全天候在后台运...