我知道在Oracle DB中,我可以配置一个标志,所有在特定db上运行的选择都可以像在 NOLOCK 提示添加了。 SQL Server中有类似的东西吗?

有帮助吗?

解决方案

您可以将数据库设置为 只读 模式,这肯定会改变一些交易规则,但我认为与全球诺洛克有任何接近。

编辑

如果您想能够执行删除,插入和更新,但是您不希望读者锁定或必须指定提示或隔离级别,则也可以考虑打开 READ_COMMENT_SNAPSHOT, ,但是那里的语义再次与Nolock提示不完全相同。

其他提示

不在人均水平。您只能用提示或 set transaction isolation level. 。您可以将数据库设置为仅读取模式,默认情况下可能具有该效果,但是(如名称所建议的)将不再写入数据库。

这对于定期刷新的数据库可能很有用。您将数据库设置为仅阅读,并将其设置为可写的,以便为更新,然后返回只读。

不是整个数据库,而是针对每个查询:

SELECT a, b
FROM t1
WITH (NOLOCK)
WHERE t1.c = @value

或者

SELECT a, b
JOIN t1
ON t1.id = t2.id
WITH (NOLOCK)
FROM t2
WHERE t2.c = @value

ETC

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top