SSAS: MDX Calculated Measures that Require Date Comparison

Often there is requirement to calculate measures based on two different date dimensions. For e.g. how many orders that were delivered this month was actually ordered last month? How many orders were delivered in the same month as they were ordered? How many orders were carried forward to next month?

Using MDX set functions EXISTS(),FILTER() and Range operator these calculations can be easily achieved provided the Date Dimension conform to same key columns.

Continue Reading

SSAS: One Database, many Cubes Vs. One Database per Cube

So you have several cubes to build and perhaps wondering what is the best way to build and deploy your cubes. Should you build all the cubes within the same Analysis Service database or create one database per cube? The following guidelines might help you to choose the best approach to build and deploy your SSAS cubes. Continue Reading

SSAS: Process Incremental – What it is & isn’t

SSAS provides Process Incremental as one of the processing options for cubes, measure groups and partitions. It is important to understand how Process Incremental works because it differs significantly from the seemingly equivalent Process Update for dimensions. Continue Reading

SSAS: Troubleshooting this exception – “An unexpected error occurred (file ‘mdinfo.cpp’, line nnnn, function ‘MDInfo::Init’)”

What’s this exception?

[Analysis Services Execute DDL Task] Error: Internal error: An unexpected error occurred (file ‘mdinfo.cpp’, line nnnn, function ‘MDInfo::Init’).

My guess is that it’s most likely an unhandled exception from the product. I recently encountered this exception while processing index of a particular SSAS Cube using SSIS Analysis Services Processing Task. The cube did get processed in a previous step and only the process index step failed, the cube was still available for browsing minus the indexes.

How to work around this error?

Continue Reading

SSAS: AMO Coding Tips

Some coding tips when using Analysis Management Objects (AMO) methods
Continue Reading

SSAS: Using AMO to Secure Analysis Service Cube

Analysis Management Objects (AMO) opens up the object model of SSAS cube for programming. With a bit of .NET programing, AMO can be effectively used to automate administration tasks. Securing the cube is one such task that can be easily automated using AMO. The rest of this post explains how to automate cube security using AMO. Continue Reading

SSAS: Consider Cube Browsing when Building Role Playing Dimensions

A Role Playing Dimensions reuses its definition to represent same concept in different contexts. Common example of Role Playing Dimension is date dimension. For instance, date dimension can be used to represent order date, delivery date and shipment date. Currency, staff, organisation hierarchy are other dimensions that are usually role played. While Role Playing Dimensions promote dimension reuse and share dimension data security, the effect on cube browsing must also be considered. Continue Reading

Analysis Service (SSAS) Vs. PowerPivot

This post compares Analysis Services and PowerPivot. Continue Reading…

SSAS: Cube Deployment Issues with Deployment Wizard addressed in SQL Server 2008

If you recently upgraded to SQL Server 2008 or considering an upgrade, you would be glad to know that the Deployment Wizard of Analysis Services works in the way it should (long overdue). In earlier versions, if a new version of the Analysis Service database was deployed over an one, immediately after deployment all the roles would have no permission to the cube even if “retain role and members” option is chosen. Not only that, the role definition especially Dimension Data and Cell Data Access permissions would be lost after deployment. The only saving grace was the role membership remained intact. Continue Reading