我在vb.net 2005中編寫應用程序。該應用程序使用ADO.NET將數據表讀入DataSet中,並使用該表的列填充ListBox。當選擇一個列表框項目時,將向用戶顯示所選記錄的詳細信息。這些信息巨大的CPU開銷的問題
一部分是不是在DataSet。我必須將電子表格中的一列與多個外部數據源進行比較,以確定相關記錄的性質。這是我遇到問題的地方。
此比較必須在一個階段搜索SQL表中的9.5m行。我已經檢查過,因爲我已經只搜索絕對必要的數據,所以無法「縮小」查詢。
會發生什麼情況是,應用程序就明顯沒有做任何事情。不管之前是什麼,CPU使用率都達到100%,系統的性能幾乎變得難以忍受。
任何人都可以提出一種方法,我可以改善這種情況,而這個大規模的查詢運行?
編輯:我本來打算寫數據庫表中的9.5m行的內容到一個文本文件,然後我讀取,但6.5m行後,我得到一個OutOfMemoryException。
你能確切說明當CPU使用率激增到100%,即。你的代碼在做什麼來實現它?分析它可能會有所幫助。 – EMP 2010-07-23 06:56:36
當應用程序訪問數據庫時,CPU使用率升高。我已經將它設置爲執行一個SQL查詢,按照我正在搜索的字段值進行過濾。如果找到任何結果,則使用這些結果填充DataSet,否則DataSet將保持Nothing。 這是CPU高峯的地方。我已經讓它運行了一兩次,最終拋出了OutOfMemoryException。 – 2010-07-23 07:32:47