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