2011-01-10 71 views
0

我有一個SQL Server本地報表,其中包含大約5000頁的內容(幾乎每行都有圖像)。 目前,我使用多次調用數據庫來構建數據集,因爲一次獲取​​所有數據導致超時問題。 目前正在花費很長時間(大約10分鐘)將報告呈現爲使用本地報告中的Render方法的pdf。我讀過使用本地報告來處理大量數據效率不高,通常需要更長的時間來處理。有什麼辦法可以將本地報告轉換爲服務器報告(請記住,我需要動態構建數據集)? 如果我將其轉換成生成報告所需的時間,我會看到巨大的差異嗎?使用編程生成的數據集創建SQL Server報表

編輯:需求是,這需要是一個按需報告。

在此先感謝

,需要在代碼中沒有變化

回答

1

一個選項是安排您的報告中使用SSRS調度在設定時間運行(也許在深夜)和報告發布到一個文件共享或以PDF格式發送電子郵件。但是,如果您嘗試按需運行,則此建議可能無效。 SSRS調度對於這種事情是很方便的。

+0

我應該指定它需要是一個按需報告。對於那個很抱歉。 – zSynopsis 2011-01-10 18:45:47

0

如果報表中有5000頁,則不是報表。沒有人會瀏覽5000頁,實際上100頁被認爲是過度的。

製作精簡報告,就像包含摘要總計的目錄一樣,並將其用作導航工具,以便您可以單擊摘要項並在詳細信息報告中加載詳細信息,該報告將一些值(如customer_id)作爲一個參數。

原因:

  1. 沒有人會等待您的報告加載
  2. 當是你最後一次閱讀5000頁的「報告」哈哈......你還不如給他們生在一個zip文件中的表。
  3. ASP.Net中的內存限制(對於32位系統,爲2GB)。避免「內存不足」錯誤。
  4. 這永遠無法作爲附件在電子郵件中使用。一旦出口,它將超過10MB的典型最大值。
  5. 我已經在SSRS中發佈了超過120個報告,我已經在那裏完成了這些工作,所以我將從經驗中告訴您,以便您在將來避免更多問題。我完全用圖形樹結構和大量額外的按鈕和功能編寫我自己的報表服務器UI替換,以及具有適當日誌記錄的我自己的命令行報表服務器,以便我們可以驗證電子郵件何時不去併爲什麼,並重新定向電子郵件與虛假的電子郵件地址等...
  6. 添加適當的SQL索引,如果它需要10分鐘的東西是不正確的。

做到這一點:

Main Report: 
Customer1 $1,000 
Customer2 $2,000 
All Customers: $5,000 

子報表(獲取傳遞給它的CUST_ID參數):

Customer 1 $1000 
    Order1: $500 
    Item1: Socks 
    Item2: Shoes 
    Order2: $500 

注:當我說 「子報表」 我說的不是一個在工具箱。我的意思是一個單獨的報告,它將customer_id作爲參數,並從主報告中的某個文本框中導入一個「導航鏈接」,它將當前客戶傳遞給子報表參數。

你應該真的在做什麼,而不是去做你的老闆告訴你正在切入的追求,並問他真的需要回答什麼。很顯然,有人正在尋找某種特定的答案,他並沒有意識到計算機可以爲他做這件事。所以他希望整天都能感受到溫暖和模糊的印刷頁面。做一些專門的報告來回答特定部門人員的具體問題總是更好的,而不是一個尺碼。這避免了人們稍後告訴你添加或刪除一列,然後另一個人回來抱怨無盡。

庫存就是一個很好的例子。銷售人員需要和庫存數量和詳細清單,財務審計員需要美元價值和項目的年齡縮減形式。

相關問題