2012-07-13 121 views
1

我有一個生成H2數據庫的應用程序。h2.db文件大小差異

當我在Windows XP上執行應用程序時,它生成一個大小爲176K的.h2.db文件,但是當我在Unix(SunOS)上執行相同的應用程序時,它會生成一個大小爲1126K的.h2.db文件,包含完全相同的數據。

任何人都可以解釋什麼可能導致UNIX生成的文件是如此之大?

謝謝!
Martin

回答

0

在這種情況下縮小數據庫文件的最簡單方法是打開並關閉它。另一種方法是運行語句shutdown compact

對於你的情況,「Unix」數據庫沒有完全壓縮,這意味着它包含數據庫文件中的空白頁面(最有可能暫時包含事務日誌的空頁面;這是正常的)。關閉數據庫時,H2將嘗試通過將未使用的頁面移動到文件末尾並截斷文件來壓縮數據庫文件。 The default compact time is 0.2 seconds。在「Unix」平臺的情況下,這個0.2秒可能不夠安靜,無法完全壓縮數據庫,但足夠用於「Windows」平臺。

+0

謝謝托馬斯。我在URL中添加了MAX_COMPACT_TIME = 10000,現在它們都縮小到相同的大小。 – Martin 2012-07-13 07:36:33