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
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器