数据库

位置:IT落伍者 >> 数据库 >> 浏览文章

学习Oracle--Statspack分析


发布日期:2022年01月06日
 
学习Oracle--Statspack分析

~~~~~~~~~~Per Second Per Transaction

Redo size:

很重要的参数表示你数据变更频率

Logical reads:

Block changes:

Physical reads:

Physical writes:

User calls:

Parses:

软解析每秒超过次意味着你的应用程序效率不高没有使用soft soft parse调整session_cursor_cache

Hard parses:

每秒超过就可能说明你绑定使用的不好

Sorts:

Logons:

Executes:

Transactions:

% Blocks changed per Read:Recursive Call %:

如果有很多PLSQL那么他就会比较高

Rollback per transaction %: Rows per Sort:

看回滚率是不是很高因为回滚很耗资源

Instance Efficiency Percentages (Target %)

这一部分通过可以提前找出ORACLE潜在将要发生的性能问题(所以很重要哦)

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Buffer Nowait %: Redo NoWait %:

Buffer Nowait<%说明有可能是有热块(查找x$bh的 tch和v$latch_children的cache buffers chains)

BufferHit %: Inmemory Sort %:

BufferHit<%重要的参数小于%可能是要加db_cache_size但是大量的非选择的索引也会造成该值很高(大量的db file sequential read)

Library Hit %: Soft Parse %:

Library Hit<%要考虑加大共享池绑定变量修改cursor_sharing等

Execute to Parse %: Latch Hit %:

Soft Parse<%需要考虑到绑定如果低于%那么就可能sql基本没有被重用

Parse CPU to Parse Elapsd %: % NonParse CPU:

Latch Hit<%要确保>%否则存在严重的性能问题比如绑定等会影响该参数

如果一个经常访问的列上的索引被删除可能会造成buffer hit 显着的下降如果增加了索引但是他影响了ORACLE正确的选择表连接时的驱动顺序那么可能会导致buffer hit 显着增高如果你的命中率变化幅度很大说明你要改变SQL模式

Shared Pool Statistics

Begin End

Memory Usage %: 共享内存使用情况 %%都在正常范围

% SQL with executions>:

% Memory for SQL w/exec>:

Top Timed Events

~~~~~~~~~~~~~~~~~~ % Total

Event WaitsTime (s) Ela Time

CPU time

db file sequential read

db file scattered read

buffer busy waits

log file sync

TIMED_STATISTICS = TRUE 那么等待事件按等待的时间排序

= FALSE那么事件按等待的数量排序

常见事件

LOG FILE SYNC:在每次提交时都出现如果这个等待事件影响到数据库性能那么就需要修改应用程序的提交频率

db file sequential read: 在单个数据块上大量等待该值过高通常是由于表间连接顺序很糟糕或者使用非选择性的索引

DB_CACHE_SIZE: 可以决定该事件出现的频率

db file scattered read :意味着等待于全表扫描有关系通常全表扫描表数据放入内存中但是被申请到的内存高速缓沖的每个区可能不连续该值过大说明缺少索引或者限制了索引的使用(也可以调整optimizer_index_cost_adj) 如果经常必须进行全表扫描而且表比较小 把该表存人keep池如果是大表经常进行全表扫描那么应该是olap系统而不是oltp的

buffer busy wait:当缓沖区以一种非共享方式或者如正在被读入到缓沖时就会出现该等待该值不应该大于%确认是不是由于热点块造成(如果是可以用反转索引或者用更小块大小)

latch free: 常跟应用没有很好的应用绑定有关

Enqueue : 最有可能是多个用户同时修改同一个块如果没有空闲的ITL空间就会出现数据库块级锁

logfile switch: 通常是因为归档速度不够快需要增大重做日志

log buffer space: 日志缓沖区写的速度快于LGWR写REDOFILE的速度可以增大日志文件大小

TOP SQL

调整首要的个缓沖区读操作和首要的个磁盘读操作做的查询将可对系统性能产生%到%的增益

Instance Activity Stats for DB: CRMTEMPInstance: crmtempSnaps:

StatisticTotal per Secondper Trans

CPU used by this session

CPU used when call started

CR blocks created

Cached Commit SCN referenced

Commit SCN cached

DBWR buffers scanned

DBWR checkpoint buffers written

DBWR checkpoints

dirty buffers inspected 髒缓沖的个数

free buffer inspected如果数量很大说明缓沖区过小

sorts (disk)不应当大于%

sorts (memory)

sorts (rows)

summed dirty queue length

上一篇:IP地址变化后Oracle10g不受影响

下一篇:oracle进制之间转换