trace session的方式是一种自下而上的方法,从sql入手;而statspack是自顶向下的方法,也就是从宏观上先诊断数据库的瓶颈在哪里,然后从瓶颈入手来做调整,这个习惯上又可以称为通过等待事件(wait event)入手的方法。
2.1 使用statspack statspack是一个性能诊断工具,首先发布于Oracle8.1.6版本,在8.1.7版本中功能得到加强。Statspack除了查找实例中的性能问题外,还可以查找应用程序中高负荷的SQL语句,很容易确定Oracle 数据库的瓶颈所在,并且记录数据库性能状态。 在数据库中Statspack 的脚本位于$ORACLE_HOME/RDBMS/ADMIN 目录下,对于ORACLE8.1.6,是一组以stat 开头的文件;对于ORACLE8.1.7,是一组以sp 开头的文件。 在Statspack 发布之前,我们通常能够使用诊断数据库的工具是两个脚本UTLBSTAT.SQL 和UTLESTAT.SQL,BSTAT/ESTAT 是一个非常简单的性能诊断工具。UTLBSTAT 获得开始时很多V$视图的快照,UTLESTAT 通过先前的快照和当前视图生成一个报表。 该报表实际上相当于statspack 中的两个采样点。 Statspack 通过连续的采样,能够给我们提供至关重要的趋势分析数据。这是一个巨大的进步。能够使用Statspack 的环境我们就尽量不要使用BSTAT/ESTAT 的方式来诊断数据库问题。
2.1.1 安装statapack § 步骤一: 为了能够顺利安装和运行Statspack ,首先需要设置以下两个系统参数: 1. job_queue_processes 为了能够建立自动任务,执行数据收集,该参数需要大于0。你可以在初试化参数文件中修改该参数(使该参数在重起后以然有效)。 该参数可以在系统级动态修改(重起后失效)。
SQL> alter system set job_queue_processes = 6; System altered
在Oracle9i 当中,可以指定范围,如 both,这样该修改在当前及之后保持有效(仅当你使用spfile 时,如果在9i 中仍然使用pfile,那么更改方法同8i 相同):
SQL> alter system set job_queue_processes = 6 scope=both; System altered
2. timed_statistics 收集操作系统的计时信息,这些信息可被用来显示时间等统计信息、优化数据库和 SQL 语句。要防止因从操作系统请求时间而引起的开销,请将该值设置为False。 使用statspack 收集统计信息时建议将该值设置为 TRUE,否则收集的统计信息大约只能起到10%的作用,将timed_statistics 设置为True 所带来的性能影响与好处相比是微不足道的。 该参数使收集的时间信息存储在在V$SESSTATS 和V$SYSSTATS 等动态性能视图中。 timed_statistics 参数也可以在实例级进行更改
SQL> alter system set timed_statistics = true; System altered
如果你担心一直启用timed_statistics 对于性能的影响,你可以在使用statspack 之前在system 更改,采样过后把该参数动态修改成false。
§ 步骤二: 需要单独为statspack创建一个存储数据的表空间,如果采样间隔较短,周期较长,打算长期使用,那么可能需要一个大一点的表空间,如果每个半个小时采样一次,连续采样一周,数据量是很大的。下面的例子中创建了一个500M 的测试表空间。 注意: 这里创建的表空间不能太小,如果太小的话创建对象会失败,建议至少建立100M 表空间。
SQL> create tablespace perfstat 2 datafile '/oracle/oradata/oradata/res/perfstat.dbf' 3 size 500M; Tablespace created。
§ 步骤三: 在 sqlplus 中用internal 身份登陆,或者拥有SYSDBA(connect / as sysdba)权限的用户登陆。 注: 在Oracle9i 中,不存在internal 用户,可以使用sys 用户以sysdba 身份连接。 先转到$ORACLE_HOME/RDBMS/ADMIN 目录,检查安装脚本是否存在,同时我们执行脚本也可以方便些。
$ cd $ORACLE_HOME/rdbms/admin $ ls -l sp*.sql -rw-r--r-- 1 oracle other 1774 Feb 18 2000 spauto.sql -rw-r--r-- 1 oracle other 62545 Jun 15 2000 spcpkg.sql -rw-r--r-- 1 oracle other 877 Feb 18 2000 spcreate.sql
复制本页网址和标题,发送给你QQ/Msn的好友一起分享
上一篇:Recordset.Open方法参数介绍
下一篇:很有用的oracle 函数