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