データベースサーバー、Yellowfinのアプリケーションサーバー、ネットワーク、ブラウザのどこに負荷がかかっているかを確認して、ボトルネックになっている箇所を確認してください。Windowsであればタスクマネージャーなどを使用して、CPUの使用率やメモリの使用率を確認することで判断ができると思います。
Yellowfinのレポート表示処理は主に、検索・生成・表示の3つのステップで構成されています。どのステップがボトルネックになっているかを確認し、改善することで、レポートの処理速度を改善します。
それぞれの処理の主な内容は以下の通りです。
検索:
データベースの検索処理です。サーバーのメモリ使用率やCPU使用率があがっていないかを確認します。データベースに負荷がかかると、レポートのSQLの実行速度に影響がでますので、重たくなったように感じます。検索に時間のかかるレポートのSQLが実行されている場合や、他システムのデータ更新処理(バッチ処理など)のタイミングと重なることによって検索に時間がかかるようになり、重たくなったように感じます。
データベースの検索性能を向上させることで、レポートの処理速度の改善につなげます。主に、データベースサーバーのチューニング、レポート用のデータマートの作成などによって、データベースの検索速度を改善します。使用するデータベース製品を、大量データを高速に検索可能なDWH・データベース製品に変更することで改善する、という方法もあります。
生成:
Yellowfinはデータベースの検索結果をもとに、アプリケーションサーバーのメモリ上でレポートを生成します。アプリケーションサーバーにおいて、Yellowfinのプロセスのメモリ使用率やCPU使用率があがっていないかを確認します。Yellowfinで使用しているメモリの実際の使用量は、JVMに割り当てているメモリの容量なので、割り当てが少ないとGCが発生してCPUの使用率が上がります。JVMに割り当てているメモリのうち、どの程度メモリを使用しているかを確認するためには、メモリプロファイラーを使用するか、JConsoleを使用するなどの方法を検討してください。JConsoleの使用方法については、Web上にさまざまな記事がございますのでそちらをご参考ください。
データベースの検索結果のデータ量が多い場合、メモリを大量に消費しますので、検索結果を絞り込み少なくすることで処理速度向上につなげることが可能です。グラフの生成、レポートの書式の適用、レポートの高度な関数の計算処理もこのステップでおこないますので、グラフの数が多かったり、複雑な書式が設定されていたり、高度な関数が多用されている場合、処理に時間がかかる場合がございます。
アプリケーションサーバーにリポジトリデータベースが同居している場合、アプリケーションサーバーの負荷が高まることで、リポジトリデータベースにも影響がでます。Yellowfinは画面遷移する際にもリポジトリデータベースに検索をかけていますので、リポジトリデータべースのレスポンスが悪くなると、システム全体の動作が重たくなります。
表示:
生成したレポートはクライアントPCのブラウザが描画します。データベースやアプリケーションサーバーの処理性能に関係なく、ブラウザの処理性能に完全に依存します。表が縦横に大きい場合や、グラフにプロットする情報が多い場合、処理に時間がかかります。処理速度を向上させるためには、よりレンダリング性能の高いブラウザを使用するか、描画する情報量を減らす必要があります。
また、同時利用者数の増加などによってネットワークに負荷がかかり、レスポンスが低下する場合もあります。
特殊な例として、クライアントPCのリソース不足によって(同時に起動しているアプリケーションの数が多すぎて)、ブラウザが十分に処理できないといった報告も過去にありました。