获取执行计划之Autotrace
Autotrace 简介
AUTOTRACE是一项SQL*Plus功能,自动跟踪为SQL语句生成一个执行计划并且提供与该语句的处理有关的统计。
AUTOTRACE的好处是您不必设置跟踪文件的格式,并且它将自动为SQL语句显示执行计划。
Autotrace 选项说明
| 命令 | 输出内容 | 简写 | 是否真实执行 |
|---|---|---|---|
| SET AUTOTRACE OFF | 缺省模式,只显示SQL执行结果 | SET AUTOT OFF | 是 |
| SET AUTOTRACE ON | 显示SQL结果、执行路径和资源消耗 | SET AUTOT ON | 是 |
| SET AUTOTRACE TRACEONLY | 显示SQL结果数量、执行路径和资源消耗 | SET AUTOT TRACE | 是 |
| SET AUTOTRACE TRACEONLY EXPLAN | 只显示SQL执行路径 | SET AUTOT TRACE EXP | Select语句没有,DML会被执行 |
| SET AUTOTRACE TRACEONLY STATISTICS | 只显示资源消耗 | SET AUTOT TRACE STAT |
统计信息

| 统计信息 | 解释 |
|---|---|
| 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 SQL*Net to client | 数据库服务器通过SQL*Net向查询客户端发送的查询结果字节数 |
| bytes received via SQL*Net from client | 通过SQL*Net接受的来自客户端的数据字节数 |
| SQL*Net roundtrips to/from client | 服务器和客户端来回往返通信的Oracle Net messages条数 |
| sorts (memory) | 在内存执行的排序量 |
| sorts (disk) | 在磁盘上执行的排序量 |
| rows processed | 处理的数据的行数 |
Autotrace 优缺点
- 优点
- 可以输出运行时的相关统计信息
- 有多种模式可供选择
- 缺点
- 必须要等SQL语句执行完,才出结果
- 无法看到表被访问了多少次
- 当存在绑定变量时执行计划可能不准

获取执行计划之Autotrace的更多相关文章
- Oracle中获取执行计划的几种方法分析
以下是对Oracle中获取执行计划的几种方法进行了详细的分析介绍,需要的朋友可以参考下 1. 预估执行计划 - Explain PlanExplain plan以SQL语句作为输入,得到这条S ...
- 获取执行计划——EXPLAN PLAN
一般获取执行计划有四种途径:1.执行explain plan,查询结果输出表.2.查询动态性能视图,它显示缓存在库缓存中的执行计划(有时查不出结果是因为执行计划已经不在库缓存中).3.查询AWR或St ...
- oracle获取执行计划及优缺点 详解
一.获取执行计划的6种方法(详细步骤已经在每个例子的开头注释部分说明了):1. explain plan for获取: 2. set autotrace on : 3. statistics_leve ...
- ORACLE 获取执行计划的方法
一.获取执行计划的6种方法(详细步骤已经在每个例子的开头注释部分说明了): 1. explain plan for获取: 2. set autotrace on : 3. statistics_lev ...
- 案例:使用dbms_xplan.display_cursor无法获取执行计划
案例:使用dbms_xplan.display_cursor无法获取执行计划 环境:RHEL 6.5 + Oracle 11.2.0.4 在一次测试中发现使用dbms_xplan.display_cu ...
- oracle中获取执行计划
1. 预估执行计划 - Explain PlanExplain plan以SQL语句作为输入,得到这条SQL语句的执行计划,并将执行计划输出存储到计划表中. 首先,在你要执行的SQL语句前加expla ...
- xplan.sql(本脚本获取执行计划显示执行顺序)
-- ---------------------------------------------------------------------------------------------- -- ...
- oracle 执行计划的获取方法
1.用explain plan for来获取执行计划 explain plan for <sql>; select * from table(dbms_xplan.display()); ...
- EXPLAIN PLAN获取SQL语句执行计划
一.获取SQL语句执行计划的方式 1. 使用explain plan 将执行计划加载到表plan_table,然后查询该表来获取预估的执行计划 2. 启用执行计划跟踪功能,即autotrace功能 3 ...
随机推荐
- cookie & session & token compare
cookie & session & token compare cookie.session.token 区别和优缺点 存储位置 cookie 存在 client 端 session ...
- CSS animation & CSS animation 101
CSS animation 101 如何为 Web 添加动画效果. https://github.com/cssanimation/css-animation-101 https://github.c ...
- App Store Previewer
App Store Previewer App Store 模拟器 https://www.storepreviewer.com/ xgqfrms 2012-2020 www.cnblogs.com ...
- Python学习笔记_斐波那契数列
""" 1.生成100项斐波那契数列 2.求第n项斐波那契数列的值是多少 3.给定终止值,生成此前斐波那契数列 """ # 求第n项斐波那契 ...
- epoll原理详解及epoll反应堆模型
本文转载自epoll原理详解及epoll反应堆模型 导语 设想一个场景:有100万用户同时与一个进程保持着TCP连接,而每一时刻只有几十个或几百个TCP连接是活跃的(接收TCP包),也就是说在每一时刻 ...
- synchronized语法
synchronized( ){ } synchronized 关键字是加锁的意思,用它来修饰方法就表示给该方法加了锁,从而达到线程同步的效果;用它来修饰代码块就表示给该代码块加了锁,从而达到线程同步 ...
- 快速入门Redis调用Lua脚本及使用场景介绍
Redis 是一种非常流行的内存数据库,常用于数据缓存与高频数据存储.大多数开发人员可能听说过redis可以运行 Lua 脚本,但是可能不知道redis在什么情况下需要使用到Lua脚本. 一.阅读本文 ...
- Go的指针
目录 指针 一.指针的声明 二.指针的默认值(Zero Value) 三.指针的解引用 四.向函数传递指针参数 1.非 数组/切片 指针传参 2.数组/切片 指针传参 五.Go不支持指针运算 指针 指 ...
- lambda表达式在python和c++中的异同
Lambda表达式是干么的?.lambda表达式首先是一个表达式,是一个函数对象一个匿名函数,但不是函数.现在流行语言例如:JS.PHP都支持一种和面向过程.面向对象并列的函数式编程,lambda就是 ...
- SpringCloud组件
1.Hystrix 1.1.简介 Hystrix,英文意思是豪猪,全身是刺,看起来就不好惹,是一种保护机制. Hystrix也是Netflix公司的一款组件. 主页:https://github.co ...