2012-09-11 75 views
1

我的老人告訴我,對於SQL查詢默認執行不會鎖定表。查詢時SSRS是否鎖定表格?

但是我的SSRS報告出現了一些問題,似乎在鎖定和獲取一些錯誤方面遇到了一些問題。

我做了一些谷歌搜索,但沒有找到任何東西。

只是尋求確認,SSRS報告實際上是否會鎖定正在查詢的所有表格?

是否有任何MSDN文檔具體記錄此行爲?

回答

5

SSRS不鎖定任何東西。鎖定將由您的嵌入在報告中的查詢驅動。除了你,沒有人能回答這個問題,查看報告和使用的查詢,然後看看它們是否鎖定或不鎖定表格。

正常情況下,查詢在表格中鎖定數據而不是表格。一致,正確的報告絕對需要鎖定。不要屈服於添加NOLOCK提示的謬誤,並稱它爲一天,you will get incorrect results

如果您看到由報告引起的生產爭用,那麼有很多解決方案。將報告卸載到只讀服務器,使用Availability Groupsdatabase snapshotstandby log shipping server。另一種方法是enable row versioned isolation levels like SNAPSHOT

+0

真的很棒的文章在NOLOCK那裏,非常翔實! – Charleh

+0

酷,因爲我有點失落,所以它實際上是查詢具體然後由於SRSS?正如我實際上試圖直接從reportserver /報告從多個瀏覽器運行查詢。 – melaos

0

對於來自SSRS的直選語句將肯定會鎖定表格。

您可以使用NOLOCK並寫一個具有所需列的特定查詢以顯示在報告中。

在這裏你的選擇查詢不能有「*」insted有列名。

+0

嗨,你能提供這個MSDN文章鏈接?謝謝 – melaos