知识大全 用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详解

  oracleStatspack从Oracle被引入马上成为DBA和Oracle专家用来诊断数据库性能的强有力工具通过Statspack我们可以很容易的确定Oracle数据库的瓶颈所有记录数据库性能

知识大全 学习Oracle--Statspack分析

学习Oracle--Statspack分析  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  ~~~

知识大全 Statspack的安装使用说明

Statspack的安装使用说明  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  在数据库管理中O

知识大全 Oracle数据库诊断性能问题

Oracle数据库诊断性能问题  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  使用扩展SQL跟踪

知识大全 ORACLE数据库常见问题诊断方法

ORACLE数据库常见问题诊断方法  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  ORACLE的

知识大全 诊断Oracle数据库Hanging问题

诊断Oracle数据库Hanging问题  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  适用范围

知识大全 ORACLE数据库问题诊断方法 :常见错误篇

ORACLE数据库问题诊断方法:常见错误篇  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  ORA

知识大全 oracle性能调整—诊断latch竞争

  概念   Latch是简单的低层次的序列化技术用以保护SGA中的共享数据结构比如并发用户列表和buffercache里的blocks信息一个服务器进程或后台进程在开始

知识大全 Oracle数据库常见问题诊断-SQL*NET篇

Oracle数据库常见问题诊断-SQL*NET篇  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!