[an error occurred while processing this directive] [an error occurred while processing this directive]


プログラミング
逆引き
クライアントとの通信
VisMでの通信
Factoryでの通信
WebServiceでの通信
CSP (Cache' Server Pages)
Cache'SQL
設定・性能


【広告】









データベースのクリーンアップ

Database ClearnUp.



Cache' 2009.1の新機能として追加されたデータベースクリーンアップ機能を試してみます。肥大化したデータベースファイル、すなわち Cache.Datファイルを小さく圧縮することが可能なのか確認してみます。

まず、確認用に新規データーベースを作ってみました。設定値はすべてデフォルトで、初期サイズ1MB、ブロックサイズ8KBとしました。


次にデータベースを肥大化させるために、大量のデータを登録します。
以下のコマンドで、^TESTグローバル下に同じ文字列をどんどん登録していきます。
 COMP> For i=1:1 Set ^TEST(i)="むかしむかし、あるところにお爺さんとお婆さんがおりました。お爺さんは山へ芝刈りに、お婆さんは川に洗濯に行きました。お婆さんが川で洗濯していると、大きな桃がドンブラコ、ドンブラコと、流れてきます"
目視で1GBを超えたところで実行を停止しました。

Cache.Datファイルは1045MBまで大きくなりました。

未使用領域を作るため、^TEST(1)だけ残して ^TEST(2)以降を削除します。
 COMP> For i=2:1 Quit:'$Data(^TEST(i))  Kill ^TEST(i)
削除したので、データベースはほとんど空になっているはずですが、Cache.Datのサイズは1045MBのままです。

では新機能のデータベースクリーンアップを試してみましょう。
システム管理ポータル → データベース → 空き容量 → (対象データベース行の)未使用領域削除を選択します。


ターゲットサイズは0のまま、OKを押すと


バックグラウンドで処理が開始されます。


処理が完了すると、データーベースサイズは1045MBだったものが1MBまで縮小されました。


ここまでの流れを簡単に図にしてみます。

初期状態 空のデータベースを作成しました。サイズは1MBです。
大量に登録 大量にデータを登録しサイズは1GBまで成長しました。
大部分を削除 ほとんどのデータを削除しました。空きデータ領域がたくさん存在しますが、サイズは1GBのままです。
データベース
クリーンアップ
を実行することによってサイズは1MBまで縮小しました。

  
データベース中に大量の空き領域が存在する場合、データーベースクリーンアップを試してみてはどうでしょうか。
その2に続く


[an error occurred while processing this directive] [an error occurred while processing this directive]
2014/02/04Update