我有一個要求,我必須從數據庫中選擇大約6000萬條記錄。一旦我有了ResultSet中的所有記錄,那麼我必須根據客戶需求(日期格式和數字格式)合成一些列,然後我必須將所有記錄寫入文件(輔助內存)中。場景的最佳設計
- 目前,我正在從數據庫中選擇一天的記錄(7天選擇7天)並將它們放入HashMap。從HashMap中讀取併合成一些列,最後寫入文件(單獨文件7天)。
最後,我將所有7個文件合併到一個文件中。
但是這整個過程需要6個小時才能完成。爲了改善這一過程,我創建了7天7天的線程,所有線程都編寫了單獨的文件。
最後,我將所有7個文件合併到一個文件中。這個過程需要2個小時。但是我的程序在1小時後會進入OutOfMemory。
請建議最好的設計,這種情況下,我應該使用一些緩存機制,如果是的話,哪一個又如何呢?
注意:客戶端不希望在數據庫中更改任何內容,如創建索引或存儲過程,他們不想觸摸數據庫。 在此先感謝。
你能告訴我們你正在使用的RDMS嗎?這將影響可能可用的面向數據庫的解決方案。 另外,您可以告訴我們數據庫是專爲事務處理(高度規範化)還是更多分析處理(高度非規範化)設計的? – 2009-05-18 16:37:11
客戶端不想在數據庫中更改任何內容。他們還沒有準備好創建新的索引或SP或對錶格進行規範化。 – 2009-05-18 16:48:47