2012-02-13 61 views
1

在我的項目中,我有一頁RDLC圖。他們曾經在一些存儲過程和xsd上運行。我會傳遞一串我的結果的ID應該包括限制我的數據集。我不得不改變這個,因爲我開始在對象數據集參數中運行1000個字符的限制。帶有業務對象的對象數據源很慢?

我更新了我的圖表,使其在業務對象列表上運行,而且看起來頁面的加載速度比以前慢得多。我的意思是頁面加載速度明顯較慢,現在需要一分鐘左右。

有人知道在提取業務對象時是否知道對象數據源運行緩慢嗎?如果不是,是否有一個很好的方法來追蹤究竟是什麼導致了這個問題?我在我的方法中添加了斷點,它在獲取它們之前和之後實際檢索業務對象;該方法似乎不是放緩的原因。

回答

1

我做了一些更多的測試,看起來dang事物在綁定到業務對象而不是數據表時運行速度明顯較慢。

當我綁定我的列表< BusinessObject>到ReportViewer頁面花了1分9秒加載。

當我有我的業務邏輯使用相同的函數返回列表並從列表中構建一個DataTable只有報告所需的列,然後將DataTable綁定到頁面在20秒內加載的報表。

0

您使用的是select *?如果是這樣,請嘗試單獨選擇每個字段,如果你不使用整個表。這會有所幫助。

+0

我的業務邏輯使用實體框架和用戶過濾器僅將請求的項目從數據庫中提取出來,然後將其轉換爲業務對象並通過ObjectDataSource調用的方法返回到列表中。 – William 2012-02-13 22:54:21

0

@William:我遇到了同樣的問題。但我注意到,當我扁平化業務對象時,報告運行速度明顯加快。您甚至不必將業務對象映射到新的扁平對象,只需將嵌套對象設置爲空。 I .: .:

foreach(var employee in employees) 
    { 
     employee.Department = null; 
     employee.Job = null; 
    } 

看來,報告的作者做了一些穿越對象圖的東西。

這似乎只是在VS 2010的情況。VS 2008似乎並沒有遭受同樣的問題。

+0

有趣。這很好。謝謝。 – William 2012-09-23 21:03:58