Oracleデータベース使用時のLDAPインポートのパフォーマンスの問題

この記事は、大量のユーザーに対してUserGroupメソッドを使用してLDAPインポートを実行するときに表面化する可能性があるパフォーマンスの問題に関するものです。具体的には、インポートプロセスが予想よりも長くかかる可能性があるという問題です。

この問題の原因は、インポートされるユーザーごとにSQLクエリ("SELECT userId FROM Users_UserGroups WHERE userGroupId =?" )が実行されることです。 データベースに大量のユーザーがいる場合、このクエリを実行すると大きな結果セットが作成される可能性があります。 Oracle JDBC接続 defaultRowPrefetch サイズは10行しかないため、 defaultRowPrefetch サイズは、クエリ結果のフェッチに関してボトルネックになります。

解決

一括LDAPインポートのパフォーマンスを向上させるために、使用を検討する2つのオプションがあります。

オプション1

Oracle JDBC接続プールのサイズを調整して、defaultRowPrefetch値を10からより適切な値に設定します。

注:データベース関連のチューニングはLiferayサポートではサポートされていません。 詳細については、Oracleリソースを参照してください。

オプション2

LPS-49427 は、最適化されたクエリステートメントを通じてキャッシュレステーブルマッパーを導入することにより、この問題に対処するために発生しました。 LPS-49427からの修正を使用することに加えて、このオプションを採用するテーブルを構成するには、 propertytable.mapper.cacheless.mapping.table.names ={table name} portal-ext.properties ファイルに追加する必要があります。このプロパティを使用するには、テーブルの名前を入力し、コンマで区切ります。

例:table.mapper.cacheless.mapping.table.names = user_、users_user_group

注:このオプションでは、JDBC接続プールを変更する必要はありません。 プロパティのテーブル名は大文字と小文字が区別されます。

この記事は役に立ちましたか?
0人中0人がこの記事が役に立ったと言っています