<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-7908805765465935338</id><updated>2011-11-27T19:32:06.812-06:00</updated><category term='Analysis Services'/><category term='Microsoft'/><category term='OLAP'/><category term='research'/><category term='Star Schema'/><category term='BI'/><category term='SSAS'/><category term='Business Intelligence Development Studio'/><category term='Modeling'/><category term='VIrtualization'/><category term='Windows'/><category term='Business Intelligence'/><category term='MDX'/><category term='Web'/><category term='friends'/><title type='text'>Information in Context</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://tomhuguelet.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7908805765465935338/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://tomhuguelet.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Tom Huguelet</name><uri>http://www.blogger.com/profile/11160345397812045735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://2.bp.blogspot.com/_hgc6jdr_cb0/ShMjnmn6uFI/AAAAAAAAAAM/RqK7uUUCwtc/S220/tom+huguelet.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>22</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7908805765465935338.post-2359584009297871946</id><published>2010-07-23T23:27:00.000-05:00</published><updated>2010-07-23T23:27:14.255-05:00</updated><title type='text'>self-exemplify - Dr. Edward Tufte's seminar in Chicago July 23</title><content type='html'>&lt;div style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; font: normal normal normal 13px/19px Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.6em; padding-left: 0.6em; padding-right: 0.6em; padding-top: 0.6em;"&gt;In his book,&amp;nbsp;&lt;a href="http://www.amazon.com/gp/product/0961392142?ie=UTF8&amp;amp;tag=inforinconte-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=390957&amp;amp;creativeASIN=0961392142" mce_href="http://www.amazon.com/gp/product/0961392142?ie=UTF8&amp;amp;tag=inforinconte-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=390957&amp;amp;creativeASIN=0961392142"&gt;The Visual Display of Quantitative Information, 2nd edition&lt;/a&gt;&lt;img alt="" border="0" height="1" mce_src="http://www.assoc-amazon.com/e/ir?t=inforinconte-20&amp;amp;l=as2&amp;amp;o=1&amp;amp;a=0961392142" mce_style="border: none !important; margin: 0px !important;" src="http://www.assoc-amazon.com/e/ir?t=inforinconte-20&amp;amp;l=as2&amp;amp;o=1&amp;amp;a=0961392142" style="border-bottom-style: none !important; border-bottom-width: 0px; border-color: initial !important; border-color: initial; border-left-style: none !important; border-left-width: 0px; border-right-style: none !important; border-right-width: 0px; border-style: initial; border-top-style: none !important; border-top-width: 0px; border-width: initial !important; margin-bottom: 0px !important; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important;" width="1" /&gt;, Edward Tufte describes how he wanted to make the book, self-exemplifying. In other words, the book should use the techniques about the effective display of information to describe techniques about the effective display of information; it should be an example of itself.&amp;nbsp;&lt;a href="http://www.edwardtufte.com/tufte/courses" mce_href="http://www.edwardtufte.com/tufte/courses"&gt;Dr. Tufte's Seminar&lt;/a&gt;&amp;nbsp;today in Chicago did the same thing.&lt;br /&gt;&lt;br /&gt;I often find myself experiencing a great sense of relief and identification when encountering a thought leader who has wrestled with the same issues as I have in my work, and aspired towards some effective execution, whether this is with technology issues or softer issues like managing complexity, personal productivity, etc. I felt the same sense of relief in Dr. Tufte's extremely concise and coherent exposition on effective information display.&lt;br /&gt;&lt;br /&gt;This was a fairly dense 5 hours. I found myself taking some notes, but for the most part trying to pay attention and absorb what was presented. I was noticing that Dr. Tufte was not shy about opinions and frequently would illustrate points with succinct and boldly-worded statements about best practices (or lack thereof).&lt;br /&gt;&lt;br /&gt;I am reproducing some of these statements and impressions here, as hastily noted. If you do anything with the presentation of information (whether that be PTA newsletters or CPM Dashboards), please do yourself a favor and participate in these wonder learnings if you have the chance.&lt;br /&gt;&lt;br /&gt;Here are Dr. Tufte's ideas and statements in roughly chronological order. Also, it's possible I have paraphrased him inaccurately. I'll claim any mistakes as the heat of the moment. Dr. Tufte is definitely more lucid than my note-taking ability. This is intentionally left in "brain-dump" format. I think many of these statements are&amp;nbsp;provocative&amp;nbsp;on their own, but I hope these might intrigue anyone reading to either seek out Dr. Tufte's books (&lt;a href="http://www.amazon.com/gp/product/0961392177?ie=UTF8&amp;amp;tag=inforinconte-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=390957&amp;amp;creativeASIN=0961392177" mce_href="http://www.amazon.com/gp/product/0961392177?ie=UTF8&amp;amp;tag=inforinconte-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=390957&amp;amp;creativeASIN=0961392177"&gt;Beautiful Evidence&lt;/a&gt;&lt;img alt="" border="0" height="1" mce_src="http://www.assoc-amazon.com/e/ir?t=inforinconte-20&amp;amp;l=as2&amp;amp;o=1&amp;amp;a=0961392177" mce_style="border: none !important; margin: 0px !important;" src="http://www.assoc-amazon.com/e/ir?t=inforinconte-20&amp;amp;l=as2&amp;amp;o=1&amp;amp;a=0961392177" style="border-bottom-style: none !important; border-bottom-width: 0px; border-color: initial !important; border-color: initial; border-left-style: none !important; border-left-width: 0px; border-right-style: none !important; border-right-width: 0px; border-style: initial; border-top-style: none !important; border-top-width: 0px; border-width: initial !important; margin-bottom: 0px !important; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important;" width="1" /&gt;,&amp;nbsp;&lt;a href="http://www.amazon.com/gp/product/0961392126?ie=UTF8&amp;amp;tag=inforinconte-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=390957&amp;amp;creativeASIN=0961392126" mce_href="http://www.amazon.com/gp/product/0961392126?ie=UTF8&amp;amp;tag=inforinconte-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=390957&amp;amp;creativeASIN=0961392126"&gt;Visual Explanations: Images and Quantities, Evidence and Narrative&lt;/a&gt;&lt;img alt="" border="0" height="1" mce_src="http://www.assoc-amazon.com/e/ir?t=inforinconte-20&amp;amp;l=as2&amp;amp;o=1&amp;amp;a=0961392126" mce_style="border: none !important; margin: 0px !important;" src="http://www.assoc-amazon.com/e/ir?t=inforinconte-20&amp;amp;l=as2&amp;amp;o=1&amp;amp;a=0961392126" style="border-bottom-style: none !important; border-bottom-width: 0px; border-color: initial !important; border-color: initial; border-left-style: none !important; border-left-width: 0px; border-right-style: none !important; border-right-width: 0px; border-style: initial; border-top-style: none !important; border-top-width: 0px; border-width: initial !important; margin-bottom: 0px !important; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important;" width="1" /&gt;,&amp;nbsp;&lt;a href="http://www.amazon.com/gp/product/0961392118?ie=UTF8&amp;amp;tag=inforinconte-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=390957&amp;amp;creativeASIN=0961392118" mce_href="http://www.amazon.com/gp/product/0961392118?ie=UTF8&amp;amp;tag=inforinconte-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=390957&amp;amp;creativeASIN=0961392118"&gt;Envisioning Information&lt;/a&gt;,&amp;nbsp;&lt;a href="http://www.amazon.com/gp/product/0961392142?ie=UTF8&amp;amp;tag=inforinconte-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=390957&amp;amp;creativeASIN=0961392142" mce_href="http://www.amazon.com/gp/product/0961392142?ie=UTF8&amp;amp;tag=inforinconte-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=390957&amp;amp;creativeASIN=0961392142"&gt;The Visual Display of Quantitative Information, 2nd edition&lt;/a&gt;&lt;img alt="" border="0" height="1" mce_src="http://www.assoc-amazon.com/e/ir?t=inforinconte-20&amp;amp;l=as2&amp;amp;o=1&amp;amp;a=0961392142" mce_style="border: none !important; margin: 0px !important;" src="http://www.assoc-amazon.com/e/ir?t=inforinconte-20&amp;amp;l=as2&amp;amp;o=1&amp;amp;a=0961392142" style="border-bottom-style: none !important; border-bottom-width: 0px; border-color: initial !important; border-color: initial; border-left-style: none !important; border-left-width: 0px; border-right-style: none !important; border-right-width: 0px; border-style: initial; border-top-style: none !important; border-top-width: 0px; border-width: initial !important; margin-bottom: 0px !important; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important;" width="1" /&gt;) and/or his&amp;nbsp;&lt;a href="http://www.edwardtufte.com/tufte/courses" mce_href="http://www.edwardtufte.com/tufte/courses"&gt;seminar&lt;/a&gt;.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Presenting (to others) is a moral act.&lt;/li&gt;&lt;li&gt;Examination of the&amp;nbsp;&lt;a href="http://www.edwardtufte.com/bboard/q-and-a-fetch-msg?msg_id=00005y&amp;amp;topic_id=1" mce_href="http://www.edwardtufte.com/bboard/q-and-a-fetch-msg?msg_id=00005y&amp;amp;topic_id=1"&gt;Music Animation Machine&lt;/a&gt;. Especially how there is no legend or guidelines yet it's a very dense and intuitive presentation of information&lt;/li&gt;&lt;li&gt;Dr. Tufte used this as an example that refutes the idea of "information overload" and he cited several examples of dense presentation throughout the seminar (e.g. 800,000 data points on 2 sides of an 11x17 page)&lt;ul&gt;&lt;li&gt;"There's no such thing as information overload, just lousy design"&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;A worthwhile diagram deserves the same amount of intention as the text that would impart the equivalent amount of information&lt;/li&gt;&lt;li&gt;Graphics are frequently used to depict causality&lt;ul&gt;&lt;li&gt;Policy and prevention missions both need to analyze causality&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Every linking line should be annotated&lt;/li&gt;&lt;li&gt;The map is the gold standard for effective presentation&lt;/li&gt;&lt;li&gt;"Chart junk" should always be replaced by information&lt;/li&gt;&lt;li&gt;In a graphic presentation, are you using the results of evidence, or "evidence selection" i.e. are you cherry-picking favorable data?&lt;/li&gt;&lt;li&gt;One should assume that presenters have similar motivations as the&amp;nbsp;audience&amp;nbsp;(and vice-versa)&lt;/li&gt;&lt;li&gt;You want an open mind, but not an empty head.&lt;/li&gt;&lt;li&gt;Maximize content reasoning time; minimize content interpreting time.&lt;/li&gt;&lt;li&gt;Paper has 10 times the resolution as a computer display. Paper has 100 times the resolution of projected slides&lt;/li&gt;&lt;li&gt;Authoritarian presenters tend to distrust their audience. This creates the tendency to stint information. (3 points per slide - sound familiar?)&lt;/li&gt;&lt;li&gt;Rather than "know your audience", "know your content". Respect your audience instead.&lt;/li&gt;&lt;li&gt;Do whatever it takes to impart the content. e.g. Sock Puppets, real objects, physical models. Don't be constrained by convention&lt;/li&gt;&lt;li&gt;Every time you can get a real object in a presentation, do so.&lt;/li&gt;&lt;li&gt;If possible, see how data is originally collected.&lt;ul&gt;&lt;li&gt;Example of water being collected from the cleanest part of the river in a pollution impact study&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;1 + 1 = 3 - describes the phenomenon that 2 graphic elements create 3 effects - the effect of each, and the effect of the&amp;nbsp;juxtaposition&amp;nbsp;of the 2 objects&lt;/li&gt;&lt;li&gt;Local Optimization = Global Pessimization&lt;/li&gt;&lt;li&gt;The goal is to zero out the interface&lt;/li&gt;&lt;li&gt;Omit grids. Good typography supplies enough guidelines.&lt;/li&gt;&lt;li&gt;Tufte then went through 8 fundamental principles which are discussed in his book,&amp;nbsp;&lt;a href="http://www.amazon.com/gp/product/0961392177?ie=UTF8&amp;amp;tag=inforinconte-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=390957&amp;amp;creativeASIN=0961392177" mce_href="http://www.amazon.com/gp/product/0961392177?ie=UTF8&amp;amp;tag=inforinconte-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=390957&amp;amp;creativeASIN=0961392177"&gt;Beautiful Evidence&lt;/a&gt;&lt;img alt="" border="0" height="1" mce_src="http://www.assoc-amazon.com/e/ir?t=inforinconte-20&amp;amp;l=as2&amp;amp;o=1&amp;amp;a=0961392177" mce_style="border: none !important; margin: 0px !important;" src="http://www.assoc-amazon.com/e/ir?t=inforinconte-20&amp;amp;l=as2&amp;amp;o=1&amp;amp;a=0961392177" style="border-bottom-style: none !important; border-bottom-width: 0px; border-color: initial !important; border-color: initial; border-left-style: none !important; border-left-width: 0px; border-right-style: none !important; border-right-width: 0px; border-style: initial; border-top-style: none !important; border-top-width: 0px; border-width: initial !important; margin-bottom: 0px !important; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important;" width="1" /&gt;&lt;ol&gt;&lt;li&gt;show comparisons - "Compared to what?"&lt;/li&gt;&lt;li&gt;Illustrate causality&lt;/li&gt;&lt;li&gt;show multivariate data. Translation: enrich your data with dimensional attributes&lt;/li&gt;&lt;li&gt;integrate all content. There shouldn't be different modes to view the comprehensive presentation&lt;/li&gt;&lt;li&gt;Document all sources, scales, and any missing data. It enables the credibility of your presentation.&lt;/li&gt;&lt;li&gt;Content counts most of all. Over presentations, style, formatting&lt;/li&gt;&lt;li&gt;Locate imporant comparisons in a common space. Use small multipliers.&lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;&lt;li&gt;The point of information display is to assist thinking.&lt;ul&gt;&lt;li&gt;Most design can be placed in its decade because it is based on fashion. This is not necessary a complete evil&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Design is based on human factors.&lt;/li&gt;&lt;li&gt;After 2D drawing is just that: 2D. &amp;nbsp;Perspective drawing is something like 2.33 dimensions&lt;/li&gt;&lt;li&gt;Navigation instruction is a 4D presentation:&lt;ul&gt;&lt;li&gt;3 physical dimensions&lt;/li&gt;&lt;li&gt;and time (the 4th dimension)&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Information resolution = the ability to communicate more bits per area&amp;nbsp;unit &amp;nbsp;and/or per time unit&lt;/li&gt;&lt;li&gt;Galileo's telescope was the first increase of information resolution beyond the capabilities of the human eye&lt;/li&gt;&lt;li&gt;Since 1610, information resolution has increased 10 million to 100 million-fold&lt;/li&gt;&lt;li&gt;Make displays worthy of the the human eye/brain system&lt;ul&gt;&lt;li&gt;The human eye/brain system was measured to a capacity of 10 megapixels per second per optic nerve&lt;/li&gt;&lt;li&gt;Tufte asked, "Why are we looking at these moronic displays? (PowerPoint)&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Label directly; don't use legends&lt;/li&gt;&lt;li&gt;How do you solve the flat-land problem (i.e. displaying 3 dimensional artifacts on a 2-dimensional surface [screen, paper, iphone])&lt;ul&gt;&lt;li&gt;Use a model&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;The principles of analytic design come from the principles of analytic thinking&lt;/li&gt;&lt;li&gt;Quoting Steve Jobs (?), "Real artists ship"&lt;/li&gt;&lt;li&gt;Interface design&lt;ul&gt;&lt;li&gt;(Quoting someone, not sure who - Alan Cooper) "No matter how beautiful your interface is, it would be better if there were less of it."&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Forming your summary:&lt;ul&gt;&lt;li&gt;State what the problem is&lt;/li&gt;&lt;li&gt;State who cares&lt;/li&gt;&lt;li&gt;State the solution&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Other key&amp;nbsp;pieces&amp;nbsp;of advice&lt;ul&gt;&lt;li&gt;Show up early&lt;/li&gt;&lt;li&gt;Finish early (Which Tufte did)&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7908805765465935338-2359584009297871946?l=tomhuguelet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tomhuguelet.blogspot.com/feeds/2359584009297871946/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tomhuguelet.blogspot.com/2010/07/self-exemplify-dr-edward-tuftes-seminar.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7908805765465935338/posts/default/2359584009297871946'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7908805765465935338/posts/default/2359584009297871946'/><link rel='alternate' type='text/html' href='http://tomhuguelet.blogspot.com/2010/07/self-exemplify-dr-edward-tuftes-seminar.html' title='self-exemplify - Dr. Edward Tufte&apos;s seminar in Chicago July 23'/><author><name>Tom Huguelet</name><uri>http://www.blogger.com/profile/11160345397812045735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://2.bp.blogspot.com/_hgc6jdr_cb0/ShMjnmn6uFI/AAAAAAAAAAM/RqK7uUUCwtc/S220/tom+huguelet.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7908805765465935338.post-6014830179996450678</id><published>2010-05-28T07:28:00.000-05:00</published><updated>2010-05-28T07:28:18.775-05:00</updated><title type='text'>Inexpensive iPad holder - less than $5</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;I just needed a temporary solution to hold my iPad at my desk. It's worked out pretty well. Thought I'd post the tip:&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_hgc6jdr_cb0/S_-0ZRLJjNI/AAAAAAAAAB8/JLhH-mERneM/s1600/IMG_0282.JPG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_hgc6jdr_cb0/S_-0ZRLJjNI/AAAAAAAAAB8/JLhH-mERneM/s320/IMG_0282.JPG" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;It's an&amp;nbsp;Office Depot Plate Holder, Clear &lt;/span&gt;&lt;a href="http://www.officedepot.com/a/products/544474/Office-Depot-Plate-Holder-Clear/"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;Item # 544474&lt;/span&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7908805765465935338-6014830179996450678?l=tomhuguelet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tomhuguelet.blogspot.com/feeds/6014830179996450678/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tomhuguelet.blogspot.com/2010/05/inexpensive-ipad-holder-less-than-5.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7908805765465935338/posts/default/6014830179996450678'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7908805765465935338/posts/default/6014830179996450678'/><link rel='alternate' type='text/html' href='http://tomhuguelet.blogspot.com/2010/05/inexpensive-ipad-holder-less-than-5.html' title='Inexpensive iPad holder - less than $5'/><author><name>Tom Huguelet</name><uri>http://www.blogger.com/profile/11160345397812045735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://2.bp.blogspot.com/_hgc6jdr_cb0/ShMjnmn6uFI/AAAAAAAAAAM/RqK7uUUCwtc/S220/tom+huguelet.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_hgc6jdr_cb0/S_-0ZRLJjNI/AAAAAAAAAB8/JLhH-mERneM/s72-c/IMG_0282.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7908805765465935338.post-5183512565929775055</id><published>2010-05-27T08:39:00.001-05:00</published><updated>2010-05-27T08:41:55.686-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VIrtualization'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows'/><title type='text'>Resetting "Windows XP Mode" to initial settings</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;Under Windows 7 64-bit ultimate edition, I've had the need to reset my "Windows XP Mode" to initial settings several times over the past few days. Initially I did this because as I used the XP virtual environment, the VHD file grew to around 10 Gig. Not huge, but I wasn't using it for anything except to run a client's 32-bit only VPN software, so it was wasting a fair amount of space. My main machine has a 256 Gig SSD for the main drive, so I am conservative with space consumption.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;The second reason was that I was helping my&amp;nbsp;fiancée&amp;nbsp;(a high-school teacher) obtain some (public domain) video for use in her classroom. Unfortunately this video seemed only to be available in a heavily watermarked version on YouTube (ugh) or in a Real Media stream (double-ugh). So I wound up needing to use a mixture of open source and very old software to convert this video to a format that was playable in the classroom. As a rule I don't install software like that on my production machine - a virtual environment is a great "sandbox" for momentary needs like this one. After I converted this video, I no longer needed all these (rather buggy) utilities, so I wanted to start clean.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;I didn't see much on the web on how to reset the "Windows XP Mode" to initial settings. I tried this experiment, which worked pretty well.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;To reset Windows XP to factory new condition:&lt;/span&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;Right click the vmcx file. Select Settings. (On my machine the file is called&amp;nbsp;&lt;b&gt;Windows XP Mode.vmcx&lt;/b&gt; and is located in&amp;nbsp;&lt;b&gt;C:\Users\Tom\Virtual Machines&lt;/b&gt;)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;Note the location of Hard Disk 1 &lt;b&gt;(&lt;/b&gt;On my machine this location is called&amp;nbsp;&lt;b&gt;C:\Users\Tom\AppData\Local\Microsoft\Windows Virtual PC\Virtual Machines\Windows XP Mode.vhd&lt;/b&gt;)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;Exit the Settings Dialog&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;Delete the files associated with your "Windows XP Mode" environment. On my machine, these are located in&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;b&gt;C:\Users\Tom\AppData\Local\Microsoft\Windows Virtual PC\Virtual Machines\Windows XP Mode.vhd&lt;/b&gt; and are called&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;ol&gt;&lt;li&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;Windows XP Mode.vhd&lt;/span&gt; &lt;/b&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;Windows XP Mode.vmc&lt;/span&gt; &lt;/b&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;Windows XP Mode.vmc.vpcbackup&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;Windows XP Mode.vsv&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;&lt;/ol&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;Now, find the original Start Menu shortcut for &lt;b&gt;Windows XP Mode&lt;/b&gt;. As long as you've left the Parent Disk in place, the system will prompt you to recreate a new environment:&lt;/span&gt;&lt;/li&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_hgc6jdr_cb0/S_5t5ML65JI/AAAAAAAAAB0/n6r_Y9mCo8Y/s1600/Windows+XP+Mode+01.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_hgc6jdr_cb0/S_5t5ML65JI/AAAAAAAAAB0/n6r_Y9mCo8Y/s320/Windows+XP+Mode+01.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/ol&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;voilà! - New XP environment (after a few other dialogs and a few minutes building)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;u&gt;Standard cautionary notes:&amp;nbsp;&lt;/u&gt;&lt;/span&gt;&lt;br /&gt;&lt;ol&gt;&lt;/ol&gt;&lt;div style="text-align: center;"&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;I haven't researched whether this is the "proper" way to do this. But I've done this multiple times on 2 different machines and it takes less than 10 minutes to reset, install anti-virus, and reinstall VPN software&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;Obviously when I suggest you delete files on your system, I am assuming you know the implications of this and have everything backed up or have determined that you no longer need anything from the files you are deleting&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7908805765465935338-5183512565929775055?l=tomhuguelet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tomhuguelet.blogspot.com/feeds/5183512565929775055/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tomhuguelet.blogspot.com/2010/05/resetting-windows-xp-mode-to-initial.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7908805765465935338/posts/default/5183512565929775055'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7908805765465935338/posts/default/5183512565929775055'/><link rel='alternate' type='text/html' href='http://tomhuguelet.blogspot.com/2010/05/resetting-windows-xp-mode-to-initial.html' title='Resetting &quot;Windows XP Mode&quot; to initial settings'/><author><name>Tom Huguelet</name><uri>http://www.blogger.com/profile/11160345397812045735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://2.bp.blogspot.com/_hgc6jdr_cb0/ShMjnmn6uFI/AAAAAAAAAAM/RqK7uUUCwtc/S220/tom+huguelet.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_hgc6jdr_cb0/S_5t5ML65JI/AAAAAAAAAB0/n6r_Y9mCo8Y/s72-c/Windows+XP+Mode+01.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7908805765465935338.post-6089460232670064635</id><published>2010-05-25T07:39:00.000-05:00</published><updated>2010-05-25T07:39:59.223-05:00</updated><title type='text'>Burn the Ships</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: Arial; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman'; font-size: medium;"&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; font: normal normal normal 13px/19px Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.6em; padding-left: 0.6em; padding-right: 0.6em; padding-top: 0.6em;"&gt;Although it's probably an apocryphal story, legend has it that Cortez&amp;nbsp;instructed&amp;nbsp;his men to "Burn the Ships" upon encountering the New World. This has become (in my parlance, anyway) a catchphrase for being irrevocably committed to a particular course of action.&lt;br /&gt;&lt;br /&gt;In that spirit, yesterday I blew away v1 of my website and started up&amp;nbsp;&lt;a href="http://contextq.com/" mce_href="http://contextq.com/"&gt;this version&lt;/a&gt;. This will remain a work in progress for a while, since other client commitments will have me quite busy through June.&lt;br /&gt;&lt;br /&gt;Anyone using WordPress who has themes or plugins that they love, please leave a comment.&lt;/div&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7908805765465935338-6089460232670064635?l=tomhuguelet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tomhuguelet.blogspot.com/feeds/6089460232670064635/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tomhuguelet.blogspot.com/2010/05/burn-ships.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7908805765465935338/posts/default/6089460232670064635'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7908805765465935338/posts/default/6089460232670064635'/><link rel='alternate' type='text/html' href='http://tomhuguelet.blogspot.com/2010/05/burn-ships.html' title='Burn the Ships'/><author><name>Tom Huguelet</name><uri>http://www.blogger.com/profile/11160345397812045735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://2.bp.blogspot.com/_hgc6jdr_cb0/ShMjnmn6uFI/AAAAAAAAAAM/RqK7uUUCwtc/S220/tom+huguelet.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7908805765465935338.post-6118580005103004619</id><published>2010-04-14T12:51:00.000-05:00</published><updated>2010-04-14T12:51:50.594-05:00</updated><title type='text'>Time (Not Date) Dimension Table SQL code</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;I am seeing more call for Time Dimensions. By that I mean Time-of-Day Dimensions. So now I have to retrain myself to call Date Dimensions "Date" and Time Dimensions "Time".&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;As a follow up to &lt;/span&gt;&lt;a href="http://tomhuguelet.blogspot.com/2010/01/example-code-to-build-and-populate-date.html"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;this post&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;, here's some DDL and a quick routine to generate a time of day table. The resolution is to the second, which so far has proved sufficient for my clients' purposes.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;Enjoy&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New'; font-size: x-small;"&gt;&lt;br /&gt;&lt;span style="color: blue;"&gt;SET&lt;/span&gt;&amp;nbsp;&lt;span style="color: maroon;"&gt;nocount&lt;/span&gt;&amp;nbsp;&lt;span style="color: blue;"&gt;ON&lt;/span&gt;&lt;br /&gt;&lt;span style="color: green;"&gt;&lt;i&gt;/*&lt;br /&gt;CREATE&amp;nbsp;TABLE&amp;nbsp;[dbo].[dim_Time](&lt;br /&gt;&amp;nbsp;&amp;nbsp;[TimeId]&amp;nbsp;[int]&amp;nbsp;NOT&amp;nbsp;NULL,&lt;br /&gt;&amp;nbsp;&amp;nbsp;[Time]&amp;nbsp;[time](7)&amp;nbsp;NULL,&lt;br /&gt;&amp;nbsp;&amp;nbsp;[Hours]&amp;nbsp;[tinyint]&amp;nbsp;NULL,&lt;br /&gt;&amp;nbsp;&amp;nbsp;[Minutes]&amp;nbsp;[tinyint]&amp;nbsp;NULL,&lt;br /&gt;&amp;nbsp;&amp;nbsp;[Seconds]&amp;nbsp;[tinyint]&amp;nbsp;NULL,&lt;br /&gt;&amp;nbsp;CONSTRAINT&amp;nbsp;[PK_dim_Time]&amp;nbsp;PRIMARY&amp;nbsp;KEY&amp;nbsp;CLUSTERED&lt;br /&gt;(&lt;br /&gt;&amp;nbsp;&amp;nbsp;[TimeId]&amp;nbsp;ASC&lt;br /&gt;)WITH&amp;nbsp;(PAD_INDEX&amp;nbsp;&amp;nbsp;=&amp;nbsp;OFF,&amp;nbsp;STATISTICS_NORECOMPUTE&amp;nbsp;&amp;nbsp;=&amp;nbsp;OFF,&amp;nbsp;IGNORE_DUP_KEY&amp;nbsp;=&amp;nbsp;OFF,&amp;nbsp;ALLOW_ROW_LOCKS&amp;nbsp;&amp;nbsp;=&amp;nbsp;ON,&amp;nbsp;ALLOW_PAGE_LOCKS&amp;nbsp;&amp;nbsp;=&amp;nbsp;ON)&amp;nbsp;ON&amp;nbsp;[PRIMARY]&lt;br /&gt;)&amp;nbsp;ON&amp;nbsp;[PRIMARY]&lt;br /&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New'; font-size: x-small;"&gt;&lt;span style="color: green;"&gt;&lt;i&gt;TRUNCATE&amp;nbsp;TABLE&amp;nbsp;[dbo].[dim_Time]&lt;br /&gt;GO&lt;br /&gt;SELECT&amp;nbsp;*&amp;nbsp;FROM&amp;nbsp;dbo.dim_time&lt;br /&gt;*/&lt;/i&gt;&lt;/span&gt;&lt;i&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: blue;"&gt;DECLARE&lt;/span&gt;&amp;nbsp;&lt;span style="color: #8000ff;"&gt;@second1&lt;/span&gt;&amp;nbsp;&lt;span style="color: black;"&gt;&lt;i&gt;INT&lt;/i&gt;&lt;/span&gt;&lt;i&gt;&lt;/i&gt;&amp;nbsp;&lt;span style="color: silver;"&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style="color: black;"&gt;0&lt;/span&gt;&lt;br /&gt;&lt;span style="color: blue;"&gt;DECLARE&lt;/span&gt;&amp;nbsp;&lt;span style="color: #8000ff;"&gt;@currtime&lt;/span&gt;&amp;nbsp;&lt;span style="color: black;"&gt;&lt;i&gt;TIME&lt;/i&gt;&lt;/span&gt;&lt;i&gt;&lt;/i&gt;&lt;br /&gt;&lt;span style="color: blue;"&gt;DECLARE&lt;/span&gt;&amp;nbsp;&lt;span style="color: #8000ff;"&gt;@msg&lt;/span&gt;&amp;nbsp;&lt;span style="color: black;"&gt;&lt;i&gt;VARCHAR&lt;/i&gt;&lt;/span&gt;&lt;i&gt;&lt;/i&gt;&lt;span style="color: maroon;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;30&lt;/span&gt;&lt;span style="color: maroon;"&gt;)&lt;/span&gt;&amp;nbsp;&lt;span style="color: silver;"&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style="color: red;"&gt;''&lt;/span&gt;&lt;br /&gt;&lt;span style="color: blue;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New'; font-size: small;"&gt;&lt;span style="color: blue;"&gt;WHILE&lt;/span&gt;&amp;nbsp;&lt;span style="color: #8000ff;"&gt;@second1&lt;/span&gt;&amp;nbsp;&lt;span style="color: silver;"&gt;&amp;lt;&lt;/span&gt;&amp;nbsp;&lt;span style="color: black;"&gt;86400&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New'; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;BEGIN&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span style="color: blue;"&gt;SELECT&lt;/span&gt;&amp;nbsp;&lt;span style="color: #8000ff;"&gt;@second1&lt;/span&gt;&amp;nbsp;&lt;span style="color: silver;"&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style="color: #8000ff;"&gt;@second1&lt;/span&gt;&amp;nbsp;&lt;span style="color: silver;"&gt;+&lt;/span&gt;&amp;nbsp;&lt;span style="color: black;"&gt;1&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span style="color: blue;"&gt;SELECT&lt;/span&gt;&amp;nbsp;&lt;span style="color: #8000ff;"&gt;@currtime&lt;/span&gt;&amp;nbsp;&lt;span style="color: silver;"&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style="color: magenta;"&gt;&lt;i&gt;Dateadd&lt;/i&gt;&lt;/span&gt;&lt;i&gt;&lt;/i&gt;&lt;span style="color: maroon;"&gt;(&lt;/span&gt;&lt;span style="color: maroon;"&gt;ss&lt;/span&gt;&lt;span style="color: silver;"&gt;,&lt;/span&gt;&amp;nbsp;&lt;span style="color: #8000ff;"&gt;@second1&lt;/span&gt;&lt;span style="color: silver;"&gt;,&lt;/span&gt;&amp;nbsp;&lt;span style="color: red;"&gt;'00:00.00'&lt;/span&gt;&lt;span style="color: maroon;"&gt;)&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span style="color: green;"&gt;&lt;i&gt;--&amp;nbsp;&amp;nbsp;SELECT&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/i&gt;&lt;/span&gt;&lt;i&gt;&lt;/i&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span style="color: green;"&gt;&lt;i&gt;--DatePart(hh,&amp;nbsp;@currtime)&amp;nbsp;*&amp;nbsp;10000&amp;nbsp;+&amp;nbsp;&lt;/i&gt;&lt;/span&gt;&lt;i&gt;&lt;/i&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span style="color: green;"&gt;&lt;i&gt;--DatePart(mi,&amp;nbsp;@currtime)&amp;nbsp;*&amp;nbsp;100&amp;nbsp;+&lt;/i&gt;&lt;/span&gt;&lt;i&gt;&lt;/i&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span style="color: green;"&gt;&lt;i&gt;--DatePart(ss,&amp;nbsp;@currtime)&amp;nbsp;AS&amp;nbsp;TimeID&lt;/i&gt;&lt;/span&gt;&lt;i&gt;&lt;/i&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span style="color: green;"&gt;&lt;i&gt;--,&amp;nbsp;@currtime&amp;nbsp;AS&amp;nbsp;[Time]&lt;/i&gt;&lt;/span&gt;&lt;i&gt;&lt;/i&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span style="color: green;"&gt;&lt;i&gt;--,&amp;nbsp;DatePart(hh,&amp;nbsp;@currtime)&amp;nbsp;AS&amp;nbsp;[Hours]&lt;/i&gt;&lt;/span&gt;&lt;i&gt;&lt;/i&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span style="color: green;"&gt;&lt;i&gt;--,&amp;nbsp;DatePart(mi,&amp;nbsp;@currtime)&amp;nbsp;AS&amp;nbsp;[Minutes]&lt;/i&gt;&lt;/span&gt;&lt;i&gt;&lt;/i&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span style="color: green;"&gt;&lt;i&gt;--,&amp;nbsp;DatePart(ss,&amp;nbsp;@currtime)&amp;nbsp;AS&amp;nbsp;[Seconds]&lt;/i&gt;&lt;/span&gt;&lt;i&gt;&lt;/i&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span style="color: blue;"&gt;INSERT&lt;/span&gt;&amp;nbsp;&lt;span style="color: maroon;"&gt;dbo&lt;/span&gt;&lt;span style="color: silver;"&gt;.&lt;/span&gt;&lt;span style="color: maroon;"&gt;dim_time&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;span style="color: maroon;"&gt;(&lt;/span&gt;&lt;span style="color: maroon;"&gt;[TimeID]&lt;/span&gt;&lt;span style="color: silver;"&gt;,&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span style="color: maroon;"&gt;[Time]&lt;/span&gt;&lt;span style="color: silver;"&gt;,&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span style="color: maroon;"&gt;[Hours]&lt;/span&gt;&lt;span style="color: silver;"&gt;,&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span style="color: maroon;"&gt;[Minutes]&lt;/span&gt;&lt;span style="color: silver;"&gt;,&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span style="color: maroon;"&gt;[Seconds]&lt;/span&gt;&lt;span style="color: maroon;"&gt;)&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span style="color: blue;"&gt;VALUES&lt;/span&gt;&amp;nbsp;&lt;span style="color: maroon;"&gt;(&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span style="color: magenta;"&gt;&lt;i&gt;Datepart&lt;/i&gt;&lt;/span&gt;&lt;i&gt;&lt;/i&gt;&lt;span style="color: maroon;"&gt;(&lt;/span&gt;&lt;span style="color: maroon;"&gt;hh&lt;/span&gt;&lt;span style="color: silver;"&gt;,&lt;/span&gt;&amp;nbsp;&lt;span style="color: #8000ff;"&gt;@currtime&lt;/span&gt;&lt;span style="color: maroon;"&gt;)&lt;/span&gt;&amp;nbsp;&lt;span style="color: silver;"&gt;*&lt;/span&gt;&amp;nbsp;&lt;span style="color: black;"&gt;10000&lt;/span&gt;&amp;nbsp;&lt;span style="color: silver;"&gt;+&lt;/span&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New'; font-size: x-small;"&gt;&lt;span style="color: magenta;"&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="color: black; font-style: normal;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;Datepart&lt;/i&gt;&lt;/span&gt;&lt;i&gt;&lt;/i&gt;&lt;span style="color: maroon;"&gt;(&lt;/span&gt;&lt;span style="color: maroon;"&gt;mi&lt;/span&gt;&lt;span style="color: silver;"&gt;,&lt;/span&gt;&amp;nbsp;&lt;span style="color: #8000ff;"&gt;@currtime&lt;/span&gt;&lt;span style="color: maroon;"&gt;)&lt;/span&gt;&amp;nbsp;&lt;span style="color: silver;"&gt;*&lt;/span&gt;&amp;nbsp;&lt;span style="color: black;"&gt;100&lt;/span&gt;&amp;nbsp;&lt;span style="color: silver;"&gt;+&lt;/span&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New'; font-size: x-small;"&gt;&lt;span style="color: magenta;"&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="color: black; font-style: normal;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;Datepart&lt;/i&gt;&lt;/span&gt;&lt;i&gt;&lt;/i&gt;&lt;span style="color: maroon;"&gt;(&lt;/span&gt;&lt;span style="color: maroon;"&gt;ss&lt;/span&gt;&lt;span style="color: silver;"&gt;,&lt;/span&gt;&amp;nbsp;&lt;span style="color: #8000ff;"&gt;@currtime&lt;/span&gt;&lt;span style="color: maroon;"&gt;)&lt;/span&gt;&lt;span style="color: silver;"&gt;,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New'; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;span style="color: #8000ff;"&gt;@currtime&lt;/span&gt;&lt;span style="color: silver;"&gt;,&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;span style="color: magenta;"&gt;&lt;i&gt;Datepart&lt;/i&gt;&lt;/span&gt;&lt;i&gt;&lt;/i&gt;&lt;span style="color: maroon;"&gt;(&lt;/span&gt;&lt;span style="color: maroon;"&gt;hh&lt;/span&gt;&lt;span style="color: silver;"&gt;,&lt;/span&gt;&amp;nbsp;&lt;span style="color: #8000ff;"&gt;@currtime&lt;/span&gt;&lt;span style="color: maroon;"&gt;)&lt;/span&gt;&lt;span style="color: silver;"&gt;,&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;span style="color: magenta;"&gt;&lt;i&gt;Datepart&lt;/i&gt;&lt;/span&gt;&lt;i&gt;&lt;/i&gt;&lt;span style="color: maroon;"&gt;(&lt;/span&gt;&lt;span style="color: maroon;"&gt;mi&lt;/span&gt;&lt;span style="color: silver;"&gt;,&lt;/span&gt;&amp;nbsp;&lt;span style="color: #8000ff;"&gt;@currtime&lt;/span&gt;&lt;span style="color: maroon;"&gt;)&lt;/span&gt;&lt;span style="color: silver;"&gt;,&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;span style="color: magenta;"&gt;&lt;i&gt;Datepart&lt;/i&gt;&lt;/span&gt;&lt;i&gt;&lt;/i&gt;&lt;span style="color: maroon;"&gt;(&lt;/span&gt;&lt;span style="color: maroon;"&gt;ss&lt;/span&gt;&lt;span style="color: silver;"&gt;,&lt;/span&gt;&amp;nbsp;&lt;span style="color: #8000ff;"&gt;@currtime&lt;/span&gt;&lt;span style="color: maroon;"&gt;)&lt;/span&gt;&amp;nbsp;&lt;span style="color: maroon;"&gt;)&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span style="color: blue;"&gt;IF&lt;/span&gt;&amp;nbsp;&lt;span style="color: #8000ff;"&gt;@second1&lt;/span&gt;&amp;nbsp;&lt;span style="color: silver;"&gt;%&lt;/span&gt;&amp;nbsp;&lt;span style="color: black;"&gt;1000&lt;/span&gt;&amp;nbsp;&lt;span style="color: silver;"&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style="color: black;"&gt;0&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span style="color: blue;"&gt;BEGIN&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span style="color: blue;"&gt;SELECT&lt;/span&gt;&amp;nbsp;&lt;span style="color: #8000ff;"&gt;@msg&lt;/span&gt;&amp;nbsp;&lt;span style="color: silver;"&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style="color: red;"&gt;'Now&amp;nbsp;Processing&amp;nbsp;'&lt;/span&gt;&amp;nbsp;&lt;span style="color: silver;"&gt;+&lt;/span&gt;&amp;nbsp;&lt;span style="color: magenta;"&gt;&lt;i&gt;CAST&lt;/i&gt;&lt;/span&gt;&lt;i&gt;&lt;/i&gt;&lt;span style="color: maroon;"&gt;(&lt;/span&gt;&lt;span style="color: #8000ff;"&gt;@second1&lt;/span&gt;&amp;nbsp;&lt;span style="color: blue;"&gt;AS&lt;/span&gt;&amp;nbsp;&lt;span style="color: black;"&gt;&lt;i&gt;VARCHAR&lt;/i&gt;&lt;/span&gt;&lt;i&gt;&lt;/i&gt;&lt;span style="color: maroon;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;12&lt;/span&gt;&lt;span style="color: maroon;"&gt;)&lt;/span&gt;&lt;span style="color: maroon;"&gt;)&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span style="color: blue;"&gt;PRINT&lt;/span&gt;&amp;nbsp;&lt;span style="color: #8000ff;"&gt;@msg&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span style="color: blue;"&gt;END&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;END&lt;/span&gt;&amp;nbsp;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7908805765465935338-6118580005103004619?l=tomhuguelet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tomhuguelet.blogspot.com/feeds/6118580005103004619/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tomhuguelet.blogspot.com/2010/04/time-not-date-dimension-table-sql-code.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7908805765465935338/posts/default/6118580005103004619'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7908805765465935338/posts/default/6118580005103004619'/><link rel='alternate' type='text/html' href='http://tomhuguelet.blogspot.com/2010/04/time-not-date-dimension-table-sql-code.html' title='Time (Not Date) Dimension Table SQL code'/><author><name>Tom Huguelet</name><uri>http://www.blogger.com/profile/11160345397812045735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://2.bp.blogspot.com/_hgc6jdr_cb0/ShMjnmn6uFI/AAAAAAAAAAM/RqK7uUUCwtc/S220/tom+huguelet.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7908805765465935338.post-1987367291408012786</id><published>2010-04-04T14:40:00.000-05:00</published><updated>2010-04-04T14:40:40.629-05:00</updated><title type='text'>Adventures with Virtualization</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;Those of us needing to run BI software in virtual environments are well familiar with the challenges of getting things running smoothly, especially if you are using a laptop as your lab or demo environment. We have a new set of challenges with Windows 7, and with SharePoint 2010.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;Challenge #1 -&amp;nbsp;SharePoint 2010 requires 64 bit OS, and the only MS virtualization software that allows for 64-bit is Hyper-V.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;Only problem with running Hyper-V is that &lt;/span&gt;&lt;a href="http://blogs.msdn.com/virtual_pc_guy/archive/2008/02/27/hyper-v-and-power-management.aspx"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="color: black;"&gt;you cannot sleep a machine with Hyper-V&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;, so if you’re using you laptop as a lab machine, you need to retain an OS that will run productivity apps and sleep. I set up my old laptop using the technique described &lt;/span&gt;&lt;a href="http://blogs.technet.com/keithcombs/archive/2009/05/22/dual-boot-from-vhd-using-windows-7-and-windows-server-2008-r2.aspx"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="color: black;"&gt;here&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;and it works well. I haven’t repeated the process for my new laptop yet, but I plan to.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;Challenge #2 - &lt;s&gt;Windows 7 Virtual PC requires Hardware Assisted Virtualization&lt;/s&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;Apparently this is no longer true, but I've wrestled with this one for months, in fact&amp;nbsp;in early March I returned a machine that didn’t support hardware assisted virtualization because I needed to run Windows 7 VPC. &lt;sigh&gt;.&amp;nbsp;MS just released a &lt;/sigh&gt;&lt;/span&gt;&lt;a href="http://blogs.msdn.com/virtual_pc_guy/archive/2010/03/18/windows-virtual-pc-no-hardware-virtualization-update-now-available-for-download.aspx"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="color: black;"&gt;version of Virtual PC that &lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="color: black;"&gt;does not&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="color: black;"&gt; require hardware assisted virtualization&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;Other tips that have worked well for me:&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;Use a fast disk - I was using a 7200 RPM eSATA external drive - faster than the 5400 disk commonly found on laptops. Now I am using an SSD drive- even better.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;Store the VHD in a compressed folder. This one struck me as counter-intuitive but anecdotally seems to work.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7908805765465935338-1987367291408012786?l=tomhuguelet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tomhuguelet.blogspot.com/feeds/1987367291408012786/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tomhuguelet.blogspot.com/2010/04/adventures-with-virtualization.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7908805765465935338/posts/default/1987367291408012786'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7908805765465935338/posts/default/1987367291408012786'/><link rel='alternate' type='text/html' href='http://tomhuguelet.blogspot.com/2010/04/adventures-with-virtualization.html' title='Adventures with Virtualization'/><author><name>Tom Huguelet</name><uri>http://www.blogger.com/profile/11160345397812045735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://2.bp.blogspot.com/_hgc6jdr_cb0/ShMjnmn6uFI/AAAAAAAAAAM/RqK7uUUCwtc/S220/tom+huguelet.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7908805765465935338.post-4178180813908942284</id><published>2010-03-22T12:33:00.001-05:00</published><updated>2010-03-22T12:45:45.673-05:00</updated><title type='text'>Brilliantly stupid MDX debugging technique</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;Whenever I do something really stupid, rather than keep it to myself, I prefer to blog about it for the entire world to see. Even better - I came up with a debugging technique to save myself from my own, er, stupidity.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;The scenario is this: I am developing some SQL Server Analysis Services Date Calculations in MDX for a client. They have three different Date Hierarchies, and wanted the standard, Previous Period, Period to Date, etc calculations. (For a very good explanation of the techniques involved, read &lt;/span&gt;&lt;a href="http://www.obs3.com/A%20Different%20Approach%20to%20Time%20Calculations%20in%20SSAS.pdf"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;this PDF first&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;, then study&amp;nbsp;&lt;/span&gt;&lt;a href="http://sqlblog.com/blogs/mosha/archive/2006/10/25/time-calculations-in-udm-parallel-period.aspx"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;this refinement from Mosha Pasumansky&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;. )&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;The MDX looks like this:&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Scope([Calculation].[Calculation].[Previous Period]); &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;([Calendar].[Calendar].[Date]) = ([Calculation].[Current Period], ParallelPeriod([Calendar].[Calendar].[Calendar Year],1)); &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;([Calendar].[Week].[Calendar Week].MEMBERS) = ([Calculation].[Current Period], [Calendar].[Week].Lag(52)); &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;([Calendar].[Calendar].[Calendar Month].MEMBERS) = ([Calculation].[Current Period], [Calendar].[Calendar Month].Lag(12)); &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;([Calendar].[Calendar].[Calendar Quarter].MEMBERS) = ([Calculation].[Current Period], [Calendar].[Calendar Quarter].Lag(4)); &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;([Calendar].[Calendar].[Calendar Year].MEMBERS) = ([Calculation].[Current Period], [Calendar].[Calendar Year].Lag(1)); &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;([Calendar].[NRF].[NRF Week].MEMBERS) = ([Calculation].[Current Period], ParallelPeriod([Calendar].[NRF].[NRF Week],1));&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;([Calendar].[NRF].[NRF Period].MEMBERS) = ([Calculation].[Current Period], [Calendar].[NRF Period].Lag(13));&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;([Calendar].[NRF].[NRF Quarter].MEMBERS) = ([Calculation].[Current Period], [Calendar].[NRF Quarter].Lag(5));&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;([Calendar].[NRF].[NRF Year].MEMBERS) = ([Calculation].[Current Period], ParallelPeriod([Calendar].[NRF].[NRF Year],1));&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;End Scope; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;Pretty standard stuff (sorry about the line wraps):&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;The symptom was that my Calendar Data Hierarchies were working fine, but the other two (Week and NRF [National Retail Federation]) were not. I worked my way through the data, and it all looked correct. Even a dynamic MDX query in SSMS worked fine. But it was wrong in the cube.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;When debugging MDX, I find that it pays to go in small increments and to do patently obvious things like setting Scoped statements to constant values, as in:&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Scope([Calculation].[Calculation].[Previous Period]); &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;([Calendar].[Calendar].[Date]) = 7777;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;End Scope; &amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman'; font-size: medium;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman'; font-size: medium;"&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;I had done this with this MDX code in an attempt to see what was going on, and it showed me that the scoped overwrites were working, but the&amp;nbsp;calculations&amp;nbsp;they were over-writing with were not. Then I got an idea to change how I was debugging:&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Scope([Calculation].[Calculation].[Previous Period]); &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;([Calendar].[Calendar].[Date]) = 1;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;([Calendar].[Week].[Calendar Week].MEMBERS) = 10;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;([Calendar].[Calendar].[Calendar Month].MEMBERS) = 100;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;([Calendar].[Calendar].[Calendar Quarter].MEMBERS) = 1000;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;([Calendar].[Calendar].[Calendar Year].MEMBERS) = 10000;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;([Calendar].[NRF].[NRF Week].MEMBERS) = .0001;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;([Calendar].[NRF].[NRF Period].MEMBERS) = .001;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;([Calendar].[NRF].[NRF Quarter].MEMBERS) = .01;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;([Calendar].[NRF].[NRF Year].MEMBERS) = .1;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;End Scope; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman';"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman';"&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;Essentially I am using a&amp;nbsp;bit-mask, one position for each level. I split the two different hierarchies at the decimal. This allowed me to see &lt;i&gt;&lt;b&gt;which&lt;/b&gt;&lt;/i&gt; scoped overwrite statement was in effect as I browsed the cube, and it led me to the solution.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;i&gt;It turns out I had defined my scoped overwrite assignment statements in reverse order. (i.e. from highest level (Year) to lowest (day)) &lt;/i&gt;Once I switched them so the highest level statement was evaluated last, everything worked as desired. This was a very stupid mistake, and once it was defined as part of the cube MDX script, was a difficult one to spot. Luckily the debugging technique described above made it pretty obvious what was happening.&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7908805765465935338-4178180813908942284?l=tomhuguelet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tomhuguelet.blogspot.com/feeds/4178180813908942284/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tomhuguelet.blogspot.com/2010/03/brilliantly-stupid-mdx-debugging.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7908805765465935338/posts/default/4178180813908942284'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7908805765465935338/posts/default/4178180813908942284'/><link rel='alternate' type='text/html' href='http://tomhuguelet.blogspot.com/2010/03/brilliantly-stupid-mdx-debugging.html' title='Brilliantly stupid MDX debugging technique'/><author><name>Tom Huguelet</name><uri>http://www.blogger.com/profile/11160345397812045735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://2.bp.blogspot.com/_hgc6jdr_cb0/ShMjnmn6uFI/AAAAAAAAAAM/RqK7uUUCwtc/S220/tom+huguelet.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7908805765465935338.post-5126970083304846565</id><published>2010-03-10T07:42:00.002-06:00</published><updated>2010-03-10T07:51:48.060-06:00</updated><title type='text'>Devils and Angels of BI Architecture</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;a href="http://4.bp.blogspot.com/_hgc6jdr_cb0/S5ecCoKMmrI/AAAAAAAAABk/yzuuBV0pyhY/s1600-h/devil+and+angel+2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_hgc6jdr_cb0/S5ecCoKMmrI/AAAAAAAAABk/yzuuBV0pyhY/s320/devil+and+angel+2.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;Devil: You don't need to set up a separate star schema database&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;Angel: Yes you do. We don't want to &amp;nbsp;interfere with the operational systems&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;Devil: It's sooo much work&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;Angel: We want to create a simplified schema to benefit our end users&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;Devil: Phooeh. ETL is BORING&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;Devil: Just query the source system directly&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;Devil: What could be better than &lt;b&gt;fresh data&lt;/b&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;Devil: C'mon the reports not &lt;b&gt;&lt;u&gt;&lt;i&gt;that&lt;/i&gt;&lt;/u&gt;&lt;/b&gt; big&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;Devil: Everybody's doing it&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;Intrepid BI Architect: sigh...&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: center;"&gt;&lt;b&gt;&lt;u&gt;Case in point:&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: center;"&gt;&amp;nbsp;This is from an actual email exchange. Names have been changed to protect the innocent.&lt;br /&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: center;"&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: center;"&gt;&lt;div style="text-align: left;"&gt;&lt;div&gt;&lt;div class="Section1"&gt;&lt;div class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;div id="divRpF510239" style="direction: ltr;"&gt;&lt;hr tabindex="-1" /&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;div id="divRpF876798" style="direction: ltr;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;From:&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&amp;nbsp;Brave and True BI Developer&lt;br /&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Sent:&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; Friday, March  05, 2010 9:33 AM&lt;br /&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;To:&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; BI Technical Staff&lt;br /&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Subject:&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; SSRS Not  Responding&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;div&gt;&lt;div&gt;&lt;div class="Section1"&gt;&lt;div class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Well, this is  a new one.&amp;nbsp; I’m on-site at [Dunder-Mifflin] today to do a quick fix on a report and the SSRS  instance seems to be refusing to actually render a report.&amp;nbsp; I click on a report  that’s been untouched for months with an ultra simple SELECT behind it and the  browser just spins with the “Reporting being generated” message in the middle of  the browser.&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;div id="divRpF510239" style="direction: ltr;"&gt;&lt;hr tabindex="-1" /&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;From:&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&amp;nbsp;Brave and True BI Colleague&lt;br /&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Sent:&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; Friday,  March 05, 2010 9:34 AM&lt;br /&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;To:&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&amp;nbsp;BI Technical  Staff&lt;br /&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Subject:&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; RE: SSRS Not Responding&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;div&gt;&lt;div&gt;&lt;div class="WordSection1"&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: #1f497d;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Check  SQL Profiler as you run the report, verify that it is actually reaching the  database (with the correct user information, etc.)&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #1f497d;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;div id="divRpF271638" style="direction: ltr;"&gt;&lt;hr tabindex="-1" /&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;From:&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&amp;nbsp;Brave and True BI Developer&lt;br /&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Sent:&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; Friday, March  05, 2010 10:00 AM&lt;br /&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;To:&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&amp;nbsp;BI Technical  Staff&lt;br /&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Subject:&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; RE: SSRS Not Responding&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;div&gt;&lt;div&gt;&lt;div class="Section1"&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: #1f497d;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Got it.&amp;nbsp; There was a&lt;span class="Apple-style-span" style="background-color: yellow;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;  &lt;i&gt;&lt;span class="Apple-style-span" style="background-color: yellow;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;transaction open on a table that’s part of a filter on most of the reports&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;span class="Apple-style-span" style="background-color: yellow;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;.&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;  That’s all it was.&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #1f497d;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="background-color: yellow;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="background-color: yellow;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;______________________________&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-style-span" style="background-color: yellow;"&gt;[My emphasis]&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-style-span" style="background-color: yellow;"&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-size: 10pt;"&gt;&lt;span class="Apple-style-span" style="background-color: yellow;"&gt;&lt;br /&gt;&lt;span style="color: black; font-size: 10pt;"&gt;&lt;span class="Apple-style-span" style="background-color: yellow;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: black; font-size: 10pt;"&gt;&lt;span class="Apple-style-span" style="background-color: yellow;"&gt;&lt;span style="color: black; font-size: 10pt;"&gt;&lt;span class="Apple-style-span" style="background-color: yellow;"&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-style-span" style="background-color: white;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;This is why we go to the trouble of setting up an entirely separate system. There should never be a "transaction open on a table that’s part of a filter on most of the reports."&lt;/span&gt; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-style-span" style="background-color: white;"&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-style-span" style="background-color: white;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-style-span" style="background-color: white;"&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-style-span" style="background-color: white;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;There are times even now when the voices of temptation ring really loud. Usually this occurs in the form of a client or colleague looking at me like I've got two heads when I tell them that we need to spend time building a separate redundant database and ETL to replace a currently running (but poorly performing or problematic) report.&lt;/span&gt; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-style-span" style="background-color: white;"&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-style-span" style="background-color: white;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-style-span" style="background-color: white;"&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-style-span" style="background-color: white;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;So to all the intrepid BI Architects out there: fight the &lt;/span&gt;&lt;/b&gt;&lt;a href="http://tomhuguelet.blogspot.com/2010/02/million-dollar-bi-architecture-diagram.html"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;good fight&lt;/span&gt;&lt;/b&gt;&lt;/a&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;!&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-style-span" style="background-color: white;"&gt;&lt;div&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-style-span" style="background-color: white;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman';"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-style-span" style="background-color: white;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman';"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_hgc6jdr_cb0/S5ehqXcnBgI/AAAAAAAAABs/yr8c78WVL1A/s1600-h/homer_superman.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_hgc6jdr_cb0/S5ehqXcnBgI/AAAAAAAAABs/yr8c78WVL1A/s320/homer_superman.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: Arial, sans-serif; font-size: 10pt;"&gt;&lt;span class="Apple-style-span" style="background-color: yellow;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7908805765465935338-5126970083304846565?l=tomhuguelet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tomhuguelet.blogspot.com/feeds/5126970083304846565/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tomhuguelet.blogspot.com/2010/03/devils-and-angels-of-bi-architecture.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7908805765465935338/posts/default/5126970083304846565'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7908805765465935338/posts/default/5126970083304846565'/><link rel='alternate' type='text/html' href='http://tomhuguelet.blogspot.com/2010/03/devils-and-angels-of-bi-architecture.html' title='Devils and Angels of BI Architecture'/><author><name>Tom Huguelet</name><uri>http://www.blogger.com/profile/11160345397812045735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://2.bp.blogspot.com/_hgc6jdr_cb0/ShMjnmn6uFI/AAAAAAAAAAM/RqK7uUUCwtc/S220/tom+huguelet.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_hgc6jdr_cb0/S5ecCoKMmrI/AAAAAAAAABk/yzuuBV0pyhY/s72-c/devil+and+angel+2.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7908805765465935338.post-660883311289280894</id><published>2010-02-05T09:35:00.001-06:00</published><updated>2010-02-05T09:56:36.624-06:00</updated><title type='text'>The "Million Dollar" BI Architecture Diagram</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;Anyone who has worked with me or taken training from me has seen some variant of this diagram. It's not an original concept, although this version has been refined to include my personal experience with many Business Intelligence implementations, as well as my bias towards both the &lt;a href="http://www.ralphkimball.com/html/articles.html"&gt;Kimball Business Dimensional methodology&lt;/a&gt; and using &lt;a href="http://www.microsoft.com/sqlserver/2008/en/us/wp-sql-2008-analysis-services.aspx"&gt;Microsoft SQL Server (especially Analysis Services&lt;/a&gt;) as part of successful deployments.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_hgc6jdr_cb0/S2MP-cN5Q5I/AAAAAAAAABc/TlfdPljnF-M/s1600-h/Business+Intelligence+Architecture+Framework.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="492" src="http://4.bp.blogspot.com/_hgc6jdr_cb0/S2MP-cN5Q5I/AAAAAAAAABc/TlfdPljnF-M/s640/Business+Intelligence+Architecture+Framework.jpg" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;This diagram is conceptual, although I have designed systems that did have physical servers for each of the servers represented, and these worked very, very well.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;I have lots to say about this, and will continue to do so on this blog. Perhaps the most significant concept to mention at the outset is that this is a recipe for success with Business Intelligence. Put another way, the level of success I've had with BI environments corresponds pretty closely with how well the architecture of these environments matched this diagram. (Also note that I said &lt;b&gt;&lt;i&gt;"a"&lt;/i&gt;&lt;/b&gt; recipe for success - not "the" recipe for success. I acknowledge that there are other approaches, but this is the one I've used successfully for over a decade.)&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;Two important concepts inherent in this diagram are:&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;b&gt;a)&amp;nbsp;&lt;/b&gt;&lt;i&gt;each layer in this diagram has a primary purpose&lt;/i&gt;. From an architecture standpoint, designing these functional layers to do only a single thing very well creates a robust, yet simple, environment.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;b&gt;b) &lt;/b&gt;There are well-defined interfaces between each&amp;nbsp;functional layer. Having clearly defined boundaries allows the processes to be moved from server to server (which enables important operational benefits like high-availability, disaster recovery, and performance tuning)&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;What are these primary purposes mentioned above, and how do they benefit the overall architecture?&lt;/span&gt;&lt;br /&gt;&lt;ol&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;li&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="text-decoration: underline;"&gt;Source Systems&lt;/span&gt;&lt;/b&gt; &amp;nbsp;OLTP, Line of Business, ERP systems, and other sources - All BI systems are 100% dependent upon being able to source data from somewhere. The systems that run the business are our sources. All the rich data that we analyze and/or aggregate comes from there.&lt;/li&gt;&lt;li&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="text-decoration: underline;"&gt;Data Quality&lt;/span&gt;&lt;/b&gt; Extraction, Transformation, and Loading - Because the systems in #1 are generally concerned with running the business and not with pristine and perfect data, there must be intentional processes that clean and consolidate data from these sources. That happens in layer 2&lt;/li&gt;&lt;li&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="text-decoration: underline;"&gt;Single Vision&lt;/span&gt;&lt;/b&gt; Enterprise Data Warehouse - This is what an organization "knows" about itself, and enables a single vision of the truth. The is the consolidated, consistent historical data store, ideally becoming the "system of record" after the operational processes are no longer active. Note that under this model, this layer does not have to be tuned for interactive query performance - the primary purpose here is to act as a sound repository of enterprise information.&lt;/li&gt;&lt;li&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="text-decoration: underline;"&gt;Business Intelligence&lt;/span&gt;&lt;/b&gt;&amp;nbsp;- Unified Dimensional Model - Nearly all successful implementations include a layer like this, either informally or formally. In my view, formally is the superior approach. In this layer, performance is improved by creating locally (or proximally) cached copies of information. This is where "Business Intelligence" is exposed - i.e. the metrics, KPI's that provide useful information. All presentation tools should source from this database.&lt;/li&gt;&lt;li&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="text-decoration: underline;"&gt;Presentation&lt;/span&gt;&lt;/b&gt; - By keeping the Business Intelligence in layer 4, the presentation tools really just become about delivering information to the various audiences in the format and vehicle most convenient for each. It allows different tools to be used as needed.&amp;nbsp;&lt;/li&gt;&lt;/span&gt;&lt;/ol&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;BTW - I call this the "Million Dollar" BI Architecture Diagram because:&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;if you're an organization using BI this effectively, it should represent (at least) a million dollars in increased revenue or reduced cost.&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;If you're a BI practitioner, it should be worth that in revenue or perhaps even more significantly, a million dollars in reduced stress - because it represents a plan that is proven and works.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7908805765465935338-660883311289280894?l=tomhuguelet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tomhuguelet.blogspot.com/feeds/660883311289280894/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tomhuguelet.blogspot.com/2010/02/million-dollar-bi-architecture-diagram.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7908805765465935338/posts/default/660883311289280894'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7908805765465935338/posts/default/660883311289280894'/><link rel='alternate' type='text/html' href='http://tomhuguelet.blogspot.com/2010/02/million-dollar-bi-architecture-diagram.html' title='The &quot;Million Dollar&quot; BI Architecture Diagram'/><author><name>Tom Huguelet</name><uri>http://www.blogger.com/profile/11160345397812045735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://2.bp.blogspot.com/_hgc6jdr_cb0/ShMjnmn6uFI/AAAAAAAAAAM/RqK7uUUCwtc/S220/tom+huguelet.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_hgc6jdr_cb0/S2MP-cN5Q5I/AAAAAAAAABc/TlfdPljnF-M/s72-c/Business+Intelligence+Architecture+Framework.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7908805765465935338.post-2038822848375341667</id><published>2010-01-25T13:15:00.000-06:00</published><updated>2010-01-25T13:15:39.428-06:00</updated><title type='text'>Example Code to build and populate a Date Dimension</title><content type='html'>&lt;span style="font-family: Arial; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: green; font-family: 'Courier New';"&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="color: green; font-family: 'Courier New';"&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span class="Apple-style-span" style="color: black; font-family: Verdana, sans-serif;"&gt;OK, I've found myself searching for this code a half dozen times over as many weeks. That tells me that I :&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span style="color: black;"&gt;a) Need to keep better track of my source code&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span style="color: black;"&gt;b) Need to share it on my blog&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: 0.0001pt;"&gt;&lt;span style="color: black; font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: 0.0001pt;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span style="color: black;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="text-decoration: underline;"&gt;Caveats &amp;amp; Comments:&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: 0.0001pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="color: black; font-family: Verdana, sans-serif;"&gt;This is "warts and all" utility code. It could be optimized, but for the few rows that a Date Dimension represents, why?&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="color: black; font-family: Verdana, sans-serif;"&gt;One of the few cases where Dr. Kimball and his &lt;a href="http://www.ralphkimball.com/html/designtipsPDF/DesignTips2006/KU85SmartDateKeysPartitionFactTables.pdf"&gt;recommends meaningful surrogate keys&lt;/a&gt; is in the case of the date dimension. Our keys here use a YYYYMMDD or YYYYQQ format.&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="color: black; font-family: Verdana, sans-serif;"&gt;This builds a Date Snowflake, which provides correctly ordered keys at any level in the dimension.&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="color: black; font-family: Verdana, sans-serif;"&gt;I usually rejoin these tables in either the DSV or a SQL View to create the structure SSAS actually consumes.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="color: black; font-family: Verdana, sans-serif;"&gt;There is a stub for a Week Hierarchy, which sometimes is called for, and sometimes not.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="color: black; font-family: Verdana, sans-serif;"&gt;This was built in and is compatible with SQL 2005. It runs in SQL 2008 as well. In 2008, you could change the date type from &lt;b&gt;&lt;i&gt;DateTime&lt;/i&gt;&lt;/b&gt; to &lt;b&gt;&lt;i&gt;Date&lt;/i&gt;&lt;/b&gt; and save yourself some formatting overhead down the road.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: green; font-family: 'Courier New';"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: green; font-family: 'Courier New';"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: green; font-family: 'Courier New';"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: green; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;/* DDL Begin */&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: green; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;/****** Object:&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;Table [dbo].[dim_CalendarYear]&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Script Date: 11/02/2009 12:34:56 ******/&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: blue; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;CREATE&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt; &lt;span style="color: blue;"&gt;TABLE&lt;/span&gt; [dbo]&lt;span style="color: grey;"&gt;.&lt;/span&gt;[dim_CalendarYear]&lt;span style="color: grey;"&gt;(&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;&lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;[CalendarYearID] [int] &lt;span style="color: grey;"&gt;NOT&lt;/span&gt; &lt;span style="color: grey;"&gt;NULL,&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;&lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;[CalendarYearName] [varchar]&lt;span style="color: grey;"&gt;(&lt;/span&gt;10&lt;span style="color: grey;"&gt;)&lt;/span&gt; &lt;span style="color: grey;"&gt;NULL,&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;CONSTRAINT&lt;/span&gt; [PK_dim_CalendarYear] &lt;span style="color: blue;"&gt;PRIMARY&lt;/span&gt; &lt;span style="color: blue;"&gt;KEY&lt;/span&gt; &lt;span style="color: blue;"&gt;CLUSTERED&lt;/span&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: grey; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;(&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;&lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;[CalendarYearID] &lt;span style="color: blue;"&gt;ASC&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: grey; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;)&lt;/span&gt;&lt;span style="color: blue; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;WITH &lt;/span&gt;&lt;span style="color: grey; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;(&lt;/span&gt;&lt;span style="color: blue; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;PAD_INDEX&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;span style="color: grey;"&gt;=&lt;/span&gt; &lt;span style="color: blue;"&gt;OFF&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;/span&gt; &lt;span style="color: blue;"&gt;STATISTICS_NORECOMPUTE&lt;/span&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;span style="color: grey;"&gt;=&lt;/span&gt; &lt;span style="color: blue;"&gt;OFF&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;/span&gt; &lt;span style="color: blue;"&gt;IGNORE_DUP_KEY&lt;/span&gt; &lt;span style="color: grey;"&gt;=&lt;/span&gt; &lt;span style="color: blue;"&gt;OFF&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;/span&gt; &lt;span style="color: blue;"&gt;ALLOW_ROW_LOCKS&lt;/span&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;span style="color: grey;"&gt;=&lt;/span&gt; &lt;span style="color: blue;"&gt;ON&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;/span&gt; &lt;span style="color: blue;"&gt;ALLOW_PAGE_LOCKS&lt;/span&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;span style="color: grey;"&gt;=&lt;/span&gt; &lt;span style="color: blue;"&gt;ON&lt;/span&gt;&lt;span style="color: grey;"&gt;)&lt;/span&gt; &lt;span style="color: blue;"&gt;ON&lt;/span&gt; [PRIMARY]&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: grey; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;)&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt; &lt;span style="color: blue;"&gt;ON&lt;/span&gt; [PRIMARY]&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: blue; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;GO&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: green; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;/****** Object:&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;Table [dbo].[dim_CalendarQuarter]&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Script Date: 11/02/2009 12:34:56 ******/&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: blue; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;CREATE&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt; &lt;span style="color: blue;"&gt;TABLE&lt;/span&gt; [dbo]&lt;span style="color: grey;"&gt;.&lt;/span&gt;[dim_CalendarQuarter]&lt;span style="color: grey;"&gt;(&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;&lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;[CalendarQuarterID] [int] &lt;span style="color: grey;"&gt;NOT&lt;/span&gt; &lt;span style="color: grey;"&gt;NULL,&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;&lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;[CalendarQuarterNumber] [int] &lt;span style="color: grey;"&gt;NULL,&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;&lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;[CalendarQuarterName] [varchar]&lt;span style="color: grey;"&gt;(&lt;/span&gt;10&lt;span style="color: grey;"&gt;)&lt;/span&gt; &lt;span style="color: grey;"&gt;NULL,&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;&lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;[CalendarYearID] [int] &lt;span style="color: grey;"&gt;NULL,&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;CONSTRAINT&lt;/span&gt; [PK_dim_CalendarQuarter] &lt;span style="color: blue;"&gt;PRIMARY&lt;/span&gt; &lt;span style="color: blue;"&gt;KEY&lt;/span&gt; &lt;span style="color: blue;"&gt;CLUSTERED&lt;/span&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: grey; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;(&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;&lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;[CalendarQuarterID] &lt;span style="color: blue;"&gt;ASC&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: grey; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;)&lt;/span&gt;&lt;span style="color: blue; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;WITH &lt;/span&gt;&lt;span style="color: grey; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;(&lt;/span&gt;&lt;span style="color: blue; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;PAD_INDEX&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;span style="color: grey;"&gt;=&lt;/span&gt; &lt;span style="color: blue;"&gt;OFF&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;/span&gt; &lt;span style="color: blue;"&gt;STATISTICS_NORECOMPUTE&lt;/span&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;span style="color: grey;"&gt;=&lt;/span&gt; &lt;span style="color: blue;"&gt;OFF&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;/span&gt; &lt;span style="color: blue;"&gt;IGNORE_DUP_KEY&lt;/span&gt; &lt;span style="color: grey;"&gt;=&lt;/span&gt; &lt;span style="color: blue;"&gt;OFF&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;/span&gt; &lt;span style="color: blue;"&gt;ALLOW_ROW_LOCKS&lt;/span&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;span style="color: grey;"&gt;=&lt;/span&gt; &lt;span style="color: blue;"&gt;ON&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;/span&gt; &lt;span style="color: blue;"&gt;ALLOW_PAGE_LOCKS&lt;/span&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;span style="color: grey;"&gt;=&lt;/span&gt; &lt;span style="color: blue;"&gt;ON&lt;/span&gt;&lt;span style="color: grey;"&gt;)&lt;/span&gt; &lt;span style="color: blue;"&gt;ON&lt;/span&gt; [PRIMARY]&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: grey; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;)&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt; &lt;span style="color: blue;"&gt;ON&lt;/span&gt; [PRIMARY]&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: blue; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;GO&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: green; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;/****** Object:&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;Table [dbo].[dim_CalendarMonth]&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Script Date: 11/02/2009 12:34:56 ******/&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: blue; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;CREATE&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt; &lt;span style="color: blue;"&gt;TABLE&lt;/span&gt; [dbo]&lt;span style="color: grey;"&gt;.&lt;/span&gt;[dim_CalendarMonth]&lt;span style="color: grey;"&gt;(&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;&lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;[CalendarMonthID] [int] &lt;span style="color: grey;"&gt;NOT&lt;/span&gt; &lt;span style="color: grey;"&gt;NULL,&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;&lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;[CalendarMonthNumber] [int] &lt;span style="color: grey;"&gt;NULL,&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;&lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;[CalendarMonthName] [varchar]&lt;span style="color: grey;"&gt;(&lt;/span&gt;20&lt;span style="color: grey;"&gt;)&lt;/span&gt; &lt;span style="color: grey;"&gt;NULL,&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;&lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;[CalendarQuarterID] [int] &lt;span style="color: grey;"&gt;NULL,&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;CONSTRAINT&lt;/span&gt; [PK_dim_CalendarMonth] &lt;span style="color: blue;"&gt;PRIMARY&lt;/span&gt; &lt;span style="color: blue;"&gt;KEY&lt;/span&gt; &lt;span style="color: blue;"&gt;CLUSTERED&lt;/span&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: grey; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;(&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;&lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;[CalendarMonthID] &lt;span style="color: blue;"&gt;ASC&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: grey; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;)&lt;/span&gt;&lt;span style="color: blue; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;WITH &lt;/span&gt;&lt;span style="color: grey; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;(&lt;/span&gt;&lt;span style="color: blue; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;PAD_INDEX&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;span style="color: grey;"&gt;=&lt;/span&gt; &lt;span style="color: blue;"&gt;OFF&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;/span&gt; &lt;span style="color: blue;"&gt;STATISTICS_NORECOMPUTE&lt;/span&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;span style="color: grey;"&gt;=&lt;/span&gt; &lt;span style="color: blue;"&gt;OFF&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;/span&gt; &lt;span style="color: blue;"&gt;IGNORE_DUP_KEY&lt;/span&gt; &lt;span style="color: grey;"&gt;=&lt;/span&gt; &lt;span style="color: blue;"&gt;OFF&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;/span&gt; &lt;span style="color: blue;"&gt;ALLOW_ROW_LOCKS&lt;/span&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;span style="color: grey;"&gt;=&lt;/span&gt; &lt;span style="color: blue;"&gt;ON&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;/span&gt; &lt;span style="color: blue;"&gt;ALLOW_PAGE_LOCKS&lt;/span&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;span style="color: grey;"&gt;=&lt;/span&gt; &lt;span style="color: blue;"&gt;ON&lt;/span&gt;&lt;span style="color: grey;"&gt;)&lt;/span&gt; &lt;span style="color: blue;"&gt;ON&lt;/span&gt; [PRIMARY]&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: grey; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;)&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt; &lt;span style="color: blue;"&gt;ON&lt;/span&gt; [PRIMARY]&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: blue; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;GO&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: green; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;/****** Object:&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;Table [dbo].[dim_CalendarDay]&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Script Date: 11/02/2009 12:34:56 ******/&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: blue; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;CREATE&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt; &lt;span style="color: blue;"&gt;TABLE&lt;/span&gt; [dbo]&lt;span style="color: grey;"&gt;.&lt;/span&gt;[dim_CalendarDay]&lt;span style="color: grey;"&gt;(&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;&lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;[TimeID] [int] &lt;span style="color: grey;"&gt;NOT&lt;/span&gt; &lt;span style="color: grey;"&gt;NULL,&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;&lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;[SQLDate] [datetime] &lt;span style="color: grey;"&gt;NULL,&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;&lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;[CalendarMonthID] [int] &lt;span style="color: grey;"&gt;NULL,&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;&lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;[WeekID] [int] &lt;span style="color: grey;"&gt;NULL,&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;CONSTRAINT&lt;/span&gt; [PK_dim_Date] &lt;span style="color: blue;"&gt;PRIMARY&lt;/span&gt; &lt;span style="color: blue;"&gt;KEY&lt;/span&gt; &lt;span style="color: blue;"&gt;CLUSTERED&lt;/span&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: grey; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;(&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;&lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;[TimeID] &lt;span style="color: blue;"&gt;ASC&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: grey; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;)&lt;/span&gt;&lt;span style="color: blue; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;WITH &lt;/span&gt;&lt;span style="color: grey; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;(&lt;/span&gt;&lt;span style="color: blue; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;PAD_INDEX&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;span style="color: grey;"&gt;=&lt;/span&gt; &lt;span style="color: blue;"&gt;OFF&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;/span&gt; &lt;span style="color: blue;"&gt;STATISTICS_NORECOMPUTE&lt;/span&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;span style="color: grey;"&gt;=&lt;/span&gt; &lt;span style="color: blue;"&gt;OFF&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;/span&gt; &lt;span style="color: blue;"&gt;IGNORE_DUP_KEY&lt;/span&gt; &lt;span style="color: grey;"&gt;=&lt;/span&gt; &lt;span style="color: blue;"&gt;OFF&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;/span&gt; &lt;span style="color: blue;"&gt;ALLOW_ROW_LOCKS&lt;/span&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;span style="color: grey;"&gt;=&lt;/span&gt; &lt;span style="color: blue;"&gt;ON&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;/span&gt; &lt;span style="color: blue;"&gt;ALLOW_PAGE_LOCKS&lt;/span&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;span style="color: grey;"&gt;=&lt;/span&gt; &lt;span style="color: blue;"&gt;ON&lt;/span&gt;&lt;span style="color: grey;"&gt;)&lt;/span&gt; &lt;span style="color: blue;"&gt;ON&lt;/span&gt; [PRIMARY]&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: grey; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;)&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt; &lt;span style="color: blue;"&gt;ON&lt;/span&gt; [PRIMARY]&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: blue; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;GO&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: green; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;/* DDL End */&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span style="color: green; font-family: 'Courier New'; font-size: 10pt;"&gt;/* Populate Begin */&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span style="color: green; font-family: 'Courier New';"&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="color: green; font-family: 'Courier New';"&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: blue; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;DECLARE&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;@StartSeedDate &lt;span style="color: blue;"&gt;DATETIME&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: blue; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;DECLARE&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;@EndSeedDate &lt;span style="color: blue;"&gt;DATETIME&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: blue; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;SET&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt; @StartSeedDate &lt;span style="color: grey;"&gt;=&lt;/span&gt; &lt;span style="color: red;"&gt;'01 Jan 2007'&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: blue; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;SET&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt; @EndSeedDate&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: grey;"&gt;=&lt;/span&gt; &lt;span style="color: red;"&gt;'31 Dec 2009'&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: green; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;-- Set defaults if none are supplied&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: blue; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;IF&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt; @StartSeedDate &lt;span style="color: grey;"&gt;IS&lt;/span&gt; &lt;span style="color: grey;"&gt;NULL&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;SET&lt;/span&gt; @StartSeedDate &lt;span style="color: grey;"&gt;=&lt;/span&gt; &lt;span style="color: magenta;"&gt;DATEADD&lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;YYYY&lt;span style="color: grey;"&gt;,-&lt;/span&gt;1&lt;span style="color: grey;"&gt;,&lt;/span&gt;&lt;span style="color: magenta;"&gt;CONVERT&lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;&lt;span style="color: blue;"&gt;CHAR&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;/span&gt;&lt;span style="color: magenta;"&gt;GETDATE&lt;/span&gt;&lt;span style="color: grey;"&gt;(),&lt;/span&gt;112&lt;span style="color: grey;"&gt;))&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: blue; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;IF&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt; @EndSeedDate &lt;span style="color: grey;"&gt;IS&lt;/span&gt; &lt;span style="color: grey;"&gt;NULL&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;SET&lt;/span&gt; @EndSeedDate &lt;span style="color: grey;"&gt;=&lt;/span&gt; &lt;span style="color: magenta;"&gt;DATEADD&lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;YYYY&lt;span style="color: grey;"&gt;,&lt;/span&gt;1&lt;span style="color: grey;"&gt;,&lt;/span&gt;&lt;span style="color: magenta;"&gt;CONVERT&lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;&lt;span style="color: blue;"&gt;CHAR&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;/span&gt;&lt;span style="color: magenta;"&gt;GETDATE&lt;/span&gt;&lt;span style="color: grey;"&gt;(),&lt;/span&gt;112&lt;span style="color: grey;"&gt;))&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: blue; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;CREATE&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt; &lt;span style="color: blue;"&gt;TABLE&lt;/span&gt; #TMP_DIMDATE&lt;span style="color: blue;"&gt; &lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;SQLDATE &lt;span style="color: blue;"&gt;DATETIME&lt;/span&gt; &lt;span style="color: grey;"&gt;NULL)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: blue; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;WHILE&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt; @StartSeedDate &lt;span style="color: grey;"&gt;&amp;lt;=&lt;/span&gt; @EndSeedDate&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;BEGIN&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;INSERT&lt;/span&gt; #TMP_DIMDATE&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: blue; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: grey; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;(&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;SQLDATE&lt;span style="color: grey;"&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;VALUES&lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;@StartSeedDate&lt;span style="color: grey;"&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;SELECT&lt;/span&gt; @StartSeedDate &lt;span style="color: grey;"&gt;=&lt;/span&gt; &lt;span style="color: magenta;"&gt;DATEADD&lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;DD&lt;span style="color: grey;"&gt;,&lt;/span&gt;1&lt;span style="color: grey;"&gt;,&lt;/span&gt;@StartSeedDate&lt;span style="color: grey;"&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;END&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: green; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;-- Year&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: blue; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;INSERT&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt; dbo&lt;span style="color: grey;"&gt;.&lt;/span&gt;dim_CalendarYear &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: blue; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;SELECT&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt; &lt;span style="color: blue;"&gt;DISTINCT&lt;/span&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;&lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: magenta;"&gt;DATEPART&lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;&lt;span style="color: magenta;"&gt;YEAR&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;/span&gt;SQLDATE&lt;span style="color: grey;"&gt;)&lt;/span&gt; &lt;span style="color: blue;"&gt;AS&lt;/span&gt; [CalendarYearID]&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;&lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;/span&gt; &lt;span style="color: magenta;"&gt;DATENAME&lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;&lt;span style="color: magenta;"&gt;YEAR&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;/span&gt;SQLDATE&lt;span style="color: grey;"&gt;)&lt;/span&gt; &lt;span style="color: blue;"&gt;AS&lt;/span&gt; [CalendarYearName]&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: blue; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;FROM&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;#TMP_DIMDATE&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: green; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;-- SELECT * FROM dbo.dim_CalendarYear &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: green; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;-- Quarter&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: blue; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;INSERT&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt; dbo&lt;span style="color: grey;"&gt;.&lt;/span&gt;dim_CalendarQuarter&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: blue; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;SELECT&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt; &lt;span style="color: blue;"&gt;DISTINCT&lt;/span&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;&lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: magenta;"&gt;DATEPART&lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;YYYY&lt;span style="color: grey;"&gt;,&lt;/span&gt;SQLDATE&lt;span style="color: grey;"&gt;)&lt;/span&gt; &lt;span style="color: grey;"&gt;*&lt;/span&gt; 100 &lt;span style="color: grey;"&gt;+&lt;/span&gt; &lt;span style="color: magenta;"&gt;DATEPART&lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;&lt;span style="color: blue;"&gt;QUARTER&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;/span&gt;SQLDATE&lt;span style="color: grey;"&gt;)&lt;/span&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;AS&lt;/span&gt; [CalendarQuarterID]&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: grey; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;,&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;&lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: magenta;"&gt;DATEPART&lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;YYYY&lt;span style="color: grey;"&gt;,&lt;/span&gt;SQLDATE&lt;span style="color: grey;"&gt;)&lt;/span&gt; &lt;span style="color: grey;"&gt;*&lt;/span&gt; 100 &lt;span style="color: grey;"&gt;+&lt;/span&gt; &lt;span style="color: magenta;"&gt;DATEPART&lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;&lt;span style="color: blue;"&gt;QUARTER&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;/span&gt;SQLDATE&lt;span style="color: grey;"&gt;)&lt;/span&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;AS&lt;/span&gt; [CalendarQuarterNumber]&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: grey; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;,&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;&lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: magenta;"&gt;CAST&lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;&lt;span style="color: magenta;"&gt;DATEPART&lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;YYYY&lt;span style="color: grey;"&gt;,&lt;/span&gt;SQLDATE&lt;span style="color: grey;"&gt;)&lt;/span&gt; &lt;span style="color: blue;"&gt;AS&lt;/span&gt; &lt;span style="color: blue;"&gt;char&lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;4&lt;span style="color: grey;"&gt;))&lt;/span&gt; &lt;span style="color: grey;"&gt;+&lt;/span&gt; &lt;span style="color: red;"&gt;' Q'&lt;/span&gt; &lt;span style="color: grey;"&gt;+&lt;/span&gt; &lt;span style="color: magenta;"&gt;CAST&lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;&lt;span style="color: magenta;"&gt;DATEPART&lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;&lt;span style="color: blue;"&gt;QUARTER&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;/span&gt;SQLDATE&lt;span style="color: grey;"&gt;)&lt;/span&gt; &lt;span style="color: blue;"&gt;AS&lt;/span&gt; &lt;span style="color: blue;"&gt;char&lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;1&lt;span style="color: grey;"&gt;))&lt;/span&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;AS&lt;/span&gt; [CalendarQuarterName]&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: grey; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;,&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;&lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: magenta;"&gt;DATEPART&lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;&lt;span style="color: magenta;"&gt;YEAR&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;/span&gt;SQLDATE&lt;span style="color: grey;"&gt;)&lt;/span&gt; &lt;span style="color: blue;"&gt;AS&lt;/span&gt; [CalendarYearID]&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: blue; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;FROM&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;#TMP_DIMDATE&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: green; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;-- SELECT * FROM dbo.dim_CalendarQuarter&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: green; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;-- Month&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: blue; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;INSERT&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt; dbo&lt;span style="color: grey;"&gt;.&lt;/span&gt;dim_CalendarMonth&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: blue; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;SELECT&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt; &lt;span style="color: blue;"&gt;DISTINCT&lt;/span&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;&lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: magenta;"&gt;DATEPART&lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;YYYY&lt;span style="color: grey;"&gt;,&lt;/span&gt;SQLDATE&lt;span style="color: grey;"&gt;)&lt;/span&gt; &lt;span style="color: grey;"&gt;*&lt;/span&gt; 100 &lt;span style="color: grey;"&gt;+&lt;/span&gt; &lt;span style="color: magenta;"&gt;DATEPART&lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;&lt;span style="color: magenta;"&gt;MONTH&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;/span&gt;SQLDATE&lt;span style="color: grey;"&gt;)&lt;/span&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;AS&lt;/span&gt; [CalendarMonthID]&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: grey; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;,&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;&lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: magenta;"&gt;DATEPART&lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;YYYY&lt;span style="color: grey;"&gt;,&lt;/span&gt;SQLDATE&lt;span style="color: grey;"&gt;)&lt;/span&gt; &lt;span style="color: grey;"&gt;*&lt;/span&gt; 100 &lt;span style="color: grey;"&gt;+&lt;/span&gt; &lt;span style="color: magenta;"&gt;DATEPART&lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;&lt;span style="color: magenta;"&gt;MONTH&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;/span&gt;SQLDATE&lt;span style="color: grey;"&gt;)&lt;/span&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;AS&lt;/span&gt; [CalendarMonthNumber]&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: grey; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;,&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;&lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: magenta;"&gt;DATENAME&lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;YYYY&lt;span style="color: grey;"&gt;,&lt;/span&gt;SQLDATE&lt;span style="color: grey;"&gt;)&lt;/span&gt; &lt;span style="color: grey;"&gt;+&lt;/span&gt; &lt;span style="color: red;"&gt;' '&lt;/span&gt; &lt;span style="color: grey;"&gt;+&lt;/span&gt; &lt;span style="color: magenta;"&gt;DATENAME&lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;MM&lt;span style="color: grey;"&gt;,&lt;/span&gt;SQLDATE&lt;span style="color: grey;"&gt;)&lt;/span&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;AS&lt;/span&gt; [CalendarMonthName]&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: grey; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;,&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;&lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: magenta;"&gt;DATEPART&lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;YYYY&lt;span style="color: grey;"&gt;,&lt;/span&gt;SQLDATE&lt;span style="color: grey;"&gt;)&lt;/span&gt; &lt;span style="color: grey;"&gt;*&lt;/span&gt; 100 &lt;span style="color: grey;"&gt;+&lt;/span&gt; &lt;span style="color: magenta;"&gt;DATEPART&lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;&lt;span style="color: blue;"&gt;QUARTER&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;/span&gt;SQLDATE&lt;span style="color: grey;"&gt;)&lt;/span&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;AS&lt;/span&gt; [CalendarQuarterID]&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: blue; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;FROM&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;#TMP_DIMDATE&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: green; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;-- SELECT * FROM dbo.dim_CalendarMonth&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: green; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;-- Day&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: blue; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;INSERT&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt; dbo&lt;span style="color: grey;"&gt;.&lt;/span&gt;dim_CalendarDay&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: blue; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;SELECT&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt; &lt;span style="color: blue;"&gt;DISTINCT&lt;/span&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;&lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: magenta;"&gt;DATEPART&lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;YYYY&lt;span style="color: grey;"&gt;,&lt;/span&gt;SQLDATE&lt;span style="color: grey;"&gt;)&lt;/span&gt; &lt;span style="color: grey;"&gt;*&lt;/span&gt; 10000 &lt;span style="color: grey;"&gt;+&lt;/span&gt; &lt;span style="color: magenta;"&gt;DATEPART&lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;&lt;span style="color: magenta;"&gt;MONTH&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;/span&gt;SQLDATE&lt;span style="color: grey;"&gt;)&lt;/span&gt; &lt;span style="color: grey;"&gt;*&lt;/span&gt; 100 &lt;span style="color: grey;"&gt;+&lt;/span&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;span style="color: magenta;"&gt;DATEPART&lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;&lt;span style="color: magenta;"&gt;DAY&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;/span&gt;SQLDATE&lt;span style="color: grey;"&gt;)&lt;/span&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;AS&lt;/span&gt; [TimeID]&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: grey; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;,&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;&lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;SQLDATE&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: grey; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;,&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;&lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: magenta;"&gt;DATEPART&lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;YYYY&lt;span style="color: grey;"&gt;,&lt;/span&gt;SQLDATE&lt;span style="color: grey;"&gt;)&lt;/span&gt; &lt;span style="color: grey;"&gt;*&lt;/span&gt; 100 &lt;span style="color: grey;"&gt;+&lt;/span&gt; &lt;span style="color: magenta;"&gt;DATEPART&lt;/span&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;&lt;span style="color: magenta;"&gt;MONTH&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;/span&gt;SQLDATE&lt;span style="color: grey;"&gt;)&lt;/span&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;AS&lt;/span&gt; [CalendarMonthID]&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: grey; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;,&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: grey;"&gt;NULL&lt;/span&gt; &lt;span style="color: blue;"&gt;as&lt;/span&gt; [ShopLocalMonthID]&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: blue; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;FROM&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;#TMP_DIMDATE&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: green; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;-- SELECT * FROM dbo.dim_CalendarDay&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/span&gt;&lt;br /&gt;&lt;div&gt;&lt;span style="color: green; font-family: 'Courier New';"&gt;&lt;span class="Apple-style-span" style="color: black; font-family: Arial;"&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span style="color: green; font-family: 'Courier New'; font-size: 10pt;"&gt;/* Populate End */&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="color: green; font-family: 'Courier New';"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7908805765465935338-2038822848375341667?l=tomhuguelet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tomhuguelet.blogspot.com/feeds/2038822848375341667/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tomhuguelet.blogspot.com/2010/01/example-code-to-build-and-populate-date.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7908805765465935338/posts/default/2038822848375341667'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7908805765465935338/posts/default/2038822848375341667'/><link rel='alternate' type='text/html' href='http://tomhuguelet.blogspot.com/2010/01/example-code-to-build-and-populate-date.html' title='Example Code to build and populate a Date Dimension'/><author><name>Tom Huguelet</name><uri>http://www.blogger.com/profile/11160345397812045735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://2.bp.blogspot.com/_hgc6jdr_cb0/ShMjnmn6uFI/AAAAAAAAAAM/RqK7uUUCwtc/S220/tom+huguelet.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7908805765465935338.post-8141544721382023658</id><published>2010-01-22T14:36:00.000-06:00</published><updated>2010-01-22T14:36:37.367-06:00</updated><title type='text'>Is Business Intelligence your company's "Tree of Souls" ?</title><content type='html'>&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;(Minor Avatar spoilers below - in case you're one of the 3 people who hasn't seen it yet)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;I was driving to a clients this past week and just free-associating, listening to an NPR segment about the movie Avatar and also thinking about this upcoming Business Intelligence implementation.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;In the movie, "Avatar", the "Tree of Souls" is a nexus where sentient beings can connect and understand the will of that planet's&amp;nbsp;deity. At some point the "AllMother", through the "Tree of Souls", acts on the different populations to coordinate their efforts and accomplish something truly remarkable.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;It occurred to me that that is what we are trying to do with&amp;nbsp;Business Intelligence:&amp;nbsp;allow people to connect to information and by virtue of the information revealed, align and influence their actions to&amp;nbsp;accomplish something truly remarkable.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;So you see, the movie Avatar is really about Business Intelligence.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="-webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; white-space: pre;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Is Business Intelligence your company's "Tree of Souls" ? &lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7908805765465935338-8141544721382023658?l=tomhuguelet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tomhuguelet.blogspot.com/feeds/8141544721382023658/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tomhuguelet.blogspot.com/2010/01/is-business-intelligence-your-companys.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7908805765465935338/posts/default/8141544721382023658'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7908805765465935338/posts/default/8141544721382023658'/><link rel='alternate' type='text/html' href='http://tomhuguelet.blogspot.com/2010/01/is-business-intelligence-your-companys.html' title='Is Business Intelligence your company&apos;s &quot;Tree of Souls&quot; ?'/><author><name>Tom Huguelet</name><uri>http://www.blogger.com/profile/11160345397812045735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://2.bp.blogspot.com/_hgc6jdr_cb0/ShMjnmn6uFI/AAAAAAAAAAM/RqK7uUUCwtc/S220/tom+huguelet.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7908805765465935338.post-7118466475568184121</id><published>2010-01-09T15:50:00.000-06:00</published><updated>2010-01-09T15:50:17.859-06:00</updated><title type='text'>Windows 7's 'GodMode'</title><content type='html'>&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: arial, sans-serif; font-size: 13px;"&gt;&lt;span style="font-family: verdana, sans-serif;"&gt;Weird but cool - nice way to shortcut steps in W7:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;div&gt;&lt;span style="font-family: verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://news.cnet.com/8301-13860_3-10423985-56.html?tag=rtcol;pop" style="color: #1c51a8;" target="_blank"&gt;&lt;span style="font-family: verdana, sans-serif;"&gt;http://news.cnet.com/8301-&lt;wbr&gt;&lt;/wbr&gt;13860_3-10423985-56.html?tag=&lt;wbr&gt;&lt;/wbr&gt;rtcol;pop&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: verdana, sans-serif;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: verdana, sans-serif;"&gt;or video &amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: verdana, sans-serif;"&gt;&lt;/span&gt;&lt;span style="font-family: verdana, sans-serif;"&gt;&lt;a href="http://cnettv.cnet.com/enable-godmode-windows-7/9742-1_53-50081662.html?tag=mncol" style="color: #1c51a8;" target="_blank"&gt;http://cnettv.cnet.com/&lt;/a&gt;&lt;a href="http://cnettv.cnet.com/enable-godmode-windows-7/9742-1_53-50081662.html?tag=mncol" style="color: #1c51a8;" target="_blank"&gt;&lt;wbr&gt;&lt;/wbr&gt;enable-godmode-windows-7/9742-&lt;/a&gt;&lt;a href="http://cnettv.cnet.com/enable-godmode-windows-7/9742-1_53-50081662.html?tag=mncol" style="color: #1c51a8;" target="_blank"&gt;&lt;wbr&gt;&lt;/wbr&gt;1_53-50081662.html?tag=mncol&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7908805765465935338-7118466475568184121?l=tomhuguelet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tomhuguelet.blogspot.com/feeds/7118466475568184121/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tomhuguelet.blogspot.com/2010/01/windows-7s-godmode.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7908805765465935338/posts/default/7118466475568184121'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7908805765465935338/posts/default/7118466475568184121'/><link rel='alternate' type='text/html' href='http://tomhuguelet.blogspot.com/2010/01/windows-7s-godmode.html' title='Windows 7&apos;s &apos;GodMode&apos;'/><author><name>Tom Huguelet</name><uri>http://www.blogger.com/profile/11160345397812045735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://2.bp.blogspot.com/_hgc6jdr_cb0/ShMjnmn6uFI/AAAAAAAAAAM/RqK7uUUCwtc/S220/tom+huguelet.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7908805765465935338.post-7083209449354050681</id><published>2009-12-14T22:50:00.001-06:00</published><updated>2009-12-14T22:56:27.200-06:00</updated><title type='text'>Dec 8th, 2009 ITA BI Roundtable Presentation</title><content type='html'>&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;On Dec 8th, I was fortunate to present an overview of &lt;a href="https://www.illinoistech.org/calendar.aspx/1723"&gt;SQL Server 2008 Integration Services&lt;/a&gt; to the Illinois Technology Association's Business Intelligence Roundtable. The actively-involved participants had many questions. Here are links to all of the prerequisite, supplemental, and follow-on resources we discussed:&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Dimension Design (aka Star Schema) Methodology:&lt;/b&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.amazon.com/gp/product/0471200247?ie=UTF8&amp;amp;tag=inforinconte-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=390957&amp;amp;creativeASIN=0471200247"&gt;The Data Warehouse Toolkit: The Complete Guide to Dimensional Modeling (Second Edition)&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=inforinconte-20&amp;amp;l=as2&amp;amp;o=1&amp;amp;a=0471200247" style="border: none !important; margin: 0px !important;" width="1" /&gt;, Kimball/Ross - This is the book that describes many of the best techniques to model "star" or "snowflake" schemas. As I mentioned, this book should be on any BI practitioner's bookshelf, regardless of platform.&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.amazon.com/gp/product/0471267155?ie=UTF8&amp;amp;tag=inforinconte-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=390957&amp;amp;creativeASIN=0471267155"&gt;The Microsoft Data Warehouse Toolkit: With SQL Server 2005 and the Microsoft Business Intelligence Toolset&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=inforinconte-20&amp;amp;l=as2&amp;amp;o=1&amp;amp;a=0471267155" style="border: none !important; margin: 0px !important;" width="1" /&gt;&amp;nbsp;- This book contains a some of the content of the above book, but focuses on the specific implementation with Microsoft tools. It also describes techniques to handle many of the BI-related issues we discussed such as&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;logging&lt;/li&gt;&lt;li&gt;restarting long running processes&lt;/li&gt;&lt;li&gt;bookmarking&lt;/li&gt;&lt;li&gt;configurations&lt;/li&gt;&lt;li&gt;late arriving dimensions&lt;/li&gt;&lt;li&gt;lineage/auditing&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;b&gt;Code Examples:&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;While these examples are in SSIS 2005, they can be easily ported to SQL 2008. Most of the main techniques employed are still valid in SSIS 2008.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://technet.microsoft.com/en-us/library/cc966416.aspx"&gt;Project REAL: Technical Overview&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=b61a37b6-5852-4018-bba9-795a34123ed0&amp;amp;displaylang=en"&gt;Project REAL Reference Implementation&lt;/a&gt;&lt;/li&gt;&lt;li&gt;The white paper dealing with ETL practices specifically is &lt;a href="http://msdn.microsoft.com/en-us/library/cc966422.aspx"&gt;here&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;b&gt;Development Utilities:&lt;/b&gt; &lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Please see &lt;a href="http://tomhuguelet.blogspot.com/2009/10/add-ons-no-ms-business-intelligence.html"&gt;this blog entry  &lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;b&gt;The Presentation:&lt;/b&gt;&lt;br /&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;There were only a few slides since I wanted to focus primarily on demonstrations, but you can find the PDF linked &lt;a href="http://www.contextq.com/documents/SQL%20Server%20Integration%20Services%20Deep%20Dive.pdf"&gt;here&lt;/a&gt;:&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;If you attended and I missed posting something, please add a blog comment or email me via the contact information in the PDF.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Tom&lt;/div&gt;&lt;/div&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7908805765465935338-7083209449354050681?l=tomhuguelet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tomhuguelet.blogspot.com/feeds/7083209449354050681/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tomhuguelet.blogspot.com/2009/12/ita-bi-roundtable-presentation.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7908805765465935338/posts/default/7083209449354050681'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7908805765465935338/posts/default/7083209449354050681'/><link rel='alternate' type='text/html' href='http://tomhuguelet.blogspot.com/2009/12/ita-bi-roundtable-presentation.html' title='Dec 8th, 2009 ITA BI Roundtable Presentation'/><author><name>Tom Huguelet</name><uri>http://www.blogger.com/profile/11160345397812045735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://2.bp.blogspot.com/_hgc6jdr_cb0/ShMjnmn6uFI/AAAAAAAAAAM/RqK7uUUCwtc/S220/tom+huguelet.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7908805765465935338.post-8333991797272854543</id><published>2009-12-10T11:36:00.000-06:00</published><updated>2009-12-10T11:36:19.709-06:00</updated><title type='text'>Creating great courseware</title><content type='html'>&lt;span style="font-family: Verdana, sans-serif;"&gt;I was recently surveyed by Microsoft about the&amp;nbsp;&lt;span class="Apple-style-span" style="color: #333333; font-family: Verdana; line-height: 14px;"&gt;&lt;a class="cLink_08" href="http://www.microsoft.com/learning/en/us/certification/mct.aspx" onclick="dcsMultiTrack('DCSext.s_term','MCT','DCSext.s_fpos','1','DCSext.s_resclick','Organic','WT.dl','1');" style="color: #ce3aab; text-decoration: underline;"&gt;Microsoft Learning:&amp;nbsp;&lt;strong&gt;Microsoft&lt;/strong&gt;&amp;nbsp;&lt;strong&gt;Certified&lt;/strong&gt;&amp;nbsp;&lt;strong&gt;Trainer&lt;/strong&gt;&lt;/a&gt;&lt;/span&gt;&amp;nbsp;program. One of the questions was about the&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: Verdana; line-height: 14px;"&gt;&lt;a class="cLink_08" href="http://learning.microsoft.com/Manager/Catalog.aspx?clang=en-US&amp;amp;dtype=Catalog&amp;amp;Sort=PublicationDateDescending&amp;amp;page=1&amp;amp;cats=%7badf07500-03ad-4a36-b0ba-81c728d3d717%7d" onclick="dcsMultiTrack('DCSext.s_term','MOC%20microsoft%20official','DCSext.s_fpos','2','DCSext.s_resclick','Organic','WT.dl','1');" style="color: #ce3aab; text-decoration: underline;"&gt;&lt;strong&gt;Microsoft&lt;/strong&gt;&amp;nbsp;&lt;strong&gt;Official&lt;/strong&gt;&amp;nbsp;&lt;strong&gt;Curriculum&lt;/strong&gt;&lt;/a&gt;&lt;/span&gt;&amp;nbsp;(MOC). I've been using MOC in one form or another for about 15 years. Although I was only answering a question in the moment, I grabbed my comment about how to create courseware into a text file, and it seemed worth keeping. Rather than keep it in a text file, I'll "keep it" on my blog. My comment was:&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;Creating great courseware is hard work, but not impossible: 1) Decide on learning objectives 2) Vet learning objectives with MCT's and experienced practitioners 3) CREATE LAB EXERCISES FIRST 4) Test lab exercises 5) Test them again 6) With lab exercises complete and FROZEN, composed supporting slides and course materials&lt;/blockquote&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;I actually started writing courseware a few years before my first exposure to MOC. The method described above was how we did it. It makes sense because you want the practical exercises to support the learning objective and these are the hardest to get correct. Isn't it irritating when you are learning a new technology and the lab exercises don't work as designed?&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;I have noticed that there seem to be more problems with MOC courseware lately, especially with how labs work. I wonder if they follow the above methodology.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Don't get me wrong - the MOC courseware is not terrible - I still think there are a lot of good things to be learned and valuable experiences to be had in the courses I teach. But it seems to me that the overall quality used to be higher, and&amp;nbsp;I'd really like to see the quality of the MOC improve.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;BTW, I don't teach every single MOC course. The above comments apply to course:&amp;nbsp;2778, 2779, 2780, 2784, 2790, 2791, 2792, 2793, 6158, 6231, 6232, 6234, 6235, 6236, 6317 and maybe a few others.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7908805765465935338-8333991797272854543?l=tomhuguelet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tomhuguelet.blogspot.com/feeds/8333991797272854543/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tomhuguelet.blogspot.com/2009/12/creating-great-courseware.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7908805765465935338/posts/default/8333991797272854543'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7908805765465935338/posts/default/8333991797272854543'/><link rel='alternate' type='text/html' href='http://tomhuguelet.blogspot.com/2009/12/creating-great-courseware.html' title='Creating great courseware'/><author><name>Tom Huguelet</name><uri>http://www.blogger.com/profile/11160345397812045735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://2.bp.blogspot.com/_hgc6jdr_cb0/ShMjnmn6uFI/AAAAAAAAAAM/RqK7uUUCwtc/S220/tom+huguelet.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7908805765465935338.post-4829069976902976664</id><published>2009-11-07T19:23:00.000-06:00</published><updated>2009-11-07T19:23:20.151-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Analysis Services'/><category scheme='http://www.blogger.com/atom/ns#' term='Business Intelligence Development Studio'/><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft'/><title type='text'>Fixing "Unexpected error occurred. Attempted to read or write protected memory. This is often an indication that other memory is corrupt."</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;( If you don’t do hard-core Analysis Services, Reporting Services, or Integration Services development work with Microsoft Business Intelligence Development Studio, you can safely ignore this blog. )&lt;br /&gt;&lt;br /&gt;On my workstation there was an incompatibility between Visual Studio and the SQL Server Binaries. Which led to this error:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_hgc6jdr_cb0/SrqL5iamPfI/AAAAAAAAABQ/SpElrF3AJEs/s1600-h/Other+Memory+is+Corrupt.JPG" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5384770125082017266" src="http://1.bp.blogspot.com/_hgc6jdr_cb0/SrqL5iamPfI/AAAAAAAAABQ/SpElrF3AJEs/s320/Other+Memory+is+Corrupt.JPG" style="cursor: hand; height: 176px; width: 320px;" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="text-decoration: underline;"&gt;Symptom&lt;/span&gt;: &lt;/b&gt;Certain operations from Business Intelligence Development Studio work as normal, and other return a message: “Unexpected error occurred. Attempted to read or write protected memory. This is often an indication that other memory is corrupt.” (See attached)&lt;br /&gt;&lt;br /&gt;This error can occur if there are incompatibilities, between the versions of msmdlocal.dll and msmgdsrv.dll in these two locations:&lt;br /&gt;C:\Program Files\common files\system\ole db&lt;br /&gt;C:\Program Files\Microsoft Visual Studio 8\Common7\IDE\PrivateAssemblies&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="text-decoration: underline;"&gt;Issue&lt;/span&gt;:&lt;/b&gt; Make sure the build number of your local binaries matches the build number of the server you are working with. In this case the target server is at 9.0.4035.0, however on my system we were actually running at 2 other build numbers:&lt;br /&gt;In C:\Program Files\common files\system\ole db msmdlocal.dll and msmgdsrv.dll was 9.0.3042.0, but in C:\Program Files\Microsoft Visual Studio 8\Common7\IDE\PrivateAssemblies, msmdlocal.dll and msmgdsrv.dll were at 9.0.1399.0&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="text-decoration: underline;"&gt;Solution&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;My solution was to apply both SQL Server SP3 and Visual Studio SP1 (or whichever versions match your target environment).&lt;br /&gt;&lt;br /&gt;References:&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://dbaspot.com/forums/sqlserver-olap/162563-error-attempted-read-write-protected-memory-after-hotfix.html"&gt;http://dbaspot.com/forums/sqlserver-olap/162563-error-attempted-read-write-protected-memory-after-hotfix.html&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7908805765465935338-4829069976902976664?l=tomhuguelet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tomhuguelet.blogspot.com/feeds/4829069976902976664/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tomhuguelet.blogspot.com/2009/11/fixing-unexpected-error-occurred.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7908805765465935338/posts/default/4829069976902976664'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7908805765465935338/posts/default/4829069976902976664'/><link rel='alternate' type='text/html' href='http://tomhuguelet.blogspot.com/2009/11/fixing-unexpected-error-occurred.html' title='Fixing &quot;Unexpected error occurred. Attempted to read or write protected memory. This is often an indication that other memory is corrupt.&quot;'/><author><name>Tom Huguelet</name><uri>http://www.blogger.com/profile/11160345397812045735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://2.bp.blogspot.com/_hgc6jdr_cb0/ShMjnmn6uFI/AAAAAAAAAAM/RqK7uUUCwtc/S220/tom+huguelet.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_hgc6jdr_cb0/SrqL5iamPfI/AAAAAAAAABQ/SpElrF3AJEs/s72-c/Other+Memory+is+Corrupt.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7908805765465935338.post-7255889083054785297</id><published>2009-10-26T17:53:00.001-05:00</published><updated>2009-10-26T17:55:47.827-05:00</updated><title type='text'>Add-ons no MS Business Intelligence Developer should be without</title><content type='html'>&lt;span style="font-family: Verdana, sans-serif;"&gt;The main two applications that are used for Microsoft-centric development are Business Intelligence Development Studio (BIDS) and SQL Server Management Studio (SSMS).&amp;nbsp;There are a few add-on utilities that increase the power and usefulness of the out of the box applications. I find these invaluable:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.mdxstudio.com/"&gt;&lt;b&gt;MDXStudio&lt;/b&gt;&lt;/a&gt; - the brilliant&amp;nbsp;&lt;a href="http://www.mosha.com/mosha.htm"&gt;Mosha Pasumansky&lt;/a&gt;'s take on how MDX development should take place. Tons of functionality. Worth the download if you only use it to format your MDX (but check out the other capabilities, too):&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/bidshelper"&gt;&lt;b&gt;BIDSHelper&lt;/b&gt;&lt;/a&gt; - An add-in for BIDS that provides great capabilities for validating dimensions, seeing which SSIS objects are affected by configurations, and much more. There are versions for both SQL 2005 and SQL 2008&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.ssmstoolspack.com/"&gt;&lt;b&gt;SSMS Tools Pack&lt;/b&gt;&lt;/a&gt; - (&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;Thanks to &lt;/span&gt;&lt;a href="http://blog.stevienova.com/"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;Steve&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt; for showing me this one&lt;/span&gt;) Best features I've used so far are:&lt;br /&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Window Connection Coloring&lt;/li&gt;&lt;li&gt;Query Execution History and Current Window History&lt;/li&gt;&lt;li&gt; Generate Insert statements from tables&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7908805765465935338-7255889083054785297?l=tomhuguelet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tomhuguelet.blogspot.com/feeds/7255889083054785297/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tomhuguelet.blogspot.com/2009/10/add-ons-no-ms-business-intelligence.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7908805765465935338/posts/default/7255889083054785297'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7908805765465935338/posts/default/7255889083054785297'/><link rel='alternate' type='text/html' href='http://tomhuguelet.blogspot.com/2009/10/add-ons-no-ms-business-intelligence.html' title='Add-ons no MS Business Intelligence Developer should be without'/><author><name>Tom Huguelet</name><uri>http://www.blogger.com/profile/11160345397812045735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://2.bp.blogspot.com/_hgc6jdr_cb0/ShMjnmn6uFI/AAAAAAAAAAM/RqK7uUUCwtc/S220/tom+huguelet.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7908805765465935338.post-5091852877669556301</id><published>2009-10-16T22:18:00.000-05:00</published><updated>2009-10-16T22:18:23.331-05:00</updated><title type='text'>Quick SQL Server tip : Find references to table or column names</title><content type='html'>&lt;div&gt;&lt;font face="verdana"&gt;Many times I have to look within a database and find all the programmable objects that refer to a particular column or table name (any string really).&lt;br /&gt;&lt;br /&gt;There's probably a slicker, more "politically correct" way to do this, but this is what I generally use to accomplish this:&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;&lt;font face="courier new"&gt;SELECT DISTINCT 'EXEC sp_helptext [' + OBJECT_NAME(id) + ']' FROM syscomments WHERE charindex('soughtfortoken', text) &gt; 0&lt;br /&gt;&lt;/font&gt;&lt;br /&gt;&lt;font face="verdana"&gt;I've also got the output formatted to include the call to &lt;a href="http://msdn.microsoft.com/en-us/library/ms176112.aspx"&gt;sp_helptext &lt;/a&gt;so that I can just paste this into a query window to see the source code that created the object. I suppose I could enhance this so it just executes via another call to EXEC, but this seems to do the job pretty well and requires no additional setup or installation.&lt;/font&gt;&lt;br /&gt;&lt;font face="Verdana"&gt;&lt;/font&gt;&lt;br /&gt;&lt;em&gt;&lt;font face="Verdana"&gt;Technically it is bad practice to query the sys* tables. Here's the equivalent query using &lt;a href="http://msdn.microsoft.com/en-us/library/ms187997.aspx"&gt;approved systems views&lt;/a&gt;:&lt;/font&gt;&lt;br /&gt;&lt;/em&gt;&lt;font face="courier new"&gt;&lt;br /&gt;SELECT DISTINCT 'EXEC sp_helptext [' + OBJECT_NAME(object_id) + ']' FROM sys.sql_modules WHERE charindex('soughtfortoken', definition) &gt; 0 ORDER BY 1&lt;br /&gt;&lt;/font&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7908805765465935338-5091852877669556301?l=tomhuguelet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tomhuguelet.blogspot.com/feeds/5091852877669556301/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tomhuguelet.blogspot.com/2009/10/quick-sql-server-tip-find-references-to.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7908805765465935338/posts/default/5091852877669556301'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7908805765465935338/posts/default/5091852877669556301'/><link rel='alternate' type='text/html' href='http://tomhuguelet.blogspot.com/2009/10/quick-sql-server-tip-find-references-to.html' title='Quick SQL Server tip : Find references to table or column names'/><author><name>Tom Huguelet</name><uri>http://www.blogger.com/profile/11160345397812045735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://2.bp.blogspot.com/_hgc6jdr_cb0/ShMjnmn6uFI/AAAAAAAAAAM/RqK7uUUCwtc/S220/tom+huguelet.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7908805765465935338.post-7711487417912577333</id><published>2009-08-21T16:24:00.006-05:00</published><updated>2009-08-25T16:35:38.477-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MDX'/><category scheme='http://www.blogger.com/atom/ns#' term='Business Intelligence'/><category scheme='http://www.blogger.com/atom/ns#' term='Star Schema'/><category scheme='http://www.blogger.com/atom/ns#' term='SSAS'/><category scheme='http://www.blogger.com/atom/ns#' term='BI'/><category scheme='http://www.blogger.com/atom/ns#' term='Modeling'/><category scheme='http://www.blogger.com/atom/ns#' term='OLAP'/><title type='text'>Do as I say, not as I do</title><content type='html'>&lt;p&gt;&lt;span&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Perhaps that should be - &lt;/span&gt;&lt;/span&gt;&lt;em&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Do as I say, not as Adventure Works and Project Real do&lt;/span&gt;&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;SSAS modeling question: What's the best approach to handling header/detail records? &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Approach #1) Use Measure Groups &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Approach #2) Consolidate via either ETL or relational operations&lt;br /&gt;&lt;br /&gt;Most clients I deal with have some form of Header/Details modeled in some of their source systems (for example Invoices/Line Items). In looking at the way MS addresses this in sample databases (AdventureWorks and Project Real), I discovered that these examples solve this problem by not solving it. Both contain a single SalesFact that presents values from what would be the header record, but also include Item measures and attributes.&lt;br /&gt;&lt;br /&gt;Conventional SSAS wisdom would have us create 2 measure groups, 1 for Header and 1 for Details. The approaches used in the MS example cubes consolidate the two differently grained tables relationally and thus use a single measure group. (More correctly, they simply present a single Sales table, but it's reasonable to assume that a real-world system would have both Header and Detail)&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;I definitely know how to model this relationally, and I know how to implement this using either measures groups or a single table. I can see pros and cons to each approach:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;strong&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Using Measure Groups Approach&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;span&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Stays "pure" each fact has correct grain&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Calculations must be modeled in MDX&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Provides most efficient movement of relational data&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Minimizes null or N/A columns&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Most orthodox&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Consolidate via either ETL or relational operations &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;span&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Allows row-wise calculations&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Simplifies cube schema&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Removes need for "SalesOrder" dimension (needed to relate details to headers)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;span&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;My current opinion would be to use proper measure groups because creating a relational structure with multiple grains violates one of Dr. Kimball’s fundamental tenets.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span class="Apple-style-span" style="line-height: 15px; white-space: pre-wrap; "&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;As is often the case with BI modeling, there may well be cases where the second approach proved more advantageous. But absent of a specific requirement that highlights any advantage, I will stick with established best practices, which to my thinking is Kimball.  I can understand why Adventure Works takes a short-cut, but it seems a shame that "Project Real" isn't really "Real" so-to-speak. It's supposed to be a real world model.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7908805765465935338-7711487417912577333?l=tomhuguelet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tomhuguelet.blogspot.com/feeds/7711487417912577333/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tomhuguelet.blogspot.com/2009/08/do-as-i-say-not-as-i-do.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7908805765465935338/posts/default/7711487417912577333'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7908805765465935338/posts/default/7711487417912577333'/><link rel='alternate' type='text/html' href='http://tomhuguelet.blogspot.com/2009/08/do-as-i-say-not-as-i-do.html' title='Do as I say, not as I do'/><author><name>Tom Huguelet</name><uri>http://www.blogger.com/profile/11160345397812045735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://2.bp.blogspot.com/_hgc6jdr_cb0/ShMjnmn6uFI/AAAAAAAAAAM/RqK7uUUCwtc/S220/tom+huguelet.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7908805765465935338.post-320312338247336872</id><published>2009-07-17T12:28:00.002-05:00</published><updated>2009-07-17T13:21:32.599-05:00</updated><title type='text'>Ballmer and Muglia have it wrong</title><content type='html'>&lt;div style="text-align: center;"&gt;"It's a poor carpenter who blames his tools."&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;I've been monitoring the &lt;a href="http://search.twitter.com/search?q=100+million+rows"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;twittersphere&lt;/span&gt;&lt;/a&gt; and &lt;a href="http://blogs.msdn.com/bi/archive/2009/07/16/wpc-round-up-for-microsoft-bi.aspx"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;blogosphere&lt;/span&gt;&lt;/a&gt; about the new BI tools coming from Microsoft. While I am excited about these new capabilities, the "buzz" around these things also creates some concerns.&lt;br /&gt;&lt;br /&gt;Over the past ten years, I've been fascinated by the persistence of the idea that all BI needs is better tools. I am not arguing against better tools by any means - who doesn't love a great piece of software to accomplish a given task?&lt;br /&gt;&lt;br /&gt;The issue is that &lt;span style="font-style: italic;"&gt;it's not simply better tools that lead to successful use of analytics&lt;/span&gt;. Possessing Excel doesn't turn me into an CPA, nor does having a copy of Illustrator turn me into a graphic artist.&lt;br /&gt;&lt;br /&gt;I am not suggesting that BI should only be the domain of the privileged few. But making better tools available to business stakeholders is putting the cart before the horse. Which of course begs the question, "What's the horse?"&lt;br /&gt;&lt;br /&gt;The "horse" is of course, much harder to identify than a software purchase, which I think is one of the reasons why tools tend to get the focus over other more nebulous issues. In my opinion, the critical piece that allows effective use of whatever tools are at hand is when an organization embraces an "analytic mindset". In other words, peoples perceptions, beliefs, and capabilities must be the first change agent. Only then can tools become part of the solution.&lt;br /&gt;&lt;br /&gt;The analytic mindset looks like:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Intolerance for &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;siloed&lt;/span&gt; data, "&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;spreadmarts&lt;/span&gt;", do it yourself &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;ETL&lt;/span&gt;&lt;/li&gt;&lt;li&gt;Belief in the value of analytics for Corporate Performance Management, that goes all the way to the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;CxO&lt;/span&gt; level. This includes&lt;/li&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;sponsorship of priorities&lt;/li&gt;&lt;li&gt;creation of cross departmental teams&lt;/li&gt;&lt;li&gt;allocation of budgets.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;li&gt;Acknowledgement that the whole problem won't be solved in a single deployment, but it's better to evolve towards a long term vision, than to do nothing&lt;/li&gt;&lt;li&gt;Emphasis on communication and education&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Deep involvement of the business stakeholders, making them partners (with IT) in the development of the BI systems within the organization&lt;/li&gt;&lt;/ul&gt;Call me cynical, but I am bracing myself for the questions that come after Office 2010 and Gemini are released and in wide use: “We’re now able to look at 100 million rows in Excel, but our people are still arguing over what “the truth” is, and we still have a debate over what success looks like for our organization. These tools &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;aren&lt;/span&gt;’t any good.”&lt;br /&gt;&lt;br /&gt;I am working with one organization that is embracing the "Analytic Mindset" right now. The C-level sponsors have intentionally not upgraded tools but have instead devoted resources to education and building a sound data infrastructure. I have much better hopes for this organization that is using 4 year old tools, than for any organization that pins its hopes simply on better tools.&lt;br /&gt;&lt;br /&gt;The question I am left wondering is "Who is responsible for promoting the message of the 'analytic mindset'?" &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;TDWI&lt;/span&gt; does a pretty good job with their "&lt;a href="http://www.tdwi.org/publications/display.aspx?id=7288"&gt;BI Maturity Model&lt;/a&gt;". It would be great if some of the tool vendors started to reinforce this idea. Ironically if they would do so, they'd wind up with increased adoption rates (i.e. more sales).&lt;br /&gt;&lt;br /&gt;This is why I formed &lt;a href="http://contextq.com/"&gt;my company&lt;/a&gt; to address not only BI Consulting, but also Training and Mentoring. In hopes of helping organizations get the horse before the cart when it comes to success with BI.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7908805765465935338-320312338247336872?l=tomhuguelet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tomhuguelet.blogspot.com/feeds/320312338247336872/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tomhuguelet.blogspot.com/2009/07/ballmer-and-muglia-have-it-wrong.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7908805765465935338/posts/default/320312338247336872'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7908805765465935338/posts/default/320312338247336872'/><link rel='alternate' type='text/html' href='http://tomhuguelet.blogspot.com/2009/07/ballmer-and-muglia-have-it-wrong.html' title='Ballmer and Muglia have it wrong'/><author><name>Tom Huguelet</name><uri>http://www.blogger.com/profile/11160345397812045735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://2.bp.blogspot.com/_hgc6jdr_cb0/ShMjnmn6uFI/AAAAAAAAAAM/RqK7uUUCwtc/S220/tom+huguelet.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7908805765465935338.post-6670003781857852821</id><published>2009-07-06T22:35:00.004-05:00</published><updated>2009-07-06T22:55:16.564-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web'/><category scheme='http://www.blogger.com/atom/ns#' term='research'/><category scheme='http://www.blogger.com/atom/ns#' term='friends'/><title type='text'>The unlikely entrepreneur</title><content type='html'>Have you ever found yourself doing something and suddenly realized, "Now I am a grown-up"? Like when you closed on your first home, bought something like a sump pump . . .&lt;br /&gt;&lt;br /&gt;I had the "Now I am an &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_0"&gt;entrepreneur&lt;/span&gt;." moment yesterday when I was ordering a toll-free number for my office line and had to research which ones supported conference calling.&lt;br /&gt;&lt;br /&gt;I almost hate to use the "e-word" because I always envision some super-organized, hyper-motivated, impossibly educated go-getter with an impeccable pedigree. - and that seems like a hard image to fill. I am just a guy with a fair amount of BI experience that realized that certain &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_1"&gt;people&lt;/span&gt; and roles were being ignored by traditional &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_2"&gt;consulting models&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;I really posted this to document that I went with Kall8 for the toll free number with conference calling. I have only used them a bit, but they seem decent. (If you're looking and would like to knock 5 clams off of my monthly bill, click &lt;a href="http://www.kall8.com/referral.php"&gt;here&lt;/a&gt; and reference eight-eight-eight-678-4279)&lt;br /&gt;&lt;br /&gt;Also (very related to the &lt;a href="http://tomhuguelet.blogspot.com/2009/05/analysis-paralysis-at-web-hosting-speed.html"&gt;previous post&lt;/a&gt;), after researching on the web, I ultimately searched one of my LinkedIn networks to see who had solved this problem already. So that's : Friends - 2 / Web - 0, and counting.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7908805765465935338-6670003781857852821?l=tomhuguelet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tomhuguelet.blogspot.com/feeds/6670003781857852821/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tomhuguelet.blogspot.com/2009/07/unlikely-entrepreneur.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7908805765465935338/posts/default/6670003781857852821'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7908805765465935338/posts/default/6670003781857852821'/><link rel='alternate' type='text/html' href='http://tomhuguelet.blogspot.com/2009/07/unlikely-entrepreneur.html' title='The unlikely entrepreneur'/><author><name>Tom Huguelet</name><uri>http://www.blogger.com/profile/11160345397812045735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://2.bp.blogspot.com/_hgc6jdr_cb0/ShMjnmn6uFI/AAAAAAAAAAM/RqK7uUUCwtc/S220/tom+huguelet.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7908805765465935338.post-8187417544223101734</id><published>2009-05-29T09:38:00.005-05:00</published><updated>2009-05-29T15:35:27.938-05:00</updated><title type='text'>Analysis Paralysis at Web (hosting) speed</title><content type='html'>&lt;span style="font-family:verdana;"&gt;Today I was doing research for the optimal hosting provider for my new business (ContextQ). I had fairly modest needs, but with anything that requires a commitment of time, or perhaps even more important, that technology works as intended, I am a stickler for research and especially customer reviews or testimonials. Perhaps I even go a bit overboard. (My daughter and fiancée would say I &lt;span style="font-weight: bold;"&gt;definitely&lt;/span&gt; go overboard.)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;Like anyone reading this (I imagine), I am fairly used to getting around the web, and fairly used to sorting the &lt;a href="http://en.wikipedia.org/wiki/Chaff"&gt;wheat from the chaff&lt;/a&gt;. However, I was not quite prepared for the chaff-to-wheat ratio of this particular type of search. The level of bogus pages to actually useful reviews was astounding.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;In hindsight, it makes sense. The web hosting sites are all going to use whatever tools they have in their arsenal to make sure that their entries appear top-most in any search results. These folks are perfectly equipped to spin up as many “sites” as needed to saturate the search engines.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;Many of these pages purport to be unbiased, but are clearly propped up shills for various hosts.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;I guess I should say at this point that I don't know for a fact whether any of these pages are shills. I suppose it's possible that they could be very badly-written and horribly incomplete attempts at unbiased reviews, but I doubt it. What follows then is a recounting of my searching efforts and my opinion about the sites I found. I did find some good pages, and I will link to those in the end.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;I should also say that I think the proportion of negative reviews to positive is pretty high. The energy to fuel a review that comes from frustration is much higher than the energy that comes from complacent satisfaction. A sad but commonplace fact of human nature. This is what steered me away from my original plan of having my page hosted by the original registrar of my domain&lt;span style="font-weight: bold;"&gt;.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-family:verdana;" &gt;1) The first phenomenon I encountered was the pseudo comparison page:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.webhostingpadreview.org/webhostingpad-vs-lunarpages-budget-cpanel-hosting-comparison"&gt;&lt;span style="font-family:verdana;"&gt;http://www.webhostingpadreview.org/webhostingpad-vs-lunarpages-budget-cpanel-hosting-comparison&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.lunarpagesreview.org/lunarpages-vs-webhostingpad-lunarpages-webhostingpad-comparison"&gt;&lt;span style="font-family:verdana;"&gt;http://www.lunarpagesreview.org/lunarpages-vs-webhostingpad-lunarpages-webhostingpad-comparison&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;What’s interesting is that each page promotes the service that is contained in the domain name. It’s not that they are biased toward a particular provider; it’s just that they are almost information-free. My guess is that these pages exist simply to support referral revenue.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:verdana;" &gt;2) So, what were the mediocre sites? (By mediocre I mean: has what may be legitimate reviews, but only for selected hosting providers).&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.alreadyhosting.com/"&gt;&lt;span style="font-family:verdana;"&gt;http://www.alreadyhosting.com/&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://webhosting.reviewitonline.net/"&gt;&lt;span style="font-family:verdana;"&gt;http://webhosting.reviewitonline.net/&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;Amazingly enough, two of my “go-to” sites for reviews (PCMag &amp;amp; &lt;a href="http://reviews.cnet.com/2001-6540_-0.html?"&gt;CNet&lt;/a&gt;) had next to nothing to offer for web hosting.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:verdana;" &gt;3) What were the “bad” sites? (By bad I mean, deceptively or poorly organized and clearly biased).&lt;/span&gt;&lt;span style="font-weight: bold;"&gt; [Note that I am not linking to the bad sites ...]&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;webhostingjudge.com&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;tophosts.com&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;thetop10bestwebhosting.com&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;hostreview.com&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:verdana;" &gt;4) So, what were the decent sites? (By decent I mean not stellar, but a good faith attempt at real reviews and balanced coverage).&lt;/span&gt;&lt;br /&gt;&lt;a href="http://webhostinggeeks.com/user-reviews/index2.php?item_id=22"&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;webhostinggeeks.com&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.webhostingjury.com/"&gt;&lt;span style="font-family:verdana;"&gt;webhostingjury.com&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;&lt;a href="http://www.webhostingsecretrevealed.com/"&gt;webhostingsecretrevealed.com&lt;/a&gt; (good supplemental info)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.webhostingstuff.com/"&gt;&lt;span style="font-family:verdana;"&gt;webhostingstuff.com&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.serioushostingreviews.com/"&gt;&lt;span style="font-family:verdana;"&gt;serioushostingreviews.com&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.hosting-review.com/"&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;hosting-review.com&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:verdana;" &gt;5) So, what were the good sites?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://whreviews.com/presale-questions.htm"&gt;&lt;span style="font-family:verdana;"&gt;http://whreviews.com/&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.webhostingtalk.com/"&gt;&lt;span style="font-family:verdana;"&gt;http://www.webhostingtalk.com/&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:verdana;" &gt;What did I end up doing?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;&lt;span style="font-style: italic;"&gt;I went with a hosting provider that a trusted friend had recently selected.&lt;/span&gt; I did also vet the reviews for this provider, but that was a secondary, confirming effort. The decisions and opinions of friends count for a lot!&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:verdana;" &gt;A tangent: What is needed?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;It’s a safe statement that &lt;a href="http://www.google.com/"&gt;Google&lt;/a&gt;’s behavior-derived valuation of pages and their robust web-crawling revolutionized the web. I remember (pre-google) when the problem was that the page was there, but there was no catalog or spider that linked to it so if you didn't already know the URL you were SOL.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;We seem to have solved the indexing problem, but now there is too much garbage in the search results. And the “chaff” is smart enough to generate sufficient clicks to appear in top search results.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;I am hopeful that the additional value offered by search engines like &lt;a href="http://www.bing.com/"&gt;Kumo/Bing &lt;/a&gt;will help us humans find the wheat again. Let’s hope for a chaff-factor to make its way into the bigger search engines.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;Final note: if I had known the hassle and delay involved in transferring a domain, I probably would have just let my original registrar host my site. Live and learn. (I can hear my daughter and &lt;/span&gt;&lt;span style="font-family:verdana;"&gt;fiancée &lt;/span&gt;&lt;span style="font-family:verdana;"&gt;chuckling now...)&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7908805765465935338-8187417544223101734?l=tomhuguelet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tomhuguelet.blogspot.com/feeds/8187417544223101734/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tomhuguelet.blogspot.com/2009/05/analysis-paralysis-at-web-hosting-speed.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7908805765465935338/posts/default/8187417544223101734'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7908805765465935338/posts/default/8187417544223101734'/><link rel='alternate' type='text/html' href='http://tomhuguelet.blogspot.com/2009/05/analysis-paralysis-at-web-hosting-speed.html' title='Analysis Paralysis at Web (hosting) speed'/><author><name>Tom Huguelet</name><uri>http://www.blogger.com/profile/11160345397812045735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://2.bp.blogspot.com/_hgc6jdr_cb0/ShMjnmn6uFI/AAAAAAAAAAM/RqK7uUUCwtc/S220/tom+huguelet.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7908805765465935338.post-5820846753469177586</id><published>2009-05-19T10:46:00.004-05:00</published><updated>2009-05-19T15:34:29.118-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Business Intelligence'/><category scheme='http://www.blogger.com/atom/ns#' term='BI'/><title type='text'>Welcome! - and what this Blog is about</title><content type='html'>&lt;span style="font-family:verdana;"&gt;I chose "Information in Context" as the name of this blog for two primary reasons:&lt;/span&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;span style="font-family:verdana;"&gt;It's a central concept behind Business Intelligence, which is one of my main passions and endeavors. This is the idea that information really only becomes "Business Intelligence" when it has been imbued with the appropriate context. One might say that the true art of BI rests not with the technology or the &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_0"&gt;methodology&lt;/span&gt;, but rather with the accomplishment of creating &lt;em&gt;context&lt;/em&gt; for a given audience.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:verdana;"&gt;It's sufficiently ambiguous (i.e. flexible) to allow me to post about nearly anything that might be interesting or useful.&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;span style="font-family:verdana;"&gt;The main focus of these postings will be around Business Intelligence, but other areas that might find their way on to the blog could well be personal productivity, cool software, philosophy, music, motorcycles, cooking, photography.&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7908805765465935338-5820846753469177586?l=tomhuguelet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tomhuguelet.blogspot.com/feeds/5820846753469177586/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tomhuguelet.blogspot.com/2009/05/welcome-and-what-this-blog-is-about.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7908805765465935338/posts/default/5820846753469177586'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7908805765465935338/posts/default/5820846753469177586'/><link rel='alternate' type='text/html' href='http://tomhuguelet.blogspot.com/2009/05/welcome-and-what-this-blog-is-about.html' title='Welcome! - and what this Blog is about'/><author><name>Tom Huguelet</name><uri>http://www.blogger.com/profile/11160345397812045735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://2.bp.blogspot.com/_hgc6jdr_cb0/ShMjnmn6uFI/AAAAAAAAAAM/RqK7uUUCwtc/S220/tom+huguelet.jpg'/></author><thr:total>0</thr:total></entry></feed>
