Various configurable properties control the OLAP engine’s behavior. In most cases, you can use the default values for these properties. However, if you want to adjust the performance, you may need to change them.
Jaspersoft recommends that you carefully review the effects of the changes you make to the performance tuning variables, and to test such changes before using them in a production environment. | |||||||
| The OLAP settings page requires you to have administrative permissions:
|
To change the OLAP settings:
1. | Click Manage > Server Settings. |
2. | Click OLAP Settings. |
The OLAP Settings page appears.
OLAP Settings Page, Commercial Editions |
Each property is listed with its underlying name (as it appears in the underlying OLAP engine), as well as a more descriptive label. The properties are described in the table below.
3. | If your edition of the server includes it, click the Performance Profiling Enabled check box to generate performance reports and views, and click Change. |
The page displays a message indicating that the setting was updated.
4. | Locate and analyze the performance reports and views. The reports are found in the repository at /performance/reports. The views are found at /performance/views. |
5. | Review the available properties described below to determine if they can be changed to improve performance. |
6. | Adjust any options as needed, click Change, and run the performance views and reports to understand the impact your changes made. |
7. | Adjust the settings as necessary. |
Test your views and adjust properties as your findings dictate.
To log the SQL queries Jaspersoft OLAP sends to the database, set the Generate Formatted SQL Traces option. This ensures that Jaspersoft OLAP writes the SQL queries it executes to the log file you specify. |
The following table lists the properties’ meanings.
OLAP Settings
Property
Notes
General Behavior
Performance Profiling Enabled
When enabled, performance profiling data is generated and recorded. The availability of this setting is controlled by your license.
Disable OLAP Memory Caching
Turns off caching completely. Disabling caching can have a very noticeable negative performance impact.
If disabled, Jaspersoft OLAP returns an exception when users drill through
If disabled, Jaspersoft OLAP returns an exception if you attempts to drill-through. This can be useful when the underlying data contains confidential information or is so voluminous that drill-through performance would be unacceptable.
Generate Formatted SQL Traces
When tracing is enabled, Jaspersoft OLAP formats SQL queries in the trace output with line breaks, which makes them easier to read.
The maximum number of concurrent queries allowed.
When set to a number greater than 0, result sets are limited to the specified number of rows.
Maximum number of MDX query threads per Jaspersoft OLAP instance
For each Jaspersoft OLAP instance in your deployment, the maximum number of concurrent threads that can be used for MDX queries. For more information about running multiple instances in a single deployment, refer to Performance Tuning.
Interval between polling operations performed by the RolapConnection shepherd thread
Specifies the interval between polling operations performed by the RolapConnection shepherd thread. This controls query timeouts and cancellation, so a small value (a few milliseconds) is usually best. When this is set to a value higher than the value defined for the If > 0, Maximum query time (number of seconds) setting, the timeout isn't enforced as expected.
Maximum number of passes allowable while evaluating a MDX expression
When evaluating an MDX query, the maximum number of passes allowed. Jaspersoft OLAP returns an error when this threshold is exceeded; for example, the error may occur during complex calculations.
Class name of ExpCompiler to use
If entered, this must be a Java class name that is an implementation of the mondrian.calc.ExpCompiler interface. Refer to the Mondrian Javadoc for more information.
MDX identifiers are case-sensitive
Specifies whether the MDX parser considers the case of identifiers.
If > 0, the number of cells that are batched together when building segments
When set to a number greater than zero, defines a limit on the number of cells that can be batched together when building segments.
Sibling members are ordered according to their ordinal expression
Specifies whether siblings at the same level of a dimension are compared according to the order key value retrieved from their ordinal expression. By default, ordinal expressions are only used for ORDER BY, and Jaspersoft OLAP ignores the actual values. When this property is enabled, Jaspersoft OLAP can correctly order members when native filtering is used. Note that this setting requires that the RDBMS provides non-null instances of java.lang.Comparable that yield the correct ordering when calling their Comparable.compareTo method.
If > 0, Maximum query time (number of seconds)
When set to a value greater than zero, Jaspersoft OLAP times out if the query takes longer than the specified number of seconds. If a query exceeds the limit, Jaspersoft OLAP returns an error.
For more information, refer to the Query Limit and Result Limit entries in this table.
Number of elements read when processing high cardinality dimension elements
This property determines how many members Mondrian reads in one block from the database. Setting large values for this property increases performance but can overload memory. Values should be prime with mondrian.result.limit.
For more information, refer to the configuration guide.
Sparse Segment Density Threshold
Performance tuning variable. This property only applies when SparseSegmentCountThreshold is enabled. It determines whether to use a sparse or a dense representation when collections of cell values are stored in memory.
Sparse Segment Count Threshold (number of cell values)
Performance tuning variable. this property only applies when SparseSegmentDensityThreshold is set. It determines whether a sparse or a dense representation is used when collections of cell values are stored in memory.
When storing collections of cell values, Jaspersoft OLAP can use either a sparse or a dense representation. This is determined by the possible and actual number of values: density is calculated as actual / possible.
Whenever possible, Jaspersoft OLAP uses a sparse representation - countThreshold * actual > densityThreshold.
For example, for the default values (countThreshold = 1000, SparseSegmentDensityThreshold = 0.5), Jaspersoft OLAP uses a dense representation for:
• | 1000 possible, 0 actual, or |
• | 2000 possible, 500 actual, or |
• | 3000 possible, 1000 actual |
If there are fewer actual values or more possible values, Jaspersoft OLAP uses a sparse representation.
During schema load, invalid members are ignored and will be treated as a null
When enabled, Jaspersoft OLAP ignores invalid members during schema load; they are treated as null members if they are referenced in a later query.
During query validation, invalid members are ignored and will be treated as a null
When enabled, Jaspersoft OLAP ignores invalid members during query validation; invalid members are ignored and are treated as null members.
Defines how a null Member is represented in the result output
Specifies how Jaspersoft OLAP should represent a null member in the result output.
If > 0, the maximum number of iterations allowed when evaluating an aggregate
When set to a number greater than 0, the maximum number of iterations allowed when evaluating an aggregate. When set to 0, iterations are unlimited.
If a query exceeds the limit, Jaspersoft OLAP returns an error that specifies this property’s value. For more information, refer to the Query Limit and Result Limit entries in this table.
If > 0, crossjoin result limit beyond which the optimizer will be applied (number of rows)
When set to a number greater than 0, specifies a threshold for a crossjoin input list's size; if it exceeds this value, and the axis has the NON EMPTY qualifier, Jaspersoft OLAP uses the non-empty optimizer.
When this property is set to 0, Jaspersoft OLAP applies the non-empty optimizer to all crossjoin input lists. To ensure that the optimizer is never applied to crossjoin input lists, set this value to the Integer.MAX_VALUE.
Enable the in-memory rollup of segment data
When enabled (the default setting), segment data are rolled up in-memory.
If there are unrelated dimensions to a measure in context during aggregation, the measure is ignored in the evaluation context
When dimensions unrelated to a measure are detected during aggregation, the measure is ignored in the evaluation context. Note that this property can only affects measures whose CubeUsage’s IgnoreUnrelatedDimensions is false.
For more information, refer to the configuration guide.
Do elements of a dimension (levels, hierarchies, members) need to be prefixed with dimension name in the MDX query
Determines if elements of dimension (levels, hierarchies, and members) must be prefixed with the dimension name in MDX queries.
This property determines whether certain queries succeed or fail based on the way the dimension elements are defined in the MDX query. When this property is enabled, this query fails:
select {[Omaha]} on columns from cust
When this property is disabled, that same query succeeds.
With the property enabled, the correct query is:
select {[Nebraska].[Omaha]} on columns from cust
If your schema is very large or complex, Jaspersoft recommends enabling this setting, as processing such schemas can be very resource-intensive.
For more information, refer to the configuration guide.
Division by null or zero produces NULL
By default, when Jaspersoft OLAP attempts to divide by zero or null, it evaluates to Infinity, which is correct for some analysis providers. When this property is enabled, Jaspersoft OLAP instead evaluates such calculations to null, which can be helpful in certain circumstances.
Comma-separated list of classes to use to get statistics about the number of rows in a table
Comma-separated list of classes to use to get statistics about the number of rows in a table or the number of distinct values in a column.
Solve Order evaluation behavior
Specifies how to evaluate the SOLVE_ORDER:
• | Absolute. Any specified scope is ignored and the SOLVE_ORDER value is absolute. For example, Jaspersoft OLAP gives precedence to a query-defined calculated member with a SOLVE_ORDER of 1 over a cube defined value of 2. |
• | Scoped. Jaspersoft OLAP first resolves cube-calculated members, then resolves session-scoped members, and finally resolves query-defined calculations. Jaspersoft OLAP only applies the SOLVE_ORDER value within the scope in which it was defined. |
Enable Aggregate Tables
When enabled, Jaspersoft OLAP identifies tables in the database that are aggregates, and uses those aggregate values.
For more information, refer to the configuration guide.
Choose Aggregate Table By Volume
Performance tuning variable for aggregates. This property only applies when aggregate tables are used. Consider using this property when optimizing for tables with many large columns. this property determines whether aggregate tables are ordered by volume or row count.
When this property is enabled, Jaspersoft OLAP uses the aggregate table with the smallest volume (number of rows multiplied by number of columns); when it is disabled, Jaspersoft OLAP uses the aggregate table with the fewest rows.
Optimize predicates
Determines whether Jaspersoft OLAP optimizes predicates. When this property is enabled, Jaspersoft OLAP optimizes certain predicates.
When it is disabled, predicates are only optimized when all of a dimension’s members are included. In this case, Jaspersoft OLAP only retrieves the data specified in the query.
For more information, refer to the configuration guide.
Rule file for aggregate table identification
Specifies a file that defines aggregate table recognition rules. This file can either reside in the application server or the file system. Typically, you can accept the default.
AggRule element's tag value
The AggRule element's tag value. Typically, you can accept the default.
SQL to log for aggregate table creation to support MDX with aggregates
Determines whether Jaspersoft OLAP prints the SQL code generated for aggregate tables.
When this property is enabled, Jaspersoft OLAP processes each aggregate request and prints both the lost and collapsed dimension create and insert SQL statements. When used in conjunction with the CmdRunner, it lets you automatically create aggregate table generation SQL.
Factory class for determining the tables and columns of a data source
If entered, this must be a Java class name that is an implementation of the mondrian.rolap.aggmatcher.JdbcSchema.Factory interface. The default implementation is mondrian.rolap.aggmatcher.JdbcSchema.StdFactory. Refer to the Mondrian Javadoc for more information.
Cache and SQL Generation Settings
Use a cache for the results of frequently evaluated expressions
Determines whether Jaspersoft OLAP caches the results of frequently-evaluated expressions. Enabling this property can reduce the number of unnecessary computations when processing a large amount of data.
Cache RolapCubeMember objects
Determines whether Jaspersoft OLAP caches RolapCubeMember objects, which each associate a member of a shared hierarchy with a cube that uses it.
Disable this property if you plan to use the member cache control.
Defines which SegmentCache implementation to use
Defines the SegmentCache implementation to use. Specify the value as a fully qualified class name, such as org.example.SegmentCacheImpl (where SegmentCacheImpl is an implementation of mondrian.spi.SegmentCache).
Maximum number of threads per Jaspersoft OLAP instance used to perform operations on external caches
The maximum number of threads per Jaspersoft OLAP instance that can be used to perform operations on external caches. For more information about running multiple instances in a single deployment, refer to Performance Tuning.
Maximum number of threads per Jaspersoft OLAP instance used to run SQL queries when populating segments
The maximum number of threads per Jaspersoft OLAP instance that can be used to run SQL queries when populating segments. For more information about running multiple instances in a single deployment, refer to Performance Tuning.
Determines whether the data from segments is cached locally
Determines whether data from segments is cached locally. To create custom caches, implement the SegmentCache SPI (Schema Processing Interface).
Maximum number of constraints in a single `IN' SQL clause
The maximum number of constraints in a single SQL IN clause. This value varies with your RDBMS type and configuration. Jaspersoft recommends these values:
• | DB2: 2,500 |
• | MySQL: 10,000 |
• | Oracle: 1,000 |
• | Postgres: 10,000 |
• | Other: 10,000 |
Some NON EMPTY CrossJoin MDX statements will be computed in the database
When enabled, Jaspersoft OLAP pushes down to the database processing related to some NON EMPTY CrossJoin MDX statements.
Some TopCount MDX statements will be computed in the database
When enabled, Jaspersoft OLAP pushes down to the database processing related to some TopCount MDX statements.
Some Filter() MDX statements will be computed in the database
When enabled, Jaspersoft OLAP pushes down to the database processing related to some Filter() MDX statements.
Some NON EMPTY MDX statements will be computed in the database
When enabled, Jaspersoft OLAP pushes down to the database processing related to some NON EMPTY MDX set operations (Such as member.children, level.members and member.descendants).
Expand non native sub-expressions of a native expression into MemberLists
When enabled, Jaspersoft OLAP expands non-native sub-expressions of a native expression into MemberLists.
If enabled, some queries against high-level members of snowflake dimensions are more expensive
When enabled, some queries against members of high levels of snowflake dimensions are more expensive. When disabled, and some rows in an outer snowflake table aren't referenced by a row in an inner snowflake table, some queries return members that have no children.
Alerting action in case native evaluation of a function is enabled but not supported in a particular query
Specifies the error level (OFF, WARN, or ERROR) to use when a function’s native evaluation is enabled but isn’t supported in the context of a particular query's usage. Errors are only returned in the case of a NonEmptyCrossJoin.
Alerts are only raised when there is a possibility that native evaluation would improve matters.
Some rollup queries will be combined using group by grouping sets if the SQL dialect allows it
When enabled, Jaspersoft OLAP combines some rollup queries using group by grouping sets. Note that this property only applies to data stored in Oracle, DB2, or Teradata.
XML/A Maximum Drill Through Rows
Limits the number of rows returned from an XML/A drill-through operation.
First row in the result of an XML/A drill-through request will be filled with the total count of rows
If this property is enabled, the first row returned for an XML/A drill-through request shows the total count of rows in the underlying database.
Interval between refreshes to the list of XML/A catalogs
Determines the frequency of refreshes to the list of XML/A catalogs in a remote server. Values can be suffixed with units of measures for time, such as:
• | s to specify seconds |
• | ms to specify milliseconds |
If no unit of measure is specified, Jaspersoft OLAP assumes the unit is milliseconds.
Use Java Memory monitoring to avoid out of memory
When enabled, Jaspersoft OLAP uses the Java’s memory monitoring capability. In this case, when memory is exhausted, Jaspersoft OLAP returns a MemoryLimitExceededException exception rather than an out of memory error.
Threshold to limit memory used (percent of total memory
Specifies the percent of memory usage that should trigger a notification to Jaspersoft OLAP that memory is low.
The number of previous execution instances Jaspersoft OLAP keeps in its history
Defines the number of previous execution instances the Jaspersoft OLAP keeps in its history so that it can send the events that happen thereafter. Setting this property too high can cause the Java Virtual Machine to run out of memory. Setting it too low can prevent some events from reaching the monitor's listeners.
Class name of factory to manage memory
If entered, this must be a Java class name that is an implementation of the mondrian.util.MemoryMonitor interface. Such a class (mondrian.util.NotificationMemoryMonitor). Refer to the Mondrian Javadoc for more information.
These properties are stored as server-level attributes. We recommend that you allow JasperReports Server to manage these properties automatically; change the values using the administrator-only Managemenu options, unless you need to reset the option to the default. For more information about default server-level attributes, refer to the JasperReports Server Administrator Guide
For more information about these properties, refer to the configuration guide. Use the name of each property (shown below each descriptive label) when searching this reference.
Many other properties can be set by editing configuration files, but some of them do not affect Jaspersoft OLAP because they are controlled in the repository user interface. For example, you do not have to provide a connectString property, or to specify the jdbcDrivers for Mondrian, because Jaspersoft OLAP automatically generates these properties when the DataSource for an AnalysisClientConnection is selected.
To log the SQL queries Jaspersoft OLAP sends to the database, set the Generate Formatted SQL Traces option. This ensures that Jaspersoft OLAP writes the SQL queries it executes to the log file you specify. |
Recommended Comments
There are no comments to display.