作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我很难理解以下两个查询如何相互阻塞。
运行查询(虽然几乎可以是任何东西):批量插入 [Import].[WorkTable] ...
我正在尝试同时运行以下 SELECT 查询:
SELECT *
FROM ( SELECT * FROM @indexPart ip
JOIN sys.indexes i (NOLOCK)
ON i.object_id = ip.ObjectId
and i.name = ip.IndexName) i
CROSS
APPLY sys.dm_db_index_physical_Stats(db_id(), i.object_id,i.index_id,NULL,'LIMITED') ps
WHERE i.is_disabled = 0
第二个查询被第一个查询阻塞,并显示一个 LCK_M_IS 作为等待信息。导入信息是临时表@indexPart包含了一条完全不同的表上的索引记录。我的期望是交叉应用会尝试在与运行的其他查询无关的那个索引上运行统计信息。
谢谢
编辑(新):
经过更多测试后,我想我找到了罪魁祸首,但又无法解释。
我希望有人能给我解释一下...
最佳答案
问题可能出在您使用的 where 子句上。它应该在内联表中。以下更改可能会有所作为。
FROM ( SELECT * FROM @indexPart ip
JOIN sys.indexes i (NOLOCK)
ON i.object_id = ip.ObjectId
and i.name = ip.IndexName
WHERE i.is_disabled = 0) i
如果您愿意,这可能会减少传递到交叉应用语句的记录数。
关于SQL Server 2012 查询被 LCK_M_IS 阻止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31091058/
我很难理解以下两个查询如何相互阻塞。 运行查询(虽然几乎可以是任何东西):批量插入 [Import].[WorkTable] ... 我正在尝试同时运行以下 SELECT 查询: SELECT * F
我是一名优秀的程序员,十分优秀!