<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://sqlblog.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Erin Welker</title><link>http://sqlblog.com/blogs/erin_welker/default.aspx</link><description>SQL Server and Business Intelligence</description><dc:language>en</dc:language><generator>CommunityServer 2.1 SP2 (Build: 61129.1)</generator><item><title>SQL Saturday #35 - Dallas</title><link>http://sqlblog.com/blogs/erin_welker/archive/2010/01/17/sql-saturday-35-dallas.aspx</link><pubDate>Sun, 17 Jan 2010 18:09:00 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:21124</guid><dc:creator>ErinW</dc:creator><slash:comments>2</slash:comments><comments>http://sqlblog.com/blogs/erin_welker/comments/21124.aspx</comments><wfw:commentRss>http://sqlblog.com/blogs/erin_welker/commentrss.aspx?PostID=21124</wfw:commentRss><description>&lt;P&gt;I had intended to post this weeks ago.&amp;nbsp; I guess I'm still postponing my New Year's resolution to stop procrastinating. &lt;/P&gt;
&lt;P&gt;We're organizing our first SQL Saturday event in Dallas on May 22nd, hoping to make it an annual event.&amp;nbsp; It will be held at the &lt;A href="http://maps.google.com/maps?hl=en&amp;amp;source=hp&amp;amp;q=300+400+East+Spring+Valley+Road,+75081&amp;amp;um=1&amp;amp;ie=UTF-8&amp;amp;hq=&amp;amp;hnear=400+E+Spring+Valley+Rd,+Richardson,+TX+75081&amp;amp;gl=us&amp;amp;ei=4lBTS7bkEY7aNfHjqY4J&amp;amp;sa=X&amp;amp;oi=geocode_result&amp;amp;ct=title&amp;amp;resnum=1&amp;amp;ved=0CAoQ8gEwAA"&gt;Region 10 Education Center&lt;/A&gt; in Richardson, and we currently have 4 tracks slated:&amp;nbsp; Development, Administration, Business Intelligence and Beginner.&amp;nbsp; I'm particularly excited about the Beginner track since we so rarely find those at the big conferences.&amp;nbsp; This could be a valuable set of sessions, especially for those that are moving from one area of focus to another.&amp;nbsp; If you live in or around the Dallas area and have been hoping to find one of these events near you, here's your chance!&amp;nbsp; The event, like all SQL Saturdays, is free.&amp;nbsp; We are collecting a fee of $10 for lunch onsite.&amp;nbsp; &lt;A class="" href="http://www.sqlsaturday.com/35/register.aspx"&gt;&lt;STRONG&gt;Click here&lt;/STRONG&gt;&lt;/A&gt;&lt;STRONG&gt; to register.&lt;/STRONG&gt;&amp;nbsp; Registration is limited, so don't...um...procrastinate.&lt;/P&gt;
&lt;P&gt;Our &lt;A class="" href="http://www.sqlsaturday.com/35/callforspeakers.aspx"&gt;&lt;STRONG&gt;call for speakers&lt;/STRONG&gt;&lt;/A&gt; is open and will be open until mid-February.&amp;nbsp; We've already received some great abstracts from well-known speakers, and I hoping we'll see even more.&amp;nbsp; Even if you've never presented before and want to get your feet wet, this is a great opportunity.&amp;nbsp; Everyone has something interesting to share with their peers and this is a good opportunity to do so.&lt;/P&gt;&lt;img src="http://sqlblog.com/aggbug.aspx?PostID=21124" width="1" height="1"&gt;</description></item><item><title>Automating UBO</title><link>http://sqlblog.com/blogs/erin_welker/archive/2009/11/15/automating-ubo.aspx</link><pubDate>Sun, 15 Nov 2009 16:14:15 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:18860</guid><dc:creator>ErinW</dc:creator><slash:comments>0</slash:comments><comments>http://sqlblog.com/blogs/erin_welker/comments/18860.aspx</comments><wfw:commentRss>http://sqlblog.com/blogs/erin_welker/commentrss.aspx?PostID=18860</wfw:commentRss><description>&lt;p&gt;I was preparing for my presentation at PASS and wanted to show some code for automating usage-based optimization.&amp;#160; This is the process that allows for creating aggregation designs based on past query activity.&amp;#160; I was surprised to find that there were no code examples posted on the web on how to do this, at least none that I could find.&amp;#160; BIDSHelper and AggManager have similar functionality but, upon examining the code, they both use a more manual approach of examining each &lt;em&gt;Dataset&lt;/em&gt; column in the query log and creating an aggregation when it encounters a &amp;quot;1&amp;quot; in the bit string.&amp;#160; I believe they did so due to the inferiority of the UBO algorithm in SQL Server 2005.&amp;#160; That being said, using the out-of-the-box UBO algorithm leveraged here is only recommended for use with SQL Server 2008.&lt;/p&gt;  &lt;p&gt;I felt sure that this functionality had to be available in AMO (Analysis Management Objects) because it existed in its predecessor, DSO.&amp;#160; It turns out that there is supporting documentation in Books Online, but it took some help from some of the folks at Microsoft to find it.&amp;#160; Note to self, when looking for detailed documentation of functionality in AMO, look under XMLA.&amp;#160; This kind of makes sense - I just would have expected it to be replicated in the AMO documentation.&amp;#160; Maybe it just takes a developer to know how to find it.&amp;#160; XMLA can also be used as a means of automating UBO but I find the AMO method to be a little more elegant.&lt;/p&gt;  &lt;p&gt;The methods used for leveraging query logs when designing aggregations are the same as those used in generic aggregation design.&amp;#160; The only difference is that a collection of queries is passed in addition to the other parameters.&amp;#160; There are two things to note, however:&amp;#160; &lt;/p&gt;  &lt;p&gt;First, the &lt;em&gt;Dataset&lt;/em&gt; column that is read from the query log must be preceded by a weighting factor, usually the number of times the query appeared in the log.&amp;#160; &lt;/p&gt;  &lt;p&gt;Second, the &lt;em&gt;queries&lt;/em&gt; string collection must only be passed the first time the method is executed.&amp;#160; If you pass this parameter in on subsequent calls you will get an error.&amp;#160; The &lt;em&gt;DesignAggregations&lt;/em&gt; method is executed in a loop that is terminated when the size and/or optimization goals are met.&amp;#160; I'm not sure why it couldn't just ignore the &lt;em&gt;queries&lt;/em&gt; parameter in subsequent calls, but it doesn't, so you need to code accordingly.&lt;/p&gt;  &lt;p&gt;Both of these nuances are documented in &lt;a href="http://msdn.microsoft.com/en-us/library/ms186702.aspx"&gt;Books Online&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Here's an AMO code snippet for adding an aggregation design based on query history.&amp;#160; Note that development is not among my primary skill sets, so you'll probably want to clean it up - but it works.&amp;#160; For the sake of the session demo, I hard-coded a measure group and created a brand new aggregation design.&amp;#160; Best practices indicate that you should add these new aggregations to the existing design so that you won't throw away aggregations that were leveraged by previously well-performing queries. In a real-world scenario, you'd also want to filter the query log so that you only design aggregations for queries that had a long &lt;em&gt;Duration&lt;/em&gt;:&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom:0pt;line-height:normal;mso-layout-grid-align:none;"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="font-size:8pt;line-height:115%;font-family:;"&gt;&lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p class="MsoNormal" style="margin-bottom:0pt;line-height:normal;mso-layout-grid-align:none;" align="left"&gt;&lt;/p&gt;    &lt;p class="MsoNormal" align="left"&gt;&lt;span style="font-size:8pt;line-height:115%;font-family:;"&gt;&lt;span style="color:blue;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:8pt;line-height:115%;font-family:;"&gt;&lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;Public&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt; Main()

   &lt;span class="rem"&gt;' Declarations&lt;/span&gt;

   &lt;span class="rem"&gt;' Get Server and Database name from DTS connection object &lt;/span&gt;
   &lt;span class="kwrd"&gt;Dim&lt;/span&gt; oSSASConnection &lt;span class="kwrd"&gt;As&lt;/span&gt; ConnectionManager = Dts.Connections(&lt;span class="str"&gt;&amp;quot;Analysis Services&amp;quot;&lt;/span&gt;)
   &lt;span class="kwrd"&gt;Dim&lt;/span&gt; oSQLConnection &lt;span class="kwrd"&gt;As&lt;/span&gt; ConnectionManager = Dts.Connections(&lt;span class="str"&gt;&amp;quot;SQL Server&amp;quot;&lt;/span&gt;)

   &lt;span class="kwrd"&gt;Dim&lt;/span&gt; sSSASServer &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;String&lt;/span&gt; = &lt;span class="kwrd"&gt;CStr&lt;/span&gt;(oSSASConnection.Properties(&lt;span class="str"&gt;&amp;quot;ServerName&amp;quot;&lt;/span&gt;).GetValue(oSSASConnection))
   &lt;span class="kwrd"&gt;Dim&lt;/span&gt; oSSASServer &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;New&lt;/span&gt; Microsoft.AnalysisServices.Server

   &lt;span class="rem"&gt;' SQL Connection&lt;/span&gt;
   &lt;span class="kwrd"&gt;Dim&lt;/span&gt; strSQLQuery &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;String&lt;/span&gt;
   &lt;span class="kwrd"&gt;Dim&lt;/span&gt; strConnection &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;String&lt;/span&gt;
   &lt;span class="kwrd"&gt;Dim&lt;/span&gt; sqlCn &lt;span class="kwrd"&gt;As&lt;/span&gt; SqlConnection
   &lt;span class="kwrd"&gt;Dim&lt;/span&gt; oServerProperty &lt;span class="kwrd"&gt;As&lt;/span&gt; ServerProperty
   &lt;span class="kwrd"&gt;Dim&lt;/span&gt; sqlDataAdapter1 &lt;span class="kwrd"&gt;As&lt;/span&gt; SqlDataAdapter
   &lt;span class="kwrd"&gt;Dim&lt;/span&gt; dsQueryLog &lt;span class="kwrd"&gt;As&lt;/span&gt; DataSet
   &lt;span class="kwrd"&gt;Dim&lt;/span&gt; dvQueryLog &lt;span class="kwrd"&gt;As&lt;/span&gt; DataView
   &lt;span class="kwrd"&gt;Dim&lt;/span&gt; dRow &lt;span class="kwrd"&gt;As&lt;/span&gt; DataRow

   &lt;span class="rem"&gt;' Aggregation variables&lt;/span&gt;
   &lt;span class="kwrd"&gt;Dim&lt;/span&gt; Queries &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;New&lt;/span&gt; StringCollection
   &lt;span class="kwrd"&gt;Dim&lt;/span&gt; strAggPrefix &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;String&lt;/span&gt;
   &lt;span class="kwrd"&gt;Dim&lt;/span&gt; aggName &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;String&lt;/span&gt;
   &lt;span class="kwrd"&gt;Dim&lt;/span&gt; aggDesign &lt;span class="kwrd"&gt;As&lt;/span&gt; AggregationDesign
   &lt;span class="kwrd"&gt;Dim&lt;/span&gt; optimization &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Double&lt;/span&gt; = 0
   &lt;span class="kwrd"&gt;Dim&lt;/span&gt; storage &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Double&lt;/span&gt; = 0
   &lt;span class="kwrd"&gt;Dim&lt;/span&gt; aggCount &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Long&lt;/span&gt; = 0
   &lt;span class="kwrd"&gt;Dim&lt;/span&gt; finished &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Boolean&lt;/span&gt; = &lt;span class="kwrd"&gt;False&lt;/span&gt;
   &lt;span class="kwrd"&gt;Dim&lt;/span&gt; firsttime &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Boolean&lt;/span&gt; = &lt;span class="kwrd"&gt;True&lt;/span&gt;

   &lt;span class="rem"&gt;' Measure group variables&lt;/span&gt;
   &lt;span class="kwrd"&gt;Dim&lt;/span&gt; DatabaseName &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;String&lt;/span&gt;
   &lt;span class="kwrd"&gt;Dim&lt;/span&gt; CubeName &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;String&lt;/span&gt;
   &lt;span class="kwrd"&gt;Dim&lt;/span&gt; oMeasureGroup &lt;span class="kwrd"&gt;As&lt;/span&gt; MeasureGroup
   &lt;span class="kwrd"&gt;Dim&lt;/span&gt; MeasureGroupID &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;String&lt;/span&gt;
   &lt;span class="kwrd"&gt;Dim&lt;/span&gt; oPartition &lt;span class="kwrd"&gt;As&lt;/span&gt; Partition

   &lt;span class="rem"&gt;' Initialize&lt;/span&gt;
   DatabaseName = &lt;span class="str"&gt;&amp;quot;Adventure Works DW 2008&amp;quot;&lt;/span&gt;
   CubeName = &lt;span class="str"&gt;&amp;quot;Adventure Works&amp;quot;&lt;/span&gt;
   MeasureGroupID = &lt;span class="str"&gt;&amp;quot;Fact Sales Summary&amp;quot;&lt;/span&gt;
   strAggPrefix = &lt;span class="str"&gt;&amp;quot;PASS2009_&amp;quot;&lt;/span&gt;

   &lt;span class="kwrd"&gt;Try&lt;/span&gt;

      oSSASServer.Connect(sSSASServer)

      &lt;span class="rem"&gt;' Initialize connections&lt;/span&gt;
      oServerProperty = oSSASServer.ServerProperties(&lt;span class="str"&gt;&amp;quot;Log\QueryLog\QueryLogConnectionString&amp;quot;&lt;/span&gt;)
      strConnection = oServerProperty.Value.Substring(oServerProperty.Value.IndexOf(&lt;span class="str"&gt;&amp;quot;;&amp;quot;&lt;/span&gt;) + 1)

      sqlCn = &lt;span class="kwrd"&gt;New&lt;/span&gt; SqlConnection(strConnection)
      sqlCn.Open()

      oMeasureGroup = oSSASServer.Databases(DatabaseName).Cubes(CubeName).MeasureGroups(MeasureGroupID)

      &lt;span class="rem"&gt;' This would be a good place to update the EstimatedRows in the measure group and partitions&lt;/span&gt;
      &lt;span class="rem"&gt;' Set oMeasureGroup.EstimatedRows = to the count of rows in the source fact table&lt;/span&gt;

      &lt;span class="rem"&gt;' Get select queries from the query log&lt;/span&gt;
      strSQLQuery = &lt;span class="str"&gt;&amp;quot;SELECT dataset, COUNT(*) FROM OLAPQueryLog WHERE MSOLAP_Database = '&amp;quot;&lt;/span&gt; &amp;amp; DatabaseName &amp;amp; &lt;span class="str"&gt;&amp;quot;' &amp;quot;&lt;/span&gt; &amp;amp; _
          &lt;span class="str"&gt;&amp;quot; AND MSOLAP_ObjectPath = 'ERIN-PC\SQL2008.&amp;quot;&lt;/span&gt; &amp;amp; DatabaseName &amp;amp; &lt;span class="str"&gt;&amp;quot;.&amp;quot;&lt;/span&gt; &amp;amp; CubeName &amp;amp; &lt;span class="str"&gt;&amp;quot;.&amp;quot;&lt;/span&gt; &amp;amp; oMeasureGroup.ID &amp;amp; _
          &lt;span class="str"&gt;&amp;quot;' GROUP BY dataset&amp;quot;&lt;/span&gt;
      sqlDataAdapter1 = &lt;span class="kwrd"&gt;New&lt;/span&gt; SqlDataAdapter(strSQLQuery, sqlCn)
      dsQueryLog = &lt;span class="kwrd"&gt;New&lt;/span&gt; DataSet
      sqlDataAdapter1.Fill(dsQueryLog, strSQLQuery)
      dvQueryLog = dsQueryLog.Tables(strSQLQuery).DefaultView

      &lt;span class="rem"&gt;' Populate the Queries string collection with the distinct queries from the query log&lt;/span&gt;
      &lt;span class="kwrd"&gt;For&lt;/span&gt; &lt;span class="kwrd"&gt;Each&lt;/span&gt; dRow &lt;span class="kwrd"&gt;In&lt;/span&gt; dvQueryLog.Table.Rows
         Queries.Add(dRow(1).ToString &amp;amp; &lt;span class="str"&gt;&amp;quot;,&amp;quot;&lt;/span&gt; &amp;amp; dRow(0).ToString)
      &lt;span class="kwrd"&gt;Next&lt;/span&gt;

      &lt;span class="rem"&gt;' Add a new design to the Fact Sales Summary measure group and design aggregations based on the passed list of queries&lt;/span&gt;
      aggName = strAggPrefix &amp;amp; &lt;span class="str"&gt;&amp;quot;_&amp;quot;&lt;/span&gt; &amp;amp; oMeasureGroup.Name

      aggDesign = oMeasureGroup.AggregationDesigns.Add
      aggDesign.Name = aggName

      aggDesign.InitializeDesign()
      &lt;span class="kwrd"&gt;Do&lt;/span&gt; &lt;span class="kwrd"&gt;While&lt;/span&gt; ((&lt;span class="kwrd"&gt;Not&lt;/span&gt; finished) &lt;span class="kwrd"&gt;And&lt;/span&gt; (optimization &amp;lt; 100))
         &lt;span class="kwrd"&gt;If&lt;/span&gt; firsttime &lt;span class="kwrd"&gt;Then&lt;/span&gt;
            aggDesign.DesignAggregations(optimization, storage, aggCount, finished, Queries)
            firsttime = &lt;span class="kwrd"&gt;False&lt;/span&gt;
         &lt;span class="kwrd"&gt;Else&lt;/span&gt;
            aggDesign.DesignAggregations(optimization, storage, aggCount, finished)
         &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;If&lt;/span&gt;
      &lt;span class="kwrd"&gt;Loop&lt;/span&gt;

      aggDesign.FinalizeDesign()
      aggDesign.Update()

      &lt;span class="rem"&gt;' Assign the new aggregation design to all partitions in the measure group&lt;/span&gt;
      &lt;span class="kwrd"&gt;For&lt;/span&gt; &lt;span class="kwrd"&gt;Each&lt;/span&gt; oPartition &lt;span class="kwrd"&gt;In&lt;/span&gt; oMeasureGroup.Partitions
         oPartition.AggregationDesignID = aggDesign.ID
         oPartition.Update()
      &lt;span class="kwrd"&gt;Next&lt;/span&gt;

      &lt;span class="rem"&gt;' Process the indexes to build the new aggregations&lt;/span&gt;
      &lt;span class="rem"&gt;' oMeasureGroup.Process(Microsoft.AnalysisServices.ProcessType.ProcessIndexes)&lt;/span&gt;

      Dts.TaskResult = ScriptResults.Success
      sqlCn.Close()

   &lt;span class="kwrd"&gt;Catch&lt;/span&gt; ex &lt;span class="kwrd"&gt;As&lt;/span&gt; Exception
      Dts.Events.FireError(0, &lt;span class="str"&gt;&amp;quot;Design aggregations failed - &amp;quot;&lt;/span&gt;, ex.Message, &lt;span class="str"&gt;&amp;quot;&amp;quot;&lt;/span&gt;, 0)
      Dts.TaskResult = ScriptResults.Failure
   &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Try&lt;/span&gt;

   &lt;span class="kwrd"&gt;If&lt;/span&gt; oSSASServer.Connected &lt;span class="kwrd"&gt;Then&lt;/span&gt;
      oSSASServer.Disconnect()
   &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;If&lt;/span&gt;

&lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt;&lt;/pre&gt;
  
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/p&gt;&lt;img src="http://sqlblog.com/aggbug.aspx?PostID=18860" width="1" height="1"&gt;</description></item><item><title>Using SSAS 2008 tools with SSAS 2005 cubes</title><link>http://sqlblog.com/blogs/erin_welker/archive/2009/02/08/using-ssas-2008-tools-with-ssas-2005-cubes.aspx</link><pubDate>Sun, 08 Feb 2009 17:01:06 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:11775</guid><dc:creator>ErinW</dc:creator><slash:comments>0</slash:comments><comments>http://sqlblog.com/blogs/erin_welker/comments/11775.aspx</comments><wfw:commentRss>http://sqlblog.com/blogs/erin_welker/commentrss.aspx?PostID=11775</wfw:commentRss><description>&lt;p&gt;It's been awhile since I've blogged.&amp;#160; Every time it seems I'll get some spare moments, something comes up to direct my attention elsewhere.&amp;#160; My current engagement keeps me busy and embedded in SQL Server 2005.&amp;#160; Though I've presented on some of the cool features of SQL Server 2008, I feel I have very little new insight to publish on that topic that hasn't already been covered on this site.&amp;#160; It occurs to me that I'm most readers are in the same position that I am.&amp;#160; Unless driven to SQL Server 2008 by particular features, I suspect many remain on 2005 (and, dare I say it, 2000).&lt;/p&gt;  &lt;p&gt;One of the many aspects of SQL Server 2008 that appeals to me is the cube designers in Business Intelligence Development Studio (BIDS).&amp;#160; For example, attribute relationships are a commonly misunderstood aspect of cube dimensions in SQL Server 2005/2008.&amp;#160; Later SQL Server 2005 service packs added some warnings when attribute relationships were not designed into dimension hierarchies, but these are easy to ignore and ARs are not well understood by many cube designers.&amp;#160; Why are attribute relationships so important?&amp;#160; That's something I may save for another blog, but I suspect it has already been blogged about elsewhere on this site.&amp;#160; My point is that BIDS in 2008 provides far more feedback on various cube/dimension design aspects, attribute relationship definitions being one.&amp;#160; I'm including a screen snapshot of the attribute relationship designer in 2008 BIDS to demonstrate my point.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://sqlblog.com/blogs/erin_welker/WindowsLiveWriter/UsingSSAS2008toolswithSSAS2005cubes_9AE0/Attribute%20Relationship%20designer%202_2.jpg"&gt;&lt;img style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px;" height="303" alt="Attribute Relationship designer 2" src="http://sqlblog.com/blogs/erin_welker/WindowsLiveWriter/UsingSSAS2008toolswithSSAS2005cubes_9AE0/Attribute%20Relationship%20designer%202_thumb.jpg" width="553" border="0" /&gt;&lt;/a&gt;&amp;#160; &lt;/p&gt;  &lt;p&gt;As you can see, it's far more intuitive.&amp;#160; &lt;/p&gt;  &lt;p&gt;And for those courageous enough to take on the manual design of aggregations, the aggregation designer in 2008 is killer.&amp;#160; I'm not recommending this.&amp;#160; In fact, I use it more to view the aggregations that have been designed by the aggregation design wizard or usage-based optimizer.&amp;#160; There is a separate application that could be downloaded prior to 2008, but I found the interface to be difficult to work with.&amp;#160; Here's what the aggregation designer looks like in BIDS 2008:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://sqlblog.com/blogs/erin_welker/WindowsLiveWriter/UsingSSAS2008toolswithSSAS2005cubes_9AE0/SQL%20Server%202008%20Aggregation%20Designer_2.jpg"&gt;&lt;img style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px;" height="419" alt="SQL Server 2008 Aggregation Designer" src="http://sqlblog.com/blogs/erin_welker/WindowsLiveWriter/UsingSSAS2008toolswithSSAS2005cubes_9AE0/SQL%20Server%202008%20Aggregation%20Designer_thumb.jpg" width="559" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;What I learned from a Tech Ed presentation by Donald Farmer is that these tools can be used to manage a cube implemented in SQL Server 2005.&amp;#160; How cool is that?!&amp;#160; So, if your organization plans to stay on SQL Server 2005 on the server-side for a little while longer, it doesn't mean you can't take advantage of &lt;u&gt;some&lt;/u&gt; of the great new client tools in SQL Server 2008 to make life a little easier in the meantime.&lt;/p&gt;&lt;img src="http://sqlblog.com/aggbug.aspx?PostID=11775" width="1" height="1"&gt;</description></item><item><title>Analysis Services Performance Whitepaper - a little light reading</title><link>http://sqlblog.com/blogs/erin_welker/archive/2008/12/01/analysis-services-performance-whitepaper-a-little-light-reading.aspx</link><pubDate>Tue, 02 Dec 2008 03:27:24 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:10229</guid><dc:creator>ErinW</dc:creator><slash:comments>1</slash:comments><comments>http://sqlblog.com/blogs/erin_welker/comments/10229.aspx</comments><wfw:commentRss>http://sqlblog.com/blogs/erin_welker/commentrss.aspx?PostID=10229</wfw:commentRss><description>&lt;p&gt;The SQL Server 2008 version of the &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=3be0488d-e7aa-4078-a050-ae39912d2e43&amp;amp;DisplayLang=en"&gt;Analysis Services Performance Guide&lt;/a&gt; was published last month.&amp;#160; I've yet to read it - it's 80 pages (which is actually less than its 2005 predecessor).&amp;#160; I'm sure there's some overlap with that one but, since it has different authors, the information is presented differently.&amp;#160; And, of course, it has been updated for SQL Server 2008.&amp;#160;&amp;#160; &lt;/p&gt;&lt;img src="http://sqlblog.com/aggbug.aspx?PostID=10229" width="1" height="1"&gt;</description></item><item><title>Trials in reporting on cubes</title><link>http://sqlblog.com/blogs/erin_welker/archive/2008/04/30/trials-in-reporting-on-cubes.aspx</link><pubDate>Thu, 01 May 2008 01:46:41 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:6526</guid><dc:creator>ErinW</dc:creator><slash:comments>1</slash:comments><comments>http://sqlblog.com/blogs/erin_welker/comments/6526.aspx</comments><wfw:commentRss>http://sqlblog.com/blogs/erin_welker/commentrss.aspx?PostID=6526</wfw:commentRss><description>&lt;p&gt;I'll admit that I haven't spent a lot of time in Reporting Services.&amp;#160; And it's been quite awhile since I've written a report against an Analysis Services cube - since SQL Server 2000, in fact.&amp;#160; I was kind of looking forward to using the MDX designer in Reporting Services 2005 but soon found it's limitations (which are well-documented).&amp;#160; I needed to implement drilldown on the Account hierarchy, which required pulling the preceding parent levels in a parent-child dimension.&amp;#160; This quickly moved me to the OLE DB data source type and out of the nifty query designer that is only available when using the Analysis Services type :-(&amp;#160; As such, I was back to implementing parameters by concatenating them in the query string - it was looking like SQL Server 2000 all over again.&lt;/p&gt;  &lt;p&gt;But that's not the jist of this blog entry.&lt;/p&gt;  &lt;p&gt;I got a nice looking report that drilled down a parent-child Account hierarchy on the rows and displayed various time periods on the columns.&amp;#160; Yes, it looked good, but it took, on average, 1 minute 37 seconds to refresh!&amp;#160; Every time the user would select a new job to display they'd have to wait over a minute and 1/2 for the report to come up.&amp;#160; Unacceptable!&amp;#160; What's worse is that the MDX was only taking 7 seconds to execute.&amp;#160; I can tune the MDX/cube but I had no idea what Reporting Services was doing that resulted in such a long render time.&lt;/p&gt;  &lt;p&gt;My first resort was to google on the problem.&amp;#160; I found very little information on the topic.&amp;#160; One useful &lt;a href="http://cwebbbi.spaces.live.com/blog/cns!7B84B0F2C239489A!725.entry"&gt;blog&lt;/a&gt; by Chris Webb suggested that I remove the cell formatting options.&amp;#160; Alright, that was nice - it removed 15 seconds and my report now refreshed in 1 minute 23 seconds (average).&amp;#160; Still unacceptable.&lt;/p&gt;  &lt;p&gt;In thinking about the problem it seemed strange that RS required such a flat query that took an aggregated source, required you to unaggregate it, so that RS could re-aggregate it itself.&amp;#160; Yet all examples I could find put all measures (and only measures) on the columns axis, and all remaining dimension members on the remaining axes.&amp;#160; This returns a resultset that is long and narrow.&amp;#160; The report is short (relatively) and wide.&amp;#160; Why can't I make the query look just like the report?&lt;/p&gt;  &lt;p&gt;So that's what I tried.&amp;#160; I put the column header dimension members on the column axis.&amp;#160; Bingo - the report rendered in 15 seconds - now that's a significant improvement!&lt;/p&gt;  &lt;p&gt;Note that this solution will not fit the need of all reports.&amp;#160; In placing dimension members on the column axis I lose the ability to drill down or up that dimension - the column headers become static.&amp;#160; In my case, that's precisely what I wanted since that happened to be the design of the report.&amp;#160; It also is a little more tedious to manually enter the values associated with 10 static columns compared to the 1 column in the original report.&amp;#160; I felt this was a small price to pay for over 5x performance improvement.&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;a href="http://sqlblog.com/blogs/erin_welker/WindowsLiveWriter/Trialsinreportingoncubes_10612/SSRSDesignerFast.jpg"&gt;&lt;img style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px;" height="455" alt="SSRSDesignerFast" src="http://sqlblog.com/blogs/erin_welker/WindowsLiveWriter/Trialsinreportingoncubes_10612/SSRSDesignerFast_thumb.jpg" width="605" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;&lt;strong&gt;MDX Before (condensed) &lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font size="1"&gt;SELECT NON EMPTY {[Measures].[Value]} ON COLUMNS,&amp;#160; &lt;/font&gt;&lt;/p&gt;   &lt;font size="1"&gt;&amp;#160; {([Time].[Fiscal Month].[Current Month], {[Scenario].[All Members].[Actual], [Scenario].[All Members].[Forecast]}),      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; ([Time].[Fiscal Month].[ITD], {[Scenario].[All Members].[Actual], [Scenario].[All Members].[Forecast]}),       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; ([Time].[Fiscal Month].[EAC], {[Scenario].[All Members].[EAC], [Scenario].[All Members].[Budget]})} &lt;/font&gt;&lt;font size="1"&gt;ON ROWS, &lt;/font&gt;    &lt;p&gt;&lt;font size="1"&gt;NON EMPTY&amp;#160; ([Version].[All Members].[Version].[0], [Job].[Job_Hierarchy].[Level 03].[1234],        &lt;br /&gt;&amp;#160;&amp;#160; { [MeasureType].[All Members].[Units] * DESCENDANTS([Account].[Account Hierarchy].[Total Costs],, LEAVES),         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; [MeasureType].[All Members].[Dollars] * {DESCENDANTS([Account].[Account Hierarchy].[Total Costs],, LEAVES), [Account].[Account Hierarchy].[Total Revenue]}}) ON PAGES&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font size="1"&gt;FROM [Job Planning]        &lt;br /&gt;CELL PROPERTIES VALUE, BACK_COLOR, FORE_COLOR, FORMATTED_VALUE, FORMAT_STRING, FONT_NAME, FONT_SIZE, FONT_FLAGS&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;strong&gt;MDX After&lt;/strong&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font size="1"&gt;SELECT &lt;/font&gt;&lt;font size="1"&gt;&amp;#160; &lt;br /&gt;&amp;#160; {([Time].[Fiscal Month].[Current Month], {[Scenario].[All Members].[Actual], [Scenario].[All Members].[Forecast]}),         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; ([Time].[Fiscal Month].[ITD], {[Scenario].[All Members].[Actual], [Scenario].[All Members].[Forecast]}),         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; ([Time].[Fiscal Month].[EAC], {[Scenario].[All Members].[EAC], [Scenario].[All Members].[Budget]})} &lt;/font&gt;&lt;font size="1"&gt;        &lt;br /&gt;&amp;#160; * {[Measures].[Value]} ON COLUMNS,&amp;#160; &lt;/font&gt;&lt;/p&gt;   &lt;font size="1"&gt;NON EMPTY&amp;#160; ([Version].[All Members].[Version].[0], [Job].[Job_Hierarchy].[Level 03].[1234],      &lt;br /&gt;&amp;#160;&amp;#160; { [MeasureType].[All Members].[Units] * DESCENDANTS([Account].[Account Hierarchy].[Total Costs],, LEAVES),       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; [MeasureType].[All Members].[Dollars] * {DESCENDANTS([Account].[Account Hierarchy].[Total Costs],, LEAVES), [Account].[Account Hierarchy].[Total Revenue]}}) ON ROWS&lt;/font&gt;    &lt;p&gt;&lt;font size="1"&gt;FROM [Job Planning]&lt;/font&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;img src="http://sqlblog.com/aggbug.aspx?PostID=6526" width="1" height="1"&gt;</description></item><item><title>ETL World Record!</title><link>http://sqlblog.com/blogs/erin_welker/archive/2008/02/27/etl-world-record.aspx</link><pubDate>Thu, 28 Feb 2008 04:19:32 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:5334</guid><dc:creator>ErinW</dc:creator><slash:comments>1</slash:comments><comments>http://sqlblog.com/blogs/erin_welker/comments/5334.aspx</comments><wfw:commentRss>http://sqlblog.com/blogs/erin_welker/commentrss.aspx?PostID=5334</wfw:commentRss><description>&lt;p&gt;I just heard about this from Len Wyatt, who's a Principle Program Manager on the SQL Server Performance team.&amp;#160; Microsoft and Unisys announced a record for loading into a relational database, using SSIS (SQL Server 2008) to load over 1 TB of data in under 30 minutes!&amp;#160; The previous known record-holder was Informatica, who reported loading 1 TB in 45 minutes.&amp;#160; Note that that this is &lt;u&gt;not&lt;/u&gt; a TPC benchmark, since none exists for loading tools (yet).&lt;/p&gt;  &lt;p&gt;Len blogged about the details on the &lt;a href="http://blogs.msdn.com/sqlperf/archive/2008/02/27/etl-world-record.aspx"&gt;SQL Server Performance team blog&lt;/a&gt;, where he mentions that a whitepaper will follow with more information on how they did it.&amp;#160; I, for one, can't wait to read all about it!&lt;/p&gt;&lt;img src="http://sqlblog.com/aggbug.aspx?PostID=5334" width="1" height="1"&gt;</description></item><item><title>Partitioning enhancements in SQL Server 2008</title><link>http://sqlblog.com/blogs/erin_welker/archive/2008/02/10/partitioning-enhancements-in-sql-server-2008.aspx</link><pubDate>Sun, 10 Feb 2008 23:37:01 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:5019</guid><dc:creator>ErinW</dc:creator><slash:comments>7</slash:comments><comments>http://sqlblog.com/blogs/erin_welker/comments/5019.aspx</comments><wfw:commentRss>http://sqlblog.com/blogs/erin_welker/commentrss.aspx?PostID=5019</wfw:commentRss><description>&lt;p&gt;Horizontal partitioning can be a great benefit to data warehouses, as it greatly facilitates the management of very large databases. Of course, querying on partitions can also have performance benefits, especially when only a small percentage of the database is queried and partition elimination can occur. SQL Server 2005, however, can have some unexpected behavior when querying few partitions.&lt;/p&gt;  &lt;p&gt;In SQL Server 2005, one thread is allocated per partition when multiple partitions are queried. These threads then work in parallel to retrieve the rows to satisfy the query. If only one partition is queried, however, SQL Server 2005 allocates as many threads as are available to the one partition. As you can quickly see, there is a vulnerability when it comes to queries that query very few, but more than 1 partition.&lt;/p&gt;  &lt;p&gt;The common scenario is when only 2 partitions are queried. For example, let&amp;#8217;s say you have a data warehouse database that is partitioned on a sales date by month. You write a query to compare last month&amp;#8217;s sales to this month&amp;#8217;s sales. Now, let&amp;#8217;s say this runs on a 32-processor server. How many threads get allocated to this query? The answer is 2, one per queried partition.&lt;/p&gt;  &lt;p&gt;This last scenario can become even more complicated when a window of time causes the query to fluctuate between 1 and multiple partitions. Let&amp;#8217;s say we compare today&amp;#8217;s sales to the same day of the week last week. If both weeks are in the same month, we get full thread allocation. If the weeks span two months (= 2 partitions), however, we only get 2 threads allocated and the query can appear to slow down considerably, for no apparent reason (at least, probably not to the issuer of the query).&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a href="http://sqlblog.com/blogs/erin_welker/WindowsLiveWriter/PartitioningenhancementsinSQLServer2008_F7B5/SQL2005Partitioning_2.jpg"&gt;&lt;img style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px;" height="174" alt="SQL2005Partitioning" src="http://sqlblog.com/blogs/erin_welker/WindowsLiveWriter/PartitioningenhancementsinSQLServer2008_F7B5/SQL2005Partitioning_thumb.jpg" width="426" border="0" /&gt;&lt;/a&gt;&amp;#160;&lt;/p&gt;    &lt;p&gt;Note: All of these scenarios assume that the queries are able to eliminate partitions due to a direct search on the partitioning key. Be sure partition elimination is occurring in order to gain the best partitioned table query performance.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;SQL Server 2008 behavior changes the way in which threads are allocated. It allocates all available threads to each partition relevant to the query in a round robin fashion. This results in fast and consistent query execution, no matter how many partitions are queried.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a href="http://sqlblog.com/blogs/erin_welker/WindowsLiveWriter/PartitioningenhancementsinSQLServer2008_F7B5/SQL2008Partitioning_2.jpg"&gt;&lt;img style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px;" height="145" alt="SQL2008Partitioning" src="http://sqlblog.com/blogs/erin_welker/WindowsLiveWriter/PartitioningenhancementsinSQLServer2008_F7B5/SQL2008Partitioning_thumb.jpg" width="478" border="0" /&gt;&lt;/a&gt; &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Note that this makes it all the more important to allocate partitions to filegroups that are spread across many disk spindles, allowing the query on a given partition to be as efficient as possible.&lt;/p&gt;  &lt;p&gt;But wait, there&amp;#8217;s another improvement to partition query behavior in SQL Server 2008. SQL Server 2005 only allows lock escalation to the table level. Let&amp;#8217;s say your query eliminates 75% of a table&amp;#8217;s partitions, but scans all of the remaining partitions (1/4 of the table). If SQL Server decides to escalate the lock, all other queries will be locked out even if they are querying completely different partitions. SQL Server 2008 provides a table option to override this default behavior. Note that the default is still to escalate to table locks (at least for now) so this option will need to be changed to take advantage of partition-level lock escalation. Find out more about this, like I did, on &amp;#252;ber blogger Paul Randall&amp;#8217;s &lt;a href="http://www.sqlskills.com/blogs/paul/2008/01/14/SQLServer2008PartitionlevelLockEscalationDetailsAndExamples.aspx"&gt;post&lt;/a&gt;.&lt;/p&gt;&lt;img src="http://sqlblog.com/aggbug.aspx?PostID=5019" width="1" height="1"&gt;</description></item><item><title>My Top 10 list for SQL Server 2008</title><link>http://sqlblog.com/blogs/erin_welker/archive/2008/01/20/my-top-10-list-for-sql-server-2008.aspx</link><pubDate>Sun, 20 Jan 2008 17:21:00 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:4606</guid><dc:creator>ErinW</dc:creator><slash:comments>7</slash:comments><comments>http://sqlblog.com/blogs/erin_welker/comments/4606.aspx</comments><wfw:commentRss>http://sqlblog.com/blogs/erin_welker/commentrss.aspx?PostID=4606</wfw:commentRss><description>&lt;P&gt;Long gone are the days when you can reasonably expect to know all aspects of SQL Server at a deep level.&amp;nbsp; When a new version starts to emerge, I try to put some scope around the features that I will dive more deeply into.&amp;nbsp; I'm publishing my list here so that like-minded SQL Server enthusiasts may become aware of a feature or two&amp;nbsp;that was lost in that one-page Powerpoint slide you see in most of the presentations on SQL Server 2008.&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;Note:&amp;nbsp; I put together this list during the summer as an roadmap for personal testing with the CTP releases.&amp;nbsp; In December 2007, a whitepaper, &lt;/EM&gt;&lt;A class="" href="http://www.microsoft.com/sql/techinfo/whitepapers/sql2008introdw.mspx"&gt;&lt;EM&gt;"An Introduction to New&amp;nbsp;Data Warehouse Scalability Features in SQL Server 2008"&lt;/EM&gt;&lt;/A&gt;&lt;EM&gt;, was released that includes a short writeup on&amp;nbsp;each of these features, as well as some additional improvements to SSAS, SSIS and SSRS.&amp;nbsp;&amp;nbsp;If you are interested in the types of features I mention below, I highly recommend you&amp;nbsp;check out this whitepaper.&lt;/EM&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;My focus is on Business Intelligence and performance (particularly in terms of relational data warehouse performance).&amp;nbsp; With that said and in no particular order, here is my list of top 10 features&amp;nbsp;&amp;nbsp;in SQL Server 2008, and why.&amp;nbsp; I plan to post more detail about several of these in the future:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;MERGE command - this is a new TSQL command that will allow you to combine an Insert with an Update command, sometimes referred to as an UPSERT.&amp;nbsp; This is particularly useful in loading a data warehouse.&amp;nbsp; You will no longer have to test for a row's existence in order to take one of two paths (INSERT or UPDATE, or even DELETE).&lt;/LI&gt;
&lt;LI&gt;Star Join - this could have a tremendous impact on queries in a relational data warehouse.&amp;nbsp;&amp;nbsp;Data warehouse&amp;nbsp;queries are characteristically performance hogs.&amp;nbsp;Since a&amp;nbsp;large percentage of data is usually selected, the query optimizer often cannot take advantage of indexes like it can with more selective OLTP queries.&lt;/LI&gt;
&lt;LI&gt;Change Data Capture (CDC) - this feature can be used in SQL Server 2008 data sources to automatically track changes in data that require a row to be re-sent to a data warehouse.&amp;nbsp; This makes ETL from a SQL Server 2008 data source far more efficient and straight-forward.&lt;/LI&gt;
&lt;LI&gt;INSERT INTO - no structural changes have been made to the statement, but minimal logging can be implement, much like BULK INSERT or SELECT..INTO, under the right conditions.&lt;/LI&gt;
&lt;LI&gt;Lookups in SSIS - though SSIS lookups were incredibly enhanced from DTS (where they were virtually unusable), the performance of this task has been tuned to improve performance and minimize resource utilization.&amp;nbsp; In lieu of blogging about this later, I'll refer to a &lt;A class="" href="http://blogs.conchango.com/jamiethomson/archive/2007/11/16/Katmai_3A00_-SSIS_3A00_-Lookup-component-gets-a-makeover.aspx"&gt;blog post by Jamie Thomson&lt;/A&gt; who explains this feature in detail and far better than I could.&lt;/LI&gt;
&lt;LI&gt;Data compression - this is potentially huge!&amp;nbsp; First of all, compression is an option, so if if the CPU hit is an issue you can choose not to implement compression.&amp;nbsp; Data compression means more data on fewer pages, which has a domino effect on performance (more pages in memory, better memory utilization, and improved page life expectancy).&lt;/LI&gt;
&lt;LI&gt;Partitioning enhancements - there's an issue in SQL Server 2005 partitioning parallelism that affects queries on a few number of partitions but greater than 1.&amp;nbsp; If only one partition is queried, intra-partition parallelism is implemented effectively.&amp;nbsp; If greater than one, a single thread is used to process each partition, which results in under-parallelism with queries on just a few partitions.&amp;nbsp; This has been addressed in SQL Server 2008 (future post).&lt;/LI&gt;
&lt;LI&gt;Resource Governor - if you haven't seen the demo on this, you should.&amp;nbsp; You can implement resource governing rules that affect inflight queries.&amp;nbsp; One scenario&amp;nbsp;I see for this&amp;nbsp;is in&amp;nbsp;environments where ETL occurs simultaneously with data warehouse queries, such as in a real-time environment.&lt;/LI&gt;
&lt;LI&gt;Backup compression - this will dramatically affect backup times for large data warehouses.&amp;nbsp;This capability is currently available through third party vendors but some DBAs are currently unable to leverage these solutions due to company standards or budget constraints.&lt;/LI&gt;
&lt;LI&gt;Partition-aligned indexed views (IVs)&amp;nbsp;- this allows for the&amp;nbsp;use of IVs on fact tables.&amp;nbsp;&amp;nbsp;Indexed views on partitioned tables is virtually unusable in SQL Server 2005 because of the requirement to drop and recreate dependent IVs whenever a fact table partition SWITCH is made.&amp;nbsp; I'll explain why I think this is such a big deal in a future post.&lt;/LI&gt;&lt;/OL&gt;&lt;img src="http://sqlblog.com/aggbug.aspx?PostID=4606" width="1" height="1"&gt;</description><category domain="http://sqlblog.com/blogs/erin_welker/archive/tags/Data+Warehousing/default.aspx">Data Warehousing</category><category domain="http://sqlblog.com/blogs/erin_welker/archive/tags/enhancements/default.aspx">enhancements</category><category domain="http://sqlblog.com/blogs/erin_welker/archive/tags/katmai/default.aspx">katmai</category><category domain="http://sqlblog.com/blogs/erin_welker/archive/tags/performance/default.aspx">performance</category><category domain="http://sqlblog.com/blogs/erin_welker/archive/tags/SQL+Server+2008/default.aspx">SQL Server 2008</category></item><item><title>Installing SQL Server 2005 on Vista</title><link>http://sqlblog.com/blogs/erin_welker/archive/2008/01/15/installing-sql-server-2005-on-vista.aspx</link><pubDate>Wed, 16 Jan 2008 04:18:00 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:4551</guid><dc:creator>ErinW</dc:creator><slash:comments>11</slash:comments><comments>http://sqlblog.com/blogs/erin_welker/comments/4551.aspx</comments><wfw:commentRss>http://sqlblog.com/blogs/erin_welker/commentrss.aspx?PostID=4551</wfw:commentRss><description>&lt;P class=MsoNormal style="MARGIN:0in 0in 10pt;LINE-HEIGHT:normal;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:'Times New Roman';"&gt;I sent this to our local user group when I installed Vista Ultimate on my new laptop a few months ago.&amp;nbsp; Yesterday, I did a quick search to see if this information was readily available and found that it still was not (at least not in one place), so I decided to post it here.&amp;nbsp; I hope it helps!&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt 0.5in;TEXT-INDENT:-0.25in;LINE-HEIGHT:normal;"&gt;&lt;SPAN style="FONT-SIZE:12pt;FONT-FAMILY:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;·&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:7pt;FONT-FAMILY:'Times New Roman','serif';mso-fareast-font-family:Symbol;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:'Times New Roman';"&gt;You must install SQL Server 2005 SP2.&amp;nbsp; I was able to successfully install RTM, then followed by SP2, but an attendee at our last user group meeting had no such luck.&amp;nbsp;&amp;nbsp;One of our local&amp;nbsp;Microsofties&amp;nbsp;mentioned there is an SQL install that combines the core install of SQL with SP2.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt 0.5in;TEXT-INDENT:-0.25in;LINE-HEIGHT:normal;"&gt;&lt;SPAN style="FONT-SIZE:12pt;FONT-FAMILY:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;·&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:7pt;FONT-FAMILY:'Times New Roman','serif';mso-fareast-font-family:Symbol;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:'Times New Roman';"&gt;OWC 11 component install fails.&amp;nbsp; This has a domino effect on the installation of most of the other SQL components.&amp;nbsp; You know, the important ones, like database services, SSIS, SSAS and SSRS.&amp;nbsp; The newsgroup solution was to uninstall OWC 11 through Add/Remove Programs.&amp;nbsp; This solution worked for me, as well.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt 0.5in;TEXT-INDENT:-0.25in;LINE-HEIGHT:normal;"&gt;&lt;SPAN style="FONT-SIZE:12pt;FONT-FAMILY:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;·&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:7pt;FONT-FAMILY:'Times New Roman','serif';mso-fareast-font-family:Symbol;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:'Times New Roman';"&gt;IIS is required for Reporting Services.&amp;nbsp; Nothing new here, but the configuration of IIS was not as simple as I recall it on XP.&amp;nbsp; Be sure the following options are selected (Start --&amp;gt; Control Panel --&amp;gt; Programs and Features --&amp;gt; Turn Windows features on or off):&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt 1in;TEXT-INDENT:-0.25in;LINE-HEIGHT:normal;"&gt;&lt;SPAN style="FONT-SIZE:12pt;FONT-FAMILY:'Courier New';mso-fareast-font-family:'Courier New';"&gt;o&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:7pt;FONT-FAMILY:'Times New Roman','serif';mso-fareast-font-family:'Courier New';"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:'Times New Roman';"&gt;Web management tools&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt 1.5in;TEXT-INDENT:-0.25in;LINE-HEIGHT:normal;"&gt;&lt;SPAN style="FONT-SIZE:12pt;FONT-FAMILY:Wingdings;mso-fareast-font-family:Wingdings;mso-bidi-font-family:Wingdings;"&gt;§&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:7pt;FONT-FAMILY:'Times New Roman','serif';mso-fareast-font-family:Wingdings;"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:'Times New Roman';"&gt;IIS 6 Management Compatibility&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt 2in;TEXT-INDENT:-0.25in;LINE-HEIGHT:normal;"&gt;&lt;SPAN style="FONT-SIZE:12pt;FONT-FAMILY:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;·&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:7pt;FONT-FAMILY:'Times New Roman','serif';mso-fareast-font-family:Symbol;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:'Times New Roman';"&gt;IIS 6 WMI Compatibility&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt 2in;TEXT-INDENT:-0.25in;LINE-HEIGHT:normal;"&gt;&lt;SPAN style="FONT-SIZE:12pt;FONT-FAMILY:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;·&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:7pt;FONT-FAMILY:'Times New Roman','serif';mso-fareast-font-family:Symbol;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:'Times New Roman';"&gt;IIS Metabase and IIS 6 configuration compatibility&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt 1in;TEXT-INDENT:-0.25in;LINE-HEIGHT:normal;"&gt;&lt;SPAN style="FONT-SIZE:12pt;FONT-FAMILY:'Courier New';mso-fareast-font-family:'Courier New';"&gt;o&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:7pt;FONT-FAMILY:'Times New Roman','serif';mso-fareast-font-family:'Courier New';"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:'Times New Roman';"&gt;World Wide Web Services&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt 1.5in;TEXT-INDENT:-0.25in;LINE-HEIGHT:normal;"&gt;&lt;SPAN style="FONT-SIZE:12pt;FONT-FAMILY:Wingdings;mso-fareast-font-family:Wingdings;mso-bidi-font-family:Wingdings;"&gt;§&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:7pt;FONT-FAMILY:'Times New Roman','serif';mso-fareast-font-family:Wingdings;"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:'Times New Roman';"&gt;Application Development Features&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt 2in;TEXT-INDENT:-0.25in;LINE-HEIGHT:normal;"&gt;&lt;SPAN style="FONT-SIZE:12pt;FONT-FAMILY:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;·&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:7pt;FONT-FAMILY:'Times New Roman','serif';mso-fareast-font-family:Symbol;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:'Times New Roman';"&gt;ASP.NET&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt 2in;TEXT-INDENT:-0.25in;LINE-HEIGHT:normal;"&gt;&lt;SPAN style="FONT-SIZE:12pt;FONT-FAMILY:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;·&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:7pt;FONT-FAMILY:'Times New Roman','serif';mso-fareast-font-family:Symbol;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:'Times New Roman';"&gt;ISAPI Extensions&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt 2in;TEXT-INDENT:-0.25in;LINE-HEIGHT:normal;"&gt;&lt;SPAN style="FONT-SIZE:12pt;FONT-FAMILY:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;·&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:7pt;FONT-FAMILY:'Times New Roman','serif';mso-fareast-font-family:Symbol;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:'Times New Roman';"&gt;ISAPI Filters&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt 1.5in;TEXT-INDENT:-0.25in;LINE-HEIGHT:normal;"&gt;&lt;SPAN style="FONT-SIZE:12pt;FONT-FAMILY:Wingdings;mso-fareast-font-family:Wingdings;mso-bidi-font-family:Wingdings;"&gt;§&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:7pt;FONT-FAMILY:'Times New Roman','serif';mso-fareast-font-family:Wingdings;"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:'Times New Roman';"&gt;Common Http Features&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt 2in;TEXT-INDENT:-0.25in;LINE-HEIGHT:normal;"&gt;&lt;SPAN style="FONT-SIZE:12pt;FONT-FAMILY:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;·&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:7pt;FONT-FAMILY:'Times New Roman','serif';mso-fareast-font-family:Symbol;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:'Times New Roman';"&gt;Default Document&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt 2in;TEXT-INDENT:-0.25in;LINE-HEIGHT:normal;"&gt;&lt;SPAN style="FONT-SIZE:12pt;FONT-FAMILY:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;·&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:7pt;FONT-FAMILY:'Times New Roman','serif';mso-fareast-font-family:Symbol;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:'Times New Roman';"&gt;Directory Browsing&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt 2in;TEXT-INDENT:-0.25in;LINE-HEIGHT:normal;"&gt;&lt;SPAN style="FONT-SIZE:12pt;FONT-FAMILY:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;·&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:7pt;FONT-FAMILY:'Times New Roman','serif';mso-fareast-font-family:Symbol;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:'Times New Roman';"&gt;HTTP Redirection&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt 2in;TEXT-INDENT:-0.25in;LINE-HEIGHT:normal;"&gt;&lt;SPAN style="FONT-SIZE:12pt;FONT-FAMILY:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;·&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:7pt;FONT-FAMILY:'Times New Roman','serif';mso-fareast-font-family:Symbol;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:'Times New Roman';"&gt;Static Content&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt 1.5in;TEXT-INDENT:-0.25in;LINE-HEIGHT:normal;"&gt;&lt;SPAN style="FONT-SIZE:12pt;FONT-FAMILY:Wingdings;mso-fareast-font-family:Wingdings;mso-bidi-font-family:Wingdings;"&gt;§&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:7pt;FONT-FAMILY:'Times New Roman','serif';mso-fareast-font-family:Wingdings;"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:'Times New Roman';"&gt;Security&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt 2in;TEXT-INDENT:-0.25in;LINE-HEIGHT:normal;"&gt;&lt;SPAN style="FONT-SIZE:12pt;FONT-FAMILY:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;·&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:7pt;FONT-FAMILY:'Times New Roman','serif';mso-fareast-font-family:Symbol;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:'Times New Roman';"&gt;Windows Authentication&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt 0.5in;TEXT-INDENT:-0.25in;LINE-HEIGHT:normal;"&gt;&lt;SPAN style="FONT-SIZE:12pt;FONT-FAMILY:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;·&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:7pt;FONT-FAMILY:'Times New Roman','serif';mso-fareast-font-family:Symbol;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:'Times New Roman';"&gt;You must install Visual Studio SP1, then another patch for Vista.&amp;nbsp; I initially tried installing the patch for Vista first but it wanted SP1.&amp;nbsp; I was unable to run BIDS until I installed these.&amp;nbsp; Here are the download files (available for download at Microsoft.com):&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt 1in;TEXT-INDENT:-0.25in;LINE-HEIGHT:normal;"&gt;&lt;SPAN style="FONT-SIZE:12pt;FONT-FAMILY:'Courier New';mso-fareast-font-family:'Courier New';"&gt;o&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:7pt;FONT-FAMILY:'Times New Roman','serif';mso-fareast-font-family:'Courier New';"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:'Times New Roman';"&gt;VS80sp1-KB926601-X86-ENU (VS SP1)&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt 1in;TEXT-INDENT:-0.25in;LINE-HEIGHT:normal;"&gt;&lt;SPAN style="FONT-SIZE:12pt;FONT-FAMILY:'Courier New';mso-fareast-font-family:'Courier New';"&gt;o&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:7pt;FONT-FAMILY:'Times New Roman','serif';mso-fareast-font-family:'Courier New';"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:'Times New Roman';"&gt;VS80sp1-KB932232-X86-ENU (patch for Vista)&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt 1.5in;LINE-HEIGHT:normal;"&gt;&lt;SPAN style="FONT-SIZE:12pt;FONT-FAMILY:'Times New Roman','serif';mso-fareast-font-family:'Times New Roman';"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;"&gt;&lt;SPAN style="FONT-SIZE:12pt;FONT-FAMILY:'Times New Roman','serif';mso-fareast-font-family:'Times New Roman';"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Arial','sans-serif';mso-fareast-font-family:'Times New Roman';"&gt;There was mention of having to turn off UAC at one of our user group meetings.&amp;nbsp; I did not have this issue.&amp;nbsp;&amp;nbsp;During the install, I was&amp;nbsp;asked if I wanted to be added to the sysadmin role during the SQL SP2 setup, because Builtin\Administrators is not automatically added to sysadmin like it used to be.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;LINE-HEIGHT:normal;"&gt;&lt;SPAN style="FONT-SIZE:12pt;FONT-FAMILY:'Times New Roman','serif';mso-fareast-font-family:'Times New Roman';"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 10pt;"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;img src="http://sqlblog.com/aggbug.aspx?PostID=4551" width="1" height="1"&gt;</description><category domain="http://sqlblog.com/blogs/erin_welker/archive/tags/Install+Vista+_2600_quot_3B00_SQL+Server+2005_2600_quot_3B00_/default.aspx">Install Vista &amp;quot;SQL Server 2005&amp;quot;</category></item><item><title>Hi SQLBlog readers!</title><link>http://sqlblog.com/blogs/erin_welker/archive/2008/01/14/hi-sqlblog-readers.aspx</link><pubDate>Tue, 15 Jan 2008 03:16:00 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:4537</guid><dc:creator>ErinW</dc:creator><slash:comments>7</slash:comments><comments>http://sqlblog.com/blogs/erin_welker/comments/4537.aspx</comments><wfw:commentRss>http://sqlblog.com/blogs/erin_welker/commentrss.aspx?PostID=4537</wfw:commentRss><description>&lt;P&gt;I'm excited to be blogging with several of my SQL Server comrades.&amp;nbsp; My name is Erin Welker and SQL Server is my passion - I've been working with the product since version 1.11!&amp;nbsp; In the last few years I have been sharing my lessons learned through presenting and writing.&amp;nbsp; I've been honored to present at SQL PASS for the last 3 years and&amp;nbsp;at Tech Ed 2007.&amp;nbsp; I was part of the &lt;A class="" href="http://www.microsoft.com/sql/solutions/bi/projectreal.mspx" target=_blank&gt;Project REAL&lt;/A&gt; team and authored a &lt;A class="" href="http://www.microsoft.com/technet/prodtechnol/sql/2005/realpart.mspx" target=_blank&gt;whitepaper&lt;/A&gt; on partitioning as a result.&amp;nbsp; I also wrote 2 whitepapers on &lt;A class="" href="http://www.microsoft.com/sql/solutions/dw/whitepapers.mspx" target=_blank&gt;large relational data warehouses&lt;/A&gt; on SQL Server, one on managing and one on performance.&amp;nbsp;&amp;nbsp;I'm currently working on my second article for SQL Server Magazine, which should appear in the March 2008 issue.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;My focus is on Business Intelligence and performance, and that's what I intend to blog about most.&amp;nbsp; On my current engagement, I'm working with PerformancePoint Planning, so you may see that slip in here and there.&lt;/P&gt;
&lt;P&gt;I look forward to sharing information on this site and hope to learn from other bloggers and readers, as well.&lt;/P&gt;
&lt;P&gt;I hope you enjoy!&lt;/P&gt;
&lt;P&gt;Erin&lt;/P&gt;&lt;img src="http://sqlblog.com/aggbug.aspx?PostID=4537" width="1" height="1"&gt;</description></item></channel></rss>