2022年Oracle数据库巡检 .pdf
序号检查内容正常值 (参考 ) 影响因素1 -高速缓存的命中率select round(1 - (physical.value- direct.value- lobs.value) / logical.value) * 100 , 2) | % 高速缓存的命中率 from v$sysstat physical, v$sysstat direct, v$sysstat lobs, v$sysstat logical wherephysical.name= physical readsand direct.name = physical reads directand lobs.name= physical reads direct (lob)and logical.name = session logical reads;90%-100%( 可能略低于 90% 在数据库繁忙运行期间 )1. Buffer 命中率受 Oracle SGA 中的 data block buffers 参数的设置影响2. 跟 Oracle buffer Pool的使用方法有关3. 把经常使用的小表cache 在内存中4. 调优 SQL 语句,以养活少访问的数据量db_cache_size? 2 -库缓存的命中率selectround(sum(pins - reloads) / sum(pins) * 100 , 2) | % 库缓存的命中率 from v$librarycache;95%-100% 1. Library 命中率受 Oracle SGA 中的 shared pool参数设置影响2. 跟应用软件的开发有密切的关系,特别是共享SQL 的使用3 -闩命中率select round(1 - sum(misses + immediate_misses) / sum(gets + immediate_gets) * 100 , 2) | % 闩命中率 from v$latch;99%-100% 1. 应用程序 SQL 是否使用绑定变量2. Shared_pool_size参数的设置4 -内存排序率selectround(1 - disk. value/ ( disk. value+ memory.value) * 100 , 2) | % 内存排序率 fromv$sysstat disk, v$sysstat memory wheredisk. name= sorts (disk)andmemory.name= sorts 99%-100% 1. 数据库参数sort_area_size或pga_aggregate_target的大小2. 应用程序的SQL 语句的写法名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 4 页 - - - - - - - - - (memory);5 -缓冲区未等待率selectround(1 - busy.value/ tol.value) * 100 , 2) | % 缓冲区未等待率 from( selectsum( count) valuefrom v$waitstat whereclassin (data block, segment header, undo header, undo block) busy, (selectvaluefromv$sysstat wherename= session logical reads) tol;99%-100% 1. db_block_buffers或db_cache_size等参数2. 增加表的 Freelist 参数3. 使用 Automatic Segment Storge Management (ASSM)来创建表空间4. 优化程序使用的SQL语句6 -redo缓冲区未等待率select round(1 - waits.value/ redos.value) * 100 , 2) | %redo缓冲区未等待率 fromv$sysstat waits, v$sysstat redos where waits.name = redo log space requestsandredos.name= redo entries;99%-100% 1. Log_buffer_size参数设置过小2. 归档的速度太慢3. 联机日志文件太小4. 联机日志文件放在缓慢的磁盘设备上7 -SQL语句执行和分析的比例selectround(1 - hard.value/ total.value) * 100 , 2) | %SQL 语句执行和分析的比例 fromv$sysstat hard, v$sysstat total wherehard.name= parse count (hard)andtotal.name= parse count (total);越接近 100% 越好1. Share_pool_size参数的大小2. 最重要的影响因素是应用程是否使用了绑定变量8 -析的CPU的时间和分析完成CPU时间对比select round(1 - cpu.value / total.value) * 100 , 2) | %cpu 分析和完成比 fromv$sysstat cpu, v$sysstat total where cpu.name = parse time cpu越接近 100% 越好1. 如果这个比例很低,说明分析过程中CPU 等待了其它的资源名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 4 页 - - - - - - - - - andtotal.name= parse time elapsed;9 -非分析的过程中CPU对比select round(1 - parse.value/ total.value) * 100 , 2) | % 非分析的过程中CPU对比 fromv$sysstat parse, v$sysstat total whereparse.name= parse time cpuand total.name = CPU used by this session;越接近 100% 越好1. 如果这个比例很低,说明 CPU 用在分析 SQL 语句上面消耗了很多CPU 时间,可能是没有用绑定变量10 -等待rollback segment的header比率selectname , waits, gets, round(waits / gets * 100 , 2) | %等待rollbacksegment的header比 fromv$rollstat a, v$rollname b where a.usn = b.usn;rollback segment等待率比率越小越好1. 回滚段竟争情况受回滚段 size 的设置影响2. 跟应用软件的有关,特别是 long runnig time transaction的使用11 -Tablespace的I/O比例select df.tablespace_name, sum(f.phyrds), sum(f.phyblkrd), sum(f.phywrts), sum(f.phyblkwrt) fromv$filestat f, dba_data_files df where f.file# = df.file_id groupby df.tablespace_name orderby df.tablespace_name;Tablespace I/O越小越好1. Tablespace的 I/O 情况受 db_block_size参数的设置影响2. 跟数据文件的磁盘分布有密切关系12 -Datafile 的I/O比例select df.name , sum(f.phyrds), sum(f.phyblkrd), sum(f.phywrts), sum(f.phyblkwrt) fromv$filestat f, v$datafile df where f.file# = df.file# groupby df.nameDatafile I/O越小越好1. Datafile的 I/O 情况受db_block_size参数的设置影响2. 跟数据文件的磁盘分布有密切关系名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 4 页 - - - - - - - - - orderby df.name;13 -重做日志缓存区命中率selectname , gets, misses, immediate_gets, immediate_misses, 100- round(decode(gets, 0, 0, misses / gets * 100 ), 2) | %ratio1, 100 - round(decode(immediate_gets + immediate_misses, 0, 0, immediate_misses / (immediate_gets + immediate_misses) * 100 ), 2) | % ratio2 from v$latch wherenamein( redo allocation, redo copy);重做日志缓存区的命中率越大越好,应大于 90% 1. 受 log_buffer_size设置影响2. 跟应用软件的有关,特别是共享SQL 的使用14 -碎片程度select tablespace_name, round(sqrt(max(blocks) / sum(blocks) * (100/ sqrt(sqrt(count(blocks), 2) | % FSFI from dba_free_space groupby tablespace_name orderby tablespace_name;FSFI 越大越好, 应大于 30% 1. 碎片情况受db_block_size,segment_size 的设置影响名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 4 页 - - - - - - - - -