设置sql*plus的autotrace(摘自Oracle编程艺术)

 AUTOTRACE是Sql*Plus中的一个工具,可以显示所执行查询的解释计划(explain plan)以及所用的资源。

配置autotrace的方法不止一种,以下是《Oracle编程艺术》一书中介绍的方法:

1)作为system登录SQL*Plus,运行[ORACLE_HOME]/rdbms/admin/utlxplan.sql

rem 
rem $Header: utlxplan.sql 
29 - oct - 2001.20 : 28 : 58  mzait  Exp  $ xplainpl.sql 
rem 
Rem Copyright (c) 
1988 2001 , Oracle Corporation.   All  rights reserved.  
Rem NAME
REM    UTLXPLAN.SQL
Rem  
FUNCTION
Rem  NOTES
Rem  MODIFIED
Rem     mzait      
10 / 26 / 01    -   add  keys  and  filter predicates  to  the  plan   table
Rem     ddas       
05 / 05 / 00    -  increase length  of  options  column
Rem     ddas       
04 / 17 / 00    -   add  CPU, I / O cost, temp_space columns
Rem     mzait      
02 / 19 / 98   -    add  distribution method  column
Rem     ddas       
05 / 17 / 96   -   change search_columns  to   number
Rem     achaudhr   
07 / 23 / 95   -   PTI:  Add  columns partition_{start, stop, id}
Rem     glumpkin   
08 / 25 / 94   -   new optimizer fields
Rem     jcohen     
11 / 05 / 93   -   merge changes  from  branch  1.1 . 710.1   -   9 / 24
Rem     jcohen     
09 / 24 / 93   -  # 163783   add  optimizer  column
Rem     glumpkin   
10 / 25 / 92   -   Renamed  from  XPLAINPL.SQL 
Rem     jcohen     
05 / 22 / 92   -  # 79645   -   set  node width  to   128  (M_XDBI  in  gendef)
Rem     rlim       
04 / 29 / 91   -          change  char   to   varchar2  
Rem   Peeler     
10 / 19 / 88   -  Creation
Rem
Rem This 
is  the format  for  the  table  that  is  used  by  the EXPLAIN  PLAN
Rem statement.  The explain statement requires the presence 
of  this 
Rem 
table   in   order   to  store the descriptions  of  the row sources.

create   table  PLAN_TABLE (
    statement_id     
varchar2 ( 30 ),
    
timestamp         date,
    remarks          
varchar2 ( 80 ),
    operation        
varchar2 ( 30 ),
    options           
varchar2 ( 255 ),
    object_node      
varchar2 ( 128 ),
    object_owner     
varchar2 ( 30 ),
    
object_name        varchar2 ( 30 ),
    object_instance numeric,
    object_type     
varchar2 ( 30 ),
    optimizer       
varchar2 ( 255 ),
    search_columns  
number ,
    id        numeric,
    parent_id    numeric,
    position    numeric,
    cost        numeric,
    cardinality    numeric,
    bytes        numeric,
    other_tag       
varchar2 ( 255 ),
    partition_start 
varchar2 ( 255 ),
        partition_stop  
varchar2 ( 255 ),
        partition_id    numeric,
    other        
long ,
    distribution    
varchar2 ( 30 ),
    cpu_cost    numeric,
    io_cost        numeric,
    temp_space    numeric,
        access_predicates 
varchar2 ( 4000 ),
        filter_predicates 
varchar2 ( 4000 ));


2)创建一个表plan_table的同义词:

CREATE   PUBLIC  SYNONYM PLAN_TABLE  FOR  PLAN_TABLE;

3)授权,使任何人都可以使用SQL*Plus进行跟踪,这样就不需要每个用户都安装自己的计划表:

    GRANT   all   on  plan_table  to   public ;

4)创建并授予plustrace角色:
   作为sys或sysdba登录SQL*Plus,运行[ORACLE_HOME]/sqlplus/admin/plustrce.sql

--
--
 Copyright (c) Oracle Corporation 1995, 2000.  All Rights Reserved.
--
--
 NAME
--
   plustrce.sql
--
--
 DESCRIPTION
--
   Creates a role with access to Dynamic Performance Tables
--
   for the SQL*Plus SET AUTOTRACE ... STATISTICS command.
--
   After this script has been run, each user requiring access to
--
   the AUTOTRACE feature should be granted the PLUSTRACE role by
--
   the DBA.
--
--
 USAGE
--
   sqlplus "/ as sysdba" @plustrce
--
--
   Catalog.sql must have been run before this file is run.
--
   This file must be run while connected to a DBA schema.

set  echo  on

drop  role plustrace;
create  role plustrace;

grant   select   on  v_$sesstat  to  plustrace;
grant   select   on  v_$statname  to  plustrace;
grant   select   on  v_$session  to  plustrace;
grant  plustrace  to  dba  with  admin  option ;

set  echo  off


   同时,将该角色授予public, 即:

grant  plustrace  to   public ;


关于autotrace:
    AUTOTRACE会自动生成一个报告,其中可能列出SQL优化器所用的执行路径,以及语句的执行统计信息。成功执行SQL DML(即select,delete,update,merge和insert)语句后就会生成这个报告。它对于监视并调优这些语句的性能很有帮助。

 


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值