帳票ロード速度を影響する要素

  • 作成者:ayuan0625
  • 編集回数:16次
  • 最終更新:ayuan0625 于 2021-08-11
  • 一.概要

    1.ユーザがFineReport帳票システム及びFineReportデザイナを使用する時、帳票のロード速度が遅く、ページにラグが発生するといった問題に遭ったことがあります。これらの問題の発生はPCのパフォーマンス、帳票システムの設定に影響されます。

    2.本マニュアルでは、帳票ロード速度を影響する7つの要素を紹介します。本マニュアルの内容を参照し、帳票のロード速度を最適化する前に、実際の状況に基づいて、システムログレベル設定を最適化する必要があります。


    二.システムログレベル設定最適化

    1.システム管理員アカウントで管理ポータルにログインし、[システム]‐[スマート運用保守]‐[プラットフォームログ]‐[グローバル設定]‐[システムログレベル]に入ります。

    2.[システムログレベル]をINFOに設定します。

    3.ログレベルの詳細説明は以下のようになります。

    ログレベル説明
    DEBUG

    SQL実行ログ、システム詳細情報といったきめ細かい情報を表示するログ。

    帳票を開発する時のBUG分析、解決案策定に役立つ。また、技術サポート担当者が帳票システムのBUGや問題を解決する時、DEBUGレベルのログが必要です。

    ログレベルが最も低く、ログサイズが最も大きい。

    INFO

    アプリケーションの実行プロセルを強調するログ。

    システムの重要稼働情報を表示する時に用いられます。

    WARN

    問題が発生する可能性のある情報を表示するログ。

    一部の情報はただ問題発生の可能性を提示しています、発生した問題に関する情報ではありません。

    ERROR

    問題やエラーが発生したが、システム稼働に大きな影響がない情報を表示するログ。

    エクスポートのログ量を制限したい場合に用いられます。

    FATAL

    重大エラー発生時の情報を表示するログ。

    主にシステムダウンに関係するログを表示します。

    ログレベルが最も高く、ログサイズが最も小さい。


    三.帳票ロード速度を最適化する方法

    1.Excelをインポートしたテンプレートにウィジェットを追加した

    1.Excelをインポートする時、テンプレートにウィジェットを追加した場合、ウィジェットロードに時間がかかります。最終的にExcelのインポート速度が非常に遅くなります。

    2.Excelをインポートしたテンプレートにウィジェットを追加しなかった場合、下図のように、インポート時間は27msです。(EXCEL750行4列 デザイナメモリ4096MB)

    3.Excelをインポートしたテンプレートにウィジェットを追加した場合、下図のように、インポート時間は17msです。(EXCEL750行4列 デザイナメモリ4096MB)

    4.ウィジェットを追加したテンプレートにExcelをインポートする時はより多くの時間がかかりますが、本マニュアルの例は本番環境に比べると、非常に簡単です。時間コストの差がそれほど大きくありません。しかし、複雑な帳票に大量なデータをインポートする場合、時間コストの差が非常に大きくなります。

    5.無論、ウィジェットを追加したテンプレートはインポートしたデータを変更できるメリットがあります。実際の状況に基づいて、テンプレートを設計してください。

     

    2.SELECT * で必要以上のデータをクエリした

    1.プロダクトテストによると、SELECT *はロード速度に20-30%の影響を与えると思われます。

    2.大量なデータをクエリすると、できるだけSELECT *の使用を避け、必要なデータのみクエリします。

    3.パフォーマンスの良いSQL文:

    SELECT OrderID,OrderDate FROM Orders

    4.パフォーマンスがそれほど良くないSQL文:

    SELECT * FROM Orders


    3.データベースのテーブルにインデックスを作成していない

    データベースのテーブルにインデックスを作成していない場合、クエリの実行速度が比較的に低いと思われます。FineReportはインデックスを作成していないデータベーステーブル内のデータをクエリする時ほうが、インデックスのあるデータベーステーブルより多くの時間がかかります。


    4.フィルタの大量使用

    1.データセットを作成する場合、SQL文のWHEREで予めデータをフィルタしたほうが推薦されます。

    2.予めデータをフィルタした場合、帳票計算時間は10msです。

    SELECT * FROM ORDERS WHERE SHIPPORT='A'

    3.データをフィルタせず、後にフィルタを設定した場合、帳票計算時間は12msです。

    SELECT * FROM ORDERS

    フィルタ設定あり

    4.本マニュアルの実例から言うと、両方の差は僅か2msのですが、本番環境の場合、その差は10s以上に達する可能性があります。


    5.条件属性の重複使用

    1.条件属性は現在のセルに限らず、現在の行/現在の列に有効と設定することができます。

    2.一行又は一列の形式を条件によって変更する際、肝心なセルに条件属性を設定し、現在の行/列に有効を選択するほうが推薦されます。

    3.全ての列に条件属性を設定した場合、帳票計算時間は17msです。

    4.A1に条件属性を設定し、現在の行に有効と設定した場合、帳票計算時間は14msです。

    注意:本番環境で帳票を開発する時、必要以上の条件属性使用をなるベく避けたほうがいいと思われます。大量なデータのある帳票の場合、条件属性の判断および表示は、帳票計算速度に大きな影響を与えます。

    6.不必要なウィジェットの表示

    1.ウィジェットのロードは帳票ロード速度を影響します。不必要なウィジェットは非表示に設定することが推薦されます。例えば、ID、番号のようなデータは、後に編集する必要がないので、直接表示に設定する必要がありません。ウィジェットを直接表示に設定しなくても、帳票の使用に影響しません。

    2.下図のように、[ウィジェットを直接表示]に設定すると、ウィジェットはそのまま表示します。帳票ロードがより多くの時間がかかります。

    3.下図のように、[ウィジェットを直接表示]のチェックを外すと、ウィジェットはマウスをその上に移動する時のみ表示されます。帳票ロード速度を大幅に向上させることが可能です。

    7.データ処理/データ準備をすべてFineReportを通して行う

    確かに、FineReportでデータを処理するのは非常に簡単で、便利です。しかし、すべての事前計算(ソード、フォルダ)などをFineReportを通して行うと、データ準備の効率が低くなります。大量なデータ処理はまたデザインメモリを占めるので、デザイナのパフォーマンスに影響します。

    FineReportの優位性は表現力豊かなレポートとダッシュボードの展示にあります。データ処理とデータ準備はより専門的なアルゴリズムを有するデータベースで行い、データ可視化をFineReportで行うと、帳票開発のプロセスがよりスムーズになるでしょう。

    Attachment List


    Theme: FineReport システム性能最適化
    • いいね
    • 良くない
    • 閲覧しただけ