2

BoldforDelphiオブジェクト永続化フレームワークを使用するアプリケーションのデータベースでメンテナンスを行っています。このデータベースは数年前から運用されており、いくつかのテーブルは非常に大きくなっています。それらの1つはBOLD_CLOCKLOG、Boldのトランザクション管理と関係があるものです。

このテーブルをトリミングしたい(2006年1月からのエントリで最大1.2GB)。

システムがこの古い情報を必要としないことを誰かが確認できますか?

4

2 に答える 2

2

太字のドキュメントから:

BOLD_CLOCKLOG

TimeStamp列で使用されるトランザクション番号を対応する物理時間(2001-01-01 12:34など)にマップできるようにするために、永続性マッパーはタイムスタンプと時間のログを保存します。通常、このログはデータベース操作ごとに書き込まれますが、データベースへのトラフィックが非常に多い場合は、プロパティClockLogGranularityを設定することにより、このログが書き込まれる頻度を制限できます。イベントOnGetCurrentTimeも実装して、すべてのクライアントが同じ時刻になるようにする必要があります。このテーブルの使用は、タグ付きの値Model.UseClockLogで制御できます。

したがって、これはBoldobjectのバージョン管理に使用されると思います。太字のドキュメントのObjectVersioningExtensionを参照してください。アプリケーションがこれを必要としない場合は、これをデータベースにドロップできます。

Boldアプリケーションでは、その機能を使用しません。モデルでBold_ClockLogをオフにすることをテストし、その大きなテーブルを削除して、アプリケーションを使用してみてはどうでしょうか。私は何かが間違っているならそれがすぐにそう言うとかなり確信しています。

また、独自のカスタムオブジェクト履歴があることにも言及できます。これは、ObjectHistoryクラスの(TStringList.DelimetedTextとしての)単純な大きな文字列であり、時間、ユーザー、およびアクションに関するメモが含まれています。これは、Boldsの組み込みオブジェクト履歴よりも私たちのニーズに適しています。欠点はもちろん、履歴へのログ記録が行われるときにコードに呼び出しを追加する必要があることです。

于 2012-02-05T14:12:12.620 に答える
1

Bold_ClockLogはオプションのテーブルであり、その目的は、整数のタイムスタンプと対応するDateTime値の間のマッピングを格納することです。

これにより、任意のオブジェクトに対する最後の変更の日時を見つけることができます。

この機能が必要ない場合は、テーブルを空にしてください。問題は発生しません。

Bold_ClockLogに加えて、Bold_XFilesは大きくなる傾向があるもう1つのオプションのテーブルです。ただし、Bold_ClockLogとは異なり、Bold_XFilesを空にすることはできません。

これらのテーブルは両方とも、モデルタグ値でオン/オフにできます。

于 2012-02-05T17:58:44.737 に答える