2012-01-16 80 views
2

我正在對使用Bold for Delphi對象持久性框架的應用程序的數據庫進行一些維護。這個數據庫已經生產了好幾年,其中一些表格已經增長得相當大。其中之一是BOLD_CLOCKLOG,它與Bold的交易管理有關。修剪BOLD_CLOCKLOG表

我想修剪這張表(最多1.2GB,從2006年1月開始)。

任何人都可以確認系統不需要這些舊信息嗎?

+0

難道你不能只是做一個備份,然後把它呢? :-) – 2012-01-16 18:39:32

+1

這是計劃,但沒有測試,所以我不想把它放到一段時間看起來很好的狀態,然後幾周後在一些罕見的操作上炸彈。 – DaveK 2012-01-16 18:57:22

+0

對於大於1年前的事情應該是非常安全的。我很難相信他們的事務日誌中沒有「關鍵幀」,也就是說,如果日誌讀取的長度延伸到無窮大,那麼粗體的性能沒有下限,它可以放慢到無限的水平。:-) – 2012-01-17 14:22:07

回答

1

Bold_ClockLog是一個可選表,其目的是存儲整數時間戳和相應日期時間值之間的映射。

這使您可以找出上次修改任何對象的日期時間。

如果您不需要此功能,請隨意清空表格,這不會導致任何問題。

除了Bold_ClockLog,Bold_XFiles是另一個可選表,它往往會變大。但與Bold_ClockLog不同,Bold_XFiles不能清空。

這兩個表都可以在模型標籤值中打開/關閉。

2

從加粗文檔:

BOLD_CLOCKLOG

爲了能夠在時間戳列中使用的交易號映射到對應的物理時間(例如12點34分2001-01-01)持久性映射器將存儲具有時間戳和時間的日誌。通常,這個日誌是針對每個數據庫操作編寫的,但是如果到數據庫的流量非常密集,可以通過設置ClockLogGranularity屬性來限制寫入日誌的頻率。事件OnGetCurrentTime也應該實現,以確保所有的客戶端都有相同的時間。這個表的使用可以用標記值來控制:Model.UseClockLog

所以我相信這是用於版本控制的Boldobjects,請參閱Object版本擴展以粗體顯示文檔。如果你的應用程序不需要這個,你可以把它放到數據庫中。

在我們的Bold應用程序中,我們不使用該功能。爲什麼不簡單地測試關閉模型中的Bold_ClockLog,放下那張大表並嘗試使用您的應用程序。我非常肯定,如果有什麼不對,那麼立刻就會這樣說。

我還可以提到,我們有一個自己的自定義objecthistoy。它只是一個ObjectHistory類中的大字符串(如TStringList.DelimetedText),它具有Time,user和一個關於action的註釋。這更符合我們的需要,Bolds內建的對象歷史。當然,我們需要在登錄歷史記錄時在代碼中添加調用。