oracle造成锁表的情况:
一、查看锁的对象视图:select object_id,session_id,locked_mode from v$locked_object;
二、0:none 1:null 空 2:Row-S 行共享(RS):共享表锁 3:Row-X 行专用(RX):用于行的修改 4:Share 共享锁(S):阻止其他DML操作 5:S/Row-X 共享行专用(SRX):阻止其他事务操作 6:exclusive 专用(X):独立访问使用 。
常用的sql会造成锁表:
1、select ... from ... for update; 是2的锁。
2、insert / update / delete .(DML).. ; 是3的锁。
3、创建索引的时候也会产生3,4级别的锁。
4、主外键约束时 update / delete ... ; 可能会产生4,5的锁。
5、DDL(alter,drop)语句可能会产生时是6的锁。