SQL Server存储过程能解决锁表问题

0
现在碰到一个问题,在ETL过程中,发现总有进程锁表。
请教大神两个问题:
第一:我怎么能查看是哪个机器或者是哪部分操作锁死了我的表。
第二:有没有存储过程,能够解锁这个数据库。
已邀请:
1

天桥下的郑成功 - Hadoop大数据开发工程师、数仓架构师、熟悉数据仓库设计、Hadoop、Spark、HBase、Hive、SSIS等开发 2015-05-13 回答

可以通过查询 DMV知道数据库里有没有表被锁住了。或者阻塞了。
比如这张表,sys.dm_tran_active_transactions 你可以通过begintime列查询到几时开始的事务。
如果时间过长说明是阻塞了

还有如下2个View,可以查询到有哪些Session正在执行,哪些Session被block了。
sys.dm_exec_requests
sys.dm_exec_connections

查询到 Block别人的Session 你可以手动 Kill它,那么别的进程就可以正常执行了

要回复问题请先登录注册