システムファイルを見積もる際によくある質問と、その回答について説明します。
アーカイブログファイルは、圧縮を行っていません。INSERT文、UPDATE文、DELETE文を実行するときのアーカイブログ量は、テーブルとインデックスに関して、以下のようにして見積もることができます。
レコード長をLとすると、ログ量は、INSERT文、UPDATE文、DELETE文とも、おおよそ以下の値となります。
ログ量 = L + 100
インデックスレコード長をLとすると、おおよそ以下の値となります。ただし、INDEXではページ分割、ページ縮退といった処理が不定期に実行されます。このときにもログが採取されます。
INSERT文、DELETE文の場合
ログ量 = L + 102
UPDATE文の場合
ログ量 = (L + 102) × 2
ページ分割、ページ縮退時
ログ量 = ページ長 × 1.5 + 168
ページ分割、ページ縮退の発生頻度はおおよそ次のとおりです。
ページ分割回数 = INSERT件数 ÷ (インデックスページ内レコード数×0.5) ページ縮退回数 = DELETE件数 ÷ (インデックスページ内レコード数×0.5)
また、アーカイブログファイルへの出力は、ブロック長(512バイト)境界に補正されます。このため、アーカイブログファイルへにログを出力する際は、ログ量の総量より、補正された分の使用量が増加します。
ポイント
アーカイブログファイルの容量と数について
アーカイブログ運用を行う場合には、2つ以上のアーカイブログファイルを作成します。定義するアーカイブログファイルの数と総容量は、データベースのバックアップ運用とそれに合わせたアーカイブログファイルの保存に関係した運用で決まります。
アーカイブログファイルが複数個定義されている場合には、ログファイルが満杯になった時点で、Symfoware/RDBが自動的に空きアーカイブログファイルを使用するように自動的に切替えます。
ただし、空きのアーカイブログファイルが1つも存在しない状態になると、Symfoware/RDBが無応答状態となり業務が停止してしまうので、余裕をもたせた容量で見積もってください。
同じレコードをINSERT直後にDELETEしたら、アーカイブログ量はゼロか?
ログは、時系列に書き込みを行っており、取得したログを過去にさかのぼって削除したり上書きしたりすることはありません。
更新結果であるAIログは、すべてアーカイブに出力されます。したがって、INSERT直後にDELETEした場合には、INSERTとDELETEの2つの操作分のログが採取されます。相殺するSQL文を実行してもログの内容が削除されることはありません。