外键没有索引哪些DML操作会被阻塞
通过主外键关联的两张表,除非永远不对主表的主键字段作update、delete操作,否则oracle会推荐在子表的外键上建索引。为何要在外键上建索引,不建索引会有产生哪些负面影响,我们就来测试一下###准备好测试用的表create table t1010_pk1 (id number,pcol varchar2(1)) tablespace test;alter table t1010_pk1 add con...
探究隐含参数_fairness_threshold
首先说明_fairness_threshold参数仅在RAC环境下才有意义,让我对这个参数引起关注是在某一次查询v$cr_block_server时,发现该视图有一个名为FAIRNESS_DOWN_CONVERTS的字段,官方文档里将其解释为:Number of times an instance receiving a request has down-converted an X lock on a block because it was not modifying...
linux上设置大内存页解决kswapd0进程过渡消耗cpusys的问题
环境:SLES11 SP4 + oracle 11.2.0.4新搭建测试数据库,跑了两天左右发现一个名为kswapd0的进程竟然占用了1个cpu资源(该主机一共只有2个cpu),而且几乎都耗在cpusys上。如下图所示:图1网上搜索得知kswapd0是一个内核进程,用来处理页的交换,当OS的可用内存小于阀值时,kswapd会将部分进程的页从物理内存交换到...
分析解决11gR2 双节点RAC环境下的gc cr block busy/gc buffer busy acquire等待
? 系统环境两节点的RAC:AIX6.1+Oracle 11.2.0.3.3 ? AWR里展示出来的各种症状(数据来自实例2)虽然应用没有报障,但AWR报告里的各种迹象已经很明显了(1) gcbuffer busy acquire排进了Top 5 Timed Foreground Events图-1...
create index...online操作过程中会申请持有哪些锁
11g下,在给表创建索引时如果加上online选项,不会阻塞同时进行的DML操作,相当给力的一个功能。与不带online的索引创建方式相比在锁的申请与持有机制上有何区别,我们来比较一下###创建测试表sqlplus ad/Uiop246!create table t0528_1 as select * from all_users;select object_id from dba_objects where ob...
oracle 11g下如何捕捉library cache对象执行时产生的lock、pin等信息
我们知道使用10049 event可以跟踪语句执行过程中在library cache对象上产生的lock和pin的动作,但此方法仅在Oracle 10g版本下有效,11g下另有他法。先来回顾一下10g里是怎么做的//////////////////////////// ORACLE 10gR2 下的测试//////////////////////////###创建测试表,执行测试SQL语句drop table t2;crea...
浅谈library cache里的争用(一)
library cache contention
解析cursor pin S等待事件中的p1、p2、p3值
造成cursor: pin S等待事件最常见的触发原因是两个Session运行同一段代码---制造数据:create table ad.t1 tablespace ts_pub as select * from all_users;---session 1: sid=4727,运行如下procedureselect * from v$mystat where rownum=1;declarev_uid number;v_sql varchar2(1000);v_cur number;ret_exe...
使用了索引就一定能避免cache buffers chains争用吗
访问buffer cache里的数据块时需要先以独占模式申请管理hash bucket的latch,这个latch的名称就是所谓的cache buffers chains,系统中出现latch:cache buffers chains争用往往意味着以下两种可能:1、多个会话并发访问相同的数据块(这是最常见的一种情况)2、不同的数据块挂载在同一个hash bucket下,或者虽然挂载在不同的...