2012-01-16 9 views
2

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

このテーブルをトリミングしたい(1.2GBまで、2006年1月以降のエントリ)。

システムはこの古い情報を必要としないことを誰も確認できますか?太字のドキュメントから

+0

あなたはバックアップをしてからそれを圧縮することはできませんか? :-) –

+1

それは計画ですが、テストはありませんので、しばらくの間はうまく見える状態にしたくないし、数週間後にはまれな操作に爆撃します。 – DaveK

+0

1年以上前のものを守るのはかなり安全です。トランザクションのログに「キーフレーム」がないと信じるのは難しいです。つまり、ログの読み込みの長さが無限に伸びると、太字のパフォーマンスには下限がなく、制限のないレベルにまで減速する可能性があります。:-) –

答えて

1

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

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

この機能が必要ない場合は、テーブルを空にしても問題ありません。

Bold_ClockLogに加えて、Bold_XFilesは大きくなる傾向がある別のオプションのテーブルです。しかし、Bold_ClockLogとは異なり、Bold_XFilesは空にできません。

これらのテーブルの両方をモデルタグ値でオン/オフすることができます。

2

BOLD_CLOCKLOG

が対応する物理時刻にタイムスタンプ列に使用されるトランザクション番号をマッピングすることができるようにする(例えば、2001年1月1日12時34分)永続マッパーは、タイムスタンプと時刻のログを保存します。通常、このログはデータベース操作ごとに書き込まれますが、データベースへのトラフィックが非常に集中している場合は、プロパティClockLogGranularityを設定することによって、このログの書き出し頻度を制限できます。 Model.UseClockLog

だから私は、これはBoldobjectsをバージョン管理するために使用されていると信じて、オブジェクトを参照してください。OnGetCurrentTimeもタグ付けされた値で制御することができ、すべてのクライアントは、この表の同じtime.The使用量を持っていることを確認するために実装しなければならないイベント拡張機能のバージョン番号を太字のドキュメントにしてください。アプリケーションでこれを必要としない場合は、これをデータベースにドロップできます。

大胆なアプリケーションでは、この機能は使用しません。なぜ単にモデルのBold_ClockLogをオフにしてテストし、大きなテーブルをドロップしてアプリケーションを使用しようとしないのですか?私は何かが間違っていればすぐにそれを言うと確信しています。

私たちは独自のカスタムオブジェクトヒストリを持っているとも言えます。これは、Time、user、およびアクションに関するメモを持つObjectHistoryクラスの単純な大きな文字列(TStringList.DelimetedText)です。これは、Boldsがobjecthistoryを組み込んでいるという私たちの必要性に適しています。欠点はもちろん、履歴へのロギングが完了したときにコードにコールを追加する必要があることです。