我正在为使用粗体的应用程序对Delphi对象持久性框架的应用程序进行一些维护。这个数据库已经在生产了几年,几个表格已经增长了很大。其中一个是与粗体交易管理有关的生成aceDicetagcode。

我想修剪此表(它最多可达1.2GB,其中包含来自2006年1月的条目)。

任何人都可以确认系统不需要这个旧信息吗?

有帮助吗?

解决方案

Bold_ClockLog是一个可选表,目的是存储整数时间戳和对应的DateTime值之间的映射。

这使您可以找到对任何对象的最后修改的日期时间。

如果您不需要此功能,请随时清空表格,这不会造成任何问题。

除了Bold_ClockLog外,Bold_XFiles是另一个可选表,该表往往会变大。但是与Bold_ClockLog不同,Bold_XFiles无法清空。

这两个表都可以在模型标签值中打开/关闭。

其他提示

从粗体文档开始:

BOLD_CLOCKLOG

为了能够将TimeStamp列中使用的事务号映射到相应的物理时间(例如2001-01-01 12:34),持久性映射器将存储带有时间戳和时间的日志。通常,此日志是针对每个数据库操作写入的,但是如果到数据库的流量非常密集,则可以通过设置属性ClockLogGranularity来限制此日志的写入频率。还应实现事件OnGetCurrentTime以确保所有客户端都具有相同的时间。可以通过带标签的值Model.UseClockLog 来控制此表的使用。

因此,我认为这用于对Boldobjects进行版本控制,请参见粗体文档中的 Object Versioning Extension 。如果您的应用程序不需要它,则可以将其放入数据库中。

在我们的Bold应用程序中,我们不使用该功能。为什么不简单地测试以关闭模型中的Bold_ClockLog,删除该大表并尝试使用您的应用程序。我很确定如果有什么问题,那就马上说。

我还可以提到我们有一个自定义的objecthistoy。它只是ObjectHistory类中的大字符串(如TStringList.DelimetedText),具有时间,用户和有关操作的注释。这比Bolds内置的对象历史记录更适合我们的需求。缺点当然是在登录到历史记录后,我们需要在代码中添加调用。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top