AutoTrace

开发者福利!热门AI工具限时免费用 购周边即赠Coding Plan Lite,Claude Code、Cursor等20+工具畅享,效率翻倍! 阅读详情

一、   AUTOTRACE是一个SQL*Plus工具,用于跟踪SQL的执行计划,收集执行时所耗用资源的统计信息,是SQL优化工具之一,AutoTRACE自动跟踪为 SQL 语句生成一个执行计划并且提供与该语句的处理有关的统计。SQL*Plus AUTOTRACE 可以用来替代 SQL Trace使用,AUTOTRACE 的好处是您不必设置跟踪文件的格式,并且它将自动为 SQL 语句显示执行计划。然而,AUTOTRACE 分析和执行语句;而EXPLAIN PLAN仅分析语句。使用AUTOTRACE不会产生跟踪文件。SQLPLUS的AutoTrace是分析SQL的执行计划,执行效率的一个非常简单方便的工具,在绝大多数情况下,也是非常有用的工具。利用 AutoTrace工具提供的SQL执行计划和执行状态可以为我们优化SQL的时候提供优化的依据,以及优化效果的明显的对比效果。

二、AutoTrace进行优化的注意事项

1.可以通过设置timing来得到执行SQL所用的时间,但不能仅把这个时间来当作SQL执行效率的唯一量度。这个时间会包括进行AUTOTRACE的一些 时间消耗,所以这个时间并不仅仅是SQL执行的时间。这个时间会与SQL执行时间有一定的误差,而在SQL比较简单的时候尤为明显。

2. 判断SQL效率高低应该通过执行SQL执行状态里面的逻辑读的数量
     逻辑读 =(dbblock gets+ consistent gets)
总结

AutoTrace是ORACLE中优化工具中最基本的工具,虽然功能比较有限,但足以满足我们日常工作的需要。

  在Oracle9i中需要运行$ORACLE_HOME\RDBMS\ADMIN\utlxplan.sql脚本生成plan_table表;
  在Oracle10g中PLAN_TABLE不再需要创建,Oracle缺省增加了一个字典表PLAN_TABLE$,然后基于PLAN_TABLE$创建公用同义词供用户使用

关于Autotrace几个常用选项的说明:
SET AUTOTRACE OFF ---------------- 不生成AUTOTRACE 报告,这是缺省模式
SET AUTOTRACE ON EXPLAIN ------ AUTOTRACE只显示优化器执行路径报告
SET AUTOTRACE ON STATISTICS -- 只显示执行统计信息
SET AUTOTRACE ON ----------------- 包含执行计划和统计信息
SET AUTOTRACE TRACEONLY ------ 同set autotrace on,但是不显示查询输出

三、启用 AUTOTRACE 功能

下面给出启用AUTOTRACE 功能步骤。

1、创建基础表

    运行$ORACLE_HOME/rdbms/admin/utlxplan脚本来创建plan_table  

 -使用system帐户登陆-执行utlxplan脚本

   为表plan_table创建公共同义词

 SQL>createpublicsynonym plan_table for plan_table;  

 

    Synonym created.

  将同义词表plan_table授予给所有用户

    SQL>grant all on plan_table to public;     

 

    Grant succeeded.

 

2、创建角色

    运行$ORACLE_HOME/sqlplus/admin/plustrce.sql脚本

  使用sysdba帐户登陆.-执行创建角色的脚本  

SQL> @$ORACLE_HOME/sqlplus/admin/plustrce.sql
SQL>
SQL> drop role plustrace;

Role dropped.

SQL> create role plustrace;

Role created.

SQL>
SQL> grant select on v_$sesstat to plustrace;

Grant succeeded.

SQL> grant select on v_$statname to plustrace;

Grant succeeded.

SQL> grant select on v_$mystat to plustrace;

Grant succeeded.

SQL> grant plustrace to dba with admin option;

Grant succeeded.

SQL>
SQL> set echo off

       

3、角色的授予

    在创建角色后,DBA首先被授予了该角色,且可以将角色授予其它组和用户。可以手工把plustrace授予给public,

    则该数据库内所有的用户都将拥有plustrace角色的权限。也可以单独授予给某个组和用户

         授予给所有用户

     SQL> show user
USER is "SYS"
SQL> grant plustrace to public;

Grant succeeded.


        授予给单独用户

    SQL>  grant plustrace to scott;

Grant succeeded.
;

    

    完成上述设置之后即可使用autotrace 功能

