2011-06-20 115 views
-1

我們有一個報表工具,可以抓取大量記錄。有時它可能是100萬條記錄。我們一直在存儲這個數據。我想知道是否有更好的對象來存儲它。我需要能夠以各種方式聚合數據。比Datatable效率更高

更新: 是的。個人認爲,不應該得到那麼多記錄。這不是我想要去的方向。

我也在使用Oracle

更新更新

對不起慢了,但總有火在這裏放了出來。主要問題是他們耗盡內存並且出現內存錯誤。他們在從內存釋放數據表時遇到問題,並且綁定到datagridview。我想我正在尋找的是一個重量較輕的物體,它不會佔用太多的空間。

想了一會兒之後,確實沒有任何意義可以像提及的diagonalbatman那樣獲得那麼多的數據。此外,如果我們只有幾個人正在使用它與這些問題。它如何擴展。

不幸的是,我有一位不願意聽的老闆和一個太過於「是的先生」型態度的離岸團隊。他們正在序列化原始數據(作爲XML文件)併發布原始數據Datatable,我認爲這根本不是一個好方向。

@diagonalbatman - 好奇了,你有這個

+2

您是否執行過任何測試以確定您的瓶頸實際存在於哪裏? –

+0

我不確定這個問題是否在當前狀態下可以回答。請提供更多的細節。數據是否與您存儲的其他數據相關?等等 –

+0

你有問題的數據表?你想克服什麼?更多細節將幫助我們更好地幫助您。 – Bueller

回答

2

爲什麼你需要1個米利翁記錄畫下來到你的應用的例子嗎?

你不能在數據庫上做報告合併/聚合嗎?這樣可以更好地利用數據庫的資源(畢竟這是RDBMS的設計目標),那麼您可以將您的應用程序專注於使用較小的整合集合?

+0

我同意這一點,但他們希望我走的方向是有數據可用。 – H20rider

+0

這很好,但你能不能設計應用程序只在需要時「獲取」數據? – diagonalbatman

+0

Yah。同意。認爲用戶需要那麼多數據是荒謬的。 – H20rider

1

我會建議你嘗試幾個選項來驗證,特別是根據你需要的能力以各種方式聚合數據。

1)它可以在數據端通過適當的查詢進行聚合,這可能是最好的解決方案。 2)如果您使用POCO,LINQ會改進您當前的內存和性能特徵。 LINQ是否允許您進行所需的聚合。

衡量您關心的特徵並嘗試不同的選項。

1

你想要的是數據立方體。根據您擁有的數據庫類型,您應該查看構建一些多維數據集。