`

用oracle statspack 诊断数据库性能实例

阅读更多

 

 

 

Oracle Statspack 从Oracle8.1.6开始被引入Oracle,并马上成为DBA和Oracle专家用来诊断数据库性能的强有力的工具。

通过Statspack我们可以很容易的确定Oracle数据库的瓶颈所在,记录数据库性能状态,也可以使远程技术支持人员迅速了解你的数据库运行状况。
因此了解和使用Statspack对于DBA来说至关重要。

 

 

整理分析结果
可以通过各种工具建立图表,使我们收集的数据更直观,更有说服力。
以下是我给一个客户做的分析报告的实例。
1. 物理读写IO 操作:
观察物理IO 访问,可以看出数据库日常访问的峰值及繁忙程度。
脚本:此脚本按时间生成统计数据(注:以下示例以8i 为基础,SQL 脚本中引用的statistic#在不同
版本代表的意义可能不同,对于9i 等版本,你应该修改相应参数值)

select
substr(to_char(snap_time,'yyyy-mm-dd HH24:MI:SS'),12),
(newreads.value-oldreads.value) reads,
(newwrites.value-oldwrites.value) writes
from
perfstat.stats$sysstat oldreads,
perfstat.stats$sysstat newreads,
perfstat.stats$sysstat oldwrites,
perfstat.stats$sysstat newwrites,
perfstat.stats$snapshot sn
where
newreads.snap_id = sn.snap_id
and
newwrites.snap_id = sn.snap_id
and
oldreads.snap_id = sn.snap_id-1
and
oldwrites.snap_id = sn.snap_id-1
and
oldreads.statistic# = 40
and
newreads.statistic# = 40
and
oldwrites.statistic# = 41
and
newwrites.statistic# = 41
and
(newreads.value-oldreads.value) > 0
and
(newwrites.value-oldwrites.value) > 0

 
/
图表:



 

 

 分析:
从趋势图中我们可以看出,数据库每日读操作较为平稳,数据量大约在4000 左右。在下午2 点到5 点期
间比较繁忙。峰值达到150000 左右。
数据库写操作变化也比较平稳,数据改变量在80000 左右,凌晨一点半到早晨8 点半左右数据库访问极少。
这是一个以写为主的数据库,我们需要更多注意的是写竞争。
2. Buffer 命中率

select
substr(to_char(snap_time,'yyyy-mm-dd HH24:MI'),12),
round(100 * (((a.value-e.value)+(b.value-f.value))-(c.value-g.value)) /
((a.value-e.value)+(b.value-f.value)))
"BUFFER HIT RATIO"
from
perfstat.stats$sysstat a,
perfstat.stats$sysstat b,
perfstat.stats$sysstat c,
perfstat.stats$sysstat d,
perfstat.stats$sysstat e,
perfstat.stats$sysstat f,
perfstat.stats$sysstat g,
perfstat.stats$snapshot sn
where
a.snap_id = sn.snap_id
and
b.snap_id = sn.snap_id
and
c.snap_id = sn.snap_id
and
d.snap_id = sn.snap_id
and
e.snap_id = sn.snap_id-1
and
f.snap_id = sn.snap_id-1
and
g.snap_id = sn.snap_id-1
and
a.statistic# = 39
and
e.statistic# = 39
and
b.statistic# = 38
and
f.statistic# = 38
and
c.statistic# = 40
and
g.statistic# = 40
and
d.statistic# = 41

 



 

 

图表:  

 

分析:
Buffer(buffer hit ratio)命中率是考察Oracle 数据库性能的重要指标,它代表在内存中找到需要数据的比
率,一般来说,如果该值小于90%,则可能说明数据库存在大量代价昂贵的IO 操作,数据库需要调整。
我们数据库的buffer 命中率几乎接近100%,最低值在95%左右,这个比率是比较优化的。

 

安装statspack
 
 SQL>connect / as sysdba

 SQL>@?/rdbms/admin/spcreate

卸载

 SQL>connect / as sysdba
 SQL>@?/rdbms/admin/spdrop

 /*
 收集信息前把timed_statistics = true;
 alter system set timed_statistics = true;
 */


收集信息

 SQL>connect perfstat/perfstat
 SQL>execute statspack.snap;

自动收集
 SQL>connect perfstat/perfstat
 SQL>@?/rdbms/admin/spauto

  删掉自动收集的job.

 SQL>select * from user_jobs;

 SQL>exec dbms_job.remove(JOB_ID)

/*
execute statspack.snap(i_snap_level=>10, i_modify_parameter=>'true');
Levels  = 5  Additional data:  SQL Statements
Levels  = 6  This level includes all statistics gathered in the lower level(s). 

Levels  = 7 segments level statistics
Levels  = 10 Additional statistics:  Child latches
i_modify_parameter=>'true'/'false' 决定是否保存level 的值,下一次执行继续使用
*/ 

产生报告

 SQL>conect perfstat/perfstat
 SQL>@?/rdbms/admin/spreport

  • 大小: 231.4 KB
  • 大小: 51.7 KB
分享到:
评论

相关推荐

    oracle statspack 高性能调整技术

    Oracle Statspack 是一款强大的性能分析工具,主要用于诊断和优化Oracle数据库的性能。它提供了一种高效的方法来收集和分析数据库的运行时统计信息,帮助DBA(数据库管理员)理解和改进数据库的性能。以下是对...

    oracle statspack

    在此期间,它们成为帮助诊断数据库性能问题的常用工具。这些脚本简单易用,并且由于它们与服务器一同发布,因此每个站点都可以使用。然而,BSTAT/ESTAT也存在一些局限性:每次运行后都会生成报告并删除用于收集数据...

    oracle+statspack+高性能调整技术 书中代码

    Statspack是Oracle提供的一种性能分析工具,它可以帮助DBA(数据库管理员)诊断和优化数据库的性能问题。本篇文章将详细探讨Oracle数据库与Statspack之间的关系,以及如何利用Statspack进行高性能调整。 首先,咱们...

    Oracle_数据库性能优化

    - **AWR(Automatic Workload Repository)报告**:提供了数据库实例级别的性能数据,包括等待事件、统计信息等。 - **SQL Trace和Statspack**:用于跟踪特定会话或SQL语句的执行情况,帮助定位性能问题。 - **...

    常见问题:如何使用AWR报告来诊断数据库性能问题+(Doc+ID+1523048.1).pdf

    在处理Oracle数据库的性能问题时,AWR(Automatic Workload Repository)报告是诊断问题的关键工具。AWR报告能提供数据库在特定时间段内的性能数据和历史趋势信息,帮助数据库管理员快速定位性能瓶颈和问题所在。 #...

    Statspack工具

    Statspack是Oracle数据库性能监控和诊断的有力工具,它通过收集和分析数据库实例的统计信息,帮助DBA(数据库管理员)定位和解决性能瓶颈。Statspack报告提供了关于数据库运行状态的深入洞察,包括缓存使用情况、...

    oracle数据库性能优化实践教程

    6. Oracle 10g进一步完善了调优实践,引入了基于数据库自动化的优化机制,并通过内置的自动工作负载信息库(AWR)、活动会话历史(ASH)和自动数据库诊断监视器(ADDM)等工具来实现更广泛、更层次化的性能数据收集...

    如何使用AWR报告来诊断数据库性能问题.docx

    Oracle数据库性能诊断是一个复杂的过程,而Automatic Workload Repository (AWR)报告是此过程中不可或缺的工具。AWR报告提供了一种全面的方式来分析数据库的性能,包括活动、等待事件、资源利用率等方面,帮助管理员...

    Oracle High-Performance Tuning with STATSPACK 中文版

    STATSPACK是Oracle数据库早期的一个性能分析工具,它提供了全面的诊断数据,帮助DBA(数据库管理员)识别性能瓶颈并进行针对性的调整。 1. **STATSPACK基础**: - STATSPACK是一种历史性能数据收集工具,它通过...

    Oracle 数据库性能优化

    Statspack是Oracle提供的一个免费工具,可以帮助我们收集数据库性能信息,并生成报告。具体建议如下: - 定期捕获快照,以便比较不同时间点的性能差异。 - 分析等待事件,找出性能瓶颈所在。 - 关注系统和会话级别的...

    RAC数据库性能优化

    RAC(Real Application Clusters)是Oracle提供的一种高可用性和高性能的解决方案,它允许多个数据库实例同时访问一个共享的数据集。为了确保RAC环境下的数据库能够高效运行,需要针对RAC的特点进行专门的性能优化。...

    statspack下载

    2. **Statspack表**:用于存储Statspack收集的数据,包括数据库实例的活动历史、等待事件、SQL语句执行情况等信息。 3. **快照机制**:Statspack通过定期创建快照来捕捉数据库的实时状态,这些快照提供了数据库性能...

    statspack示例

    Oracle Statspack是一个用于收集和报告Oracle数据库性能统计信息的工具,它提供了一种方法来监控、分析和诊断数据库性能问题。从给定的文件内容中,我们可以提取出许多关于如何解读和分析STATSPACK报告的知识点。 ...

    Oracle数据库教程——oracle常见的等待事件说明[参照].pdf

    在管理和优化Oracle数据库时,了解常见的等待事件至关重要,因为它们可以帮助我们诊断和解决性能问题。以下是对Oracle数据库中几个重要等待事件的详细解释: 1. **Buffer Busy Waits** 此等待事件表明一个会话...

    oracle性能优化最佳实践

    Oracle数据库性能优化是一个复杂而细致的过程,涉及数据库设计、SQL语句优化、实例配置等多个方面。通过对上述知识点的深入理解和实践,可以显著提升数据库的响应速度和稳定性,为企业级应用提供更加可靠、高效的...

    statspack使用指南-v2[1].1.pdf

    Statspack,自Oracle 8.1.6版本引入以来,迅速成为数据库管理员(DBA)和Oracle专家诊断数据库性能问题的强大工具。通过Statspack,用户不仅能够轻松识别Oracle数据库的性能瓶颈,记录性能状态,还能使远程技术支持...

    Oracle性能优化求生指南

    6. 监控和诊断工具:了解并熟练使用Oracle提供的监控和诊断工具,如AWR报告、Statspack报告、Automatic Workload Repository(AWR)和Active Session History(ASH)是十分重要的。 7. 定期维护:定期执行数据库...

Global site tag (gtag.js) - Google Analytics