An Insight into ASO MDX Execution

If you’re familiar with Dan Pressman’s work on ASO internals, you’ll know that he sometimes talks about the number of “bitmap passes” required to answer a particular MDX query.  I don’t want to rehash everything Dan says here, but the following Kscope 2014  presentation (free “associate membership” required) contains a good explanation: How ASO Works and How to Design for Performance.  Dan’s chapter in “Developing Essbase Applications” touches on the same concepts.

In brief, what Dan says is that a given MDX query may require Essbase to run one or more “stored queries” under the hood.  He makes a pretty convincing case, using the analysis to show why (for example) a stacked hierarchy provides better query performance than pure MDX to calculate YTD.  However, I don’t think anyone has pointed out that MaxL exposes a measure that helps prove that this is really what happens: “kernel_queries_tracked”. Continue reading

MDX and ASO – Implied Share Metadata Oddities

Essbase is Wrong

Once or twice I’ve got stuck troubleshooting an ASO query or MDX member formula, only to discover – after some head-scratching – that Essbase and I disagree about the appropriate value of a metadata property on an implicitly shared member. Whether the (very strange) behavior described below is by design I don’t know, but since ASO and BSO do not behave the same way and I can’t find any documentation describing a difference in this area, I have to suspect not. Continue reading

MDX and Missing Suppression

One feature of all Essbase query tools is the ability to suppress (i.e. remove from the result set) #Missing values, in most cases via a simple, on-or-off option that applies to full rows. In MDX, #Missing suppression is slightly more involved, but also has some interesting subtleties that make possible queries that would be harder or impossible (at least, in one step) to achieve using other tools. Continue reading

Running Web-Launched EAS with the Right Java Version

This OTN thread reminded me of some unsuccessful work I did a while back trying to ensure that the appropriate version of Java was invoked when launching EAS from the web.  After reviewing my notes and doing more digging I came up with a (hack-y, admittedly) workaround, so I decided to write it up. Continue reading