グリッドエンジンで帳票を実行

  • 作成者:ayuan0625
  • 編集回数:30次
  • 最終更新:ayuan0625 于 2021-09-27
  • 一. 概要

    1.問題の説明

    帳票の形式は時には非常にシンプルで、単一データソースの明細を表示する帳票にすぎないのに対して、データ量が非常に多く、百万、千万やそれ以上に達する場合もあります。そうなると、帳票クエリ及び計算時間が非常に長くなります。帳票の表示速度を高めることにより、ユーザは帳票クエリが遅れていると感じなくなります。

    2.ソリューション

    単一データセットの詳細帳票については、グリッドエンジンを使って帳票を実行することにより、帳票の表示速度を高め、使用体験を改善することができます。

    二.グリッドエンジンの概要

    1.仕組み

    一般帳票:全てのデータを読み込んでから帳票を実行し、最後に全体の帳票結果をブラウザに戻します。ユーザのアクセスから結果表示までの時間=帳票クエリ時間+帳票実行時間になります。

    グリッドエンジン帳票:クエリしながら帳票を実行し、閲覧するページのみを表示します。ユーザのアクセスから結果表示までの時間=トップページデータ読み取り時間+トップページ計算時間になります。

    2.グリッドエンジン属性

    帳票はデフォルトでグリッドエンジンを無効にしています。帳票のデータ量が多く、あまり複雑でない場合、当該属性を使用することができます。

    ページ別にクエリして帳票を実行すると、帳票の実行時間を大幅に短縮し、ユーザ体験を改善することができます。

    メニューのテンプレート-帳票エンジン属性をクリックすると、次のように帳票エンジン属性画面が表示されます。

    01.png

    三.注意事項

    1.グリッドエンジンは一部機能に非対応

    グリッドエンジン帳票は性能を重視します。その働く仕組みから分かるように、グリッドエンジン帳票は、各ページの計算が独立していなければなりません。即ち、帳票にはセルに関連した複雑な演算などがあってはなりません。

    グリッドエンジン帳票の性能を高めるため、FineReportは次に示す一部複雑な機能に対応できないようにしています。

    • セルのフィルタリング、セルフィールドの集計や合計に対応できません。

    • 重複するフッダ行に対応できません。

    • 条件属性は行の高さ、列の幅、ハイパーリンク、行の後に改ページ、形態、ウィジェットに対応できません。

    • 上から下への拡張属性だけに対応し、他の属性の設定には対応できません。

    • フローティング要素、レベル座標、段組み、Sheet間の計算に対応できません。

    • 改ページプレビューによるチャート表示、子帳票には対応できません。

    • セル内容ヒントに数式を使用できません。

    • ページ別、sheet別にExcelファイルをエクスポート出来ません。

    • データ列の結果セットフィルタに対応できません。

    • グループ別に帳票を表示できません。

    • $$$を使ったパラメータ転送に対応できません。

    2.グリッドエンジンのページ別クエリ

    グリッドエンジンのページ別クエリはOracle、MySQL、HSQL、SQL Server 2012以上のバージョンのデータソースのみに対応します。

    例えばSqlite,Access,SQL Server 2005など、その他のデータベースは手動で改ページSQLを作成した場合にのみ、ページ別クエリを実現できます。

    改ページSQL作成に必要なデータベースについては、 単一データセット改ページSQLによる階層帳票の実現の節をご参照ください。

    備考: SQL Server 2012 及び以上のバージョンはグリッドエンジンに対応します。但し、order byを必ずSQL文に入れください。

    備考:データ量が多い時はタイムラグが発生しないように、ページ別に演算し帳票を段階的に実行を選択してください。

    3.マルチデータセット帳票

    グリッドエンジンは、単一データソース帳票のみに対応し、マルチデータセット帳票はグリッドエンジンで改ページ表示することができません。マルチデータソースの階層帳票については、 マルチデータセットの階層帳票をご覧ください。

    4.エンジンプラグイン

    ユーザのアプリケーションシナリオがグリッドエンジンに対応しない場合、 新しい計算エンジンプラグインを使ってみてください。当該プラグインはマルチデータソースにおける改ページクエリ機能を実現し、ユーザは複雑な改ページ SQLまたはJSボタンを再入力する必要がなく、帳票のトップページを速やかにロードすることができます。

    備考:当該プラグインはOracle、SQL Server、MySQL、HANA、PostgreSQL、Impala、DB2など、ほとんどの主流のJDBCデータソースに対応します。

    三.事例

    MySQLを例に、Ordersのデータをグリッドエンジンで表示し、各ページに30行表示にします。

    1.新規テンプレート

    1.1 新規データセット

    テンプレートを新規作成し、データセット ds1を新しく増やします。MySQLデータベースに接続し、SQL文は次の通りです。

    SELECT * FROM Orders

    1.2 テンプレート設計

    次に示すように、テーブルのすべての列をテンプレートの本体にドラッグします。

    02.png

    2.グリッドエンジン設定

    テンプレート-帳票エンジン属性を選択し、グリッドエンジンで帳票を実行にチェックを入れます。

    下の図に示すように、その下のページ別に演算し帳票を段階的に実行を選択し、ページ毎の件数はデフォルト値の30を使用します。

    注:データ量が多い時はタイムラグが発生ないように、「ページ別に演算し帳票を段階的に実行」を選択してください。

    03.png

    3.効果プレビュー

    「改ページプレビュー」をクリックすると、次のように表示されます。

    04.png

    四.注意事項

    1.Class not found:PageSetChain

    問題の説明

    グリッドエンジンを使用し、ページ別に演算し帳票を段階的に実行を設定するとClass not found:PageSetChainのエラーが表示されることがあります。

    05.png

    解決方法

    • 本文 2.3の内容を参照し、グリッドエンジンがサポートしない機能を使用しているかどうかを確認してください。

    • データセットのプレビューが正常に表示されているかを確認し、SQL文が正しいかをチェックしてください。SQL文が複雑である場合、シンプルにしてみてください。

    • 解決できない場合、新しい計算エンジンプラグインの使用をおすすめします。


    Attachment List


    Theme: FineReport システム性能最適化
    既に最初
    既に最後
    • Helpful
    • Not helpful
    • Only read