enq: TM
今天下午,有台服务器出现异常,响应特别慢,io等待奇高,awr top 5事件如下: 经回查ash,找到了造成这些事件的sql语句,如下: select * from v$active_session_history where event = ' enq: TM - contention ' select * from v$active_session_history where event = ' enq: KO - fast object checkpoint ' enq-TM的事件主要由insert /*+ append */语句引起,如下: enq-TM是一个表级别锁,在本例中主要是由于append引起。 TM 锁在下列场景中被申请: 在OPS(早期的RAC)中LGWR会以ID1=0 & ID2=0去申请该队列锁来检查 DML_LOCKS 在所有实例中是全0还是全非0 当一个单表或分区 需要做不同的表/分区操作时,ORACLE需要协调这些操作,所以需要申请该队列锁。包括: 启用参考约束 referential constraints 修改约束从DIASABLE NOVALIDATE 到DISABLE VALIDATE 重建IOT 创建视图或者修改ALTER视图时可能需要申请该队列锁 分析表统计信息或validate structure时 一些PDML并行DML操作