Expert oracle database architecture 2nd学习

1、创建login脚本,将linesize、seerveroutput等进行统一设置

define _editor=vi

set serveroutput on size 1000000

set trimspool on set long 5000

set linesize 100 set pagesize 9999

column plan_plus_exp format a80

column golbal_name new_value gname

set termout off

define gname=idle

column global_name new_value gname

select lower(user)||'@'||substr(global_name,1,decode(dot,0,length(global_name),dot-1)) global_name from (select global_name,instr(global_name,'.') dot from global_name);

set sqlprompt '&gname> '

set termout on

2、设置AUTOTRACE,用来显示所执行语句的解释计划及所使用的资源

(1)、使用sysoper或者sysdba登陆sqlplus  :conn / as sysdba;

(2)、执行$ORACLE_HOME/rdbms/admin目录下的utlxplan.sql  : @$ORACLE_HOME/rdbms/admin/utlxplan.sql

(3)、将PLAN_TABLE授权给所有用户,也可以只给特定用户: GRANT ALL ON PLAN_TABLE TO PUBLIC;

(4)、执行$ORACLE_HOME/sqlplus/admin目录下的plustrce.sql  : @$ORACLE_HOME/sqlplus/admin/plustrce.sql

(5)、将PLUSTRACE角色授权给所有用户,也可以只给特定用户: GRANT PLUSTRACE TO PUBLIC;

你能自动的得到一份关于sql优化器执行路径以及语句的执行统计信息的报告。这份报告在成功执行DML(SELECT、UPDATE、MERGE、INSERT、DELETE)语句后产生。它在监控和调优这些语句时非常有效。

关于Autotrace几个常用选项的说明:
SET AUTOTRACE OFF ---------------- 不生成AUTOTRACE 报告,这是缺省模式

SET AUTOTRACE ON EXPLAIN ------ AUTOTRACE只显示优化器执行路径报告

SET AUTOTRACE ON STATISTICS -- 只显示执行统计信息

SET AUTOTRACE ON ----------------- 包含执行计划和统计信息

SET AUTOTRACE TRACEONLY ------ 同set autotrace on,但是不显示查询输出

Autotrace执行计划的各列的涵义

序号

列名

解释

1

ID_PLUS_EXP

每一步骤的行号

2

PARENT_ID_PLUS_EXP

每一步的Parent的级别号

3

PLAN_PLUS_EXP

实际的每步

4

OBJECT_NODE_PLUS_EXP

Dblink或并行查询时才会用到

AUTOTRACE Statistics常用列解释

序号

列名

解释

1

db block gets

buffer  cache中读取的block的数量

2

consistent gets

buffer  cache中读取的undo数据的block的数量

3

physical reads

从磁盘读取的block的数量

4

redo size

DML生成的redo的大小

5

sorts (memory)

在内存执行的排序量

7

sorts (disk)

在磁盘上执行的排序量

3、设置STATSPACK(只有sysdba权限才能设置)

(1)、使用sysdba登陆sqlplus  :conn / as sysdba;

(2)、执行$ORACLE_HOME/rdbms/admin目录下的spcreate.sql  : @$ORACLE_HOME/rdbms/admin/spcreate.sql

(3)、在创建的过程中,需要设置PERFSTAT用户的密码、默认表空间、临时表空间

如果在安装过程中输入错误或者出错,需要使用@$ORACLE_HOME/rdbms/admin/spdrop.sql语句删除PERFSTAT用户和已经安装的视图。在安装过程中会创建一个spcpkg.lis,可以在这个文件中找到安装过程中出现的错误等信息。只要表空间输入没有错误且PERFSTAT用户不存在,STATSPACK都应该能顺利安装完成。

4、自定义脚本

RunStats是本书的作者tom自己写的一个用来比较做相同事情的两种方法差异的脚本,你提供两种不同的方法,其他的都交给Runstats。Runstats只度量3样:

(1)、使用的时间:有用,但是不是最重要的信息

(2)、系统统计信息:

(3)、闩锁(latch):这是报表的关键

正如你将在本书中看到的,latch(闩锁)是一种轻量锁。锁是序列化的设备。序列化的设备是不支持并发的。如果应用程序不支持并发,那伸缩性比较差,只能支持少量的用户,且需要更多的资源。在开发应用时,使用的锁越少,性能就越好。

 要使用Runstats,要可以访问4个视图(v$statname,v$mystat,v$timer和v$latch)。

注意:对以v$开头的视图,不能直接grant

   v$开头的视图是v_$的同义词

   如v$timer是v_$timer的同义词

tom所使用的视图:

create or replace view stats

as select 'STAT...'||a.name name , b.value from v$statname a,  v$mystat b

where a.statistic#=b.statistic#

union all

select 'LATCH.'||name , gets from v$latch

union all

select 'STAT...Elapsed Time',hsecs from v$timer;

创建全局临时表run_stats,用来收集统计信息:

create global temporary table run_stats(runid varchar2(15) , name varchar2(80) , value int) on commit preserve rows;

创建Runstats包:

原文地址:https://www.cnblogs.com/cangos/p/2317026.html