2012-05-25 79 views
3

我有一個報告顯示數據庫中的一些數據,速度很慢。大約需要2分鐘才能完成。 問題是,在執行查詢時鎖定了從中獲取數據的表。這種鎖定會導致一些進程失敗,如navision。SSRS正在鎖定表

有什麼辦法讓它與非阻塞查詢?

回答

4

您可以通過查詢提示,並指定NOLOCK

SELECT * FROM yourTable with (NOLOCK) 
+0

謝謝你很多。奇蹟般有效。 – Sinjuice

+0

或者,如果查詢多個表,請將SQL包裝到事務中並使用快照隔離:http://msdn.microsoft.com/en-us/library/tcbchxcb(v=vs.80).aspx – GShenanigan

+0

如果必須在許多表上指定NOLOCK,你也可以選擇[設置事務級別](http://msdn.microsoft.com/en-us/library/ms173763.aspx),這是[與不同範圍相同的事情](http ://stackoverflow.com/questions/3550337/with-nolock-vs-set-transaction-isolation-level-read-uncommitted)。 – Jeroen