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

一. 用系统账户登录(DBA)

  1. SQL> set autotrace traceonly
  2. SQL> select * from hr.jobs;
  3.  
  4. 19 rows selected.
  5.  
  6. Execution Plan
  7. ----------------------------------------------------------
  8. Plan hash value: 944056911
  9.  
  10. --------------------------------------------------------------------------
  11. | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
  12. --------------------------------------------------------------------------
  13. | 0 | SELECT STATEMENT | | 19 | 627 | 3 (0)| 00:00:01 |
  14. | 1 | TABLE ACCESS FULL| JOBS | 19 | 627 | 3 (0)| 00:00:01 |
  15. --------------------------------------------------------------------------
  16.  
  17. Statistics
  18. ----------------------------------------------------------
  19. 0 recursive calls
  20. 0 db block gets
  21. 9 consistent gets
  22. 0 physical reads
  23. 0 redo size
  24. 1452 bytes sent via SQL*Net to client
  25. 396 bytes received via SQL*Net from client
  26. 3 SQL*Net roundtrips to/from client
  27. 0 sorts (memory)
  28. 0 sorts (disk)
  29. 19 rows processed
  30.  
  31. SQL>

二.授予其他用户AUTOTRACE 功能

2.1 创建基础表  运行$ORACLE_HOME/rdbms/admin/utlxplan脚本来创建plan_table

  1. SQL> conn /as sysdba --用系统账户登录
  2. Connected.
  3. SQL> start $ORACLE_HOME/rdbms/admin/utlxplan --执行utlxplan脚本
  4.  
  5. Table created.
  6.  
  7. SQL> create public synonym plan_table for plan_table;--为表plan_table创建公共同义词
  8.  
  9. Synonym created.
  10.  
  11. --如果需要限制Autotrace权限,可以把对public的授权改为对特定user的授权。
  12. SQL> grant all on plan_table to public;--将同义词表plan_table授予给所有用户
  13.  
  14. Grant succeeded.
  15.  
  16. SQL>

2.2 创建角色  运行$ORACLE_HOME/sqlplus/admin/plustrce.sql脚本

  1. SQL> start $ORACLE_HOME/sqlplus/admin/plustrce.sql --执行创建角色的脚本
  2. SQL>
  3. --以下是脚本执行过程:首先 删除PLUSTRACE角色,重建PLUSTRACE角色,赋予权限
  4. SQL> drop role plustrace;
  5. drop role plustrace
  6. *
  7. ERROR at line 1:
  8. ORA-01919: role 'PLUSTRACE' does not exist
  9.  
  10. SQL> create role plustrace;
  11.  
  12. Role created.
  13.  
  14. SQL>
  15. SQL> grant select on v_$sesstat to plustrace;
  16.  
  17. Grant succeeded.
  18.  
  19. SQL> grant select on v_$statname to plustrace;
  20.  
  21. Grant succeeded.
  22.  
  23. SQL> grant select on v_$mystat to plustrace;
  24.  
  25. Grant succeeded.
  26.  
  27. SQL> grant plustrace to dba with admin option;
  28.  
  29. Grant succeeded.
  30.  
  31. SQL>
  32. SQL> set echo off
  33. SQL>

2.3 角色的授予

  在创建角色后,DBA首先被授予了该角色,且可以将角色授予其它组和用户。可以手工把plustrace授予给public,则该数据库内所有的用户都将拥有plustrace角色的权限。也可以单独授予给某个组和用户。

  1. --授予给单独用户
  2. SQL> grant plustrace to hr;
  3.  
  4. Grant succeeded.
  5.  
  6. --授予给所有用户
  7. SQL> grant plustrace to public;
  8.  
  9. Grant succeeded.
  10.  
  11. SQL>

  现在所有用户即可使用autotrace 功能

三、AUTOTRACE的几个选项

  1. --在sql提示符下输入set autot后将会给出设置autotrace的提示,如下:
  2. SQL> set autot
  3. Usage: SET AUTOT[RACE] {OFF | ON | TRACE[ONLY]} [EXP[LAIN]] [STAT[ISTICS]]
  4.  
  5. set autotrace off :缺省值,将不生成autotrace 报告
  6. set autotrace on :包含执行计划和统计信息
  7. set autotrace traceonly :等同于set autotrace on,但不显示查询输出的结果
  8. set autotrace on explain :只显示优化器执行路径报告
  9. set autotrace on statistics :只显示执行统计信息

四.hr用户示例

  1. SQL> conn hr/hr123
  2. Connected.
  3. SQL> set autotrace traceonly
  4. SQL> select * from jobs;
  5.  
  6. 19 rows selected.
  7.  
  8. Execution Plan
  9. ----------------------------------------------------------
  10. Plan hash value: 944056911
  11.  
  12. --------------------------------------------------------------------------
  13. | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
  14. --------------------------------------------------------------------------
  15. | 0 | SELECT STATEMENT | | 19 | 627 | 3 (0)| 00:00:01 |
  16. | 1 | TABLE ACCESS FULL| JOBS | 19 | 627 | 3 (0)| 00:00:01 |
  17. --------------------------------------------------------------------------
  18.  
  19. Statistics
  20. ----------------------------------------------------------
  21. 1 recursive calls
  22. 0 db block gets
  23. 9 consistent gets
  24. 0 physical reads
  25. 0 redo size
  26. 1452 bytes sent via SQL*Net to client
  27. 396 bytes received via SQL*Net from client
  28. 3 SQL*Net roundtrips to/from client
  29. 0 sorts (memory)
  30. 0 sorts (disk)
  31. 19 rows processed
  32.  
  33. SQL>

