ORACLE9i在使用autotrace之前,需要作一些初始设置:

1.用sys用户运行脚本utlxplan.sql创建PLAN_TABLE表
脚本目录:(UNIX:$ORACLE_HOME/rdbms/admin, Windows:%ORACLE_HOME%/rdbms/admin)utlxplan.sql。
SQL> connect sys/sys@sys as sysdba;
SQL> @J:/oracle/product/10.2.0/db_1/RDBMS/ADMIN/utlxplan.sql;
SQL> create public synonym plan_table for plan_table; --建立同义词
SQL> grant all on plan_table to public;--授权所有用户
 
2.用sys用户运行脚本plustrce.sql建立一个角色plustrace
脚本目录:(UNIX:$ORACLE_HOME/sqlplus/admin, Windows:%ORACLE_HOME%/sqlplus/admin)plustrce.sql;
SQL> @J:/oracle/product/10.2.0/db_1/sqlplus/admin/plustrce.sql;

3.将角色plustrace授予需要autotrace的用户;
SQL>grant plustrace to public;

plustrce.sql脚本如下
create role plustrace;
grant select on v_$sesstat to plustrace;
grant select on v_$statname to plustrace;
grant select on v_$mystat to plustrace;
grant select on v_$session to plustrace;
grant plustrace to dba with admin option;
 
4.经过以上步骤的设置,就可以在sql*plus中使用autotrace了,使用非常简单,只要在执行语句之前,执行这样一条命令:
SQL>set autotrace on
即可。

*autotrace功能只能在SQL*PLUS里使用

补充:
1.ORA-01039: 视图基本对象的权限不足的解决方法
1). 8i & 9i中的解决办法:-
grant select any table to scott;
2). 9i and 10g中的解决办法:-
grant select any dictionary to scott;
3). 8i and 9i中,也可显式地把基本表的select权限赋给scott:
grant select on OBJ$ to scott;
grant select on USER$ to scott;
grant select on SEG$ to scott;
grant select on TS$ to scott;
grant select on TAB$ to scott;

2.在SQPPLUS中得到更新成功或者插入成功的记录数
SQL>set feedback 1;
已创建 1 行。

3.在SQPPLUS中得到语句总执行的时间
SQL> set timing on;
已用时间:  00: 00: 00.10

4.AUTOTRACE的几个常用选项
(1)  set autotrace on explain; --只显示执行计划
SQL> set autotrace on explain;
SQL> select count(*) from dept;
  COUNT(*)
----------
         4
执行计划
----------------------------------------------------------
Plan hash value: 2946246213
-----------------------------------------------------------------------------
| Id  | Operation        | Name             | Rows  | Cost (%CPU)| Time     |
-----------------------------------------------------------------------------
|   0 | SELECT STATEMENT |                  |     1 |     1   (0)| 00:00:01 |
|   1 |  SORT AGGREGATE  |                  |     1 |            |          |
|   2 |   INDEX FULL SCAN| DEPTNO_DNAME_IND |     4 |     1   (0)| 00:00:01 |
-----------------------------------------------------------------------------
 
(2)  set autotrace traceonly;  --同set autotrace on 只是不显示查询输出
SQL> set autotrace traceonly;
SQL> set feedback
SQL> set timing off;
SQL> select count(*) from dept;
执行计划
----------------------------------------------------------
Plan hash value: 2946246213
-----------------------------------------------------------------------------
| Id  | Operation        | Name             | Rows  | Cost (%CPU)| Time     |
-----------------------------------------------------------------------------
|   0 | SELECT STATEMENT |                  |     1 |     1   (0)| 00:00:01 |
|   1 |  SORT AGGREGATE  |                  |     1 |            |          |
|   2 |   INDEX FULL SCAN| DEPTNO_DNAME_IND |     4 |     1   (0)| 00:00:01 |
-----------------------------------------------------------------------------
统计信息
----------------------------------------------------------
          0  recursive calls
          0  db block gets
          1  consistent gets
          0  physical reads
          0  redo size
        408  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
 
(3)  set autotrace traceonly explain; 
--比较实用的选项,只显示执行计划,但是与set autotrace on explain;相比不会执行语句,对于仅仅查看大表的Explain Plan非常管用。
SQL> set autotrace traceonly explain;
SQL> select count(*) from dept;
执行计划
----------------------------------------------------------
Plan hash value: 2946246213
-----------------------------------------------------------------------------
| Id  | Operation        | Name             | Rows  | Cost (%CPU)| Time     |
-----------------------------------------------------------------------------
|   0 | SELECT STATEMENT |                  |     1 |     1   (0)| 00:00:01 |
|   1 |  SORT AGGREGATE  |                  |     1 |            |          |
|   2 |   INDEX FULL SCAN| DEPTNO_DNAME_IND |     4 |     1   (0)| 00:00:01 |
-----------------------------------------------------------------------------

(4)  set autotrace on statistics;--只显示统计信息
SQL> set autotrace on statistics;
SQL> select count(*) from dept;
  COUNT(*)
----------
         4
统计信息
----------------------------------------------------
          0  recursive calls
          0  db block gets
          1  consistent gets
          0  physical reads
          0  redo size
        408  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


