ORACLE性能诊断―学习statspack笔记(二)[概述]

原创 2004年03月08日 11:26:00

ORACLE性能诊断―学习statspack笔记(二)[概述]<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

 

作者:刘颖博

时间:2004-3-3

mailliuyingbo@126.com,请指正

 

转载请注明出处及作者

 

ORACLE性能诊断涉及对象

 

A.      服务器、网络以及磁盘(外部的环境)

B.      实例(SGA,后台进程)

C.      对象(表,索引,段……)

D.     SQL

E.      设计(指的是应用的设计,这部分一般说来是很难改变了)

 

ORACLE性能诊断要遵循上面的顺序,先察看服务器是否存在问题,主要从CPURAMDISK配置是否存在问题,检查操作系统的核心参数的设置等等;如果是跨地域的进行共享的多个ORACLE,网络通信性能也是非常的关键的,ORACLE利用的是TNSTransparent Network Substrate 透明网络层)提供数据库之间的分布传输;另外影响ORACLE相应时间的最大的单独组成部分是磁盘I/O,能够减少磁盘I/O的任何事情都会对ORACLE的性能产生正面的影响,比如改变ORACLE初始化参数,调整相应的SQL等;对于ORACLE的实例调整应该注意的问题是,过载的ORACLESGA会导致严重的性能问题,对于ORACLE实例的调整主要包括:初始化参数、数据缓冲存储(DEFAULTKEEPRECYCLE)和SGA中共享池和库缓存等;还有就是ORACLE对象的调整,包括存储参数等等;最后是SQL语句的调整。

 

STATSPACK概述

 

       STATSPACK来源在ORACLE最早版本就存在的UTLBSTATUTLESTAT工具。开始的BSTAT-ESTAT工具就可以直接从ORACLE的内存结构中获取信息。

       STATSPACK通过获取数据库当前状态的快照来进行工作。大部分的情况,我们会规划一个以小时为单位来收集数据的JOB,并在需要的时候请求附加快照。

       当我们获取快照时,STATSPACK会从SGA内部的RAM内存结构中采样,并记录到相应的STATSPACK表中,注意的是,大多数情况下,SGA中的V$视图与相应的的STATSPACK表之间存在直接的对应关系,比如:

 

V$SYSSTAT --------->STATS$SYSSTAT

 

SQL> DESC V$SYSSTAT

 Name                                      Null?    Type

 ----------------------------------------- -------- ----------------------------

 STATISTIC#                                         NUMBER

 NAME                                               VARCHAR2(64)

 CLASS                                              NUMBER

 VALUE                                              NUMBER

 

SQL> DESC STATS$SYSSTAT

 Name                                      Null?    Type

 ----------------------------------------- -------- ----------------------------

 SNAP_ID                                   NOT NULL NUMBER(6)

 DBID                                      NOT NULL NUMBER

 INSTANCE_NUMBER                           NOT NULL NUMBER

 STATISTIC#                                NOT NULL NUMBER

 NAME                                      NOT NULL VARCHAR2(64)

 VALUE                                              NUMBER

      

在理解STATSPACK工具的时候,很关键的是要明白通过STATSPACK快照收集的信息是累计值,从V$视图中收集到起始时间的数据库信息,然后进行持续累加,知道实例中止,我想,这也许就应该是STATSPACK不能产生两张跨越SHUTDOWN的快照的报告的原因吧。

       对应STATSPACK存在一系列的STATSPACK表,不同的ORACLE版本会有一定的差异。这些表大体上分为控制表、参数表、事件表、事务处理表、并行服务器表、概要表、系统表等等

下面是我列出的ORACLE9ISTATSPACKE表:

SQL> select table_name from dba_tables where table_name like 'STATS$%';

 

TABLE_NAME

------------------------------

STATS$DATABASE_INSTANCE

STATS$LEVEL_DESCRIPTION

STATS$SNAPSHOT

STATS$DB_CACHE_ADVICE

STATS$FILESTATXS

STATS$TEMPSTATXS

STATS$LATCH

STATS$LATCH_CHILDREN

STATS$LATCH_PARENT

STATS$LATCH_MISSES_SUMMARY

STATS$LIBRARYCACHE

 

TABLE_NAME

------------------------------

STATS$BUFFER_POOL_STATISTICS

STATS$ROLLSTAT

STATS$ROWCACHE_SUMMARY

STATS$SGA

STATS$SGASTAT

STATS$SYSSTAT

STATS$SESSTAT

STATS$SYSTEM_EVENT

STATS$SESSION_EVENT

STATS$BG_EVENT_SUMMARY

STATS$WAITSTAT

 

TABLE_NAME

------------------------------

STATS$ENQUEUE_STAT

STATS$SQL_SUMMARY

STATS$SQLTEXT

STATS$SQL_STATISTICS

STATS$RESOURCE_LIMIT