普通用户开启AUTOTRACE 功能的更多相关文章

  1. Oracle的AUTOTRACE功能

    ORACLE9i在使用autotrace之前,需要作一些初始设置: 1.用sys用户运行脚本utlxplan.sql创建PLAN_TABLE表 脚本目录:(UNIX:$ORACLE_HOME/rdbm ...

  2. WordPress主题开发:开启feed功能

    开启feed功能 步骤一:在模版文件的<head></head>元素中添加wp_head()函数,且wp_head()函数要放在</head>标签之前,而且紧邻&l ...

  3. Android开启OTG功能/USB Host API功能

    Android USB 模式简介 设备模式 当计算机或其他USB主机需要连接安卓设备时,此时安卓设备是作为"USB设备"角色的,在计算机上显示为 USB 外设.现在的安卓设备已经被 ...

  4. PHP开启cURL功能

    PHP开启cURL功能 在php.ini中开启 确定php扩展目录下有php_curl.dll类库 在php.int中找到扩展库所在目录 判断目录下是否有php_curl.dll 没有的话去搜索下载 ...

  5. 详解MySQL的用户密码过期功能

    这篇文章主要为大家详细介绍了MySQL的用户密码过期功能的相关资料,需要的朋友可以参考下   Payment Card Industry,即支付卡行业,PCI行业表示借记卡.信用卡.预付卡.电子钱包. ...

  6. mysql开启全文索引功能

    注意:全文检索模块需要mysql开启全文索引功能,开启方法:修改mysql配置文件:window服务器为my.ini,linux服务器为my.cnf,在 [mysqld] 后面加入一行“ft_min_ ...

  7. CDC ->> 在某个SQL Server中开启CDC功能

    USE AdventureWorks;GO--开启某个数据库的CDC功能EXEC sys.sp_cdc_enable_db;GO--is_cdc_enabled栏位为1代表开启CDC功能了SELECT ...

  8. Centos6.4 为用户添加sudo功能

    sudo即super user do,以超级管理员的方式运行命令.使用时,只需在命令最前面加上sudo即可. 要为用户添加sudo功能,需要修改sudo的配置文件: vi /etc/sudoers ( ...

  9. apache 开启压缩功能

    apache如何开启压缩功能. 1,首先先确认是安装deflatte模块.如果未安装,可以重新编译apache添加参数--enable-deflate=shared ,或者扩展安装deflate模块, ...

随机推荐

  1. The method load(Class, Serializable) in the type HibernateTemplate is not applicable for the arguments (Class, int)

    引入别人的项目发现利用HibernateTemplate的load的方法报错了.错误提示为: The method load(Class, Serializable) in the type Hibe ...

  2. linux 文件夹权限及umask

    先创建一个目录,看看权限: $ ll 总用量 drwxrwxr-x huangxm huangxm 2月 : ./ drwxr-xr-x huangxm huangxm 2月 : ../ drwxrw ...

  3. Objective-C ,ios,iphone开发基础:3分钟教你做一个iphone手机浏览器

    第一步:新建一个Single View工程: 第二步:新建好工程,关闭arc. 第三步:拖放一个Text Field 一个UIButton 和一个 UIWebView . Text Field 的ti ...

  4. redis中5种数据结构的使用

    一.redis 数据结构使用场景 原来看过 redisbook 这本书,对 redis 的基本功能都已经熟悉了,从上周开始看 redis 的源码.目前目标是吃透 redis 的数据结构.我们都知道,在 ...

  5. 关于Linux系统和Windows系统中文件夹的命名规范

    Windows系统中. 1.在创建文件夹的时候不能以"."开头(但是文件以多个点开头并且还有其他合法字符的话就是合法的) 但是在windows系统中确实见过以一个点".& ...

  6. C# 32位md5

    /// <summary> /// 获得32位的MD5加密 /// </summary> /// <param name="str">加密字符串 ...

  7. 在c#中使用log4net

    1.从log4net官网下载最新的log4net.dll 2.设置配置文件在app.config <?xml version="1.0"?> <configura ...

  8. Asp.Net生命周期

    最近回顾了一些新知识,在网上搜索了一下生命周期的相关知识:在这里与大家一起分享一下: Asp.net是微软.Net战略的一个组成部分.它相对以前的Asp有了很大的发展,引入了许多的新机制.本文就Asp ...

  9. 剑指offer——替换字符串

    总结:先计算出总共有多少空格,count++:然后从后往前遍历,每遇到一个空格,count--:       替换空格 参与人数:2119时间限制:1秒空间限制:32768K 通过比例:20.23% ...

  10. 过程式编程 drawShapes

    // // main.m // 3.2.1 过程式编程 #import <Foundation/Foundation.h> typedef enum { kCircle, kRectang ...