LoginSignup
1
2

More than 3 years have passed since last update.

Cognos BI でレポート実行時のクエリー発行を並列化する方法

Last updated at Posted at 2016-11-16

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に設定が必要です。
image

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2