STATS$DLM_MISC

STATS$UNDOSTAT

STATS$SQL_PLAN_USAGE

STATS$SQL_PLAN

STATS$SEG_STAT

STATS$SEG_STAT_OBJ

 

TABLE_NAME

------------------------------

STATS$PGASTAT

STATS$IDLE_EVENT

STATS$PARAMETER

STATS$INSTANCE_RECOVERY

STATS$STATSPACK_PARAMETER

STATS$SHARED_POOL_ADVICE

STATS$SQL_WORKAREA_HISTOGRAM

STATS$PGA_TARGET_ADVICE

 

41 rows selected.

 

其中STATSPACK表的主要锚定点是STATS$DATABASE_INSTANCE,具体的表的介绍我打算放到后面的文章进行讨论。

       可以说,以前我们的ORACLE性能调整主要是一种REACTIVE TUNNING(反应式调整),通过STATSPACK工具,我们可以进行长期趋势分析、性能问题事后分析、资源规划以及预测建模等,我们完全可以采用一种PROACTIVE TUNNING(前瞻式调整)。并且从ORACLE9I开始,ORACLE可以动态的改变ORACLE实例的内存配置,ORACLE也正朝着动态数据库配置迈进。

 

(待续)

……………………………………………………………………………………

参考

Donald K.BurlesonORACLE HIGH-PERFORMANCE TUNING WITH STATSPACK

 

 

 

读书笔记 《Oracle性能诊断艺术》

Troubleshooting Oracle Performance Christian Antognini   可以从 http://top.antognini.ch 下载代码   一、性...
  • edwzhang
  • edwzhang
  • 2011年12月01日 09:35
  • 1850

oracle statspack 安装及使用<->

oracle statspack 工具从oracle 8.1.6开始被引用,从oracle 10G开始,oracle推出新的工具...
  • u014056822
  • u014056822
  • 2014年04月10日 18:11
  • 1073

oracle statspack详解

+++ 介绍: --- oracle Statspack从Oracle8.1.6被引入,马上成为DBA和Oracle专家用来诊断数据库性能的强有力工具。通过Statspack我们可以很容易的确定...
  • vic_qxz
  • vic_qxz
  • 2016年10月19日 17:45
  • 1305

oracle statspack 报告详解

详细解读 STATSPACK 报告... 1 1、报表头信息... 2 2、实例负载档信息... 2 3、实例有效性信息... 3 4、TOP 5及其他等待事件信息... 5 5、SQL统计...
  • njyxfw
  • njyxfw
  • 2012年04月01日 11:44
  • 2122

oracle学习笔记 Oracle体系结构概述

oracle学习笔记 Oracle体系结构概述 从这节开始,开始讲oracle数据库体系结构。 首先从总体上,从概述上把oracle整体的体系结构讲一下, 然后接下来的时间我们会一块一...
  • xinzhan0
  • xinzhan0
  • 2016年07月03日 18:58
  • 1725

oracle实时性能诊断命令

oracle实时性能诊断   最近在工作中遇到一些ORACLE性能问题,用AWR和Statspack报告来做分析的话,发现问题总觉得有些滞后性,而且是对数据库整体情况的评价,不够及时,所以又把盖国...
  • yfleng2002
  • yfleng2002
  • 2011年11月14日 11:12
  • 1486

ORACLE性能诊断―学习statspack笔记(一) [安装与测试]

ORACLE性能诊断―学习statspack笔记(一) 作者:刘颖博 时间:2004-3-2mail:liuyingbo@126.com,请指正 转载请注明出处及作者 说明:oracle8.1.6开始...
  • brucelau
  • brucelau
  • 2004年03月03日 11:41
  • 1398

Oracle性能诊断的方法

 Oracle性能诊断的方法    Oracle性能诊断的方法有很多,下面我谈谈个人的实践。 一般而言,如果需要进行性能调整,那么,肯定是存在一些性能问题。所以,诊断,要从用户所提出...
  • chichimanman
  • chichimanman
  • 2014年08月25日 16:23
  • 728

ORACLE配置STATSPACK步骤

配置STATSPACK步骤1.SQL*PLUS中输入SQL> connect sys/sys as sysdba;SQL> alter system set job_queue_processes =...
  • huanghui22
  • huanghui22
  • 2006年10月11日 23:09
  • 5845

ORACLE性能诊断―学习statspack笔记(三)[表的分类]

ORACLE性能诊断―学习statspack笔记(三)[表的分类] 作者:刘颖博 时间:2004-3-10mail:liuyingbo@126.com,请指正 转载请注明出处及作者 说明:STATSP...
  • brucelau
  • brucelau
  • 2004年03月11日 10:10
  • 1111
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ORACLE性能诊断―学习statspack笔记(二)[概述]
举报原因:
原因补充:

(最多只允许输入30个字)