Professional Documents
Culture Documents
VLDB PROPERTIES
Agenda This topic introduces you to the concept of VLDB properties. It describes the fundamentals to customize the SQL that MicroStrategy generates, and determine how data is processed by the Analytical Engine. This topic includes the following: Introduction to VLDB properties Benefits of VLDB properties
Order of Precedence
Accessing and working with VLDB properties Details for all VLDB properties
Complete database support: VLDB properties allow you to easily incorporate and take advantage of new database platforms and versions.
Optimization: You can take advantage of database-specific settings to further enhance the performance of queries.
Flexibility: VLDB properties are available at multiple levels so that the SQL generated for one report, for example, can be manipulated separately from the SQL generated for another, similar report.
VLDB properties are available at multiple levels so that SQL generated for one report can be manipulated separately from the SQL generated for another similar report. This flexibility is an important benefit of VLDB properties because it permits adjustment of many levels such as: REPORT - highest priority TEMPLATE METRIC
PROJECT
DATABASE INSTANCE DBMS - most general
ORDER OF PRECEDENCE
The arrows depict the override authority of the levels, with the report level having the greatest authority. Ex: If a VLDB property is set in for a report and the same property is set differently for a metric included on the report, the report property takes the precedence.
This section tells you how to do the following: Opening the VLDB Properties Editor Creating a VLDB settings report
The table below describes every way to access the VLDB Properties Editor:
A VLDB settings report displays all the current settings for each VLDB property that is available through a given instance of the VLDB Properties Editor. Part of a sample report of settings is shown below for VLDB properties available at the report level:
To create a VLDB settings report 1. 2. Open the VLDB Properties Editor to display the VLDB properties for the level at which you want to work. From the Tools menu, select Create VLDB Settings Report.
3.
A report is generated that displays all VLDB properties available at the level from which you accessed the VLDB Properties Editor. It also displays all current settings for each VLDB property.
You can choose to have the report display or hide the information described above, by selecting the appropriate check boxes. You can copy the content in the report using the Ctrl+C keys on your keyboard. Then paste the information into a text editor or word processing program (such as Microsoft Word) using the Ctrl+V keys.
4. 5.
Modifying any VLDB property should be performed with caution only after understanding the effects of the VLDB settings that you want to apply.
A given VLDB setting can support or optimize one system setup, but the same setting can cause performance issues or errors for other systems.
If necessary, you can ensure that a property is set to the default. At the bottom of the Options and Parameters area for that property (on the right), select the Use default inherited value check box. Next to this check box name, information appears about what level the setting is inheriting its default from.
Click Save and Close to save your changes and close the VLDB Properties Editor. You must also save in the object or editor window through which you accessed the VLDB Properties Editor. For example, if you accessed the VLDB properties by opening the Metric Editor and then opening the VLDB Properties Editor, after you click Save and Close in the VLDB Properties Editor, you must also click Save and Close in the Metric Editor to save your changes to VLDB properties.
Display NULL on Top determines where NULL values appear when you sort data. It will not change the SQL generation and it only affects how rows with null values will be displayed on a grid.
Part of a sample report is shown below for VLDB properties available at the report level. Notice the NULL values are displayed at the BOTTOM when sorted.
Part of a sample report is shown below for VLDB properties available at the report level. Notice the NULL values are displayed at the TOP when sorted.
Distinguish Duplicated Rows is useful when working with attributes which have duplicate IDs. MicroStrategy does not support the use of duplicate attribute IDs, but if users have duplicate ID's because of unavoidable reasons, then this VLDB property can be used if required.
For example, a report with Country, Year, and Sales (in thousands) returns the following data when duplicate rows are distinguished. The combination of Country and Year returns two pairs of duplicate rows for the year 2003.
When a duplicate row is returned the Analytical Engine returns only one of the rows. In this scenario, the data given in the previous table may be returned in a report as shown. Since two duplicate rows are not returned for the report, the metric data for the missing rows cannot be analyzed.
Distinguish the duplicated report rows functionality allows you to analyze all of the metric values for duplicate rows.
For the example with Country, Year, and Sales (in thousands), the report returns the data as shown, which displays all duplicate rows.
Evaluation Ordering An evaluation order is the order in which the MicroStrategy Analytical Engine performs different kinds of calculations during the data population stage. The Evaluation Ordering property determines the order in which calculations are resolved. Some result data can differ depending on the evaluation order.
Evaluation Ordering
In earlier versions, the evaluation order could not be changed. The evaluation order for non-subtotal values was compound metric, consolidation, and then metric limit. The evaluation order for subtotal values was consolidation, subtotal, and then compound metric.
Evaluation Ordering
Microstrategy 7.x provides a new evaluation order and the ability to alter the order. In MicroStrategy 7.x and later, the evaluation order for both non-subtotal and subtotal values is compound metric, consolidation, metric limit, and then subtotal.
NULL checking for Analytical Engine The NULL Checking for Analytical Engine property determines whether or not NULL is interpreted as the number 0 when the Analytical Engine calculates data. TRUE means the Analytical Engine converts NULL to 0.
Subtotal and Aggregation Compatibility The Subtotal and Aggregation Compatibility property has been added only for backwards compatibility. Depending on the MicroStrategy version you have, subtotaling and dynamic aggregation can be level-aware.
In 7.1, subtotaling is not level-aware, but dynamic aggregation is because the SQL is re-executed when attributes are removed from the report.
However, if the aggregate tables use an aggregation other than Sum, or there is different data between aggregate tables and other tables in the data warehouse, this can cause aggregate tables to return incorrect data when dynamic sourcing is used.
You can enable and disable dynamic sourcing for aggregate tables by modifying the Aggregate Table Validation VLDB property.
This option disables dynamic sourcing for aggregate tables. This setting should be used if your aggregate tables are not modeled to support dynamic sourcing. The use of an aggregation function other than Sum or the mismatch of data in your aggregate tables with the rest of your data warehouse can cause incorrect data to be returned to reports from Intelligent Cubes through dynamic sourcing.
Attribute Validation
Attributes are available for dynamic sourcing by default, but there are some data modeling conventions that should be considered when using dynamic sourcing. In general, if attributes use outer joins accurate data can be returned to reports from Intelligent Cubes through dynamic sourcing. However, if attributes use inner joins, which is a more common join type, you should verify that the attribute data can be correctly represented through dynamic sourcing.
Attribute Validation
Two scenarios can cause attributes that use inner joins to return
Attribute Validation
This setting should be used if your attribute data is not modeled to support
dynamic sourcing. The inclusion of NULLs in your attribute data or a mismatch between available attribute data in your fact and lookup tables can cause incorrect data to be returned to reports from Intelligent Cubes through dynamic sourcing.
Enable Dynamic Sourcing for Report You can enable dynamic sourcing for a report so that active Intelligent Cubes (that are also enabled for dynamic sourcing) are checked to see if the report can retrieve its data from an Intelligent Cube. If an Intelligent Cube fits the data requirements of a report, the report can be run without executing against the data warehouse.
Metric Validation
If metrics use outer joins, accurate data can be returned to
to return incorrect data when dynamic sourcing is used. This scenario is uncommon.
Metric Validation
This is the default option for This option disables dynamic sourcing for metrics unless outer metrics, which enables joins are used for the metric. metrics for dynamic sourcing.
This setting should be used if your metric data is not modeled to support dynamic sourcing. The inclusion of NULLs in fact tables that contain your metric data can cause incorrect data to be returned to reports from Intelligent Cubes through dynamic sourcing.
This is a good option if your database does not enforce case sensitivity. When attempting to use dynamic sourcing, it allows filter qualifications to qualify on the text data of attribute forms without enforcing case sensitivity.
This is a good option if your database is case sensitive. This option disables dynamic sourcing for attributes when a filter qualification is used to qualify on the text data of attribute forms.
Intermediate result sets are returned to the MicroStrategy Intelligence, when analytical engine operations are required on data returned from SQL passes other than the final pass.
Since the partition pre-queries return only a handful of rows, the SELECT statements issued for analytical function processing decide the number of rows set in most cases.
If a "number" is set then the number of rows returned is limited to the specified number.
The Maximum SQL/MDX Size property specifies the SQL size (in bytes) on a pass-by-pass basis. If the limit is exceeded, the report execution is terminated and an error message is returned.
The SQL/MDX string is longer than a corresponding limitation. The limit you choose should be based on the size of the SQL string accepted by your ODBC driver.
Number - The maximum SQL pass size (in bytes) is limited to the specified number.
Default - the value is set to the default for the database type used for the related database instance. The default size varies depending on the database type.
The Results Set Row Limit property is used to limit the number of rows returned from the final results set SELECT statements issued. This property is report-specific.
When the report contains a custom group, this property is applied to each element in the group. Therefore, the final result set displayed could be larger than the predefined setting.
The SQL Time Out property is used to avoid lengthy intermediate passes. If any pass of SQL runs longer than the set time (in seconds), the report execution is terminated.
The Analytical Engine can either: Perform the non-aggregation calculation with a subquery, or Place the results that would have been selected from a subquery into an intermediate table and join that table to the rest of the query.
The SQL Engine reads the Fallback Table Type VLDB setting and determines whether to create the intermediate table as a true temporary table or a permanent table.
Compute Non-Agg before/after OLAP Functions (e.g. Rank) Calculated in Analytical Engine
When reports contain calculations based on nonaggregation metrics, this property controls the order in which the non-aggregation and calculations are computed.
COUNT(column) Support
The COUNT(column) Support property is used to specify whether COUNT on a column is supported or not. If it is not supported, the COUNT(column) is computed by using intermediate tables and COUNT(*).
This property can help improve query performance depending on the fact table size and the potential temporary table size. It may be more effective to create a larger temporary table so that you can avoid using the even larger fact table.
It is better to use the fact table multiple times rather than create temporary tables.
NULL Check
NULL Check indicates how to handle arithmetic operations with NULL values. If NULL Check is enabled, the NULL2ZERO function is added, which changes NULL to 0 in any arithmetic calculation (+,-,*,/).
Transformable AggMetric
The Transformable AggMetric VLDB property allows you to define what metrics should be used to perform transformations on compound metrics that use nested aggregation. When a nested aggregation metric is added to the report can report incorrect results in following scenarios.
A transformation shortcut metric is defined on Metric2. Metric1 used to define Metric2 is defined at a lower level than the report level.
Transformable AggMetric
The metric uses default transformation behavior. This option should be used for all metrics except on compound metrics that use nested aggregation.
The metric is defined as a metric to use to perform a transformation when it is included in another metric through nested aggregation.
Zero Check
Zero Check indicates how to handle division by zero. If zero checking is enabled, the ZERO2NULL function is added, which changes 0 to NULL in the denominator of any division calculation.
Optimizing queries
When Final pass CAN do aggregation and join lookup tables in one pass option is selected then the aggregation function are in a single pass.
When One additional final pass only to join lookup tables option is selected, the Engine calculates the aggregation function, which is the Average function, in a separate pass and performs the join operation in another pass.
It applies the filter to only SQL passes that touch warehouse tables, but not to other passes. This option works in most situations.