Analysis Services Best Practise Analyser

Introduction

Analysis Services Best Practise Analyser (SqlAsBpa for short) is a tool which checks your live Microsoft Sql Server Analysis Services 2005 against some important best practises, and reports items which violate these best practises.

Screendump of the Best Practise Analyser

Download

You can download this tool here. It is a clickonce application, so the download will automatically install the tool. The tool also regularly checks for updates. Currently, the tool is available for free. However, notice that this software is licensed “as-is.” You bare the risk of using it. U2U gives no express warranties, guarantees or conditions.

Prerequisits

Prerequisits for installing the tool are .Net 2.0 runtime, the AMO (Analysis Management Objects) library and the ReportViewer, all freely available from the Microsoft website.

Detailed Description

After the tool starts, you select the Analysis Services server to connect to. Once connected, you select the database you want to analyse. A list appears with the violated best practises, and some detailed information about the objetcs involved. One can save these results in csv or xml format (handy for importing in e.g. Excel), or render reports (table, crosstab as well as charts) which can be saved in PDF or in Excel.

Screendump of a tablular report with drill down 

It is also possible to mark a violation as 'ignored', and provide annotations with each violation. Earlier saved analysis can also be uploaded again. Based on our personal experience with Analysis Services 2005, we assigned a weight to each best practise, which makes it easy to distinguish the less important best practises (which for instance create a more user friendly end-user experience) from the very important best practises, which improve performance or avoid wrong results.

 

This list of checked Best practises is long (28 best practises for version 1.1). There are best practises on cube and dimension design, partitioning and aggregations. Some best practises strongly influence processing or querying performance, others improve the usability of the resulting databases.

 

Below, we discuss three of these best practises to give you an idea of the type of best practises which are being checked.

Non Empty Behavior

Every calculated member has a property Non-Empty Behavior. With this, you can specify that the calculated member will be empty in all scenaros where a real (non-calculated) measure (or collection of measures) will be empty. Since analysis Services has a very effecient mechanism to find out if a real measure is empty for a particular tuple, it can avoid calculating the calculated member in many cases where it would be null (or empty) anyhow. And given the fact that OLAP cubes are usualy sparse, this can give a big performance improvements on all queries which refer to these calculated members.

Aggregations

Aggregations are for OLAP cubes what indexes are for relational databases: They take storage and time to compute, but they significantly speed-up your queries. Just like the indexes on relational databases, they are not created automatically: you have to initiated explicitly the design of aggregations. This tool checks all partitions in the selected database, and reports those partitions that do not have aggregations defined upon them.

Attribute Relationships

Attribute relationships define the physical storage of the dimensional data, but they also influence the calculation of aggregated data. Because of this, they have a huge impact on performance. With attribute relationships between e.g. products, subcategories and categories, to compute a category total, Analysis Services just adds up all the subtotals from the subcategories underneath this category. Without attribute relationships, it would need to retrieve all the products (assuming this is the key attribute of the dimension) in this category and add up their aggregated data. So instead of adding up e.g. 4 subcategories, it now needs to add up e,g, 450 products (which takes 112.5 times as long). So in this example, setting the attribute relationships right would have given us as 11250% speed improvement. Nice!

The tool checks all the cube dimensions in the selected database to see if there is at least one non-trivial attribute relationship set (a trivial attribute relationships is the relationship between a non-key attribute and the key-attribute). It reports all the dimensions in which no non-trivial attribute-relationships do exist. Notice that in some dimensions indeed no reslationships should exist, but in most dimensions, missing attribute relationships are a strong indication of failing best practises.

Questions?

Any remarks or questions on this product are welcome at info@u2u.net.

Contact me Contact


Contact me Receive U2U Newsletter.
Looking for a challenging job Download Brochure On Site Training Looking for a challenging job
Favorites Favorites
Copyright © 1999-2010 by U2U