我正在对一个使用Bold for Delphi对象持久化框架的应用程序的数据库进行一些维护。这个数据库已经投入生产几年了,其中几个表已经变得相当大。其中之一是BOLD_CLOCKLOG,它与Bold的事务管理有关。
我想修剪这个表(最大1.2 up,包含2006年1月的条目)。
有人能确认系统不需要这些旧信息吗?
发布于 2012-02-06 01:58:45
Bold_ClockLog是一个可选的表,它的目的是存储整数时间戳和相应的DateTime值之间的映射。
这允许您找出对任何对象的最后一次修改的日期时间。
如果您不需要此功能,请随意清空表格,这不会造成任何问题。
除了Bold_ClockLog之外,Bold_XFiles是另一个容易变大的可选表。但与Bold_ClockLog不同的是,Bold_XFiles不能被清空。
这两个表都可以在模型标记值中打开/关闭。
发布于 2012-02-05 22:12:13
来自bolds文档:
BOLD_CLOCKLOG
为了能够将TimeStamp列中使用的事务编号映射到相应的物理时间(例如2001-01-01 12:34),持久性映射器将存储一个带有时间戳和时间的日志。通常,此日志是针对每个数据库操作写入的,但如果数据库的通信量非常大,则可以通过设置属性ClockLogGranularity来限制写入此日志的频率。还应实施事件OnGetCurrentTime,以确保所有客户端都具有相同的time.The。此表的使用情况可通过标记值Model.UseClockLog进行控制
所以我相信这是用来对Boldobject进行版本控制的,参见bolds文档中的Object versioning Extension。如果你的应用程序不需要它,你可以把它放到数据库中。
在我们的Bold应用程序中,我们没有使用该功能。为什么不简单地测试一下,在模型中关闭Bold_ClockLog,丢弃那个大表,然后尝试使用您的应用程序。我很确定如果出了什么问题,它会立刻说出来。
我还可以提一下,我们有一个自己的自定义对象。它只是一个ObjectHistory类中大字符串(如TStringList.DelimetedText),包含时间、用户和有关操作的注释。这更适合我们的需要,而不是Bold构建的客观性。缺点当然是,当记录到历史时,我们需要在代码中添加调用。
https://stackoverflow.com/questions/8883716
复制相似问题