oracle索引块分裂(enq: TX – index contention)
索引块分裂 B*tree索引是包括oracle在内的数据库中最常见的索引结构。它是一种类似树状结构的索引,最底层的块叫做叶块(leaf block)。叶节点(leaf node)这一层实际上是一个双向链表。如果是一个高度(height)为3的B*tree索引,那么叶块上一层叫做分支块(branch block)。最顶层叫做根块(root block)...
与序列相关的等待事件
与序列相关的等待事件:1.row cache lock调用sequence.nextvald的过程中,会修改数据字典信息,这是个串行操作,发生在shared pool中的dictionary cache中,如果并发量大的话cpu会被耗尽,有宕库的危险。nocache属性的sequence上会很容易发生这个争用。2.SQ锁 -- enq: SQ - contention在调用sequence.nex...
清理.patch_storage目录
某天突然接到告警说oracle目录使用率高,经过检查发现.patch_storage占了大约40G的空间。.patch_storage的作用?每次在打补丁的时候,会对库文件和模块做一些改变;变动之前,opatch会在$ORACLE_HOME/.patch_storage/<patch-id_timestamp> 目录中创建一个snapshot。有时候会出现需要回滚补丁的时候,这个目录下面会有一个...
oracle表添加带有默认值的列(11g&&12c)
有时需要对表增加带有默认值的列,这时候如果表的数据量很大,那么会花费很长时间,在此期间,表上会加6级锁,连select都会被阻塞。这在生产系统是不可接受的。从11g开始,这种情况有了明显的改善。如果增加的列复合default+not null这两个条件的话,它只会去更新数据字典,不会去更新物理行,所以操作几乎可以很短的时间...
oracle12cR2增加节点删除节点挽救集群(实战亲测)
数据库版本:[oracle@jsbp242305 ~]$ sqlplus -V SQL*Plus: Release 12.2.0.1.0 Production 12.2数据库目前有一个bug,sql*plus改sys用户口令会hang住,因为12.2内部行为有了变化,更改密码去更新一张基表的时候有问题,之前做过hanganalyze,我记得好像更改密码的会话在等待raw cache loc...
SQL优化之连接谓词推入
SQL优化之连接谓词推入:环境准备:create table emp1 as select * from emp;create table emp2 as select * from emp;create index idx_emp1 on emp1(empno);create index idx_emp2 on emp2(empno);create or replace view emp_view as select emp1.empno as empno1 from emp1;create or replace vie...
oracle 11gSPM手动绑定执行计划
自动计划捕获:SQL> sho parameter OPTIMIZER_CAPTURE_SQL_PLAN_BASELINESNAME TYPE &nb...
read by other session原理和实战解决思路
3月17日七点左右,客户的一套11gRAC突然出现活动会话增加,等待事件过高,cpu使用率几乎接近0的情况。下面尽可能还原解决这个问题的过程:查询等待事件: select inst_id, event#, event,count(*) from gv$session where wait_class# <> 6 group by inst_id, event#,even...
oracle 11g自动杀锁脚本
最近临近春节,客户的一套11gRAC下午经常会出现锁,开发人员都回家了无法修改逻辑。为了避免过年期间因为这个每天都播vpn处理,所以赶忙写了一个自动杀锁的脚本。这个脚本有几点需要注意的:1.针对于linux系统2.oracle 11g单实例和RAC都可以3.考虑到了active的锁不能杀4.有的锁的锁源会是一些系统进程,担心杀掉以后库...
oracle hanganalyze的用法以及trace文件分析(通过library cache pin和lock)
概述:1.详细讲解了library cache pin和library cache lock的形成原因2.介绍了hanganalyze的用法3.详解了hanganalyze产生的trace文件的解读方法hanganalyze有两种使用方法:a.alter session set events 'immediate trace name hanganalyze level <level>';会话级别,单实例和rac都可以使用。b.--for 单实例oradebu...