4、AUTOTRACE的几个选项

        在sql提示符下输入set autot后将会给出设置autotrace的提示,如下

       

        scott@ORCL>set autot

        Usage:SET AUTOT[RACE] {OFF|ON| TRACE[ONLY]} [EXP[LAIN]] [STAT[ISTICS]]


        set autotraceoff :缺省值,将不生成autotrace 报告

        set autotrace on:包含执行计划和统计信息

        set autotracetraceonly :等同于setautotrace on,但不显示查询输出的结果

        set autotrace onexplain :只显示优化器执行路径报告

        set autotrace onstatistics :只显示执行统计信息

       

       SQL> set autotrace on; 

       

SQL> select * from emp  where ename='SCOTT';

     EMPNO ENAME      JOB              MGR HIREDATE         SAL       COMM
---------- ---------- --------- ---------- --------- ---------- ----------
    DEPTNO
----------
      7788 SCOTT      ANALYST         7566 19-APR-87       3000
        20



Execution Plan
----------------------------------------------------------
Plan hash value: 3956160932

--------------------------------------------------------------------------
| Id  | Operation         | Name | Rows  | Bytes | Cost (%CPU)| Time     |
--------------------------------------------------------------------------
|   0 | SELECT STATEMENT  |      |     1 |    87 |     3   (0)| 00:00:01 |
|*  1 |  TABLE ACCESS FULL| EMP  |     1 |    87 |     3   (0)| 00:00:01 |
--------------------------------------------------------------------------

Predicate Information (identified by operation id):
---------------------------------------------------

   1 - filter("ENAME"='SCOTT')

Note
-----
   - dynamic sampling used for this statement


Statistics
----------------------------------------------------------
        451  recursive calls
          0  db block gets
         90  consistent gets
          7  physical reads 物理读——执行SQL的过程中,从硬盘上读取的数据块个数
          0  redo size重做数——执行SQL的过程中,产生的重做日志的大小
        824  bytes sent via SQL*Net to client
        385  bytes received via SQL*Net from clientt 通过sql*net发送给客户端的字节数
          2  SQL*Net roundtrips to/from client通过sql*net接受客户端的字节数
          6  sorts (memory)在内存中发生的排序
          0  sorts (disk)不能在内存中发生的排序,需要硬盘来协助
          1  rows processed 结果的记录数

oracle执行计划方式一:Autotrace自动跟踪功能 4、physical reads 物理读:物理读从磁盘中读取数据块得数量,主要发生得原因:1、数据库高速缓存中不存在这些块。这个值越高说明从磁盘请求大量的数据到buffer cache总,通常意味着存在大量的全表扫描sql语句,会影响数据库的性能,尽量避免全表扫描,全表扫描的sql应添加相应索引,来优化sql;1、recursive calls:用户和系统级别生成得递归调用数,简而言之就是sql中得sql。3、consistent gets 逻辑读:逻辑读从内存中读取数据块的数量,, 阅读详情

相关推荐

别再手动描图了!用SolidWorks 2024草图图片自动追踪功能快速建模

本文详细介绍了SolidWorks 2024的Autotrace插件如何通过自动追踪技术将手绘图、扫描图或参考图纸快速转换为可编辑的矢量草图,显著提升工业设计效率。该技术结合计算机视觉与参数化建模,精度高达0.1mm,处理时间仅为传统方法的1/10,适用于逆向工程和创意设计等多种场景。

gpt4scribbler的博客 934

oracle使用autotrace 功能

AUTOTRACE是一个SQL*Plus工具,用于跟踪SQL的执行计划,收集执行时所耗用资源的统计信息,是SQL优化工具之一,下面给出启用AUTOTRACE 功能步骤。

普通用户使用set autotrace

关于set autotrace SET AUTOTRACE OFF ---------------- 不生成AUTOTRACE 报告,这是缺省模式 SET AUTOTRACE ON EXPLAIN ------ AUTOTRACE只显示优化器执行路径报告 SET AUTOTRACE ON STATISTICS -- 只显示执行统计信息 SET AUTOTRACE ON -------------

gumengkai的博客 1728

AutoTrace 0.31.1

矢量化,包含执行程序与C++源码。 a program for converting bitmap to vector graphics. Inputformats BMP, TGA, PNM, PPM, PGM, PBM and those supported by ImageMagick. Exportformat Postscript, svg, xfig, swf, pstoedit, emf, dxf, cgm, mif, p2e and sk

【亲测免费】 探索AutoTrace:将位图转化为矢量图形的神奇工具

AutoTrace是一个强大的工具,专门用于将位图图像转换为矢量图形。它支持多种输入和输出格式,并提供了一系列的处理选项,如颜色减少、边缘检测等,让你能够轻松地将像素化的图片转化为可编辑的线条和形状。 ## 项目技术分析 AutoTrace的核心是其高效的颜色处理和图像识别算法。通过轮廓和中线追踪,该项目能精准地捕捉到图像的几何特征。此外,它还支持色度降噪,确保了在复杂背景下的清晰度。配合像l

