<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet type='text/xsl' href='http://cwebbbi.spaces.live.com/mmm2008-07-17_13.29/rsspretty.aspx?rssquery=en-US;http%3a%2f%2fcwebbbi.spaces.live.com%2fblog%2ffeed.rss' version='1.0'?><rss version="2.0" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:msn="http://schemas.microsoft.com/msn/spaces/2005/rss" xmlns:live="http://schemas.microsoft.com/live/spaces/2006/rss" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:cf="http://www.microsoft.com/schemas/rss/core/2005" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Chris Webb's BI Blog: Blog</title><description /><link>http://cwebbbi.spaces.live.com/blog</link><language>en-US</language><pubDate>Thu, 24 Jul 2008 01:02:02 GMT</pubDate><lastBuildDate>Thu, 24 Jul 2008 01:02:02 GMT</lastBuildDate><generator>Microsoft Spaces v1.1</generator><docs>http://www.rssboard.org/rss-specification</docs><ttl>60</ttl><cf:parentRSS>http://cwebbbi.spaces.live.com/feed.rss</cf:parentRSS><live:type>blog</live:type><live:identity><live:id>8900433320278050970</live:id><live:alias>cwebbbi</live:alias></live:identity><image><title>Chris Webb's BI Blog: Blog</title><url>http://blufiles.storage.live.com/y1poIC3vVmfGekk1vz-u3hIjtbEMz-IiQWAco1uF_PcYACgOUjJ3IYbwKc9N_FoEXaG</url><link>http://cwebbbi.spaces.live.com/blog</link></image><cf:listinfo><cf:group ns="http://schemas.microsoft.com/live/spaces/2006/rss" element="typelabel" label="Type" /><cf:group ns="http://schemas.microsoft.com/live/spaces/2006/rss" element="tag" label="Tag" /><cf:group element="category" label="Category" /><cf:sort element="pubDate" label="Date" data-type="date" default="true" /><cf:sort element="title" label="Title" data-type="string" /><cf:sort ns="http://purl.org/rss/1.0/modules/slash/" element="comments" label="Comments" data-type="number" /></cf:listinfo><item><title>Show Hidden Objects in the Calculations tab</title><link>http://cwebbbi.spaces.live.com/Blog/cns!7B84B0F2C239489A!2103.entry</link><description>&lt;p&gt;Here's a new button I've just noticed in the toolbar on the Calculations tab in BIDS 2008: Show Hidden Objects. Quite often when you're writing MDX you want to reference hierarchies that are hidden to the end user, and in BIDS 2005 you had to unhide them to be able to see them (and so find out their unique name) in the metadata pane, which was a pain; now in BIDS 2008 you just need to click the new 'Show Hidden Objects' button to be able to see them. For some bizarre reason it doesn't seem to allow me to see hidden sets or calculated members though - why? &lt;p&gt;&lt;a href="http://blufiles.storage.msn.com/y1pGR9FgVunfPTJyY4tL_Yn5b5QpF-m8oukMt69RH8s-l-3MZXi37EXMcIAfNRiC9pq?PARTNER=WRITER"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px" height=222 alt=showhiddenobjects src="http://blufiles.storage.msn.com/y1pn02v0lT1iSG3WXRFJFjmqndVYVY1RbXnSdVZmwA66BOAW6lo-e90Z9-555pR7Am0?PARTNER=WRITER" width=599 border=0&gt;&lt;/a&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=8900433320278050970&amp;page=RSS%3a+Show+Hidden+Objects+in+the+Calculations+tab&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=cwebbbi.spaces.live.com&amp;amp;GT1=cwebbbi"&gt;</description><category>Analysis Services</category><comments>http://cwebbbi.spaces.live.com/Blog/cns!7B84B0F2C239489A!2103.entry#comment</comments><guid isPermaLink="true">http://cwebbbi.spaces.live.com/Blog/cns!7B84B0F2C239489A!2103.entry</guid><pubDate>Wed, 23 Jul 2008 16:05:36 GMT</pubDate><slash:comments>1</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://cwebbbi.spaces.live.com/blog/cns!7B84B0F2C239489A!2103/comments/feed.rss</wfw:commentRss><wfw:comment>http://cwebbbi.spaces.live.com/Blog/cns!7B84B0F2C239489A!2103.entry#comment</wfw:comment><dcterms:modified>2008-07-23T16:05:36Z</dcterms:modified></item><item><title>Kalido Universal Information Director now generates Analysis Services cubes</title><link>http://cwebbbi.spaces.live.com/Blog/cns!7B84B0F2C239489A!2090.entry</link><description>&lt;p&gt;Here's the press release from Kalido:&lt;br&gt;&lt;a title="http://www.kalido.com/5a04ea36-c50e-4617-b25d-85ea56a22690/news-and-events-press-center-press-releases-detail.htm" href="http://www.kalido.com/5a04ea36-c50e-4617-b25d-85ea56a22690/news-and-events-press-center-press-releases-detail.htm"&gt;http://www.kalido.com/5a04ea36-c50e-4617-b25d-85ea56a22690/news-and-events-press-center-press-releases-detail.htm&lt;/a&gt; &lt;p&gt;I don't have any direct experience with Kalido's products (although I've heard good things) but I'd be interested to see the cubes it generates. I wonder to what extent it's possible to optimise automatically generated cubes? &lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=8900433320278050970&amp;page=RSS%3a+Kalido+Universal+Information+Director+now+generates+Analysis+Services+cubes&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=cwebbbi.spaces.live.com&amp;amp;GT1=cwebbbi"&gt;</description><category>On the internet</category><comments>http://cwebbbi.spaces.live.com/Blog/cns!7B84B0F2C239489A!2090.entry#comment</comments><guid isPermaLink="true">http://cwebbbi.spaces.live.com/Blog/cns!7B84B0F2C239489A!2090.entry</guid><pubDate>Mon, 21 Jul 2008 16:04:00 GMT</pubDate><slash:comments>1</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://cwebbbi.spaces.live.com/blog/cns!7B84B0F2C239489A!2090/comments/feed.rss</wfw:commentRss><wfw:comment>http://cwebbbi.spaces.live.com/Blog/cns!7B84B0F2C239489A!2090.entry#comment</wfw:comment><dcterms:modified>2008-07-21T16:04:00Z</dcterms:modified></item><item><title>SQLBits III - Registration Now Open!</title><link>http://cwebbbi.spaces.live.com/Blog/cns!7B84B0F2C239489A!2082.entry</link><description>&lt;p&gt;Registration for SQLBits III, to be held at Hatfield in the UK on September 13th, is now open! SQLBits is the UK's finest SQL Server technical conference, and it's 100% free to attend too. Take a look at:&lt;br&gt;&lt;a href="http://www.sqlbits.com"&gt;http://www.sqlbits.com&lt;/a&gt;&lt;br&gt;...to see what we've got lined up. We've had an amazing 63 session submissions this time (the BI track is the strongest yet, in my opinion) so we're asking everyone who registers to vote on the sessions they'd like to see. We're also running a competition to design a logo for the day too, and you can vote on the logos here:&lt;br&gt;&lt;a title="http://www.sqlbits.com/LogoCompetition.aspx" href="http://www.sqlbits.com/LogoCompetition.aspx"&gt;http://www.sqlbits.com/LogoCompetition.aspx&lt;/a&gt;&lt;br&gt;There are also SQLBits groups on &lt;a href="http://www.facebook.com/group.php?gid=7540670476"&gt;Facebook&lt;/a&gt; and LinkedIn if you'd like to keep in touch with other people who are going or share photos etc. And as I've said before, we'd still like to talk to any companies who are interested in sponsoring the event. &lt;p&gt;Incidentally, Hatfield is just north of London and right next to Luton airport, so it's very easy to get to if you're coming from Europe. Why not pop over on Easyjet, and let your significant other go shopping in London for the day while you enjoy the conference? &lt;p&gt;One other thing to mention is that we're having a training day at the same venue the day before, September 12th. There are a number of reasonably-priced one-day seminars on SQL Server related subjects to choose from:&lt;br&gt;&lt;a title="http://www.sqlbits.com/information/TrainingDay.aspx" href="http://www.sqlbits.com/information/TrainingDay.aspx"&gt;http://www.sqlbits.com/information/TrainingDay.aspx&lt;/a&gt;&lt;br&gt;...including, as you can see, an introduction to SQL Server BI called 'Making the most of data through business intelligence' run by me and Allan Mitchell (SSIS MVP and one of the guys behind &lt;a title="http://www.sqlis.com/" href="http://www.sqlis.com/"&gt;http://www.sqlis.com/&lt;/a&gt;). If you know a DBA, business analyst or manager who wants to learn more about BI then it's the ideal way to get them out of the office for the day - just tell them it's a trip to see &lt;a href="http://en.wikipedia.org/wiki/Mitchell_and_Webb"&gt;Mitchell and Webb&lt;/a&gt; perform live.&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=8900433320278050970&amp;page=RSS%3a+SQLBits+III+-+Registration+Now+Open!&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=cwebbbi.spaces.live.com&amp;amp;GT1=cwebbbi"&gt;</description><category>Events</category><comments>http://cwebbbi.spaces.live.com/Blog/cns!7B84B0F2C239489A!2082.entry#comment</comments><guid isPermaLink="true">http://cwebbbi.spaces.live.com/Blog/cns!7B84B0F2C239489A!2082.entry</guid><pubDate>Fri, 18 Jul 2008 10:53:57 GMT</pubDate><slash:comments>1</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://cwebbbi.spaces.live.com/blog/cns!7B84B0F2C239489A!2082/comments/feed.rss</wfw:commentRss><wfw:comment>http://cwebbbi.spaces.live.com/Blog/cns!7B84B0F2C239489A!2082.entry#comment</wfw:comment><dcterms:modified>2008-07-18T10:53:57Z</dcterms:modified></item><item><title>Last night's BI evening event</title><link>http://cwebbbi.spaces.live.com/Blog/cns!7B84B0F2C239489A!2081.entry</link><description>&lt;p&gt;I just wanted to say a quick thank you to everyone who attended last night's BI evening event at TVP, especially to Jes Kirkup of &lt;a href="http://www.tah.co.uk/Pages/home.aspx"&gt;TAH&lt;/a&gt; (TAH also very kindly provided the beer and pizza during the break, which I'm very grateful for) and &lt;a href="http://blogs.adatis.co.uk/members/Jeremy-Kashel.aspx"&gt;Jeremy Kashel&lt;/a&gt; of &lt;a href="http://www.adatis.co.uk/"&gt;Adatis&lt;/a&gt;. I've asked them both to post their slides up on the web so once they've done that I'll post the links here. 
&lt;p&gt;I promise that it won't be quite so long before we have another event at TVP - I'll try to do a better job of alternating between central London and TVP because I know we get a completely different group of people at each venue. 
&lt;p&gt;UPDATE: You can get hold of Jeremy Kashel's slides on &amp;quot;PEL vs MDX&amp;quot; here -&lt;br&gt;&lt;a href="http://blogs.adatis.co.uk/blogs/jeremykashel/archive/2008/07/18/bi-evening-slides-for-pel-vs-mdx.aspx"&gt;http://blogs.adatis.co.uk/blogs/jeremykashel/archive/2008/07/18/bi-evening-slides-for-pel-vs-mdx.aspx&lt;/a&gt;
&lt;p&gt;UPDATE #2: You can get hold of Jes Kirkup's slides, along with a detailed write up of what he presented, on his new blog:&lt;br&gt;&lt;a href="http://jeskirkup.spaces.live.com/blog/cns!55BF48702D38E629!167.entry"&gt;http://jeskirkup.spaces.live.com/blog/cns!55BF48702D38E629!167.entry&lt;/a&gt;&lt;br&gt;&lt;a href="http://jeskirkup.spaces.live.com/blog/cns!55BF48702D38E629!169.entry"&gt;http://jeskirkup.spaces.live.com/blog/cns!55BF48702D38E629!169.entry&lt;/a&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=8900433320278050970&amp;page=RSS%3a+Last+night's+BI+evening+event&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=cwebbbi.spaces.live.com&amp;amp;GT1=cwebbbi"&gt;</description><category>Events</category><comments>http://cwebbbi.spaces.live.com/Blog/cns!7B84B0F2C239489A!2081.entry#comment</comments><guid isPermaLink="true">http://cwebbbi.spaces.live.com/Blog/cns!7B84B0F2C239489A!2081.entry</guid><pubDate>Fri, 18 Jul 2008 10:52:01 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://cwebbbi.spaces.live.com/blog/cns!7B84B0F2C239489A!2081/comments/feed.rss</wfw:commentRss><wfw:comment>http://cwebbbi.spaces.live.com/Blog/cns!7B84B0F2C239489A!2081.entry#comment</wfw:comment><dcterms:modified>2008-07-21T15:06:26Z</dcterms:modified></item><item><title>Named Sets, AutoExists and Katmai</title><link>http://cwebbbi.spaces.live.com/Blog/cns!7B84B0F2C239489A!2066.entry</link><description>&lt;p&gt;A couple of months ago &lt;a href="http://blog.vyvojar.cz/radim/default.aspx"&gt;Radim Hampel&lt;/a&gt; pointed out to me some very weird stuff happening with named sets and the Where clause. Since it turned out that &lt;a href="http://geekswithblogs.net/darrengosbell/Default.aspx"&gt;Darren&lt;/a&gt; had run into the same issue and also been thrown by it, and since I tested it out on Katmai CTP6 and could see that it was behaving differently from AS2005, I opened an item on Connect:&lt;br&gt;&lt;a href="https://connect.microsoft.com/SQLServer/feedback/ViewFeedback.aspx?FeedbackID=331186"&gt;https://connect.microsoft.com/SQLServer/feedback/ViewFeedback.aspx?FeedbackID=331186&lt;/a&gt; &lt;p&gt;And now, after a long and detailed email thread involving Mosha, Edward Melomed, Marius Dumitru, Darren and Deepak we've got to the stage where I understand what's going on, Katmai RC0 does roughly what I want, and I can blog about it! &lt;p&gt;Let me explain what I saw first. What would you expect the calculated member in following query to return? &lt;p&gt;--Query 1&lt;br&gt;WITH&lt;br&gt;  SET mytestset AS &lt;br&gt;    PeriodsToDate&lt;br&gt;    (&lt;br&gt;      [Date].[Calendar].[Calendar Year]&lt;br&gt;     ,[Date].[Calendar].[Month].&amp;amp;[2004]&amp;amp;[6]&lt;br&gt;    )&lt;br&gt;  MEMBER measures.test AS &lt;br&gt;    SetToStr(mytestset) &lt;br&gt;SELECT&lt;br&gt;  measures.test ON 0&lt;br&gt;FROM [adventure works]&lt;br&gt;WHERE &lt;br&gt;  [Date].[Calendar].[Month].&amp;amp;[2004]&amp;amp;[7]  &lt;p&gt;Just from looking at the code I would have set the calculated member should return the string representation of the set from January 2004 to June 2004. But if you run the query you will in fact see that it returns the set containing the member July 2004 on both AS2005 and Katmai. To me that made absolutely no sense... Now, take a look at this query:  &lt;p&gt;--Query 2&lt;br&gt;WITH&lt;br&gt;  SET mytestset AS &lt;br&gt;    [Date].[Calendar].[Month].&amp;amp;[2004]&amp;amp;[6]&lt;br&gt;  MEMBER measures.test AS &lt;br&gt;    SetToStr(mytestset) &lt;br&gt;SELECT&lt;br&gt;  measures.test ON 0&lt;br&gt;FROM [adventure works]&lt;br&gt;WHERE &lt;br&gt;  [Date].[Calendar].[Month].&amp;amp;[2004]&amp;amp;[7]  &lt;p&gt;On AS2005 the calculation returns June as I would expect, on Katmai it returns an empty set. Now run this query:  &lt;p&gt;--Query 3&lt;br&gt;WITH&lt;br&gt;  SET mytestset AS &lt;br&gt;    {&lt;br&gt;      [Date].[Calendar].[Month].&amp;amp;[2004]&amp;amp;[5]&lt;br&gt;     ,[Date].[Calendar].[Month].&amp;amp;[2004]&amp;amp;[6]&lt;br&gt;    }&lt;br&gt;  MEMBER measures.test AS &lt;br&gt;    SetToStr(mytestset) &lt;br&gt;SELECT&lt;br&gt;  measures.test ON 0&lt;br&gt;FROM [adventure works]&lt;br&gt;WHERE &lt;br&gt;  [Date].[Calendar].[Month].&amp;amp;[2004]&amp;amp;[7]  &lt;p&gt;and this query:  &lt;p&gt;--Query 4&lt;br&gt;WITH&lt;br&gt;  SET mytestset AS &lt;br&gt;    (&lt;br&gt;      [Date].[Calendar].[Month].&amp;amp;[2004]&amp;amp;[5]&lt;br&gt;     :&lt;br&gt;      [Date].[Calendar].[Month].&amp;amp;[2004]&amp;amp;[6]&lt;br&gt;    )&lt;br&gt;  MEMBER measures.test AS &lt;br&gt;    SetToStr(mytestset) &lt;br&gt;SELECT&lt;br&gt;  measures.test ON 0&lt;br&gt;FROM [adventure works]&lt;br&gt;WHERE &lt;br&gt;  [Date].[Calendar].[Month].&amp;amp;[2004]&amp;amp;[7]  &lt;p&gt;...which to me should do the same thing. On AS2005 query 3 returns the set May and June but Katmai returns an empty set; query 4 returns an empty set on both AS2005 and Katmai. At this point I could see that something funny was happening that I didn't like! &lt;p&gt;What are the practical implications of this? Take the following query from Mosha's &lt;a href="http://www.sqljunkies.com/WebLog/mosha/archive/2006/03/14/mdx_ranking.aspx"&gt;blog entry on ranking&lt;/a&gt;: &lt;p&gt;WITH &lt;br&gt;  SET OrderedEmployees AS &lt;br&gt;    Order&lt;br&gt;    (&lt;br&gt;      [Employee].[Employee].[Employee].MEMBERS&lt;br&gt;     ,[Measures].[Reseller Sales Amount]&lt;br&gt;     ,BDESC&lt;br&gt;    )&lt;br&gt;  MEMBER [Measures].[Employee Rank] AS &lt;br&gt;    Rank&lt;br&gt;    (&lt;br&gt;      [Employee].[Employee].CurrentMember&lt;br&gt;     ,OrderedEmployees&lt;br&gt;    ) &lt;br&gt;SELECT&lt;br&gt;  [Measures].[Employee Rank] ON 0&lt;br&gt;,[Employee].[Employee].[Employee].MEMBERS ON 1&lt;br&gt;FROM [Adventure Works]  &lt;p&gt;Run it and you'll see that the Employee with the key 46, A Scott Wright, has a rank of 18. Now let's slice by this Employee:&lt;br&gt; &lt;p&gt;WITH &lt;br&gt;  SET orderedemployees AS &lt;br&gt;    Order&lt;br&gt;    (&lt;br&gt;      [Employee].[Employee].[Employee].MEMBERS&lt;br&gt;     ,[Measures].[Reseller Sales Amount]&lt;br&gt;     ,bdesc&lt;br&gt;    )&lt;br&gt;  MEMBER measures.[employee rank] AS &lt;br&gt;    Rank&lt;br&gt;    (&lt;br&gt;      [Employee].[Employee].CurrentMember&lt;br&gt;     ,orderedemployees&lt;br&gt;    ) &lt;br&gt;SELECT&lt;br&gt;  measures.[employee rank] ON 0&lt;br&gt;FROM [adventure works]&lt;br&gt;WHERE &lt;br&gt;  [Employee].[Employee].&amp;amp;[46]  &lt;p&gt;Run this and you'll see that A Scott Wright has now supposedly got a rank of 1. Whatever the logic behind this, it doesn't make sense from an end user perspective does it? &lt;p&gt;So how can we explain what's happening here? It's all to do with autoexists: in some cases it makes sense to apply autoexists to named sets, but in others (mostly when the set is intended for use in a calculation) then it doesn't. Let's forget about trying to understand what AS2005 does because it tries to guess when it should apply autoexists and gets very confused, but Katmai is mostly consistent and logical: by default it applies autoexists to all named sets. That explains why queries 2,3 and 4 all return empty sets on Katmai: May and June don't exist with July.  &lt;p&gt;After my initial item on Connect was opened those nice people in Redmond (who agreed with me that the way things were working wasn't ideal) added a new connection string property, Autoexists, which can have the following values: &lt;p&gt;0 – default (same as 1)&lt;br&gt;1 – Apply deep autoexists for query axes and named sets (with WHERE clause and subselects)&lt;br&gt;2 – Apply deep autoexists for query axes and no autoexists for named sets (with WHERE clause and subselects)&lt;br&gt;3 – Apply shallow autoexists for query axes with WHERE clause, deep autoexists for query axes with subselects, no autoexists for named sets with WHERE clause and deep autoexists for named sets with subselects  &lt;p&gt;Here's the explanation I got from Marius about what's meant by 'deep' and 'shallow' autoexists: &lt;p&gt;&lt;em&gt;Suppose a query axis or named set involves a set expression of the form F(G(s)), with F and G being set functions (e.g. TopCount, Tail etc.)&lt;br&gt;Let SSW denote the Where clause slice and Subselect restrictions present in the query.&lt;br&gt;“Shallow autoexists” evaluates the set expression as Exists(F(G(s)), SSW).&lt;br&gt;“Deep autoexists” evaluates the set expression as Exists( F( Exists( G( Exists(s, SSW) ), SSW ), SSW) – it applies autoexists with the Where and Subselects at every intermediary step. Deep autoexists applies to all set-valued subexpressions being evaluated in the root context of the query (i.e. the context of default member coordinates, or Where clause coordinates, if a Where clause is present).&lt;br&gt;For many/most set functions (e.g. Union), the rules above produce the same result.&lt;br&gt;For others (e.g. TopCount, Head/Tail), the results differ in the general case.&lt;/em&gt; &lt;p&gt;So the behaviour I describe above for RC0 is also what you get when you put Autoexists=1 in the connection string. But what about Query 1 - why does the PeriodsToDate function return July with this setting? Hmm, well I think this is a bug and it should return an empty set. I opened another Connect about this:&lt;br&gt;&lt;a href="https://connect.microsoft.com/SQLServer/feedback/ViewFeedback.aspx?FeedbackID=356193"&gt;https://connect.microsoft.com/SQLServer/feedback/ViewFeedback.aspx?FeedbackID=356193&lt;/a&gt;&lt;br&gt;and I'll update this post when I get an answer on it. &lt;p&gt;What happens with Autoexists=2 and Autoexists=3 then? In both cases, Query 1 returns the set of months from January to June; Query 2 returns June, Query 3 and Query 4 both return May and June. To see the difference between these two settings take a look at this query: &lt;p&gt;WITH&lt;br&gt;  SET mytestset AS &lt;br&gt;    (&lt;br&gt;      [Date].[Calendar].[Month].&amp;amp;[2004]&amp;amp;[5]&lt;br&gt;     :&lt;br&gt;      [Date].[Calendar].[Month].&amp;amp;[2004]&amp;amp;[6]&lt;br&gt;    )&lt;br&gt;  MEMBER measures.test AS &lt;br&gt;    SetToStr(mytestset) &lt;br&gt;SELECT&lt;br&gt;  measures.test ON 0&lt;br&gt;FROM (SELECT&lt;br&gt;  [Date].[Calendar].[Month].&amp;amp;[2004]&amp;amp;[7] ON 0&lt;br&gt;FROM [adventure works] ) &lt;p&gt;With Autoexists=1 and Autoexists=3 the set here is empty; with Autoexists=2 then it contains May and June.&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=8900433320278050970&amp;page=RSS%3a+Named+Sets%2c+AutoExists+and+Katmai&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=cwebbbi.spaces.live.com&amp;amp;GT1=cwebbbi"&gt;</description><category>MDX</category><comments>http://cwebbbi.spaces.live.com/Blog/cns!7B84B0F2C239489A!2066.entry#comment</comments><guid isPermaLink="true">http://cwebbbi.spaces.live.com/Blog/cns!7B84B0F2C239489A!2066.entry</guid><pubDate>Tue, 15 Jul 2008 16:08:20 GMT</pubDate><slash:comments>3</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://cwebbbi.spaces.live.com/blog/cns!7B84B0F2C239489A!2066/comments/feed.rss</wfw:commentRss><wfw:comment>http://cwebbbi.spaces.live.com/Blog/cns!7B84B0F2C239489A!2066.entry#comment</wfw:comment><dcterms:modified>2008-07-15T16:08:20Z</dcterms:modified></item><item><title>Microsoft BI Conference 2008 session list now posted</title><link>http://cwebbbi.spaces.live.com/Blog/cns!7B84B0F2C239489A!2064.entry</link><description>&lt;p&gt;You can see the session list for this year's BI Conference here: &lt;p&gt;&lt;a title="http://www.msbiconference.com/pages/tracksandsessions.aspx" href="http://www.msbiconference.com/pages/tracksandsessions.aspx"&gt;http://www.msbiconference.com/pages/tracksandsessions.aspx&lt;/a&gt; &lt;p&gt;Looks good. Hmm, wish I could go to this and PASS, but I just can't justify the expense and the time...&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=8900433320278050970&amp;page=RSS%3a+Microsoft+BI+Conference+2008+session+list+now+posted&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=cwebbbi.spaces.live.com&amp;amp;GT1=cwebbbi"&gt;</description><category>Events</category><comments>http://cwebbbi.spaces.live.com/Blog/cns!7B84B0F2C239489A!2064.entry#comment</comments><guid isPermaLink="true">http://cwebbbi.spaces.live.com/Blog/cns!7B84B0F2C239489A!2064.entry</guid><pubDate>Mon, 14 Jul 2008 16:09:27 GMT</pubDate><slash:comments>1</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://cwebbbi.spaces.live.com/blog/cns!7B84B0F2C239489A!2064/comments/feed.rss</wfw:commentRss><wfw:comment>http://cwebbbi.spaces.live.com/Blog/cns!7B84B0F2C239489A!2064.entry#comment</wfw:comment><dcterms:modified>2008-07-14T16:09:27Z</dcterms:modified></item><item><title>Caching: can there be too much of a good thing?</title><link>http://cwebbbi.spaces.live.com/Blog/cns!7B84B0F2C239489A!2055.entry</link><description>&lt;p&gt;I was doing some load testing on a cube recently and noticed an interesting thing. When my load tests started, the average query response time was high for the first minute or so, which is reasonable given that all queries were being run on a cold cache; subsequently the average query response time fell dramatically, as you would expect when the cache warmed up. But over a long period (and I was running a lot of queries over several hours) I noticed that the average query response time started creeping up again. Not by a massive amount, it's true, but enough to be noticeable: say a rise from three to four seconds. &lt;p&gt;Naturally I fired off an email to various people who I thought might help, and as usual Mosha came up with the goods. It turns out he'd noticed the same thing happening on the stress tests that MS run internally but come to the conclusion that it wasn't going to be a problem in the real world. I won't try to repeat too much of the technical detail he gave in case I end up garbling it but essentially there were two reasons why this performance degradation was happening: &lt;ul&gt; &lt;li&gt;Most stress tests use template queries into which random parameters are passed. So, for example, I had captured several 'typical' queries with four or five dimensions in the Where clause which in my test I parameterised;I then selected a random member on each of these dimensions to pass in to each query. This resulted in a lot of queries being run which returned no data at all, which in turn meant that the cache filled up with entries in the index that were very small and not much use, which in turn made cache lookups slower. In the real world the proportion of queries that return no data is much smaller.  &lt;li&gt;The AS cache is optimised for ad-hoc query patterns, where a user starts in one place then drills down/up, slices, dices and so on, and where the data that a query returns is very closely connected to the data retrieved by the last query that was run. This is very different from randomised queries, which as a result perform worse. &lt;/ul&gt; &lt;p&gt;So all in all, it's nothing to worry about. I guess if you had a large cube, lots of users, random query patterns and didn't process your cube very often then it might be a slight problem, but that's a lot of ifs. &lt;p&gt;As an aside, if you're thinking of doing stress testing I wouldn't waste any time trying to get the AS Stress tool I blogged about &lt;a href="http://cwebbbi.spaces.live.com/blog/cns!7B84B0F2C239489A!1131.entry"&gt;here&lt;/a&gt; working - I found it a real pain and ended up building my own load test tool in SSIS using an approach similar to my &lt;a href="http://cwebbbi.spaces.live.com/blog/cns!7B84B0F2C239489A!994.entry"&gt;cache warmer package&lt;/a&gt;. &lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=8900433320278050970&amp;page=RSS%3a+Caching%3a+can+there+be+too+much+of+a+good+thing%3f&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=cwebbbi.spaces.live.com&amp;amp;GT1=cwebbbi"&gt;</description><category>Analysis Services</category><comments>http://cwebbbi.spaces.live.com/Blog/cns!7B84B0F2C239489A!2055.entry#comment</comments><guid isPermaLink="true">http://cwebbbi.spaces.live.com/Blog/cns!7B84B0F2C239489A!2055.entry</guid><pubDate>Wed, 09 Jul 2008 16:40:07 GMT</pubDate><slash:comments>2</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://cwebbbi.spaces.live.com/blog/cns!7B84B0F2C239489A!2055/comments/feed.rss</wfw:commentRss><wfw:comment>http://cwebbbi.spaces.live.com/Blog/cns!7B84B0F2C239489A!2055.entry#comment</wfw:comment><dcterms:modified>2008-07-09T16:40:07Z</dcterms:modified></item><item><title>PASS Camp Germany 2008</title><link>http://cwebbbi.spaces.live.com/Blog/cns!7B84B0F2C239489A!2046.entry</link><description>&lt;p&gt;Are you looking for a public MDX course in Europe? I teach private MDX courses (I'm in the process of building a new &lt;a href="http://www.crossjoin.co.uk/"&gt;website&lt;/a&gt; with all the details on, now I've left Solid Quality - drop me an email if you're interested in one in the meantime) but I'll also be teaching a 3-day public MDX course at PASS Camp Germany from the 2nd to the 4th of September this year:&lt;br&gt;&lt;a title="http://www.sqlpasscamp.de/default.html" href="http://www.sqlpasscamp.de/default.html"&gt;http://www.sqlpasscamp.de/default.html&lt;/a&gt; 
&lt;p&gt;Although the website's in German my session will be in English, and although the event is aimed at the German market I'm sure anyone from anywhere will be more than welcome!
&lt;p&gt;UPDATE: here are the details in English:&lt;br&gt;&lt;a href="http://www.sqlpasscamp.de/mail/news1a.html"&gt;http://www.sqlpasscamp.de/mail/news1a.html&lt;/a&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=8900433320278050970&amp;page=RSS%3a+PASS+Camp+Germany+2008&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=cwebbbi.spaces.live.com&amp;amp;GT1=cwebbbi"&gt;</description><category>Events</category><comments>http://cwebbbi.spaces.live.com/Blog/cns!7B84B0F2C239489A!2046.entry#comment</comments><guid isPermaLink="true">http://cwebbbi.spaces.live.com/Blog/cns!7B84B0F2C239489A!2046.entry</guid><pubDate>Fri, 04 Jul 2008 16:13:12 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://cwebbbi.spaces.live.com/blog/cns!7B84B0F2C239489A!2046/comments/feed.rss</wfw:commentRss><wfw:comment>http://cwebbbi.spaces.live.com/Blog/cns!7B84B0F2C239489A!2046.entry#comment</wfw:comment><dcterms:modified>2008-07-14T21:54:22Z</dcterms:modified></item><item><title>Dynamically generating session calculated members in code with Analysis Services 2008</title><link>http://cwebbbi.spaces.live.com/Blog/cns!7B84B0F2C239489A!2043.entry</link><description>&lt;p&gt;One problem I come across from time to time is the need to be able to group members on a dimension into buckets, for example if you have a Customer dimension you may want to group your Customers together by age group and run a query that shows sales for the 0-9 age group, the 10-19 age group and so on. If you know what buckets you want then you can simply build this into your dimension in advance by creating another attribute; but what if your users want to be able to change the definition of the buckets themselves from query to query - perhaps they wanted to 5 year age groups rather than 10? I &lt;a href="http://cwebbbi.spaces.live.com/blog/cns!7B84B0F2C239489A!133.entry"&gt;described a bit of a hack you could use on AS2K&lt;/a&gt; to do this a while ago, but it doesn't work any more on AS2005 or AS2008 because it uses the unsupported CreatePropertySet function and in any case it was pretty nasty; but the only alternative is to be able to have your client tool dynamically create large numbers of calculated members (one for each bucket) with the appropriate definition and then use these calculated members in your query. 
&lt;p&gt;However with Analysis Services 2008 there's now another possibility - you can create a stored procedure that can create calculated members within the current session. The &lt;a href="http://www.codeplex.com/MSFTASProdSamples/Wiki/View.aspx?title=SS2008!Readme for Analysis Services Personalization Extensions Sample"&gt;&amp;quot;Analysis Services Personalization Extensions&amp;quot;&lt;/a&gt; sample shows off a lot of the new possibilities for server-side coding and &lt;a href="http://bimatters.spaces.live.com/blog/cns!9CF41EA10109E385!168.entry"&gt;Michel Caradec blogged about them&lt;/a&gt; a while ago too, but neither show how to create calculated members so I thought I'd put an example up here. 
&lt;p&gt;The following class generates the calculated members needed to draw a &lt;a href="http://en.wikipedia.org/wiki/Lorenz_curve"&gt;Lorenz curve&lt;/a&gt; (as always please excuse the code - I'm no great C# coder and I just threw it together to make the point): &lt;pre&gt;&lt;font size=1&gt;&lt;span&gt;using&lt;/span&gt; System;
&lt;span&gt;using&lt;/span&gt; System.Collections.Generic;
&lt;span&gt;using&lt;/span&gt; System.Text;
&lt;span&gt;using&lt;/span&gt; Microsoft.AnalysisServices.AdomdServer;

&lt;span&gt;namespace&lt;/span&gt; testdc
{
    &lt;span&gt;public&lt;/span&gt; &lt;span&gt;class&lt;/span&gt; testdc
    {
        &lt;span&gt;public&lt;/span&gt; &lt;span&gt;static&lt;/span&gt; &lt;span&gt;void&lt;/span&gt; Lorenz(&lt;span&gt;string&lt;/span&gt; cubeName, &lt;span&gt;int&lt;/span&gt; incr, &lt;span&gt;string&lt;/span&gt; setToGroup, &lt;span&gt;string&lt;/span&gt; numericValue)
        {
            AdomdCommand cmd = &lt;span&gt;new&lt;/span&gt; AdomdCommand();
            &lt;span&gt;try&lt;/span&gt;
            {
                &lt;span&gt;//drop set&lt;/span&gt;
                cmd.CommandText = &lt;span&gt;&amp;quot;drop set [&amp;quot;&lt;/span&gt; + cubeName + &lt;span&gt;&amp;quot;].[Lorenz]&amp;quot;&lt;/span&gt;;
                cmd.ExecuteNonQuery();
            }
            &lt;span&gt;catch&lt;/span&gt;
            {
                &lt;span&gt;//if the set isn't there we'll get an error we can ignore&lt;/span&gt;
            }
            StringBuilder s = &lt;span&gt;new&lt;/span&gt; StringBuilder();
            s.Append(&lt;span&gt;&amp;quot;{&amp;quot;&lt;/span&gt;);
            &lt;span&gt;//create the calculated member for the total of the set&lt;/span&gt;
            &lt;span&gt;//try to drop the member first, in case it exists&lt;/span&gt;
            &lt;span&gt;try&lt;/span&gt;
            {
                cmd.CommandText = &lt;span&gt;&amp;quot;drop member [&amp;quot;&lt;/span&gt; + cubeName + &lt;span&gt;&amp;quot;].measures.LorenzTotal&amp;quot;&lt;/span&gt;;
                cmd.ExecuteNonQuery();
            }
            &lt;span&gt;catch&lt;/span&gt;
            {
                &lt;span&gt;//if the member isn't there we'll get an error we can ignore&lt;/span&gt;
            }
            cmd.CommandText = &lt;span&gt;&amp;quot;create member [&amp;quot;&lt;/span&gt; + cubeName + &lt;span&gt;&amp;quot;].measures.LorenzTotal &amp;quot;&lt;/span&gt;;
            cmd.CommandText += &lt;span&gt;&amp;quot;as aggregate(&amp;quot;&lt;/span&gt; + setToGroup + &lt;span&gt;&amp;quot; , &amp;quot;&lt;/span&gt; + numericValue + &lt;span&gt;&amp;quot;)&amp;quot;&lt;/span&gt;;
            cmd.CommandText += &lt;span&gt;&amp;quot;, visible=false;&amp;quot;&lt;/span&gt;;
            cmd.ExecuteNonQuery();
            &lt;span&gt;//create the calculated members for the Lorenz curve&lt;/span&gt;
            &lt;span&gt;for&lt;/span&gt; (&lt;span&gt;int&lt;/span&gt; i = incr; i &amp;lt;= 100; i += incr)
            {
                &lt;span&gt;//try to drop the member first, in case it exists&lt;/span&gt;
                &lt;span&gt;try&lt;/span&gt;
                {
                    cmd.CommandText = &lt;span&gt;&amp;quot;drop member [&amp;quot;&lt;/span&gt; + cubeName + &lt;span&gt;&amp;quot;].measures.Lorenz&amp;quot;&lt;/span&gt;;
                    cmd.CommandText += i.ToString();
                    cmd.ExecuteNonQuery();
                }
                &lt;span&gt;catch&lt;/span&gt; 
                {
                    &lt;span&gt;//if the member isn't there we'll get an error we can ignore&lt;/span&gt;
                }
                cmd.CommandText = &lt;span&gt;&amp;quot;create member [&amp;quot;&lt;/span&gt; + cubeName + &lt;span&gt;&amp;quot;].measures.Lorenz&amp;quot;&lt;/span&gt;; 
                cmd.CommandText +=  i.ToString();
                cmd.CommandText += &lt;span&gt;&amp;quot; as aggregate(bottomcount(&amp;quot;&lt;/span&gt; + setToGroup ;
                cmd.CommandText += &lt;span&gt;&amp;quot;, count(&amp;quot;&lt;/span&gt; + setToGroup + &lt;span&gt;&amp;quot;) * &amp;quot;&lt;/span&gt; + i.ToString() + &lt;span&gt;&amp;quot;/100 , &amp;quot;&lt;/span&gt;;
                cmd.CommandText += numericValue + &lt;span&gt;&amp;quot;), &amp;quot;&lt;/span&gt; + numericValue + &lt;span&gt;&amp;quot;)/measures.LorenzTotal&amp;quot;&lt;/span&gt;;
                cmd.CommandText += &lt;span&gt;&amp;quot;, visible=false, format_string='percent';&amp;quot;&lt;/span&gt;;
                cmd.ExecuteNonQuery();
                s.Append(&lt;span&gt;&amp;quot;measures.Lorenz&amp;quot;&lt;/span&gt; + i.ToString() + &lt;span&gt;&amp;quot;,&amp;quot;&lt;/span&gt;);    
            }
            s.Append(&lt;span&gt;&amp;quot;{}}&amp;quot;&lt;/span&gt;);
            &lt;span&gt;//Create set containing all the calculated members&lt;/span&gt;
            cmd.CommandText = &lt;span&gt;&amp;quot;create hidden set [&amp;quot;&lt;/span&gt; + cubeName + &lt;span&gt;&amp;quot;].[Lorenz] as &amp;quot;&lt;/span&gt; + s.ToString();
            cmd.ExecuteNonQuery();
            cmd.Dispose();
        }
    }
}&lt;/font&gt;&lt;/pre&gt;
&lt;p&gt;You need to call the as follows: 
&lt;p&gt;call &lt;br&gt;testdc!Lorenz(&lt;br&gt;//The name of the cube you're using&lt;br&gt;&amp;quot;Adventure Works&amp;quot;, &lt;br&gt;//The % increment for each grouping member&lt;br&gt;//For example, 5 will result in 100/5=20 members&lt;br&gt;5, &lt;br&gt;//The set to group&lt;br&gt;&amp;quot;[Customer].[Customer].[Customer].Members&amp;quot;,&lt;br&gt;//The measure to use &lt;br&gt;&amp;quot;[Measures].[Internet Sales Amount]&amp;quot;) 
&lt;p&gt;When it executes it creates a number of calculated members (the exact number depends on the second parameter) and a named set called [Lorenz] with them all in. Having done that you can run a query and request all the members in the named set: 
&lt;p&gt;select [Lorenz] on 0 from [adventure works] 
&lt;p&gt;You can call the sproc many times in the same session with different parameters and it should always work, although I'll admit it could do a better job of dropping old calculated members. It would also have been able to create a function that did much the same thing but which returned a set containing all these calculated members, so you could call it direct from your query and not have to call the sproc beforehand, but I couldn't get that to work unfortunately.&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=8900433320278050970&amp;page=RSS%3a+Dynamically+generating+session+calculated+members+in+code+with+Analysis+Services+2008&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=cwebbbi.spaces.live.com&amp;amp;GT1=cwebbbi"&gt;</description><category>MDX</category><comments>http://cwebbbi.spaces.live.com/Blog/cns!7B84B0F2C239489A!2043.entry#comment</comments><guid isPermaLink="true">http://cwebbbi.spaces.live.com/Blog/cns!7B84B0F2C239489A!2043.entry</guid><pubDate>Thu, 03 Jul 2008 17:25:56 GMT</pubDate><slash:comments>3</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://cwebbbi.spaces.live.com/blog/cns!7B84B0F2C239489A!2043/comments/feed.rss</wfw:commentRss><wfw:comment>http://cwebbbi.spaces.live.com/Blog/cns!7B84B0F2C239489A!2043.entry#comment</wfw:comment><dcterms:modified>2008-07-03T17:29:28Z</dcterms:modified></item><item><title>PASS 2008 Summit</title><link>http://cwebbbi.spaces.live.com/Blog/cns!7B84B0F2C239489A!2033.entry</link><description>&lt;p&gt;&lt;font size=1&gt;A while ago I blogged about making the decision on whether to attend the Microsoft BI Conference or PASS. Well, the decision has been made for me: I forgot to submit a session abstract for the BI Conference but got my session accepted for PASS, so it's PASS I'm going to. You can see all the content on the BI track at PASS here:&lt;br&gt;&lt;/font&gt;&lt;a title="http://summit2008.sqlpass.org/program-sessions.html#business" href="http://summit2008.sqlpass.org/program-sessions.html#business"&gt;&lt;a href="http://summit2008.sqlpass.org/program-sessions.html#businessI've"&gt;&lt;font size=1&gt;http://summit2008.sqlpass.org/program-sessions.html#business&lt;/font&gt;&lt;/a&gt;&lt;br&gt;&lt;font size=1&gt;I've&lt;/font&gt;&lt;/a&gt; never been to one of the big PASS summits in the US before so it'll be quite exciting. 
&lt;p&gt;&lt;font size=1&gt;My session is called &amp;quot;Creating an SSIS, SSAS and SSRS Monitoring Solution with SSIS, SSAS and SSRS&amp;quot; - basically how to build a BI solution that allows you to capture and analyse the performance and usage of your BI solution using your favourite Microsoft BI tools. It's a topic that people have tackled bits of in the past but I want to be a bit more ambitious and demo a full, end-to-end solution. If anyone has any thoughts or tips to offer on what I should be showing then please leave a comment! &lt;/font&gt;
&lt;p&gt;&lt;font size=1&gt;Meanwhile I see that the Microsoft BI Conference still hasn't published its agenda. To me this is poor marketing - how can you make a decision to attend a conference without seeing the agenda? It's like going into a restaurant without seeing the menu.&lt;/font&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=8900433320278050970&amp;page=RSS%3a+PASS+2008+Summit&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=cwebbbi.spaces.live.com&amp;amp;GT1=cwebbbi"&gt;</description><category>Events</category><comments>http://cwebbbi.spaces.live.com/Blog/cns!7B84B0F2C239489A!2033.entry#comment</comments><guid isPermaLink="true">http://cwebbbi.spaces.live.com/Blog/cns!7B84B0F2C239489A!2033.entry</guid><pubDate>Thu, 26 Jun 2008 10:30:22 GMT</pubDate><slash:comments>3</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://cwebbbi.spaces.live.com/blog/cns!7B84B0F2C239489A!2033/comments/feed.rss</wfw:commentRss><wfw:comment>http://cwebbbi.spaces.live.com/Blog/cns!7B84B0F2C239489A!2033.entry#comment</wfw:comment><dcterms:modified>2008-06-26T12:32:45Z</dcterms:modified></item><item><title>Policy-based management almost makes it to AS2008</title><link>http://cwebbbi.spaces.live.com/Blog/cns!7B84B0F2C239489A!2029.entry</link><description>&lt;p&gt;I was using SQLMS with AS2008 the other day and noticed when right-clicking on the server node in the Object Explorer window some policy-based management options seemed to be available: &lt;p&gt;&lt;a href="http://blufiles.storage.msn.com/y1pAEvk1empm_uIxY0JHh47x4MjipMGIUARHVreUhNJF2_z4FjEM_S8qZ_6W5rzkQP0thEirfxNJDc?PARTNER=WRITER"&gt;&lt;img style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px" height=326 alt=policy src="http://blufiles.storage.msn.com/y1pAEvk1empm_uVoRGQT2P6lmOk2cfeoc7Xj62cCPnQiaP5vRtcpdNkJRAcDGS51NlD4EpDhBPuMEY?PARTNER=WRITER" width=327 border=0&gt;&lt;/a&gt;  &lt;p&gt;Now policy-based management is one of the new features of the relational engine in SQL2008; you can read more about it here:&lt;br&gt;&lt;a title="http://www.mssqltips.com/tip.asp?tip=1492" href="http://www.mssqltips.com/tip.asp?tip=1492"&gt;http://www.mssqltips.com/tip.asp?tip=1492&lt;/a&gt; &lt;p&gt;For a moment I was excited, then I took a look at what facets were actually available for Analysis Services: there's only one, and that gives you the same options to set as you got in the old Surface Area Configuration tool. Maybe in a future release we'll get some more functionality - it would be great to be able to enforce policies like &amp;quot;Always associate a partition with an aggregation design&amp;quot; and so on.&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=8900433320278050970&amp;page=RSS%3a+Policy-based+management+almost+makes+it+to+AS2008&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=cwebbbi.spaces.live.com&amp;amp;GT1=cwebbbi"&gt;</description><comments>http://cwebbbi.spaces.live.com/Blog/cns!7B84B0F2C239489A!2029.entry#comment</comments><guid isPermaLink="true">http://cwebbbi.spaces.live.com/Blog/cns!7B84B0F2C239489A!2029.entry</guid><pubDate>Tue, 24 Jun 2008 11:56:25 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://cwebbbi.spaces.live.com/blog/cns!7B84B0F2C239489A!2029/comments/feed.rss</wfw:commentRss><wfw:comment>http://cwebbbi.spaces.live.com/Blog/cns!7B84B0F2C239489A!2029.entry#comment</wfw:comment><dcterms:modified>2008-06-24T11:56:25Z</dcterms:modified></item><item><title>SQLBits III Call for Speakers</title><link>http://cwebbbi.spaces.live.com/Blog/cns!7B84B0F2C239489A!2026.entry</link><description>&lt;p&gt;&lt;font size=2&gt;Yes, it's time for yet another SQLBits! SQLBits III (aka SQLBits Cubed) will be taking place on Saturday September 13th at the de Havilland Conference Centre in Hatfield, and we are looking for sponsors and speakers. &lt;/font&gt;
&lt;p&gt;&lt;font size=2&gt;If your company is interested in sponsoring SQLBits, please drop an email to Tony Rogerson at &lt;/font&gt;&lt;a href="mailto:tonyrogerson@torver.net"&gt;&lt;font size=2&gt;tonyrogerson@torver.net&lt;/font&gt;&lt;/a&gt;&lt;font size=2&gt; and he'll send you a sponsor pack. With over 300 SQL Server professionals attending the last two conferences, if you've got a SQL Server-related product or service to sell then SQLBits sponsorship is a great way of reaching your target audience. Remember, it's only through sponsorship that we can keep SQLBits going as a free event! &lt;/font&gt;
&lt;p&gt;&lt;font size=2&gt;If you're interested in speaking on any SQL Server related topic (and that includes BI - SSAS, SSRS, SSIS, or PerformancePoint), then you can submit a session on the SQLBits site here:&lt;br&gt;&lt;/font&gt;&lt;a title="http://www.sqlbits.com/information/sessionsubmission.aspx" href="http://www.sqlbits.com/information/sessionsubmission.aspx"&gt;&lt;font size=2&gt;http://www.sqlbits.com/information/sessionsubmission.aspx&lt;/font&gt;&lt;/a&gt;&lt;font size=2&gt; &lt;/font&gt;
&lt;p&gt;&lt;font size=2&gt;The session submission deadline is July 4th. We actively encourage new speakers, so if you've never presented a session at a conference before but it's something you think you'd like to do, then why not give it a try? If you've got any questions, drop Allan Mitchell an email on &lt;/font&gt;&lt;a title="allan.mitchell@konesans.com" href="mailto:allan.mitchell@konesans.com"&gt;&lt;font size=2&gt;allan.mitchell@konesans.com&lt;/font&gt;&lt;/a&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=8900433320278050970&amp;page=RSS%3a+SQLBits+III+Call+for+Speakers&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=cwebbbi.spaces.live.com&amp;amp;GT1=cwebbbi"&gt;</description><category>Events</category><comments>http://cwebbbi.spaces.live.com/Blog/cns!7B84B0F2C239489A!2026.entry#comment</comments><guid isPermaLink="true">http://cwebbbi.spaces.live.com/Blog/cns!7B84B0F2C239489A!2026.entry</guid><pubDate>Tue, 24 Jun 2008 10:25:22 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://cwebbbi.spaces.live.com/blog/cns!7B84B0F2C239489A!2026/comments/feed.rss</wfw:commentRss><wfw:comment>http://cwebbbi.spaces.live.com/Blog/cns!7B84B0F2C239489A!2026.entry#comment</wfw:comment><dcterms:modified>2008-06-24T10:26:17Z</dcterms:modified></item><item><title>Interview on the SQL Down Under Show</title><link>http://cwebbbi.spaces.live.com/Blog/cns!7B84B0F2C239489A!2006.entry</link><description>&lt;p&gt;For your listening pleasure: the latest edition of the &lt;a href="http://www.sqldownunder.com/"&gt;SQL Down Under Show&lt;/a&gt; is me talking to Greg Low about MDX and Analysis Services. You can download it here - &lt;p&gt;&lt;a title="http://www.sqldownunder.com/PreviousShows/tabid/98/Default.aspx" href="http://www.sqldownunder.com/PreviousShows/tabid/98/Default.aspx"&gt;http://www.sqldownunder.com/PreviousShows/tabid/98/Default.aspx&lt;/a&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=8900433320278050970&amp;page=RSS%3a+Interview+on+the+SQL+Down+Under+Show&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=cwebbbi.spaces.live.com&amp;amp;GT1=cwebbbi"&gt;</description><category>On the internet</category><comments>http://cwebbbi.spaces.live.com/Blog/cns!7B84B0F2C239489A!2006.entry#comment</comments><guid isPermaLink="true">http://cwebbbi.spaces.live.com/Blog/cns!7B84B0F2C239489A!2006.entry</guid><pubDate>Thu, 19 Jun 2008 08:47:40 GMT</pubDate><slash:comments>2</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://cwebbbi.spaces.live.com/blog/cns!7B84B0F2C239489A!2006/comments/feed.rss</wfw:commentRss><wfw:comment>http://cwebbbi.spaces.live.com/Blog/cns!7B84B0F2C239489A!2006.entry#comment</wfw:comment><dcterms:modified>2008-06-19T08:47:40Z</dcterms:modified></item><item><title>Using the Caption property with Calculated Members in AS2008</title><link>http://cwebbbi.spaces.live.com/Blog/cns!7B84B0F2C239489A!2000.entry</link><description>&lt;p&gt;One of the many minor improvements in AS2008 MDX is the ability to specify a separate caption for calculated members. &lt;a href="http://www.ssas-info.com/VidasMatelisBlog/30_ssas-2008-katmai-mdx-changes"&gt;Vidas already did a good writeup of the other new properties that you can specify on calculated members&lt;/a&gt;, but for me the ability to specify captions is interesting because we should really be setting captions on calculated members as a matter of best practice. &lt;p&gt;First, how does it work? Well, it's very straightforward - here's an example query and output: &lt;p&gt;&lt;a href="http://blufiles.storage.msn.com/y1pAEvk1empm_uSGqaYW5GDO86FbaCUW7-MZNZSwqNDJCvJnojOAstYDiyM7X3jaVCIbSGI_F9bmmk?PARTNER=WRITER"&gt;&lt;img style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px" height=243 alt=calccaptions src="http://blufiles.storage.msn.com/y1pAEvk1empm_sffO-2ZggCS2zySsQVFr5WTG-3gDQPTRKndwCP-Z5lo_yQ36lntHZ7oA79JjEq_0s?PARTNER=WRITER" width=561 border=0&gt;&lt;/a&gt;  &lt;p&gt;You can see that although we've declared a calculated measure whose unique name is measures.test, when the query is run the end user sees the caption &amp;quot;This is a test measure&amp;quot;. Note you have to use a hard-coded string as a caption, you don't seem to be able to use an MDX expression.  &lt;p&gt;But why should we be doing this? Because calculated member captions are something that change quite often, especially during development, and if you don't use the caption property then you'll end up having to change the &lt;em&gt;unique name&lt;/em&gt; of the calculated member all the time - and this of course will break any other calculations in the MDX Script that refer to this calculation, and worse it will also break any existing queries in reports that refer to this calculation. Also since calculated member captions can be quite long, the ability to write MDX expressions that refer to a much shorter unique name means your code will be much more concise and readable. &lt;p&gt;Of course with real members on non-measures dimensions, if you have specified different columns for the Key and Name properties of the attribute hierarchy you already get this separation between the unique name of the member and the caption that the user sees. The only missing bit of functionality now is a separate Caption property for real (as opposed to calculated) measures.&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=8900433320278050970&amp;page=RSS%3a+Using+the+Caption+property+with+Calculated+Members+in+AS2008&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=cwebbbi.spaces.live.com&amp;amp;GT1=cwebbbi"&gt;</description><category>MDX</category><comments>http://cwebbbi.spaces.live.com/Blog/cns!7B84B0F2C239489A!2000.entry#comment</comments><guid isPermaLink="true">http://cwebbbi.spaces.live.com/Blog/cns!7B84B0F2C239489A!2000.entry</guid><pubDate>Tue, 17 Jun 2008 17:51:20 GMT</pubDate><slash:comments>1</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://cwebbbi.spaces.live.com/blog/cns!7B84B0F2C239489A!2000/comments/feed.rss</wfw:commentRss><wfw:comment>http://cwebbbi.spaces.live.com/Blog/cns!7B84B0F2C239489A!2000.entry#comment</wfw:comment><dcterms:modified>2008-06-17T17:51:20Z</dcterms:modified></item><item><title>BI Survey 8</title><link>http://cwebbbi.spaces.live.com/Blog/cns!7B84B0F2C239489A!1993.entry</link><description>&lt;p&gt;Is it that time of year again? Yes, here's the link for the latest BI Survey:&lt;br&gt;&lt;a href="http://www.eu-survey.com/BI_8/BI.asp?lan=1&amp;amp;lin=23"&gt;http://www.eu-survey.com/BI_8/BI.asp?lan=1&amp;amp;lin=23&lt;/a&gt; &lt;p&gt;Here's the blurb: &lt;p&gt;&lt;em&gt;We would very much welcome your participation in The BI Survey, conducted annually by Nigel Pendse. This is the largest independent survey of OLAP users worldwide. The Survey will obtain input from a large number of organizations to better understand their buying decisions, the implementation cycle and the business success achieved. Both business and technical users, as well as vendors and consultants, are welcome. &lt;/em&gt; &lt;p&gt;&lt;em&gt;The BI Survey is strictly independent. While vendors assist by inviting users to participate in the Survey, the vendors do not sponsor the survey, nor influence the questionnaire design or survey results. You will be able to answer questions on your usage of a BI product from any vendor. Your data will only be used anonymously, and no personal details will be passed to vendors or other third parties.&lt;/em&gt; &lt;p&gt;&lt;em&gt;As a participant, you will not only have the opportunity to ensure your experiences are included in the analyses, but you will also receive a summary of the results from the full survey. You will also have a chance of winning one of ten $50 Amazon vouchers.&lt;/em&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=8900433320278050970&amp;page=RSS%3a+BI+Survey+8&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=cwebbbi.spaces.live.com&amp;amp;GT1=cwebbbi"&gt;</description><category>On the internet</category><comments>http://cwebbbi.spaces.live.com/Blog/cns!7B84B0F2C239489A!1993.entry#comment</comments><guid isPermaLink="true">http://cwebbbi.spaces.live.com/Blog/cns!7B84B0F2C239489A!1993.entry</guid><pubDate>Sat, 14 Jun 2008 06:21:22 GMT</pubDate><slash:comments>1</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://cwebbbi.spaces.live.com/blog/cns!7B84B0F2C239489A!1993/comments/feed.rss</wfw:commentRss><wfw:comment>http://cwebbbi.spaces.live.com/Blog/cns!7B84B0F2C239489A!1993.entry#comment</wfw:comment><dcterms:modified>2008-06-14T06:21:22Z</dcterms:modified></item><item><title>Connection String Properties in SQLMS RC0</title><link>http://cwebbbi.spaces.live.com/Blog/cns!7B84B0F2C239489A!1980.entry</link><description>&lt;p&gt;I heard this was going to be possible &lt;a href="http://cwebbbi.spaces.live.com/blog/cns!7B84B0F2C239489A!1634.entry"&gt;back in March&lt;/a&gt;, but now I've seen it in RC0 - you can now set connection string properties in SQL Management Studio when opening an MDX query window. Just click the new MDX query button, then click Options and you'll see a third tab: &lt;p&gt;&lt;a href="http://blufiles.storage.msn.com/y1pAEvk1empm_so0Ek-Gv44YXYj6z8G6x7pJSKWtQ1DKY8aL40aIvubgo8TLCIv-2s-zZT1R8woA88?PARTNER=WRITER"&gt;&lt;img style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px" height=366 alt=connectionstrings src="http://blufiles.storage.msn.com/y1pAEvk1empm_uqFhDT4ZeDhNaNaLJuHr34Af-A5sYATxKXtj-OqqxVLyCKmbWLqN2A7aZONvrvglI?PARTNER=WRITER" width=315 border=0&gt;&lt;/a&gt;  &lt;p&gt;Although it's much less common to need to set connection string properties, there are still a few scenarios where it's useful. One example is the 'Cube' connection string property, which allows you to write session scoped script assignments in the way Mosha does here:&lt;br&gt;&lt;a title="http://sqlblog.com/blogs/mosha/archive/2008/06/08/mdx-answer-to-nextanalytics-challenge.aspx" href="http://sqlblog.com/blogs/mosha/archive/2008/06/08/mdx-answer-to-nextanalytics-challenge.aspx"&gt;http://sqlblog.com/blogs/mosha/archive/2008/06/08/mdx-answer-to-nextanalytics-challenge.aspx&lt;/a&gt; &lt;p&gt;Another good example is when you're using the Roles or EffectiveUserName properties to test out how queries behave with security.&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=8900433320278050970&amp;page=RSS%3a+Connection+String+Properties+in+SQLMS+RC0&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=cwebbbi.spaces.live.com&amp;amp;GT1=cwebbbi"&gt;</description><category>Analysis Services</category><comments>http://cwebbbi.spaces.live.com/Blog/cns!7B84B0F2C239489A!1980.entry#comment</comments><guid isPermaLink="true">http://cwebbbi.spaces.live.com/Blog/cns!7B84B0F2C239489A!1980.entry</guid><pubDate>Mon, 09 Jun 2008 16:04:33 GMT</pubDate><slash:comments>2</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://cwebbbi.spaces.live.com/blog/cns!7B84B0F2C239489A!1980/comments/feed.rss</wfw:commentRss><wfw:comment>http://cwebbbi.spaces.live.com/Blog/cns!7B84B0F2C239489A!1980.entry#comment</wfw:comment><dcterms:modified>2008-06-09T16:04:33Z</dcterms:modified></item><item><title>BI Evening July 17th</title><link>http://cwebbbi.spaces.live.com/Blog/cns!7B84B0F2C239489A!1977.entry</link><description>&lt;p&gt;There's going to be another one of the UK SQL Server Community's BI Evening events happening at Microsoft UK's offices at TVP in Reading on the evening of July 17th. It's been far too long since the last one, I know - we've all been a bit distracted by &lt;a href="http://www.sqlbits.com/"&gt;SQLBits&lt;/a&gt; (&lt;a href="http://sqlblogcasts.com/blogs/tonyrogerson/archive/2008/05/25/planning-is-underway-for-sqlbits-cubed-which-will-be-held-in-hatfield-on-saturday13th-sept.aspx"&gt;and there's going to be another one of those on September 13th - do you or our company want to sponsor it?).&lt;/a&gt; &lt;p&gt;You can sign up here:&lt;br&gt;&lt;a title="http://www.sqlserverfaq.com/" href="http://www.sqlserverfaq.com/"&gt;http://www.sqlserverfaq.com/&lt;/a&gt; &lt;p&gt;Here's what we've got lined up: &lt;p&gt;&lt;strong&gt;&amp;quot;PEL vs MDX - what are the differences between the two languages?&amp;quot;&lt;br&gt;&lt;/strong&gt;Jeremy Kashel, Adatis &lt;p&gt;&lt;em&gt;Jeremy Kashel from Adatis  presents an introduction to the PerformancePoint Expression Language (PEL). The content will be geared towards MS BI developers, and will highlight the differences between PEL and MDX, with the aim that those with MDX experience will be able to make a fast start with PEL&lt;/em&gt; &lt;p&gt;&lt;strong&gt;&amp;quot;Using Excel Services with Analysis Services and MOSS&amp;quot;&lt;br&gt;&lt;/strong&gt;Jeremy Kirkup, TAH&lt;br&gt;&lt;br&gt;&lt;em&gt;If you are just starting to explore delivering BI solutions with Excel Services and Sharepoint then there are some issues that it is wise to be aware of in advance. This session will describe some real world lessons gained while creating BI solutions which expose Analysis Services data through the Excel Web Access web part.&lt;br&gt;The Excel 2007 client has first class support for the some of the advanced features of Analysis services such as drill-through.  However, when exposing pivot tables to a browser through the Excel Web Access web part this feature is not available. The session will discuss a couple of approaches to implementing drill-through functionality for EWA based pivot tables using the MOSS SmartPart, AJAX and the Excel Web Services.&lt;/em&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=8900433320278050970&amp;page=RSS%3a+BI+Evening+July+17th&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=cwebbbi.spaces.live.com&amp;amp;GT1=cwebbbi"&gt;</description><comments>http://cwebbbi.spaces.live.com/Blog/cns!7B84B0F2C239489A!1977.entry#comment</comments><guid isPermaLink="true">http://cwebbbi.spaces.live.com/Blog/cns!7B84B0F2C239489A!1977.entry</guid><pubDate>Sat, 07 Jun 2008 06:45:09 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://cwebbbi.spaces.live.com/blog/cns!7B84B0F2C239489A!1977/comments/feed.rss</wfw:commentRss><wfw:comment>http://cwebbbi.spaces.live.com/Blog/cns!7B84B0F2C239489A!1977.entry#comment</wfw:comment><dcterms:modified>2008-06-07T06:45:09Z</dcterms:modified></item><item><title>SQL Server 2008 RC0 is out</title><link>http://cwebbbi.spaces.live.com/Blog/cns!7B84B0F2C239489A!1976.entry</link><description>&lt;p&gt;Andrew Fryer has the details here:&lt;br&gt;&lt;a title="http://blogs.technet.com:80/andrew/archive/2008/06/06/sql-server-2008-rc0.aspx" href="http://blogs.technet.com:80/andrew/archive/2008/06/06/sql-server-2008-rc0.aspx"&gt;http://blogs.technet.com:80/andrew/archive/2008/06/06/sql-server-2008-rc0.aspx&lt;/a&gt; &lt;p&gt;If we've got a release candidate, then this means RTM isn't &lt;em&gt;too&lt;/em&gt; far away...&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=8900433320278050970&amp;page=RSS%3a+SQL+Server+2008+RC0+is+out&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=cwebbbi.spaces.live.com&amp;amp;GT1=cwebbbi"&gt;</description><category>Analysis Services</category><comments>http://cwebbbi.spaces.live.com/Blog/cns!7B84B0F2C239489A!1976.entry#comment</comments><guid isPermaLink="true">http://cwebbbi.spaces.live.com/Blog/cns!7B84B0F2C239489A!1976.entry</guid><pubDate>Sat, 07 Jun 2008 06:35:48 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://cwebbbi.spaces.live.com/blog/cns!7B84B0F2C239489A!1976/comments/feed.rss</wfw:commentRss><wfw:comment>http://cwebbbi.spaces.live.com/Blog/cns!7B84B0F2C239489A!1976.entry#comment</wfw:comment><dcterms:modified>2008-06-07T06:35:48Z</dcterms:modified></item><item><title>Google Powerapps</title><link>http://cwebbbi.spaces.live.com/Blog/cns!7B84B0F2C239489A!1973.entry</link><description>&lt;p&gt;While Jamie (who I saw through a window today, although I didn't manage to say hello) is &lt;a href="http://blogs.conchango.com/jamiethomson/archive/2008/06/05/ssds-will-we-get-a-cloud-based-metric-aggregator.aspx"&gt;wondering about whether SQL Server Data Services will ever include a cloud-based OLAP engine&lt;/a&gt;, Panorama have just announced their own equivalent called Panorama PowerApps:&lt;br&gt;&lt;a title="http://www.panorama.com/blog/?p=111" href="http://www.panorama.com/blog/?p=111"&gt;http://www.panorama.com/blog/?p=111&lt;/a&gt;&lt;br&gt;&lt;a title="http://panorama.com/powerapps/" href="http://panorama.com/powerapps/"&gt;http://panorama.com/powerapps/&lt;/a&gt; &lt;p&gt;And guess what, it's queryable through MDX! That means that not only will you be able to query it through Google Apps but also Excel. I've signed up to be a beta tester, so I'll blog more when I have a chance to check it out.&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=8900433320278050970&amp;page=RSS%3a+Google+Powerapps&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=cwebbbi.spaces.live.com&amp;amp;GT1=cwebbbi"&gt;</description><comments>http://cwebbbi.spaces.live.com/Blog/cns!7B84B0F2C239489A!1973.entry#comment</comments><guid isPermaLink="true">http://cwebbbi.spaces.live.com/Blog/cns!7B84B0F2C239489A!1973.entry</guid><pubDate>Thu, 05 Jun 2008 21:23:33 GMT</pubDate><slash:comments>2</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://cwebbbi.spaces.live.com/blog/cns!7B84B0F2C239489A!1973/comments/feed.rss</wfw:commentRss><wfw:comment>http://cwebbbi.spaces.live.com/Blog/cns!7B84B0F2C239489A!1973.entry#comment</wfw:comment><dcterms:modified>2008-06-05T21:23:33Z</dcterms:modified></item><item><title>Oracle and MDX</title><link>http://cwebbbi.spaces.live.com/Blog/cns!7B84B0F2C239489A!1969.entry</link><description>&lt;p&gt;Meanwhile, in the parallel universe inhabited by Oracle users, a few weeks ago &lt;a href="http://www.rittmanmead.com/author/mark-rittman/"&gt;Mark Rittmann&lt;/a&gt; interviewed the architect for Oracle Business Intelligence Enterprise Edition, Phil Bates, and asked readers to suggest some questions for him. Of course I couldn't resist asking about MDX, even though I got a very nondescript response:&lt;br&gt;&lt;a title="http://www.rittmanmead.com/2008/06/04/phil-bates-answers-your-questions/" href="http://www.rittmanmead.com/2008/06/04/phil-bates-answers-your-questions/"&gt;http://www.rittmanmead.com/2008/06/04/phil-bates-answers-your-questions/&lt;/a&gt; &lt;p&gt;Interesting that many of the other questions concerned data access (eg &amp;quot;Will Oracle reverse Hyperion’s undocumented strategy for making it almost impossible to get data out of Essbase successfully?&amp;quot;) as well.&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=8900433320278050970&amp;page=RSS%3a+Oracle+and+MDX&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=cwebbbi.spaces.live.com&amp;amp;GT1=cwebbbi"&gt;</description><category>MDX</category><comments>http://cwebbbi.spaces.live.com/Blog/cns!7B84B0F2C239489A!1969.entry#comment</comments><guid isPermaLink="true">http://cwebbbi.spaces.live.com/Blog/cns!7B84B0F2C239489A!1969.entry</guid><pubDate>Wed, 04 Jun 2008 20:25:49 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://cwebbbi.spaces.live.com/blog/cns!7B84B0F2C239489A!1969/comments/feed.rss</wfw:commentRss><wfw:comment>http://cwebbbi.spaces.live.com/Blog/cns!7B84B0F2C239489A!1969.entry#comment</wfw:comment><dcterms:modified>2008-06-04T20:25:49Z</dcterms:modified></item><item><title>nextanalytics</title><link>http://cwebbbi.spaces.live.com/Blog/cns!7B84B0F2C239489A!1966.entry</link><description>&lt;p&gt;Hands up who remembers OLAP@Work? If you do you've been working with Analysis Services for a long time, back when it was still OLAP Services... for those of you who don't, it was one of about four options you had if you wanted a client tool circa 1999; it was an Excel addin and it was pretty good. Anyway, I've just seen this article on Intelligent Enterprise on what Ward Yaternick, the guy who founded OLAP@Work, has been up to since leaving Business Objects (which bought and eventually killed OLAP@Work):&lt;br&gt;&lt;a title="http://www.intelligententerprise.com/blog/archives/2008/06/bi_innovation_f.html" href="http://www.intelligententerprise.com/blog/archives/2008/06/bi_innovation_f.html"&gt;http://www.intelligententerprise.com/blog/archives/2008/06/bi_innovation_f.html&lt;/a&gt; &lt;p&gt;He's been working on something called nextanalytics:&lt;br&gt;&lt;a title="http://www.nextanalytics.com/" href="http://www.nextanalytics.com/"&gt;http://www.nextanalytics.com/&lt;/a&gt; &lt;p&gt;Poking around on the site it looks quite interesting; certainly there are lots of mentions of MDX so I guess it supports Analysis Services as a data source (although it supports a lot of other data sources too). The key thing is that it allows you to create complex queries and calculations using a scripting language. Clearly this scripting language allows you to do the same kind of things you can do with MDX and indeed one particular entry on the nextanalytics blog caught my eye:&lt;br&gt;&lt;a title="http://www.nextanalytics.com/component/option,com_myblog/Itemid,342/show,Can-a-business-intelligence-product-be-used-to-answer-analytic-questions-.html/" href="http://www.nextanalytics.com/component/option,com_myblog/Itemid,342/show,Can-a-business-intelligence-product-be-used-to-answer-analytic-questions-.html/"&gt;http://www.nextanalytics.com/component/option,com_myblog/Itemid,342/show,Can-a-business-intelligence-product-be-used-to-answer-analytic-questions-.html/&lt;/a&gt; &lt;p&gt;I was about to leave a comment when I saw that &lt;a href="http://sqlblog.com/blogs/mosha/default.aspx"&gt;Mosha&lt;/a&gt; had beaten me to it. Mosha's right that contrary to what the original entry says, what Ward is describing is certainly possible in MDX, but Ward also has a point that it's not something that someone with an average knowledge of MDX could accomplish. Can nextanalytics prove itself to be easier to use than MDX? Time will tell. I'll have to download the open source version of it (available here: &lt;a title="http://www.codeplex.com/nextanalyticsOS" href="http://www.codeplex.com/nextanalyticsOS"&gt;http://www.codeplex.com/nextanalyticsOS&lt;/a&gt;) to try it out. When I have a spare moment, of course, which at the current rate is going to be some time next year.&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=8900433320278050970&amp;page=RSS%3a+nextanalytics&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=cwebbbi.spaces.live.com&amp;amp;GT1=cwebbbi"&gt;</description><category>Client Tools</category><comments>http://cwebbbi.spaces.live.com/Blog/cns!7B84B0F2C239489A!1966.entry#comment</comments><guid isPermaLink="true">http://cwebbbi.spaces.live.com/Blog/cns!7B84B0F2C239489A!1966.entry</guid><pubDate>Tue, 03 Jun 2008 22:28:18 GMT</pubDate><slash:comments>2</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://cwebbbi.spaces.live.com/blog/cns!7B84B0F2C239489A!1966/comments/feed.rss</wfw:commentRss><wfw:comment>http://cwebbbi.spaces.live.com/Blog/cns!7B84B0F2C239489A!1966.entry#comment</wfw:comment><dcterms:modified>2008-06-03T22:30:23Z</dcterms:modified></item><item><title>IBM Cubing Services and MDX support</title><link>http://cwebbbi.spaces.live.com/Blog/cns!7B84B0F2C239489A!1963.entry</link><description>&lt;p&gt;Via Amyn Rajan of Simba Technologies, I see that &lt;a href="http://publib.boulder.ibm.com/infocenter/db2luw/v9r5/index.jsp?topic=/com.ibm.dwe.cubeserv.doc/topics/c_cubingconcepts.html"&gt;IBM's Cubing Services&lt;/a&gt; OLAP tool now supports OLEDB for OLAP:&lt;br&gt;&lt;a title="http://blogs.simba.com/simba_technologies_ceo_co/2008/05/ibm-cubing-serv.html" href="http://blogs.simba.com/simba_technologies_ceo_co/2008/05/ibm-cubing-serv.html"&gt;http://blogs.simba.com/simba_technologies_ceo_co/2008/05/ibm-cubing-serv.html&lt;/a&gt; &lt;p&gt;Another boost for the MDX language then! It's the lure of Excel compatibility that is driving all this of course, but it also opens the way for other MDX-friendly client tools as well. &lt;p&gt;Meanwhile MDX support is also proceeding in other, less direct ways. I mentioned before here that I hoped some of the new breed of data warehouse appliance vendors would start to support MDX as well and in a way it's starting to happen: &lt;a href="http://www.vertica.com/company/news_and_events/20080212"&gt;Vertica and Pentaho announced a partnership&lt;/a&gt; a few months back and I've already heard of one instance of a company using &lt;a href="http://mondrian.pentaho.org/"&gt;Mondrian&lt;/a&gt; on top of Vertica. Hopefully other vendors will begin to realise that raw query performance is not much use unless matched with a language that allows you to easily express the queries and calculations you need.&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=8900433320278050970&amp;page=RSS%3a+IBM+Cubing+Services+and+MDX+support&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=cwebbbi.spaces.live.com&amp;amp;GT1=cwebbbi"&gt;</description><category>MDX</category><comments>http://cwebbbi.spaces.live.com/Blog/cns!7B84B0F2C239489A!1963.entry#comment</comments><guid isPermaLink="true">http://cwebbbi.spaces.live.com/Blog/cns!7B84B0F2C239489A!1963.entry</guid><pubDate>Fri, 30 May 2008 09:11:45 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://cwebbbi.spaces.live.com/blog/cns!7B84B0F2C239489A!1963/comments/feed.rss</wfw:commentRss><wfw:comment>http://cwebbbi.spaces.live.com/Blog/cns!7B84B0F2C239489A!1963.entry#comment</wfw:comment><dcterms:modified>2008-05-30T09:11:45Z</dcterms:modified></item><item><title>LINQ to MDX</title><link>http://cwebbbi.spaces.live.com/Blog/cns!7B84B0F2C239489A!1956.entry</link><description>&lt;p&gt;Seeing that &lt;a href="http://sqlblog.com/blogs/marco_russo/archive/2008/05/26/programming-microsoft-linq-finally-shipping.aspx"&gt;Marco Russo has released his book &amp;quot;Programming Microsoft LINQ&amp;quot;&lt;/a&gt; reminded me of a conversation I had with him a while ago about something I've heard &lt;a href="http://forums.microsoft.com/msdn/ShowPost.aspx?PostID=2892909&amp;amp;SiteID=1"&gt;various people ask about&lt;/a&gt; over the last year - will there be a LINQ to MDX? &lt;p&gt;Before we go on, I should state that it's my opinion that there isn't a big enough market out there for anyone (Microsoft or a third party) to justify spending time developing LINQ to MDX. That's not to say that I wouldn't want to see it - I would - just that I doubt anyone much would use it. MDX remains too much of a niche language, and off-the-shelf tools work well most of the time so there's less need to write custom MDX-generation code. As far as I know Microsoft isn't planning on developing LINQ to MDX and I'd be surprised if it ever did, so this will remain a theoretical discussion. &lt;p&gt;But for the sake of argument if you were to implement LINQ to MDX the main problem you'd have to tackle would be the same one you have with using MDX in Reporting Services and Integration Services: MDX can't guarantee fixed column names for any given query. However I had an idea on how to avoid this, and that is to think in terms of LINQ to &lt;em&gt;MDX sets&lt;/em&gt; rather than LINQ to MDX queries. So for example if you take the following SQL query on a dimension table: &lt;p&gt;Select Year, Quarter, Month&lt;br&gt;From TimeDim&lt;br&gt;Where Year=2008 and (Month=March or Month=April)  &lt;p&gt;that would then translate easily into the following MDX set expression: &lt;p&gt;{([TimeDim].[Year].[2008], [TimeDim].[Quarter].[Q3], [TimeDim].[Month].[March]), ([TimeDim].[Year].[2008], [TimeDim].[Quarter].[Q3], [TimeDim].[Month].[April])}  &lt;p&gt;MDX sets have to be made up of tuples containing the same dimensionality, and if you think of a set's dimensionality in terms of columns in a SQL SELECT statement then you can see how that might map onto LINQ concepts. Instead of using LINQ to create an MDX SELECT statement directly, you'd use LINQ to create MDX sets and then pass all of these sets into another function which would then run the query using the sets created as axes. &lt;p&gt;Since I'm no LINQ expert this was the point where I dropped a mail to Marco to ask him his opinion; he thought it was feasible and even came up with an idea of what the code might look like in C#: &lt;p&gt;var timeSet = from period in cubeBudget.TimeDim.Members&lt;br&gt;            where period.Year == 2008 &lt;br&gt;                    &amp;amp;&amp;amp; (period.Level == TimeDim.Level.Year &lt;br&gt;                        || period.Month == &amp;quot;March&amp;quot;&lt;br&gt;                        || period.Month == &amp;quot;April&amp;quot; )&lt;br&gt;              select period;  &lt;p&gt;Var measures = from measure in cubeBudget.Measures&lt;br&gt;               Where new string[] { &amp;quot;Sales&amp;quot;, &amp;quot;Quantity&amp;quot;, &amp;quot;Price&amp;quot; }.Contains( measure.Name )&lt;br&gt;               select measure;&lt;br&gt;&lt;br&gt;Var query = from measure in measures&lt;br&gt;            from period in timeSet&lt;br&gt;            select new { period.Name, measure.Name, measure.Value }; &lt;p&gt;var cellset = from cell in cubeBudget &lt;br&gt;              where cell.Columns( measures ) &lt;br&gt;                    &amp;amp;&amp;amp; cell.Rows( timeSet )&lt;br&gt;              select cell;  &lt;p&gt;In the code above, &lt;em&gt;timeset&lt;/em&gt; would define the set of members on the Period dimension you wanted to use and &lt;em&gt;measures&lt;/em&gt; would return the set of measures. Then you could use them in two ways: &lt;em&gt;query&lt;/em&gt; would return a flattened rowset and &lt;em&gt;cellset&lt;/em&gt; would return a cellset. But this all seems very convoluted and probably just as confusing to the average developer as raw MDX. &lt;p&gt;Another alternative approach would ignore MDX altogether and query Analysis Services using SQL directly (see &lt;a title="http://cwebbbi.spaces.live.com/blog/cns!7B84B0F2C239489A!751.entry" href="http://cwebbbi.spaces.live.com/blog/cns!7B84B0F2C239489A!751.entry"&gt;http://cwebbbi.spaces.live.com/blog/cns!7B84B0F2C239489A!751.entry&lt;/a&gt; for more details on this topic), although I'm sure you'd run into the limitations of the SQL that is supported very quickly and in any case you lose all of the flexibility and functionality of the MDX language when you do this.  &lt;p&gt;Maybe if we're looking for a way to programmatically generate MDX then LINQ isn't the way to do it. It's something &lt;a href="http://www.olap4j.org/olap4j_fs.html#Query_Model_Details"&gt;olap4j is working towards&lt;/a&gt; and they have taken an approach that is much more in tune with the multidimensional nature of MDX. One of the 'open issues' that caught my eye in the section of the olap4j spec that deals with this functionality is the question &amp;quot;Is this API at the right level, or is it too close to MDX?&amp;quot;, meaning I guess that it would be all too easy to come up with an interface that is just as complex as MDX itself. Where would you draw the line between ease-of-use and functionality? Is it the MDX language that is confusing for people, or the multidimensional concepts (concepts that any interface would have to reflect) that underpin it? Can you abstract MDX to an interface to make it easier to use? I wish I knew more Java so I could test drive olap4j - is there anyone reading this who is using it? As always, I'd be interested to hear anyone's thoughts on this matter so please leave some comments...&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=8900433320278050970&amp;page=RSS%3a+LINQ+to+MDX&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=cwebbbi.spaces.live.com&amp;amp;GT1=cwebbbi"&gt;</description><category>MDX</category><comments>http://cwebbbi.spaces.live.com/Blog/cns!7B84B0F2C239489A!1956.entry#comment</comments><guid isPermaLink="true">http://cwebbbi.spaces.live.com/Blog/cns!7B84B0F2C239489A!1956.entry</guid><pubDate>Tue, 27 May 2008 21:38:18 GMT</pubDate><slash:comments>4</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://cwebbbi.spaces.live.com/blog/cns!7B84B0F2C239489A!1956/comments/feed.rss</wfw:commentRss><wfw:comment>http://cwebbbi.spaces.live.com/Blog/cns!7B84B0F2C239489A!1956.entry#comment</wfw:comment><dcterms:modified>2008-05-27T21:38:18Z</dcterms:modified></item><item><title>Cell Security: when Read permissions are actually Read Contingent</title><link>http://cwebbbi.spaces.live.com/Blog/cns!7B84B0F2C239489A!1946.entry</link><description>&lt;p&gt;I usually avoid using cell security like the plague for the good reason that it absolutely kills query performance. But sometimes there's no alternative but to use it and I'm working on one such project right now. However I've found a new gotcha: the behaviour of cell security changed between AS2005 SP1 and SP2 and in my opinion it didn't change for the better. The short explanation is that when you are using &lt;strong&gt;just&lt;/strong&gt; Read permissions in cell security, if you have MDX Script assignments at a lower level of granularity you'll find that the higher level members whose values are affected by the assignments have Read Contingent permissions applied to them, even though according to the MDX expression I used in for the Read permissions these values should not be secured. &lt;p&gt;Here's the repro I've got for Adventure Works using AS2005 SP2: &lt;ul&gt; &lt;li&gt;In AW, comment out everything in the MDX Script apart from the Calculate statement &lt;li&gt;Add the following calculations to the Script:&lt;br&gt;CREATE MEMBER CURRENTCUBE.MEASURES.[Show Value] AS&lt;br&gt;IIF(&lt;br&gt;[Date].[Calendar].CURRENTMEMBER IS&lt;br&gt;[Date].[Calendar].[Month].&amp;amp;[2004]&amp;amp;[1],&lt;br&gt;FALSE, TRUE);&lt;br&gt;&lt;br&gt;CREATE MEMBER CURRENTCUBE.MEASURES.[Show Internet Sales Amount] AS [Measures].[Internet Sales Amount]; &lt;li&gt;As an Administrator you see the following results for a query in the cube browser:&lt;br&gt;&lt;a href="http://blufiles.storage.msn.com/y1pAEvk1empm_sZRSzrm8b_WfNakwv8POcVYQa2U776SFd6ClvxpRXeBxXRPeyWirxV2F-Nz3yKNfU?PARTNER=WRITER"&gt;&lt;img style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px" height=236 alt="clip_image001" src="http://blufiles.storage.msn.com/y1pAEvk1empm_sOPW7xLzuTAg4QJaDRGFW8CEF43PBCXBOs7lKlVJAQp9K8dN7zrjfS9y_7iCIW0C0?PARTNER=WRITER" width=573 border=0&gt;&lt;/a&gt; &lt;li&gt;Now create a role with the following Read permissions in the cell security tab:&lt;br&gt;IIF(&lt;br&gt;[Date].[Calendar].CURRENTMEMBER IS &lt;br&gt;[Date].[Calendar].[Month].&amp;amp;[2004]&amp;amp;[1]&lt;br&gt;AND&lt;br&gt;[Measures].CURRENTMEMBER IS [Measures].[Internet Sales Amount],&lt;br&gt;FALSE, TRUE) &lt;li&gt;Display the same query in the browser when connecting through this new role, and as expected you see the following:&lt;br&gt;&lt;a href="http://blufiles.storage.msn.com/y1pAEvk1empm_s7esWWJ3MeQEGjffDAyAQuxWxfjQwKoRzM8lqO-bYp9f4hGcX_cy7RK1BN8_ond7Q?PARTNER=WRITER"&gt;&lt;img style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px" height=211 alt="clip_image002" src="http://blufiles.storage.msn.com/y1pAEvk1empm_v8c-50sb7r7ItMHRG4BAxUnuYDaA6jWMoLVZctEljPJwSJEp_rhpoG6w9J4i9cs9M?PARTNER=WRITER" width=576 border=0&gt;&lt;/a&gt; &lt;li&gt;Now add the following assignment to the MDX Script:&lt;br&gt;([Date].[Calendar].[Month].&amp;amp;[2004]&amp;amp;[8])=[Date].[Calendar].[Month].&amp;amp;[2004]&amp;amp;[7]; &lt;li&gt;And refresh the query, so you see this:&lt;br&gt;&lt;a href="http://blufiles.storage.msn.com/y1pAEvk1empm_vlFpbzkeWk9cnfMli4_-rZ21XV3WNShNi1D7YXgtiOqw_R0p8YIEIPQKGmw-hZQ_E?PARTNER=WRITER"&gt;&lt;img style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px" height=207 alt="clip_image003" src="http://blufiles.storage.msn.com/y1pAEvk1empm_tL3BnBV02-BXh40ozJSwkBCY628rfUd8F0Yf_t0GORidUto4Am-nelgX4-oL_rnKc?PARTNER=WRITER" width=578 border=0&gt;&lt;/a&gt; &lt;li&gt;The big change is that the value for CY2004 and the All Member are now secured too. So we’re now in the situation where we’ve made an assignment that displays a value that wasn’t secured anyway, but we now can’t see the CY2004 value even though the expression in the Read permissions returns true. If you were to change the assignment so it refers to the value for January 2004, as follows:&lt;br&gt;([Date].[Calendar].[Month].&amp;amp;[2004]&amp;amp;[8])=[Date].[Calendar].[Month].&amp;amp;[2004]&amp;amp;[1];&lt;br&gt;You can see the January value either while looking at August or the ‘Show Internet Sales Amount’ calculated measure, as I would expect, because neither are aggregated from anything and the expression for the Read permission always returns True for them:&lt;br&gt;&lt;a href="http://blufiles.storage.msn.com/y1pAEvk1empm_tEVwjCD97V9PLgYZzyQSdZXs3CqlSvG6-xwJt354YlVfR_hlZMgRCofkO_o8kHyWw?PARTNER=WRITER"&gt;&lt;img style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px" height=190 alt="clip_image004" src="http://blufiles.storage.msn.com/y1pAEvk1empm_ubvum419yapN-BkCVeV9efkx_r9s2y7BS-tSXrfeeft8wgxLs081DHGvCcBHDw3Vw?PARTNER=WRITER" width=569 border=0&gt;&lt;/a&gt;&lt;/ul&gt; &lt;p&gt;For my customer, who is migrating from AS2005 SP1 direct to Katmai, this is potentially a major problem. And to be honest as my repro shows I don't think this new behaviour makes any sense at all anyway - if I wanted to use Read Contingent permissions I'd have used Read Contingent permissions!&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=8900433320278050970&amp;page=RSS%3a+Cell+Security%3a+when+Read+permissions+are+actually+Read+Contingent&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=cwebbbi.spaces.live.com&amp;amp;GT1=cwebbbi"&gt;</description><category>Analysis Services</category><comments>http://cwebbbi.spaces.live.com/Blog/cns!7B84B0F2C239489A!1946.entry#comment</comments><guid isPermaLink="true">http://cwebbbi.spaces.live.com/Blog/cns!7B84B0F2C239489A!1946.entry</guid><pubDate>Tue, 20 May 2008 16:59:16 GMT</pubDate><slash:comments>1</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://cwebbbi.spaces.live.com/blog/cns!7B84B0F2C239489A!1946/comments/feed.rss</wfw:commentRss><wfw:comment>http://cwebbbi.spaces.live.com/Blog/cns!7B84B0F2C239489A!1946.entry#comment</wfw:comment><dcterms:modified>2008-05-20T16:59:16Z</dcterms:modified></item><item><title>SqlSpec</title><link>http://cwebbbi.spaces.live.com/Blog/cns!7B84B0F2C239489A!1927.entry</link><description>&lt;p&gt;I've just come across SqlSpec from Elasoft (&lt;a title="http://www.elsasoft.org/" href="http://www.elsasoft.org/"&gt;http://www.elsasoft.org/&lt;/a&gt;) a tool that can create documentation for Analysis Services databases. You can see some sample output here:&lt;br&gt;&lt;a title="http://www.elsasoft.org/samples.htm" href="http://www.elsasoft.org/samples.htm"&gt;http://www.elsasoft.org/samples.htm&lt;/a&gt; &lt;p&gt;I've downloaded it and given it a quick try, and it seems to do the job pretty well. This is the second documentation tool for SSAS that I'm aware of, the other being &lt;a href="http://www.bidocumenter.com/Public/Default.aspx"&gt;BI Documenter&lt;/a&gt;. Which one is better? Well I guess it depends on what you want to do since the two tools support different data sources and have slightly different features (&lt;a title="http://www.elsasoft.org/compare.htm" href="http://www.elsasoft.org/compare.htm"&gt;http://www.elsasoft.org/compare.htm&lt;/a&gt; vs &lt;a title="http://www.bidocumenter.com/Public/Features.aspx" href="http://www.bidocumenter.com/Public/Features.aspx"&gt;http://www.bidocumenter.com/Public/Features.aspx&lt;/a&gt;). You can see sample output for BI Documenter here:&lt;br&gt;&lt;a title="http://www.bidocumenter.com/Public/SampleOutput.aspx" href="http://www.bidocumenter.com/Public/SampleOutput.aspx"&gt;http://www.bidocumenter.com/Public/SampleOutput.aspx&lt;/a&gt; &lt;p&gt;You pays your money, you takes your choice...&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=8900433320278050970&amp;page=RSS%3a+SqlSpec&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=cwebbbi.spaces.live.com&amp;amp;GT1=cwebbbi"&gt;</description><category>Analysis Services</category><comments>http://cwebbbi.spaces.live.com/Blog/cns!7B84B0F2C239489A!1927.entry#comment</comments><guid isPermaLink="true">http://cwebbbi.spaces.live.com/Blog/cns!7B84B0F2C239489A!1927.entry</guid><pubDate>Thu, 15 May 2008 20:42:13 GMT</pubDate><slash:comments>8</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://cwebbbi.spaces.live.com/blog/cns!7B84B0F2C239489A!1927/comments/feed.rss</wfw:commentRss><wfw:comment>http://cwebbbi.spaces.live.com/Blog/cns!7B84B0F2C239489A!1927.entry#comment</wfw:comment><dcterms:modified>2008-05-15T20:42:13Z</dcterms:modified></item><item><title>Analysis Services Browser Views addin</title><link>http://cwebbbi.spaces.live.com/Blog/cns!7B84B0F2C239489A!1905.entry</link><description>&lt;div&gt;Via &lt;a href="http://blogs.msdn.com/bimusings/default.aspx"&gt;Russell Christopher&lt;/a&gt;, news of a new addin for BIDS created by Yossi Elkayam and Eran Sagi of Microsoft Israel that allows you to save the Analysis Services queries created in the browser tab:&lt;/div&gt;
&lt;div&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/bei/archive/2008/04/25/analysis-services-browser-views-add-in.aspx"&gt;http://blogs.microsoft.co.il/blogs/bei/archive/2008/04/25/analysis-services-browser-views-add-in.aspx&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;Looks very useful... Greg, Darren, perhaps this can be integrated with &lt;a href="http://www.codeplex.com/bidshelper"&gt;BIDS Helper&lt;/a&gt;?&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=8900433320278050970&amp;page=RSS%3a+Analysis+Services+Browser+Views+addin&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=cwebbbi.spaces.live.com&amp;amp;GT1=cwebbbi"&gt;</description><category>Analysis Services</category><comments>http://cwebbbi.spaces.live.com/Blog/cns!7B84B0F2C239489A!1905.entry#comment</comments><guid isPermaLink="true">http://cwebbbi.spaces.live.com/Blog/cns!7B84B0F2C239489A!1905.entry</guid><pubDate>Wed, 07 May 2008 11:33:02 GMT</pubDate><slash:comments>1</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://cwebbbi.spaces.live.com/blog/cns!7B84B0F2C239489A!1905/comments/feed.rss</wfw:commentRss><wfw:comment>http://cwebbbi.spaces.live.com/Blog/cns!7B84B0F2C239489A!1905.entry#comment</wfw:comment><dcterms:modified>2008-05-07T11:33:02Z</dcterms:modified></item><item><title>Transact SQL Server Analysis Services Metadata</title><link>http://cwebbbi.spaces.live.com/Blog/cns!7B84B0F2C239489A!1887.entry</link><description>&lt;div&gt;Via &lt;a href="http://www.ssas-info.com/"&gt;http://www.ssas-info.com/&lt;/a&gt; (which is a great site, if you haven't seen it then definitely check it out) I've just come across a new project on Codeplex that aims to allow you to browse and manage AS metadata through T-SQL from Leandro Tubia:&lt;/div&gt;
&lt;div&gt;&lt;a href="http://www.codeplex.com/TSSASM"&gt;http://www.codeplex.com/TSSASM&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;Kind of like what &lt;a href="http://www.codeplex.com/powerSSAS"&gt;Darren Gosbell's doing with Powershell&lt;/a&gt;, only for people who don't want to learn Powershell, and what &lt;a href="http://www.codeplex.com/ASStoredProcedures/Wiki/View.aspx?title=Discover&amp;amp;referringTitle=XmlaDiscover"&gt;Darren also did in the Analysis Services Stored Procedure Project &lt;/a&gt;but which the full flexibility of T-SQL. Nice idea; it's still early days for the project but I hope it develops.&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=8900433320278050970&amp;page=RSS%3a+Transact+SQL+Server+Analysis+Services+Metadata&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=cwebbbi.spaces.live.com&amp;amp;GT1=cwebbbi"&gt;</description><category>Analysis Services</category><comments>http://cwebbbi.spaces.live.com/Blog/cns!7B84B0F2C239489A!1887.entry#comment</comments><guid isPermaLink="true">http://cwebbbi.spaces.live.com/Blog/cns!7B84B0F2C239489A!1887.entry</guid><pubDate>Thu, 01 May 2008 14:10:46 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://cwebbbi.spaces.live.com/blog/cns!7B84B0F2C239489A!1887/comments/feed.rss</wfw:commentRss><wfw:comment>http://cwebbbi.spaces.live.com/Blog/cns!7B84B0F2C239489A!1887.entry#comment</wfw:comment><dcterms:modified>2008-05-01T14:10:46Z</dcterms:modified></item><item><title>Things I'd like to see in Analysis Services 2011</title><link>http://cwebbbi.spaces.live.com/Blog/cns!7B84B0F2C239489A!1877.entry</link><description>&lt;p&gt;It's that time in the release cycle. I know what the new features are going to be for Analysis Services (for a full list see &lt;a href="http://www.ssas2008-info.com/ssas-2008-change-summary"&gt;here&lt;/a&gt;) and it's rather like Boxing Day: I've just got my presents and I'm starting to wonder to what Santa will bring on his &lt;em&gt;next&lt;/em&gt; visit. And to a certain extent I'm feeling as though I should have been a bit more specific when I was writing my Christmas list last time, given that I'm a teeny bit underwhelmed by the features I did get in AS2008. So here, for the benefit of the elves working away in Redmond, is a list of things I'd love to see in Analysis Services 2011 or whatever it will be called: &lt;ul&gt; &lt;li&gt;&lt;strong&gt;Auto-partitioning&lt;br&gt;&lt;/strong&gt;Building and maintaining partitions is a job that almost everyone needs to do and yet it's something that involves way too much hard work at the moment. As such it's an ideal candidate for some form of automation, and indeed a while back &lt;a href="http://blogs.conchango.com/jamiethomson/"&gt;Jamie Thomson&lt;/a&gt; posted the following suggestion on Connect: &lt;a title="https://connect.microsoft.com/SQLServer/feedback/ViewFeedback.aspx?FeedbackID=127378" href="https://connect.microsoft.com/SQLServer/feedback/ViewFeedback.aspx?FeedbackID=127378"&gt;https://connect.microsoft.com/SQLServer/feedback/ViewFeedback.aspx?FeedbackID=127378&lt;/a&gt;. Other possibilities include the use of data mining to determine how you should set the slices for your partitions (which I &lt;a href="http://cwebbbi.spaces.live.com/Blog/cns!1pi7ETChsJ1un_2s41jm9Iyg!348.entry"&gt;blogged about&lt;/a&gt; a long time ago) and something like the MDX driven auto-partitioning that &lt;a href="http://www.codeplex.com/ASStoredProcedures/Wiki/View.aspx?title=Partition&amp;amp;referringTitle=Home"&gt;Greg Galloway implemented for the Analysis Services Stored Procedure Project&lt;/a&gt;.  &lt;li&gt;&lt;strong&gt;Do away with the arbitrary shaped sets error&lt;br&gt;&lt;/strong&gt;This is a particular bugbear of mine. The more I work on cubes with complex calculations, the more I find that I want to scope calculations on arbitrary shaped sets, which of course I'm not allowed to do. That means I end up making several identical assignments to get the same result, which leads to way too much duplicate code and a maintenance nightmare. If I can break up an arbitrary shaped set into something acceptable to Analysis Services, why can't Analysis Services do this itself? Here's the Connect I logged on this: &lt;a title="https://connect.microsoft.com/SQLServer/feedback/ViewFeedback.aspx?FeedbackID=339861" href="https://connect.microsoft.com/SQLServer/feedback/ViewFeedback.aspx?FeedbackID=339861"&gt;https://connect.microsoft.com/SQLServer/feedback/ViewFeedback.aspx?FeedbackID=339861&lt;/a&gt; &lt;li&gt;&lt;strong&gt;Fix parent-child hierarchies&lt;br&gt;&lt;/strong&gt;Parent-child hierarchies are a pain. For a start they cause performance problems so what I would want to see is the ability for AS to create aggregations at intermediate levels in a parent-child hierarchy at the very least; I'm sure there are a lot of other potential engine improvements that could be made for them. Secondly, scoping calculations on them is a real nightmare and on a related note trying to use dimension security with them is an equally thankless task. Given that there are some situations where you have no option but to use them, I think some time needs to be invested in making them better.  &lt;li&gt;&lt;strong&gt;Build parallelism into the calculation engine&lt;br&gt;&lt;/strong&gt;What with all the block computation improvements in AS2008, I'm finding that many calculations are performing a lot better than in AS2005. However I'm still finding scenarios where the calculation engine is the bottleneck and just one CPU is being used on the server when I'm running a query (something I discussed &lt;a href="http://cwebbbi.spaces.live.com/blog/cns!7B84B0F2C239489A!1011.entry"&gt;here&lt;/a&gt;). Surely it's possible to get the calculation engine to do some calculations in parallel when a query is being run?  &lt;li&gt;&lt;strong&gt;Be able to rename attributes in role-playing dimensions&lt;br&gt;&lt;/strong&gt;If there was one feature I wanted to see in AS2008 it was this. It would have been so easy to do, I know loads of other people wanted it, and I did log it in Connect ages ago: &lt;a title="https://connect.microsoft.com/SQLServer/feedback/ViewFeedback.aspx?FeedbackID=144500" href="https://connect.microsoft.com/SQLServer/feedback/ViewFeedback.aspx?FeedbackID=144500"&gt;https://connect.microsoft.com/SQLServer/feedback/ViewFeedback.aspx?FeedbackID=144500&lt;/a&gt;. And it wasn't included. All I want to do is to be able to rename the individual attributes of a role-playing dimension instead of just being able to change the dimension name - for example if I have Order Date and Ship Date role-playing dimensions based on a single Date dimension, then I want my 'Calendar Date' hierarchy in Date to appear as 'Calendar Order Date' and 'Calendar Ship Date' to my end users. Not being able to do this has stopped me using role-playing dimensions on so many occasions simply because seeing multiple hierarchies with the same name is too confusing.  &lt;li&gt;&lt;strong&gt;Support for cross-dimensional user hierarchies&lt;br&gt;&lt;/strong&gt;Sometimes I find myself in the situation where I've got a large dimension, such as a Customer dimension, where the lower-level attributes are queried much less often than the higher level attributes. Now AS2005 handles large dimensions pretty well, in my experience, but it would still be useful to be able to store less useful lower-level attributes in ROLAP mode and more useful higher-level attributes in MOLAP mode. One solution to this could be the ability to set the storage mode on individual attributes rather than the whole dimension but I'm not sure that's practical; instead it would be great if you could split the attributes up into a ROLAP dimension and a MOLAP materialised reference dimension and be able to build a user hierarchy that spans both. So you'd be able to drill down from Country to City to Post Code to Customer, and when you were querying the first three levels you'd be hitting a MOLAP dimension and when you queried Customer you'd be hitting a different ROLAP dimension. In fact I'm sure the ability to set up cross-dimensional drill paths would be useful in other scenarios too and make cubes much easier to use.  &lt;li&gt;&lt;strong&gt;Support for partitioned dimensions&lt;br&gt;&lt;/strong&gt;Dimensions are getting bigger and bigger, and I wonder if at some stage it would be useful to be able to partition dimensions as well as measure groups to get better performance and manageability? Just a thought.  &lt;li&gt;&lt;strong&gt;Be able to manage unary operators and custom member formulas from the MDX Script&lt;br&gt;&lt;/strong&gt;Perhaps this is just me, but sometimes I find it's a bit of a pain when you're using unary operators and custom member formulas that their values have to be stored in the dimension table. Can't we have the option to be able to set or override a unary operator or custom member formula from the MDX Script - after all, that's meant to the one central repository for all my calculations. I wonder if this is possible anyway with an ALTER CUBE statement? Hmm, I don't think so. &lt;li&gt;&lt;strong&gt;New features for calculated members&lt;br&gt;&lt;/strong&gt;As I've mentioned &lt;a href="http://cwebbbi.spaces.live.com/blog/cns!7B84B0F2C239489A!1598.entry"&gt;here&lt;/a&gt; before, quite often I see people creating real members in dimensions then overwriting their values with scoped assignments when I'm sure they would be better off with using calculated members. So to meet that and other challenges, here's a list of things it would be cool to allow with calculated members:  &lt;ul&gt; &lt;li&gt;Allow calculated members to have other calculated members as children  &lt;li&gt;Be able to control where calculated members appear in a hierarchy  &lt;li&gt;Allow calculated members to have member properties, either returning static values or the results of MDX expressions  &lt;li&gt;Following on from that, if calculated members can have calculated member property values, real members should have that too. For example, on a Customer dimension I might know a date of birth but I might also want to be able to calculate a customer's age and show that as a property  &lt;li&gt;Following on from that, it would be great to be able to create entire hierarchies based on calculated members or properties. So if I can calculate a customer's age, and then have another calculated property that placed that customer into a bucket based on their age (eg 0-9, 10-19, 20-29 and so on), I'd also like to be able to determine the number of buckets based on some MDX as well (maybe using server parameters - see below) and create a user hierarchy where the top level would consist of calculated members representing these buckets and where I could drill down from these buckets to the individual ages and then down to the real customer members themselves.&lt;/ul&gt; &lt;li&gt;&lt;strong&gt;Server parameters for MDX calculations&lt;/strong&gt;&lt;br&gt;The ability to parameterise an MDX query is cool, but it would also be great if you could also parameterise calculations on the server. For example you could set up a kind of server-wide variable which was the rate of Income Tax, do calculations using that value and then allow users to have the option of changing its value and explore 'what-if' scenarios. This would clearly have an impact on AS's ability to cache calculations but so long as people knew about this then I'm sure it would be ok. These parameters would also be visible through the metadata so client tools would know to show users they could change them. &lt;li&gt;&lt;strong&gt;Be able to define either whole queries or 'selectable chunks' of MDX on the server&lt;br&gt;&lt;/strong&gt;After my &lt;a href="http://cwebbbi.spaces.live.com/blog/cns!7B84B0F2C239489A!1555.entry"&gt;posting on how dynamic sets actually work in AS2005&lt;/a&gt; a few months back, I got to thinking about why I was disappointed and what I really wanted to see. The problem is that however well you model your cube, and however easy-to-use your client tool is, there's always a gap between what the tools are capable of and what the user is able to accomplish with them. For example, you might know that your end users want to be able to create reports showing the top 10 customers with an extra value underneath that represents the aggregated values of all other customers outside the top ten. This is certainly possible in MDX and perhaps there are client tools out there that support this, but wouldn't it be cool if you could create this as a kind of pre-canned selection that was parameterisable (eg show the top 20 instead of the top 10, or show products not customers) and visible through the metadata so any client tool could display it to the end user and allow it to be used? This would be a selection that would be designed to work wherever the user placed it in his or her query; it's not the same thing as a dynamic set, more of a parameterisable custom set function. The concept could be extended from pre-canned selections to entire queries too - and if I haven't convinced you (or been entirely successful in explaining) the concept of pre-canned selections then I think the case for entire queries stored on the server is much easier to make. Again these would be parameterisable and discoverable through metadata, so that any client tool would (hopefully) be able to use them; for Reporting Services alone this would be extremely useful, so you could have one query displayed in many reports with a single point of maintenance. I'm sure there would also be an opportunity to introduce some performance benefits for these stored queries too, perhaps in terms of being able to cache entire cellsets rather than just the values of individual cells. &lt;li&gt;&lt;strong&gt;Better management tools for security&lt;br&gt;&lt;/strong&gt;As I mentioned before &lt;a href="http://cwebbbi.spaces.live.com/blog/cns!7B84B0F2C239489A!1563.entry"&gt;here&lt;/a&gt;, the tools we've got at the moment are not up to the task of managing large numbers of security roles and some serious work needs to be done in the UI. It would also be great if the tools supported dynamic security and the creation of all the supporting objects, perhaps through a wizard. &lt;li&gt;&lt;strong&gt;Better support for Analysis Services in SQL Management Studio&lt;br&gt;&lt;/strong&gt;This is an easy one to specify: I want all of the functionality in &lt;a href="http://sqlblog.com/blogs/mosha/archive/2007/09/18/announcing-mdx-studio-ctp1-v0-1-alpha.aspx"&gt;MDX Studio&lt;/a&gt; put into SQL Management Studio. And a hundred other little things, like in the metadata pane I want to be able to open a level and expand a member to drill down as well instead of always having to start at the All Member of a hierarchy; oh, and I'd like to have a Reconnect button for when I've got a query and I've killed my session because of cube changes, instead of having to disconnect and reconnect. And the ability to display... &lt;li&gt;&lt;strong&gt;Query execution plans&lt;br&gt;&lt;/strong&gt; A lot of people have been asking for this already; here's the Connect: &lt;a title="https://connect.microsoft.com/SQLServer/feedback/ViewFeedback.aspx?FeedbackID=321161" href="https://connect.microsoft.com/SQLServer/feedback/ViewFeedback.aspx?FeedbackID=321161"&gt;https://connect.microsoft.com/SQLServer/feedback/ViewFeedback.aspx?FeedbackID=321161&lt;/a&gt;. This would be soooo useful in performance tuning. &lt;li&gt;&lt;strong&gt;Support for other RDBMSs&lt;br&gt;&lt;/strong&gt;Analysis Services is useful not only as a database engine in its own right, but as a query/calculation layer on top of other database engines. OK no-one uses ROLAP on SQL Server because performance is rubbish compared to MOLAP, but for years people have been experimenting with using AS in ROLAP mode on top of Teradata (see here) and I'm sure that it could be used in a similar way on top of other data warehouse appliances or the new generation of COP databases like Vertica. You'd be selling it as a way of OLAP-ifying these databases, getting the incredible scalability and performance they (allegedly) offer in combination with the power of MDX for calculations and access to the data via Excel. Writing new cartridges for these databases should be pretty easy; I suppose the problem comes with trying to generate SQL optimised for each of these platforms. &lt;li&gt;&lt;strong&gt;Writeback with no allocation&lt;/strong&gt;&lt;br&gt;MOLAP writeback in AS2008 certainly does improve performance, but the need always to allocate your values down to the granularity of the fact table is always going to lead to a performance hit. Wouldn't it be useful if you could write a value back to a cell without having to allocate it down always? You'd get instant writeback. I'm sure that would be useful in many cases, and in fact it would work in the same way as if you'd assigned a value to that cell in the MDX Script. I wrote some code in the &lt;a href="http://www.codeplex.com/ASStoredProcedures"&gt;Analysis Services Stored Procedure Project&lt;/a&gt; that did this, in fact, although it wasn't really anything more than a proof-of-concept exercise. &lt;/ul&gt; &lt;p&gt;Anyway, this post has gone on quite long enough now, although I'm sure if I thought about it I could go on for even longer. I need to do some work! But what would you like to see in Analysis Services 2011? Answers in a comment, please...&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=8900433320278050970&amp;page=RSS%3a+Things+I'd+like+to+see+in+Analysis+Services+2011&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=cwebbbi.spaces.live.com&amp;amp;GT1=cwebbbi"&gt;</description><category>Analysis Services</category><comments>http://cwebbbi.spaces.live.com/Blog/cns!7B84B0F2C239489A!1877.entry#comment</comments><guid isPermaLink="true">http://cwebbbi.spaces.live.com/Blog/cns!7B84B0F2C239489A!1877.entry</guid><pubDate>Wed, 30 Apr 2008 15:33:52 GMT</pubDate><slash:comments>19</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://cwebbbi.spaces.live.com/blog/cns!7B84B0F2C239489A!1877/comments/feed.rss</wfw:commentRss><wfw:comment>http://cwebbbi.spaces.live.com/Blog/cns!7B84B0F2C239489A!1877.entry#comment</wfw:comment><dcterms:modified>2008-04-30T15:33:52Z</dcterms:modified></item><item><title>Currency formats: should they be tied to language?</title><link>http://cwebbbi.spaces.live.com/Blog/cns!7B84B0F2C239489A!1863.entry</link><description>&lt;p&gt;One of the most commonly asked questions on the AS MSDN Forum is how to format measures that contain values in different currencies with the correct currency symbol. I've never blogged about this because a lot of people have already written up the solution in detail, for example Mosha:&lt;br&gt;&lt;a title="http://www.sqljunkies.com/WebLog/mosha/archive/2005/10/13/mdx_format_currency.aspx" href="http://www.sqljunkies.com/WebLog/mosha/archive/2005/10/13/mdx_format_currency.aspx"&gt;http://www.sqljunkies.com/WebLog/mosha/archive/2005/10/13/mdx_format_currency.aspx&lt;/a&gt; &lt;p&gt;and Vidas:&lt;br&gt;&lt;a title="http://www.ssas-info.com/analysis-services-faq/27-mdx/244-how-change-currency-symbol-based-on-selected-currency-dimension-member" href="http://www.ssas-info.com/analysis-services-faq/27-mdx/244-how-change-currency-symbol-based-on-selected-currency-dimension-member"&gt;http://www.ssas-info.com/analysis-services-faq/27-mdx/244-how-change-currency-symbol-based-on-selected-currency-dimension-member&lt;/a&gt; &lt;p&gt;However I was thinking about this recently and in my opinion there's a big problem with using the Language property to do this. And that is that when you set the Language of a cell, you not only change the currency symbol but you also change other ways that the number is formatted, for example the symbols used as thousands separators and decimal separators. In the US and UK of course, we use full stops (I think they're called 'periods' in the US?) as decimal separators and commas as thousands separators, but in continental Europe the roles are reversed. So the value:&lt;br&gt;100,001&lt;br&gt;would be interpreted as one hundred thousand and one in the UK, but one hundred point zero zero one in Germany, say, and the value:&lt;br&gt;100.001&lt;br&gt;would be interpreted in the opposite way. Borrowing one of the screenshots from Vidas's post you can see how the Language property respects these conventions: &lt;p&gt;&lt;a href="http://blufiles.storage.msn.com/y1pAEvk1empm_t0eAZiPMiHd2uGLGmRVXgCcgq6IksVC_WxSY6v29u6YFewmnUJL_p5znWgUOiAwRg?PARTNER=WRITER"&gt;&lt;img style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px" height=247 alt=currencylocale2 src="http://blufiles.storage.msn.com/y1pAEvk1empm_vN-yZPVPHpcTgjZtjhq2demVI-4YgaviCfLcP92TC3A5x5nsgslp7Hr7LRYB3qG8E?PARTNER=WRITER" width=333 border=0&gt;&lt;/a&gt;  &lt;p&gt;So you can see what the potential problem is - what happens if you have values in Euros, USDs and GBPs in your cube? However much you educate your users you can guarantee that someone at some time is going to get confused or worse not realise what's going on and interpret the values incorrectly. &lt;p&gt;What's the alternative then? I think using Format_String has to be the way to go. If you alter Vidas's example so that instead of locale ids you put currency symbols inside the currency dimension named query, for example: &lt;p&gt;SELECT     CurrencyKey, CurrencyAlternateKey, CurrencyName, &lt;br&gt;                      CASE CurrencyAlternateKey WHEN 'GBP' THEN '£' WHEN 'EUR' THEN '€' WHEN 'JPY' THEN '¥' WHEN 'USD ' THEN '$ ' END AS LocaleID&lt;br&gt;FROM         DimCurrency&lt;br&gt;WHERE     (CurrencyKey IN&lt;br&gt;                          (SELECT DISTINCT CurrencyKey&lt;br&gt;                            FROM          FactCurrencyRate)) &lt;p&gt;and then change his MDX assignment to be something like: &lt;p&gt;SCOPE ([Destination Currency].[Destination Currency].[Destination Currency].Members);&lt;br&gt;Format_String(This) = [Destination Currency].[Destination Currency].[Symbol].MemberValue + &amp;quot;#,#.00&amp;quot;;&lt;br&gt;END SCOPE; &lt;p&gt;Then you get the desired result. However, one thing I did notice when I was experimenting with this is that if you try to use more than one character for your symbol (for example you might want to use CHF for Swiss Francs) you sometimes get the following error: &lt;p&gt;#Error The following system error occurred:  Out of present range. . &lt;p&gt;Not good. Here's the bug logged on Connect:&lt;br&gt;&lt;a title="https://connect.microsoft.com/SQLServer/feedback/ViewFeedback.aspx?FeedbackID=339913" href="https://connect.microsoft.com/SQLServer/feedback/ViewFeedback.aspx?FeedbackID=339913"&gt;https://connect.microsoft.com/SQLServer/feedback/ViewFeedback.aspx?FeedbackID=339913&lt;/a&gt; &lt;p&gt;Following on from all this, it also makes sense that users connecting from different locales automatically see numbers (but not currency symbols) formatted in the convention of their locale. So a German person might connect to the cube and see Euros with a € and USDs with a $, but see commas used as decimal separators, whereas a user in the UK would still see €s and $s with the correct symbol but full stops used as decimal separators. Now AS2K I seem to remember used to be able to handle this perfectly well - it could display the appropriate decimal separator and thousand separator depending on the client locale. However AS2005 RTM had a problem in that it worked ok for calculated measures but not for real measures; this was 'fixed' in SP2 so both calculated measures and real measures always got displayed in the locale of the server. American software, eh? And to think that so many members of the dev team are from Europe too. Here's the Connect:&lt;br&gt;&lt;a title="https://connect.microsoft.com/SQLServer/feedback/ViewFeedback.aspx?FeedbackID=218858" href="https://connect.microsoft.com/SQLServer/feedback/ViewFeedback.aspx?FeedbackID=218858"&gt;https://connect.microsoft.com/SQLServer/feedback/ViewFeedback.aspx?FeedbackID=218858&lt;/a&gt; &lt;p&gt;and here's a forums thread on the subject:&lt;br&gt;&lt;a title="http://forums.microsoft.com/msdn/showpost.aspx?postid=1488729&amp;amp;siteid=1&amp;amp;sb=0&amp;amp;d=1&amp;amp;at=7&amp;amp;ft=11&amp;amp;tf=0&amp;amp;pageid=1" href="http://forums.microsoft.com/msdn/showpost.aspx?postid=1488729&amp;amp;siteid=1&amp;amp;sb=0&amp;amp;d=1&amp;amp;at=7&amp;amp;ft=11&amp;amp;tf=0&amp;amp;pageid=1"&gt;http://forums.microsoft.com/msdn/showpost.aspx?postid=1488729&amp;amp;siteid=1&amp;amp;sb=0&amp;amp;d=1&amp;amp;at=7&amp;amp;ft=11&amp;amp;tf=0&amp;amp;pageid=1&lt;/a&gt; &lt;p&gt;Hmmmmm.... I need to check if this has been fixed properly in Katmai.&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=8900433320278050970&amp;page=RSS%3a+Currency+formats%3a+should+they+be+tied+to+language%3f&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=cwebbbi.spaces.live.com&amp;amp;GT1=cwebbbi"&gt;</description><category>MDX</category><comments>http://cwebbbi.spaces.live.com/Blog/cns!7B84B0F2C239489A!1863.entry#comment</comments><guid isPermaLink="true">http://cwebbbi.spaces.live.com/Blog/cns!7B84B0F2C239489A!1863.entry</guid><pubDate>Thu, 24 Apr 2008 18:31:11 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://cwebbbi.spaces.live.com/blog/cns!7B84B0F2C239489A!1863/comments/feed.rss</wfw:commentRss><wfw:comment>http://cwebbbi.spaces.live.com/Blog/cns!7B84B0F2C239489A!1863.entry#comment</wfw:comment><dcterms:modified>2008-04-24T18:31:11Z</dcterms:modified></item><item><title>Interview with me on Cristian Lefter's blog</title><link>http://cwebbbi.spaces.live.com/Blog/cns!7B84B0F2C239489A!1854.entry</link><description>&lt;div&gt;While I was at PASS Europe last week &lt;a href="http://sqlserver.ro/blogs/cristians_blog/default.aspx"&gt;Cristian Lefter&lt;/a&gt; videoed an interview with me on what I think is cool in AS2008, for the Romanian SQL Server user group. You can watch it on his blog here:&lt;/div&gt;
&lt;div&gt;&lt;a href="http://sqlserver.ro/blogs/cristians_blog/archive/2008/04/22/pass-europe-2008-interview-with-chris-webb.aspx"&gt;http://sqlserver.ro/blogs/cristians_blog/archive/2008/04/22/pass-europe-2008-interview-with-chris-webb.aspx&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;He also interviewed a load of other people, including Marco Russo.&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=8900433320278050970&amp;page=RSS%3a+Interview+with+me+on+Cristian+Lefter's+blog&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=cwebbbi.spaces.live.com&amp;amp;GT1=cwebbbi"&gt;</description><category>On the internet</category><comments>http://cwebbbi.spaces.live.com/Blog/cns!7B84B0F2C239489A!1854.entry#comment</comments><guid isPermaLink="true">http://cwebbbi.spaces.live.com/Blog/cns!7B84B0F2C239489A!1854.entry</guid><pubDate>Wed, 23 Apr 2008 15:45:56 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://cwebbbi.spaces.live.com/blog/cns!7B84B0F2C239489A!1854/comments/feed.rss</wfw:commentRss><wfw:comment>http://cwebbbi.spaces.live.com/Blog/cns!7B84B0F2C239489A!1854.entry#comment</wfw:comment><dcterms:modified>2008-04-23T15:45:56Z</dcterms:modified></item><item><title>ASCMD Beta</title><link>http://cwebbbi.spaces.live.com/Blog/cns!7B84B0F2C239489A!1847.entry</link><description>&lt;div&gt;Dave Wickert of Microsoft has asked me to relay the following message about a new version of ascmd he's working on:&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;
&lt;p style="margin:0cm 0cm 0pt"&gt;&lt;font face=Calibri color="#000000" size=2&gt;&lt;em&gt;“In preparation of SQL Server 2008 Analysis Services RTM’ing, I am starting a small beta program for the next version of ‘ascmd’. This version will have two important new features:&lt;/em&gt;&lt;/font&gt;
&lt;p style="margin:0cm 0cm 0pt 36pt;text-indent:-18pt"&gt;&lt;font color="#000000"&gt;&lt;em&gt;&lt;font size=2&gt;&lt;span style=""&gt;&lt;span style=""&gt;&lt;font face=Calibri&gt;1)&lt;/font&gt;&lt;span style="font:7pt 'Times New Roman'"&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font face=Calibri&gt;Built and verified against Analysis Services 2008 – but also directly compatible with AS2K5 – thus I need both AS2K8 and AS2K5 participates.&lt;/font&gt;&lt;/font&gt;&lt;/em&gt;&lt;/font&gt;
&lt;p style="margin:0cm 0cm 0pt 36pt;text-indent:-18pt"&gt;&lt;font color="#000000"&gt;&lt;em&gt;&lt;font size=2&gt;&lt;span style=""&gt;&lt;span style=""&gt;&lt;font face=Calibri&gt;2)&lt;/font&gt;&lt;span style="font:7pt 'Times New Roman'"&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font face=Calibri&gt;New multi-user capabilities – the Microsoft SQLCAT team uses ascmd as the multi-user load facility for its Analysis Services benchmarks. Ever want to load up a few hundred users against a SSAS server? We are going to be retrofitting those capabilities (plus a few others) back into the released version of ascmd.&lt;/font&gt;&lt;/font&gt;&lt;/em&gt;&lt;/font&gt;
&lt;p style="margin:0cm 0cm 0pt"&gt;&lt;font face=Calibri color="#000000" size=2&gt;&lt;em&gt; &lt;/em&gt;&lt;/font&gt;
&lt;p style="margin:0cm 0cm 0pt"&gt;&lt;font face=Calibri color="#000000" size=2&gt;&lt;em&gt;I am looking for users to test out this new version: 1) to, at least, slipstream this version into their current use to see if we’ve broken anything (we don’t think so, but we want to fix anything if we did), and 2) test out the new features if you can. &lt;/em&gt;&lt;/font&gt;
&lt;p style="margin:0cm 0cm 0pt"&gt;&lt;font face=Calibri color="#000000" size=2&gt;&lt;em&gt; &lt;/em&gt;&lt;/font&gt;
&lt;p style="margin:0cm 0cm 0pt"&gt;&lt;font color="#000000"&gt;&lt;font face=Calibri&gt;&lt;em&gt;&lt;font size=2&gt;&lt;u&gt;We are also actively soliciting new features and improvements for ascmd at this time&lt;/u&gt; – if we can sneak them in, we will.&lt;/font&gt;&lt;/em&gt;&lt;/font&gt;&lt;/font&gt;
&lt;p style="margin:0cm 0cm 0pt"&gt;&lt;font face=Calibri color="#000000" size=2&gt;&lt;em&gt; &lt;/em&gt;&lt;/font&gt;
&lt;p style="margin:0cm 0cm 0pt"&gt;&lt;font face=Calibri color="#000000" size=2&gt;&lt;em&gt;The “readme” for the current version of ascmd is located here: &lt;/em&gt;&lt;/font&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/ms365187.aspx"&gt;&lt;u&gt;&lt;font face=Calibri color="#0000ff" size=2&gt;&lt;em&gt;http://msdn2.microsoft.com/en-us/library/ms365187.aspx&lt;/em&gt;&lt;/font&gt;&lt;/u&gt;&lt;/a&gt;
&lt;p style="margin:0cm 0cm 0pt"&gt;&lt;font face=Calibri color="#000000" size=2&gt;&lt;em&gt; &lt;/em&gt;&lt;/font&gt;
&lt;p style="margin:0cm 0cm 0pt"&gt;&lt;font face=Calibri color="#000000" size=2&gt;&lt;em&gt;If you are an avid user of ascmd and would like to be included in this beta, please contact me directly (&lt;/em&gt;&lt;/font&gt;&lt;a href="mailto:dwickert@microsoft.com"&gt;&lt;u&gt;&lt;font face=Calibri color="#0000ff" size=2&gt;&lt;em&gt;dwickert@microsoft.com&lt;/em&gt;&lt;/font&gt;&lt;/u&gt;&lt;/a&gt;&lt;font face=Calibri color="#000000" size=2&gt;&lt;em&gt;).”&lt;/em&gt;&lt;/font&gt;&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=8900433320278050970&amp;page=RSS%3a+ASCMD+Beta&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=cwebbbi.spaces.live.com&amp;amp;GT1=cwebbbi"&gt;</description><category>Analysis Services</category><comments>http://cwebbbi.spaces.live.com/Blog/cns!7B84B0F2C239489A!1847.entry#comment</comments><guid isPermaLink="true">http://cwebbbi.spaces.live.com/Blog/cns!7B84B0F2C239489A!1847.entry</guid><pubDate>Sat, 19 Apr 2008 11:01:44 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://cwebbbi.spaces.live.com/blog/cns!7B84B0F2C239489A!1847/comments/feed.rss</wfw:commentRss><wfw:comment>http://cwebbbi.spaces.live.com/Blog/cns!7B84B0F2C239489A!1847.entry#comment</wfw:comment><dcterms:modified>2008-04-19T11:01:44Z</dcterms:modified></item><item><title>Distinct Count White Paper</title><link>http://cwebbbi.spaces.live.com/Blog/cns!7B84B0F2C239489A!1846.entry</link><description>&lt;p&gt;Yet another excellent paper on optimising distinct count measures from the SQLCat team:&lt;br&gt;&lt;a title="http://sqlcat.com/whitepapers/archive/2008/04/17/analysis-services-distinct-count-optimization.aspx" href="http://sqlcat.com/whitepapers/archive/2008/04/17/analysis-services-distinct-count-optimization.aspx"&gt;http://sqlcat.com/whitepapers/archive/2008/04/17/analysis-services-distinct-count-optimization.aspx&lt;/a&gt; &lt;p&gt;Actually I'm beginning to wonder whether I should be linking to the SQLCat team site - in the same way I never link to Mosha because I assume that everyone who reads my blog reads his too, then I would hope everyone subscribes to the SQLCat team blog as well. &lt;p&gt;One topic missing is a comparison of the performance of distinct count measures with the tec