2009-11-03 73 views
5

我知道SQL Server中的默認TRANSACTION ISOLATION LEVEL是「已讀提交」。如果我想將其更改爲「READ UNCOMMITTED」,我該如何更改此配置?如何更改SQL Server 2005中的默認TRANSACTION ISOLATION LEVEL?

注意:我不能使用SET TRANSACTION ISOLATION LEVEL,它只適用於當前會話。我無法在查詢中添加NOLOCK,因爲涉及數千個查詢。

感謝


謝謝您的回答。我們可以閱讀髒行。更新在我們的例子中也不是問題。但是,我真的想要更改此隔離級別的默認配置。請提供幫助。

我不能「SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED」。我必須改變世界。


我們仔細審查了兩個快照隔離級別。他們不能用於我們的情況。

+0

我非常好奇,你正在運行到哪裏讀未提交的是,雖然是你唯一的解決辦法是什麼具體問題?我正在假設某種鎖爭論,但解決這些問題的方法有很多。 – 2009-11-04 00:29:34

+0

我偶然發現這是否有可能,因爲我想知道是否有人可能對我們做過這件事。有人知道嗎? – Joshua 2011-01-13 17:39:12

回答

1

What about

SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED 

這將僅適用於當前的事務。

+0

這不僅適用於當前事務,而且適用於連接的持續時間。請參閱http://msdn.microsoft.com/en-us/library/ms173763(v=SQL.90).aspx以供參考。 – 2010-10-20 20:58:00

3

我真的不認爲你應該在全球範圍內設置它。你應該非常小心地設置這一點,因爲你可以有很多不同的問題結束:

  • 丟失更新
  • 非重複讀
  • 髒讀
  • 幻像讀

有沒有辦法在數據庫或服務器級別設置它 - 它只能設置在連接級別。

您可以在數據庫級別執行的最佳操作是設置ALLOW_SNAPSHOT_ISOLATIONREAD_COMMITTED_SNAPSHOT屬性。在這裏閱讀更多:

http://msdn.microsoft.com/en-us/library/tcbchxcb%28VS.80%29.aspx

相關問題