我知道如何关闭SQL Server中的行级锁定和页级锁定,但我找不到强制SQL Server使用行级锁定的方法。有没有办法强制SQL Server使用行级锁定而不是页级锁定?
我知道如何关闭SQL Server中的行级锁定和页级锁定,但我找不到强制SQL Server使用行级锁定的方法。有没有办法强制SQL Server使用行级锁定而不是页级锁定?
所以,总的来说
UPDATE
Employees WITH (ROWLOCK)
SET Name='Mr Bean'
WHERE Age>93
应该没问题,但根据索引和服务器负载情况,可能会升级为页面锁定。
ALTER TABLE tableName SET (LOCK_ESCALATION=DISABLE)
命令有效地禁用锁升级。 - Thiago Dantas使用ALTER/CREATE INDEX的ALLOW_PAGE_LOCKS子句:
ALTER INDEX indexname ON tablename SET (ALLOW_PAGE_LOCKS = OFF);
您不能强制优化器做任何事情,但您可以指导它。
UPDATE
Employees WITH (ROWLOCK)
SET Name='Mr Bean'
WHERE Age>93
请参见 - 使用锁定和提示控制SQL Server