更新时间:2020-07-28 14:19
在云数据库RDS SQL Server中出现阻塞情况。
事务之间锁资源争抢导致出现阻塞情况。
阿里云提醒您:
- 如果您对实例或数据有修改、变更等风险操作,务必注意实例的容灾、容错能力,确保数据安全。
- 如果您对实例(包括但不限于ECS、RDS)等进行配置与数据修改,建议提前创建快照或开启RDS日志备份等功能。
- 如果您在阿里云平台授权或者提交过登录账号、密码等安全信息,建议您及时修改。
select dtl.request_session_id as waitSID, der.blocking_session_id as blockSID, dowt.resource_description, der.wait_type, dowt.wait_duration_ms, DB_NAME(dtl.resource_database_id) as DB, dtl.resource_associated_entity_id as waitingAssociatedEntity, dtl.resource_type as waitResType, dtl.request_type as waitReqType, dest.[text] as waitSQL, dtl1.request_type as blockReqType, dest1.[text] as blockingSQL from sys.dm_tran_locks dtl join sys.dm_os_waiting_tasks dowt on dowt.resource_address=dtl.lock_owner_address join sys.dm_exec_requests der on der.session_id=dtl.request_session_id cross apply sys.dm_exec_sql_text(der.sql_handle) dest left join sys.dm_exec_requests der1 on der.session_id=dowt.blocking_session_id outer apply sys.dm_exec_sql_text(der1.sql_handle) dest1 left join sys.dm_tran_locks dtl1 on dtl1.request_session_id=der1.session_id
select OBJECT_NAME(i.object_id) obj, i.name from sys.partitions p join sys.indexes i on i.object_id=p.object_id and i.index_id=p.index_id where p.partition_id=[$Waiting_Associate_Entity]
说明:[$Waiting_Associate_Entity]为等待的资源参数值。
kill
命令,终止掉阻塞源的会话。
注意:该操作步骤为快速解决方法,如果需要从根本上解决问题,则需要分析下发生阻塞的信息,确认下发生阻塞的原因,根据原因制定方案解决问题。一般常见原因是缺失索引或者大事务,导致事务执行时间长,持有锁的时间也会增加,从而引起了大量阻塞的情况。
在文档使用中是否遇到以下问题
更多建议
匿名提交