用Oracle中的Statspack诊断数据库性能实例

php中文网
发布: 2016-06-07 15:15:28
原创
1496人浏览过

欢迎进入Oracle社区论坛,与200万技术人员互动交流 >>进入 通过Statspack我们可以很容易的确定Oracle数据库的瓶颈所在,记录数据库性能状态,也可以使远程技术支持人员迅速了解你的数据库运行状况。因此了解和使用Statspack对于DBA来说至关重要。 整理分析结

欢迎进入oracle社区论坛,与200万技术人员互动交流 >>进入

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

  整理分析结果

  可以通过各种工具建立图表,使我们收集的数据更直观,更有说服力。
以下是我给一个客户做的分析报告的实例。

  1.物理读写IO操作:

  观察物理IO访问,可以看出数据库日常访问的峰值及繁忙程度。

  脚本:此脚本按时间生成统计数据(注:以下示例以8i为基础,SQL脚本中引用的statistic#在不同版本代表的意义可能不同,对于9i等版本,你应该修改相应参数值)

  SQL代码

select<BR>substr(to_char(snap_time,'yyyy-mm-ddHH24:MI:SS'),12),<BR>(newreads.value-oldreads.value)reads,<BR>(newwrites.value-oldwrites.value)writes<BR>from<BR>perfstat.stats$sysstatoldreads,<BR>perfstat.stats$sysstatnewreads,<BR>perfstat.stats$sysstatoldwrites,<BR>perfstat.stats$sysstatnewwrites,<BR>perfstat.stats$snapshotsn<BR>where<BR>newreads.snap_id=sn.snap_id<BR>and<BR>newwrites.snap_id=sn.snap_id<BR>and<BR>oldreads.snap_id=sn.snap_id-1<BR>and<BR>oldwrites.snap_id=sn.snap_id-1<BR>and<BR>oldreads.statistic#=40<BR>and<BR>newreads.statistic#=40<BR>and<BR>oldwrites.statistic#=41<BR>and<BR>newwrites.statistic#=41<BR>and<BR>(newreads.value-oldreads.value)>0<BR>and<BR>(newwrites.value-oldwrites.value)>0<P></P>
<P>select<BR>substr(to_char(snap_time,'yyyy-mm-ddHH24:MI:SS'),12),<BR>(newreads.value-oldreads.value)reads,<BR>(newwrites.value-oldwrites.value)writes<BR>from<BR>perfstat.stats$sysstatoldreads,<BR>perfstat.stats$sysstatnewreads,<BR>perfstat.stats$sysstatoldwrites,<BR>perfstat.stats$sysstatnewwrites,<BR>perfstat.stats$snapshotsn<BR>where<BR>newreads.snap_id=sn.snap_id<BR>and<BR>newwrites.snap_id=sn.snap_id<BR>and<BR>oldreads.snap_id=sn.snap_id-1<BR>and<BR>oldwrites.snap_id=sn.snap_id-1<BR>and<BR>oldreads.statistic#=40<BR>and<BR>newreads.statistic#=40<BR>and<BR>oldwrites.statistic#=41<BR>and<BR>newwrites.statistic#=41<BR>and<BR>(newreads.value-oldreads.value)>0<BR>and<BR>(newwrites.value-oldwrites.value)>0<BR>/</P>
登录后复制

  图表:

用Oracle中的Statspack诊断数据库性能实例

  分析:

  从趋势图中我们可以看出,数据库每日读操作较为平稳,数据量大约在4000左右。在下午2点到5点期
间比较繁忙。峰值达到150000左右。

  数据库写操作变化也比较平稳,数据改变量在80000左右,凌晨一点半到早晨8点半左右数据库访问极少。
这是一个以写为主的数据库,我们需要更多注意的是写竞争。

怪兽AI数字人
怪兽AI数字人

数字人短视频创作,数字人直播,实时驱动数字人

怪兽AI数字人 44
查看详情 怪兽AI数字人

  2.Buffer命中率

  Sql代码

<BR>select<BR>substr(to_char(snap_time,'yyyy-mm-ddHH24:MI'),12),<BR>round(100*(((a.value-e.value)+(b.value-f.value))-(c.value-g.value))/<BR>((a.value-e.value)+(b.value-f.value)))<BR>"BUFFERHITRATIO"<BR>from<BR>perfstat.stats$sysstata,<BR>perfstat.stats$sysstatb,<BR>perfstat.stats$sysstatc,<BR>perfstat.stats$sysstatd,<BR>perfstat.stats$sysstate,<BR>perfstat.stats$sysstatf,<BR>perfstat.stats$sysstatg,<BR>perfstat.stats$snapshotsn<BR>where<BR>a.snap_id=sn.snap_id<BR>and<BR>b.snap_id=sn.snap_id<BR>and<BR>c.snap_id=sn.snap_id<BR>and<BR>d.snap_id=sn.snap_id<BR>and<BR>e.snap_id=sn.snap_id-1<BR>and<BR>f.snap_id=sn.snap_id-1<BR>and<BR>g.snap_id=sn.snap_id-1<BR>and<BR>a.statistic#=39<BR>and<BR>e.statistic#=39<BR>and<BR>b.statistic#=38<BR>and<BR>f.statistic#=38<BR>and<BR>c.statistic#=40<BR>and<BR>g.statistic#=40<BR>and<BR>d.statistic#=41<P></P>
<P>select<BR>substr(to_char(snap_time,'yyyy-mm-ddHH24:MI'),12),<BR>round(100*(((a.value-e.value)+(b.value-f.value))-(c.value-g.value))/<BR>((a.value-e.value)+(b.value-f.value)))<BR>"BUFFERHITRATIO"<BR>from<BR>perfstat.stats$sysstata,<BR>perfstat.stats$sysstatb,<BR>perfstat.stats$sysstatc,<BR>perfstat.stats$sysstatd,<BR>perfstat.stats$sysstate,<BR>perfstat.stats$sysstatf,<BR>perfstat.stats$sysstatg,<BR>perfstat.stats$snapshotsn<BR>where<BR>a.snap_id=sn.snap_id<BR>and<BR>b.snap_id=sn.snap_id<BR>and<BR>c.snap_id=sn.snap_id<BR>and<BR>d.snap_id=sn.snap_id<BR>and<BR>e.snap_id=sn.snap_id-1<BR>and<BR>f.snap_id=sn.snap_id-1<BR>and<BR>g.snap_id=sn.snap_id-1<BR>and<BR>a.statistic#=39<BR>and<BR>e.statistic#=39<BR>and<BR>b.statistic#=38<BR>and<BR>f.statistic#=38<BR>and<BR>c.statistic#=40<BR>and<BR>g.statistic#=40<BR>and<BR>d.statistic#=41</P>
登录后复制

  图表:

用Oracle中的Statspack诊断数据库性能实例

  分析:

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

  安装statspack

@@######@@

  卸载

@@######@@@@######@@

  收集信息

@@######@@

  自动收集

@@######@@

  删掉自动收集的job.

@@######@@

  产生报告

@@######@@

用Oracle中的Statspack诊断数据库性能实例

SQL>connect/assysdba<P></P>
<P>SQL>@?/rdbms/admin/spcreate</P>
登录后复制
SQL>connect/assysdba<BR>SQL>@?/rdbms/admin/spdrop
登录后复制
/*<BR>收集信息前把timed_statistics=true;<BR>altersystemsettimed_statistics=true;<BR>*/
登录后复制
SQL>connectperfstat/perfstat<BR>SQL>executestatspack.snap;
登录后复制
SQL>connectperfstat/perfstat<BR>SQL>@?/rdbms/admin/spauto
登录后复制
SQL>select*fromuser_jobs;<P></P><P>SQL>execdbms_job.remove(JOB_ID)
</P><P>/*<BR>executestatspack.snap(i_snap_level=>10,i_modify_parameter=>'true');<BR>Levels=5Additionaldata:SQLStatements<BR>Levels=6Thislevelincludesallstatisticsgatheredinthelowerlevel(s).
</P><P>Levels=7segmentslevelstatistics<BR>Levels=10Additionalstatistics:Childlatches<BR>i_modify_parameter=>'true'/'false'决定是否保存level的值,下一次执行继续使用<BR>*/</P>
登录后复制
SQL>conectperfstat/perfstat<BR>SQL>@?/rdbms/admin/spreport
登录后复制
相关标签:
数码产品性能查询
数码产品性能查询

该软件包括了市面上所有手机CPU,手机跑分情况,电脑CPU,电脑产品信息等等,方便需要大家查阅数码产品最新情况,了解产品特性,能够进行对比选择最具性价比的商品。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号