没有必胜的秘籍,没有方程式遵循~~
要赢~~只有全身心的投入!
晶晶实验五_讨论锁 篇
上一篇 /
下一篇 2008-02-17 22:04:50
/ 个人分类:晶晶oracle实验系列
查看( 1476 ) /
评论( 24 )
锁是保护和用户相关的资源,例如:表,用户,会话.
k"S9jT!B&q;?0
和闩比起来,锁的实现要复杂的多.锁的获取和释放也没有闩快,有些锁持有的时间会比较长,如果说TM锁和TX锁.在DML操作中,用户不提交,这两个锁就不会被释放.锁主要保护会话层面上的一些资源.理解锁的原理还是比较简单的.不过先要明白相关锁的一些数据结构.下面我们先从介绍锁相关的数据结构开始入手.ITPUB个人空间 W!d~*t1WZs;Fx'q
一,池ITPUB个人空间]ny.HA
F
在SGA中和锁相关的内存区有两块.我分别称呼他们为'队列资源池'和'锁池'.池其实指的就是一块固定大小的内存,是计算机中经常会用到的一个计算机术语.
Ql ? M"pA0
队列资源池:存放所有的队列资源.所有的队列锁都是队列资源.例如:一个表上的TM锁就是一个队列资源.一个数据库中可以有成千上万个表,每个表的TM锁,都是单独的一个队列资源.为了对他们加以区分,要为这各个表的TM队列资源起个名字,名字的格式'队列资源类型-id1-id2'.id1 和id2分别是两个相关某种队列资源的信息,这两个信息根据不同的队列资源类型而不同,对于TM队列资源来说,id1取值通常是表的对象编号,(可以在dba_objects视图中的object_id或data_object_id列查看).id2取值为0.也就是说对于TM类型的队列资源来说,有多少个表就有多少个TM队列资源.如果有一个表的TM队列资源被占用,他就会被放进队列资源池.队列资源池的大小可以如下命令查询得知:
?E7w7{:xS GL
d0
SQL> select * from v$resource_limit where resource_name='enqueue_resources';ITPUB个人空间zw*xP1GRcw S/n