<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet type='text/xsl' href='http://denster.spaces.live.com/mmm2008-07-24_12.50/rsspretty.aspx?rssquery=en-US;http%3a%2f%2fdenster.spaces.live.com%2fcategory%2fSQL%2ffeed.rss' version='1.0'?><rss version="2.0" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:msn="http://schemas.microsoft.com/msn/spaces/2005/rss" xmlns:live="http://schemas.microsoft.com/live/spaces/2006/rss" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:cf="http://www.microsoft.com/schemas/rss/core/2005" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Denny Lee's Windows Live Space: SQL</title><description /><link>http://denster.spaces.live.com/?_c11_BlogPart_BlogPart=blogview&amp;_c=BlogPart&amp;partqs=catSQL</link><language>en-US</language><pubDate>Sat, 16 Aug 2008 04:21:23 GMT</pubDate><lastBuildDate>Sat, 16 Aug 2008 04:21:23 GMT</lastBuildDate><generator>Microsoft Spaces v1.1</generator><docs>http://www.rssboard.org/rss-specification</docs><ttl>60</ttl><cf:parentRSS>http://denster.spaces.live.com/blog/feed.rss</cf:parentRSS><live:type>blogcategory</live:type><live:identity><live:id>1323305814572094295</live:id><live:alias>denster</live:alias></live:identity><cf:listinfo><cf:group ns="http://schemas.microsoft.com/live/spaces/2006/rss" element="typelabel" label="Type" /><cf:group ns="http://schemas.microsoft.com/live/spaces/2006/rss" element="tag" label="Tag" /><cf:group element="category" label="Category" /><cf:sort element="pubDate" label="Date" data-type="date" default="true" /><cf:sort element="title" label="Title" data-type="string" /><cf:sort ns="http://purl.org/rss/1.0/modules/slash/" element="comments" label="Comments" data-type="number" /></cf:listinfo><item><title>Introducing SQLCAT.com</title><link>http://denster.spaces.live.com/Blog/cns!125D53A08EC75357!1445.entry</link><description>&lt;div&gt;
&lt;p&gt;The SQL Customer Advisory Team has put the final touches on the site &lt;a href="http://sqlcat.com/"&gt;&lt;u&gt;&lt;font color="#800080"&gt;http://sqlcat.com/&lt;/font&gt;&lt;/u&gt;&lt;/a&gt; which is our new hub for all things that are part of the SQLCAT!  Our new site is a portal to all SQLCAT resources including:
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Top 10 Lists&lt;/em&gt;: Summary list of Best Practices and Recommendations 
&lt;li&gt;&lt;em&gt;Technical Notes&lt;/em&gt;: Deep level technical short papers 
&lt;li&gt;&lt;em&gt;Technical Spotlights&lt;/em&gt;: Technical end-to-end customer case studies 
&lt;li&gt;&lt;strong&gt;Searchable&lt;/strong&gt; and &lt;strong&gt;Tagger&lt;/strong&gt; friendly; post comments and provide feedback! 
&lt;li&gt;Search all of our &lt;em&gt;SQLCAT Best Practices Whitepapers &lt;/em&gt;
&lt;li&gt;Easily find our SQLCAT Blogs and other materials&lt;/ul&gt;
&lt;p&gt;The site is regularly updated with deep technical information on enterprise SQL implementations.
&lt;p&gt; &lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=1323305814572094295&amp;page=RSS%3a+Introducing+SQLCAT.com&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=denster.spaces.live.com&amp;amp;GT1=denster"&gt;</description><comments>http://denster.spaces.live.com/Blog/cns!125D53A08EC75357!1445.entry#comment</comments><guid isPermaLink="true">http://denster.spaces.live.com/Blog/cns!125D53A08EC75357!1445.entry</guid><pubDate>Sun, 03 Feb 2008 21:22:15 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://denster.spaces.live.com/blog/cns!125D53A08EC75357!1445/comments/feed.rss</wfw:commentRss><wfw:comment>http://denster.spaces.live.com/Blog/cns!125D53A08EC75357!1445.entry#comment</wfw:comment><dcterms:modified>2008-02-03T21:22:15Z</dcterms:modified></item><item><title>SQL 2008 Case Study on Auditing, DMF, Encryption, Performance, Resource Governor, and Reporting Services</title><link>http://denster.spaces.live.com/Blog/cns!125D53A08EC75357!1433.entry</link><description>&lt;div&gt;One of the first case studies for SQL Server 2008 was developed by Caregroup Healthcare Group using various features of SQL Server 2008 for their 2TB patient information system.  The case study goes into their use of Advanced Data Auditing, Transparent Data Encryption, Declarative Management Framework, Performance Data Collection, Resource Governor, and Reporting Services to provide a high performance Patient Billing and Lab Results database.  For more information, please refer to the &lt;a href="http://www.microsoft.com/casestudies/casestudy.aspx?casestudyid=4000001003"&gt;Caregroup SQL Server 2008 case study&lt;/a&gt;.&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt; &lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=1323305814572094295&amp;page=RSS%3a+SQL+2008+Case+Study+on+Auditing%2c+DMF%2c+Encryption%2c+Performance%2c+Resource+Governor%2c+and+Reporting+Services&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=denster.spaces.live.com&amp;amp;GT1=denster"&gt;</description><comments>http://denster.spaces.live.com/Blog/cns!125D53A08EC75357!1433.entry#comment</comments><guid isPermaLink="true">http://denster.spaces.live.com/Blog/cns!125D53A08EC75357!1433.entry</guid><pubDate>Tue, 11 Dec 2007 22:36:09 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://denster.spaces.live.com/blog/cns!125D53A08EC75357!1433/comments/feed.rss</wfw:commentRss><wfw:comment>http://denster.spaces.live.com/Blog/cns!125D53A08EC75357!1433.entry#comment</wfw:comment><dcterms:modified>2007-12-11T22:36:09Z</dcterms:modified></item><item><title>Scalable Shared Databases</title><link>http://denster.spaces.live.com/Blog/cns!125D53A08EC75357!1412.entry</link><description>&lt;div&gt;There have been some questions that have come to my attention concerning the concept of Scalable Shared Databases and comparing it within the context of Oracle RAC.    If you want to read the SSD vs. Oracle RAC comparison, you can refer to the link &lt;a href="http://www.microsoft.com/sql/prodinfo/compare/oracle/rac.mspx"&gt;Comparing SQL Server 2005 and Oracle RAC&lt;/a&gt;.  As well, you can also refer to the SQL Server Books Online content on the subject of &lt;a href="http://msdn2.microsoft.com/en-us/library/ms345584.aspx"&gt;Scalable Shared Databases&lt;/a&gt; on the subject.&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;Saying this, the purpose of Scalable Shared Databases is to make use of SAN technology in order to allow you to attach a &lt;u&gt;single&lt;/u&gt; read-only database to &lt;u&gt;multiple&lt;/u&gt; server instances so that way you can have scale out many concurrent queries of your SQL database to the aforementioned &lt;u&gt;multiple&lt;/u&gt; server instances.    We have versions of this approach for Analysis Services one specific to using SANs (&lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=7ac8e03d-bf1f-4733-93e0-bc0f6e567608&amp;amp;displaylang=en"&gt;Scale-Out Querying with Analysis Services using SAN Snapshots&lt;/a&gt;) and one not specific to the use of SANs (&lt;a href="http://www.microsoft.com/technet/prodtechnol/sql/bestpractice/scoqryas.mspx"&gt;Scale-Out Querying with Analysis Services&lt;/a&gt;).  Saying this, you could always rename the concept of Scalable Shared Databases as &lt;em&gt;Scale-Out Querying with SQL Server&lt;/em&gt;.  &lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;But I digress, extracted directly from the technical (hence most important) link is the &lt;a href="http://support.microsoft.com/kb/910378"&gt;&lt;strong&gt;Scalable Shared Databases are supported by SQL Server 2005&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt; &lt;/strong&gt;from Microsoft Support:&lt;/div&gt;
&lt;blockquote dir=ltr style="margin-right:0px"&gt;
&lt;div&gt;&lt;strong&gt;Scalable shared databases&lt;br&gt;&lt;/strong&gt;Scalable shared databases let you attach a read-only reporting database to multiple server instances over a storage area network (SAN). A reporting database is a read-only database that is built from one or more production databases that are used exclusively for reporting purposes. To be made into a scalable shared database, a reporting database must reside on one or more dedicated read-only volumes. The primary purpose of these read-only volumes is to host the reporting database or a coordinated set of reporting databases. These volumes are known as reporting volumes. &lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;strong&gt;Benefits&lt;br&gt;&lt;/strong&gt;Scalable shared databases offer the following benefits: • Provide workload scale-out of reporting databases by using commodity servers. A scalable shared database is a cost-effective way of making read-only data marts or data warehouses available to multiple server instances for reporting purposes, such as running queries or using SQL Server 2005 Reporting Services.  &lt;br&gt;• Provide workload isolation. Each server uses its own memory, CPU, and tempdb database.  &lt;br&gt;• Guarantee the same view of reporting data from all servers if all the server instances are configured identically. For example, all servers would use a single collation. &lt;/div&gt;
&lt;div&gt;Note Optionally, you can update the reporting database on a second reporting volume. For more information, see the &amp;quot;Maximize the availability of a scalable shared database&amp;quot; section. &lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;&lt;strong&gt;Restrictions&lt;br&gt;&lt;/strong&gt;The following restrictions exist for a scalable shared database: • The database must be on a read-only volume. &lt;br&gt;• The data files can be accessed over an SAN.  &lt;br&gt;• Scalable shared databases are supported only on Microsoft Windows Server 2003 Service Pack 1 (SP1) or a later version of Windows Server 2003. &lt;/div&gt;&lt;/blockquote&gt;
&lt;div&gt;For the technical details, please refer to &lt;a href="http://support.microsoft.com/kb/910378"&gt;&lt;strong&gt;Scalable Shared Databases are supported by SQL Server 2005&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt; &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=1323305814572094295&amp;page=RSS%3a+Scalable+Shared+Databases&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=denster.spaces.live.com&amp;amp;GT1=denster"&gt;</description><comments>http://denster.spaces.live.com/Blog/cns!125D53A08EC75357!1412.entry#comment</comments><guid isPermaLink="true">http://denster.spaces.live.com/Blog/cns!125D53A08EC75357!1412.entry</guid><pubDate>Mon, 22 Oct 2007 23:50:16 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://denster.spaces.live.com/blog/cns!125D53A08EC75357!1412/comments/feed.rss</wfw:commentRss><wfw:comment>http://denster.spaces.live.com/Blog/cns!125D53A08EC75357!1412.entry#comment</wfw:comment><dcterms:modified>2007-10-22T23:50:16Z</dcterms:modified></item><item><title>SQLCAT tracks at 2007 SQL PASS</title><link>http://denster.spaces.live.com/Blog/cns!125D53A08EC75357!1350.entry</link><description>&lt;div&gt;As you may already know from Brian Moran's SQL Server Magazine article &amp;quot;&lt;a href="http://www.sqlmag.com/Article/ArticleID/96978/sql_server_96978.html"&gt;SQLCAT to Offer Six Sessions at PASS&lt;/a&gt;&amp;quot;, the SQLCAT team will be providing &lt;a href="https://www.sqlpass.org/summit/Lists/2007 Summit Sessions/SQL CAT Sessions.aspx"&gt;6 SQLCAT tracks at the 2007 SQLPASS event&lt;/a&gt; in Denver this year.   As of today's schedule, below are the SQLCAT tracks schedule:&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;&lt;u&gt;Wednesday, September 19th 9:45am-11:00am&lt;br&gt;&lt;/u&gt;DBA-410-M&lt;br&gt;&lt;strong&gt;Designing for Petabyte using Lession Learned from Customer Experiences&lt;br&gt;&lt;/strong&gt;Lubor Kollar, Microsoft; Kevin Cox, Microsoft&lt;br&gt;Korbel 1C/1D&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;&lt;u&gt;Wednesday, September 19th 1:30pm-2:45pm&lt;/u&gt;&lt;br&gt;DBA-411-M&lt;br&gt;&lt;strong&gt;Building High Performance Microsoft SQL Systems Using Lessons Learned From Customer Deployments&lt;/strong&gt;&lt;br&gt;Michael Thomassy, Microsoft; Burzin Patel, Microsoft&lt;br&gt;Korbel 2A/2B&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;&lt;u&gt;Thursday, September 20th 9:45am-11:00am&lt;br&gt;&lt;/u&gt;DBA-412-M&lt;br&gt;&lt;strong&gt;ISV Configuration &amp;amp; Implementation using Lessons Learned from Customer Deployments&lt;br&gt;&lt;/strong&gt;Juergen Thomas, Microsoft; Mike Ruthruff, Microsoft&lt;br&gt;Korbel 1A/1B&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;&lt;u&gt;Thursday, September 20th 1:30pm-2:45pm&lt;br&gt;&lt;/u&gt;DBA-413-M&lt;br&gt;&lt;strong&gt;Building Highly Available Microsoft SQL Server implementations using Lessons Learned from Customer Deployments&lt;/strong&gt;&lt;br&gt;Prem Mehra, Microsoft; Lindsey Allen, Microsoft; Sanjay Mishra, Microsoft&lt;br&gt;Korbel 2A/2B&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;u&gt;Friday, September 21st 9:45am-11:00am&lt;br&gt;&lt;/u&gt;DBA-416-M&lt;br&gt;&lt;strong&gt;Building &amp;amp; Deploying Large Scale SSRS farms using Lessons Learned from Customer Deployments&lt;/strong&gt;&lt;br&gt;Denny Lee, Microsoft; Lukasz Pawlowski, Microsoft&lt;br&gt;107/109&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;&lt;u&gt;Friday, September 21st 1:00pm-2:15pm&lt;br&gt;&lt;/u&gt;DBA-415-M&lt;br&gt;&lt;strong&gt;Building &amp;amp; Maintaining Large Cubes Using Lessons Learned from Customer Deployments&lt;/strong&gt;&lt;br&gt;Nicholas Dritsas, Microsoft; Eric Jacobson, Microsoft&lt;br&gt;108/110/112&lt;/div&gt;
&lt;div&gt;&lt;br&gt; &lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=1323305814572094295&amp;page=RSS%3a+SQLCAT+tracks+at+2007+SQL+PASS&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=denster.spaces.live.com&amp;amp;GT1=denster"&gt;</description><comments>http://denster.spaces.live.com/Blog/cns!125D53A08EC75357!1350.entry#comment</comments><guid isPermaLink="true">http://denster.spaces.live.com/Blog/cns!125D53A08EC75357!1350.entry</guid><pubDate>Wed, 12 Sep 2007 18:53:46 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://denster.spaces.live.com/blog/cns!125D53A08EC75357!1350/comments/feed.rss</wfw:commentRss><wfw:comment>http://denster.spaces.live.com/Blog/cns!125D53A08EC75357!1350.entry#comment</wfw:comment><dcterms:modified>2007-09-12T18:53:46Z</dcterms:modified></item><item><title>Using Included Columns in SQL 2005</title><link>http://denster.spaces.live.com/Blog/cns!125D53A08EC75357!1285.entry</link><description>&lt;p&gt;
&lt;p&gt;Roman Rehak has got a quick and great explanation on the feature of using &amp;quot;INCLUDE&amp;quot; columns at: &lt;a href="http://sqljunkies.com/WebLog/roman/archive/2007/05/03/32225.aspx"&gt;http://sqljunkies.com/WebLog/roman/archive/2007/05/03/32225.aspx&lt;/a&gt; 
&lt;p&gt;The purpose of Included columns is to help improve query performance yet at the same time the dB engine will not consider these columns when calculating the number of index key columns or size.&lt;br&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/ms190806.aspx"&gt;http://msdn2.microsoft.com/en-us/library/ms190806.aspx&lt;/a&gt; 
&lt;p&gt;A quick way to list out the included columns of indexes on a table, you can use the query below: 
&lt;blockquote&gt;
&lt;p&gt;declare @table_name varchar(256)&lt;br&gt;set @table_name = '&amp;lt;Table Name&amp;gt;'&lt;br&gt;select i.[name] as IndexName, i.[Type_Desc] as IndexType, i.[Is_Unique] as IsIndexUnique, c.[name] as ColumnName, c.[column_id], ic.[Is_Included_Column] &lt;br&gt;from sys.index_columns ic&lt;br&gt;inner join sys.columns c&lt;br&gt;on c.object_id = ic.object_id&lt;br&gt;and c.column_id = ic.column_id&lt;br&gt;inner join sys.indexes i&lt;br&gt;on i.object_id = ic.object_id&lt;br&gt;and ic.index_id = i.index_id&lt;br&gt;where ic.object_id = (&lt;br&gt;select object_id from sys.objects where [name] = @table_name&lt;br&gt;)&lt;/blockquote&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=1323305814572094295&amp;page=RSS%3a+Using+Included+Columns+in+SQL+2005&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=denster.spaces.live.com&amp;amp;GT1=denster"&gt;</description><comments>http://denster.spaces.live.com/Blog/cns!125D53A08EC75357!1285.entry#comment</comments><guid isPermaLink="true">http://denster.spaces.live.com/Blog/cns!125D53A08EC75357!1285.entry</guid><pubDate>Tue, 15 May 2007 00:13:55 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://denster.spaces.live.com/blog/cns!125D53A08EC75357!1285/comments/feed.rss</wfw:commentRss><wfw:comment>http://denster.spaces.live.com/Blog/cns!125D53A08EC75357!1285.entry#comment</wfw:comment><dcterms:modified>2007-07-13T07:45:45Z</dcterms:modified></item><item><title>How to experience the data model</title><link>http://denster.spaces.live.com/Blog/cns!125D53A08EC75357!355.entry</link><description>&lt;div&gt;For anyone and everyone that would like to know more about how to: &amp;quot;Experience the Data Model&amp;quot;, check out Scott Thornton's blog at: &lt;a href="http://dataglass.blogspot.com/2006/03/how-to-experience-data-model.html"&gt;http://dataglass.blogspot.com/2006/03/how-to-experience-data-model.html&lt;/a&gt;&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;As he says, the bottom line for building a data model is&lt;br&gt;1. Increases your chances of the new system fulfilling the actual business needs&lt;br&gt;2. Decreases your time-to-delivery for a working system&lt;br&gt;3. Increases reliability, predictability, and maintainability of the new system by encouraging the use of code generators and code templates in strategic ways early on in the design phase&lt;br&gt;&lt;/div&gt;
&lt;div&gt;Rock on Scott! &lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=1323305814572094295&amp;page=RSS%3a+How+to+experience+the+data+model&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=denster.spaces.live.com&amp;amp;GT1=denster"&gt;</description><comments>http://denster.spaces.live.com/Blog/cns!125D53A08EC75357!355.entry#comment</comments><guid isPermaLink="true">http://denster.spaces.live.com/Blog/cns!125D53A08EC75357!355.entry</guid><pubDate>Mon, 27 Mar 2006 23:31:04 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://denster.spaces.live.com/blog/cns!125D53A08EC75357!355/comments/feed.rss</wfw:commentRss><wfw:comment>http://denster.spaces.live.com/Blog/cns!125D53A08EC75357!355.entry#comment</wfw:comment><dcterms:modified>2007-07-13T23:34:10Z</dcterms:modified></item><item><title>Recursive Query</title><link>http://denster.spaces.live.com/Blog/cns!125D53A08EC75357!324.entry</link><description>&lt;div&gt;&lt;strong&gt;&lt;u&gt;Use of Recursive Commom Table Expression (CTE)&lt;/u&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;If you have a parent-child table, a common thing to do is to run a recursive query that can list out all of the parent-child path strings.&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;For example, if you have a table called &lt;strong&gt;Taxonomy&lt;/strong&gt;, with the format / data below:&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;
&lt;table style="width:197pt;border-collapse:collapse" cellspacing=0 cellpadding=0 width=261 border=0&gt;
&lt;colgroup&gt;
&lt;col style="width:53pt" width=70&gt;
&lt;col style="width:77pt" width=102&gt;
&lt;col style="width:67pt" width=89&gt;
&lt;tbody&gt;
&lt;tr style="height:15pt" height=20&gt;
&lt;td style="font-weight:700;font-size:8pt;background:black;color:white;height:15pt;text-decoration:none;text-underline-style:none;text-line-through:none" width=70 height=20&gt;&lt;font color="#ffff99"&gt;TaxonomyID    &lt;/font&gt;
&lt;td style="font-weight:700;font-size:8pt;background:black;width:77pt;color:white;text-decoration:none;text-underline-style:none;text-line-through:none" width=102&gt;&lt;font color="#ffff99"&gt;ParentTaxonomyID    &lt;/font&gt;
&lt;td style="font-weight:700;font-size:8pt;background:black;width:67pt;color:white;text-decoration:none;text-underline-style:none;text-line-through:none" width=89&gt;&lt;font color="#ffff99"&gt;TaxonomyName&lt;/font&gt; 
&lt;tr style="height:15pt" height=20&gt;
&lt;td style="font-weight:400;font-size:8pt;color:black;height:15pt;text-decoration:none;text-underline-style:none;text-line-through:none" height=20&gt;&lt;font color="#0000ff"&gt;2 &lt;/font&gt;
&lt;td style="font-weight:400;font-size:8pt;color:black;text-decoration:none;text-underline-style:none;text-line-through:none"&gt;&lt;font color="#0000ff"&gt;1 &lt;/font&gt;
&lt;td style="font-weight:400;font-size:8pt;color:black;text-decoration:none;text-underline-style:none;text-line-through:none"&gt;&lt;font color="#0000ff"&gt;Shoes &lt;/font&gt;
&lt;tr style="height:15pt" height=20&gt;
&lt;td style="font-weight:400;font-size:8pt;color:black;height:15pt;text-decoration:none;text-underline-style:none;text-line-through:none" height=20&gt;&lt;font color="#0000ff"&gt;3 &lt;/font&gt;
&lt;td style="font-weight:400;font-size:8pt;color:black;text-decoration:none;text-underline-style:none;text-line-through:none"&gt;&lt;font color="#0000ff"&gt;1 &lt;/font&gt;
&lt;td style="font-weight:400;font-size:8pt;color:black;text-decoration:none;text-underline-style:none;text-line-through:none"&gt;&lt;font color="#0000ff"&gt;Accessories &lt;/font&gt;
&lt;tr style="height:15pt" height=20&gt;
&lt;td style="font-weight:400;font-size:8pt;color:black;height:15pt;text-decoration:none;text-underline-style:none;text-line-through:none" height=20&gt;&lt;font color="#0000ff"&gt;20 &lt;/font&gt;
&lt;td style="font-weight:400;font-size:8pt;color:black;text-decoration:none;text-underline-style:none;text-line-through:none"&gt;&lt;font color="#0000ff"&gt;2 &lt;/font&gt;
&lt;td style="font-weight:400;font-size:8pt;color:black;text-decoration:none;text-underline-style:none;text-line-through:none"&gt;&lt;font color="#0000ff"&gt;Ladies &lt;/font&gt;
&lt;tr style="height:15pt" height=20&gt;
&lt;td style="font-weight:400;font-size:8pt;color:black;height:15pt;text-decoration:none;text-underline-style:none;text-line-through:none" height=20&gt;&lt;font color="#0000ff"&gt;21 &lt;/font&gt;
&lt;td style="font-weight:400;font-size:8pt;color:black;text-decoration:none;text-underline-style:none;text-line-through:none"&gt;&lt;font color="#0000ff"&gt;2 &lt;/font&gt;
&lt;td style="font-weight:400;font-size:8pt;color:black;text-decoration:none;text-underline-style:none;text-line-through:none"&gt;&lt;font color="#0000ff"&gt;Men &lt;/font&gt;
&lt;tr style="height:15pt" height=20&gt;
&lt;td style="font-weight:400;font-size:8pt;color:black;height:15pt;text-decoration:none;text-underline-style:none;text-line-through:none" height=20&gt;&lt;font color="#0000ff"&gt;22 &lt;/font&gt;
&lt;td style="font-weight:400;font-size:8pt;color:black;text-decoration:none;text-underline-style:none;text-line-through:none"&gt;&lt;font color="#0000ff"&gt;2 &lt;/font&gt;
&lt;td style="font-weight:400;font-size:8pt;color:black;text-decoration:none;text-underline-style:none;text-line-through:none"&gt;&lt;font color="#0000ff"&gt;Kids&lt;/font&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;p&gt;  
&lt;div&gt;And you will want to list out the values:&lt;/div&gt;
&lt;div&gt;&lt;font color="#0000ff"&gt;\Shoes&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;font color="#0000ff"&gt;\Accessories&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;font color="#0000ff"&gt;\Shoes\Ladies&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;font color="#0000ff"&gt;\Shoes\Men&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;font color="#0000ff"&gt;\Shoes\Kids&lt;/font&gt;&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;To do this, you can use &lt;strong&gt;Recursive Common Table Expressions (CTE)&lt;/strong&gt; to quickly get you that query instead of doing a loop query.  To do this, the query below sets up the &lt;strong&gt;tree&lt;/strong&gt; to store the parent-child table.&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;&lt;font color="#0000ff"&gt;WITH tree (data, id, level, pathstr)                        &lt;br&gt;AS (SELECT TaxonomyName, TaxonomyID , 1, CAST(TaxonomyName AS VARCHAR(MAX))           &lt;br&gt;      FROM dbo.Taxonomy&lt;br&gt;     WHERE TaxonomyID = ParentTaxonomyID&lt;br&gt;     UNION ALL                               &lt;br&gt;    SELECT TaxonomyName, TaxonomyID, t.level + 1, t.pathstr + '\' + TaxonomyName&lt;br&gt;      FROM dbo.Taxonomy V                     &lt;br&gt;      JOIN tree t &lt;br&gt;        ON t.id = V.ParentTaxonomyID&lt;br&gt;     where TaxonomyID &amp;lt;&amp;gt; ParentTaxonomyID) &lt;br&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;And you can query the &lt;strong&gt;tree&lt;/strong&gt; by:&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;&lt;font color="#0000ff"&gt;SELECT SPACE(level) + data as data, id, level, pathstr&lt;br&gt;  FROM tree&lt;br&gt; ORDER BY pathstr, id&lt;br&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt; &lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=1323305814572094295&amp;page=RSS%3a+Recursive+Query&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=denster.spaces.live.com&amp;amp;GT1=denster"&gt;</description><comments>http://denster.spaces.live.com/Blog/cns!125D53A08EC75357!324.entry#comment</comments><guid isPermaLink="true">http://denster.spaces.live.com/Blog/cns!125D53A08EC75357!324.entry</guid><pubDate>Sat, 04 Feb 2006 05:03:44 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://denster.spaces.live.com/blog/cns!125D53A08EC75357!324/comments/feed.rss</wfw:commentRss><wfw:comment>http://denster.spaces.live.com/Blog/cns!125D53A08EC75357!324.entry#comment</wfw:comment><dcterms:modified>2007-07-13T23:37:50Z</dcterms:modified></item><item><title>Yukon Replication Presentation</title><link>http://denster.spaces.live.com/Blog/cns!125D53A08EC75357!284.entry</link><description>&lt;div&gt;For more information on Yukon Replication, Matt Hollingsworth has a great presentation at:&lt;/div&gt;
&lt;div&gt;&lt;a href="https://www118.livemeeting.com/cc/mseventsbmo/view?id=1032243908&amp;amp;pw=webcast"&gt;https://www118.livemeeting.com/cc/mseventsbmo/view?id=1032243908&amp;amp;pw=webcast&lt;/a&gt;&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt; &lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=1323305814572094295&amp;page=RSS%3a+Yukon+Replication+Presentation&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=denster.spaces.live.com&amp;amp;GT1=denster"&gt;</description><comments>http://denster.spaces.live.com/Blog/cns!125D53A08EC75357!284.entry#comment</comments><guid isPermaLink="true">http://denster.spaces.live.com/Blog/cns!125D53A08EC75357!284.entry</guid><pubDate>Thu, 27 Oct 2005 05:33:40 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://denster.spaces.live.com/blog/cns!125D53A08EC75357!284/comments/feed.rss</wfw:commentRss><wfw:comment>http://denster.spaces.live.com/Blog/cns!125D53A08EC75357!284.entry#comment</wfw:comment><dcterms:modified>2007-07-13T23:40:15Z</dcterms:modified></item><item><title>Best Practices for Deploying SQL Server 2005 on SANs</title><link>http://denster.spaces.live.com/Blog/cns!125D53A08EC75357!281.entry</link><description>&lt;div&gt;A good Technet web cast about deploying SQL Server 2005 on SANs can be found at:&lt;/div&gt;
&lt;div&gt;&lt;a href="http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032275438&amp;amp;Culture=en-US"&gt;http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032275438&amp;amp;Culture=en-US&lt;/a&gt;&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;As well, an I/O and Disk Management course based on SQL Server 200 can be found at:&lt;/div&gt;
&lt;div&gt;&lt;a href="http://sqldev.net/download/conf/SQLConnections-2005-03-USA/SDB405 - SQL Server 2000 - IO and Disk Management Internals.zip"&gt;http://sqldev.net/download/conf/SQLConnections-2005-03-USA/SDB405%20-%20SQL%20Server%202000%20-%20IO%20and%20Disk%20Management%20Internals.zip&lt;/a&gt;&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;As for mirroring with SQL Server 2005, a good resource is:&lt;/div&gt;
&lt;div&gt;&lt;a href="http://www.microsoft.com/technet/prodtechnol/sql/2005/dbmirror.mspx"&gt;http://www.microsoft.com/technet/prodtechnol/sql/2005/dbmirror.mspx&lt;/a&gt; &lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;A great recent addition is the paper by Mike Ruthruff:&lt;/div&gt;
&lt;div&gt;&lt;a href="http://www.microsoft.com/technet/prodtechnol/sql/bestpractice/pdpliobp.mspx"&gt;http://www.microsoft.com/technet/prodtechnol/sql/bestpractice/pdpliobp.mspx&lt;/a&gt;&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=1323305814572094295&amp;page=RSS%3a+Best+Practices+for+Deploying+SQL+Server+2005+on+SANs&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=denster.spaces.live.com&amp;amp;GT1=denster"&gt;</description><comments>http://denster.spaces.live.com/Blog/cns!125D53A08EC75357!281.entry#comment</comments><guid isPermaLink="true">http://denster.spaces.live.com/Blog/cns!125D53A08EC75357!281.entry</guid><pubDate>Sun, 16 Oct 2005 06:04:39 GMT</pubDate><slash:comments>1</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://denster.spaces.live.com/blog/cns!125D53A08EC75357!281/comments/feed.rss</wfw:commentRss><wfw:comment>http://denster.spaces.live.com/Blog/cns!125D53A08EC75357!281.entry#comment</wfw:comment><dcterms:modified>2007-07-13T23:40:58Z</dcterms:modified></item><item><title>Yukon SQL Update Performance</title><link>http://denster.spaces.live.com/Blog/cns!125D53A08EC75357!280.entry</link><description>&lt;div&gt;An interesting observation on Yukon SQL, sometimes an update statement's performance is quite slow.  For example, let's present a SQL table with 3+ million rows with a LogAuditID column , int data type, value of 0 for all columns; the table contains a nonclustered index &lt;u&gt;not&lt;/u&gt; on the LogAuditID column.  If I wanted to update all of the rows within this table with a value of 1, running the following statement:&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;&lt;em&gt;update [table] set LogAuditID = 1 &lt;/em&gt;&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;is quite slow. On both single proc and multi-proc boxes, this one simple statement can take a long time to run.&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;But, if you re-write the same statement (taking advantage of the fact that LogAuditID originally is 0), you can run the following statement:&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;&lt;em&gt;update [table] set LogAuditID = LogAuditID + 1&lt;/em&gt;&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;This statement will take ~4:15 (mm:ss) on a single proc box (faster on a multi-proc box).&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;Even shorter still, you can specifically indicate to the SQL Server engine to not use the existing indices when performing the audit:&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;&lt;em&gt;update a set LogAuditID = 1 from [table] a with (index(0))&lt;br&gt;&lt;/em&gt;&lt;/div&gt;
&lt;div&gt;This particular statement runs in ~3:30 (mm:ss).&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=1323305814572094295&amp;page=RSS%3a+Yukon+SQL+Update+Performance&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=denster.spaces.live.com&amp;amp;GT1=denster"&gt;</description><comments>http://denster.spaces.live.com/Blog/cns!125D53A08EC75357!280.entry#comment</comments><guid isPermaLink="true">http://denster.spaces.live.com/Blog/cns!125D53A08EC75357!280.entry</guid><pubDate>Wed, 28 Sep 2005 21:26:49 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://denster.spaces.live.com/blog/cns!125D53A08EC75357!280/comments/feed.rss</wfw:commentRss><wfw:comment>http://denster.spaces.live.com/Blog/cns!125D53A08EC75357!280.entry#comment</wfw:comment><dcterms:modified>2007-07-13T23:43:40Z</dcterms:modified></item></channel></rss>