Oracle的AUTOTRACE功能
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功能的更多相关文章
- 普通用户开启AUTOTRACE 功能
AUTOTRACE是一个SQL*Plus工具,用于跟踪SQL的执行计划,收集执行时所耗用资源的统计信息.系统账户本身具有AUTOTRACE,其他账户需要通过手动赋予 一. 用系统账户登录(DBA) S ...
- oracle修改审计功能
oracle修改审计功能 如果没有关闭审计功能,审计日志文件默认保存在位置为$ORACLE_BASE/admin/$ORACLE_SID/adump/ 关闭审计:alter system set au ...
- oracle导入导出功能
1.普通版:oracle导入导出功能:导出exp 用户名/密码@SID file=f:\xx.dmp owner=用户名 导入imp 用户名/密码@SID full=y file=f:\xx.dmp ...
- Oracle EBS WMS功能介绍(二)
Oracle EBS WMS功能介绍(二) (版权声明,本人原创或者翻译的文章如需转载,如转载用于个人学习,请注明出处.否则请与本人联系,违者必究) 出货物流逻辑主要包括 1. 打包.能够进 ...
- 用mysql实现类似于oracle dblink的功能
用mysql实现类似于oracle dblink的功能 首先看看有没有federated 引擎. mysql> show engines; +------------+----------+ ...
- Oracle段收缩功能
1.了解段收缩 2.自动执行Segment Advisor 3.收缩段 1. 了解段收缩 应用场景:如果对一张表频繁执行插入.更新和删除操作,时间长了可能会出现大量碎片,Oracle针对这种场景推出段 ...
- mysql和oracle的区别(功能性能、选择、使用它们时的sql等对比)
一.并发性 并发性是oltp数据库最重要的特性,但并发涉及到资源的获取.共享与锁定. mysql:mysql以表级锁为主,对资源锁定的粒度很大,如果一个session对一个表加锁时间过长,会让其他se ...
- aspnetpager+repeater+oracle实现分页功能
一.设计原理阐述 数据查询分页,这个功能相信大家都很熟悉,通过数据库或其它数据源进行查询操作后,将获得的数据显示到界面上,但是由于数据量太大,不能一次性完全的显示出来,就有了数据分页的需求.这个需求在 ...
- Oracle Audit 审计功能的认识与使用
1.Audit的概念 Audit是监视和记录用户对数据库进行的操作,以供DBA进行问题分析.利用Audit功能,可以完成以下任务: 监视和收集特定数据库活动的数据.例如管理员能够审计哪些表被更新,在某 ...
随机推荐
- Android 自学之画廊视图(Gallery)功能和用法
Gallery与之前讲的Spinner有共同的父类:AbsSpinner,表明Gallery和Spinner都是一个列表框.他们之间的区别在于Spinner显示的是一个垂直的列表框,而Gallery显 ...
- [转]网站优化-IIS7下静态文件的优化
本文转自:http://www.cnblogs.com/Leung/archive/2009/10/26/1590256.html 在网站开发过程中,通常我们会对网站的静态文件做处事,像图片文件,CS ...
- mysql输出的错误提示是法语
参考MySQL用户手册 http://dev.mysql.com/doc/refman/5.5/en/error-message-language.html mysql.ini 文件里头有一个参数叫做 ...
- Oracle_11g中解决被锁定的scott用户的方法(转载)
转自:http://www.2cto.com/database/201402/277206.html Oracle 11g中修改被锁定的用户:scott 在安装完Oracle11g和创建完oracle ...
- LeetCode 242
Valid Anagram Given two strings s and t, write a function to determine if t is an anagram of s. For ...
- (转载)Java NIO:NIO概述(一)
Java NIO:NIO概述 在上一篇博文中讲述了几种IO模型,现在我们开始进入Java NIO编程主题.NIO是Java 4里面提供的新的API,目的是用来解决传统IO的问题.本文下面分别从Java ...
- HTTP状态码解读
1xx:信息 消息 描述 100 Continue 服务器仅接收到部分请求,但是一旦服务器并没有拒绝该请求,客户端应该继续发送其余的请求. 101 Switching Protocols 服务器转换协 ...
- Git - Eclipse 提交工程至 GitHub
1. 在 GitHub 新建一个工程 hello-world,repository 地址是 https://github.com/username/hello-world.git 2. 在 Eclip ...
- CSS之拖拽库2
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.or ...
- PC电脑运行Android模拟器总是弹出“视频源”窗体的原因和解决方案
原因: PC电脑运行Android模拟器时弹出“视频源”窗体,会让你"选择视频设备",如:HP TruevIsion HD,而这个视频设备就是你电脑中的内置摄像头,这个内置摄像头在 ...