我知道在Oracle數據庫中,我可以配置一個標誌,即可以運行在特定DB上運行的所有選擇查詢,就像添加了NOLOCK
提示一樣。 SQL Server中是否有類似的東西?SQL Server中的服務器端NOLOCK
0
A
回答
3
您可以將數據庫設置爲READ_ONLY模式,這肯定會更改某些事務規則,但我認爲沒有更接近全局NOLOCK的東西。
編輯
如果你希望能夠進行刪除,插入和更新,但你不希望讀者鎖定或必須指定提示或隔離級別,你也可以考慮開啓READ_COMMITTED_SNAPSHOT ,但是這裏的語義和NOLOCK提示不太一樣。
1
不在每個數據庫級別。你只能用提示或set transaction isolation level
來做。您可以將數據庫設置爲只讀模式,默認情況下可能具有該效果,但會(如名稱所示)阻止寫入數據庫。
這對於定期刷新的數據庫可能很有用。您將數據庫設置爲只讀,並將其設置爲可寫入更新,然後回到只讀狀態。
0
不是針對整個數據庫,但爲你做的每個查詢:
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
等
在讀模式下設置DB不會允許我進行刪除和插入。 這是否意味着我必須爲所有「選擇」創建一個只讀副本? – Sarit 2010-08-17 06:58:48