一个简单的树查询
SQL> select * from treeview;PARENT CHILD---------- ----------a ba c...
dml_locks的参数
dml_locks这个参数呢,主要是用来规定TM锁的总数,实际上这个参数可以设置为0,表示我们要取消数据库获得TM表级锁的能力,这时候数据库的数据封锁粒度实际只有一级,就是行级(TX)。这样设置之后,其实数据行的updte...
Bitmap的问题
今天工作中发现了产品部署在Oracle上的一个defect,由于在一个low cardinality建立了一个bitmap索引,由于程序对于这个列的修改过于频繁,导致数据库的性能下降。我们都知道每个位图索引被分为多个bitmap segment,而...
对table的操作进行监控
SQL> create table t(id int);Table createdSQL> select * from user_tab_modifications;TABLE_NAME &n...
在Oracle中移动数据文件
在Oracle中移动数据文件(转)一.移动数据文件: -- 可以用ALTER DATABASE,ALTER TABLESPACE两种方法移动数据文件。 1. ALTER DATABASE方法;-- 用此方法,可以移动任何表空间的数据文件。 STEP 1. 下数据库: $ s...
解释XIDUSN XIDSLOT XIDSQN
XIDUSN:就是事务的回滚段号XIDSLOT:就是ITL列表中,slot的号XIDSQN:就是表示这个slot被重复使用的次数在v$lock视图中,有两列id1和id2其中id1就是xidusn+xidslot的组合,而id2就是xidsqn的值表示slot实际使用的次数因此...
对于Oracle锁的一些理论总结
首先什么是锁呢?可以理解为他是对一种共享资源并发访问的一种控制:)在数据库中,基本的锁类型有两类,分别是X-排他锁:如果对象被一个排他锁给琐住,那么按照锁的相容性来讲其他会话就不能够在对这个会话所加锁的...
自己总结的一些enqueue的东东
When running the declare operation,IRMDB have the top hot wait event named ENQUEUE1,we can see this kind of wait events by using the dynamic view named v$session_wait*********************************...
buffer cache部分原理(LRU)
当一个server process到buffer cache访问数据块的时候,首先他要搜索LRU列表的MRU看看他所要找的数据块在不在我们buffer_cache中,如果在就直接访问这个block,此时的命中是在buffer中,如果没有找到所...
flush buffer cache
如果访问的数据块不在buffer cache中,就需要扫描LRU链表(寻找free buffer),当达到扫描块数限制后(40%)还没有找到空闲buffer,就需要通知DBW0将脏缓存回写到磁盘。(如果checkpoint queue达到了2...
记录一个Oracle参数
use_indirect_data_buffers这个参数使32位平台使用扩展缓冲缓存基址,以支持支持4GB多物理内存。设置此参数,可以使SGA突破在32位系统中的2G最大限制。64位平台中,这个参数被忽略...
Redo故障的恢复
一.丢失inactive日志文件组的恢复: 由于inactive日志文件组表示已经完成了检查点(dirty数据已经被写入数据文件)。数据库本身不会发生数据库丢失,如果在这个时候相应的redo丢失/损坏,可以通过clear重建日...
NOLOGGING和FORCE LOGGING的理解
其实nologging与表模式,插入模式,数据库运行模式(archived/unarchived)都有很大的关系:总结如下:注意append是一种hint;一般我们可以这样来使用insert /*+append+/ into mytable values(1,'alan');数据库在...
触发LGWR进程写日志的4个条件
总结一下Redo写的触发条件:*******************************1,每三秒钟超时(timeout):当LGWR处于空闲状态时,它依赖于rdbms rpc message等待事件,处于休眠状态,直到三秒时间到,如果这个时候LGWR发现有Red...
Oracle in and exist
复习一下in&exist语法:一般来讲in是对外表和内表作Hash Join,而exist是对外表和内表做了一个nested loop,也就是说,对于exist,针对外表(需要遍历其所有内容)需要遍历的每一行,都会对内表进行一次查询,因此如果...
Update 多个关联表SQL的写法
更新一列:update mytab a set name=(select b.name from goal b where b.id=a.id)where exists (select 1 from goal b where b.id=a.id);更新多列:update mytab a set (name,a...
Checkpoint和SCN的解析
年初的时候拜读完了eygle写的《深入潜出》这本书,感觉收获很大。正好可以总结一下SCN和checkpoint这两个东东。Checkpoint很多人都把checkpoint的概念给复杂化了,其实checkpoint这个数据库概念引入的真正意义就是用...
Oracle9i&10g编程艺术-深入数据库体系结构
Thomas Kyte这本书写的非常的好。目前自己也在拜读学习中......目前已经读到了第6章(锁)。抽时间要开始整理之前读过的知识了:)to be continued......
聚焦Oracle,坚持走技术路线
接触和学习Oracle有段时间了,是她陪我走过了自己最灰暗寂寞的时刻,可以说工作之外Oracle的书籍一直让我爱不释手。成为Oracle高级工程师也是自己的理想,2年的时间自己的勤奋和努力,没有白费。工作中小有进展,但...