SQL Server有很多方法locking resource。我试图了解是什么让SQL Server选择它将选择的锁级别。我想知道它何时会使用Page或表锁定在行锁上?
问题
我有一个PHP应用程序,它使用每个http请求的事务来确保在提交之前执行所有查询。令我困惑的一个问题是当许多(5+)人使用应用程序时,应用程序似乎挂起(旋转很长一段时间)!除了数据库锁之外,我能想到的任何东西都不会导致这样的行为!我认为它发生的情况是SQL Server选择由于某种原因选择Page lock或Table lock over rowlock。我试图确保SQL Server正在执行行锁而不是页锁或表锁。我正在使用ORM,所以我不能在查询中使用ROWLOCK提示。
我有办法运行查询解释计划以查看将使用的锁级别吗?