Oracle的AUTOTRACE功能的更多相关文章

  1. 普通用户开启AUTOTRACE 功能

    AUTOTRACE是一个SQL*Plus工具,用于跟踪SQL的执行计划,收集执行时所耗用资源的统计信息.系统账户本身具有AUTOTRACE,其他账户需要通过手动赋予 一. 用系统账户登录(DBA) S ...

  2. oracle修改审计功能

    oracle修改审计功能 如果没有关闭审计功能,审计日志文件默认保存在位置为$ORACLE_BASE/admin/$ORACLE_SID/adump/ 关闭审计:alter system set au ...

  3. oracle导入导出功能

    1.普通版:oracle导入导出功能:导出exp 用户名/密码@SID file=f:\xx.dmp owner=用户名 导入imp 用户名/密码@SID full=y file=f:\xx.dmp ...

  4. Oracle EBS WMS功能介绍(二)

    Oracle EBS WMS功能介绍(二) (版权声明,本人原创或者翻译的文章如需转载,如转载用于个人学习,请注明出处.否则请与本人联系,违者必究) 出货物流逻辑主要包括 1.      打包.能够进 ...

  5. 用mysql实现类似于oracle dblink的功能

      用mysql实现类似于oracle dblink的功能 首先看看有没有federated 引擎. mysql> show engines; +------------+----------+ ...

  6. Oracle段收缩功能

    1.了解段收缩 2.自动执行Segment Advisor 3.收缩段 1. 了解段收缩 应用场景:如果对一张表频繁执行插入.更新和删除操作,时间长了可能会出现大量碎片,Oracle针对这种场景推出段 ...

  7. mysql和oracle的区别(功能性能、选择、使用它们时的sql等对比)

    一.并发性 并发性是oltp数据库最重要的特性,但并发涉及到资源的获取.共享与锁定. mysql:mysql以表级锁为主,对资源锁定的粒度很大,如果一个session对一个表加锁时间过长,会让其他se ...

  8. aspnetpager+repeater+oracle实现分页功能

    一.设计原理阐述 数据查询分页,这个功能相信大家都很熟悉,通过数据库或其它数据源进行查询操作后,将获得的数据显示到界面上,但是由于数据量太大,不能一次性完全的显示出来,就有了数据分页的需求.这个需求在 ...

  9. Oracle Audit 审计功能的认识与使用

    1.Audit的概念 Audit是监视和记录用户对数据库进行的操作,以供DBA进行问题分析.利用Audit功能,可以完成以下任务: 监视和收集特定数据库活动的数据.例如管理员能够审计哪些表被更新,在某 ...

随机推荐

  1. JQUERY 动态时钟

    <script type="text/javascript" src="script/jquery-1.8.3.min.js"></scrip ...

  2. django–url

    当我们创建了一个项目时,系统为我们创建了一份urlconf, 它可能是这样的: urlpatterns = [ url(r'^admin/', admin.site.urls), ] r'^admin ...

  3. 给jdk写注释系列之jdk1.6容器(8)-TreeSet&NavigableMap&NavigableSet源码解析

    TreeSet是一个有序的Set集合. 既然是有序,那么它是靠什么来维持顺序的呢,回忆一下TreeMap中是怎么比较两个key大小的,是通过一个比较器Comparator对不对,不过遗憾的是,今天仍然 ...

  4. 【Irrlicht鬼火引擎】 认识鬼火引擎

    一.Irrlicht简介 (1)概念 Irrlicht引擎是一个用C++书写的高性能实时3D引擎,可以应用于C++程序或者.NET语言中.通过使用Direct3D(Windows平台).OpenGL ...

  5. 控制器view的延迟加载

  6. 深入理解Java虚拟机博客参考目录

    参考博客:注明请注明出处 深入理解Java虚拟机读书笔记之:第5章 Java虚拟机(Java虚拟机内部结构图,很重要) 深入理解Java虚拟机读书笔记之:第6章 Java class文件: <深 ...

  7. 利用google api生成二维码名片例子

    二维条码/二维码可以分为堆叠式/行排式二维条码和矩阵式二维条码.堆叠式/行排式二维条码形态上是由多行短截的一维条码堆叠而成:矩阵式二维条码以矩阵的形式组成,在矩阵相应元素位置上用“点”表示二进制“1” ...

  8. .net chart(图表)控件的使用-System.Windows.Forms.DataVisualization.dll

    这个案例指在介绍微软这套免费又功能强大的图表控件Microsoft Chart Controls for Microsoft .NET Framework 3.5,通过它,可让您的项目及报表,轻松套用 ...

  9. android apk 逆向中常用工具一览

    关于apk 逆向中的一些工具的使用,看了不少文章,也使用过有很长一段时间了,今天对此做一总结: 几种文件之间的转换命令: 1. odex -> smali java -jar  baksmali ...

  10. PHP学习笔记 - 进阶篇(11)

    PHP学习笔记 - 进阶篇(11) 数据库操作 PHP支持哪些数据库 PHP通过安装相应的扩展来实现数据库操作,现代应用程序的设计离不开数据库的应用,当前主流的数据库有MsSQL,MySQL,Syba ...