<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Jesse Orosz: SQL Server Analysis Services Blog</title>
	<atom:link href="http://jesseorosz.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://jesseorosz.wordpress.com</link>
	<description>Just another WordPress.com site</description>
	<lastBuildDate>Thu, 20 Jan 2011 08:58:57 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='jesseorosz.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Jesse Orosz: SQL Server Analysis Services Blog</title>
		<link>http://jesseorosz.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://jesseorosz.wordpress.com/osd.xml" title="Jesse Orosz: SQL Server Analysis Services Blog" />
	<atom:link rel='hub' href='http://jesseorosz.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Dave Rodabaugh&#8217;s Analysis Services Interview Questions</title>
		<link>http://jesseorosz.wordpress.com/2009/01/26/dave-rodabaughs-analysis-services-interview-questions/</link>
		<comments>http://jesseorosz.wordpress.com/2009/01/26/dave-rodabaughs-analysis-services-interview-questions/#comments</comments>
		<pubDate>Mon, 26 Jan 2009 18:52:02 +0000</pubDate>
		<dc:creator>jesperss</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://jesseorosz.wordpress.com/2009/01/26/dave-rodabaughs-analysis-services-interview-questions</guid>
		<description><![CDATA[Think you know your SSAS? Read this five part series by Dave Rodabaugh to test your SSAS knowledge in an interview setting. Don&#8217;t know how I ever missed this one&#8230; Dave Rodabaugh&#8217;s Five Part Series of Analysis Services Interview Questions- &#8230; <a href="http://jesseorosz.wordpress.com/2009/01/26/dave-rodabaughs-analysis-services-interview-questions/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jesseorosz.wordpress.com&amp;blog=16457704&amp;post=7&amp;subd=jesseorosz&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<div id="msgcns!E322FD91218E57CF!706" class="bvMsg">
<p>Think you know your SSAS? Read this five part series by Dave Rodabaugh to test your SSAS knowledge in an interview setting. Don&#8217;t know how I ever missed this one&#8230;</p>
<p><u>Dave Rodabaugh&#8217;s Five Part Series of Analysis Services Interview Questions<br /></u>- <a href="http://www.ssas-info.com/analysis-services-implementations/69-experience/1352-dave-rodabaughs-analysis-services-interview-questions" target="_blank">My Analysis Services Interview Questions</a><br />- <a href="http://www.ssas-info.com/analysis-services-implementations/69-experience/1352-dave-rodabaughs-analysis-services-interview-questions" target="_blank">Part II of My Analysis Services Interview Questions: Cool Business Problems</a><br />- <a href="http://www.ssas-info.com/analysis-services-implementations/69-experience/1352-dave-rodabaughs-analysis-services-interview-questihttp://www.ssas-info.com/analysis-services-implementations/69-experience/1352-dave-rodabaughs-analysis-services-interview-questions" target="_blank">Part IV of My Analysis Services Interview Questions: Technical Features</a><br />- <a href="http://www.ssas-info.com/analysis-services-implementations/69-experience/1352-dave-rodabaughs-analysis-services-interview-questions" target="_blank">Part V of My Analysis Services Interview Questions: The Most Common MDX Functions</a></p>
<p>As Kenny Bania from Seinfeld says: &quot;That&#8217;s gold, Jerry! Gold!&quot;</p>
<p></div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jesseorosz.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jesseorosz.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jesseorosz.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jesseorosz.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/jesseorosz.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/jesseorosz.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/jesseorosz.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/jesseorosz.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jesseorosz.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jesseorosz.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jesseorosz.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jesseorosz.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jesseorosz.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jesseorosz.wordpress.com/7/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jesseorosz.wordpress.com&amp;blog=16457704&amp;post=7&amp;subd=jesseorosz&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://jesseorosz.wordpress.com/2009/01/26/dave-rodabaughs-analysis-services-interview-questions/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/cd77cb11127fc7477cc7e2e3d09b2791?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">jesperss</media:title>
		</media:content>
	</item>
		<item>
		<title>Large SSAS Partition</title>
		<link>http://jesseorosz.wordpress.com/2009/01/16/large-ssas-partition/</link>
		<comments>http://jesseorosz.wordpress.com/2009/01/16/large-ssas-partition/#comments</comments>
		<pubDate>Fri, 16 Jan 2009 19:59:01 +0000</pubDate>
		<dc:creator>jesperss</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://jesseorosz.wordpress.com/2009/01/16/large-ssas-partition</guid>
		<description><![CDATA[  Earlier this week I had to take ownership of a new SSAS system due to one of our offices shutting down. I&#8217;ve heard of it exisiting but never was able to take a look at it until just a few &#8230; <a href="http://jesseorosz.wordpress.com/2009/01/16/large-ssas-partition/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jesseorosz.wordpress.com&amp;blog=16457704&amp;post=8&amp;subd=jesseorosz&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<div id="msgcns!E322FD91218E57CF!697" class="bvMsg">
<div> </div>
<div>Earlier this week I had to take ownership of a new SSAS system due to one of our offices shutting down. I&#8217;ve heard of it exisiting but never was able to take a look at it until just a few days ago.</div>
<div>  </div>
<div>I had heard there were performance problems and when I opened up the cube in BIDS, I came across this&#8230;</div>
<div> </div>
<div> </div>
<p><img src="http://i113.photobucket.com/albums/n223/Jesperss/blog/hugepartition.jpg" /> </p>
<p>A single partition with a size of over 40GB. I initially thought it was due to too many aggregations (60% indicated), however after a closer look, the entire 40GB lies in the leaf fact data. All the dimension attributes are set to a RelationshipType of Flexible, and since the dimensions are being processed  by a ProcessUpdate without ProcessAffectedObjects set to true, all the aggregations have never been rebult. My best guess is there are around 3-6 billion fact rows contained in the partition. Wow.</p>
<p>Personally I always try to keep disk size under 1GB - row wise under 100 million. I know MS best practices says to keep it around 20 million, however after talking to others it seems like you can go a fair amount over that 20 million. All depends on how many dimensions/aggregations are associated with a row of course&#8230;</p>
<p>What&#8217;s the largest partition size you guys have seen?</p>
<p> </p></div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jesseorosz.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jesseorosz.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jesseorosz.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jesseorosz.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/jesseorosz.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/jesseorosz.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/jesseorosz.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/jesseorosz.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jesseorosz.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jesseorosz.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jesseorosz.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jesseorosz.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jesseorosz.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jesseorosz.wordpress.com/8/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jesseorosz.wordpress.com&amp;blog=16457704&amp;post=8&amp;subd=jesseorosz&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://jesseorosz.wordpress.com/2009/01/16/large-ssas-partition/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/cd77cb11127fc7477cc7e2e3d09b2791?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">jesperss</media:title>
		</media:content>

		<media:content url="http://i113.photobucket.com/albums/n223/Jesperss/blog/hugepartition.jpg" medium="image" />
	</item>
		<item>
		<title>Two Facts In a Measure Group &#8211; One Correct, One Incorrect</title>
		<link>http://jesseorosz.wordpress.com/2008/10/15/two-facts-in-a-measure-group-one-correct-one-incorrect/</link>
		<comments>http://jesseorosz.wordpress.com/2008/10/15/two-facts-in-a-measure-group-one-correct-one-incorrect/#comments</comments>
		<pubDate>Wed, 15 Oct 2008 21:37:59 +0000</pubDate>
		<dc:creator>jesperss</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://jesseorosz.wordpress.com/2008/10/15/two-facts-in-a-measure-group-one-correct-one-incorrect</guid>
		<description><![CDATA[It&#8217;s been awhile since I&#8217;ve run into a &#34;bang the head against the wall&#34; problem, however today I ran into a doozy.   I had a measure group (no aggs, two summed measures) associated with three dimensions. There were some modifications done to &#8230; <a href="http://jesseorosz.wordpress.com/2008/10/15/two-facts-in-a-measure-group-one-correct-one-incorrect/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jesseorosz.wordpress.com&amp;blog=16457704&amp;post=6&amp;subd=jesseorosz&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<div id="msgcns!E322FD91218E57CF!602" class="bvMsg">
<div>It&#8217;s been awhile since I&#8217;ve run into a &quot;bang the head against the wall&quot; problem, however today I ran into a doozy.</div>
<div> </div>
<div>I had a measure group (no aggs, two summed measures) associated with three dimensions. There were some modifications done to the fact table that would now allow this measure group to be associated with seven dimensions. Great, more detail! Since these dimensions were already in the database and in the cube, all I&#8217;d have to do is just set up a few relationships through the dimension designer, reprocess, and BAM. </div>
<div> </div>
<div>I do just that and validate the numbers against the fact table. While measure number one looked correct and returned a sum of 29,875.40, measure two returned incorrect numbers. The fact table had 34,450.60 and the cube was returning 34,448.20 &#8211; only a difference of 2.40. I process the indexes, process update the dimensions, reprocess the entire cube database, drop and recreate the partitions, and a few other things - NOTHING. It didn&#8217;t make any sense why would one number would match and the other didn&#8217;t &#8211; they were both coming from the same measure group and fact table.</div>
<div> </div>
<div>One by one I removeed the new dimensionlal relationships in the measure group. By removing the first dimension the difference drops to 2.15, dimension number two &#8211; 1.87, dimension number three &#8211; 1.19, ect. There was no rhyme or reason to the difference narrowing. </div>
<div> </div>
<div>After four hours I open up the cube live through Visual Studio, and on the Cube Measure, tab I rearrange the order of the two measures. Just drop and drag the bottom measure above the other. Reprocess, check the numbers..and&#8230;what do you know&#8230;the numbers <em>finally</em> match up like they should.</div>
<div> </div>
<div>Totally frustrating.</div>
</div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jesseorosz.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jesseorosz.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jesseorosz.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jesseorosz.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/jesseorosz.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/jesseorosz.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/jesseorosz.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/jesseorosz.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jesseorosz.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jesseorosz.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jesseorosz.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jesseorosz.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jesseorosz.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jesseorosz.wordpress.com/6/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jesseorosz.wordpress.com&amp;blog=16457704&amp;post=6&amp;subd=jesseorosz&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://jesseorosz.wordpress.com/2008/10/15/two-facts-in-a-measure-group-one-correct-one-incorrect/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/cd77cb11127fc7477cc7e2e3d09b2791?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">jesperss</media:title>
		</media:content>
	</item>
		<item>
		<title>70-448 Exam Results</title>
		<link>http://jesseorosz.wordpress.com/2008/10/09/70-448-exam-results/</link>
		<comments>http://jesseorosz.wordpress.com/2008/10/09/70-448-exam-results/#comments</comments>
		<pubDate>Thu, 09 Oct 2008 05:51:43 +0000</pubDate>
		<dc:creator>jesperss</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://jesseorosz.wordpress.com/2008/10/09/70-448-exam-results</guid>
		<description><![CDATA[Late July I took the 70-448 (SQL Server 2008, Business Intelligence Development and Maintenance) Beta Exam. It looks like the results are now being released being that I just received an email notifying me that I had passed. Woot woot!   &#8230; <a href="http://jesseorosz.wordpress.com/2008/10/09/70-448-exam-results/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jesseorosz.wordpress.com&amp;blog=16457704&amp;post=10&amp;subd=jesseorosz&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<div id="msgcns!E322FD91218E57CF!581" class="bvMsg">
<div>Late July I took the 70-448 (SQL Server 2008, Business Intelligence Development and Maintenance) Beta Exam. It looks like the results are now being released being that I just received an email notifying me that I had passed. Woot woot!</div>
<div> </div>
<div>My prep for the test was zilch. My real world experience was enough for me to pass. Cool eh? In all it took me about an hour and a half to go through the test.</div>
<div> </div>
<div>I was initially hesitant in taking the exam, but certainly glad I did!</div>
<div> </div>
<div>
<p><img src="http://i113.photobucket.com/albums/n223/Jesperss/blog/70-448_small.jpg" /></div>
<div> </div>
<div> </div>
<div> </div>
<div>More info here:  <a href="http://www.microsoft.com/learning/en/us/exams/70-448.mspx">http://www.microsoft.com/learning/en/us/exams/70-448.mspx</a></div>
<div> </div>
</div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jesseorosz.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jesseorosz.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jesseorosz.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jesseorosz.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/jesseorosz.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/jesseorosz.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/jesseorosz.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/jesseorosz.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jesseorosz.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jesseorosz.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jesseorosz.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jesseorosz.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jesseorosz.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jesseorosz.wordpress.com/10/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jesseorosz.wordpress.com&amp;blog=16457704&amp;post=10&amp;subd=jesseorosz&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://jesseorosz.wordpress.com/2008/10/09/70-448-exam-results/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/cd77cb11127fc7477cc7e2e3d09b2791?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">jesperss</media:title>
		</media:content>

		<media:content url="http://i113.photobucket.com/albums/n223/Jesperss/blog/70-448_small.jpg" medium="image" />
	</item>
		<item>
		<title>Tips: Processing Large Dimensions</title>
		<link>http://jesseorosz.wordpress.com/2008/09/25/tips-processing-large-dimensions/</link>
		<comments>http://jesseorosz.wordpress.com/2008/09/25/tips-processing-large-dimensions/#comments</comments>
		<pubDate>Thu, 25 Sep 2008 18:36:55 +0000</pubDate>
		<dc:creator>jesperss</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://jesseorosz.wordpress.com/2008/09/25/tips-processing-large-dimensions</guid>
		<description><![CDATA[With the good weather subsiding here in Seattle for a few days I&#8217;m feeling motivated to post something today.   Recently there was a post on LinkedIn regarding large dimensional updates (millions of members) in SSAS. The release of Analysis &#8230; <a href="http://jesseorosz.wordpress.com/2008/09/25/tips-processing-large-dimensions/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jesseorosz.wordpress.com&amp;blog=16457704&amp;post=4&amp;subd=jesseorosz&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<div id="msgcns!E322FD91218E57CF!548" class="bvMsg">
<div>With the good weather subsiding here in Seattle for a few days I&#8217;m feeling motivated to post something today. </div>
<div> </div>
<div>Recently there was a post on LinkedIn regarding large dimensional updates (millions of members) in SSAS. The release of Analysis Services 2005 greatly increased the ability to process large dimension compared to AS 2000. Dimensional updates that weren&#8217;t possible in 2000 are now easily done in 2005.</div>
<div> </div>
<div>I&#8217;ve dealt with somewhat large dimensions (five to twenty million members) so I thought I&#8217;d share some tips that have allowed me to perform daily updates in an acceptable manner. </div>
<div> </div>
<div>When procssing dimensions, it&#8217;s not the processing of the dimension members that takes a lot of time, but rather it&#8217;s the rebuilding of the aggregates. (set ProcessAffectedObjects to True). </div>
<div> </div>
<div>One of our larger dimension has ten million members and when no data shifts the processing of the dimension takes 15 minutes. If data does shift the reprocessing takes three hours. We also have a dimension with only 30 members that will take 15 seconds to reprocess if there is no data movement; two hours if there is. Data will move around if you have flexible attribute relationships.</div>
<div> </div>
<div>Things to keep in mind:</p>
<p>1. Carefully examine all flexible relationships, just don&#8217;t set everything to flexible. This is set by the RelationshipType property on an attribute.</p>
<p>2. Process all your dimensions in parallel so the aggs are rebuilt at once. If you process dimensions in serial this may happen: dimension A processed, aggs are rebuilt, dimension B processed, data moves around, dimension C processed, aggs need to be rebuilt again. Always try to process dimensions in parallel. ALWAYS. </p>
<p>3. Be creative with your partitioning and aggregation designs. Say you have five years of data and you create a partition for each year. Chances are the most recent year or two will be queried differently than the data from four or five years ago. The partitions for years one and two should use a different aggregation design than years four and five. Rebuilding aggregates can take awhile (especially with larger dimensions) and the less you have to rebuild the faster the dimensional update will take. </p>
<p>For example: I have a cube (partitioned by day) with a rolling one year of data with the majority of queries only being run against the last 90 days. After ninety days I assign a different aggregation design to any partition older than that ninety days and reprocess. The last 90 days use an aggregation design with eight aggs, days 90 and older have a design with only three aggs. </p>
<p>4. Get the fastest box you can. From what i&#8217;ve experienced the real limiting factor in fast dimension updates isn&#8217;t memory, it&#8217;s CPU. </p></div>
<div> </div>
<div>5. Only process dimensions that need to be processed. It&#8217;s easy to be lazy and process all the dimensions in a cube every single time, however if the data hasn&#8217;t been changed, why update the dimension? I have a stored procedure that takes the last ETL load time for a table and compares that to the last process time for that corresponding SSAS dimension. If the ETL time is later than the cube process time then the SSAS dimension is processed. This greatly cuts down on processing time.</div>
<div> </div>
<div>6. To implement most of these suggestions you&#8217;ll need to write AMO code. If you want to process your cubes in any sort of efficient way the built-in SSAS tasks within SSIS just don&#8217;t cut it.  You&#8217;ll need custom code.</div>
</div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jesseorosz.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jesseorosz.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jesseorosz.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jesseorosz.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/jesseorosz.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/jesseorosz.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/jesseorosz.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/jesseorosz.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jesseorosz.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jesseorosz.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jesseorosz.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jesseorosz.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jesseorosz.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jesseorosz.wordpress.com/4/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jesseorosz.wordpress.com&amp;blog=16457704&amp;post=4&amp;subd=jesseorosz&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://jesseorosz.wordpress.com/2008/09/25/tips-processing-large-dimensions/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/cd77cb11127fc7477cc7e2e3d09b2791?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">jesperss</media:title>
		</media:content>
	</item>
		<item>
		<title>No cost beta 70-452: Designing a Business Intelligence Infrastructure Using Microsoft SQL Server 2008</title>
		<link>http://jesseorosz.wordpress.com/2008/08/19/no-cost-beta-70-452-designing-a-business-intelligence-infrastructure-using-microsoft-sql-server-2008/</link>
		<comments>http://jesseorosz.wordpress.com/2008/08/19/no-cost-beta-70-452-designing-a-business-intelligence-infrastructure-using-microsoft-sql-server-2008/#comments</comments>
		<pubDate>Tue, 19 Aug 2008 16:42:52 +0000</pubDate>
		<dc:creator>jesperss</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://jesseorosz.wordpress.com/2008/08/19/no-cost-beta-70-452-designing-a-business-intelligence-infrastructure-using-microsoft-sql-server-2008</guid>
		<description><![CDATA[You are invited to take beta exam 71-452: Designing a Business Intelligence Infrastructure Using Microsoft SQL Server 2008. If you pass the beta exam, the exam credit will be added to your transcript and you will not need to take &#8230; <a href="http://jesseorosz.wordpress.com/2008/08/19/no-cost-beta-70-452-designing-a-business-intelligence-infrastructure-using-microsoft-sql-server-2008/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jesseorosz.wordpress.com&amp;blog=16457704&amp;post=11&amp;subd=jesseorosz&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<div id="msgcns!E322FD91218E57CF!493" class="bvMsg">
<div>You are invited to take beta exam 71-452: Designing a Business Intelligence Infrastructure Using Microsoft SQL Server 2008. If you pass the beta exam, the exam credit will be added to your transcript and you will not need to take the exam in its released form. The results will <b>not</b> appear on your transcript until several weeks after the final form of the exam is released. The 71-xxx identifier is used for registering for beta versions of MCP exams, when the exam is released in its final form the 70-xxx identifier is used for registration. </p>
<p>71-452: Designing a Business Intelligence Infrastructure Using Microsoft SQL Server 2008 counts as credit towards the following certification(s). </p></div>
<div>
<p>· Microsoft Certified IT Professional: Business Intelligence Developer 2008. In order to earn this certification you must also pass exam 70-448: TS: Microsoft SQL Server 2008, Business Intelligence Development and Maintenance. </p>
<p>Find exam preparation information: <a href="http://www.microsoft.com/learning/exams/70-452.mspx"><u><font color="#0000ff">http://www.microsoft.com/learning/exams/70-452.mspx</font></u></a></div>
<div>
<p>Registration begins: August 8, 2008 </p>
<p>Beta exam period runs: August 13, 2008– September 10, 2008 </p>
<p><b>Registration Information</b> </p>
<p><strong>Please use the following promotional code when registering for the exam: 3568C</strong> </p>
<p><strong></strong><br />You must register at least 24 hours prior to taking the exam. </p>
<p>To register in North America, please call: </p>
<p>· Prometric: (800) 755-EXAM (800-755-3926) </p>
<p>Outside the U.S./Canada, please contact: </p>
<p>· Prometric: <a href="http://www.register.prometric.com/ClientInformation.asp"><u><font color="#0000ff">http://www.register.prometric.com/ClientInformation.asp</font></u></a></p>
<p>More info here: <a href="http://blogs.msdn.com/gerryo/archive/2008/08/08/sql-server-2008-beta-exam-71-452-designing-a-business-intelligence-infrastructure-using-microsoft-sql-server-2008.aspx">http://blogs.msdn.com/gerryo/archive/2008/08/08/sql-server-2008-beta-exam-71-452-designing-a-business-intelligence-infrastructure-using-microsoft-sql-server-2008.aspx</a> </p>
</p>
</p>
</div>
</div>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/jesseorosz.wordpress.com/11/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/jesseorosz.wordpress.com/11/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jesseorosz.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jesseorosz.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jesseorosz.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jesseorosz.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/jesseorosz.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/jesseorosz.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/jesseorosz.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/jesseorosz.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jesseorosz.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jesseorosz.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jesseorosz.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jesseorosz.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jesseorosz.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jesseorosz.wordpress.com/11/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jesseorosz.wordpress.com&amp;blog=16457704&amp;post=11&amp;subd=jesseorosz&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://jesseorosz.wordpress.com/2008/08/19/no-cost-beta-70-452-designing-a-business-intelligence-infrastructure-using-microsoft-sql-server-2008/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/cd77cb11127fc7477cc7e2e3d09b2791?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">jesperss</media:title>
		</media:content>
	</item>
		<item>
		<title>Take the beta 71-448 for free</title>
		<link>http://jesseorosz.wordpress.com/2008/07/21/take-the-beta-71-448-for-free/</link>
		<comments>http://jesseorosz.wordpress.com/2008/07/21/take-the-beta-71-448-for-free/#comments</comments>
		<pubDate>Mon, 21 Jul 2008 21:55:48 +0000</pubDate>
		<dc:creator>jesperss</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://jesseorosz.wordpress.com/2008/07/21/take-the-beta-71-448-for-free</guid>
		<description><![CDATA[  Had the chance to go take the beta 71-448 for free this morning. Took me about an hour and a half. Since the exam is still in beta you won&#8217;t receive your score for at least a few weeks. Bummer.   &#8230; <a href="http://jesseorosz.wordpress.com/2008/07/21/take-the-beta-71-448-for-free/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jesseorosz.wordpress.com&amp;blog=16457704&amp;post=12&amp;subd=jesseorosz&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<div id="msgcns!E322FD91218E57CF!476" class="bvMsg">
<div> </div>
<div>Had the chance to go take the beta 71-448 for free this morning. Took me about an hour and a half. Since the exam is still in beta you won&#8217;t receive your score for at least a few weeks. Bummer. </div>
<div> </div>
<div>Definitely worth a shot, especially if you&#8217;ve never had the opportunity to take a MS exam test. </div>
<div> </div>
<div>Only good until 7/31.</div>
<div> </div>
<div> </div>
<div>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</div>
<h3>71-448 &#8211; Promo code B6543</h3>
<p>You are invited to take beta exam 71-448: TS: Microsoft SQL Server 2008, Business Intelligence Development and Maintenance. You were specifically chosen to participate in this beta because of your current Microsoft Certification status or previous participation with Microsoft Learning. If you pass the beta exam, the exam credit will be added to your transcript and you will not need to take the exam in its released form. The 71-xxx identifier is used for registering for beta versions of MCP exams, when the exam is released in its final form the 70-xxx identifier is used for registration. <br />By participating in beta exams, you have the opportunity to provide the Microsoft Certification program with feedback about exam content, which is integral to development of exams in their released version. We depend on the contributions of experienced IT professionals and developers as we continually improve exam content and maintain the value of Microsoft certifications. </p>
<p>71-448: TS: Microsoft SQL Server 2008, Business Intelligence Development and Maintenance counts as credit towards the following certification(s). </p>
<p>· Microsoft Certified Technology Specialist: SQL Server 2008, Business Intelligence Development and Maintenance </p>
<hr align="center" width="100%" size="1" />
<p> <b>Availability</b> </p>
<p>Registration begins: June 15, 2008 </p>
<p>Beta exam period runs: June 16, 2008– July 31, 2008 </p>
<p>Receiving this invitation does not guarantee you a seat in the beta; we recommend that you register immediately. Beta exams have limited availability and are operated under a first-come-first-served basis. Once all beta slots are filled, no additional seats will be offered. </p>
<p>Testing is held at Prometric testing centers worldwide, although this exam may not be available in all countries (see Regional Restrictions).  All testing centers will have the capability to offer this exam in its live version. </p>
<p>Regional Restrictions: India, Pakistan, China </p>
<hr align="center" width="100%" size="1" />
<p><a title="ECABAAAA"></a><b>Registration Information</b> </p>
<p>You must register at least 24 hours prior to taking the exam. <br />Please use the following promotional code when registering for the exam: 943F6 <br />Receiving this invitation does not guarantee you a seat in the beta; we recommend that you register immediately. </p>
<p>To register in North America, please call: </p>
<p>Prometric: (800) 755-EXAM (800-755-3926) </p>
<p>Outside the U.S./Canada, please contact: </p>
<p>Prometric: <a href="http://www.register.prometric.com/ClientInformation.asp"><u><font color="#0000ff">http://www.register.prometric.com/ClientInformation.asp</font></u></a> </p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; </p>
<p>More info here: <a href="http://blogs.msdn.com/gerryo/">http://blogs.msdn.com/gerryo/</a> </p>
<p> </p></div>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/jesseorosz.wordpress.com/12/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/jesseorosz.wordpress.com/12/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jesseorosz.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jesseorosz.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jesseorosz.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jesseorosz.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/jesseorosz.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/jesseorosz.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/jesseorosz.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/jesseorosz.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jesseorosz.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jesseorosz.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jesseorosz.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jesseorosz.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jesseorosz.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jesseorosz.wordpress.com/12/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jesseorosz.wordpress.com&amp;blog=16457704&amp;post=12&amp;subd=jesseorosz&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://jesseorosz.wordpress.com/2008/07/21/take-the-beta-71-448-for-free/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/cd77cb11127fc7477cc7e2e3d09b2791?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">jesperss</media:title>
		</media:content>
	</item>
		<item>
		<title>Microsoft BI Conference 2008 October 6-8 &#8211; Seattle, WA</title>
		<link>http://jesseorosz.wordpress.com/2008/07/14/microsoft-bi-conference-2008-october-6-8-seattle-wa/</link>
		<comments>http://jesseorosz.wordpress.com/2008/07/14/microsoft-bi-conference-2008-october-6-8-seattle-wa/#comments</comments>
		<pubDate>Mon, 14 Jul 2008 17:41:48 +0000</pubDate>
		<dc:creator>jesperss</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://jesseorosz.wordpress.com/2008/07/14/microsoft-bi-conference-2008-october-6-8-seattle-wa</guid>
		<description><![CDATA[Registration is now open for the 2008 BI Conference here in Seattle. I was able to attend last year and to say it was worth it would be an understatement. Definitely attend if the opportunity presents itself.   With SQL &#8230; <a href="http://jesseorosz.wordpress.com/2008/07/14/microsoft-bi-conference-2008-october-6-8-seattle-wa/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jesseorosz.wordpress.com&amp;blog=16457704&amp;post=13&amp;subd=jesseorosz&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<div id="msgcns!E322FD91218E57CF!475" class="bvMsg">
<div>Registration is now open for the 2008 BI Conference here in Seattle. I was able to <a href="http://jesseorosz.spaces.live.com/blog/cns!E322FD91218E57CF!270.entry" target="_blank">attend last year</a> and to say it was worth it would be an understatement. Definitely attend if the opportunity presents itself. </div>
<div> </div>
<div>With <a href="http://summit2008.sqlpass.org/" target="_blank">SQL PASS also taking place in Seattle</a>, it&#8217;s quite a busy few months in the SQL Server world here.</div>
<div> </div>
<div>Register by August 8th you&#8217;ll be able to get it at the $995 price, after the 8th it goes up to $1295.</div>
<div> </div>
<div><a href="http://www.msbiconference.com/pages/registration.aspx">http://www.msbiconference.com/pages/registration.aspx</a></div>
<div> </div>
<div>If anyone needs tips on where to stay in the Seattle area (I live a seven minute walk from the convention center), let me know.</div>
<div> </div>
<div> </div>
</div>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/jesseorosz.wordpress.com/13/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/jesseorosz.wordpress.com/13/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jesseorosz.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jesseorosz.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jesseorosz.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jesseorosz.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/jesseorosz.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/jesseorosz.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/jesseorosz.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/jesseorosz.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jesseorosz.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jesseorosz.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jesseorosz.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jesseorosz.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jesseorosz.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jesseorosz.wordpress.com/13/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jesseorosz.wordpress.com&amp;blog=16457704&amp;post=13&amp;subd=jesseorosz&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://jesseorosz.wordpress.com/2008/07/14/microsoft-bi-conference-2008-october-6-8-seattle-wa/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/cd77cb11127fc7477cc7e2e3d09b2791?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">jesperss</media:title>
		</media:content>
	</item>
		<item>
		<title>AMO &#8211; Delete All Partitions From a Database</title>
		<link>http://jesseorosz.wordpress.com/2008/06/11/amo-delete-all-partitions-from-a-database/</link>
		<comments>http://jesseorosz.wordpress.com/2008/06/11/amo-delete-all-partitions-from-a-database/#comments</comments>
		<pubDate>Wed, 11 Jun 2008 21:04:58 +0000</pubDate>
		<dc:creator>jesperss</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://jesseorosz.wordpress.com/2008/06/11/amo-delete-all-partitions-from-a-database</guid>
		<description><![CDATA[From time to time I&#8217;ll need to recreate the dev/beta environment and I have to do that from production. I want an exact copy of production minus all the partitions that have been created with the exception of the template partitions.   &#8230; <a href="http://jesseorosz.wordpress.com/2008/06/11/amo-delete-all-partitions-from-a-database/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jesseorosz.wordpress.com&amp;blog=16457704&amp;post=9&amp;subd=jesseorosz&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<div id="msgcns!E322FD91218E57CF!448" class="bvMsg">
<div><span style="font-size:8pt;font-family:'Courier New';"><span><font color="#000000"></font></span></span></p>
<p style="line-height:normal;margin:0;">From time to time I&#8217;ll need to recreate the dev/beta environment and I have to do that from production. I want an exact copy of production minus all the partitions that have been created with the exception of the template partitions. </p>
<p style="line-height:normal;margin:0;">  </p>
<p style="line-height:normal;margin:0;">At first I would go in and change the XMLA script manually to remove those partitions. However, if there were a lot of measuregroups (50-100), this could take upwards of an hour. Being that it was such a pain I probably didn&#8217;t keep dev and beta as up-to-date as I should have. </p>
<p style="line-height:normal;margin:0;">  </p>
<p style="line-height:normal;margin:0;">An Analysis Services Stored Procedure is perfect to handle this task. Works beautifully and what took me an hour to do before now takes 30 seconds. </p>
<p style="line-height:normal;margin:0;">  </p>
<p style="line-height:normal;margin:0;">I decided to use arrays within the procedure even though you could write the proc without them. </p>
<p style="line-height:normal;margin:0;">  </p>
<p style="line-height:normal;margin:0;">  </p>
<p style="line-height:normal;margin:0;">  </p>
<p style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:'Courier New';"><span><font color="#000000"></font></span></span>*objDatabase is a database object I&#8217;ve set in another function </p>
<p style="line-height:normal;margin:0;">  </p>
<p style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:'Courier New';"><span><font color="#000000"></font></span></span>  </p>
<p style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:'Courier New';"><span><font color="#000000">  </font></span><span style="color:blue;">Public</span><font color="#000000"> </font><span style="color:blue;">Sub</span><font color="#000000"> DeleteAllPartitions()</font></span> </p>
<p style="line-height:normal;margin:0;">  </p>
<p style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:'Courier New';"><span><font color="#000000">      </font></span><span style="color:blue;">Dim</span><font color="#000000"> oCube </font><span style="color:blue;">As</span><font color="#000000"> Cube</font></span> </p>
<p style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:'Courier New';"><span><font color="#000000">      </font></span><span style="color:blue;">Dim</span><font color="#000000"> oMeasureGroup </font><span style="color:blue;">As</span><font color="#000000"> MeasureGroup</font></span> </p>
<p style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:'Courier New';"><span><font color="#000000">      </font></span><span style="color:blue;">Dim</span><font color="#000000"> oPartition </font><span style="color:blue;">As</span><font color="#000000"> Partition</font></span> </p>
<p style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:'Courier New';"><span><font color="#000000">      </font></span><span style="color:blue;">Dim</span><font color="#000000"> i </font><span style="color:blue;">As</span><font color="#000000"> </font><span style="color:blue;">Integer</span></span> </p>
<p style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:'Courier New';"><span><font color="#000000">      </font></span><span style="color:blue;">Dim</span><font color="#000000"> j </font><span style="color:blue;">As</span><font color="#000000"> </font><span style="color:blue;">Integer</span></span> </p>
<p style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:'Courier New';"><span><font color="#000000">      </font></span><span style="color:blue;">Dim</span><font color="#000000"> k </font><span style="color:blue;">As</span><font color="#000000"> </font><span style="color:blue;">Integer</span></span> </p>
<p style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:'Courier New';"><span><font color="#000000">      </font></span><span style="color:blue;">Dim</span><font color="#000000"> AryCubes </font><span style="color:blue;">As</span><font color="#000000"> </font><span style="color:blue;">String</span><font color="#000000">()</font></span> </p>
<p style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:'Courier New';"><span><font color="#000000">      </font></span><span style="color:blue;">Dim</span><font color="#000000"> AryCubesSize </font><span style="color:blue;">As</span><font color="#000000"> </font><span style="color:blue;">Integer</span></span> </p>
<p style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:'Courier New';"><span><font color="#000000">      </font></span><span style="color:blue;">Dim</span><font color="#000000"> AryMeasureGroups </font><span style="color:blue;">As</span><font color="#000000"> </font><span style="color:blue;">String</span><font color="#000000">()</font></span> </p>
<p style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:'Courier New';"><span><font color="#000000">      </font></span><span style="color:blue;">Dim</span><font color="#000000"> AryMeasureGroupsSize </font><span style="color:blue;">As</span><font color="#000000"> </font><span style="color:blue;">Integer</span></span> </p>
<p style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:'Courier New';"><span><font color="#000000">      </font></span><span style="color:blue;">Dim</span><font color="#000000"> AryPartitions </font><span style="color:blue;">As</span><font color="#000000"> </font><span style="color:blue;">String</span><font color="#000000">()</font></span> </p>
<p style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:'Courier New';"><span><font color="#000000">      </font></span><span style="color:blue;">Dim</span><font color="#000000"> AryPartitionsSize </font><span style="color:blue;">As</span><font color="#000000"> </font><span style="color:blue;">Integer</span></span> </p>
<p style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:'Courier New';"><span><font color="#000000"><br />      </font></span><span style="color:green;">&#8216;Create the cube array (AryCubes)</span></span> </p>
<p style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:'Courier New';"><font color="#000000"><span>      </span>AryCubesSize = (objDatabase.Cubes.Count &#8211; 1)</font></span> </p>
<p style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:'Courier New';"><span><font color="#000000">      </font></span><span style="color:blue;">ReDim</span><font color="#000000"> AryCubes(AryCubesSize)</font></span> </p>
<p style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:'Courier New';"><font color="#000000"> </font></span> </p>
<p style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:'Courier New';"><span><font color="#000000">      </font></span><span style="color:green;">&#8216;Loop through each of the cubes in the database and throw the cube names in an array</span></span> </p>
<p style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:'Courier New';"><span><font color="#000000">      </font></span><span style="color:blue;">For</span><font color="#000000"> </font><span style="color:blue;">Each</span><font color="#000000"> oCube </font><span style="color:blue;">In</span><font color="#000000"> objDatabase.Cubes</font></span> </p>
<p style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:'Courier New';"><font color="#000000"><span>          </span>AryCubes(i) = oCube.Name</font></span> </p>
<p style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:'Courier New';"><font color="#000000"><span>          </span>i = i + 1</font></span> </p>
<p style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:'Courier New';"><span><font color="#000000">      </font></span><span style="color:blue;">Next</span><font color="#000000"> oCube</font></span> </p>
<p style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:'Courier New';"><font color="#000000"> </font></span> </p>
<p style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:'Courier New';"><span><font color="#000000">      </font></span><span style="color:green;">&#8216;Loop through the cube array</span></span> </p>
<p style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:'Courier New';"><span><font color="#000000">      </font></span><span style="color:blue;">For</span><font color="#000000"> i = 0 </font><span style="color:blue;">To</span><font color="#000000"> AryCubesSize</font></span> </p>
<p style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:'Courier New';"><font color="#000000"> </font></span> </p>
<p style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:'Courier New';"><span><font color="#000000">          </font></span><span style="color:green;">&#8216;Set the cube object to the current item in AryCubes</span></span> </p>
<p style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:'Courier New';"><font color="#000000"><span>          </span>oCube = objDatabase.Cubes.GetByName(AryCubes(i))</font></span> </p>
<p style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:'Courier New';"><font color="#000000"> </font></span> </p>
<p style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:'Courier New';"><span><font color="#000000">          </font></span><span style="color:green;">&#8216;Create the measuregroup array (AryMeasureGroups)</span></span> </p>
<p style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:'Courier New';"><font color="#000000"><span>          </span>AryMeasureGroupsSize = (oCube.MeasureGroups.Count &#8211; 1)</font></span> </p>
<p style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:'Courier New';"><span><font color="#000000">          </font></span><span style="color:blue;">ReDim</span><font color="#000000"> AryMeasureGroups(AryMeasureGroupsSize)</font></span> </p>
<p style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:'Courier New';"><font color="#000000"> </font></span> </p>
<p style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:'Courier New';"><span><font color="#000000">          </font></span><span style="color:green;">&#8216;Set j back to zero for the current item</span></span> </p>
<p style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:'Courier New';"><font color="#000000"><span>          </span>j = 0</font></span> </p>
<p style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:'Courier New';"><font color="#000000"> </font></span> </p>
<p style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:'Courier New';"><font color="#000000"><span>       </span><span>   </span></font><span style="color:green;">&#8216;Loop through each of the measure groups in the cube and throw the measure group names in an array</span></span> </p>
<p style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:'Courier New';"><span><font color="#000000">          </font></span><span style="color:blue;">For</span><font color="#000000"> </font><span style="color:blue;">Each</span><font color="#000000"> oMeasureGroup </font><span style="color:blue;">In</span><font color="#000000"> oCube.MeasureGroups</font></span> </p>
<p style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:'Courier New';"><font color="#000000"><span>              </span>AryMeasureGroups(j) = oMeasureGroup.Name</font></span> </p>
<p style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:'Courier New';"><font color="#000000"><span>              </span>j = j + 1</font></span> </p>
<p style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:'Courier New';"><span><font color="#000000">          </font></span><span style="color:blue;">Next</span><font color="#000000"> oMeasureGroup</font></span> </p>
<p style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:'Courier New';"><font color="#000000"> </font></span> </p>
<p style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:'Courier New';"><span><font color="#000000">          </font></span><span style="color:green;">&#8216;Loop through the measure group array</span></span> </p>
<p style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:'Courier New';"><span><font color="#000000">          </font></span><span style="color:blue;">For</span><font color="#000000"> j = 0 </font><span style="color:blue;">To</span><font color="#000000"> AryMeasureGroupsSize</font></span> </p>
<p style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:'Courier New';"><font color="#000000"> </font></span> </p>
<p style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:'Courier New';"><span><font color="#000000">              </font></span><span style="color:green;">&#8216;Set the measure group object to the current item in AryMeasureGroups</span></span> </p>
<p style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:'Courier New';"><font color="#000000"><span>              </span>oMeasureGroup = oCube.MeasureGroups.GetByName(AryMeasureGroups(j))</font></span> </p>
<p style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:'Courier New';"><font color="#000000"> </font></span> </p>
<p style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:'Courier New';"><span><font color="#000000">              </font></span><span style="color:green;">&#8216;If the measuregroup is linked then don&#8217;t delete partitions</span></span> </p>
<p style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:'Courier New';"><span><font color="#000000">              </font></span><span style="color:blue;">If</span><font color="#000000"> oMeasureGroup.IsLinked = </font><span style="color:blue;">False</span><font color="#000000"> </font><span style="color:blue;">Then</span></span> </p>
<p style="line-height:normal;margin:0;"><span style="font-size:8pt;color:blue;font-family:'Courier New';"> </span> </p>
<p style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:'Courier New';"><span><font color="#000000">                  </font></span><span style="color:green;">&#8216;Create the partition array (AryPartitions)</span></span> </p>
<p style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:'Courier New';"><font color="#000000"><span>                  </span>AryPartitionsSize = (oMeasureGroup.Partitions.Count &#8211; 1)</font></span> </p>
<p style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:'Courier New';"><span><font color="#000000">                  </font></span><span style="color:blue;">ReDim</span><font color="#000000"> AryPartitions(AryPartitionsSize)</font></span> </p>
<p style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:'Courier New';"><font color="#000000"> </font></span> </p>
<p style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:'Courier New';"><span><font color="#000000">                  </font></span><span style="color:green;">&#8216;Set k back to zero for current item</span></span> </p>
<p style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:'Courier New';"><font color="#000000"><span>                  </span>k = 0</font></span> </p>
<p style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:'Courier New';"><font color="#000000"> </font></span> </p>
<p style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:'Courier New';"><span><font color="#000000">                  </font></span><span style="color:green;">&#8216;Loop through each of the partitions in the measure group and throw the name in an array</span></span> </p>
<p style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:'Courier New';"><span><font color="#000000">                  </font></span><span style="color:blue;">For</span><font color="#000000"> </font><span style="color:blue;">Each</span><font color="#000000"> oPartition </font><span style="color:blue;">In</span><font color="#000000"> oMeasureGroup.Partitions</font></span> </p>
<p style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:'Courier New';"><font color="#000000"><span>                      </span>AryPartitions(k) = oPartition.Name</font></span> </p>
<p style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:'Courier New';"><font color="#000000"><span>                      </span>k = k + 1</font></span> </p>
<p style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:'Courier New';"><font color="#000000"><span>    </span><span>              </span></font><span style="color:blue;">Next</span><font color="#000000"> oPartition</font></span> </p>
<p style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:'Courier New';"><font color="#000000"> </font></span> </p>
<p style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:'Courier New';"><span><font color="#000000">                  </font></span><span style="color:green;">&#8216;Loop through the partition array and drop the partition if its not the template partition</span></span> </p>
<p style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:'Courier New';"><span><font color="#000000">                  </font></span><span style="color:blue;">For</span><font color="#000000"> k = 0 </font><span style="color:blue;">To</span><font color="#000000"> AryPartitionsSize</font></span> </p>
<p style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:'Courier New';"><font><span><font color="#000000">                      </font></span><span style="color:blue;">If</span><font color="#000000"> AryPartitions(k) like </font><span style="color:#a31515;">&quot;template&quot;</span><font color="#000000"> </font><span style="color:blue;">Then          </span></font></span></p>
<p style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:'Courier New';"><font color="#000000"><span>                          </span>oPartition = oMeasureGroup.Partitions.GetByName(AryPartitions(k))</font></span> </p>
<p style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:'Courier New';"><font color="#000000"><span>                          </span>oPartition.Drop()</font></span> </p>
<p style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:'Courier New';"><span><font color="#000000">                      </font></span><span style="color:blue;">End</span><font color="#000000"> </font><span style="color:blue;">If</span></span> </p>
<p style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:'Courier New';"><span><font color="#000000">                  </font></span><span style="color:blue;">Next</span><font color="#000000"> k</font></span> </p>
<p style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:'Courier New';"><font color="#000000"> </font></span> </p>
<p style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:'Courier New';"><span><font color="#000000">              </font></span><span style="color:blue;">End</span><font color="#000000"> </font><span style="color:blue;">If</span></span> </p>
<p style="line-height:normal;margin:0;"><span style="font-size:8pt;color:blue;font-family:'Courier New';"> </span> </p>
<p style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:'Courier New';"><span><font color="#000000">          </font></span><span style="color:blue;">Next</span><font color="#000000"> j</font></span> </p>
<p style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:'Courier New';"><font color="#000000"> </font></span> </p>
<p style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:'Courier New';"><span><font color="#000000">      </font></span><span style="color:blue;">Next</span><font color="#000000"> i</font></span> </p>
<p style="line-height:normal;margin:0;"><span style="font-size:8pt;font-family:'Courier New';"><font color="#000000"> </font></span> </p>
<p style="margin:0 0 10pt;"><span style="font-size:8pt;line-height:115%;font-family:'Courier New';"><span><font color="#000000">  </font></span><span style="color:blue;">End</span><font color="#000000"> </font><span style="color:blue;">Sub</span></span><span style="font-size:8pt;line-height:115%;"></span></p>
</p>
</p>
</p>
</p>
</p>
</p>
</p>
</p>
</p>
</p>
</p>
</p>
</p>
</p>
</p>
</p>
</p>
</p>
</p>
</p>
</p>
</p>
</p>
</p>
</p>
</p>
</p>
</p>
</p>
</p>
</p>
</p>
</div>
</div>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/jesseorosz.wordpress.com/9/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/jesseorosz.wordpress.com/9/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jesseorosz.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jesseorosz.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jesseorosz.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jesseorosz.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/jesseorosz.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/jesseorosz.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/jesseorosz.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/jesseorosz.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jesseorosz.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jesseorosz.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jesseorosz.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jesseorosz.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jesseorosz.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jesseorosz.wordpress.com/9/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jesseorosz.wordpress.com&amp;blog=16457704&amp;post=9&amp;subd=jesseorosz&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://jesseorosz.wordpress.com/2008/06/11/amo-delete-all-partitions-from-a-database/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/cd77cb11127fc7477cc7e2e3d09b2791?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">jesperss</media:title>
		</media:content>
	</item>
		<item>
		<title>Star vs. Snowflake in OLAP Land</title>
		<link>http://jesseorosz.wordpress.com/2008/05/28/star-vs-snowflake-in-olap-land/</link>
		<comments>http://jesseorosz.wordpress.com/2008/05/28/star-vs-snowflake-in-olap-land/#comments</comments>
		<pubDate>Wed, 28 May 2008 21:31:43 +0000</pubDate>
		<dc:creator>jesperss</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://jesseorosz.wordpress.com/2008/05/28/star-vs-snowflake-in-olap-land</guid>
		<description><![CDATA[About six months ago I had a discussion with another guy about what my preferred data warehouse schema was: snowflake or star. Without hesitation I said snowflake. He looked at me with befuddlement and asked why. I told him that &#8230; <a href="http://jesseorosz.wordpress.com/2008/05/28/star-vs-snowflake-in-olap-land/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jesseorosz.wordpress.com&amp;blog=16457704&amp;post=15&amp;subd=jesseorosz&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<div id="msgcns!E322FD91218E57CF!437" class="bvMsg">
<div>About six months ago I had a discussion with another guy about what my preferred data warehouse schema was: snowflake or star. Without hesitation I said snowflake. He looked at me with befuddlement and asked why. I told him that OLAP processes dimensions more efficiently against a snowflaked schema instead of a star. We had nearly a twenty minute discussion exactly why Analysis Services likes snowflakes better than stars but I failed to convince him.  He firmly believed that the star schema was superior and anything short of me taking his firstborn hostage wouldn&#8217;t change his belief in that. Star vs snowflake usually initiates that type of steadfastness.</div>
<div> </div>
<div>To back up my believe I put together a test. I created a dimension with three levels with each level having two attributes that were outside of the &quot;Advertiser-Ad Campaign-Banner Ad&quot; hierarchy. A total of nine attributes in the dimension.</div>
<div> </div>
<div>1. Advertiser (15k rows)</div>
<ul>
<li>PaymentType (2 rows)
<li>Status (2 rows)</li>
</ul>
<div>2. Sales Campaign (500k rows)</div>
<ul>
<li>Category(16 rows)
<li>TargetCountry (225 rows)</li>
</ul>
<div>3. Banner Ad (12 million rows) </div>
<ul>
<li>Size (8 rows)
<li>AdType (4 rows)</li>
</ul>
<div>An Advertiser has Sales Campaigns and a Sales Campaign has Banner Ads with Banner Ads being the attribute key. </div>
<div> </div>
<div>-In star schema land this would all be put into a single table having nine columns across.</div>
<div>-In the snowflake world this ends up in nine different tables.  There&#8217;d be an Advertiser table with three columns: Advertiser/PaymentType/Status, a PaymentType table with a single column PaymentType, a Status table with a single column Status, ect (generically speaking).</p>
</div>
<div>This dimension has more levels and more attributes but I decided to pare it down for simplicity. The test was run on an Intel Xeon 2.8 with 4GB of RAM with SQL Server RDBMS and Analysis Services on the same box. I created two different dimensions: one based off of a star schema and the other off of a snowflake schema (separate DSV&#8217;s). Each dimension was processed nine times (three Process Full, six Process Update) and the times averaged.</div>
<div> </div>
<div>The star based dimension averaged a total of 8:35 per process vs 6:42 for the snowflaked based dimension. Why the big difference?</div>
<div> </div>
<div>Each attribute runs a SELECT DISTINCT against the source dimensional table. Take the AdType attribute under the Banner Ad level. Against a star schema this SELECT DISTINCT query would execute against a table with 12 million rows, however, against a snowflake schema it would execute on a table with only four rows. </div>
<div> </div>
<div>For smaller dimensions this doesn&#8217;t matter much, however if you have large dimensions and update quite frequently such as we do (hourly) a snowflake schema can make a world of difference. </div>
<div> </div>
<div>Snowflakes are harder to read and tougher for the ETL guy to write, however dimensions process much faster against them. Also, if you&#8217;re building a dimension using a wizard (shame on you!) the wizard will be able to detect natural hierarchies whereas a star schema won&#8217;t. </div>
<div> </div>
<div>Of course this test was done in an afternoon and not under the most scrutinizing conditions so I&#8217;m curious as to what others have experienced or think about the subject. What are your thoughts?</div>
<div> </div>
<div> </div>
<div>A Trio of Interesting Snowflakes by Ralph Kimball:<br /><a href="http://www.intelligententerprise.com/010629/warehouse1_1.jhtml;jsessionid=Y5BJ04CASJZKMQSNDLOSKHSCJUNN2JVN?_requestid=147558">http://www.intelligententerprise.com/010629/warehouse1_1.jhtml;jsessionid=Y5BJ04CASJZKMQSNDLOSKHSCJUNN2JVN?_requestid=147558</a></div>
<div>  </div>
<div>OLAP: How to Index Star/Snowflake Schema Data: <br /><a href="http://support.microsoft.com/kb/199132">http://support.microsoft.com/kb/199132</a></div>
<div> </div>
<div> </div>
</div>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/jesseorosz.wordpress.com/15/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/jesseorosz.wordpress.com/15/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jesseorosz.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jesseorosz.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jesseorosz.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jesseorosz.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/jesseorosz.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/jesseorosz.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/jesseorosz.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/jesseorosz.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jesseorosz.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jesseorosz.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jesseorosz.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jesseorosz.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jesseorosz.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jesseorosz.wordpress.com/15/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jesseorosz.wordpress.com&amp;blog=16457704&amp;post=15&amp;subd=jesseorosz&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://jesseorosz.wordpress.com/2008/05/28/star-vs-snowflake-in-olap-land/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/cd77cb11127fc7477cc7e2e3d09b2791?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">jesperss</media:title>
		</media:content>
	</item>
	</channel>
</rss>
