发生TM锁争用的情况
生活随笔
收集整理的這篇文章主要介紹了
发生TM锁争用的情况
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
Row Lock(TX)保護(hù)特定行;
Table Lock(TM)保護(hù)整個(gè)表
一般發(fā)生TM鎖爭(zhēng)用的情況如下:
1)修改無索引外鍵(foreign key)的父鍵時(shí):在子表的外鍵沒有索引的狀態(tài)下,若父表的key被修改,則對(duì)子表應(yīng)該以shared模式或shared_sub_exclusive模式(這兩種模式除了shared模式與自己可以共享,其他兩兩之間均不能共享)獲得TM鎖,已獲得的TM鎖一直擁有到父表修改key的事務(wù)結(jié)束為止(commit或rollback),但是9i后算法大幅改進(jìn),一般不會(huì)再發(fā)生爭(zhēng)用。
2)DML和DDL之間的TM鎖爭(zhēng)用
對(duì)于事務(wù)正運(yùn)行的表,基本上不可能執(zhí)行DDL,因此,這時(shí)不會(huì)發(fā)生爭(zhēng)用引起的性能問題。接下來,看具體的例子:
SQL> create table t as select object_id,object_name from dba_objects;
表已創(chuàng)建。
在另一個(gè)會(huì)話中執(zhí)行:
SQL> alter table t add id2 number;alter table t add id2 number
總結(jié)
以上是生活随笔為你收集整理的发生TM锁争用的情况的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 位图索引(bitmap index)冲突
- 下一篇: ORACLE性能优化救生指南_21章 重