Skip to main content

レポートのパフォーマンスを向上させるルールの設定 

レポートディフィニッション(およびObj-*メソッド)は、単なるクエリーです。 Pega Platform™は、アプリケーションルールで定義されたパラメーターに基づいて、クエリーの構築および最適化を行います。 その後、Pega Platformはクエリーの結果をクリップボードページに配信し、エンドユーザーに表示したり、結果セットでのエージェントの実行などの他の目的に使用したりします。

データベースクエリーをチューニングする場合に使用するものと同じ原則が、パフォーマンスレポートの設計にも適用できます。 使用するレポートディフィニッションやObj-*メソッドを設定できます。 データベースレベルでテクニックを適用できます。 ロボティックオートメーションElasticsearchへの使用など、まったく別のアプローチでデータを収集することも可能です。

目標は、可能な限り効率的な方法でユーザーにデータを返し、他のユーザーへの影響を可能な限り少なくすることです。

次のテクニックでは、アプリケーション内でルールを設定するためのベストプラクティスについて説明します。

可能な場合のデータページの使用

レポートを最適化するための最良のアプローチは、ユーザーインターフェイスのソースとしてレポートディフィニッションを使用しないことです。 同じデータを再利用する必要がある場合、データページは常に効率的です。 必要な場合のみデータを取得するリフレッシュストラテジを設計します。 可能な限り、静的データにはノードスコープ付きのページを使用します。

結果のページ編集

結果のページ編集を行うことで、データのグループを一度に返すことができます。 大規模なレコード群を返すと、ユーザーが検索している情報を見つけるのが困難になる可能性があります。 たとえば、一度に50件のレコードを返すレポートは、ユーザーにとっては情報量が多すぎて閲覧しきれません。 レポートディフィニッションでEnable Pagingオプションを選択し、ページサイズを指定します。

レポートのページ設定方法の詳細については、「Report Definition Report Viewer tab」を参照してください。

プロパティの最適化

選択基準にプロパティを使用することが想定される場合は、そのプロパティを最適化します。 プロパティを最適化すると、データベーステーブルに列が作成され、必要に応じてインデックスを作成できます。

プロパティの最適化の詳細については、ヘルプトピック「Planning for property optimization」を参照してください。

宣言インデックスの使用

宣言インデックスを使用すると、埋め込まれたページリストのデータを公開することができます。 たとえば、アプリケーションはWork-Partyインスタンスをpr_index_workpartyテーブルに格納します。 これにより、コストのかかるpzpvstream列(BLOB)からワークパーティデータを抽出する代わりに、ワークオブジェクトデータとワークパーティデータを結合するレポートディフィニッションを記述できます。

詳細については、宣言インデックスを使って埋め込みプロパティを最適化する方法に関するCommunityの記事をご覧ください。

レポートデータベースの活用

クエリーが本番データベースに与える影響を軽減するには、レポートデータベース(オルタネートデータベースとも呼ばれます)に対してレポートを実行できます。 このアプローチでは、本番データベースの負荷を複製したデータベースにオフロードします。

レポートデータベースの使用方法の詳細については、「Setting up a reports database」を参照してください。

外部結合の回避

レポートディフィニッションのData Accessタブで Include all rows を選択するとコストがかかります。 このオプションを使用すると、一方のクラスのすべてのインスタンスに、他方のクラスと一致するインスタンスがなくても、レポートに含まれる外部結合を使用するようになります。 可能な場合は、Only include matching rowsを選択します。

子孫クラスインスタンスでのレポートの使用

デフォルトでは、Pegaには"PC0"."pxobjclass" LIKE ?のようなSQLクエリーの現在のクラスとしてpxobjclass があります。

このオプションは、Frameworkレイヤーで作成されたワークプールやレポートから特定のクラスを含めるのに役立ちます。 Report on descendant class instancesを選択した場合、Implementationクラスのみを含めるか、すべての子孫クラス(すべてのFrameworkクラスとImplementationクラス)を含めるかを選択できます。

Report_Descendantclasses
示されているのは、レポートディフィニッションルールの「Data Access」タブにある「Report on descendant class instances」セクションで、「Include all descendent classes」が選択された状態です。 2番目のオプションは、「Include implementation class only」です。
 

pxobjclassのフィルター条件を?が子孫クラスの数に依存する"PC0"."pxobjclass" IN (? , ? , ? , ? , ? , ? , ? , ? )に変更しました。 .pxObjClassにフィルタ-条件を追加することで、子孫クラスの特定のサブセットを選択して、含めたり除外したりできます。

 
pxobjclass
​​​​​​この図は、フィルター条件がpxObjClass列で定義されている場合に、すべての子孫クラスではなく、該当する子孫クラスを選択する方法を示しています。 この選択は、フィルター条件で定義された列に対応する値の選択ボタンをクリックすることで実行できます。
補足: applies toクラスに適用されるすべての子孫クラスを含めます。 これは、Joinクラスには適用されません。
注: 関連するすべてのデータベース列が、含まれるすべてのクラステーブルにインデックスされていない場合、パフォーマンスが低下する可能性があります。

このトピックは、下記のモジュールにも含まれています。

If you are having problems with your training, please review the Pega Academy Support FAQs.

このコンテンツは役に立ちましたか?

改善できるところはありますか?

We'd prefer it if you saw us at our best.

Pega Academy has detected you are using a browser which may prevent you from experiencing the site as intended. To improve your experience, please update your browser.

Close Deprecation Notice