Cognos BIでレポート実行時にクエリーがデータソースに発行されますが、デフォルトではクエリーは一個一個順次発行されます。
これがCognosの仕様上の動作で、変更できないと思われている方が意外と多いので、手順を紹介しておきます。
Report ServiceやBatch Report Serviceの詳細設定に以下を設定します。
※設定された数値は例なので、環境ごとに調整をお願いします。
RSVP.CONCURRENTQUERY.ENABLEDFORINTERACTIVEOUTPUT = true
RSVP.CONCURRENTQUERY.NUMHELPERSPERPROCESS = 4
RSVP.CONCURRENTQUERY.MAXNUMHELPERSPERREPORT = 2
【Technote:How to enable Concurrent Query execution in Cognos 8】
http://www-01.ibm.com/support/docview.wss?uid=swg21342330
こちらも手順がわかりやすいのでご参照下さい。
【Steps to setup concurrent query execution】
http://raulparracognos.blogspot.jp/2014/01/steps-to-setup-concurrent-query.html
・RSVP.CONCURRENTQUERY.NUMHELPERSPERPROCESS について
Report Serviceのプロセス(BIBusTKServerMain)1個あたりに起動するQuery Execution Helperの数を指定します。
Query Execution Helperとは、同時処理用のスレッドのイメージです。
この設定値により、データソースの接続数を考慮した以下のチューニングが必要です。
RSVP.CONCURRENTQUERY.NUMHELPERSPERPROCESS = 4と設定した場合に、Report Serviceプロセス=8、高親和性接続=2、低親和性接続=8、にしていたとすると、
データソースへの接続数は、8プロセス x (2高親和 + 8低親和 + 4Helper) = 112接続となります。
この場合、CQEConfigファイルでのPoolSizeの設定で以下の変更が必要です。
DBConnectionPoolセクションのPoolSize=40 → 112に変更
※ここの考え方が違いました。CQEConfig.xmlの設定は、各プロセスに対する設定なので、1プロセスでの接続数は 2 + 8 + 4 = 14接続となりますので、デフォルトのPoolSize=40のままで大丈夫です。
・RSVP.CONCURRENTQUERY.MAXNUMHELPERSPERREPORTについて
1レポートあたりで使用できる最大Query Execution Helper数のリミット値の設定です。
・RSVP.CONCURRENTQUERY.ENABLEDFORINTERACTIVEOUTPUTについて
同時クエリー発行を許可するための設定です。
・Report Authoring中のクエリーのプロパティ設定
以下のプロパティをConcurrentに設定が必要です。