Thursday, June 14, 2012

Concurrent Query Execution

Even though Concurrent Querying is supported and can be defined in Report Studio, it isn't necessary that concurrent querying takes place behind the scenes. This depends on the number of processes set up and the values configured for the various concurrent query execution parameters.

By default Cognos executes queries sequentially unless the property is set in the report and also provided concurrent execution is enabled in the environment.

To enable this in the environment, at the minimum the below parameters must be added to the report and/or batch report services:

RSVP.CONCURRENTQUERY.NUMHELPERSPERPROCESS,
RSVP.CONCURRENTQUERY.MAXNUMHELPERSPERREPORT

More details on the parameters can be found in the Administration and Security guide.

The NUMHELPERSPERPROCESS sets the number of query execution helpers. It needs to be kept in mind that each query execution helper spawns a new data source connection.

The MAXNUMHELPERSPERREPORT sets the maximum query execution helpers available per report.

In an environment that has:

4 processes (2 high and 2 low affinity)
NUMHELPERSPERPROCESS set to 2
MAXNUMHELPERSPERREPORT set to 2

The NUMHELPERSPERPROCESS allows for a maximum of (2 + 2 + 2) * 4 = 16

If a report has 4 queries set to concurrent execution then this report will consume all query execution helpers with 2 queries being executed concurrently even though 4 have been set to execute concurrently.

Thus it isnt' necessary that a query marked for concurrent execution will execute concurrently.