zoukankan      html  css  js  c++  java
  • 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包:

  • 相关阅读:
    OCP-1Z0-051-V9.02-162题
    OCP-1Z0-051-V9.02-161题
    OCP-1Z0-051-V9.02-160题
    Matlab中矩阵的分解
    OCP-1Z0-051-V9.02-158题
    OCP-1Z0-051-V9.02-157题
    Matlab中特殊的矩阵函数
    求Matlab中矩阵的秩和迹
    Matlab中的条件数
    在android里使用boost c++
  • 原文地址:https://www.cnblogs.com/cangos/p/2317026.html
Copyright © 2011-2022 走看看