2007/12/12

データベースカタログの活用について

通常の設定では、catalogタスクは毎晩1時に動作しますが、そのわりに実際にはどの程度活用されてるのだろうか、と思い少し書いてみます。
私はわりとcatalog.nsfが好きで、データベースに関する何かがあるときは、「catalog.nsfは使えないかな」というのをいつも真っ先に考えたくなります。

catalogタスクを実行すると、catalog.nsfに、サーバー上のデータベースの情報が格納されます。DBの基本情報はもちろんのこと、複製や全文索引、ACLに関する情報が含まれます。
個々のデータベースプロパティには「データベースカタログに表示」というチェックボックスがあり、チェックがついているものだけがcatalog.nsfで表示されます。

catalog.nsfに全てのDBを表示させる
実は、catalog.nsfには全てのDBの情報が入っていますが、その表示がビューの選択式でコントロールされています。このため、例えば新しくビューを作成し、その選択式で「DBListInCatalog」に関する記述を行わなければ普通に全てが表示されます。

有効活用の例:使われていないDBを探す
各文書には、DBActSummDispフィールドというものが存在し、複数値フィールドとして過去の利用状況を持っています。例えば、DBActSummDisp[8]では、1ヶ月の読み込み、DBActSummDisp[9]では1ヶ月の書き込みが取得可能です。ビューの列式などで利用可能です。管理用のビューを1つ追加し、全てのDBを表示させ、列をソートすることで、全く利用されていないDBがわかります。
使わないのにサーバー上にあるというのは、ディスクスペースを使うという意味でも、メンテナンスタスクの実行時間が多少増えてしまうという点でも、無駄があるのですが、必要に応じて、DBをアーカイブしたり、もしくは禁断のcompact -dをしてもよいかと思います。

他にも、ACLに関するビューは有用ですし、またテンプレート名順にソートしたり、文書数順にソートしてみたり、など必要に応じて多少の工夫をすることで、より有効に活用できるのではないかと思います。

おまけ:
catalog.nsf自身のACLについてや、catalogタスクの実行頻度(notes.iniのServerTasksAtXXに記述するか、プログラム文書に記述するか)についても、1度見直してもよいのかもしれません。

0 件のコメント: