<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet type='text/xsl' href='http://glennberrysqlperformance.spaces.live.com/mmm2008-07-24_12.50/rsspretty.aspx?rssquery=en-US;http%3a%2f%2fglennberrysqlperformance.spaces.live.com%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>Glenn Berry's SQL Server Performance</title><description>Random thoughts on improving SQL Server 2005 and 2008 performance</description><link>http://GlennBerrySQLPerformance.spaces.live.com/</link><language>en-US</language><pubDate>Fri, 05 Sep 2008 16:58:23 GMT</pubDate><lastBuildDate>Fri, 05 Sep 2008 16:58:23 GMT</lastBuildDate><generator>Microsoft Spaces v1.1</generator><docs>http://www.rssboard.org/rss-specification</docs><ttl>60</ttl><live:identity><live:id>4973121985808345440</live:id><live:alias>GlennBerrySQLPerformance</live:alias></live:identity><image><title>Glenn Berry's SQL Server Performance</title><url>http://tkfiles.storage.live.com/y1pEZ9HJJ49sywDh68-4y5CKz9a3kPTOk9iKhx_AJz84ZUfDKhVZOjGCw</url><link>http://GlennBerrySQLPerformance.spaces.live.com/</link></image><cf:listinfo><cf:group ns="http://schemas.microsoft.com/live/spaces/2006/rss" element="typelabel" label="Type" /><cf:group ns="http://schemas.microsoft.com/live/spaces/2006/rss" element="tag" label="Tag" /><cf:group element="category" label="Category" /><cf:sort element="pubDate" label="Date" data-type="date" default="true" /><cf:sort element="title" label="Title" data-type="string" /><cf:sort ns="http://purl.org/rss/1.0/modules/slash/" element="comments" label="Comments" data-type="number" /></cf:listinfo><item><title>New Versions of SQL Server 2008 Express</title><link>http://GlennBerrySQLPerformance.spaces.live.com/Blog/cns!45041418ECCAA960!1026.entry</link><description>&lt;p&gt;Microsoft recently posted two new versions of SQL Server 2008 Express Edition. One is called &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=b5d1b8c3-fda5-4508-b0d0-1311d670e336&amp;amp;DisplayLang=en"&gt;SQL Server 2008 Express with Advanced Services&lt;/a&gt;, which includes a basic version of SQL Server Management Studio (SSMS), Integrated Full-Text Search  (iFTS), and the ability to run Reporting Services reports against local databases.  They also have &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=7522A683-4CB2-454E-B908-E805E9BD4E28&amp;amp;displaylang=en"&gt;SQL Server 2008 Express with Tools&lt;/a&gt;, which only includes the basic version of SQL Server Management Studio (SSMS). &lt;p&gt;Both of these still have the same 4GB database size limit, along with the one CPU and 1GB of RAM limit that regular SQL Server Express has had since the 2005 version of SQL Server Express. If your machine has more than one CPU or 1GB of RAM, you can still install and use any of the Express Editions, but SQL Server will only use one CPU and 1GB of RAM. &lt;p&gt;The nice thing about SQL Server Express is that it is free and it is completely compatible with its big brother editions of SQL Server. You can start out on Express Edition and migrate to something like Standard Edition when you need to, very easily.&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=4973121985808345440&amp;page=RSS%3a+New+Versions+of+SQL+Server+2008+Express&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=glennberrysqlperformance.spaces.live.com&amp;amp;GT1=GlennBerrySQLPerformance"&gt;</description><category>SQL Server 2008</category><comments>http://GlennBerrySQLPerformance.spaces.live.com/Blog/cns!45041418ECCAA960!1026.entry#comment</comments><guid isPermaLink="true">http://GlennBerrySQLPerformance.spaces.live.com/Blog/cns!45041418ECCAA960!1026.entry</guid><pubDate>Fri, 05 Sep 2008 16:58:23 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://GlennBerrySQLPerformance.spaces.live.com/blog/cns!45041418ECCAA960!1026/comments/feed.rss</wfw:commentRss><wfw:comment>http://GlennBerrySQLPerformance.spaces.live.com/Blog/cns!45041418ECCAA960!1026.entry#comment</wfw:comment><dcterms:modified>2008-09-05T16:58:23Z</dcterms:modified></item><item><title>New Laptop Time</title><link>http://GlennBerrySQLPerformance.spaces.live.com/Blog/cns!45041418ECCAA960!1025.entry</link><description>&lt;p&gt;Even though my previous teaching laptop is only about 18 months old, I decided it was time for an upgrade this past weekend.  The Best Buy in Parker had an &amp;quot;in-store special&amp;quot; on a &lt;a href="http://explore.toshiba.com/laptops/satellite/A300/A305-S6843"&gt;Toshiba Satellite A305-S6843&lt;/a&gt;, which originally sold for $1249.00, but was on sale for $934.00. &lt;p&gt;This machine has a &lt;a href="http://processorfinder.intel.com/details.aspx?sSpec=SLAP9"&gt;Core2 Duo T8100 CPU&lt;/a&gt; (which is a Penryn 45nm processor that runs at 2.1GHz, with 3MB of L2 cache and an 800Mhz FSB), 4GB of DDR2 RAM, two 200GB hard drives, and a pretty decent ATI Mobility Radeon HD3470 discrete graphics chip. It has a 15.4&amp;quot; 1280x800 screen. It also came with the 64-bit version of Windows Vista Home Premium SP1. &lt;p&gt;On the plus side, this machine is noticeably faster than my old Toshiba A135-S4447. The T8100 is 64-bit capable, and having two drive bays will give me more I/O capacity for running SQL Server 2008 and running virtual machines. The Radeon HD3470 has more horsepower than typical integrated graphics chips. &lt;p&gt;On the negative side, the new machine is not any lighter than my old A135. The stock 200GB hard drives are one 5400rpm and one 4200rpm model (which will need to be upgraded to 7200rpm or maybe SSD drives). The keyboard keys have a glossy, black finish which is very prone to fingerprints. Finally, Toshiba insists on loading their machines with a ton of &amp;quot;crapware&amp;quot;, including about 30 shortcut icons on the desktop, which is very annoying. &lt;p&gt;Visual Studio 2008 SP1 runs extremely fast on this system, starting the IDE in less than a second. SQL Server 2008 Management Studio also starts up very quickly on this system. The machine has a Windows Experience Index score of 4.0, which is not too shabby for a unit in this price range. &lt;p&gt;  &lt;p&gt;&lt;a href="http://blufiles.storage.msn.com/y1pyH0gi6Up1SH1oXG0VsI6FcKlYNSYhR7GecWZ85wTlI6ZNJBb0FBYt7GDQhULDfTL?PARTNER=WRITER"&gt;&lt;img style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px" height=484 alt=image src="http://blufiles.storage.msn.com/y1pAhmBBANr6bHR6PYkOQh7dcNMOby5wC_9Qwn0I_du5py5Tzz0SxCINAebuXRwtr2p-yVvqOiVBTE?PARTNER=WRITER" width=434 border=0&gt;&lt;/a&gt;  &lt;p&gt;&lt;a href="http://ts0q3a.blu.livefilestore.com/y1pmxgUPyLhVh0Gd8RDTaefeRrztu5Ed3mbp_CsdizQEsvKoJYb44Unt8vHVJXua7TUedb-bj75ELsEmz1Swn1E-g?PARTNER=WRITER"&gt;&lt;img style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px" height=484 alt=image src="http://ts0q3a.blu.livefilestore.com/y1pa0SHnxKit9-afkpdi1rcs1OV05up-FshFCiTufMSZY9EEJDrXg1PS5sjVhvEVi5jL5l0O4j_yx5VQV6AlSCEBw?PARTNER=WRITER" width=644 border=0&gt;&lt;/a&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=4973121985808345440&amp;page=RSS%3a+New+Laptop+Time&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=glennberrysqlperformance.spaces.live.com&amp;amp;GT1=GlennBerrySQLPerformance"&gt;</description><category>Computer Hardware</category><comments>http://GlennBerrySQLPerformance.spaces.live.com/Blog/cns!45041418ECCAA960!1025.entry#comment</comments><guid isPermaLink="true">http://GlennBerrySQLPerformance.spaces.live.com/Blog/cns!45041418ECCAA960!1025.entry</guid><pubDate>Wed, 03 Sep 2008 04:18:50 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://GlennBerrySQLPerformance.spaces.live.com/blog/cns!45041418ECCAA960!1025/comments/feed.rss</wfw:commentRss><wfw:comment>http://GlennBerrySQLPerformance.spaces.live.com/Blog/cns!45041418ECCAA960!1025.entry#comment</wfw:comment><dcterms:modified>2008-09-03T04:18:50Z</dcterms:modified></item><item><title>New SQL Server Replication Whitepaper on SQLCAT.COM</title><link>http://GlennBerrySQLPerformance.spaces.live.com/Blog/cns!45041418ECCAA960!1020.entry</link><description>&lt;p&gt;Microsoft's Gopal Ashok and SQLskill's Paul Randal have a new &lt;a href="http://sqlcat.com/whitepapers/archive/2008/09/02/sql-server-replication-providing-high-availability-using-database-mirroring.aspx"&gt;whitepaper&lt;/a&gt; on how to use database mirroring in combination with SQL Server replication to provide high availability. I got the chance to be one of the technical reviewer's of the whitepaper, which was easy in this case because of the great job that Gopal and Paul did. &lt;p&gt;You can download the whitepaper &lt;a href="http://download.microsoft.com/download/d/9/4/d948f981-926e-40fa-a026-5bfcf076d9b9/ReplicationAndDBM.docx"&gt;here&lt;/a&gt;. &lt;div style="padding-right:0px;display:inline;padding-left:0px;padding-bottom:0px;margin:0px;padding-top:0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/SQL Server Replication" rel=tag&gt;SQL Server Replication&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Database Mirroring" rel=tag&gt;Database Mirroring&lt;/a&gt;&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=4973121985808345440&amp;page=RSS%3a+New+SQL+Server+Replication+Whitepaper+on+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=glennberrysqlperformance.spaces.live.com&amp;amp;GT1=GlennBerrySQLPerformance"&gt;</description><category>SQL Server 2008</category><comments>http://GlennBerrySQLPerformance.spaces.live.com/Blog/cns!45041418ECCAA960!1020.entry#comment</comments><guid isPermaLink="true">http://GlennBerrySQLPerformance.spaces.live.com/Blog/cns!45041418ECCAA960!1020.entry</guid><pubDate>Wed, 03 Sep 2008 02:40:08 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://GlennBerrySQLPerformance.spaces.live.com/blog/cns!45041418ECCAA960!1020/comments/feed.rss</wfw:commentRss><wfw:comment>http://GlennBerrySQLPerformance.spaces.live.com/Blog/cns!45041418ECCAA960!1020.entry#comment</wfw:comment><dcterms:modified>2008-09-03T02:40:08Z</dcterms:modified></item><item><title>How To Upgrade To SQL Server 2008</title><link>http://GlennBerrySQLPerformance.spaces.live.com/Blog/cns!45041418ECCAA960!1019.entry</link><description>&lt;p&gt;Now that SQL Server 2008 has released to manufacturing (RTM), you need to start planning how you will upgrade from a previous version of SQL Server to SQL Server 2008.  This will depend on which version of SQL Server you are currently running, your availability requirements, and your hardware budget. &lt;p&gt;The &amp;quot;best&amp;quot; approach, (assuming you have available hardware and budget) is to install a fresh copy of Windows Server 2008 on new hardware, with SQL Server 2008 installed as a default instance. Then, you can use one of the methods below to get your database(s) upgraded to SQL Server 2008 format. &lt;ol&gt; &lt;li&gt;Take a full backup in SQL Server 2000\2005. Copy the backup files to the new server and restore from the backup. Change the compatibility level to 10.0 and run sp_updatestats. &lt;li&gt;Detach your SQL Server 2000\2005 database. Copy the data files and transaction log files to the new server and attach the database. Change the compatibility level to 10.0 and run sp_updatestats. &lt;li&gt;If you are running SQL Server 2005, you can use database mirroring to move the data with one brief 15-20 second outage. You must be using the full recovery model to do this. Take a full backup in SQL Server 2005. Copy the backup files to the new server and restore from the backup with no recovery. Replay any subsequent transaction log backups on the new server with no recovery. Enable database mirroring and let the mirror get synchronized. Modify your connection strings to include a failover partner. Failover from SQL Server 2005 to SQL Server 2008, and then remove the mirror and change your connection strings. Change the compatibility level to 10.0 and run sp_updatestats.&lt;/ol&gt; &lt;p&gt;Methods 1 and 2 are easier, but require some downtime. Method 3 is quite a bit more complicated, but can be used to migrate with virtually no downtime. Of course with all of these methods, you will have to migrate your logins and SQL Agent jobs to the new server. Even though Microsoft puts a lot of effort and testing into various &amp;quot;upgrade in place&amp;quot; scenarios, I would personally never go that route. &lt;div style="padding-right:0px;display:inline;padding-left:0px;padding-bottom:0px;margin:0px;padding-top:0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/SQL Server 2008" rel=tag&gt;SQL Server 2008&lt;/a&gt;&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=4973121985808345440&amp;page=RSS%3a+How+To+Upgrade+To+SQL+Server+2008&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=glennberrysqlperformance.spaces.live.com&amp;amp;GT1=GlennBerrySQLPerformance"&gt;</description><category>SQL Server 2008</category><comments>http://GlennBerrySQLPerformance.spaces.live.com/Blog/cns!45041418ECCAA960!1019.entry#comment</comments><guid isPermaLink="true">http://GlennBerrySQLPerformance.spaces.live.com/Blog/cns!45041418ECCAA960!1019.entry</guid><pubDate>Mon, 25 Aug 2008 22:16: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://GlennBerrySQLPerformance.spaces.live.com/blog/cns!45041418ECCAA960!1019/comments/feed.rss</wfw:commentRss><wfw:comment>http://GlennBerrySQLPerformance.spaces.live.com/Blog/cns!45041418ECCAA960!1019.entry#comment</wfw:comment><dcterms:modified>2008-08-25T22:16:40Z</dcterms:modified></item><item><title>Cumulative Update Package 10 For SQL Server 2005 SP2</title><link>http://GlennBerrySQLPerformance.spaces.live.com/Blog/cns!45041418ECCAA960!1016.entry</link><description>&lt;p&gt;Microsoft has announced &lt;a href="http://kbalertz.com/956854/Cumulative-update-package-Server-Service.aspx"&gt;CU10 for SQL Server 2005 SP2&lt;/a&gt;. The CU is not yet available, but Microsoft has been pretty reliable about releasing Cumulative Updates every eight weeks.  I am wondering when they will actually release SP3 for SQL Server 2005. Back in April, Microsoft gave in to tremendous pressure from the SQL Server community, and announced that they would be releasing a Service Pack 3 for SQL Server 2005. I have not heard much about it since then, but some of the developers on the SQL Dev Team that I know have told me that is what they are working now since Katmai is RTM.&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=4973121985808345440&amp;page=RSS%3a+Cumulative+Update+Package+10+For+SQL+Server+2005+SP2&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=glennberrysqlperformance.spaces.live.com&amp;amp;GT1=GlennBerrySQLPerformance"&gt;</description><category>SQL Server 2005</category><comments>http://GlennBerrySQLPerformance.spaces.live.com/Blog/cns!45041418ECCAA960!1016.entry#comment</comments><guid isPermaLink="true">http://GlennBerrySQLPerformance.spaces.live.com/Blog/cns!45041418ECCAA960!1016.entry</guid><pubDate>Tue, 19 Aug 2008 19:17:53 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://GlennBerrySQLPerformance.spaces.live.com/blog/cns!45041418ECCAA960!1016/comments/feed.rss</wfw:commentRss><wfw:comment>http://GlennBerrySQLPerformance.spaces.live.com/Blog/cns!45041418ECCAA960!1016.entry#comment</wfw:comment><dcterms:modified>2008-08-19T19:17:53Z</dcterms:modified></item><item><title>New Product Name and Logo From Intel</title><link>http://GlennBerrySQLPerformance.spaces.live.com/Blog/cns!45041418ECCAA960!1008.entry</link><description>&lt;p&gt;Intel announced the official name for their upcoming Nehalem family of processors. It will be called the Intel Core i7.   &lt;p&gt;Here is a little blurb about it: &lt;blockquote&gt; &lt;p&gt;Nehalem is Intel's dynamically scalable and innovative new processor microarchitecture -- Nehalem will provide dramatic performance and energy improvements to Intel's current industry-leading microprocessors. Nehalem is scalable with future versions having anywhere from 2 to 8 cores, with Simultaneous Multi-threading, resulting in 4 to 16 thread capability. Nehalem will deliver 4 times the memory bandwidth compared to today's highest-performance Intel Xeon processor-based systems. With up to 8 MB level-3 cache, 731 million transistors, Quickpath interconnects (up to 25.6GB per second), integrated memory controller and optional integrated graphics, Nehalem will eventually scale from notebooks to high-performance servers. Other features include support for DDR3-800, 1066, and 1333 memory, SSE4.2 instructions, 32KB instruction cache, 32KB Data Cache, 256K L2 data and instruction low-latency cache per core and new 2-level TLB (Translation Lookaside Buffer) hierarchy. These technical improvements will result in performance improvements as well as flexibility for a wide range of eventual products based on the Nehalem architecture.&lt;/blockquote&gt; &lt;p&gt;  &lt;p&gt;&lt;img height=110 alt="" src="http://images.anandtech.com/reviews/chipsets/2008/780a/i7blue.jpg" width=90&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=4973121985808345440&amp;page=RSS%3a+New+Product+Name+and+Logo+From+Intel&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=glennberrysqlperformance.spaces.live.com&amp;amp;GT1=GlennBerrySQLPerformance"&gt;</description><category>Computer Hardware</category><comments>http://GlennBerrySQLPerformance.spaces.live.com/Blog/cns!45041418ECCAA960!1008.entry#comment</comments><guid isPermaLink="true">http://GlennBerrySQLPerformance.spaces.live.com/Blog/cns!45041418ECCAA960!1008.entry</guid><pubDate>Mon, 11 Aug 2008 15:30:53 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://GlennBerrySQLPerformance.spaces.live.com/blog/cns!45041418ECCAA960!1008/comments/feed.rss</wfw:commentRss><wfw:comment>http://GlennBerrySQLPerformance.spaces.live.com/Blog/cns!45041418ECCAA960!1008.entry#comment</wfw:comment><dcterms:modified>2008-08-11T15:30:53Z</dcterms:modified></item><item><title>How To Use sp_configure In SQL Server 2008</title><link>http://GlennBerrySQLPerformance.spaces.live.com/Blog/cns!45041418ECCAA960!1006.entry</link><description>&lt;p&gt;In order to check and set the value of many configuration options in SQL Server 2008 (and 2000\2005), you can use the sp_configure system stored procedure. In order to see and set many of the options, you need to call it and enable ‘Show Advanced Options”, then issue a RECONFIGURE command (as you see below).  Then you can just run sp_configure by itself to see what your current values are. &lt;p&gt;Below are some of the configuration items that I like to change from their default values.  If you are running SQL Server 2008, I would enable backup compression (by default), and I would turn on “optimize for ad hoc workloads”.  If you have an OLTP workload (with lots of write activity and many frequently run, low cost queries), I would set “max degree of parallelism” to 1. I would also set your max memory to an appropriate value based on the amount of physical RAM on the server (as I wrote about &lt;a href="http://glennberrysqlperformance.spaces.live.com/blog/cns!45041418ECCAA960!1003.entry"&gt;here&lt;/a&gt;). &lt;p&gt;Finally, you will need to enable the Common Language Runtime (CLR), if you are going to use .NET assemblies inside of SQL Server. &lt;p&gt; &lt;pre&gt;&lt;span style="color:rgb(0,128,0)"&gt;-- How to use sp_configure to set some common Advanced Options

-- Turn on advanced options
&lt;/span&gt;&lt;span style="color:rgb(0,0,255)"&gt;EXEC&lt;/span&gt; &lt;span style="color:rgb(128,0,0)"&gt;sp_configure&lt;/span&gt;&lt;span style="color:rgb(0,0,255)"&gt; &lt;/span&gt;&lt;span style="color:rgb(255,0,0)"&gt;'Show Advanced Options'&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;,&lt;/span&gt; 1
&lt;span style="color:rgb(0,0,255)"&gt;GO
RECONFIGURE
GO


&lt;/span&gt;&lt;span style="color:rgb(0,128,0)"&gt;-- See what the current values are
&lt;/span&gt;&lt;span style="color:rgb(0,0,255)"&gt;EXEC&lt;/span&gt; &lt;span style="color:rgb(128,0,0)"&gt;sp_configure



&lt;/span&gt;&lt;span style="color:rgb(0,128,0)"&gt;-- Turn on backup compression by default (new for SQL 2008)
&lt;/span&gt;&lt;span style="color:rgb(0,0,255)"&gt;EXEC&lt;/span&gt; &lt;span style="color:rgb(128,0,0)"&gt;sp_configure&lt;/span&gt;&lt;span style="color:rgb(0,0,255)"&gt; &lt;/span&gt;&lt;span style="color:rgb(255,0,0)"&gt;'backup compression default'&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;,&lt;/span&gt; 1
&lt;span style="color:rgb(0,0,255)"&gt;GO
RECONFIGURE
GO

&lt;/span&gt;&lt;span style="color:rgb(0,128,0)"&gt;-- Turn on optimize for ad-hoc workloads (new for SQL 2008)
&lt;/span&gt;&lt;span style="color:rgb(0,0,255)"&gt;EXEC&lt;/span&gt; &lt;span style="color:rgb(128,0,0)"&gt;sp_configure&lt;/span&gt;&lt;span style="color:rgb(0,0,255)"&gt; &lt;/span&gt;&lt;span style="color:rgb(255,0,0)"&gt;'optimize for ad hoc workloads'&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;,&lt;/span&gt; 1
&lt;span style="color:rgb(0,0,255)"&gt;GO
RECONFIGURE
GO

&lt;/span&gt;&lt;span style="color:rgb(0,128,0)"&gt;-- Set MAXDOP = 1 for the server (if you have an OLTP workload and you see CXPACKET waits)
&lt;/span&gt;&lt;span style="color:rgb(0,0,255)"&gt;EXEC&lt;/span&gt; &lt;span style="color:rgb(128,0,0)"&gt;sp_configure&lt;/span&gt;&lt;span style="color:rgb(0,0,255)"&gt; &lt;/span&gt;&lt;span style="color:rgb(255,0,0)"&gt;'max degree of parallelism'&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;,&lt;/span&gt; 1
&lt;span style="color:rgb(0,0,255)"&gt;GO
RECONFIGURE
GO

&lt;/span&gt;&lt;span style="color:rgb(0,128,0)"&gt;-- Set max server memory for the server (based on how much physical RAM you have)
&lt;/span&gt;&lt;span style="color:rgb(0,0,255)"&gt;EXEC&lt;/span&gt; &lt;span style="color:rgb(128,0,0)"&gt;sp_configure&lt;/span&gt;&lt;span style="color:rgb(0,0,255)"&gt; &lt;/span&gt;&lt;span style="color:rgb(255,0,0)"&gt;'max server memory (MB)'&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;,&lt;/span&gt; 6500 &lt;span style="color:rgb(0,128,0)"&gt;-- This value = 6.5GB
&lt;/span&gt;&lt;span style="color:rgb(0,0,255)"&gt;GO
RECONFIGURE
GO

&lt;/span&gt;&lt;span style="color:rgb(0,128,0)"&gt;-- Enable CLR (if you need it)
&lt;/span&gt;&lt;span style="color:rgb(0,0,255)"&gt;EXEC&lt;/span&gt; &lt;span style="color:rgb(128,0,0)"&gt;sp_configure&lt;/span&gt;&lt;span style="color:rgb(0,0,255)"&gt; &lt;/span&gt;&lt;span style="color:rgb(255,0,0)"&gt;'clr enabled'&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;,&lt;/span&gt; 1
&lt;span style="color:rgb(0,0,255)"&gt;GO
RECONFIGURE
GO
&lt;/span&gt;&lt;/pre&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=4973121985808345440&amp;page=RSS%3a+How+To+Use+sp_configure+In+SQL+Server+2008&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=glennberrysqlperformance.spaces.live.com&amp;amp;GT1=GlennBerrySQLPerformance"&gt;</description><category>SQL Server 2008</category><comments>http://GlennBerrySQLPerformance.spaces.live.com/Blog/cns!45041418ECCAA960!1006.entry#comment</comments><guid isPermaLink="true">http://GlennBerrySQLPerformance.spaces.live.com/Blog/cns!45041418ECCAA960!1006.entry</guid><pubDate>Thu, 07 Aug 2008 21:34:02 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://GlennBerrySQLPerformance.spaces.live.com/blog/cns!45041418ECCAA960!1006/comments/feed.rss</wfw:commentRss><wfw:comment>http://GlennBerrySQLPerformance.spaces.live.com/Blog/cns!45041418ECCAA960!1006.entry#comment</wfw:comment><dcterms:modified>2008-08-07T21:34:02Z</dcterms:modified></item><item><title>Suggested Max Memory Settings for SQL Server 2005/2008</title><link>http://GlennBerrySQLPerformance.spaces.live.com/Blog/cns!45041418ECCAA960!1003.entry</link><description>&lt;p&gt;It is pretty important to make sure you set the Max server memory setting for SQL Server 2005/2008 to something besides the default setting (which allows SQL Server to use as much memory as it wants, subject to signals from the host OS that it is under memory pressure). This is especially important with larger, busier systems that may be under memory pressure.  This setting controls how much memory can be used by the SQL Server Buffer Pool.  If you don’t set an upper limit for this value, other parts of SQL Server, and the operating system can be starved for memory, which can cause instability and performance problems. &lt;p&gt;  &lt;p&gt;This is for x64, on a dedicated DB server. &lt;p&gt;&lt;b&gt;&lt;u&gt;Physical RAM&lt;/u&gt;                        &lt;/b&gt;&lt;b&gt;&lt;u&gt;MaxMem Setting&lt;/u&gt;&lt;/b&gt; &lt;p&gt;2GB                                        1500 &lt;p&gt;4GB                                        3200 &lt;p&gt;6GB                                        4800 &lt;p&gt;8GB                                        6700 &lt;p&gt;12GB                                     10600 &lt;p&gt;16GB                                     14500 &lt;p&gt;24GB                                     22400 &lt;p&gt;32GB                                     30000 &lt;p&gt;48GB                                     45000 &lt;p&gt;64GB                                     59000 &lt;p&gt;  &lt;p&gt;This is how much RAM should be available in Task Manager while you are under load (on Windows Server 2003) &lt;p&gt;&lt;b&gt;&lt;u&gt;Physical RAM&lt;/u&gt;&lt;/b&gt;             &lt;b&gt;&lt;u&gt;Target Avail RAM in Task Manager&lt;/u&gt;&lt;/b&gt; &lt;p&gt; &amp;lt; 4GB                                   512MB – 1GB &lt;p&gt;4-32GB                                 1GB – 2GB &lt;p&gt;32-128GB                             2GB – 4GB &lt;p&gt;&amp;gt; 128GB                               &amp;gt; 4GB &lt;p&gt;  &lt;p&gt;You can set this value with Transact-SQL like this:&lt;pre&gt;&lt;span style="color:rgb(0,128,0)"&gt;-- Turn on advanced options
&lt;/span&gt;&lt;span style="color:rgb(0,0,255)"&gt;EXEC&lt;/span&gt; &lt;span style="color:rgb(128,0,0)"&gt;sp_configure&lt;/span&gt;&lt;span style="color:rgb(0,0,255)"&gt; &lt;/span&gt;&lt;span style="color:rgb(255,0,0)"&gt;'Show Advanced Options'&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;,&lt;/span&gt; 1
&lt;span style="color:rgb(0,0,255)"&gt;GO
RECONFIGURE
GO

&lt;/span&gt;&lt;span style="color:rgb(0,128,0)"&gt;-- See what the current value is for 'max server memory (MB)'
&lt;/span&gt;&lt;span style="color:rgb(0,0,255)"&gt;EXEC&lt;/span&gt; &lt;span style="color:rgb(128,0,0)"&gt;sp_configure

&lt;/span&gt;&lt;span style="color:rgb(0,128,0)"&gt;-- Set max server memory = 2300MB for the server
&lt;/span&gt;&lt;span style="color:rgb(0,0,255)"&gt;EXEC&lt;/span&gt; &lt;span style="color:rgb(128,0,0)"&gt;sp_configure&lt;/span&gt;&lt;span style="color:rgb(0,0,255)"&gt; &lt;/span&gt;&lt;span style="color:rgb(255,0,0)"&gt;'max server memory (MB)'&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;,&lt;/span&gt; 2300
&lt;span style="color:rgb(0,0,255)"&gt;GO
RECONFIGURE
GO&lt;/span&gt;&lt;/pre&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;
&lt;p&gt; 
&lt;p&gt;Or you can set it with SQL Server Management Studio (SSMS)
&lt;p&gt; 
&lt;p&gt;&lt;a href="http://blufiles.storage.msn.com/y1p_LaVDsVZUMC0KNEtUuJFw4MpL1KPUKtfzhlClLaws_I_ICRXXNSQ82tzXOdNeros?PARTNER=WRITER"&gt;&lt;img title=image style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px" height=484 alt=image src="http://blufiles.storage.msn.com/y1pGq3EFA2Epg9oKaWhHDNNwdIOU1ER7F4H-YV9GGe1PGPlGXY-IL8PXd0IQfKWMFJRJ7L2IIq4bUc?PARTNER=WRITER" width=539 border=0&gt;&lt;/a&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=4973121985808345440&amp;page=RSS%3a+Suggested+Max+Memory+Settings+for+SQL+Server+2005%2f2008&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=glennberrysqlperformance.spaces.live.com&amp;amp;GT1=GlennBerrySQLPerformance"&gt;</description><category>SQL Server 2008</category><comments>http://GlennBerrySQLPerformance.spaces.live.com/Blog/cns!45041418ECCAA960!1003.entry#comment</comments><guid isPermaLink="true">http://GlennBerrySQLPerformance.spaces.live.com/Blog/cns!45041418ECCAA960!1003.entry</guid><pubDate>Wed, 06 Aug 2008 17:15:05 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://GlennBerrySQLPerformance.spaces.live.com/blog/cns!45041418ECCAA960!1003/comments/feed.rss</wfw:commentRss><wfw:comment>http://GlennBerrySQLPerformance.spaces.live.com/Blog/cns!45041418ECCAA960!1003.entry#comment</wfw:comment><dcterms:modified>2008-08-06T17:15:05Z</dcterms:modified></item><item><title>The Mojave Experiment</title><link>http://GlennBerrySQLPerformance.spaces.live.com/Blog/cns!45041418ECCAA960!997.entry</link><description>&lt;p&gt;Microsoft has a new marketing &lt;a href="http://www.mojaveexperiment.com/"&gt;campaign&lt;/a&gt; called “the Mojave Experiment”, where they bring in average computer users to see a preview of a new Microsoft operating system called Mojave.  It is in a focus group situation, complete with hidden cameras and microphones. Before they get to see “Mojave”, they are asked a series of questions about their impression of Windows Vista, which are pretty strongly negative. &lt;p&gt;Then they are shown this new operating system, and they are very impressed with it. Finally, they are told that it is actually Windows Vista, and they are shocked, shocked, I tell you! &lt;p&gt;This reminds me of the old Folgers Crystals commercials, where they “secretly replaced the coffee at this five star restaurant with Folger’s Crystals”, and the diners could not tell the difference. &lt;p&gt;I have been running both Vista Home Premium and Vista Ultimate on several machines for almost eighteen months, and I am pretty happy with it. It has definitely improved quite a bit since RTM. Of course I have pretty decent hardware, and I know what I am doing, unlike many of the Vista haters out there. Still, there is no doubt that there is a huge perception problem out there about Vista, and that Microsoft made many mistakes in its design and implementation.  They also did a pretty poor job of marketing, and they have not gotten the best support from third parties as far as drivers and application compatibility. &lt;p&gt;The Windows Vista Blog has some details about this &lt;a href="http://windowsvistablog.com/blogs/windowsvista/archive/2008/07/29/windows-mojave-video-posts.aspx"&gt;here&lt;/a&gt;. &lt;p&gt;Maybe this experiment will change a few minds. Probably not, since the Vista hate is very strong out there. &lt;p&gt;  &lt;div style="padding-right:0px;display:inline;padding-left:0px;float:none;padding-bottom:0px;margin:0px;padding-top:0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/Mojave+Experiment" rel=tag&gt;Mojave Experiment&lt;/a&gt;&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=4973121985808345440&amp;page=RSS%3a+The+Mojave+Experiment&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=glennberrysqlperformance.spaces.live.com&amp;amp;GT1=GlennBerrySQLPerformance"&gt;</description><category>Microsoft</category><comments>http://GlennBerrySQLPerformance.spaces.live.com/Blog/cns!45041418ECCAA960!997.entry#comment</comments><guid isPermaLink="true">http://GlennBerrySQLPerformance.spaces.live.com/Blog/cns!45041418ECCAA960!997.entry</guid><pubDate>Tue, 29 Jul 2008 18:58:08 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://GlennBerrySQLPerformance.spaces.live.com/blog/cns!45041418ECCAA960!997/comments/feed.rss</wfw:commentRss><wfw:comment>http://GlennBerrySQLPerformance.spaces.live.com/Blog/cns!45041418ECCAA960!997.entry#comment</wfw:comment><dcterms:modified>2008-07-29T19:09:08Z</dcterms:modified></item><item><title>Missing Index Warning In SQL Server 2008 SSMS RC0</title><link>http://GlennBerrySQLPerformance.spaces.live.com/Blog/cns!45041418ECCAA960!996.entry</link><description>&lt;p&gt;A nice new feature in the RC0 build of SQL Server 2008 is what I call the &amp;quot;missing index warning&amp;quot; that shows up when you have the graphical execution plan turned on in SQL Server Management Studio (SSMS), as you can see in green, below.  In the pane where the SQL statement is shown, you can see &amp;quot;Missing Index (Impact 99.652....&amp;quot;, complete with a skeleton index creation script. &lt;p&gt;Just in case you are curious, here is the query that generated that warning (using the AdventureWorks database). Since there is no index on CarrierTrackingNumber, and it is used in the WHERE clause of the query, SQL Server wants to do a clustered index scan of a 121,317 row table even though the query returns only 12 rows.  This generates 1240 logical reads, which is pretty costly.&lt;pre&gt;&lt;span style="color:rgb(0,0,255)"&gt;  SELECT&lt;/span&gt; SalesOrderID&lt;span style="color:rgb(128,128,128)"&gt;,&lt;/span&gt; SalesOrderDetailID&lt;span style="color:rgb(128,128,128)"&gt;,&lt;/span&gt; CarrierTrackingNumber
  &lt;span style="color:rgb(0,0,255)"&gt;FROM&lt;/span&gt; Sales&lt;span style="color:rgb(128,128,128)"&gt;.&lt;/span&gt;SalesOrderDetail
  &lt;span style="color:rgb(0,0,255)"&gt;WHERE&lt;/span&gt; CarrierTrackingNumber &lt;span style="color:rgb(128,128,128)"&gt;=&lt;/span&gt; &lt;span style="color:rgb(255,0,0)"&gt;'4911-403C-98'&lt;/span&gt;&lt;/pre&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;
&lt;p&gt;Adding the index (shown below) gives you an index seek, with 3 logical reads, which is quite an improvement in this case.&lt;pre&gt;&lt;span style="color:rgb(0,0,255)"&gt;CREATE&lt;/span&gt; &lt;span style="color:rgb(0,0,255)"&gt;NONCLUSTERED&lt;/span&gt; &lt;span style="color:rgb(0,0,255)"&gt;INDEX&lt;/span&gt; [IX_SalesOrderDetail_CarrierTrackingNumber] &lt;span style="color:rgb(0,0,255)"&gt;ON&lt;/span&gt; [Sales]&lt;span style="color:rgb(128,128,128)"&gt;.&lt;/span&gt;[SalesOrderDetail] 
&lt;span style="color:rgb(128,128,128)"&gt;(
&lt;/span&gt;    [CarrierTrackingNumber] &lt;span style="color:rgb(0,0,255)"&gt;ASC
&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;)&lt;/span&gt;&lt;span style="color:rgb(0,0,255)"&gt;WITH &lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;(&lt;/span&gt;&lt;span style="color:rgb(0,0,255)"&gt;STATISTICS_NORECOMPUTE&lt;/span&gt;  &lt;span style="color:rgb(128,128,128)"&gt;=&lt;/span&gt; &lt;span style="color:rgb(0,0,255)"&gt;OFF&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;,&lt;/span&gt; &lt;span style="color:rgb(0,0,255)"&gt;SORT_IN_TEMPDB&lt;/span&gt; &lt;span style="color:rgb(128,128,128)"&gt;=&lt;/span&gt; &lt;span style="color:rgb(0,0,255)"&gt;OFF&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;,&lt;/span&gt; &lt;span style="color:rgb(0,0,255)"&gt;IGNORE_DUP_KEY&lt;/span&gt; &lt;span style="color:rgb(128,128,128)"&gt;=&lt;/span&gt; &lt;span style="color:rgb(0,0,255)"&gt;OFF&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;,&lt;/span&gt; &lt;span style="color:rgb(0,0,255)"&gt;DROP_EXISTING&lt;/span&gt; &lt;span style="color:rgb(128,128,128)"&gt;=&lt;/span&gt; &lt;span style="color:rgb(0,0,255)"&gt;OFF&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;,&lt;/span&gt; 
&lt;span style="color:rgb(0,0,255)"&gt;ONLINE&lt;/span&gt; &lt;span style="color:rgb(128,128,128)"&gt;=&lt;/span&gt; &lt;span style="color:rgb(0,0,255)"&gt;OFF&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;,&lt;/span&gt; &lt;span style="color:rgb(0,0,255)"&gt;ALLOW_ROW_LOCKS&lt;/span&gt;  &lt;span style="color:rgb(128,128,128)"&gt;=&lt;/span&gt; &lt;span style="color:rgb(0,0,255)"&gt;ON&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;,&lt;/span&gt; &lt;span style="color:rgb(0,0,255)"&gt;ALLOW_PAGE_LOCKS&lt;/span&gt;  &lt;span style="color:rgb(128,128,128)"&gt;=&lt;/span&gt; &lt;span style="color:rgb(0,0,255)"&gt;ON&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;)&lt;/span&gt; &lt;span style="color:rgb(0,0,255)"&gt;ON&lt;/span&gt; [PRIMARY]
&lt;/pre&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;
&lt;p&gt;&lt;a href="http://vknhaa.blu.livefilestore.com/y1pa0CQ4zGwKBmpOk1HFbIjpmp7nZSRC_GUrbNb2EWtgOpXFy-O5a0AaFHtsVaQAmYyl_qd7JRPxVk?PARTNER=WRITER"&gt;&lt;img style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px" height=389 alt=image src="http://vknhaa.blu.livefilestore.com/y1pagpR75PduiNgpX9cCOJYlFJXv6qp9HmLG2pG3yBvcet7sW-r4biQHR7s0umpfpwl08gPBaX-folLAoANDIlU5w?PARTNER=WRITER" width=644 border=0&gt;&lt;/a&gt; 
&lt;div style="padding-right:0px;display:inline;padding-left:0px;padding-bottom:0px;margin:0px;padding-top:0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/SQL Server 2008" rel=tag&gt;SQL Server 2008&lt;/a&gt;&lt;/div&gt;&lt;/a&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=4973121985808345440&amp;page=RSS%3a+Missing+Index+Warning+In+SQL+Server+2008+SSMS+RC0&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=glennberrysqlperformance.spaces.live.com&amp;amp;GT1=GlennBerrySQLPerformance"&gt;</description><category>SQL Server 2008</category><comments>http://GlennBerrySQLPerformance.spaces.live.com/Blog/cns!45041418ECCAA960!996.entry#comment</comments><guid isPermaLink="true">http://GlennBerrySQLPerformance.spaces.live.com/Blog/cns!45041418ECCAA960!996.entry</guid><pubDate>Tue, 29 Jul 2008 01:56:01 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://GlennBerrySQLPerformance.spaces.live.com/blog/cns!45041418ECCAA960!996/comments/feed.rss</wfw:commentRss><wfw:comment>http://GlennBerrySQLPerformance.spaces.live.com/Blog/cns!45041418ECCAA960!996.entry#comment</wfw:comment><dcterms:modified>2008-07-29T01:56:01Z</dcterms:modified></item><item><title>Good Press For SQL Server 2008</title><link>http://GlennBerrySQLPerformance.spaces.live.com/Blog/cns!45041418ECCAA960!991.entry</link><description>&lt;p&gt;&lt;a href="http://www.pcworld.com/"&gt;PC World&lt;/a&gt; has a very favorable &lt;a href="http://www.pcworld.com/businesscenter/article/148596-1/microsofts_katmai_is_filled_to_the_brim.html"&gt;review&lt;/a&gt; of SQL Server 2008 published on July 17.  I was quoted in a &lt;a href="http://searchdatabackup.techtarget.com/news/article/0,289142,sid187_gci1321649,00.html"&gt;short piece&lt;/a&gt; at &lt;a href="http://searchdatabackup.techtarget.com/home/0,289692,sid187,00.html"&gt;SearchDataBackup.com&lt;/a&gt;.  All indications are that Microsoft will easily meet their Q3 schedule for the RTM of Katmai (aka SQL Server 2008).  &lt;p&gt;  &lt;div style="padding-right:0px;display:inline;padding-left:0px;float:none;padding-bottom:0px;margin:0px;padding-top:0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/SQL+Server+2008" rel=tag&gt;SQL Server 2008&lt;/a&gt;, &lt;a href="http://technorati.com/tags/Katmai" rel=tag&gt;Katmai&lt;/a&gt;&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=4973121985808345440&amp;page=RSS%3a+Good+Press+For+SQL+Server+2008&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=glennberrysqlperformance.spaces.live.com&amp;amp;GT1=GlennBerrySQLPerformance"&gt;</description><category>SQL Server 2008</category><comments>http://GlennBerrySQLPerformance.spaces.live.com/Blog/cns!45041418ECCAA960!991.entry#comment</comments><guid isPermaLink="true">http://GlennBerrySQLPerformance.spaces.live.com/Blog/cns!45041418ECCAA960!991.entry</guid><pubDate>Fri, 18 Jul 2008 16:17:02 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://GlennBerrySQLPerformance.spaces.live.com/blog/cns!45041418ECCAA960!991/comments/feed.rss</wfw:commentRss><wfw:comment>http://GlennBerrySQLPerformance.spaces.live.com/Blog/cns!45041418ECCAA960!991.entry#comment</wfw:comment><dcterms:modified>2008-07-18T16:17:02Z</dcterms:modified></item><item><title>Diagnostic Information Queries For SQL Server Server 2005/2008</title><link>http://GlennBerrySQLPerformance.spaces.live.com/Blog/cns!45041418ECCAA960!990.entry</link><description>&lt;p&gt;Below is a small collection of queries that can be used to gather a wealth of very useful information about a SQL Server 2005/2008 instance, and about any specific database on that instance.  These queries will tell you the exact version and edition of SQL Server, whether it is 32-bit or 64-bit, the OS version, and some information about the CPUs and memory in the server.  They will also reveal how many databases are present, their recovery models and file layouts.  We also find out what the top wait stats are, along with Page Life Expectancy (PLE). &lt;p&gt;For a specific database, we collect some information about the most frequently executed stored procedures, along with the most costly stored procedures from a couple of different perspectives. Finally, we collect some good information about possible bad indexes and missing indexes for a database. &lt;p&gt;Most of these are dynamic management view queries, which require VIEW SERVER STATE permission to run. &lt;p&gt; &lt;pre&gt;&lt;span style="color:rgb(0,128,0)"&gt;-- Diagnostic Information Queries
-- Glenn Berry July 2008
-- http://glennberrysqlperformance.spaces.live.com/


-- SQL Version information
&lt;/span&gt;&lt;span style="color:rgb(0,0,255)"&gt;SELECT&lt;/span&gt; &lt;span style="color:rgb(255,0,255)"&gt;@@VERSION&lt;/span&gt; &lt;span style="color:rgb(0,0,255)"&gt;AS&lt;/span&gt; &lt;span style="color:rgb(255,0,0)"&gt;'Version Info'
&lt;/span&gt; 
&lt;span style="color:rgb(0,128,0)"&gt;-- Hardware Information
&lt;/span&gt;&lt;span style="color:rgb(0,0,255)"&gt;SELECT&lt;/span&gt; cpu_count &lt;span style="color:rgb(0,0,255)"&gt;AS&lt;/span&gt; &lt;span style="color:rgb(255,0,0)"&gt;'Logical CPU Count'&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;,&lt;/span&gt; hyperthread_ratio &lt;span style="color:rgb(0,0,255)"&gt;AS&lt;/span&gt; &lt;span style="color:rgb(255,0,0)"&gt;'Hyperthread Ratio'&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;,
&lt;/span&gt;cpu_count&lt;span style="color:rgb(128,128,128)"&gt;/&lt;/span&gt;hyperthread_ratio &lt;span style="color:rgb(0,0,255)"&gt;As&lt;/span&gt; &lt;span style="color:rgb(255,0,0)"&gt;'Physical CPU Count'&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;,&lt;/span&gt; 
physical_memory_in_bytes&lt;span style="color:rgb(128,128,128)"&gt;/&lt;/span&gt;1048576 &lt;span style="color:rgb(0,0,255)"&gt;AS&lt;/span&gt; &lt;span style="color:rgb(255,0,0)"&gt;'Physical Memory (MB)'
&lt;/span&gt;&lt;span style="color:rgb(0,0,255)"&gt;FROM&lt;/span&gt; &lt;span style="color:rgb(0,128,0)"&gt;sys&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;.&lt;/span&gt;&lt;span style="color:rgb(0,128,0)"&gt;dm_os_sys_info

-- sp_configure values
&lt;/span&gt;&lt;span style="color:rgb(0,0,255)"&gt;EXEC&lt;/span&gt; &lt;span style="color:rgb(128,0,0)"&gt;sp_configure&lt;/span&gt;&lt;span style="color:rgb(0,0,255)"&gt; &lt;/span&gt;&lt;span style="color:rgb(255,0,0)"&gt;'Show Advanced Options'&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;,&lt;/span&gt; 1
&lt;span style="color:rgb(0,0,255)"&gt;GO
RECONFIGURE
GO
EXEC&lt;/span&gt; &lt;span style="color:rgb(128,0,0)"&gt;sp_configure


&lt;/span&gt;&lt;span style="color:rgb(0,128,0)"&gt;-- File Names and Paths 
&lt;/span&gt;&lt;span style="color:rgb(0,0,255)"&gt;SELECT&lt;/span&gt; &lt;span style="color:rgb(0,0,255)"&gt;dbid&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;,&lt;/span&gt; fileid&lt;span style="color:rgb(128,128,128)"&gt;,&lt;/span&gt; &lt;span style="color:rgb(0,0,255)"&gt;filename&lt;/span&gt; 
&lt;span style="color:rgb(0,0,255)"&gt;FROM&lt;/span&gt; &lt;span style="color:rgb(0,128,0)"&gt;sys&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;.&lt;/span&gt;&lt;span style="color:rgb(0,128,0)"&gt;sysaltfiles
&lt;/span&gt;&lt;span style="color:rgb(0,0,255)"&gt;WHERE&lt;/span&gt; fileid &lt;span style="color:rgb(128,128,128)"&gt;IN&lt;/span&gt;&lt;span style="color:rgb(0,0,255)"&gt; &lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;(&lt;/span&gt;1&lt;span style="color:rgb(128,128,128)"&gt;,&lt;/span&gt;2&lt;span style="color:rgb(128,128,128)"&gt;)

&lt;/span&gt;&lt;span style="color:rgb(0,128,0)"&gt;-- Recovery model 
&lt;/span&gt;&lt;span style="color:rgb(0,0,255)"&gt;SELECT&lt;/span&gt; [name]&lt;span style="color:rgb(128,128,128)"&gt;,&lt;/span&gt; recovery_model_desc&lt;span style="color:rgb(128,128,128)"&gt;,&lt;/span&gt; log_reuse_wait_desc 
&lt;span style="color:rgb(0,0,255)"&gt;FROM&lt;/span&gt; &lt;span style="color:rgb(0,128,0)"&gt;sys&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;.&lt;/span&gt;&lt;span style="color:rgb(0,128,0)"&gt;databases

-- Individual File Sizes
&lt;/span&gt;&lt;span style="color:rgb(0,0,255)"&gt;SELECT&lt;/span&gt; name &lt;span style="color:rgb(0,0,255)"&gt;AS&lt;/span&gt; &lt;span style="color:rgb(255,0,0)"&gt;'File Name'&lt;/span&gt; &lt;span style="color:rgb(128,128,128)"&gt;,&lt;/span&gt; physical_name &lt;span style="color:rgb(0,0,255)"&gt;AS&lt;/span&gt; &lt;span style="color:rgb(255,0,0)"&gt;'Physical Name'&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;,&lt;/span&gt; size&lt;span style="color:rgb(128,128,128)"&gt;/&lt;/span&gt;128 &lt;span style="color:rgb(0,0,255)"&gt;AS&lt;/span&gt; &lt;span style="color:rgb(255,0,0)"&gt;'Total Size in MB'&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;,
&lt;/span&gt;size&lt;span style="color:rgb(128,128,128)"&gt;/&lt;/span&gt;128.0 &lt;span style="color:rgb(128,128,128)"&gt;-&lt;/span&gt; &lt;span style="color:rgb(255,0,255)"&gt;CAST&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;(&lt;/span&gt;&lt;span style="color:rgb(255,0,255)"&gt;FILEPROPERTY&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;(&lt;/span&gt;name&lt;span style="color:rgb(128,128,128)"&gt;,&lt;/span&gt; &lt;span style="color:rgb(255,0,0)"&gt;'SpaceUsed'&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;)&lt;/span&gt; &lt;span style="color:rgb(0,0,255)"&gt;AS&lt;/span&gt; &lt;span style="color:rgb(0,0,255)"&gt;int&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;)/&lt;/span&gt;128.0 &lt;span style="color:rgb(0,0,255)"&gt;AS&lt;/span&gt; &lt;span style="color:rgb(255,0,0)"&gt;'Available Space In MB'&lt;/span&gt;&lt;span style="color:rgb(0,128,0)"&gt;--, *
&lt;/span&gt;&lt;span style="color:rgb(0,0,255)"&gt;FROM&lt;/span&gt; &lt;span style="color:rgb(0,128,0)"&gt;sys&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;.&lt;/span&gt;&lt;span style="color:rgb(0,128,0)"&gt;database_files&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;;


&lt;/span&gt;&lt;span style="color:rgb(0,128,0)"&gt;-- Top Wait Stats
&lt;/span&gt;&lt;span style="color:rgb(0,0,255)"&gt;WITH&lt;/span&gt; Waits &lt;span style="color:rgb(0,0,255)"&gt;AS
&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;(
&lt;/span&gt;  &lt;span style="color:rgb(0,0,255)"&gt;SELECT
&lt;/span&gt;    wait_type&lt;span style="color:rgb(128,128,128)"&gt;,
&lt;/span&gt;    wait_time_ms &lt;span style="color:rgb(128,128,128)"&gt;/&lt;/span&gt; 1000. &lt;span style="color:rgb(0,0,255)"&gt;AS&lt;/span&gt; wait_time_s&lt;span style="color:rgb(128,128,128)"&gt;,
&lt;/span&gt;    100. &lt;span style="color:rgb(128,128,128)"&gt;*&lt;/span&gt; wait_time_ms &lt;span style="color:rgb(128,128,128)"&gt;/&lt;/span&gt; &lt;span style="color:rgb(255,0,255)"&gt;SUM&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;(&lt;/span&gt;wait_time_ms&lt;span style="color:rgb(128,128,128)"&gt;)&lt;/span&gt; &lt;span style="color:rgb(0,0,255)"&gt;OVER&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;()&lt;/span&gt; &lt;span style="color:rgb(0,0,255)"&gt;AS&lt;/span&gt; pct&lt;span style="color:rgb(128,128,128)"&gt;,
&lt;/span&gt;    &lt;span style="color:rgb(255,0,255)"&gt;ROW_NUMBER&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;()&lt;/span&gt; &lt;span style="color:rgb(0,0,255)"&gt;OVER&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;(&lt;/span&gt;&lt;span style="color:rgb(0,0,255)"&gt;ORDER&lt;/span&gt; &lt;span style="color:rgb(0,0,255)"&gt;BY&lt;/span&gt; wait_time_ms &lt;span style="color:rgb(0,0,255)"&gt;DESC&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;)&lt;/span&gt; &lt;span style="color:rgb(0,0,255)"&gt;AS&lt;/span&gt; rn
  &lt;span style="color:rgb(0,0,255)"&gt;FROM&lt;/span&gt; &lt;span style="color:rgb(0,128,0)"&gt;sys&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;.&lt;/span&gt;&lt;span style="color:rgb(0,128,0)"&gt;dm_os_wait_stats
&lt;/span&gt;  &lt;span style="color:rgb(0,0,255)"&gt;WHERE&lt;/span&gt; wait_type &lt;span style="color:rgb(128,128,128)"&gt;NOT&lt;/span&gt; &lt;span style="color:rgb(128,128,128)"&gt;LIKE&lt;/span&gt; &lt;span style="color:rgb(255,0,0)"&gt;'%SLEEP%'&lt;/span&gt; &lt;span style="color:rgb(0,128,0)"&gt;-- filter out additional irrelevant waits
&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;)
&lt;/span&gt;&lt;span style="color:rgb(0,0,255)"&gt;SELECT
&lt;/span&gt;  W1&lt;span style="color:rgb(128,128,128)"&gt;.&lt;/span&gt;wait_type&lt;span style="color:rgb(128,128,128)"&gt;,&lt;/span&gt; 
  &lt;span style="color:rgb(255,0,255)"&gt;CAST&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;(&lt;/span&gt;W1&lt;span style="color:rgb(128,128,128)"&gt;.&lt;/span&gt;wait_time_s &lt;span style="color:rgb(0,0,255)"&gt;AS&lt;/span&gt; &lt;span style="color:rgb(0,0,255)"&gt;DECIMAL&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;(&lt;/span&gt;12&lt;span style="color:rgb(128,128,128)"&gt;,&lt;/span&gt; 2&lt;span style="color:rgb(128,128,128)"&gt;))&lt;/span&gt; &lt;span style="color:rgb(0,0,255)"&gt;AS&lt;/span&gt; wait_time_s&lt;span style="color:rgb(128,128,128)"&gt;,
&lt;/span&gt;  &lt;span style="color:rgb(255,0,255)"&gt;CAST&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;(&lt;/span&gt;W1&lt;span style="color:rgb(128,128,128)"&gt;.&lt;/span&gt;pct &lt;span style="color:rgb(0,0,255)"&gt;AS&lt;/span&gt; &lt;span style="color:rgb(0,0,255)"&gt;DECIMAL&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;(&lt;/span&gt;12&lt;span style="color:rgb(128,128,128)"&gt;,&lt;/span&gt; 2&lt;span style="color:rgb(128,128,128)"&gt;))&lt;/span&gt; &lt;span style="color:rgb(0,0,255)"&gt;AS&lt;/span&gt; pct&lt;span style="color:rgb(128,128,128)"&gt;,
&lt;/span&gt;  &lt;span style="color:rgb(255,0,255)"&gt;CAST&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;(&lt;/span&gt;&lt;span style="color:rgb(255,0,255)"&gt;SUM&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;(&lt;/span&gt;W2&lt;span style="color:rgb(128,128,128)"&gt;.&lt;/span&gt;pct&lt;span style="color:rgb(128,128,128)"&gt;)&lt;/span&gt; &lt;span style="color:rgb(0,0,255)"&gt;AS&lt;/span&gt; &lt;span style="color:rgb(0,0,255)"&gt;DECIMAL&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;(&lt;/span&gt;12&lt;span style="color:rgb(128,128,128)"&gt;,&lt;/span&gt; 2&lt;span style="color:rgb(128,128,128)"&gt;))&lt;/span&gt; &lt;span style="color:rgb(0,0,255)"&gt;AS&lt;/span&gt; running_pct
&lt;span style="color:rgb(0,0,255)"&gt;FROM&lt;/span&gt; Waits &lt;span style="color:rgb(0,0,255)"&gt;AS&lt;/span&gt; W1
&lt;span style="color:rgb(128,128,128)"&gt;INNER&lt;/span&gt; &lt;span style="color:rgb(128,128,128)"&gt;JOIN&lt;/span&gt; Waits &lt;span style="color:rgb(0,0,255)"&gt;AS&lt;/span&gt; W2
&lt;span style="color:rgb(0,0,255)"&gt;ON&lt;/span&gt; W2&lt;span style="color:rgb(128,128,128)"&gt;.&lt;/span&gt;rn &lt;span style="color:rgb(128,128,128)"&gt;&amp;lt;=&lt;/span&gt; W1&lt;span style="color:rgb(128,128,128)"&gt;.&lt;/span&gt;rn
&lt;span style="color:rgb(0,0,255)"&gt;GROUP&lt;/span&gt; &lt;span style="color:rgb(0,0,255)"&gt;BY&lt;/span&gt; W1&lt;span style="color:rgb(128,128,128)"&gt;.&lt;/span&gt;rn&lt;span style="color:rgb(128,128,128)"&gt;,&lt;/span&gt; W1&lt;span style="color:rgb(128,128,128)"&gt;.&lt;/span&gt;wait_type&lt;span style="color:rgb(128,128,128)"&gt;,&lt;/span&gt; W1&lt;span style="color:rgb(128,128,128)"&gt;.&lt;/span&gt;wait_time_s&lt;span style="color:rgb(128,128,128)"&gt;,&lt;/span&gt; W1&lt;span style="color:rgb(128,128,128)"&gt;.&lt;/span&gt;pct
&lt;span style="color:rgb(0,0,255)"&gt;HAVING&lt;/span&gt; &lt;span style="color:rgb(255,0,255)"&gt;SUM&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;(&lt;/span&gt;W2&lt;span style="color:rgb(128,128,128)"&gt;.&lt;/span&gt;pct&lt;span style="color:rgb(128,128,128)"&gt;)&lt;/span&gt; &lt;span style="color:rgb(128,128,128)"&gt;-&lt;/span&gt; W1&lt;span style="color:rgb(128,128,128)"&gt;.&lt;/span&gt;pct &lt;span style="color:rgb(128,128,128)"&gt;&amp;lt;&lt;/span&gt; 90 &lt;span style="color:rgb(0,128,0)"&gt;-- percentage threshold
&lt;/span&gt;&lt;span style="color:rgb(0,0,255)"&gt;ORDER&lt;/span&gt; &lt;span style="color:rgb(0,0,255)"&gt;BY&lt;/span&gt; W1&lt;span style="color:rgb(128,128,128)"&gt;.&lt;/span&gt;rn&lt;span style="color:rgb(128,128,128)"&gt;;


&lt;/span&gt;&lt;span style="color:rgb(0,128,0)"&gt;-- Signal Waits
&lt;/span&gt;&lt;span style="color:rgb(0,0,255)"&gt;SELECT&lt;/span&gt; &lt;span style="color:rgb(255,0,0)"&gt;'%signal (cpu) waits'&lt;/span&gt; &lt;span style="color:rgb(128,128,128)"&gt;=&lt;/span&gt; &lt;span style="color:rgb(255,0,255)"&gt;CAST&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;(&lt;/span&gt;100.0 &lt;span style="color:rgb(128,128,128)"&gt;*&lt;/span&gt; &lt;span style="color:rgb(255,0,255)"&gt;SUM&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;(&lt;/span&gt;signal_wait_time_ms&lt;span style="color:rgb(128,128,128)"&gt;)&lt;/span&gt; &lt;span style="color:rgb(128,128,128)"&gt;/&lt;/span&gt; &lt;span style="color:rgb(255,0,255)"&gt;SUM&lt;/span&gt;&lt;span style="color:rgb(0,0,255)"&gt; &lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;(&lt;/span&gt;wait_time_ms&lt;span style="color:rgb(128,128,128)"&gt;)&lt;/span&gt; &lt;span style="color:rgb(0,0,255)"&gt;AS&lt;/span&gt; &lt;span style="color:rgb(0,0,255)"&gt;NUMERIC&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;(&lt;/span&gt;20&lt;span style="color:rgb(128,128,128)"&gt;,&lt;/span&gt;2&lt;span style="color:rgb(128,128,128)"&gt;)),
&lt;/span&gt;       &lt;span style="color:rgb(255,0,0)"&gt;'%resource waits'&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;=&lt;/span&gt; &lt;span style="color:rgb(255,0,255)"&gt;CAST&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;(&lt;/span&gt;100.0 &lt;span style="color:rgb(128,128,128)"&gt;*&lt;/span&gt; &lt;span style="color:rgb(255,0,255)"&gt;SUM&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;(&lt;/span&gt;wait_time_ms &lt;span style="color:rgb(128,128,128)"&gt;-&lt;/span&gt; signal_wait_time_ms&lt;span style="color:rgb(128,128,128)"&gt;)&lt;/span&gt; &lt;span style="color:rgb(128,128,128)"&gt;/&lt;/span&gt; &lt;span style="color:rgb(255,0,255)"&gt;SUM&lt;/span&gt;&lt;span style="color:rgb(0,0,255)"&gt; &lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;(&lt;/span&gt;wait_time_ms&lt;span style="color:rgb(128,128,128)"&gt;)&lt;/span&gt; &lt;span style="color:rgb(0,0,255)"&gt;AS&lt;/span&gt; &lt;span style="color:rgb(0,0,255)"&gt;NUMERIC&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;(&lt;/span&gt;20&lt;span style="color:rgb(128,128,128)"&gt;,&lt;/span&gt;2&lt;span style="color:rgb(128,128,128)"&gt;))
&lt;/span&gt;&lt;span style="color:rgb(0,0,255)"&gt;FROM&lt;/span&gt; &lt;span style="color:rgb(0,128,0)"&gt;sys&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;.&lt;/span&gt;&lt;span style="color:rgb(0,128,0)"&gt;dm_os_wait_stats&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;;


&lt;/span&gt;&lt;span style="color:rgb(0,128,0)"&gt;-- Page Life Expectancy
&lt;/span&gt;&lt;span style="color:rgb(0,0,255)"&gt;SELECT&lt;/span&gt; cntr_value &lt;span style="color:rgb(0,0,255)"&gt;AS&lt;/span&gt; &lt;span style="color:rgb(255,0,0)"&gt;'Page Life Expectancy'
&lt;/span&gt;&lt;span style="color:rgb(0,0,255)"&gt;FROM&lt;/span&gt; &lt;span style="color:rgb(0,128,0)"&gt;sys&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;.&lt;/span&gt;&lt;span style="color:rgb(0,128,0)"&gt;dm_os_performance_counters
&lt;/span&gt;&lt;span style="color:rgb(0,0,255)"&gt;WHERE&lt;/span&gt; &lt;span style="color:rgb(255,0,255)"&gt;object_name&lt;/span&gt; &lt;span style="color:rgb(128,128,128)"&gt;=&lt;/span&gt; &lt;span style="color:rgb(255,0,0)"&gt;'SQLServer:Buffer Manager'
&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;AND&lt;/span&gt; counter_name &lt;span style="color:rgb(128,128,128)"&gt;=&lt;/span&gt; &lt;span style="color:rgb(255,0,0)"&gt;'Page life expectancy'


&lt;/span&gt;&lt;span style="color:rgb(0,128,0)"&gt;-- Buffer Pool 
&lt;/span&gt;&lt;span style="color:rgb(0,0,255)"&gt;SELECT&lt;/span&gt; &lt;span style="color:rgb(0,0,255)"&gt;TOP&lt;/span&gt; 10 [type]&lt;span style="color:rgb(128,128,128)"&gt;,&lt;/span&gt; &lt;span style="color:rgb(255,0,255)"&gt;sum&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;(&lt;/span&gt;single_pages_kb&lt;span style="color:rgb(128,128,128)"&gt;)&lt;/span&gt; &lt;span style="color:rgb(0,0,255)"&gt;AS&lt;/span&gt; [SPA Mem, Kb] 
&lt;span style="color:rgb(0,0,255)"&gt;FROM&lt;/span&gt; &lt;span style="color:rgb(0,128,0)"&gt;sys&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;.&lt;/span&gt;&lt;span style="color:rgb(0,128,0)"&gt;dm_os_memory_clerks&lt;/span&gt; 
&lt;span style="color:rgb(0,0,255)"&gt;GROUP&lt;/span&gt; &lt;span style="color:rgb(0,0,255)"&gt;BY&lt;/span&gt; &lt;span style="color:rgb(0,0,255)"&gt;type&lt;/span&gt;  
&lt;span style="color:rgb(0,0,255)"&gt;ORDER&lt;/span&gt; &lt;span style="color:rgb(0,0,255)"&gt;BY&lt;/span&gt; &lt;span style="color:rgb(255,0,255)"&gt;SUM&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;(&lt;/span&gt;single_pages_kb&lt;span style="color:rgb(128,128,128)"&gt;)&lt;/span&gt; &lt;span style="color:rgb(0,0,255)"&gt;DESC&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;;
&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="color:rgb(0,128,0)"&gt;-- Switch to the database you are interested in before you run these: &lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="color:rgb(0,128,0)"&gt;&lt;/span&gt;&lt;span style="color:rgb(0,128,0)"&gt;-- SP's By Execution Count
&lt;/span&gt;&lt;span style="color:rgb(0,0,255)"&gt;SELECT&lt;/span&gt; &lt;span style="color:rgb(0,0,255)"&gt;TOP&lt;/span&gt; 50 qt&lt;span style="color:rgb(128,128,128)"&gt;.&lt;/span&gt;&lt;span style="color:rgb(0,0,255)"&gt;text&lt;/span&gt; &lt;span style="color:rgb(0,0,255)"&gt;AS&lt;/span&gt; &lt;span style="color:rgb(255,0,0)"&gt;'SP Name'&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;,&lt;/span&gt; qs&lt;span style="color:rgb(128,128,128)"&gt;.&lt;/span&gt;execution_count &lt;span style="color:rgb(0,0,255)"&gt;AS&lt;/span&gt; &lt;span style="color:rgb(255,0,0)"&gt;'Execution Count'&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;,&lt;/span&gt;  
qs&lt;span style="color:rgb(128,128,128)"&gt;.&lt;/span&gt;execution_count&lt;span style="color:rgb(128,128,128)"&gt;/&lt;/span&gt;&lt;span style="color:rgb(255,0,255)"&gt;DATEDIFF&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;(&lt;/span&gt;&lt;span style="color:rgb(0,0,255)"&gt;Second&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;,&lt;/span&gt; qs&lt;span style="color:rgb(128,128,128)"&gt;.&lt;/span&gt;creation_time&lt;span style="color:rgb(128,128,128)"&gt;,&lt;/span&gt; &lt;span style="color:rgb(255,0,255)"&gt;GetDate&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;())&lt;/span&gt; &lt;span style="color:rgb(0,0,255)"&gt;AS&lt;/span&gt; &lt;span style="color:rgb(255,0,0)"&gt;'Calls/Second'&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;,
&lt;/span&gt;qs&lt;span style="color:rgb(128,128,128)"&gt;.&lt;/span&gt;total_worker_time&lt;span style="color:rgb(128,128,128)"&gt;/&lt;/span&gt;qs&lt;span style="color:rgb(128,128,128)"&gt;.&lt;/span&gt;execution_count &lt;span style="color:rgb(0,0,255)"&gt;AS&lt;/span&gt; &lt;span style="color:rgb(255,0,0)"&gt;'AvgWorkerTime'&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;,
&lt;/span&gt;qs&lt;span style="color:rgb(128,128,128)"&gt;.&lt;/span&gt;total_worker_time &lt;span style="color:rgb(0,0,255)"&gt;AS&lt;/span&gt; &lt;span style="color:rgb(255,0,0)"&gt;'TotalWorkerTime'&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;,
&lt;/span&gt;qs&lt;span style="color:rgb(128,128,128)"&gt;.&lt;/span&gt;total_elapsed_time&lt;span style="color:rgb(128,128,128)"&gt;/&lt;/span&gt;qs&lt;span style="color:rgb(128,128,128)"&gt;.&lt;/span&gt;execution_count &lt;span style="color:rgb(0,0,255)"&gt;AS&lt;/span&gt; &lt;span style="color:rgb(255,0,0)"&gt;'AvgElapsedTime'&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;,
&lt;/span&gt;qs&lt;span style="color:rgb(128,128,128)"&gt;.&lt;/span&gt;max_logical_reads&lt;span style="color:rgb(128,128,128)"&gt;,&lt;/span&gt; qs&lt;span style="color:rgb(128,128,128)"&gt;.&lt;/span&gt;max_logical_writes&lt;span style="color:rgb(128,128,128)"&gt;,&lt;/span&gt; qs&lt;span style="color:rgb(128,128,128)"&gt;.&lt;/span&gt;total_physical_reads&lt;span style="color:rgb(128,128,128)"&gt;,&lt;/span&gt; 
&lt;span style="color:rgb(255,0,255)"&gt;DATEDIFF&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;(&lt;/span&gt;&lt;span style="color:rgb(0,0,255)"&gt;Minute&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;,&lt;/span&gt; qs&lt;span style="color:rgb(128,128,128)"&gt;.&lt;/span&gt;creation_time&lt;span style="color:rgb(128,128,128)"&gt;,&lt;/span&gt; &lt;span style="color:rgb(255,0,255)"&gt;GetDate&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;())&lt;/span&gt; &lt;span style="color:rgb(0,0,255)"&gt;AS&lt;/span&gt; &lt;span style="color:rgb(255,0,0)"&gt;'Age in Cache'
&lt;/span&gt;&lt;span style="color:rgb(0,0,255)"&gt;FROM&lt;/span&gt; &lt;span style="color:rgb(0,128,0)"&gt;sys&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;.&lt;/span&gt;&lt;span style="color:rgb(0,128,0)"&gt;dm_exec_query_stats&lt;/span&gt; &lt;span style="color:rgb(0,0,255)"&gt;AS&lt;/span&gt; qs
&lt;span style="color:rgb(128,128,128)"&gt;CROSS&lt;/span&gt; &lt;span style="color:rgb(128,128,128)"&gt;APPLY&lt;/span&gt; &lt;span style="color:rgb(0,128,0)"&gt;sys&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;.&lt;/span&gt;&lt;span style="color:rgb(0,128,0)"&gt;dm_exec_sql_text&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;(&lt;/span&gt;qs&lt;span style="color:rgb(128,128,128)"&gt;.&lt;/span&gt;&lt;span style="color:rgb(0,0,255)"&gt;sql_handle&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;)&lt;/span&gt; &lt;span style="color:rgb(0,0,255)"&gt;AS&lt;/span&gt; qt
&lt;span style="color:rgb(0,0,255)"&gt;WHERE&lt;/span&gt; qt&lt;span style="color:rgb(128,128,128)"&gt;.&lt;/span&gt;&lt;span style="color:rgb(0,0,255)"&gt;dbid&lt;/span&gt; &lt;span style="color:rgb(128,128,128)"&gt;=&lt;/span&gt; &lt;span style="color:rgb(255,0,255)"&gt;db_id&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;()&lt;/span&gt; &lt;span style="color:rgb(0,128,0)"&gt;-- Filter by current database
&lt;/span&gt;&lt;span style="color:rgb(0,0,255)"&gt;ORDER&lt;/span&gt; &lt;span style="color:rgb(0,0,255)"&gt;BY&lt;/span&gt; qs&lt;span style="color:rgb(128,128,128)"&gt;.&lt;/span&gt;execution_count &lt;span style="color:rgb(0,0,255)"&gt;DESC


&lt;/span&gt;&lt;span style="color:rgb(0,128,0)"&gt;-- SP's By Worker Time
&lt;/span&gt;&lt;span style="color:rgb(0,0,255)"&gt;SELECT&lt;/span&gt; &lt;span style="color:rgb(0,0,255)"&gt;TOP&lt;/span&gt; 20 qt&lt;span style="color:rgb(128,128,128)"&gt;.&lt;/span&gt;&lt;span style="color:rgb(0,0,255)"&gt;text&lt;/span&gt; &lt;span style="color:rgb(0,0,255)"&gt;AS&lt;/span&gt; &lt;span style="color:rgb(255,0,0)"&gt;'SP Name'&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;,&lt;/span&gt; qs&lt;span style="color:rgb(128,128,128)"&gt;.&lt;/span&gt;total_worker_time &lt;span style="color:rgb(0,0,255)"&gt;AS&lt;/span&gt; &lt;span style="color:rgb(255,0,0)"&gt;'TotalWorkerTime'&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;,&lt;/span&gt; 
qs&lt;span style="color:rgb(128,128,128)"&gt;.&lt;/span&gt;total_worker_time&lt;span style="color:rgb(128,128,128)"&gt;/&lt;/span&gt;qs&lt;span style="color:rgb(128,128,128)"&gt;.&lt;/span&gt;execution_count &lt;span style="color:rgb(0,0,255)"&gt;AS&lt;/span&gt; &lt;span style="color:rgb(255,0,0)"&gt;'AvgWorkerTime'&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;,
&lt;/span&gt;qs&lt;span style="color:rgb(128,128,128)"&gt;.&lt;/span&gt;execution_count &lt;span style="color:rgb(0,0,255)"&gt;AS&lt;/span&gt; &lt;span style="color:rgb(255,0,0)"&gt;'Execution Count'&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;,&lt;/span&gt; 
&lt;span style="color:rgb(255,0,255)"&gt;ISNULL&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;(&lt;/span&gt;qs&lt;span style="color:rgb(128,128,128)"&gt;.&lt;/span&gt;execution_count&lt;span style="color:rgb(128,128,128)"&gt;/&lt;/span&gt;&lt;span style="color:rgb(255,0,255)"&gt;DATEDIFF&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;(&lt;/span&gt;&lt;span style="color:rgb(0,0,255)"&gt;Second&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;,&lt;/span&gt; qs&lt;span style="color:rgb(128,128,128)"&gt;.&lt;/span&gt;creation_time&lt;span style="color:rgb(128,128,128)"&gt;,&lt;/span&gt; &lt;span style="color:rgb(255,0,255)"&gt;GetDate&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;()),&lt;/span&gt; 0&lt;span style="color:rgb(128,128,128)"&gt;)&lt;/span&gt; &lt;span style="color:rgb(0,0,255)"&gt;AS&lt;/span&gt; &lt;span style="color:rgb(255,0,0)"&gt;'Calls/Second'&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;,
&lt;/span&gt;&lt;span style="color:rgb(255,0,255)"&gt;ISNULL&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;(&lt;/span&gt;qs&lt;span style="color:rgb(128,128,128)"&gt;.&lt;/span&gt;total_elapsed_time&lt;span style="color:rgb(128,128,128)"&gt;/&lt;/span&gt;qs&lt;span style="color:rgb(128,128,128)"&gt;.&lt;/span&gt;execution_count&lt;span style="color:rgb(128,128,128)"&gt;,&lt;/span&gt; 0&lt;span style="color:rgb(128,128,128)"&gt;)&lt;/span&gt; &lt;span style="color:rgb(0,0,255)"&gt;AS&lt;/span&gt; &lt;span style="color:rgb(255,0,0)"&gt;'AvgElapsedTime'&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;,&lt;/span&gt; 
qs&lt;span style="color:rgb(128,128,128)"&gt;.&lt;/span&gt;max_logical_reads&lt;span style="color:rgb(128,128,128)"&gt;,&lt;/span&gt; qs&lt;span style="color:rgb(128,128,128)"&gt;.&lt;/span&gt;max_logical_writes&lt;span style="color:rgb(128,128,128)"&gt;,&lt;/span&gt; 
&lt;span style="color:rgb(255,0,255)"&gt;DATEDIFF&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;(&lt;/span&gt;&lt;span style="color:rgb(0,0,255)"&gt;Minute&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;,&lt;/span&gt; qs&lt;span style="color:rgb(128,128,128)"&gt;.&lt;/span&gt;creation_time&lt;span style="color:rgb(128,128,128)"&gt;,&lt;/span&gt; &lt;span style="color:rgb(255,0,255)"&gt;GetDate&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;())&lt;/span&gt; &lt;span style="color:rgb(0,0,255)"&gt;AS&lt;/span&gt; &lt;span style="color:rgb(255,0,0)"&gt;'Age in Cache'
&lt;/span&gt;&lt;span style="color:rgb(0,0,255)"&gt;FROM&lt;/span&gt; &lt;span style="color:rgb(0,128,0)"&gt;sys&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;.&lt;/span&gt;&lt;span style="color:rgb(0,128,0)"&gt;dm_exec_query_stats&lt;/span&gt; &lt;span style="color:rgb(0,0,255)"&gt;AS&lt;/span&gt; qs
&lt;span style="color:rgb(128,128,128)"&gt;CROSS&lt;/span&gt; &lt;span style="color:rgb(128,128,128)"&gt;APPLY&lt;/span&gt; &lt;span style="color:rgb(0,128,0)"&gt;sys&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;.&lt;/span&gt;&lt;span style="color:rgb(0,128,0)"&gt;dm_exec_sql_text&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;(&lt;/span&gt;qs&lt;span style="color:rgb(128,128,128)"&gt;.&lt;/span&gt;&lt;span style="color:rgb(0,0,255)"&gt;sql_handle&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;)&lt;/span&gt; &lt;span style="color:rgb(0,0,255)"&gt;AS&lt;/span&gt; qt
&lt;span style="color:rgb(0,0,255)"&gt;WHERE&lt;/span&gt; qt&lt;span style="color:rgb(128,128,128)"&gt;.&lt;/span&gt;&lt;span style="color:rgb(0,0,255)"&gt;dbid&lt;/span&gt; &lt;span style="color:rgb(128,128,128)"&gt;=&lt;/span&gt; &lt;span style="color:rgb(255,0,255)"&gt;db_id&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;()&lt;/span&gt; &lt;span style="color:rgb(0,128,0)"&gt;-- Filter by current database
&lt;/span&gt;&lt;span style="color:rgb(0,0,255)"&gt;ORDER&lt;/span&gt; &lt;span style="color:rgb(0,0,255)"&gt;BY&lt;/span&gt; qs&lt;span style="color:rgb(128,128,128)"&gt;.&lt;/span&gt;total_worker_time &lt;span style="color:rgb(0,0,255)"&gt;DESC


&lt;/span&gt;&lt;span style="color:rgb(0,128,0)"&gt;-- SP's By Logical Reads
&lt;/span&gt;&lt;span style="color:rgb(0,0,255)"&gt;SELECT&lt;/span&gt; &lt;span style="color:rgb(0,0,255)"&gt;TOP&lt;/span&gt; 20 qt&lt;span style="color:rgb(128,128,128)"&gt;.&lt;/span&gt;&lt;span style="color:rgb(0,0,255)"&gt;text&lt;/span&gt; &lt;span style="color:rgb(0,0,255)"&gt;AS&lt;/span&gt; &lt;span style="color:rgb(255,0,0)"&gt;'SP Name'&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;,&lt;/span&gt; total_logical_reads&lt;span style="color:rgb(128,128,128)"&gt;,&lt;/span&gt; 
qs&lt;span style="color:rgb(128,128,128)"&gt;.&lt;/span&gt;execution_count &lt;span style="color:rgb(0,0,255)"&gt;AS&lt;/span&gt; &lt;span style="color:rgb(255,0,0)"&gt;'Execution Count'&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;,&lt;/span&gt; total_logical_reads&lt;span style="color:rgb(128,128,128)"&gt;/&lt;/span&gt;qs&lt;span style="color:rgb(128,128,128)"&gt;.&lt;/span&gt;execution_count &lt;span style="color:rgb(0,0,255)"&gt;AS&lt;/span&gt; &lt;span style="color:rgb(255,0,0)"&gt;'AvgLogicalReads'&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;,
&lt;/span&gt;qs&lt;span style="color:rgb(128,128,128)"&gt;.&lt;/span&gt;execution_count&lt;span style="color:rgb(128,128,128)"&gt;/&lt;/span&gt;&lt;span style="color:rgb(255,0,255)"&gt;DATEDIFF&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;(&lt;/span&gt;&lt;span style="color:rgb(0,0,255)"&gt;Second&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;,&lt;/span&gt; qs&lt;span style="color:rgb(128,128,128)"&gt;.&lt;/span&gt;creation_time&lt;span style="color:rgb(128,128,128)"&gt;,&lt;/span&gt; &lt;span style="color:rgb(255,0,255)"&gt;GetDate&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;())&lt;/span&gt; &lt;span style="color:rgb(0,0,255)"&gt;AS&lt;/span&gt; &lt;span style="color:rgb(255,0,0)"&gt;'Calls/Second'&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;,&lt;/span&gt; 
qs&lt;span style="color:rgb(128,128,128)"&gt;.&lt;/span&gt;total_worker_time&lt;span style="color:rgb(128,128,128)"&gt;/&lt;/span&gt;qs&lt;span style="color:rgb(128,128,128)"&gt;.&lt;/span&gt;execution_count &lt;span style="color:rgb(0,0,255)"&gt;AS&lt;/span&gt; &lt;span style="color:rgb(255,0,0)"&gt;'AvgWorkerTime'&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;,
&lt;/span&gt;qs&lt;span style="color:rgb(128,128,128)"&gt;.&lt;/span&gt;total_worker_time &lt;span style="color:rgb(0,0,255)"&gt;AS&lt;/span&gt; &lt;span style="color:rgb(255,0,0)"&gt;'TotalWorkerTime'&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;,
&lt;/span&gt;qs&lt;span style="color:rgb(128,128,128)"&gt;.&lt;/span&gt;total_elapsed_time&lt;span style="color:rgb(128,128,128)"&gt;/&lt;/span&gt;qs&lt;span style="color:rgb(128,128,128)"&gt;.&lt;/span&gt;execution_count &lt;span style="color:rgb(0,0,255)"&gt;AS&lt;/span&gt; &lt;span style="color:rgb(255,0,0)"&gt;'AvgElapsedTime'&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;,
&lt;/span&gt;qs&lt;span style="color:rgb(128,128,128)"&gt;.&lt;/span&gt;total_logical_writes&lt;span style="color:rgb(128,128,128)"&gt;,
&lt;/span&gt;qs&lt;span style="color:rgb(128,128,128)"&gt;.&lt;/span&gt;max_logical_reads&lt;span style="color:rgb(128,128,128)"&gt;,&lt;/span&gt; qs&lt;span style="color:rgb(128,128,128)"&gt;.&lt;/span&gt;max_logical_writes&lt;span style="color:rgb(128,128,128)"&gt;,&lt;/span&gt; qs&lt;span style="color:rgb(128,128,128)"&gt;.&lt;/span&gt;total_physical_reads&lt;span style="color:rgb(128,128,128)"&gt;,&lt;/span&gt; 
&lt;span style="color:rgb(255,0,255)"&gt;DATEDIFF&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;(&lt;/span&gt;&lt;span style="color:rgb(0,0,255)"&gt;Minute&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;,&lt;/span&gt; qs&lt;span style="color:rgb(128,128,128)"&gt;.&lt;/span&gt;creation_time&lt;span style="color:rgb(128,128,128)"&gt;,&lt;/span&gt; &lt;span style="color:rgb(255,0,255)"&gt;GetDate&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;())&lt;/span&gt; &lt;span style="color:rgb(0,0,255)"&gt;AS&lt;/span&gt; &lt;span style="color:rgb(255,0,0)"&gt;'Age in Cache'
&lt;/span&gt;&lt;span style="color:rgb(0,0,255)"&gt;FROM&lt;/span&gt; &lt;span style="color:rgb(0,128,0)"&gt;sys&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;.&lt;/span&gt;&lt;span style="color:rgb(0,128,0)"&gt;dm_exec_query_stats&lt;/span&gt; &lt;span style="color:rgb(0,0,255)"&gt;AS&lt;/span&gt; qs
&lt;span style="color:rgb(128,128,128)"&gt;CROSS&lt;/span&gt; &lt;span style="color:rgb(128,128,128)"&gt;APPLY&lt;/span&gt; &lt;span style="color:rgb(0,128,0)"&gt;sys&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;.&lt;/span&gt;&lt;span style="color:rgb(0,128,0)"&gt;dm_exec_sql_text&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;(&lt;/span&gt;qs&lt;span style="color:rgb(128,128,128)"&gt;.&lt;/span&gt;&lt;span style="color:rgb(0,0,255)"&gt;sql_handle&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;)&lt;/span&gt; &lt;span style="color:rgb(0,0,255)"&gt;AS&lt;/span&gt; qt
&lt;span style="color:rgb(0,0,255)"&gt;WHERE&lt;/span&gt; qt&lt;span style="color:rgb(128,128,128)"&gt;.&lt;/span&gt;&lt;span style="color:rgb(0,0,255)"&gt;dbid&lt;/span&gt; &lt;span style="color:rgb(128,128,128)"&gt;=&lt;/span&gt; &lt;span style="color:rgb(255,0,255)"&gt;db_id&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;()&lt;/span&gt; &lt;span style="color:rgb(0,128,0)"&gt;-- Filter by current database
&lt;/span&gt;&lt;span style="color:rgb(0,0,255)"&gt;ORDER&lt;/span&gt; &lt;span style="color:rgb(0,0,255)"&gt;BY&lt;/span&gt; total_logical_reads &lt;span style="color:rgb(0,0,255)"&gt;DESC


&lt;/span&gt;&lt;span style="color:rgb(0,128,0)"&gt;-- Bad Indexes
&lt;/span&gt;&lt;span style="color:rgb(0,0,255)"&gt;SELECT&lt;/span&gt; &lt;span style="color:rgb(255,0,0)"&gt;'Table Name'&lt;/span&gt; &lt;span style="color:rgb(128,128,128)"&gt;=&lt;/span&gt; &lt;span style="color:rgb(255,0,255)"&gt;object_name&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;(&lt;/span&gt;s&lt;span style="color:rgb(128,128,128)"&gt;.&lt;/span&gt;&lt;span style="color:rgb(255,0,255)"&gt;object_id&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;),&lt;/span&gt; &lt;span style="color:rgb(255,0,0)"&gt;'Index Name'&lt;/span&gt; &lt;span style="color:rgb(128,128,128)"&gt;=&lt;/span&gt; i&lt;span style="color:rgb(128,128,128)"&gt;.&lt;/span&gt;name&lt;span style="color:rgb(128,128,128)"&gt;,&lt;/span&gt; i&lt;span style="color:rgb(128,128,128)"&gt;.&lt;/span&gt;index_id&lt;span style="color:rgb(128,128,128)"&gt;,
&lt;/span&gt;       &lt;span style="color:rgb(255,0,0)"&gt;'Total Writes'&lt;/span&gt; &lt;span style="color:rgb(128,128,128)"&gt;=&lt;/span&gt;  user_updates&lt;span style="color:rgb(128,128,128)"&gt;,&lt;/span&gt; &lt;span style="color:rgb(255,0,0)"&gt;'Total Reads'&lt;/span&gt; &lt;span style="color:rgb(128,128,128)"&gt;=&lt;/span&gt; user_seeks &lt;span style="color:rgb(128,128,128)"&gt;+&lt;/span&gt; user_scans &lt;span style="color:rgb(128,128,128)"&gt;+&lt;/span&gt; user_lookups&lt;span style="color:rgb(128,128,128)"&gt;,
&lt;/span&gt;        &lt;span style="color:rgb(255,0,0)"&gt;'Difference'&lt;/span&gt; &lt;span style="color:rgb(128,128,128)"&gt;=&lt;/span&gt; user_updates &lt;span style="color:rgb(128,128,128)"&gt;-&lt;/span&gt;&lt;span style="color:rgb(0,0,255)"&gt; &lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;(&lt;/span&gt;user_seeks &lt;span style="color:rgb(128,128,128)"&gt;+&lt;/span&gt; user_scans &lt;span style="color:rgb(128,128,128)"&gt;+&lt;/span&gt; user_lookups&lt;span style="color:rgb(128,128,128)"&gt;)
&lt;/span&gt;&lt;span style="color:rgb(0,0,255)"&gt;FROM&lt;/span&gt; &lt;span style="color:rgb(0,128,0)"&gt;sys&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;.&lt;/span&gt;&lt;span style="color:rgb(0,128,0)"&gt;dm_db_index_usage_stats&lt;/span&gt; &lt;span style="color:rgb(0,0,255)"&gt;AS&lt;/span&gt; s 
&lt;span style="color:rgb(128,128,128)"&gt;INNER&lt;/span&gt; &lt;span style="color:rgb(128,128,128)"&gt;JOIN&lt;/span&gt; &lt;span style="color:rgb(0,128,0)"&gt;sys&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;.&lt;/span&gt;&lt;span style="color:rgb(0,128,0)"&gt;indexes&lt;/span&gt; &lt;span style="color:rgb(0,0,255)"&gt;AS&lt;/span&gt; i
&lt;span style="color:rgb(0,0,255)"&gt;ON&lt;/span&gt; s&lt;span style="color:rgb(128,128,128)"&gt;.&lt;/span&gt;&lt;span style="color:rgb(255,0,255)"&gt;object_id&lt;/span&gt; &lt;span style="color:rgb(128,128,128)"&gt;=&lt;/span&gt; i&lt;span style="color:rgb(128,128,128)"&gt;.&lt;/span&gt;&lt;span style="color:rgb(255,0,255)"&gt;object_id
&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;AND&lt;/span&gt; i&lt;span style="color:rgb(128,128,128)"&gt;.&lt;/span&gt;index_id &lt;span style="color:rgb(128,128,128)"&gt;=&lt;/span&gt; s&lt;span style="color:rgb(128,128,128)"&gt;.&lt;/span&gt;index_id
&lt;span style="color:rgb(0,0,255)"&gt;WHERE&lt;/span&gt; &lt;span style="color:rgb(255,0,255)"&gt;objectproperty&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;(&lt;/span&gt;s&lt;span style="color:rgb(128,128,128)"&gt;.&lt;/span&gt;&lt;span style="color:rgb(255,0,255)"&gt;object_id&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;,&lt;/span&gt;&lt;span style="color:rgb(255,0,0)"&gt;'IsUserTable'&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;)&lt;/span&gt; &lt;span style="color:rgb(128,128,128)"&gt;=&lt;/span&gt; 1
&lt;span style="color:rgb(128,128,128)"&gt;AND&lt;/span&gt; s&lt;span style="color:rgb(128,128,128)"&gt;.&lt;/span&gt;database_id &lt;span style="color:rgb(128,128,128)"&gt;=&lt;/span&gt; &lt;span style="color:rgb(255,0,255)"&gt;db_id&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;()
AND&lt;/span&gt; user_updates &lt;span style="color:rgb(128,128,128)"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0,0,255)"&gt; &lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;(&lt;/span&gt;user_seeks &lt;span style="color:rgb(128,128,128)"&gt;+&lt;/span&gt; user_scans &lt;span style="color:rgb(128,128,128)"&gt;+&lt;/span&gt; user_lookups&lt;span style="color:rgb(128,128,128)"&gt;)
&lt;/span&gt;&lt;span style="color:rgb(0,0,255)"&gt;ORDER&lt;/span&gt; &lt;span style="color:rgb(0,0,255)"&gt;BY&lt;/span&gt; &lt;span style="color:rgb(255,0,0)"&gt;'Difference'&lt;/span&gt; &lt;span style="color:rgb(0,0,255)"&gt;DESC&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;,&lt;/span&gt; &lt;span style="color:rgb(255,0,0)"&gt;'Total Writes'&lt;/span&gt; &lt;span style="color:rgb(0,0,255)"&gt;DESC&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;,&lt;/span&gt; &lt;span style="color:rgb(255,0,0)"&gt;'Total Reads'&lt;/span&gt; &lt;span style="color:rgb(0,0,255)"&gt;ASC&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;;


&lt;/span&gt;&lt;span style="color:rgb(0,128,0)"&gt;-- Missing Indexes By Index Advantage
&lt;/span&gt;&lt;span style="color:rgb(0,0,255)"&gt;SELECT&lt;/span&gt; user_seeks &lt;span style="color:rgb(128,128,128)"&gt;*&lt;/span&gt; avg_total_user_cost &lt;span style="color:rgb(128,128,128)"&gt;*&lt;/span&gt;&lt;span style="color:rgb(0,0,255)"&gt; &lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;(&lt;/span&gt;avg_user_impact &lt;span style="color:rgb(128,128,128)"&gt;*&lt;/span&gt; 0.01&lt;span style="color:rgb(128,128,128)"&gt;)&lt;/span&gt; &lt;span style="color:rgb(0,0,255)"&gt;AS&lt;/span&gt; index_advantage&lt;span style="color:rgb(128,128,128)"&gt;,&lt;/span&gt; migs&lt;span style="color:rgb(128,128,128)"&gt;.&lt;/span&gt;last_user_seek&lt;span style="color:rgb(128,128,128)"&gt;,&lt;/span&gt; mid&lt;span style="color:rgb(128,128,128)"&gt;.&lt;/span&gt;&lt;span style="color:rgb(0,0,255)"&gt;statement&lt;/span&gt; &lt;span style="color:rgb(0,0,255)"&gt;as&lt;/span&gt; &lt;span style="color:rgb(255,0,0)"&gt;'Database.Schema.Table'&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;,
&lt;/span&gt;mid&lt;span style="color:rgb(128,128,128)"&gt;.&lt;/span&gt;equality_columns&lt;span style="color:rgb(128,128,128)"&gt;,&lt;/span&gt; mid&lt;span style="color:rgb(128,128,128)"&gt;.&lt;/span&gt;inequality_columns&lt;span style="color:rgb(128,128,128)"&gt;,&lt;/span&gt; mid&lt;span style="color:rgb(128,128,128)"&gt;.&lt;/span&gt;included_columns&lt;span style="color:rgb(128,128,128)"&gt;,
&lt;/span&gt;migs&lt;span style="color:rgb(128,128,128)"&gt;.&lt;/span&gt;unique_compiles&lt;span style="color:rgb(128,128,128)"&gt;,&lt;/span&gt; migs&lt;span style="color:rgb(128,128,128)"&gt;.&lt;/span&gt;user_seeks&lt;span style="color:rgb(128,128,128)"&gt;,&lt;/span&gt; migs&lt;span style="color:rgb(128,128,128)"&gt;.&lt;/span&gt;avg_total_user_cost&lt;span style="color:rgb(128,128,128)"&gt;,&lt;/span&gt; migs&lt;span style="color:rgb(128,128,128)"&gt;.&lt;/span&gt;avg_user_impact
&lt;span style="color:rgb(0,0,255)"&gt;FROM&lt;/span&gt; &lt;span style="color:rgb(0,128,0)"&gt;sys&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;.&lt;/span&gt;&lt;span style="color:rgb(0,128,0)"&gt;dm_db_missing_index_group_stats&lt;/span&gt; &lt;span style="color:rgb(0,0,255)"&gt;AS&lt;/span&gt; migs &lt;span style="color:rgb(0,0,255)"&gt;WITH &lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;(&lt;/span&gt;&lt;span style="color:rgb(0,0,255)"&gt;NOLOCK&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;)
INNER&lt;/span&gt; &lt;span style="color:rgb(128,128,128)"&gt;JOIN&lt;/span&gt; &lt;span style="color:rgb(0,128,0)"&gt;sys&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;.&lt;/span&gt;&lt;span style="color:rgb(0,128,0)"&gt;dm_db_missing_index_groups&lt;/span&gt; &lt;span style="color:rgb(0,0,255)"&gt;AS&lt;/span&gt; mig &lt;span style="color:rgb(0,0,255)"&gt;WITH &lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;(&lt;/span&gt;&lt;span style="color:rgb(0,0,255)"&gt;NOLOCK&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;)
&lt;/span&gt;&lt;span style="color:rgb(0,0,255)"&gt;ON&lt;/span&gt; migs&lt;span style="color:rgb(128,128,128)"&gt;.&lt;/span&gt;group_handle &lt;span style="color:rgb(128,128,128)"&gt;=&lt;/span&gt; mig&lt;span style="color:rgb(128,128,128)"&gt;.&lt;/span&gt;index_group_handle
&lt;span style="color:rgb(128,128,128)"&gt;INNER&lt;/span&gt; &lt;span style="color:rgb(128,128,128)"&gt;JOIN&lt;/span&gt; &lt;span style="color:rgb(0,128,0)"&gt;sys&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;.&lt;/span&gt;&lt;span style="color:rgb(0,128,0)"&gt;dm_db_missing_index_details&lt;/span&gt; &lt;span style="color:rgb(0,0,255)"&gt;AS&lt;/span&gt; mid &lt;span style="color:rgb(0,0,255)"&gt;WITH &lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;(&lt;/span&gt;&lt;span style="color:rgb(0,0,255)"&gt;NOLOCK&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;)
&lt;/span&gt;&lt;span style="color:rgb(0,0,255)"&gt;ON&lt;/span&gt; mig&lt;span style="color:rgb(128,128,128)"&gt;.&lt;/span&gt;index_handle &lt;span style="color:rgb(128,128,128)"&gt;=&lt;/span&gt; mid&lt;span style="color:rgb(128,128,128)"&gt;.&lt;/span&gt;index_handle
&lt;span style="color:rgb(0,0,255)"&gt;ORDER&lt;/span&gt; &lt;span style="color:rgb(0,0,255)"&gt;BY&lt;/span&gt; index_advantage &lt;span style="color:rgb(0,0,255)"&gt;DESC&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;;

&lt;/span&gt;&lt;/pre&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=4973121985808345440&amp;page=RSS%3a+Diagnostic+Information+Queries+For+SQL+Server+Server+2005%2f2008&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=glennberrysqlperformance.spaces.live.com&amp;amp;GT1=GlennBerrySQLPerformance"&gt;</description><category>SQL Server 2008</category><comments>http://GlennBerrySQLPerformance.spaces.live.com/Blog/cns!45041418ECCAA960!990.entry#comment</comments><guid isPermaLink="true">http://GlennBerrySQLPerformance.spaces.live.com/Blog/cns!45041418ECCAA960!990.entry</guid><pubDate>Wed, 16 Jul 2008 16:47:48 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://GlennBerrySQLPerformance.spaces.live.com/blog/cns!45041418ECCAA960!990/comments/feed.rss</wfw:commentRss><wfw:comment>http://GlennBerrySQLPerformance.spaces.live.com/Blog/cns!45041418ECCAA960!990.entry#comment</wfw:comment><dcterms:modified>2008-07-16T16:47:48Z</dcterms:modified></item><item><title>July 17 Meeting At Denver SQL Server User’s Group</title><link>http://GlennBerrySQLPerformance.spaces.live.com/Blog/cns!45041418ECCAA960!989.entry</link><description>&lt;p&gt; &lt;p&gt; &lt;p&gt;This Thursday is is the July meeting for the &lt;a href="http://www.denversql.org/"&gt;Denver SQL Server User’s Group&lt;/a&gt; at the Microsoft office in the Tech Center.   Janis Griffin is giving a presentation on Wait-Time Based SQL Server Performance Management, which should be very interesting.  I will be there, and I think that Kevin Cox will also be in the area. &lt;p&gt;I use the queries below every day to keep an eye on what my top wait types on my various SQL Server instances. &lt;p&gt; &lt;pre&gt;&lt;span style="color:rgb(0,128,0)"&gt;    -- Clear Wait Stats
&lt;/span&gt;    &lt;span style="color:rgb(0,0,255)"&gt;DBCC&lt;/span&gt; SQLPERF&lt;span style="color:rgb(128,128,128)"&gt;(&lt;/span&gt;&lt;span style="color:rgb(255,0,0)"&gt;'sys.dm_os_wait_stats'&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;,&lt;/span&gt; &lt;span style="color:rgb(0,0,255)"&gt;CLEAR&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;);


&lt;/span&gt;    &lt;span style="color:rgb(0,128,0)"&gt;-- Isolate top waits
&lt;/span&gt;    &lt;span style="color:rgb(0,0,255)"&gt;WITH&lt;/span&gt; Waits &lt;span style="color:rgb(0,0,255)"&gt;AS
    &lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;(
&lt;/span&gt;      &lt;span style="color:rgb(0,0,255)"&gt;SELECT
&lt;/span&gt;        wait_type&lt;span style="color:rgb(128,128,128)"&gt;,
&lt;/span&gt;        wait_time_ms &lt;span style="color:rgb(128,128,128)"&gt;/&lt;/span&gt; 1000. &lt;span style="color:rgb(0,0,255)"&gt;AS&lt;/span&gt; wait_time_s&lt;span style="color:rgb(128,128,128)"&gt;,
&lt;/span&gt;        100. &lt;span style="color:rgb(128,128,128)"&gt;*&lt;/span&gt; wait_time_ms &lt;span style="color:rgb(128,128,128)"&gt;/&lt;/span&gt; &lt;span style="color:rgb(255,0,255)"&gt;SUM&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;(&lt;/span&gt;wait_time_ms&lt;span style="color:rgb(128,128,128)"&gt;)&lt;/span&gt; &lt;span style="color:rgb(0,0,255)"&gt;OVER&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;()&lt;/span&gt; &lt;span style="color:rgb(0,0,255)"&gt;AS&lt;/span&gt; pct&lt;span style="color:rgb(128,128,128)"&gt;,
&lt;/span&gt;        &lt;span style="color:rgb(255,0,255)"&gt;ROW_NUMBER&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;()&lt;/span&gt; &lt;span style="color:rgb(0,0,255)"&gt;OVER&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;(&lt;/span&gt;&lt;span style="color:rgb(0,0,255)"&gt;ORDER&lt;/span&gt; &lt;span style="color:rgb(0,0,255)"&gt;BY&lt;/span&gt; wait_time_ms &lt;span style="color:rgb(0,0,255)"&gt;DESC&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;)&lt;/span&gt; &lt;span style="color:rgb(0,0,255)"&gt;AS&lt;/span&gt; rn
      &lt;span style="color:rgb(0,0,255)"&gt;FROM&lt;/span&gt; &lt;span style="color:rgb(0,128,0)"&gt;sys&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;.&lt;/span&gt;&lt;span style="color:rgb(0,128,0)"&gt;dm_os_wait_stats
&lt;/span&gt;      &lt;span style="color:rgb(0,0,255)"&gt;WHERE&lt;/span&gt; wait_type &lt;span style="color:rgb(128,128,128)"&gt;NOT&lt;/span&gt; &lt;span style="color:rgb(128,128,128)"&gt;LIKE&lt;/span&gt; &lt;span style="color:rgb(255,0,0)"&gt;'%SLEEP%'
&lt;/span&gt;      &lt;span style="color:rgb(0,128,0)"&gt;-- filter out additional irrelevant waits
&lt;/span&gt;    &lt;span style="color:rgb(128,128,128)"&gt;)
&lt;/span&gt;    &lt;span style="color:rgb(0,0,255)"&gt;SELECT
&lt;/span&gt;      W1&lt;span style="color:rgb(128,128,128)"&gt;.&lt;/span&gt;wait_type&lt;span style="color:rgb(128,128,128)"&gt;,&lt;/span&gt; 
      &lt;span style="color:rgb(255,0,255)"&gt;CAST&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;(&lt;/span&gt;W1&lt;span style="color:rgb(128,128,128)"&gt;.&lt;/span&gt;wait_time_s &lt;span style="color:rgb(0,0,255)"&gt;AS&lt;/span&gt; &lt;span style="color:rgb(0,0,255)"&gt;DECIMAL&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;(&lt;/span&gt;12&lt;span style="color:rgb(128,128,128)"&gt;,&lt;/span&gt; 2&lt;span style="color:rgb(128,128,128)"&gt;))&lt;/span&gt; &lt;span style="color:rgb(0,0,255)"&gt;AS&lt;/span&gt; wait_time_s&lt;span style="color:rgb(128,128,128)"&gt;,
&lt;/span&gt;      &lt;span style="color:rgb(255,0,255)"&gt;CAST&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;(&lt;/span&gt;W1&lt;span style="color:rgb(128,128,128)"&gt;.&lt;/span&gt;pct &lt;span style="color:rgb(0,0,255)"&gt;AS&lt;/span&gt; &lt;span style="color:rgb(0,0,255)"&gt;DECIMAL&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;(&lt;/span&gt;12&lt;span style="color:rgb(128,128,128)"&gt;,&lt;/span&gt; 2&lt;span style="color:rgb(128,128,128)"&gt;))&lt;/span&gt; &lt;span style="color:rgb(0,0,255)"&gt;AS&lt;/span&gt; pct&lt;span style="color:rgb(128,128,128)"&gt;,
&lt;/span&gt;      &lt;span style="color:rgb(255,0,255)"&gt;CAST&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;(&lt;/span&gt;&lt;span style="color:rgb(255,0,255)"&gt;SUM&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;(&lt;/span&gt;W2&lt;span style="color:rgb(128,128,128)"&gt;.&lt;/span&gt;pct&lt;span style="color:rgb(128,128,128)"&gt;)&lt;/span&gt; &lt;span style="color:rgb(0,0,255)"&gt;AS&lt;/span&gt; &lt;span style="color:rgb(0,0,255)"&gt;DECIMAL&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;(&lt;/span&gt;12&lt;span style="color:rgb(128,128,128)"&gt;,&lt;/span&gt; 2&lt;span style="color:rgb(128,128,128)"&gt;))&lt;/span&gt; &lt;span style="color:rgb(0,0,255)"&gt;AS&lt;/span&gt; running_pct
    &lt;span style="color:rgb(0,0,255)"&gt;FROM&lt;/span&gt; Waits &lt;span style="color:rgb(0,0,255)"&gt;AS&lt;/span&gt; W1
    &lt;span style="color:rgb(128,128,128)"&gt;INNER&lt;/span&gt; &lt;span style="color:rgb(128,128,128)"&gt;JOIN&lt;/span&gt; Waits &lt;span style="color:rgb(0,0,255)"&gt;AS&lt;/span&gt; W2
    &lt;span style="color:rgb(0,0,255)"&gt;ON&lt;/span&gt; W2&lt;span style="color:rgb(128,128,128)"&gt;.&lt;/span&gt;rn &lt;span style="color:rgb(128,128,128)"&gt;&amp;lt;=&lt;/span&gt; W1&lt;span style="color:rgb(128,128,128)"&gt;.&lt;/span&gt;rn
    &lt;span style="color:rgb(0,0,255)"&gt;GROUP&lt;/span&gt; &lt;span style="color:rgb(0,0,255)"&gt;BY&lt;/span&gt; W1&lt;span style="color:rgb(128,128,128)"&gt;.&lt;/span&gt;rn&lt;span style="color:rgb(128,128,128)"&gt;,&lt;/span&gt; W1&lt;span style="color:rgb(128,128,128)"&gt;.&lt;/span&gt;wait_type&lt;span style="color:rgb(128,128,128)"&gt;,&lt;/span&gt; W1&lt;span style="color:rgb(128,128,128)"&gt;.&lt;/span&gt;wait_time_s&lt;span style="color:rgb(128,128,128)"&gt;,&lt;/span&gt; W1&lt;span style="color:rgb(128,128,128)"&gt;.&lt;/span&gt;pct
    &lt;span style="color:rgb(0,0,255)"&gt;HAVING&lt;/span&gt; &lt;span style="color:rgb(255,0,255)"&gt;SUM&lt;/span&gt;&lt;span style="color:rgb(128,128,128)"&gt;(&lt;/span&gt;W2&lt;span style="color:rgb(128,128,128)"&gt;.&lt;/span&gt;pct&lt;span style="color:rgb(128,128,128)"&gt;)&lt;/span&gt; &lt;span style="color:rgb(128,128,128)"&gt;-&lt;/span&gt; W1&lt;span style="color:rgb(128,128,128)"&gt;.&lt;/span&gt;pct &lt;span style="color:rgb(128,128,128)"&gt;&amp;lt;&lt;/span&gt; 90 &lt;span style="color:rgb(0,128,0)"&gt;-- percentage threshold
&lt;/span&gt;    &lt;span style="color:rgb(0,0,255)"&gt;ORDER&lt;/span&gt; &lt;span style="color:rgb(0,0,255)"&gt;BY&lt;/span&gt; W1&lt;span style="color:rgb(128,128,128)"&gt;.&lt;/span&gt;rn&lt;span style="color:rgb(128,128,128)"&gt;;&lt;/span&gt;&lt;/pre&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=4973121985808345440&amp;page=RSS%3a+July+17+Meeting+At+Denver+SQL+Server+User%e2%80%99s+Group&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=glennberrysqlperformance.spaces.live.com&amp;amp;GT1=GlennBerrySQLPerformance"&gt;</description><category>SQL Server 2008</category><comments>http://GlennBerrySQLPerformance.spaces.live.com/Blog/cns!45041418ECCAA960!989.entry#comment</comments><guid isPermaLink="true">http://GlennBerrySQLPerformance.spaces.live.com/Blog/cns!45041418ECCAA960!989.entry</guid><pubDate>Wed, 16 Jul 2008 16:16:43 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://GlennBerrySQLPerformance.spaces.live.com/blog/cns!45041418ECCAA960!989/comments/feed.rss</wfw:commentRss><wfw:comment>http://GlennBerrySQLPerformance.spaces.live.com/Blog/cns!45041418ECCAA960!989.entry#comment</wfw:comment><dcterms:modified>2008-07-16T16:16:43Z</dcterms:modified></item><item><title>NetNewsWire on the iPhone</title><link>http://GlennBerrySQLPerformance.spaces.live.com/Blog/cns!45041418ECCAA960!988.entry</link><description>&lt;p&gt;There has been lots of coverage already about NewsGator’s release of a special version of &lt;a href="http://www.newsgator.com/Individuals/NetNewsWireiPhone/Default.aspx"&gt;NetNewsWire for the iPhone&lt;/a&gt;. ArsTechnica has it &lt;a href="http://arstechnica.com/journals/apple.ars/2008/06/10/ars-at-wwdc-exclusive-preview-of-mobile-netnewswire"&gt;here&lt;/a&gt;. Mashable covers it &lt;a href="http://mashable.com/2008/07/09/native-iphone-3g-apps/"&gt;here&lt;/a&gt;. Our own Greg Reinacker blogs about it &lt;a href="http://www.rassoc.com/gregr/weblog/2008/07/10/netnewswire-for-iphone-now-available/"&gt;here&lt;/a&gt;.  It looks like another great application from Brent Simmons.  Of course, it is also free… &lt;p&gt;  &lt;p&gt;&lt;a href="http://phobos.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=284881860&amp;amp;mt=8"&gt;&lt;img height=234 alt="NetNewsWire for iPhone" src="http://www.newsgator.com/images/NetNewsWireiPhone.jpg" width=448&gt;&lt;/a&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=4973121985808345440&amp;page=RSS%3a+NetNewsWire+on+the+iPhone&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=glennberrysqlperformance.spaces.live.com&amp;amp;GT1=GlennBerrySQLPerformance"&gt;</description><category>NewsGator</category><comments>http://GlennBerrySQLPerformance.spaces.live.com/Blog/cns!45041418ECCAA960!988.entry#comment</comments><guid isPermaLink="true">http://GlennBerrySQLPerformance.spaces.live.com/Blog/cns!45041418ECCAA960!988.entry</guid><pubDate>Thu, 10 Jul 2008 16:47:08 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://GlennBerrySQLPerformance.spaces.live.com/blog/cns!45041418ECCAA960!988/comments/feed.rss</wfw:commentRss><wfw:comment>http://GlennBerrySQLPerformance.spaces.live.com/Blog/cns!45041418ECCAA960!988.entry#comment</wfw:comment><dcterms:modified>2008-07-10T16:47:08Z</dcterms:modified></item><item><title>SQL Server 2008 To RTM in August?</title><link>http://GlennBerrySQLPerformance.spaces.live.com/Blog/cns!45041418ECCAA960!987.entry</link><description>&lt;p&gt;That is what &lt;a href="http://blogs.zdnet.com/microsoft/"&gt;Mary Jo Foley&lt;/a&gt; says right &lt;a href="http://blogs.zdnet.com/microsoft/?p=1478"&gt;here&lt;/a&gt;. Microsoft's Bob Kelly made that announcement at the Worldwide Partner Conference on July 9. The &amp;quot;official&amp;quot; schedule for the RTM of SQL Server 2008 is still Q3 2008 (which many people have joked means September 30 at 11:59PM). &lt;p&gt;August RTM seems pretty viable to me, based on publicly available information.  Time to start convincing management why you need to upgrade to 2008...&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=4973121985808345440&amp;page=RSS%3a+SQL+Server+2008+To+RTM+in+August%3f&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=glennberrysqlperformance.spaces.live.com&amp;amp;GT1=GlennBerrySQLPerformance"&gt;</description><category>SQL Server 2008</category><comments>http://GlennBerrySQLPerformance.spaces.live.com/Blog/cns!45041418ECCAA960!987.entry#comment</comments><guid isPermaLink="true">http://GlennBerrySQLPerformance.spaces.live.com/Blog/cns!45041418ECCAA960!987.entry</guid><pubDate>Thu, 10 Jul 2008 02:34:12 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://GlennBerrySQLPerformance.spaces.live.com/blog/cns!45041418ECCAA960!987/comments/feed.rss</wfw:commentRss><wfw:comment>http://GlennBerrySQLPerformance.spaces.live.com/Blog/cns!45041418ECCAA960!987.entry#comment</wfw:comment><dcterms:modified>2008-07-10T02:34:12Z</dcterms:modified></item><item><title>Very Useful Integrated Full-Text Search (iFTS) Technical Article on MSDN</title><link>http://GlennBerrySQLPerformance.spaces.live.com/Blog/cns!45041418ECCAA960!986.entry</link><description>&lt;p&gt;Microsoft’s Fernando Azpeitia Lopez has a very informative &lt;a href="http://msdn.microsoft.com/en-us/library/cc721269(SQL.100).aspx#_Querying"&gt;article&lt;/a&gt; published on MSDN about the enhancements to Full-Text Search (now called iFTS) in SQL Server 2008, along with quite a bit of helpful detail about diagnostic and troubleshooting measures that are available. &lt;p&gt;I have &lt;a href="http://glennberrysqlperformance.spaces.live.com/blog/cns!45041418ECCAA960!975.entry"&gt;previously&lt;/a&gt; written about some of my experience with iFTS in RC0 of SQL Server 2008. Back in February, I &lt;a href="http://glennberrysqlperformance.spaces.live.com/blog/cns!45041418ECCAA960!875.entry"&gt;blogged&lt;/a&gt; about our experience with iFTS with CTP6 of SQL Server 2008. &lt;p&gt;  &lt;div style="padding-right:0px;display:inline;padding-left:0px;float:none;padding-bottom:0px;margin:0px;padding-top:0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/SQL+Server+2008+iFTS" rel=tag&gt;SQL Server 2008 iFTS&lt;/a&gt;&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=4973121985808345440&amp;page=RSS%3a+Very+Useful+Integrated+Full-Text+Search+(iFTS)+Technical+Article+on+MSDN&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=glennberrysqlperformance.spaces.live.com&amp;amp;GT1=GlennBerrySQLPerformance"&gt;</description><category>SQL Server 2008</category><comments>http://GlennBerrySQLPerformance.spaces.live.com/Blog/cns!45041418ECCAA960!986.entry#comment</comments><guid isPermaLink="true">http://GlennBerrySQLPerformance.spaces.live.com/Blog/cns!45041418ECCAA960!986.entry</guid><pubDate>Mon, 07 Jul 2008 19:51:35 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://GlennBerrySQLPerformance.spaces.live.com/blog/cns!45041418ECCAA960!986/comments/feed.rss</wfw:commentRss><wfw:comment>http://GlennBerrySQLPerformance.spaces.live.com/Blog/cns!45041418ECCAA960!986.entry#comment</wfw:comment><dcterms:modified>2008-07-07T19:51:35Z</dcterms:modified></item><item><title>More Intel Hardware News</title><link>http://GlennBerrySQLPerformance.spaces.live.com/Blog/cns!45041418ECCAA960!985.entry</link><description>&lt;p&gt;Intel’s Chris Peters has a couple of videos up where he talks about &lt;a href="http://communities.intel.com/openport/blogs/server/2008/06/04/why-45nm-whats-next"&gt;Intel’s Tick-Tock strategy&lt;/a&gt; and about the &lt;a href="http://communities.intel.com/openport/blogs/server/2008/06/11/why-45nm-whats-next-part-2"&gt;upcoming 45nm Dunnington and the Nehalem&lt;/a&gt; families of processors.  The Dunnington is particularly interesting to me, since it is based on the Core microarchitecture, and it will have 16MB of L3 cache and six cores per processor. It will be pin compatible with the existing X7350 Xeon, and should drop right into a Dell PowerEdge R900 four-socket server. This is due out during the 2nd half of 2008, and should perform really well with SQL Server 2008. &lt;p&gt;This &lt;a href="http://communities.intel.com/docs/DOC-1428;jsessionid=F8106F956B7FDF556A6E3770CCB4C08A"&gt;video&lt;/a&gt; explains some of the differences between the various Intel Xeon product lines. &lt;p&gt; &lt;p&gt; &lt;p&gt; &lt;p&gt; &lt;p&gt; &lt;p&gt; &lt;p&gt; &lt;p&gt;Speaking of Nehalem, Tom’s Hardware has some &lt;a href="http://www.tomshardware.com/news/intel-x58-nehalem,5829.html"&gt;preview information&lt;/a&gt; of a Nehalem/X58 based system that they have been playing with. It is a quad-core, with hyper-threading, so the OS will see eight CPUs. The CPU has an integrated memory controller (like AMD), so this should really increase memory performance. This presages what we will see on the server side in late 2008/early 2009.&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=4973121985808345440&amp;page=RSS%3a+More+Intel+Hardware+News&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=glennberrysqlperformance.spaces.live.com&amp;amp;GT1=GlennBerrySQLPerformance"&gt;</description><category>SQL Server 2008</category><comments>http://GlennBerrySQLPerformance.spaces.live.com/Blog/cns!45041418ECCAA960!985.entry#comment</comments><guid isPermaLink="true">http://GlennBerrySQLPerformance.spaces.live.com/Blog/cns!45041418ECCAA960!985.entry</guid><pubDate>Mon, 07 Jul 2008 16:54:32 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://GlennBerrySQLPerformance.spaces.live.com/blog/cns!45041418ECCAA960!985/comments/feed.rss</wfw:commentRss><wfw:comment>http://GlennBerrySQLPerformance.spaces.live.com/Blog/cns!45041418ECCAA960!985.entry#comment</wfw:comment><dcterms:modified>2008-07-07T16:54:32Z</dcterms:modified></item><item><title>Nice New Option For SQL Server Management Studio 2008</title><link>http://GlennBerrySQLPerformance.spaces.live.com/Blog/cns!45041418ECCAA960!983.entry</link><description>&lt;p&gt;The 2008 version of SQL Server Management Studio (SSMS) has a new option that can save you a lot of pain.  In the 2005 version, you could bring up a table in the designer, and make just about any schema change you wanted, and then click the Save button on the toolbar. SSMS would automatically generate Transact-SQL code to implement the change as it saw fit and then run that code, which could be &lt;strong&gt;&lt;em&gt;very costly&lt;/em&gt;&lt;/strong&gt; on a large or busy table.  &lt;p&gt;For example, SSMS might want to create a new table, copy all of the data from the existing table into the new table, then rename the old and new tables. This was known as “table-recreation”, which could be very expensive on a 100 million row table. &lt;p&gt;Now, in the 2008 version of SSMS, you can set an option that will prevent SSMS from doing this. This will save a lot of DBAs from themselves! &lt;p&gt;  &lt;p&gt;&lt;a href="http://vknhaa.tuk.livefilestore.com/y1pF3CmST2Z45mbFPACuPG8V9nEyvubQlqwKyGOWReN5xmsKbYFkh7E62tnB2HlojN4?PARTNER=WRITER"&gt;&lt;img title=image style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px" height=384 alt=image src="http://vknhaa.tuk.livefilestore.com/y1pC_M3Nk17RZPeEeZuO8LynADMNSyn4qO813BOMCeYcszf9tBdJWmrTpeWC-ycJ0eQTzy-RCLi_mU?PARTNER=WRITER" width=644 border=0&gt;&lt;/a&gt;  &lt;p&gt;  &lt;div style="padding-right:0px;display:inline;padding-left:0px;float:none;padding-bottom:0px;margin:0px;padding-top:0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/SQL+Server+2008" rel=tag&gt;SQL Server 2008&lt;/a&gt;&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=4973121985808345440&amp;page=RSS%3a+Nice+New+Option+For+SQL+Server+Management+Studio+2008&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=glennberrysqlperformance.spaces.live.com&amp;amp;GT1=GlennBerrySQLPerformance"&gt;</description><category>SQL Server 2008</category><comments>http://GlennBerrySQLPerformance.spaces.live.com/Blog/cns!45041418ECCAA960!983.entry#comment</comments><guid isPermaLink="true">http://GlennBerrySQLPerformance.spaces.live.com/Blog/cns!45041418ECCAA960!983.entry</guid><pubDate>Wed, 02 Jul 2008 22:42:25 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://GlennBerrySQLPerformance.spaces.live.com/blog/cns!45041418ECCAA960!983/comments/feed.rss</wfw:commentRss><wfw:comment>http://GlennBerrySQLPerformance.spaces.live.com/Blog/cns!45041418ECCAA960!983.entry#comment</wfw:comment><dcterms:modified>2008-07-02T22:42:25Z</dcterms:modified></item><item><title>Nice SQL Server 2005\2008 Performance Troubleshooting Flowchart From SQLCAT</title><link>http://GlennBerrySQLPerformance.spaces.live.com/Blog/cns!45041418ECCAA960!980.entry</link><description>&lt;p&gt;Sharon Bjeletich has a &lt;a href="http://sqlcat.com/presentations/archive/2008/04/18/troubleshooting-sql-server-2005-2008-performance-and-scalability-flowchart.aspx"&gt;post&lt;/a&gt; on &lt;a href="http://sqlcat.com/"&gt;SQLCAT&lt;/a&gt; about a &lt;a href="http://sqlcat.com/files/folders/280/download.aspx"&gt;SQL Server 2005\2008 Performance and Scalability Troubleshooting flowchart&lt;/a&gt;. The first step in the troubleshooting effort is to gain some background knowledge by reading the articles below (which I have helpfully linked to). &lt;p&gt;&lt;a href="http://www.microsoft.com/technet/prodtechnol/sql/2005/tsprfprb.mspx"&gt;Troubleshooting Performance Problems in SQL Server 2005&lt;/a&gt; (this is the best of the bunch) &lt;p&gt;&lt;a href="http://support.microsoft.com/kb/224587/en-us"&gt;HOW TO: Troubleshoot Application Performance with SQL Server&lt;/a&gt; (this is a little old) &lt;p&gt;&lt;a href="http://support.microsoft.com/kb/243589/en-us"&gt;How to troubleshoot slow-running queries on SQL Server 7.0 or on later versions&lt;/a&gt; (this is a little older) &lt;p&gt;&lt;a href="http://support.microsoft.com/kb/271509/en-us"&gt;How to monitor blocking in SQL Server 2005 and in SQL Server 2000&lt;/a&gt; &lt;p&gt;&lt;a href="http://support.microsoft.com/kb/169960/en-us"&gt;INF: Analyzing and Avoiding Deadlocks in SQL Server&lt;/a&gt; &lt;p&gt;&lt;a href="http://support.microsoft.com/kb/832524/en-us"&gt;SQL Server technical bulletin - How to resolve a deadlock&lt;/a&gt; &lt;p&gt;&lt;a href="http://www.microsoft.com/technet/prodtechnol/sql/2005/recomp.mspx"&gt;Batch Compilation, Recompilation, and Plan Caching Issues in SQL Server 2005&lt;/a&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=4973121985808345440&amp;page=RSS%3a+Nice+SQL+Server+2005%5c2008+Performance+Troubleshooting+Flowchart+From+SQLCAT&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=glennberrysqlperformance.spaces.live.com&amp;amp;GT1=GlennBerrySQLPerformance"&gt;</description><category>SQL Server 2008</category><comments>http://GlennBerrySQLPerformance.spaces.live.com/Blog/cns!45041418ECCAA960!980.entry#comment</comments><guid isPermaLink="true">http://GlennBerrySQLPerformance.spaces.live.com/Blog/cns!45041418ECCAA960!980.entry</guid><pubDate>Wed, 02 Jul 2008 02:45:48 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://GlennBerrySQLPerformance.spaces.live.com/blog/cns!45041418ECCAA960!980/comments/feed.rss</wfw:commentRss><wfw:comment>http://GlennBerrySQLPerformance.spaces.live.com/Blog/cns!45041418ECCAA960!980.entry#comment</wfw:comment><dcterms:modified>2008-07-02T02:45:48Z</dcterms:modified></item><item><title>[MVP] Congratulations!  You have received the Microsoft MVP Award</title><link>http://GlennBerrySQLPerformance.spaces.live.com/Blog/cns!45041418ECCAA960!977.entry</link><description>&lt;p&gt; &lt;p&gt;That subject line in an e-mail from Microsoft on the first day of the quarter is what every Microsoft MVP hopes to see, relatively early in the day. Fortunately, mine arrived at 9:01AM, Mountain Time, so my repeated clicking on the Send/Receive button could cease… &lt;p&gt;That means that my MVP for SQL Server was renewed for 2008, which was a great relief to me. This is my second year getting the MVP award, so I don’t feel quite so junior anymore!&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=4973121985808345440&amp;page=RSS%3a+%5bMVP%5d+Congratulations!++You+have+received+the+Microsoft+MVP+Award&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=glennberrysqlperformance.spaces.live.com&amp;amp;GT1=GlennBerrySQLPerformance"&gt;</description><category>Microsoft</category><comments>http://GlennBerrySQLPerformance.spaces.live.com/Blog/cns!45041418ECCAA960!977.entry#comment</comments><guid isPermaLink="true">http://GlennBerrySQLPerformance.spaces.live.com/Blog/cns!45041418ECCAA960!977.entry</guid><pubDate>Tue, 01 Jul 2008 16:37:17 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://GlennBerrySQLPerformance.spaces.live.com/blog/cns!45041418ECCAA960!977/comments/feed.rss</wfw:commentRss><wfw:comment>http://GlennBerrySQLPerformance.spaces.live.com/Blog/cns!45041418ECCAA960!977.entry#comment</wfw:comment><dcterms:modified>2008-07-01T16:37:17Z</dcterms:modified></item><item><title>Book List: Book List</title><link>http://GlennBerrySQLPerformance.spaces.live.com/Lists/cns!45041418ECCAA960!105</link><description>&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;&lt;a href="http://www.amazon.com&amp;#47;gp&amp;#47;redirect.html&amp;#37;3FASIN&amp;#61;0735621055&amp;#37;26tag&amp;#61;glennberryssq-20&amp;#37;26lcode&amp;#61;sp1&amp;#37;26cID&amp;#61;2025&amp;#37;26ccmID&amp;#61;165953&amp;#37;26location&amp;#61;&amp;#47;o&amp;#47;ASIN&amp;#47;0735621055&amp;#37;253FSubscriptionId&amp;#61;1KDHEGDEXZNBKYAEECR2"&gt;Kalen Delaney: Inside Microsoft SQL Server 2005&amp;#58; The Storage Engine&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.amazon.com&amp;#47;gp&amp;#47;redirect.html&amp;#37;3FASIN&amp;#61;0735621055&amp;#37;26tag&amp;#61;glennberryssq-20&amp;#37;26lcode&amp;#61;sp1&amp;#37;26cID&amp;#61;2025&amp;#37;26ccmID&amp;#61;165953&amp;#37;26location&amp;#61;&amp;#47;o&amp;#47;ASIN&amp;#47;0735621055&amp;#37;253FSubscriptionId&amp;#61;1KDHEGDEXZNBKYAEECR2"&gt;&lt;img src="http://images.amazon.com&amp;#47;images&amp;#47;P&amp;#47;0735621055.01._SCTHUMBZZZ_V41714130_.jpg" valign="top" border="0"&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Much anticipated title from Kalen Delaney&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a href="http://www.amazon.com&amp;#47;exec&amp;#47;obidos&amp;#47;redirect&amp;#37;3Ftag&amp;#61;msnspaces04-20&amp;#37;26link_code&amp;#61;sp1&amp;#37;26camp&amp;#61;2025&amp;#37;26creative&amp;#61;165953&amp;#37;26path&amp;#61;http&amp;#58;&amp;#47;&amp;#47;www.amazon.com&amp;#47;gp&amp;#47;redirect.html&amp;#37;253fASIN&amp;#61;0735621977&amp;#37;2526tag&amp;#61;msnspaces04-20&amp;#37;2526lcode&amp;#61;sp1&amp;#37;2526cID&amp;#61;2025&amp;#37;2526ccmID&amp;#61;165953&amp;#37;2526location&amp;#61;&amp;#47;o&amp;#47;ASIN&amp;#47;0735621977&amp;#37;25253FSubscriptionId&amp;#61;1KDHEGDEXZNBKYAEECR2"&gt;Itzik Ben-Gan: Inside Microsoft SQL Server 2005&amp;#58; T-SQL Programming&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.amazon.com&amp;#47;exec&amp;#47;obidos&amp;#47;redirect&amp;#37;3Ftag&amp;#61;msnspaces04-20&amp;#37;26link_code&amp;#61;sp1&amp;#37;26camp&amp;#61;2025&amp;#37;26creative&amp;#61;165953&amp;#37;26path&amp;#61;http&amp;#58;&amp;#47;&amp;#47;www.amazon.com&amp;#47;gp&amp;#47;redirect.html&amp;#37;253fASIN&amp;#61;0735621977&amp;#37;2526tag&amp;#61;msnspaces04-20&amp;#37;2526lcode&amp;#61;sp1&amp;#37;2526cID&amp;#61;2025&amp;#37;2526ccmID&amp;#61;165953&amp;#37;2526location&amp;#61;&amp;#47;o&amp;#47;ASIN&amp;#47;0735621977&amp;#37;25253FSubscriptionId&amp;#61;1KDHEGDEXZNBKYAEECR2"&gt;&lt;img src="http://images.amazon.com&amp;#47;images&amp;#47;P&amp;#47;0735621977.01._SCTHUMBZZZ_.jpg" valign="top" border="0"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a href="http://www.amazon.com&amp;#47;exec&amp;#47;obidos&amp;#47;redirect&amp;#37;3Ftag&amp;#61;msnspaces04-20&amp;#37;26link_code&amp;#61;sp1&amp;#37;26camp&amp;#61;2025&amp;#37;26creative&amp;#61;165953&amp;#37;26path&amp;#61;http&amp;#58;&amp;#47;&amp;#47;www.amazon.com&amp;#47;gp&amp;#47;redirect.html&amp;#37;253fASIN&amp;#61;0735623139&amp;#37;2526tag&amp;#61;msnspaces04-20&amp;#37;2526lcode&amp;#61;sp1&amp;#37;2526cID&amp;#61;2025&amp;#37;2526ccmID&amp;#61;165953&amp;#37;2526location&amp;#61;&amp;#47;o&amp;#47;ASIN&amp;#47;0735623139&amp;#37;25253FSubscriptionId&amp;#61;1KDHEGDEXZNBKYAEECR2"&gt;Itzik Ben-Gan: Inside Microsoft SQL Server 2005&amp;#58; T-SQL Querying&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.amazon.com&amp;#47;exec&amp;#47;obidos&amp;#47;redirect&amp;#37;3Ftag&amp;#61;msnspaces04-20&amp;#37;26link_code&amp;#61;sp1&amp;#37;26camp&amp;#61;2025&amp;#37;26creative&amp;#61;165953&amp;#37;26path&amp;#61;http&amp;#58;&amp;#47;&amp;#47;www.amazon.com&amp;#47;gp&amp;#47;redirect.html&amp;#37;253fASIN&amp;#61;0735623139&amp;#37;2526tag&amp;#61;msnspaces04-20&amp;#37;2526lcode&amp;#61;sp1&amp;#37;2526cID&amp;#61;2025&amp;#37;2526ccmID&amp;#61;165953&amp;#37;2526location&amp;#61;&amp;#47;o&amp;#47;ASIN&amp;#47;0735623139&amp;#37;25253FSubscriptionId&amp;#61;1KDHEGDEXZNBKYAEECR2"&gt;&lt;img src="http://images.amazon.com&amp;#47;images&amp;#47;P&amp;#47;0735623139.01._SCTHUMBZZZ_.jpg" valign="top" border="0"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a href="http://www.amazon.com&amp;#47;gp&amp;#47;redirect.html&amp;#37;3FASIN&amp;#61;0321397967&amp;#37;26tag&amp;#61;glennberryssq-20&amp;#37;26lcode&amp;#61;sp1&amp;#37;26cID&amp;#61;2025&amp;#37;26ccmID&amp;#61;165953&amp;#37;26location&amp;#61;&amp;#47;o&amp;#47;ASIN&amp;#47;0321397967&amp;#37;253FSubscriptionId&amp;#61;1KDHEGDEXZNBKYAEECR2"&gt;Michael Raheem: Inside SQL Server 2005 Tools&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.amazon.com&amp;#47;gp&amp;#47;redirect.html&amp;#37;3FASIN&amp;#61;0321397967&amp;#37;26tag&amp;#61;glennberryssq-20&amp;#37;26lcode&amp;#61;sp1&amp;#37;26cID&amp;#61;2025&amp;#37;26ccmID&amp;#61;165953&amp;#37;26location&amp;#61;&amp;#47;o&amp;#47;ASIN&amp;#47;0321397967&amp;#37;253FSubscriptionId&amp;#61;1KDHEGDEXZNBKYAEECR2"&gt;&lt;img src="http://images.amazon.com&amp;#47;images&amp;#47;P&amp;#47;0321397967.01._SCTHUMBZZZ_V38703855_.jpg" valign="top" border="0"&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Very good title that covers all of the management tools included with SQL Server 2005&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a href="http://www.amazon.com&amp;#47;gp&amp;#47;redirect.html&amp;#37;3FASIN&amp;#61;0120887975&amp;#37;26tag&amp;#61;glennberryssq-20&amp;#37;26lcode&amp;#61;sp1&amp;#37;26cID&amp;#61;2025&amp;#37;26ccmID&amp;#61;165953&amp;#37;26location&amp;#61;&amp;#47;o&amp;#47;ASIN&amp;#47;0120887975&amp;#37;253FSubscriptionId&amp;#61;1KDHEGDEXZNBKYAEECR2"&gt;Joe Celko: Joe Celko&amp;#39;s SQL Programming Style&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.amazon.com&amp;#47;gp&amp;#47;redirect.html&amp;#37;3FASIN&amp;#61;0120887975&amp;#37;26tag&amp;#61;glennberryssq-20&amp;#37;26lcode&amp;#61;sp1&amp;#37;26cID&amp;#61;2025&amp;#37;26ccmID&amp;#61;165953&amp;#37;26location&amp;#61;&amp;#47;o&amp;#47;ASIN&amp;#47;0120887975&amp;#37;253FSubscriptionId&amp;#61;1KDHEGDEXZNBKYAEECR2"&gt;&lt;img src="http://ec1.images-amazon.com&amp;#47;images&amp;#47;P&amp;#47;0120887975.01._SCTHUMBZZZ_.jpg" valign="top" border="0"&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;This is a great reference for how to write clear, concise, and efficient SQL. If you are looking for good ideas for SQL coding standards, you will find them here.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a href="http://www.amazon.com&amp;#47;gp&amp;#47;redirect.html&amp;#37;3FASIN&amp;#61;0449208133&amp;#37;26tag&amp;#61;glennberryssq-20&amp;#37;26lcode&amp;#61;sp1&amp;#37;26cID&amp;#61;2025&amp;#37;26ccmID&amp;#61;165953&amp;#37;26location&amp;#61;&amp;#47;o&amp;#47;ASIN&amp;#47;0449208133&amp;#37;253FSubscriptionId&amp;#61;1KDHEGDEXZNBKYAEECR2"&gt;Larry Niven: Lucifer&amp;#39;s Hammer&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.amazon.com&amp;#47;gp&amp;#47;redirect.html&amp;#37;3FASIN&amp;#61;0449208133&amp;#37;26tag&amp;#61;glennberryssq-20&amp;#37;26lcode&amp;#61;sp1&amp;#37;26cID&amp;#61;2025&amp;#37;26ccmID&amp;#61;165953&amp;#37;26location&amp;#61;&amp;#47;o&amp;#47;ASIN&amp;#47;0449208133&amp;#37;253FSubscriptionId&amp;#61;1KDHEGDEXZNBKYAEECR2"&gt;&lt;img src="http://images.amazon.com&amp;#47;images&amp;#47;P&amp;#47;0449208133.01._SCTHUMBZZZ_V1056444360_.gif" valign="top" border="0"&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Classic end of the world tale from 1985&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a href="http://www.amazon.com&amp;#47;gp&amp;#47;redirect.html&amp;#37;3FASIN&amp;#61;073562254X&amp;#37;26tag&amp;#61;glennberryssq-20&amp;#37;26lcode&amp;#61;sp1&amp;#37;26cID&amp;#61;2025&amp;#37;26ccmID&amp;#61;165953&amp;#37;26location&amp;#61;&amp;#47;o&amp;#47;ASIN&amp;#47;073562254X&amp;#37;253FSubscriptionId&amp;#61;1KDHEGDEXZNBKYAEECR2"&gt;Orin Thomas: MCITP Self-Paced Training Kit&amp;#58; Optimizing and Maintaining a Database Administration Solution Using Microsoft SQL Server 2005&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.amazon.com&amp;#47;gp&amp;#47;redirect.html&amp;#37;3FASIN&amp;#61;073562254X&amp;#37;26tag&amp;#61;glennberryssq-20&amp;#37;26lcode&amp;#61;sp1&amp;#37;26cID&amp;#61;2025&amp;#37;26ccmID&amp;#61;165953&amp;#37;26location&amp;#61;&amp;#47;o&amp;#47;ASIN&amp;#47;073562254X&amp;#37;253FSubscriptionId&amp;#61;1KDHEGDEXZNBKYAEECR2"&gt;&lt;img src="http://ec2.images-amazon.com&amp;#47;images&amp;#47;P&amp;#47;073562254X.01._SCTHUMBZZZ_V37830379_.jpg" valign="top" border="0"&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;First Exam Prep book for Microsoft Exam 70-444. Pretty good coverage on measuring and troubleshooting server performance and query performance. Good chapter on index optimization and maintenance. This book also covers replication and security as well.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a href="http://www.amazon.com&amp;#47;exec&amp;#47;obidos&amp;#47;redirect&amp;#37;3Ftag&amp;#61;glennberryssq-20&amp;#37;26link_code&amp;#61;sp1&amp;#37;26camp&amp;#61;2025&amp;#37;26creative&amp;#61;165953&amp;#37;26path&amp;#61;http&amp;#58;&amp;#47;&amp;#47;www.amazon.com&amp;#47;gp&amp;#47;redirect.html&amp;#37;253fASIN&amp;#61;073562271X&amp;#37;2526tag&amp;#61;glennberryssq-20&amp;#37;2526lcode&amp;#61;sp1&amp;#37;2526cID&amp;#61;2025&amp;#37;2526ccmID&amp;#61;165953&amp;#37;2526location&amp;#61;&amp;#47;o&amp;#47;ASIN&amp;#47;073562271X&amp;#37;25253FSubscriptionId&amp;#61;1KDHEGDEXZNBKYAEECR2"&gt;Solid Quality Learning: MCTS Self-Paced Training Kit &amp;#40;Exam 70-431&amp;#41;&amp;#58; Microsoft SQL Server&amp;#40;TM&amp;#41; 2005 Implementation and Maintenance&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.amazon.com&amp;#47;exec&amp;#47;obidos&amp;#47;redirect&amp;#37;3Ftag&amp;#61;glennberryssq-20&amp;#37;26link_code&amp;#61;sp1&amp;#37;26camp&amp;#61;2025&amp;#37;26creative&amp;#61;165953&amp;#37;26path&amp;#61;http&amp;#58;&amp;#47;&amp;#47;www.amazon.com&amp;#47;gp&amp;#47;redirect.html&amp;#37;253fASIN&amp;#61;073562271X&amp;#37;2526tag&amp;#61;glennberryssq-20&amp;#37;2526lcode&amp;#61;sp1&amp;#37;2526cID&amp;#61;2025&amp;#37;2526ccmID&amp;#61;165953&amp;#37;2526location&amp;#61;&amp;#47;o&amp;#47;ASIN&amp;#47;073562271X&amp;#37;25253FSubscriptionId&amp;#61;1KDHEGDEXZNBKYAEECR2"&gt;&lt;img src="http://ec1.images-amazon.com&amp;#47;images&amp;#47;P&amp;#47;073562271X.01._SCTHUMBZZZ_.jpg" valign="top" border="0"&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;This book is a great resource for passing the 70-431 exam. It is also the required textbook for MCIS-4423 at Denver University-University College&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a href="http://www.amazon.com&amp;#47;gp&amp;#47;redirect.html&amp;#37;3FASIN&amp;#61;0321447743&amp;#37;26tag&amp;#61;glennberryssq-20&amp;#37;26lcode&amp;#61;sp1&amp;#37;26cID&amp;#61;2025&amp;#37;26ccmID&amp;#61;165953&amp;#37;26location&amp;#61;&amp;#47;o&amp;#47;ASIN&amp;#47;0321447743&amp;#37;253FSubscriptionId&amp;#61;1KDHEGDEXZNBKYAEECR2"&gt;Ken Henderson: SQL Server 2005 Practical Troubleshooting&amp;#58; The Database Engine&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.amazon.com&amp;#47;gp&amp;#47;redirect.html&amp;#37;3FASIN&amp;#61;0321447743&amp;#37;26tag&amp;#61;glennberryssq-20&amp;#37;26lcode&amp;#61;sp1&amp;#37;26cID&amp;#61;2025&amp;#37;26ccmID&amp;#61;165953&amp;#37;26location&amp;#61;&amp;#47;o&amp;#47;ASIN&amp;#47;0321447743&amp;#37;253FSubscriptionId&amp;#61;1KDHEGDEXZNBKYAEECR2"&gt;&lt;img src="http://ec1.images-amazon.com&amp;#47;images&amp;#47;P&amp;#47;0321447743.01._SCTHUMBZZZ_V34022765_.jpg" valign="top" border="0"&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Extremely valuable book with lots of advanced information written by members of the SQL Server Development and Support Teams.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a href="http://www.amazon.com&amp;#47;exec&amp;#47;obidos&amp;#47;redirect&amp;#37;3Ftag&amp;#61;msnspaces04-20&amp;#37;26link_code&amp;#61;sp1&amp;#37;26camp&amp;#61;2025&amp;#37;26creative&amp;#61;165953&amp;#37;26path&amp;#61;http&amp;#58;&amp;#47;&amp;#47;www.amazon.com&amp;#47;gp&amp;#47;redirect.html&amp;#37;253fASIN&amp;#61;1590594215&amp;#37;2526tag&amp;#61;msnspaces04-20&amp;#37;2526lcode&amp;#61;sp1&amp;#37;2526cID&amp;#61;2025&amp;#37;2526ccmID&amp;#61;165953&amp;#37;2526location&amp;#61;&amp;#47;o&amp;#47;ASIN&amp;#47;1590594215&amp;#37;25253FSubscriptionId&amp;#61;1KDHEGDEXZNBKYAEECR2"&gt;Sajal Dam: SQL Server Query Performance Tuning Distilled, Second Edition&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.amazon.com&amp;#47;exec&amp;#47;obidos&amp;#47;redirect&amp;#37;3Ftag&amp;#61;msnspaces04-20&amp;#37;26link_code&amp;#61;sp1&amp;#37;26camp&amp;#61;2025&amp;#37;26creative&amp;#61;165953&amp;#37;26path&amp;#61;http&amp;#58;&amp;#47;&amp;#47;www.amazon.com&amp;#47;gp&amp;#47;redirect.html&amp;#37;253fASIN&amp;#61;1590594215&amp;#37;2526tag&amp;#61;msnspaces04-20&amp;#37;2526lcode&amp;#61;sp1&amp;#37;2526cID&amp;#61;2025&amp;#37;2526ccmID&amp;#61;165953&amp;#37;2526location&amp;#61;&amp;#47;o&amp;#47;ASIN&amp;#47;1590594215&amp;#37;25253FSubscriptionId&amp;#61;1KDHEGDEXZNBKYAEECR2"&gt;&lt;img src="http://images.amazon.com&amp;#47;images&amp;#47;P&amp;#47;1590594215.01._SCTHUMBZZZ_.jpg" valign="top" border="0"&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;While this book is focused on SQL Server 2000, it is still a great resource for SQL Server tuning.&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=4973121985808345440&amp;page=RSS%3a+Book+List%3a+Book+List&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=glennberrysqlperformance.spaces.live.com&amp;amp;GT1=GlennBerrySQLPerformance"&gt;</description><guid isPermaLink="false">cns!45041418ECCAA960!105</guid><pubDate>Thu, 25 Jan 2007 20:48:59 GMT</pubDate><msn:type>booklist</msn:type><live:type>booklist</live:type><live:typelabel>Book list</live:typelabel><cf:itemRSS>http://GlennBerrySQLPerformance.sp