网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > 数据库 > Oracle教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
数据库:数据库教程,数据库技巧,Oracle教程,MySQL教程,Sybase教程,Access教程,DB2教程,数据库安全,数据库文摘
本月文章推荐
.如何在hp-ux10.20系统中正确地配.
.如何将 Access 数据导出到 Oracl.
.使Oracle能同时访问多个SQL Serv.
.Linux下XFConfig的有效使用.
.使用ssh实现oracle数据库备份文件.
.在Linux下安装Oracle9i.
.Oracle非法数据库对象引起的错误.
.配置RMAN恢复目录.
.杜绝安全隐患 容易忽视的Oracle安.
.双机热备Oracle数据库服务器操作.
.PL/SQL学习笔记(五).
.LILO修复还原.
.Oracle Developer/2000 字符集的.
.ORACLE之常用FAQ V1.0.
.Linux构建网站案例.
.Oracle、IBM、BEA应用服务器的基.
.Oracle DBA 数据库结构试题选2.
.自动调整 Oracle9i Database :O.
.查看哪些session正在使用哪些回滚.
.使用Oracle9i的新特性Flashback .

ORACLE性能诊断―学习statspack笔记(二)

发表日期:2008-2-9



  Oracle性能诊断涉及对象
  
  A.   服务器、网络以及磁盘(外部的环境)
  B.   实例(SGA,后台进程)
  C.   对象(表,索引,段……)
  D.   SQL
  E.   设计(指的是应用的设计,这部分一般说来是很难改变了)
  
  ORACLE性能诊断要遵循上面的顺序,先察看服务器是否存在问题,主要从CPU,RAM,DISK配置是否存在问题,检查操作系统的核心参数的设置等等;假如是跨地域的进行共享的多个ORACLE,网络通信性能也是非常的要害的,ORACLE利用的是TNS(Transparent Network Substrate 透明网络层)提供数据库之间的分布传输;另外影响ORACLE相应时间的最大的单独组成部分是磁盘I/O,能够减少磁盘I/O的任何事情都会对ORACLE的性能产生正面的影响,比如改变ORACLE初始化参数,调整相应的SQL等;对于ORACLE的实例调整应该注重的问题是,过载的ORACLE的SGA会导致严重的性能问题,对于ORACLE实例的调整主要包括:初始化参数、数据缓冲存储(DEFAULT、KEEP、RECYCLE)和SGA中共享池和库缓存等;还有就是ORACLE对象的调整,包括存储参数等等;最后是SQL语句的调整。
  
  STATSPACK概述
  
  STATSPACK来源在ORACLE最早版本就存在的UTLBSTAT和UTLESTAT工具。开始的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版本会有一定的差异。这些表大体上分为控制表、参数表、事件表、事务处理表、并行服务器表、概要表、系统表等等
  
  下面是我列出的ORACLE9I的STATSPACKE表:
  
  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
  ABLE_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也正朝着动态数据库配置迈进。
上一篇:Oracle学习应用之数据库性能优化策略 人气:902
下一篇:浅谈Oracle中优化SQL的原则 人气:874
浏览全部Oracle教程的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