gitblog_00066的博客 1107

AutoTrace 开源项目推荐

AutoTrace 是一个开源的位图到矢量图转换工具,主要用于将位图图像转换为矢量图形。该项目的主要编程语言是C语言,适用于多种操作系统和编译器,包括GNU/Linux、HP-UX、Solaris、Windows 98、Windows NT、Windows 2000、macOS 和 OS/2 4.0。 ## 项目核心功能 AutoTrace 的核心功能包括: 1. **位图到矢量图转换**:

gitblog_00014的博客 501

启用 AUTOTRACE 功能

启用 AUTOTRACE 功能

fsfsdfsdw的博客 1759

oracle autotrace使用

AUTOTRACE是一项SQL*Plus功能,自动跟踪为SQL语句生成一个执行计划并且提供与该语句的处理有 的统计。SQL*Plus AUTOTRACE可以用来替代SQL Trace使用,AUTOTRACE的好处是您不必设置跟踪文件的格式,并且它将自动为SQL语句显示执行计划。然而,AUTOTRACE分析和执行语句;而EXPLAIN PLAN仅分析语句。使用AUTOTRACE不会产生跟踪文件。

1122

Oracle autotrace使用说明

一、启用Autotrace功能   任何以SQL*PLUS连接Session都可以用Autotrace,不过还是要做一些设置的,否则可能报错。   1、报错示例: SQL :> set autotrace on; SP2-0613: Unable to verify PLAN_TABLE format or existence SP2-0611: Error e...

梦凝哲雪 682

ORACLE之autotrace使用

 SQLPLUS的AutoTrace是分析SQL的执行计划,执行效率的一个非常简单方便的工具,在绝大多数情况下,也是非常有用的工具。利用AutoTrace工具提供的SQL执行计划和执行状态可以为我们优化SQL的时候提供优化的依据,以及优化效果的明显的对比效果。 用法: SET AUTOT[RACE] {OFF | ON | TRACE[ONLY]} [EXP[LAIN]] [STAT[ISTI

-··/赛文的星空/..'' 1989

Oracle Sqlplus AUTOTRACE 设置

AUTOTRACE是SQLPlus 的一个工具,可以显示所执行查询的解释计划(explain plan) 以及所用的资源。 一、配置AUTOTRACE 1、进入$ORACLE_HOME/rdbms/admin目录 其中$ORACLE_HOME为你的Oracle的安装目录,在安装过程中环境变量中应该已经配置。 2、以SYS用户或具有SYSDBA角色的用户登录SQLPlus [oracle@oradb ~]cd /u01/app/oracle/product/11.2.0/db_1/rdbm

Stayhungry,Stayfoolish. 1144

在sqlplus中执行set autotrace on 报cannot set autotrace 错误解决方法

引用网址:http://www.cnblogs.com/cangos/archive/2011/12/19/2293935.html   今天在一台机器中想分析下执行计划,但是在sqlplus中输入set autotrace on 报cannot set autotrace 错误 解决方法如下: 首先必须采用用Oracle的sqlplus登陆sys账号 sqlplus " sys/s...

cpu521的专栏 298

AUTOTRACE

*环境:windowsXP + Oracle10gR2 *AutoTRACE是分析SQL的执行计划,执行效率的一个非常简单方便的工具 */ AUTOTRACE是一项 SQL*Plus 功能,自动跟踪为 SQL 语句生成一个执行计划并且提供与该语句的处理有关的统计。 SQL*Plus AUTOTRACE 可以用来替代 SQL Trace 使用,AUTOTRACE 的好处是您不必设置跟

Shane_Wang的专栏 731

set autotrace on

 字体: 小 中 大 | 打印 发表于: 2006-12-13 15:25    作者: maobole    来源: CNOUG博客首页 请教各位,查阅网上资料,可以在安装oracle的机器上用sqlplus登录,并可以设置set autotrace on,并显示正确。但,如果用pl/sql developer登录,然后在command window设置set autotrace o

技术收藏 2454

Cannot SET AUTOTRACE

Cannot SET AUTOTRACE

mingdang95的博客 633

AUTOTRACE用法说明

AUTOTRACE一般有以下用法: 一、输出查询结果 1.set autotrace on                   输出结果和访问路径以及统计信息 2.set autotrace on explain     输出结果和访问路径 3.set autotrace on statistics  输出结果和统计信息 二、不输出查询结果 1.set autotrac

sco的自我修养 3261
上一篇: 安装vmtools之后任然不能在虚拟机和主机之间复制粘贴的问题
下一篇: Oracle的优化器的RBO和CBO方式
liujiahuan1990
博客等级 码龄15年 14粉丝 12原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值