【iDempiere Lab】IDEMPIERE-6123:Query in search window causing slowness and load spikes in the databaseの研究

JIRAのチケットIDEMPIERE-6123:Query in search window causing slowness and load spikes in the databaseについて調査及び研究し、その成果をまとめています。

 この課題は、ウィンドウの検索機構においてカウントがされており、大量のデータが格納されているようなテーブルにおいて、パフォーマンスが悪くなるというものです。

 このことはJPiereでは以前より認識しており、下記のような対応を行っています。

変更箇所

ソースコードの修正箇所

◆2024年5月3日コミットの修正

https://github.com/idempiere/idempiere/commit/881e758def0ac8baa2eb2b612f4d9341aa66caa7

【マイグレーションスクリプト】

*システムコンフィグ設定:GRIDTABLE_INITIAL_COUNT_TIMEOUT_IN_SECONDSの追加。デフォルト1

*システムコンフィグ設定: GLOBAL_MAX_QUERY_RECORDSの追加。デフォルト100000

 

◆2024年5月8日コミットの修正

https://github.com/idempiere/idempiere/commit/e147b1e08810a68a26251ebd5107f6f6b3d390ce

【マイグレーションスクリプト】

*システムコンフィグ設定:REPORT_LOAD_TIMEOUT_IN_SECONDSの追加。デフォルト120

*システムコンフィグ設定:GLOBAL_MAX_REPORT_RECORDSの追加。デフォルト100000

DataEngine

JPIERE-6123の課題は、【JPIERE-0264】一覧レポートの表示レコード数の制限と機能が衝突する部分があります。そのため衝突しないように調整しました。

iDempiereのDataEngineの修正箇所

JPiereのDataEngineの修正箇所

レポートビューの制限数を0に設定すると、iDempiere標準の機能で処理されるようにしています。