我有一个生成H2数据库的应用程序。
当我在Windows XP上执行应用程序时,它会生成一个大小为176K的.h2.db文件,但是当我在Unix(SunOS)上执行相同的应用程序时,它会生成一个大小为1126K的.h2.db文件,尽管它们包含完全相同的数据。
有人能解释一下可能导致UNIX生成的文件变大的原因吗?
谢谢!
马丁
答案 0 :(得分:0)
在这种情况下缩小数据库文件的最简单方法是打开和关闭它。另一种方法是运行语句shutdown compact
在您的情况下,“Unix”数据库没有完全压缩,这意味着它在数据库文件中包含空页(空页很可能暂时包含事务日志;这是正常的)。关闭数据库时,H2将尝试通过将未使用的页面移动到文件末尾然后截断文件来压缩数据库文件。 The default compact time is 0.2 seconds。可能这个0.2秒不够安静,无法在“Unix”平台的情况下完全压缩数据库,但足以用于“Windows”平台。