`
dengyll
  • 浏览: 90402 次
社区版块
存档分类
最新评论

Oracle 检查命中率的SQL

阅读更多

在数据库启动2小时后,可以通过以下SQL来测试数据库性能

 

1.  缓冲区命中率:

缓冲区命中率表示在不需要进行磁盘访问的情况下在内存结构中找到常用数据块的频率

 

select (1-(sum(decode(name, 'physical reads',value,0))/(sum(decode(name, 'db block gets',value,0)) 
         +sum(decode(name,'consistent gets',value,0))))) * 100 "Hit Ratio"
         from v$sysstat;

大于98%为最佳

 

2.数据字典缓存命中率:

数据字典缓存命中率显示了对数据字典和其他对象的内存读操作所占的百分比。

 

select (1-(sum(getmisses)/sum(gets))) * 100 "Hit Ratio" from v$rowcache;

大于98%为最佳


3.库缓存命中率:

库缓存命中率显示了对实际语句和PL/SQL对象的内存读操作所占的百分比。注意,很高的命中率并不总是一件好事。

 

select Sum(Pins)/(Sum(Pins) + Sum(Reloads)) * 100 "Hit Ratio" from V$LibraryCache;

大于98%为最佳

 

4.PGA内存排序命中率

自动PGA内存管理简化了分配PGA内存的方法。Oracle动态调整工作区PGA内存的大小(以SGA内存大小的20%为基础)。在自动PGA内存管理模式下运行时,所有会话的工作区大小都是自动的。实例中活动工作区可用的PGA内存总量自动由SORT_AREA_SIZE或PGA _ AGGREGATE_ TARGET(首选)初始化参数导出。PGA内存排序率的值应该大于98%。依据初始化参数PGA_AGGREGATE_TARGET(或者用于向后兼容的SORT _AREA _ SIZE)的值,用户排序可能在内存或者在指定的临时表空间中的磁盘上完成,如果这个初始化参数不是太高的话。

 

select a.value "Disk Sorts", b.value "Memory Sorts",round((100*b.value)/decode((a.value+b.value),0,1,(a.value+b.value)),2)"Pct Memory Sorts" from v$sysstat a, v$sysstat b where   a.name = 'sorts (disk)'and b.name = 'sorts (memory)';

 

5. 空闲的数据缓冲区的比例

 

从您首次启动Oracle数据库的那一天开始,用户们的查询就开始使用内存。空闲的记录数除以X$BH表中的记录总数(即所分配的数据块缓冲区的总数)就得到这个百分比。同时请注意,您必须以SYS的权限来运行该查询。此外,拥有众多的空闲缓冲区并不一定是就最佳环境。5%-10% 为最佳。当空闲比例高于25%时,数据缓冲区设置得太大了,可能会浪费资源。

 

select decode(state,0, 'FREE',1,decode(lrba_seq,0,'AVAILABLE','BEING USED'),3, 'BEING USED', state) "BLOCK STATUS",count(*) from x$bh group by decode(state,0,'FREE',1,decode(lrba_seq,0,'AVAILABLE','BEING USED'),3, 'BEING USED', state);

 

6. 最浪费内存的前10个语句占所有语句的比例


在没有调整的情况下,大多数系统中10个最常使用的SQL语句的访问量占了整个系统中内存读操作的50%以上。本节测量了最影响性能的代码对整个系统所造成危害的严重性,以百分比表示。

 

select sum(pct_bufgets) "Percent" from (select rank() over ( order by buffer_gets desc ) as rank_bufgets,to_char(100 * ratio_to_report(buffer_gets) over (),'999.99') pct_bufgets from v$sqlarea ) where rank_bufgets < 11;

小于5%为最佳。

 

7.调整滥用磁盘读操作的主要语句


我发现在没有作调整的情况下,在绝大多数的系统中,访问量占前25位的语句的磁盘读操作将占用整个系统所有磁盘和/或内存读操作的75%。

 

select disk_reads, substr(sql_text,1,4000) from v$sqlarea  order by disk_reads desc;


8.表和与它们相关联的索引应当放置在不同的物理磁盘上,以便减少文件I/O。


以上测试也可以通过AWR和STATSPACK来查看. 在分析结果中,我们首先要看的十项内容:
1. 首要的5个等待时间(定时事件)
2. 负载简档(Load profile)
3. 实例效率点击率(Instance efficiency hit ratios)
4. 等待时间(Wait events)
5. 闩锁等待(Latch waits)
6. 首要的SQL(Top SQL)
7. 实例活动(Instance activity)
8. 文件I/0和段统计数据(File I/0 and segement statistics)
9. 内存分配(Memory allocation)
10.缓冲区等待(Buffer waits)

分享到:
评论

相关推荐

    oracle性能查询汇总.sql

    oracle\性能查询汇总.sql 包含监控事例的等待 \回滚段的争用情况 \监控 SGA 的命中率等

    Oracle数据库监控、性能检查小工具(OPCT)

    18.SGA字典缓冲区命中率 19.SGA共享缓冲区命中率 20.SGA重做日志缓冲区命中率 21.内存和硬盘排序比率 22.正在运行的SQL语句 23.字符集 24.MTS 25.碎片程度高的表 26.使用CPU多的用户 27.KILL用户会话 使用说明详细...

    Oracle数据库日常维护方案书.docx

    检查缓冲区命中率 检查共享池命中率 检查排序区 检查日志缓冲区 性能调优及方法 寻找问题根源 System_Event 事件 Session_Event 事件 Session_Wait 应用优化 例程调优 I-O 优化 竞争优化 O-S 监控...

    DBAtools for PL/SQL表空间管理器

    PL/SQL Developer是Oracle数据库当前最流行的开发工具之一,它在ORACLE数据库开发设计方面功能强大,使用方便,但是数据库管理方面一直比较欠缺。 DBATools For PL/SQL Developer 是一款PL/SQL Developer的辅助插件...

    Oracle性能监控工具1.1

    相比1.1版本更新内容: 增加了对11G更好的支持 ...20.SGA重做日志缓冲区命中率 21.内存和硬盘排序比率 22.正在运行的SQL语句 23.字符集 24.MTS 25.碎片程度高的表 26.使用CPU多的用户 27.KILL用户会话

    DBATools For PL/SQL Developer

    查看数据缓存命中率 4.7.查看WorkArea情况 4.8.查看当前会话等待事件 4.9.查看数据库大小 4.10.查看等待事件统计信息 5.清空缓冲区 6.导出数据库表结构文档 7.快速打开TNSNAME.ORA文件 8.快速打开listener.ORA...

    ORACLE9i_优化设计与系统调整

    第一部分 ORACLE系统优化基本知识 23 第1章 ORACLE结构回顾 23 §1.1 Oracle数据库结构 23 §1.1.1 Oracle数据字典 23 §1.1.2 表空间与数据文件 24 §1.1.3 Oracle实例(Instance) 24 §1.2 Oracle文件 26 §1.2.1...

    Oracle 性能调整(真正由ORACLE甲骨文出品)

    典缓冲存储区的大小 – 字典缓冲存储区存储关于数据对象的信息 – 监控V$ROWCACHE,若命中率,考虑增加 SHARED_POOL_SIZE – 监控V$LIBRARYCACHE 来确定多重加载的数量 – 若命中率,确定...

    Oracle数据库日常维护手册

    1.1. 检查 ORACLE 实例状态.............................................................................................. 4 1.2. 检查 ORACLE 服务进程........................................................

    oracle动态性能表

    如buffer cache命中率、软解析率等都可从该视图数据计算得出。  该视图中的数据也被用于监控系统资源使用情况,以及系统资源利用率的变化。正因如此多的性能数据,检查某区间内系统资源使用情况可以这样做,在一个...

    Oracle优化日记:一个金牌DBA的故事 白鳝.扫描版

    STATSPACK报告在 优化项目中的作用优化小技巧 STATSPACK报告头的解读6月12日 阴谋今日点评优化小技巧 分析STATSPACK的负载数据优化小技巧 重要的命中率指标6月13日 演戏今日点评优化小技巧 Top 事件优化小技巧 常见...

    如何解决Oracle 常见错误 ORA-04031(PDF)

    Oracle 常见错误 ORA-04031(PDF) 如何解决ORA-04031 错误 文章内容 1.和共享池(shared pool)相关的实例参数 2.诊断ORA-04031 错误 ...o 库高速缓冲(library cache)命中率 o 共享池大小的计算 4.对ORA-04031 的高级分析

    Oracle数据库实验操作

    实验135:shared_pool的sql命中率 220 实验136:数据字典的命中率查询 223 实验137:shared_pool保留区的判断 223 其它内存优化 224 实验138:db_cache命中率和db_cache的细化管理 224 实验139: v$latch的使用 225 ...

    Woodpecker for Oracle

    Woodpecker内置监视的系统信息包括数据字典、SQL及游标、命中率、重做日志、回滚段、共享池以及会话统计等,也可以添加额外的自定义SQL语句获取更多详尽的运行时动态数据。Woodpecker是Oracle DBA进行日常管理的有效...

    某银行数据库月度巡检报告

    (二) 数据库负荷压力及各项命中率分析 32 (三) 等待事件 33 (四) 统计信息分析 34 (五) 数据库I/O性能 36 (六) 索引/行迁移/行链 38 (七) 失效对象 39 (八) Enqueue等待分析 41 (九) Latch分析 41 (十) Resource ...

    Farseer开源框架.net 4.0 C# ORM

    Farseer.net原是在Qyn.Studio V5.0 框架更名而来。 该框架是基于.net framework 4.0 的...目前支持整表缓存、部份缓存(根据命中率进行选择)、SQL执行监视。(很多细节,还是需要大家体会,或者观看后续发布的教程)

    整理Oracle数据库中数据查询优化的一些关键点

    随着一个应用系统中数据的动态增长,数据量变大,数据库查询效率就会有所降低,应用系统的响应速度也随之减慢,尤其对于海量数据的管理和查询问题就更加突出,Oracle查询优化就显得尤为重要。 目前通用的数据库产品...

    db2-技术经验总结

    1.64. 计算数据库缓冲池的命中率公式 87 1.65. 查看表空间状态 88 1.66. UPDATE的N种用法 88 Examples 88 1.67. 查看表状态的快照命令 90 1.68. RUNSTATS的使用案例 91 1.69. Bufferpool设置过大导致数据库无法启动...

    华盾服务器管理专家 3.0.3.78.rar

    在非法信息管理中,首家采用多关键词技术,极大的提高了非法信息的发现命中率,与减低了误伤率。   强大的用户管理   可以添加、删除管理者用户,为不同用户授与不同权限,精确到具体的后台每一个页面。   ...

    数据库优化设计方案.doc

    对这些 内存缓冲区的合理设置,可以大大加快数据查询速度,一个足够大的内存区可以把绝大 多数数据存储在内存中,只有那些不怎么频繁使用的数据,才从磁盘读取,这样就可以 大大提高内存区的命中率。 三、规范与反...

Global site tag (gtag.js) - Google Analytics