我在C#中創建了一個程序,與Oracle Express(本地實例)中的250萬條記錄一起工作,解析/拆分這些記錄並創建額外的500萬條記錄。爲程序提供所有可能的資源
我添加了一些代碼來在屏幕上打印時間,它似乎相當快。它每9秒完成1K記錄的所有處理。這意味着完成需要6個多小時。
現在,使用任務管理器,我可以看到該程序正在使用6%的CPU(最大值)和大約50MB的內存。我瞭解操作系統,甲骨文本身需要資源來操作,但.....有沒有辦法告訴這個小程序「嘿,沒關係,繼續前進,使用至少50%的CPU,有4GB的RAM把自己打昏」?
注意:我在Oracle Express中使用本地實例的原因之一是減少網絡瓶頸。我也可能不會經常運行這個過程,但我很想看看這是否可能。
請原諒我的noobness,
謝謝!
@Kranky - 鑑於您正在讀取和寫入數據庫,您的應用程序更可能是受CPU限制的I/O限制。 – ChrisF 2011-05-07 22:11:20
我同意,IO子系統可能是瓶頸。我會嘗試第二個建議,並在程序運行時監視CPU資源。儘管如此,在它終止並出現堆棧溢出異常之前,我可能只運行一秒鐘。 – Ulises 2011-05-09 04:12:30
@KrankyAztec - 堆棧不會因循環而溢出,這通常是由於遞歸函數調用而發生的。我所建議的是可以消耗100%的CPU,操作系統不會限制你的應用程序。我會在應用程序的I/O代碼部分放一些額外的時間代碼,以顯示計算和輸入/輸出之間的差異。如BugFinder提示的那樣,不可能在Oracle SQL中完成整個操作? – Tony 2011-05-09 08:25:04