`
longgangbai
  • 浏览: 7254323 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Oracle 性能调优学习笔记(二)--Statpack(扩展应用帮助文档)

 
阅读更多

 

 

 

  在Oracle的安装目录下$ORACLE_HOME/rdbms/admin/spdoc.txt

 单实例报告

   on Unix:
          SQL>  connect perfstat/perfstat_password
          SQL>  define begin_snap=1
          SQL>  define end_snap=2
          SQL>  define report_name=batch_run
          SQL>  @?/rdbms/admin/spreport

 

   多个实例的报告

      e.g.
          SQL>  connect perfstat/perfstat_password
          SQL>  define dbid=4290976145
          SQL>  define inst_num=1
          SQL>  define begin_snap=1
          SQL>  define end_snap=2
          SQL>  define report_name=batch_run
          SQL>  @?/rdbms/admin/sprepins

 

  SQL语句报告:

          SQL>  connect perfstat/perfstat_password
          SQL>  define begin_snap=39
          SQL>  define end_snap=40
          SQL>  define hashvalue=1988538571
          SQL>  define report_name=batch_sql_run
          SQL>  @sprepsql

 

定制报告的参数,修改sprepcon.sql:

      define num_days = 2:报告快照内容的时间

      define top_n_sql = 65 :报告中SQL 片段所占用的行数.

      define num_rows_per_hash = 4:每一个SQL显示SQL文本的行数.

      define display_rollstat = 'N';是否显示回滚统计信息

      define display_undostat = 'Y';是否统计undo信息.

      define display_file_io = 'Y';是否显示统计的文件IO的信息.
 

  

 

其他重要脚本
    1,spuexp.par,数据导出用参数文件。主要内容如下:

  file=spuexp.dmp log=spuexp.log compress=y grants=y indexes=y rows=y constraints=y owner=PERFSTAT consistent=y

  我们可以使用以下命令导出:

  exp perfstat/perfstat parfile=spuexp.par

  例:

  E:\oracle\product\10.2.0\db_1\RDBMS\ADMIN>exp perfstat/perfstat parfile=spuexp.par

  2,删除数据脚本:spdtab.sql--删除表及同义词。spdusr.sql删除用户

  3,oracle92新增脚本

  1)用于升级statspack对象的脚本,需要sysdba权限,升级前请先备份存在的schema数据。

  spup90.sql:用于升级9.0版本的模式至9.2版本

  spup817.sql:如果从statspack8.1.7升级,需要运行这个脚本

  spup816.sql:从statspack8.1.6升级,需要运行这个脚本,然后运行spup817.sql。

  2)sqrepsql.sql 用于根据给定的SQL Hash值生成SQL报告

6调整statspack的收集门限

  statspack有两种类型的收集选项

  level--级别:控制收集数据的类型

  threshold--门限:设置收集的数据阀值

  都保存在表stats$statspack_parameter中

  1,级别(level)--有三种快照级别,默认值为5

  --查看当前level级别:

  select snap_level from stats$statspack_parameter;

  1)level=0:一般性能统计。包括等待事件,系统事件,系统统计,回滚段统计,行缓存,SGA,会话,锁,缓冲池统计等等。

    2)level=5:在level0的基础上,增加SQL语句的收集。SQL语句收集结果记录在ststs$sql_summary表中。

  3)level=10:增加子锁统计,包括level5的所有内容,还会将附加子锁的入stats$latc_children表中。使用这个级别需要慎重,建议在oracle support的指导下进行。

  可以通过statspack包修改缺省的级别设置,如:

  SQL>execute statspack.snap(i_snap_level=>0,i_modify_parameter=>'true');

  通过这条语句,

  以后的收集级别都将是0级。

  如果你只是想修改本次收集级别,可以忽略i_modify_parameter参数,如下:

  SQL>execute statspack.snap(i_snap_level=>10); (???是10么?)

  2,快照门限--只应用于stats$sql_summary表中获取的Sql语句。

  因为每一个快照都会收集很数据,及sql语句,所以stats$sql_summary很快就会成为statspack中最大的表。

  --查看当前各种门限

  select executions_th,disk_reads_th,parse_calls_th,buffer_gets_th from stats$statspack_parameter;

  各种门限:

  1)executions_th--sql语句执行的数量(默认值=100)

  2)disk_reads_th--sql语句执行的磁盘读入数量(默认值=1000)

  3)parse_calls_th--sql语句执行的解析调用数量(默认值=1000)

  4)buffer_gets_th--sql语句执行的缓冲区获取数量(默认值=10000)

  任何一个门限值超过以上参数就会产生一条记录。

  通过调用statspack.modify_statspack_parameter函数我们可以改变门限的默认值:

  SQL>execute statspack.modify_statspack_parameter(i_buffer_get_th=>100000,i_disk_reads_th;

 

 

 

 

分享到:
评论

相关推荐

    如何理解statpack的报告.pdf

    oracle 如何理解statpack的报告.pdf

    分析Oracle生成Statpack步骤

    CMD>telnet 远程数据库的IP 2、切换到数据库的用户 DQXXDBS01:/> su – oracle 3、用超级用户进入数据库 $ sqlplus “/as sysdba” 4、查看参数,是否可以用job(可以用job进行自动的收集Statpack Report的数据) ...

    statpack报告

    为了博客中可以查看报告内容,可以免费下载

    Oracle诊断案例

    Oracle诊断案例-I/O子系统 1 系统软硬件现状 1 Vmstat数据 2 Statpack数据 2 业务分析 3 数据库性能分析 3 修改建议 4 调整后性能的改善 5 Oracle诊断案例-Spfile案例 5 Oracle诊断案例-SGA与Swap 17 SGA与Swap之二 ...

    statpack:过程统计包

    统计包 过程统计包 安装 npm install statpack -- save 许可证:麻省理工学院

    statpack_statistical package in basic_cellbgq_in_basic_

    statistical analysis package in BASIC.

Global site tag (gtag.js) - Google Analytics