2016年12月20日

cache buffer 相关的闩锁等待事件(cache buffers lru chain/cache buffers chain)

摘要: cache buffers lru chain原因高负荷的cache吞吐量,效率差的sql语句(全表扫描,或不正确的index range scans)dbwr写出速度太慢,前台进程花费很多时间持有latch查找free buffer。 cache buffers lru chain保护buffer 阅读全文

posted @ 2016-12-20 22:34 wangxingc 阅读(599) 评论(0) 推荐(0) 编辑

oracle解析相关的等待事件(Shared Pool latch/library cache: mutex X/cursor: pin S)

摘要: Shared Pool/Library Cache Latch Contention可能的原因sql语句不能被重用,语句没有使用绑定变量,不合适的应用游标缓存大小,频繁的登入或登出,数据库对象上做过ddl操作,共享池太小等在会话级别V$SESSTATparse time CPUparse time 阅读全文

posted @ 2016-12-20 16:52 wangxingc 阅读(1560) 评论(0) 推荐(0) 编辑

2016年12月14日

通过dbms_lock了解oracle内部enqueue机制

摘要: 同时被调用的共享代码如下 锁代码如下 同时开5个sqlplus 窗口,模拟5个并发会话要同时执行函数fun_wxc的场景 开始后5个会话依次完成,结果如下 会话1以共享模式获取资源fun_wxc上的锁,成功 会话2以共享模式获取资源fun_wxc上的锁,因为锁模式是兼容的,所以可以成功获取,并且与会 阅读全文

posted @ 2016-12-14 16:39 wangxingc 阅读(595) 评论(0) 推荐(0) 编辑

11g新特性之服务器结果缓存(result cache)

摘要: 以前对oracle结果缓存这个特性没注意过,最近项目中有个地方刚好用了一下,效果很不错,这里总结一下。 服务器端结果缓存 服务器端结果缓存实在共享池中的一段内存区域,用于缓存sql或pl/sql函数的执行结果 工作原理 当查询开始执行的时候,首先在结果缓存中区查找看有没有先前的执行结果,如果结果存在 阅读全文

posted @ 2016-12-14 14:40 wangxingc 阅读(880) 评论(0) 推荐(0) 编辑

oracle中几种游标使用方式的性能测试

摘要: 硬解析(不使用绑定变量) 执行时间大概在33.79s 软解析(使用绑定变量,设置session_cached_cursors=0以禁用游标缓存) 这两种方案性能测试对比,使用tom的runStats_pkg包收集 游标缓存(使用绑定变量,设置session_cached_cursors>0) p2 阅读全文

posted @ 2016-12-14 14:35 wangxingc 阅读(1207) 评论(0) 推荐(0) 编辑

2016年12月13日

11g新特性之自适应游标共享(Adaptive Cursor Sharing)

摘要: 自适应游标共享会使包含绑定变量的单个语句拥有多个执行计划,所谓自适应是指执行计划会依据绑定变量的具体值而适配一个最适合该值的执行计划。 隐藏参数_optimizer_adaptive_cursor_sharing=TRUE 开启或关闭此特性。 首先:游标是否可以被ACS使用,首先游标必须是绑定变量敏 阅读全文

posted @ 2016-12-13 22:37 wangxingc 阅读(2727) 评论(0) 推荐(0) 编辑

11g新特性之基数反馈(Cardinality Feedback)

摘要: 由于表上缺少统计信息,或者统计信息陈旧等情况,会造成优化器生成sql语句执行计是无法评估出一个准确的执行计划,为了纠正这种情况,对于重复执行的sql语句,基数反馈可以根据语句执行时实际的基数信息重新优化执行计划。 该特性受影藏参数 _optimizer_use_feedback 控制。并且系统参数 阅读全文

posted @ 2016-12-13 21:25 wangxingc 阅读(1644) 评论(0) 推荐(0) 编辑

2016年11月21日

buffer busy waits 等待事件

摘要: 虽说是buffer busy,还不如说是热块争用。(因为对于一个给定的数据块在buffer cache中的链表位置是固定的)首先大概描述一下oracle怎么去修改数据块1.首先根据块的地址(数据文件编号,块编号)计算出块所在的散列桶(bucket)。2.找到保护该散列桶的cache buffer c 阅读全文

posted @ 2016-11-21 12:47 wangxingc 阅读(3057) 评论(0) 推荐(0) 编辑

2016年11月14日

绑定变量窥测(Bind Variable Peeking)

摘要: 绑定变量窥测是oracle在进行硬解析生成执行计划的时候会窥探绑定变量的真实值,去评估绑定变量的谓词条件的选择率,影响执行计划是选择访问路径是先走索引扫描进而去访问表还是直接走全表扫描。 没有绑定变量窥测这一特性的时候oracle怎么去评估选择性那,是基于字段统计信息中ndv,ndv接近表的行数的时 阅读全文

posted @ 2016-11-14 12:52 wangxingc 阅读(871) 评论(0) 推荐(0) 编辑

2016年8月27日

实验:修改日志文件配置优化系统吞吐量

摘要: 关于oracle 联机日志文件的配置,没有多少好说的,出于对性能的影响考虑,两个规则,首先 :日志文件是否够大;其次:日志文件组数是否够多。至于文件存放的物理磁盘,由于日志文件是顺序写的,即使放到固态盘上,与普通的机械硬盘相比,优势并不多。 这里通过实验来验证由于日志文件配置的问题,对oracle系 阅读全文

posted @ 2016-08-27 21:33 wangxingc 阅读(419) 评论(0) 推荐(0) 编辑

导航