2009-01-22 72 views
2

我們有一個數據倉庫包,我們的客戶可以在白天針對他們的實時交易系統運行數據倉庫包。在大多數客戶端,這似乎工作正常,但在繁忙的客戶端,我們得到死鎖錯誤。集成服務和隔離級別

默認情況下SSIS運行與序列化的隔離級別是SQL最高的隔離級別2005

SSIS包只讀取數據,但死鎖,因爲查詢和鎖的大小產生在其他進程正在更新/插入時升級爲頁鎖。

客戶端通常運行SQL 2005的標準版,因此這是我們可以使用的唯一功能。

有誰知道是否將包的IsolationLevel更改爲ReadCommitted(或其他隔離級別)將解決這些鎖定問題。如果這本書能解決他們是否有任何副作用(幻讀,不可重複讀等)

感謝,

回答

1

有讀致力於和可重複的讀隔離級別的大討論,以及潛在的問題他們能產生:

http://blogs.msdn.com/craigfr/archive/2007/04/25/read-committed-isolation-level.aspx http://blogs.msdn.com/craigfr/archive/2007/05/09/repeatable-read-isolation-level.aspx

它是否影響你,取決於你的系統上運行更新的表模式和種類。

如果您只是在讀取數據,您的最佳選擇可能是快照隔離。 SSIS不支持它,但您可以避免SSIS事務並在SQL代碼中發出BEGIN TRANSACTION。