知识大全 用Oracle中的Statspack诊断数据库性能实例
Posted 数据库
篇首语:鞭打的快马,事找的忙人。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 用Oracle中的Statspack诊断数据库性能实例相关的知识,希望对你有一定的参考价值。
用Oracle中的Statspack诊断数据库性能实例 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
通过Statspack我们可以很容易的确定Oracle数据库的瓶颈所在 记录数据库性能状态 也可以使远程技术支持人员迅速了解你的数据库运行状况 因此了解和使用Statspack对于DBA来说至关重要
整理分析结果
可以通过各种工具建立图表 使我们收集的数据更直观 更有说服力 以下是我给一个客户做的分析报告的实例
.物理读写IO操作
观察物理IO访问 可以看出数据库日常访问的峰值及繁忙程度
脚本 此脚本按时间生成统计数据(注:以下示例以 i为基础 SQL脚本中引用的statistic#在不同版本代表的意义可能不同 对于 i等版本 你应该修改相应参数值)
SQL代码
selectsubstr(to_char(snap_time yyyy mm ddHH :MI:SS ) ) (newreads value oldreads value)reads (newwrites value oldwrites value)writesfromperfstat stats$sysstatoldreads perfstat stats$sysstatnewreads perfstat stats$sysstatoldwrites perfstat stats$sysstatnewwrites perfstat stats$snapshotsnwherenewreads snap_id=sn snap_idandnewwrites snap_id=sn snap_idandoldreads snap_id=sn snap_id andoldwrites snap_id=sn snap_id andoldreads statistic#= andnewreads statistic#= andoldwrites statistic#= andnewwrites statistic#= and(newreads value oldreads value)> and(newwrites value oldwrites value)>
selectsubstr(to_char(snap_time yyyy mm ddHH :MI:SS ) ) (newreads value oldreads value)reads (newwrites value oldwrites value)writesfromperfstat stats$sysstatoldreads perfstat stats$sysstatnewreads perfstat stats$sysstatoldwrites perfstat stats$sysstatnewwrites perfstat stats$snapshotsnwherenewreads snap_id=sn snap_idandnewwrites snap_id=sn snap_idandoldreads snap_id=sn snap_id andoldwrites snap_id=sn snap_id andoldreads statistic#= andnewreads statistic#= andoldwrites statistic#= andnewwrites statistic#= and(newreads value oldreads value)> and(newwrites value oldwrites value)> /
图表
)this style width= ; border= ffan= done >
分析
从趋势图中我们可以看出 数据库每日读操作较为平稳 数据量大约在 左右 在下午 点到 点期间比较繁忙 峰值达到 左右
数据库写操作变化也比较平稳 数据改变量在 左右 凌晨一点半到早晨 点半左右数据库访问极少 这是一个以写为主的数据库 我们需要更多注意的是写竞争
.Buffer命中率
Sql代码
selectsubstr(to_char(snap_time yyyy mm ddHH :MI ) ) round( *(((a value e value)+(b value f value)) (c value g value))/((a value e value)+(b value f value))) BUFFERHITRATIO fromperfstat stats$sysstata perfstat stats$sysstatb perfstat stats$sysstatc perfstat stats$sysstatd perfstat stats$sysstate perfstat stats$sysstatf perfstat stats$sysstatg perfstat stats$snapshotsnwherea snap_id=sn snap_idandb snap_id=sn snap_idandc snap_id=sn snap_idandd snap_id=sn snap_idande snap_id=sn snap_id andf snap_id=sn snap_id andg snap_id=sn snap_id anda statistic#= ande statistic#= andb statistic#= andf statistic#= andc statistic#= andg statistic#= andd statistic#=
selectsubstr(to_char(snap_time yyyy mm ddHH :MI ) ) round( *(((a value e value)+(b value f value)) (c value g value))/((a value e value)+(b value f value))) BUFFERHITRATIO fromperfstat stats$sysstata perfstat stats$sysstatb perfstat stats$sysstatc perfstat stats$sysstatd perfstat stats$sysstate perfstat stats$sysstatf perfstat stats$sysstatg perfstat stats$snapshotsnwherea snap_id=sn snap_idandb snap_id=sn snap_idandc snap_id=sn snap_idandd snap_id=sn snap_idande snap_id=sn snap_id andf snap_id=sn snap_id andg snap_id=sn snap_id anda statistic#= ande statistic#= andb statistic#= andf statistic#= andc statistic#= andg statistic#= andd statistic#=
图表
image javascript:return big(this) height= alt= src= //img educity cn/img_ / / / jpg width= javascript:if(this width> )this style width= ; border= ffan= done >
分析
Buffer(bufferhitratio)命中率是考察Oracle数据库性能的重要指标 它代表在内存中找到需要数据的比率 一般来说 如果该值小于 % 则可能说明数据库存在大量代价昂贵的IO操作 数据库需要调整 我们数据库的buffer命中率几乎接近 % 最低值在 %左右 这个比率是比较优化的
安装statspack
borderColorDark=#ffffff cellPadding= width= align=center borderColorLight=# border= > e e >
SQL>connect/assysdba
SQL>@?/rdbms/admin/spcreate
卸载
borderColorDark=#ffffff cellPadding= width= align=center borderColorLight=# border= > e e >
SQL>connect/assysdbaSQL>@?/rdbms/admin/spdrop
/*收集信息前把timed_statistics=true;altersystemsettimed_statistics=true;*/
收集信息
borderColorDark=#ffffff cellPadding= width= align=center borderColorLight=# border= > e e >
SQL>connectperfstat/perfstatSQL>executestatspack snap;
自动收集 borderColorDark=#ffffff cellPadding= width= align=center borderColorLight=# border= > e e >
SQL>connectperfstat/perfstatSQL>@?/rdbms/admin/spauto
删掉自动收集的job
borderColorDark=#ffffff cellPadding= width= align=center borderColorLight=# border= > e e >
SQL>select*fromuser_jobs;
SQL>execdbms_job remove(JOB_ID)
/*executestatspack snap(i_snap_level=> i_modify_parameter=> true );Levels= Additionaldata:SQLStatementsLevels= Thislevelincludesallstatisticsgatheredinthelowerlevel(s)
Levels= segmentslevelstatisticsLevels= Additionalstatistics:Childlatchesi_modify_parameter=> true / false 决定是否保存level的值 下一次执行继续使用*/
产生报告
borderColorDark=#ffffff cellPadding= width= align=center borderColorLight=# border= > e e >
SQL>conectperfstat/perfstatSQL>@?/rdbms/admin/spreport
cha138/Article/program/Oracle/201311/18397相关参考
知识大全 ORACLE性能诊断―学习statspack笔记(一)
ORACLE性能诊断―学习statspack笔记(一) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧
oracleStatspack从Oracle被引入马上成为DBA和Oracle专家用来诊断数据库性能的强有力工具通过Statspack我们可以很容易的确定Oracle数据库的瓶颈所有记录数据库性能
学习Oracle--Statspack分析 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! ~~~
Statspack的安装使用说明 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 在数据库管理中O
Oracle数据库诊断性能问题 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 使用扩展SQL跟踪
ORACLE数据库常见问题诊断方法 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! ORACLE的
诊断Oracle数据库Hanging问题 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 适用范围
ORACLE数据库问题诊断方法:常见错误篇 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! ORA
概念 Latch是简单的低层次的序列化技术用以保护SGA中的共享数据结构比如并发用户列表和buffercache里的blocks信息一个服务器进程或后台进程在开始
Oracle数据库常见问题诊断-SQL*NET篇 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!