【发布时间】:2016-05-18 04:51:09
【问题描述】:
考虑一个简单的查询,就像一条 select 语句一样简单:
select * from Teachers where Name like N'%John%'
我一开始这个查询,它就结束了。因此,我没有机会看到 sp_who2 来找出这个查询对数据库对象应用了哪种类型的锁。
我可以用事务语句扩展这个查询:
begin transaction
select * from Teachers where Name like N'%John%'
-- Here, I won't commit transaction, thus holding the lock
但坦率地说,这似乎不是自然锁定检测的正确方法,因为我已经使用事务语句操纵了默认行为。
我们是否有工具,例如 Display Estimated Execution Plan 来向我们展示有关锁定给定查询的一些信息?如果不是,我们如何找出给定查询可以在数据库上应用哪种类型的锁,因为它们执行得太快而无法检测到。
【问题讨论】:
标签: sql-server locking