NoSQL reporting performance considerations
You can create and run report definitions against Couchbase Server and Apache Cassandra NoSQL databases, however, there can be a performance impact. Keep the following considerations in mind when reporting against NoSQL databases.
- When you run a report with paging, the first page is retrieved and the total result count is calculated so that the Report Viewer knows how many pages to display. For Apache Cassandra, this calculation can cause significant performance overhead when there are a large number of pages. When you run an Apache Cassandra report definition using the pxRetrieveReportData activity, set pyReturnTotalResultCount to false so that the total result count is not calculated.
- When using the pxRetrieveReportData activity with paging and pyReturnTotalResultCount is set to false, iterating over consecutive pages is optimal for both Couchbase Server and Apache Cassandra. Jumping to an arbitrary page has a large performance overhead on Apache Cassandra.
- On Couchbase Server, Pega® Platform calculates the total result count by running a separate count query in parallel, causing less performance overhead. You can set pyReturnTotalResultCount to false for a slight performance improvement.
- If you are only retrieving a small number of results, turn off paging and set the maximum number of rows that you expect to get back.
For information about configuring paging, see Report Definition Report Viewer tab.
For information about setting the number of rows to retrieve, see Setting resource limits for reporting.
For information about pxRetrieveReportData, see More about Report Definition rules.