ここでは、リポジトリデータベースをチューニングする際のガイドラインをいくつか説明します。
データベース管理者は、統計を頻繁に実行してリポジトリデータベースの現状を監視する必要があります。
データソースを使用している場合は、RepositoryConfiguration オブジェクトの connectionPoolDisable 属性を true に設定して、Identity Manager リポジトリの内部接続プールの自動化を無効に設定します。
たとえば、<RepositoryConfiguration connectionPoolDisable=’true’> と設定すると (Identity Manager 用とアプリケーションサーバー用に) 接続プールが 2 つにならないようにできます。
RepostioryConfiguration オブジェクトを編集して、固有の単一値属性に対する検索パフォーマンスを向上させることもできます。たとえば、このオブジェクトを編集して、ユーザー検索に使用したり相関キーとして使用する employeeID などの拡張属性を追加してください。
デフォルトの RepositoryConfiguration オブジェクトは、次の例のようになります。
<RepositoryConfiguration ... > <TypeDataStore Type="User" ... attr1="MemberObjectGroups", attr2="lastname" attr3="firstname" attr4="" attr5=""> </TypeDataStore> </RepositoryConfiguration> |
省略符号は、ここには無関係の XML 属性を表しています。
attr1、attr2、attr3 、attr4、および attr5 の XML 属性はそれぞれ、waveset.userobj テーブルにコピーすべき単一値属性を示しています。waveset.userobj テーブルは、最大 5 つまでのインライン属性を格納できます。RepositoryConfiguration 内の attr1 という属性値は、このテーブルの "attr1" データベース列にコピーされます。
インライン属性は、(子の attribute テーブル列としてではなく) Type の基本 object テーブルに格納されます。
インライン属性を使用すると、属性に対するリポジトリのクエリーのパフォーマンスが向上します。(インライン属性はメインの「object」テーブルにあるため、インライン属性に対するクエリーの方が、子の「attribute」テーブルに格納されているインライン属性以外に対するクエリーよりも高速です。インライン属性以外に対するクエリー条件には、属性テーブルに「結合」が必要になります。)
デフォルトでは、Identity Manager が MemberObjectGroups、lastname、および firstname のインライン属性を使用します。
クエリーに使用できる属性であれば、検索を高速化するためにもう 2 つ属性を追加しても構いません。
たとえば、配備に employeeID の拡張属性がある場合、この属性インラインを追加すれば、その属性に対するリポジトリ検索のパフォーマンスが向上します。
lastname や firstname が不要な場合は、削除したりほかの属性と代えても構いません。
MemberObjectGroups は削除しないでください。Identity Manager は、承認チェックの高速化にこの属性を内部で使用します。
各テーブルセットに格納されるオブジェクト型の詳細は、「データクラス」を参照してください。