2011-05-30 84 views
0

我正在運行一個用grails將信息從電子表格加載到數據庫的過程。我不明白這個性能問題

我的本地機器有4GB RAM和iCore7 1.73GHz的處理器 服務器該機擁有2GB內存和英特爾E7400 2.8GHZ雙核 都與500GB硬盤

下面你可以看到時間,以秒將電子表格中的不同信息加載到數據庫中。

SERVER UBUNTU 9.04 64BIT 

LOAD DICTIONARY TABLES STARTING... 
LOAD DICTIONARY TABLES : TOTAL Processing time = 5.31 
2011-05-30 11:49:39,210 [main] DEBUG dataImport.CatalogueDataLoader - LOADING CATALOGUE... 

2011-05-30 11:49:39,582 [main] DEBUG dataImport.CatalogueDataLoader - CATALOGUE LOAD : TOTAL Processing time 0.371 


LOCAL UBUNTU 10.10 64BIT 

LOAD DICTIONARY TABLES STARTING... 
LOAD DICTIONARY TABLES : TOTAL Processing time = 32.641 
2011-05-30 12:36:38,875 [main] DEBUG dataImport.CatalogueDataLoader - LOADING CATALOGUE... 

2011-05-30 12:36:40,214 [main] DEBUG dataImport.CatalogueDataLoader - CATALOGUE LOAD : TOTAL Processing time 1.338 

CATALOGUE LOAD : TOTAL僅僅是1號線的電子表格,但我必須加載7K左右線,所以時間差是很重要的。在我的機器上花費了1個多小時,而在服務器上只花了10分鐘。我認爲這沒有意義。

有人可以幫助我瞭解這一點,也許建議一些解決方案呢?

+0

JVM內存設置,不同的數據庫(外部vs內存本地),不同的JVM,從本地機器上的其他應用程序加載... ...? – Ruben 2011-05-31 05:59:40

+0

向我們展示您的代碼,然後我們可以提供幫助! – Chris 2011-05-31 08:47:22

回答

4

在你的問題中沒有很多關於你在加載過程中可以做什麼的問題的細節,但我敢打賭你並沒有清理/清除休眠會話,並且正在使用相同的休眠會話您正在導入的所有項目。我有一個blog post for investigating batch import performance in grails,你可能會得到一些里程。