一段时间后,我的 SQL Server 2012 数据库出现了奇怪的行为。一些查询不会运行,包含简单选择的查询。对 ALTER PROCEDURES 的查询也不会运行(它们执行然后卡在执行中,直到我取消它们)。
我运行了一种方法来查看哪些表被锁定,我看到的唯一一个是:
sysobjvalues KEY (ec05837cd075) S 共享
一旦我重新启动 SQL Server 服务,这种情况就会稳定下来。
数据库中的某些表允许 SELECT,而有些则不允许。我虽然这是由于一些锁,但是查看锁的查询不会显示我的任何数据库表都被锁定。什么可能导致这种奇怪的行为?
顺便说一句:这是我运行以获取锁信息的查询:
选择 object_name(P.object_id) 作为表名 , 资源类型 , 资源描述 , 请求模式 , 案例请求模式 当'S'然后'共享' 当'你'然后'更新' 当“X”时“独家” 当'是'然后'意图共享' 当'IU'然后'意图更新' 当'IX' THEN 'Intent Exclusive' 当“SIU”时“共享意图更新” 当“六”时“共享意图排他” WHEN 'UIX' THEN 'Update Intent Exclusive' 当'BU'然后'批量更新' WHEN 'RangeS_S' THEN '共享范围 S' WHEN 'RangeS_U' THEN '共享范围 U' 当'RangeI_N'然后'插入范围' WHEN 'RangeI_S' THEN '插入范围 S' WHEN 'RangeI_U' THEN '插入范围 U' WHEN 'RangeI_X' THEN '插入范围 X' WHEN 'RangeX_S' THEN '专属范围 S' WHEN 'RangeX_U' THEN '专属范围 U' WHEN 'RangeX_X' THEN '专属范围 X' 当'SCH-M'然后'模式修改' 当'SCH-S'然后'模式稳定性' 否则为空 以 REQUEST_LOCK_MODE 结束 FROM sys.dm_tran_locks AS L 加入 sys.partitions AS P 在 L.resource_associated_entity_id = p.hobt_id
谢谢