簡體   English   中英

SSRS 超時已過期。 操作完成前超時時間已過或服務器未響應

[英]SSRS Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding

我有一個包含多個報告的報告解決方案。 到目前為止,我已經能夠毫無問題地添加基於 SPROC 的數據集。 但是,當我嘗試添加最新的數據集並為其查詢類型使用 SPROC 時,當我單擊“刷新字段”時,出現以下錯誤:超時已過期。 操作完成前超時時間已過或服務器未響應。

我已經在數據源屬性>編輯>測試連接中測試了數據庫連接,它工作正常。

我已將以下區域的超時時間增加到 100:

  1. 數據源的連接字符串,即 - Connect Timeout=100
  2. 工具>選項>數據庫工具>查詢和視圖設計器。 取消長時間運行的查詢設置為 100。
  3. 工具>選項>數據庫工具>表和數據庫設計器>選中“覆蓋表設計器更新的連接字符串超時值”。 事務超時后設置為 100

SPROC 在 SQL 數據庫中運行良好。 大約需要 55 秒。

還有其他想法嗎? 謝謝。

更新:我現在無法使用 SPROC 添加任何數據集。 甚至認為 SPROC 在 SQL 中都可以正常工作!!!!!!

如果您使用的是報表生成器,您也可以在數據集中增加超時。

報表生成器中的數據集超時設置

在存儲過程中添加新添加的列時,我也遇到了同樣的問題。

從以下方式克服了這個問題。

將存儲過程更改為注釋除最終選擇命令之外的所有查詢。

現在已經添加了新列,然后取消注釋 sp 中的 quires。

對您的報告要記住的是,當它運行時,它會嘗試運行所有數據集,以確保它們是可運行的,並且可以返回它們請求的數據。 因此,通過單獨運行每個 proc,您實際上並沒有與 SSRS 重復嘗試做的事情……老實說,不要打擾。

您可以嘗試在報告運行時運行 sp_who,或者甚至只是手動執行這些過程以查看它們的共同表。 由於您的 proc 需要 52 秒來返回其數據集,因此我將假設它做了一些繁重的工作。 沒有查詢,沒有人能夠說出確切的問題是什么。

我建議使用 NO LOCK 來查看是否可以解決您的問題。 如果是這樣,那么您的 proc 正在爭奪數據並相互阻塞...可能處於無限循環中。 使用 NO LOCK 不是解決方法。 閱讀它的作用並自行判斷。

我的解決方案是轉到給定問題數據集的數據集屬性,將查詢粘貼到查詢字段中,單擊刷新字段,然后單擊確定。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM