データベースのパフォーマンスを改善するプロパティ

データベースのプロパティを適切に設定することによって、アクティブなデータベースのパフォーマンスを改善することができます。多数のデータベース、またはサイズの大きいアクティブな 1 つのデータベースに対してベースのパフォーマンスに関するプロパティを設定することによっても、サーバーのパフォーマンスが向上します。また、いくつかのプロパティ設定は、データベースサイズの縮小にも効果があります。

これらのプロパティのほとんどは、アプリケーション設計に関する知識を必要とします。通常、データベース設計者は、データベースを作成するときにこのプロパティを設定します。

文書の後でイメージを表示する

イメージを含む文書の表示を高速にするには、データベースのプロパティの [基本] タブにある [ロード後にイメージを表示] チェックボックスをオンにします。これで、イメージをロードしている間、Notes® ユーザーがテキストを読むことができます。テキストの後にイメージをロードしない場合、Notes では文書内の順序どおりにイメージがロードされます。このため、文書内でイメージが先頭にあれば、そのイメージがロードされてからテキストが表示されます。ロードするイメージが大きい場合や接続が低速の場合は、順序どおりにイメージをロードすると、文書の表示に時間がかかる可能性があります。

この設定は、データベースを Notes で表示する場合だけ有効です。Web ブラウザへのイメージの表示は Web ブラウザの設定で制御します。

ヒント: ユーザーがロケーション文書の [詳細] セクションで [イメージの読み込み: 要求時] を指定して、ユーザーがイメージをクリックしたときにのみイメージを表示することもできます。詳しくは、『Notes ヘルプ』を参照してください。

格納フォームの使用を禁止する

文書が常に正しく表示されるようにするため、文書と一緒にフォームを保存することがあります。ただし、文書すべてにフォームを保存すると、システムメモリを大量に消費し、保存しない場合に比べて必要なディスク容量が 20 倍に達することもあります。特にユーザーが文書を読み込もうとすると応答速度が低下するような場合は、格納フォームの使用を禁止すると、メモリとディスク容量を節約できます。格納フォームの使用を禁止するには、[基本] タブでデータベースのプロパティ [格納フォームの使用を許可] を選択解除します。格納フォームの使用を禁止する前に、この設計プロパティの働きと、この設計プロパティがデータベースでどう使用されるかを必ず理解してください。

未読マークを使用しない

データベースの未読マークの保持には、システムリソースが必要なため、データベースのパフォーマンスが著しく低下する場合があります。データベースの一部には、未読マークが必要でないものもあります。例えば、Domino® に用意されているヘルプデータベースなどの参照データベースや、Domino ディレクトリなどのシステム管理データベース、常時更新されるログファイル (LOG.NSF) などのデータベースがこれに該当します。このようなデータベースでは、未読マークを使用しないことを検討してください。未読マークを使用しないようにするには、データベースのプロパティの [詳細] タブにある [未読マークを使用しない] チェックボックスをオンにします。

注: 未読マークを表示しないようにビューを設計しても、データベースのパフォーマンスは向上しません。それは、表示されなくなっただけで、データベースから削除されたわけではないからです。

[未読マークを使用しない] チェックボックスを切り替える場合、設定を有効にするにはデータベースを圧縮する必要があります。この状態で圧縮を行うとデータベースの一時的なコピーが作成されるため、システムにコピー用の空きディスク容量が必要になります。

ヒント: Compact サーバータスクに -u か -U のオプションを付けて実行して、このプロパティの選択を切り替えてから圧縮を行う方法もあります。

ビューの更新で使用する文書のテーブルにフォームを関連付ける

Domino では、ビューを更新するとき文書情報のテーブルを参照します。このテーブルはデータベース内部に保存されています。ビューの更新や再構築では、デフォルトで、更新するビューに表示する各文書のテーブルが検索されます。ビュー更新の効率を上げるには、データベースのプロパティの [詳細] タブにある [文書テーブルマップの最適化] チェックボックスをオンにします。このプロパティは、テーブルと、そのテーブルに含まれている文書が使用するフォームとを関連付けます。ビューが更新中の場合、このビューの文書が使用するフォームに関連するテーブルだけが検索されます。これによって、特に Domino ディレクトリの [接続] ビューのように大きなデータベースに小さいビューがある場合は、ビューの更新速度が大幅に向上します。

このプロパティは、選択条件の中に Form= が含まれているビューだけに有効です。テーブルとフォームの関連付けを管理するため、サーバーのパフォーマンスが若干低下しますが、大きなデータベースの小さいビューを更新するとき、パフォーマンスの低下を補う十分な効果が得られます。

[文書テーブルマップの最適化] チェックボックスを切り替える場合、データベースを圧縮する必要があります。この状態で圧縮を行うとデータベースの一時的なコピーが作成されるため、システムにコピー用の空きディスク容量が必要になります。

ヒント: Compact サーバータスクに -F か -f のオプションを付けて実行して、このプロパティの選択を切り替えてから圧縮を行う方法もあります。

削除データの上書きを禁止する

Domino でデータベースからデータを削除すると、デフォルトでは、ディスクの削除データにパターンが上書きされます。このパターンで、権限のないユーザーがユーティリティを使用してデータにアクセスするのを防いでいます。この上書き処理はディスクアクセスに影響し、またデータベースのパフォーマンスに影響する可能性があります。

削除データの上書きを禁止する方法は、次の場合に適しています。

削除データの上書きを禁止するには、データベースのプロパティの [詳細] タブにある [空きスペースに上書きしない] チェックボックスをオンにします。

文書のプロパティ [アクセス日 (現在のファイル)] を保持しない

[文書のプロパティ] インフォボックスには [アクセス日] というプロパティがあり、文書を最後に更新や読み込みを行った日付が表示されます。データベースのプロパティの [詳細] タブにある [LastAccessed プロパティを保持] チェックボックスは、文書への最後のアクセスが読み込みだった場合に、この [アクセス日] プロパティを更新するかどうかを制御するものです。読み込みで [アクセス日] プロパティを保持すると、保持しない場合よりディスクアクセスの回数が多くなります。

データベースのプロパティの [LastAccessed プロパティを保持] チェックボックスはデフォルトでオフになっています。このため、[アクセス日] プロパティは、文書への最後のアクセスが読み込みだった場合は更新されず、文書を更新した場合にだけ更新されます。[LastAccessed プロパティを保持] チェックボックスをオンにして、デフォルトの動作を変更します。

[データベースのプロパティ] インフォボックスで、文書アーカイブツールを使用して、アクティブでない日数に基づいて文書を削除する場合は、[LastAccessed プロパティを保持] を選択する必要があります。

応答階層情報を無効にする

デフォルトでは、どの文書にもその文書を親文書または返答文書に関連付ける情報が入っています。この情報を使用するのは、ビューの選択式と複製式で多用される @AllChildren@AllDescendants の 2 つの @関数だけです。この情報を管理すると、データベースのパフォーマンスが大幅に低下します。

データベースのパフォーマンスを向上するには、この@関数を使用しないデータベースで、データベースのプロパティの [詳細] タブにある [文書の階層情報を使用しない] チェックボックスをオンにして応答階層情報を無効にします。

返答階層情報を無効にしても、@AllChildren と @AllDescendants を使用しないで情報を階層状に表示するビューと複製式には影響がありません。

返答階層情報を無効にすると、NotesDocument.Responses が 0 文書に設定されます。Responses プロパティへのすべてのインターフェースは、空のコレクションを返します。

[文書の階層情報を使用しない] チェックボックスを切り替える場合、設定を有効にするにはデータベースを圧縮する必要があります。この状態で圧縮を行うとデータベースの一時的なコピーが作成されるため、システムにコピー用の空きディスク容量が必要になります。

ヒント: Compact サーバータスクに -h か -H のオプションを付けて実行して、このプロパティの選択を切り替えてから圧縮を行う方法もあります。

トランザクションログを無効にする

トランザクションログでは、データベースのすべての変更が検出され、トランザクションログに書き込まれます。記録されたトランザクションは、リソースが使用可能なときまたはスケジュールされたときに、バッチでディスクに書き込まれます。トランザクションログを無効にすると、データベースのパフォーマンスが向上します。

ヘッドラインモニターを禁止する

ヘッドラインモニターを設定すると、ユーザーは関心がある情報をデータベースから自動的にモニターできます。この方法でデータベースをモニターすると、特にそのユーザー数が多い場合には、パフォーマンスに影響が出ます。ユーザーがデータベースをモニターできないようにするには、データベースのプロパティの [ヘッドラインモニターを許可しない] チェックボックスをオンにします。

システム管理者は、Domino ディレクトリにあるサーバー文書の [セキュリティ] セクションで、サーバーレベルでヘッドラインモニターを制御できます。

データベースにフィールドを追加する

データベースのプロパティの [詳細] タブにある [データベースで多くのフィールドを許可] を選択することにより、データベース内のフィールド数を最大で 23,000 まで追加できます。

このオプションが選択されていないデータベースでは、データベースのフィールド名は全体での長さの合計が 64 KB 以内という制限があるため、結果的にデータベース内のフィールド数は 3000 程度に制限されます。

添付ファイルの圧縮形式として LZ1 を使用

Domino Designer リリース 6 以降では、Huffman アルゴリズムではなく新しい LZ1 アルゴリズムを使用して、添付ファイルを圧縮することができます。LZ1 圧縮方式のほうが素早く、効率的に圧縮できるため、Huffman の圧縮方式よりも便利です。ただし、バージョンが異なるクライアントソフトウェアとサーバーソフトウェアを一緒に使用するような環境では (例えば、Domino Designer 6 クライアントと R5 サーバー) このオプションを選択すると、添付ファイルは Huffman 圧縮方式によってサーバー上で自動的に圧縮し直されます。圧縮のし直しはパフォーマンスに影響します。パフォーマンスを最高の状態に保つには、主に Domino 6 以降の環境で LZ1 を使用してください。

$UpdatedBy フィールドのエントリを制限する

文書には [$UpdatedBy] フィールドが必ず含まれています。[$UpdatedBy] フィールドにデフォルトで保存されるのは、各文書編集セッションを行ったユーザーかサーバーの名前です。完全な編集履歴を保存すると、ディスク容量を消費するだけでなく、ビューの更新と複製に時間がかかるようになります。ディスク容量を節約し、データベースのパフォーマンスを向上させるには、データベースのプロパティの [詳細] タブにある [$UpdatedBy フィールドのエントリ制限] ボックスに、[$UpdatedBy] フィールドに保存できるエントリ数を指定します。[$UpdatedBy] フィールドの数が上限に達すると、最も古いエントリが削除されて、新しいエントリを保存できるようになります。

$Revisions フィールドのサイズを制限する

文書には必ず [$Revisions] フィールドが含まれています。[$Revisions] フィールドには、デフォルトで各文書編集セッションの日時が保存されます。Domino では、このフィールドを使用して複製や保存の競合を解消します。複製や保存の競合は、複数のユーザーが、1 つのレプリカで同じ文書を同時に編集したり、複製と複製の合間に別々のレプリカで同じ文書を編集したりしたときに発生します。

[$Revisions] フィールドに保存される履歴には、デフォルトで最大 500 の編集セッションが含まれます。ディスク容量は 1 セッションあたり 8 バイト必要です。時間が経って [$Revisions] フィールドが大きくなると、ディスク容量を消費するだけでなく、ビューの更新と複製に時間がかかるようになります。ディスク容量を節約し、データベースのパフォーマンスを向上させるには、データベースのプロパティの [詳細] タブにある [$Revisions フィールドのエントリ制限] ボックスに、[$Revisions] フィールドに保存できるエントリの数を指定します。[$Revisions] フィールドの数が上限に達すると、最も古いエントリが削除されて、新しいエントリを保存できるようになります。

データベースが次の特徴をすべて備えている場合は、[$Revisions] フィールドのエントリ数の制限を検討してください。

[$Revisions] フィールドでのエントリ数の上限には 10 を推奨します。上限を 10 より小さく設定すると、複製や保存の競合が発生するリスクが高くなります。

一時的削除の有効期限を指定する

[一時的削除を許可] を選択すると、削除マークが付いている文書が、削除される前に指定された時間データベースに保持されます。[データベースのプロパティ] インフォボックスの [詳細] タブで、データベースから文書を削除する前に保持しておく時間数を指定できます。

一時的削除の詳細については、「一時削除のためのビューを追加する」を参照してください。削除した文書の復旧については、「@UndeleteDocument 関数」を参照してください。

返答スレッドの履歴をサポート

[返答スレッドの履歴のサポート] オプションは、リリース 8 から新しく追加されたオプションです。このオプションを選択すると、データベース内の文書に追加の情報フィールドが付加され、文書の返答を階層状に分類することができます。

注: このオプションを選択しても、既存の文書には影響を及ぼしません。既存のスレッドは階層状に識別または表示されません。今後追加される新しいスレッドのみが対象です。これは、既存のスレッドを持つデータベースから新しいレプリカまたはコピーを作成する場合も同様です。新規の文書のみがスレッドのシチズンシップと階層内の位置に対して処理されます。

簡易検索を許可しない

[単純検索を許可しない] オプションは、リリース 8 から新しく追加されたオプションです。このオプションを選択すると、DbSearch が無効になります。これによって、管理者は、新しいビューまたは全文索引の作成が望ましくない場合に、大規模なデータベースに対する検索を防ぐことができます。このオプションを選択すると、DbSearch コードはエラーを返します。