<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0"><channel><title>Joe Sack's SQL Server Blog</title><link>http://blogs.msdn.com/b/joesack/</link><description /><dc:language>en-US</dc:language><generator>Telligent Community 5.6.583.17018 (Build: 5.6.583.17018)</generator><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/JoeSacksSqlServerWeblog" /><feedburner:info uri="joesackssqlserverweblog" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item><title>Until we meet again...</title><link>http://feedproxy.google.com/~r/JoeSacksSqlServerWeblog/~3/LFjez3ofEkU/until-we-meet-again.aspx</link><pubDate>Fri, 30 Sep 2011 14:00:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10218574</guid><dc:creator>Joseph Sack</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://blogs.msdn.com/b/joesack/rsscomments.aspx?WeblogPostID=10218574</wfw:commentRss><comments>http://blogs.msdn.com/b/joesack/archive/2011/09/30/until-we-meet-again.aspx#comments</comments><description>&lt;p&gt;Today is my last day with Microsoft.&amp;nbsp; After five and a half years, I recently decided to join SQLskills as "Employee #4".&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Microsoft has been very good to me over the years and I'm grateful for the friendships made and the significant memories.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;For the longer story of my move&amp;nbsp;- I'll be posting soon to &lt;a title="http://www.sqlskills.com/blogs/joe/" href="http://www.sqlskills.com/blogs/joe/" target="_blank"&gt;my new blog over at SQLskills.com&lt;/a&gt;.&amp;nbsp; Very honored to be joining&amp;nbsp;Kimberly, Paul and Jonathan.&amp;nbsp; I'll be getting back to consulting, writing and mentoring.&amp;nbsp; Paul and Kimberly already have clients lined up for me next Monday, so needless to say I'm really excited to start.&lt;/p&gt;
&lt;p&gt;Until we meet again!&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10218574" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/JoeSacksSqlServerWeblog/~4/LFjez3ofEkU" height="1" width="1"/&gt;</description><feedburner:origLink>http://blogs.msdn.com/b/joesack/archive/2011/09/30/until-we-meet-again.aspx</feedburner:origLink></item><item><title>Announcing the new SQL MCM Program Manager</title><link>http://feedproxy.google.com/~r/JoeSacksSqlServerWeblog/~3/VmCNPL4CLkg/announcing-the-new-sql-mcm-program-manager.aspx</link><pubDate>Tue, 28 Jun 2011 02:48:03 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10180757</guid><dc:creator>Joseph Sack</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://blogs.msdn.com/b/joesack/rsscomments.aspx?WeblogPostID=10180757</wfw:commentRss><comments>http://blogs.msdn.com/b/joesack/archive/2011/06/28/announcing-the-new-sql-mcm-program-manager.aspx#comments</comments><description>&lt;p&gt;&lt;span style="font-size: small;"&gt;I&amp;rsquo;ve been waiting for a long running transaction to commit, so to speak, before announcing the big news&amp;hellip;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;"&gt;I am truly happy to announce that Microsoft Learning has hired a new SQL MCM Program Manager to keep moving forward with our recent program changes and continue to expand the program&amp;rsquo;s value and impact: &amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;"&gt;&lt;b&gt;Robert Davis&lt;/b&gt; (&lt;a href="http://www.sqlsoldier.com/wp/" target="_blank"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;blog&lt;/span&gt;&lt;/a&gt; | &lt;a href="http://twitter.com/#!/SQLSoldier" target="_blank"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;twitter&lt;/span&gt;&lt;/a&gt; | &lt;a href="http://www.linkedin.com/in/robertldavis" target="_blank"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;linkedin&lt;/span&gt;&lt;/a&gt;) is the new SQL Server Microsoft Certified Master Program Manager!&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;"&gt;There are &lt;i&gt;many &lt;/i&gt;reasons why I&amp;rsquo;m happy about this hiring decision, but I&amp;rsquo;ll stick with my top three reasons here:&lt;/span&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;span style="font-size: small;"&gt;Robert is an active and tireless community contributor, author and speaker.&amp;nbsp; His community interactions are frequent, consistent and high quality.&amp;nbsp; I also appreciate that he helps people on both internal Microsoft and external facing forums.&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size: small;"&gt;He is a Microsoft Certified Master with a deep understanding of the program scope (depth and breadth).&amp;nbsp; He also understands that while the program is elite &lt;i&gt;it should not be elitist&lt;/i&gt;.&amp;nbsp; As I&amp;rsquo;ve said several times before, there are many &amp;ldquo;uncertified masters&amp;rdquo; out there and the program has only just started to reach them.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size: small;"&gt;Robert is also incredibly responsive and focused on taking care of the community and ensuring that people&amp;rsquo;s hard-earned efforts are recognized and appreciated.&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;span style="font-size: small;"&gt;I think Robert will take things well beyond where I left them and I&amp;rsquo;m looking forward to seeing all the great things that I know he will do. &amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;"&gt;Now &amp;ndash; where did I go off to?&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;"&gt;I actually transitioned to my new role a few weeks ago.&amp;nbsp; I was a SQL Server support engineer for the last 4 &amp;frac12; years with the Microsoft Premier Field Engineering team and I also served the dual role of acting SQL MCM Program Manager for the last two years.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;"&gt;The time was right for a big change and so I&amp;rsquo;ve joined the SQL Server Content &amp;amp; Community team in a Program Manager role.&amp;nbsp; While there are several aspects of the position still in motion &amp;ndash; I will start off in this role by working on various aspects of Microsoft&amp;rsquo;s SQL Server content strategy.&amp;nbsp; I&amp;rsquo;ll also be involved in planning and driving the next wave of content for the upcoming release of SQL Server.&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;"&gt;This is definitely a behind-the-scenes role and that suits me well. I do hope to blog at my same infrequent pace &amp;ndash; but we&amp;rsquo;ll see. &amp;nbsp;While this role gets away from support and far more into the PM space, I&amp;rsquo;ll still be digging in to some technical details as part of my new role (already encountered a very interesting scenario that will be fun to blog about when the time is right).&amp;nbsp; So if something warrants comment I&amp;rsquo;ll try to share.&amp;nbsp; Or I may ask others to share instead and this blog will become even dustier.&amp;nbsp; We&amp;rsquo;ll see&amp;hellip;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;"&gt;In the meantime, onward we go &amp;ndash; and please join me in welcoming Robert Davis to his new role!&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10180757" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/JoeSacksSqlServerWeblog/~4/VmCNPL4CLkg" height="1" width="1"/&gt;</description><category domain="http://blogs.msdn.com/b/joesack/archive/tags/SQL+MCM/">SQL MCM</category><feedburner:origLink>http://blogs.msdn.com/b/joesack/archive/2011/06/28/announcing-the-new-sql-mcm-program-manager.aspx</feedburner:origLink></item><item><title>Measuring impact of “optimize for ad hoc workloads” via CACHESTORE_SQLCP </title><link>http://feedproxy.google.com/~r/JoeSacksSqlServerWeblog/~3/oq3L6G4fMQI/measuring-impact-of-optimize-for-ad-hoc-workloads-via-cachestore-sqlcp.aspx</link><pubDate>Mon, 28 Mar 2011 15:39:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10146713</guid><dc:creator>Joseph Sack</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://blogs.msdn.com/b/joesack/rsscomments.aspx?WeblogPostID=10146713</wfw:commentRss><comments>http://blogs.msdn.com/b/joesack/archive/2011/03/28/measuring-impact-of-optimize-for-ad-hoc-workloads-via-cachestore-sqlcp.aspx#comments</comments><description>&lt;p class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Calibri;"&gt;The cache store &amp;ldquo;CACHESTORE_SQLCP&amp;rdquo; represents cached ad-hoc query plans, server-side cursors and prepared statements.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&lt;/span&gt;One way to gather memory allocation values for this specific cache store is by using the following query:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="padding-left: 30px;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;SELECT&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes;"&gt; single_pages_kb&lt;span style="color: gray;"&gt;,&lt;/span&gt; multi_pages_kb&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="padding-left: 30px;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;FROM&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes;"&gt; &lt;span style="color: green;"&gt;sys&lt;/span&gt;&lt;span style="color: gray;"&gt;.&lt;/span&gt;&lt;span style="color: green;"&gt;dm_os_memory_clerks&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="padding-left: 30px;"&gt;&lt;span style="line-height: 115%; font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;WHERE&lt;/span&gt;&lt;span style="line-height: 115%; font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes;"&gt; &lt;span style="color: blue;"&gt;type&lt;/span&gt; &lt;span style="color: gray;"&gt;=&lt;/span&gt; &lt;span style="color: red;"&gt;'CACHESTORE_SQLCP'&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Calibri;"&gt;You can also see allocations to CACHESTORE_SQLCP via DBCC MEMORYSTATUS (example output below for one node):&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="padding-left: 30px;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Calibri;"&gt;CACHESTORE_SQLCP (node 0),KB&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="padding-left: 30px;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Calibri;"&gt;VM Reserved,0&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="padding-left: 30px;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Calibri;"&gt;VM Committed,0&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="padding-left: 30px;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Calibri;"&gt;Locked Pages Allocated,0&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="padding-left: 30px;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Calibri;"&gt;SM Reserved,0&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="padding-left: 30px;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Calibri;"&gt;SM Committed,0&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="padding-left: 30px;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Calibri;"&gt;SinglePage Allocator,12728&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="padding-left: 30px;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Calibri;"&gt;MultiPage Allocator,1968&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family: Calibri; font-size: small;"&gt;There has already been much written about cache bloat due to ad hoc query plans and I won&amp;rsquo;t rehash it here (Kimberly Tripp has a few great posts on this topic &amp;ndash; &lt;/span&gt;&lt;a target="_blank" href="http://www.sqlskills.com/blogs/kimberly/post/procedure-cache-and-optimizing-for-adhoc-workloads.aspx"&gt;&lt;span style="font-family: Calibri; font-size: small;"&gt;including one post that lists several posts from different authors&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Calibri; font-size: small;"&gt; on the subject).&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&lt;/span&gt;There are multiple ways to reduce this bloat (for example - move to using parameterized queries, force parameterization).&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;One of the easier methods includes enabling the &amp;ldquo;&lt;/span&gt;&lt;a target="_blank" href="http://msdn.microsoft.com/en-us/library/cc645587.aspx"&gt;&lt;span style="font-family: Calibri; font-size: small;"&gt;optimize for ad hoc workloads&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Calibri;"&gt;&amp;rdquo; option.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family: Calibri; font-size: small;"&gt;The purpose of this post is to connect the dots between CACHESTORE_SQLCP and enabling the &amp;ldquo;&lt;/span&gt;&lt;span style="font-family: Calibri; font-size: small;"&gt;optimize for ad hoc workloads&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Calibri;"&gt;" option (note that you can also use sys.dm_exec_cached_plans to see the impact on size_in_bytes by plan and reference the cacheobjtype of Compiled Plan versus Compiled Plan Stub).&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;The following demonstration simply shows the impact of executing several ad hoc queries and measuring the significant allocation differences in CACHESTORE_SQLCP.&amp;nbsp; In my&amp;nbsp;testing &amp;ndash; single_pages_kb was equal to 13,072 without plan stubs and then 760 after enabling the &amp;ldquo;optimize for&amp;hellip;&amp;rdquo; option.&amp;nbsp;This below demo is intended to be stepped through statement by statement:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="padding-left: 30px;"&gt;&lt;span style="font-family: 'Courier New'; color: green; font-size: 10pt; mso-no-proof: yes;"&gt;-- Tested on 10.50.1765&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="padding-left: 30px;"&gt;&lt;span style="font-family: 'Courier New'; color: green; font-size: 10pt; mso-no-proof: yes;"&gt;-- This demo assumes optimize for ad hoc workloads is off&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="padding-left: 30px;"&gt;&lt;span style="font-family: 'Courier New'; color: green; font-size: 10pt; mso-no-proof: yes;"&gt;-- (And yes please only run this demo on a test environment)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="padding-left: 30px;"&gt;&lt;span style="font-family: 'Courier New'; color: green; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="padding-left: 30px;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;USE&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes;"&gt; [master]&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="padding-left: 30px;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;GO&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="padding-left: 30px;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="padding-left: 30px;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;EXEC&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes;"&gt; &lt;span style="color: maroon;"&gt;sp_configure&lt;/span&gt;&lt;span style="color: blue;"&gt; &lt;/span&gt;&lt;span style="color: red;"&gt;'show advanced options'&lt;/span&gt;&lt;span style="color: gray;"&gt;,&lt;/span&gt;1&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="padding-left: 30px;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;RECONFIGURE&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="padding-left: 30px;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;GO&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="padding-left: 30px;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="padding-left: 30px;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;EXEC&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes;"&gt; &lt;span style="color: maroon;"&gt;sp_configure&lt;/span&gt;&lt;span style="color: blue;"&gt; &lt;/span&gt;&lt;span style="color: red;"&gt;'optimize for ad hoc workloads'&lt;/span&gt;&lt;span style="color: gray;"&gt;,&lt;/span&gt;0&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="padding-left: 30px;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;RECONFIGURE&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes;"&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="padding-left: 30px;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;GO&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="padding-left: 30px;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="padding-left: 30px;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;EXEC&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes;"&gt; &lt;span style="color: maroon;"&gt;sp_configure&lt;/span&gt;&lt;span style="color: blue;"&gt; &lt;/span&gt;&lt;span style="color: red;"&gt;'show advanced options'&lt;/span&gt;&lt;span style="color: gray;"&gt;,&lt;/span&gt;0&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="padding-left: 30px;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;RECONFIGURE&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="padding-left: 30px;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;GO&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="padding-left: 30px;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="padding-left: 30px;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;CREATE&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes;"&gt; &lt;span style="color: blue;"&gt;DATABASE&lt;/span&gt; [QueryBloat]&lt;span style="color: gray;"&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="padding-left: 30px;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;GO&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="padding-left: 30px;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="padding-left: 30px;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;USE&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes;"&gt; [QueryBloat]&lt;span style="color: gray;"&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="padding-left: 30px;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;GO&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="padding-left: 30px;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="padding-left: 30px;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;CREATE&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes;"&gt; &lt;span style="color: blue;"&gt;TABLE&lt;/span&gt; dbo&lt;span style="color: gray;"&gt;.&lt;/span&gt;Bloat&lt;span style="color: blue;"&gt; &lt;/span&gt;&lt;span style="color: gray;"&gt;(&lt;/span&gt;col01 &lt;span style="color: blue;"&gt;uniqueidentifier&lt;/span&gt;&lt;span style="color: gray;"&gt;);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="padding-left: 30px;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;GO&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="padding-left: 30px;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="padding-left: 30px;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;INSERT&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes;"&gt; dbo&lt;span style="color: gray;"&gt;.&lt;/span&gt;Bloat&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="padding-left: 30px;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;VALUES &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: gray; font-size: 10pt; mso-no-proof: yes;"&gt;(&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: fuchsia; font-size: 10pt; mso-no-proof: yes;"&gt;NEWID&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: gray; font-size: 10pt; mso-no-proof: yes;"&gt;())&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="padding-left: 30px;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;GO&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes;"&gt; 500&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="padding-left: 30px;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="padding-left: 30px;"&gt;&lt;span style="font-family: 'Courier New'; color: green; font-size: 10pt; mso-no-proof: yes;"&gt;-- Clear out adhoc queries, prior to baseline&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="padding-left: 30px;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;DBCC&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes;"&gt; FREESYSTEMCACHE&lt;span style="color: gray;"&gt;(&lt;/span&gt;&lt;span style="color: red;"&gt;'SQL Plans'&lt;/span&gt;&lt;span style="color: gray;"&gt;)&lt;/span&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="padding-left: 30px;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="padding-left: 30px;"&gt;&lt;span style="font-family: 'Courier New'; color: green; font-size: 10pt; mso-no-proof: yes;"&gt;-- Take baseline &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="padding-left: 30px;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;SELECT&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes;"&gt; single_pages_kb&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="padding-left: 30px;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;FROM&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes;"&gt; &lt;span style="color: green;"&gt;sys&lt;/span&gt;&lt;span style="color: gray;"&gt;.&lt;/span&gt;&lt;span style="color: green;"&gt;dm_os_memory_clerks&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="padding-left: 30px;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;WHERE&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes;"&gt; &lt;span style="color: blue;"&gt;type&lt;/span&gt; &lt;span style="color: gray;"&gt;=&lt;/span&gt; &lt;span style="color: red;"&gt;'CACHESTORE_SQLCP'&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="padding-left: 30px;"&gt;&lt;span style="font-family: 'Courier New'; color: red; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="padding-left: 30px;"&gt;&lt;span style="font-family: 'Courier New'; color: green; font-size: 10pt; mso-no-proof: yes;"&gt;-- In my case, I saw single_pages_kb = 120&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="padding-left: 30px;"&gt;&lt;span style="font-family: 'Courier New'; color: green; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="padding-left: 30px;"&gt;&lt;span style="font-family: 'Courier New'; color: green; font-size: 10pt; mso-no-proof: yes;"&gt;-- Now let's make some bloat&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="padding-left: 30px;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;DECLARE&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes;"&gt; @NEWID &lt;span style="color: blue;"&gt;varchar&lt;/span&gt;&lt;span style="color: gray;"&gt;(&lt;/span&gt;36&lt;span style="color: gray;"&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="padding-left: 30px;"&gt;&lt;span style="font-family: 'Courier New'; color: gray; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="padding-left: 30px;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;DECLARE&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes;"&gt; curBloat &lt;span style="color: blue;"&gt;CURSOR&lt;/span&gt; &lt;span style="color: blue;"&gt;FOR&lt;/span&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="padding-left: 30px;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;SELECT&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes;"&gt; col01&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="padding-left: 30px;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;FROM&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes;"&gt; dbo&lt;span style="color: gray;"&gt;.&lt;/span&gt;Bloat&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="padding-left: 30px;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;ORDER&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes;"&gt; &lt;span style="color: blue;"&gt;BY&lt;/span&gt; col01&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="padding-left: 30px;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="padding-left: 30px;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;OPEN&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes;"&gt; curBloat&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="padding-left: 30px;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="padding-left: 30px;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;FETCH&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes;"&gt; &lt;span style="color: blue;"&gt;NEXT&lt;/span&gt; &lt;span style="color: blue;"&gt;FROM&lt;/span&gt; curBloat&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="padding-left: 30px;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;INTO&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes;"&gt; @NEWID&lt;span style="color: gray;"&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="padding-left: 30px;"&gt;&lt;span style="font-family: 'Courier New'; color: gray; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="padding-left: 30px;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;EXEC &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: gray; font-size: 10pt; mso-no-proof: yes;"&gt;(&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: red; font-size: 10pt; mso-no-proof: yes;"&gt;'SELECT col01 FROM dbo.Bloat WHERE col01 = '&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes;"&gt; &lt;span style="color: gray;"&gt;+&lt;/span&gt; &lt;span style="color: red;"&gt;''''&lt;/span&gt; &lt;span style="color: gray;"&gt;+&lt;/span&gt; @NEWID &lt;span style="color: gray;"&gt;+&lt;/span&gt; &lt;span style="color: red;"&gt;''''&lt;/span&gt;&lt;span style="color: gray;"&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="padding-left: 30px;"&gt;&lt;span style="font-family: 'Courier New'; color: gray; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="padding-left: 30px;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;WHILE&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes;"&gt; &lt;span style="color: fuchsia;"&gt;@@FETCH_STATUS&lt;/span&gt; &lt;span style="color: gray;"&gt;=&lt;/span&gt; 0&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="padding-left: 30px;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;BEGIN&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="padding-left: 30px;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="padding-left: 30px;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;FETCH&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes;"&gt; &lt;span style="color: blue;"&gt;NEXT&lt;/span&gt; &lt;span style="color: blue;"&gt;FROM&lt;/span&gt; curBloat&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="padding-left: 30px;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;INTO&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes;"&gt; @NEWID&lt;span style="color: gray;"&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="padding-left: 30px;"&gt;&lt;span style="font-family: 'Courier New'; color: gray; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="padding-left: 30px;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;EXEC &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: gray; font-size: 10pt; mso-no-proof: yes;"&gt;(&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: red; font-size: 10pt; mso-no-proof: yes;"&gt;'SELECT col01 FROM dbo.Bloat WHERE col01 = '&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes;"&gt; &lt;span style="color: gray;"&gt;+&lt;/span&gt; &lt;span style="color: red;"&gt;''''&lt;/span&gt; &lt;span style="color: gray;"&gt;+&lt;/span&gt; @NEWID &lt;span style="color: gray;"&gt;+&lt;/span&gt; &lt;span style="color: red;"&gt;''''&lt;/span&gt;&lt;span style="color: gray;"&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="padding-left: 30px;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;END&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="padding-left: 30px;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="padding-left: 30px;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;CLOSE&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes;"&gt; curBloat&lt;span style="color: gray;"&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="padding-left: 30px;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;DEALLOCATE&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes;"&gt; curBloat&lt;span style="color: gray;"&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="padding-left: 30px;"&gt;&lt;span style="font-family: 'Courier New'; color: gray; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="padding-left: 30px;"&gt;&lt;span style="font-family: 'Courier New'; color: green; font-size: 10pt; mso-no-proof: yes;"&gt;-- Checking again, I see single_pages_kb = 13,072&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="padding-left: 30px;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;SELECT&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes;"&gt; single_pages_kb&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="padding-left: 30px;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;FROM&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes;"&gt; &lt;span style="color: green;"&gt;sys&lt;/span&gt;&lt;span style="color: gray;"&gt;.&lt;/span&gt;&lt;span style="color: green;"&gt;dm_os_memory_clerks&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="padding-left: 30px;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;WHERE&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes;"&gt; &lt;span style="color: blue;"&gt;type&lt;/span&gt; &lt;span style="color: gray;"&gt;=&lt;/span&gt; &lt;span style="color: red;"&gt;'CACHESTORE_SQLCP'&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="padding-left: 30px;"&gt;&lt;span style="font-family: 'Courier New'; color: red; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="padding-left: 30px;"&gt;&lt;span style="font-family: 'Courier New'; color: green; font-size: 10pt; mso-no-proof: yes;"&gt;-- Now let's enable "optimize for ad hoc workloads"&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="padding-left: 30px;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;EXEC&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes;"&gt; &lt;span style="color: maroon;"&gt;sp_configure&lt;/span&gt;&lt;span style="color: blue;"&gt; &lt;/span&gt;&lt;span style="color: red;"&gt;'show advanced options'&lt;/span&gt;&lt;span style="color: gray;"&gt;,&lt;/span&gt;1&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="padding-left: 30px;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;RECONFIGURE&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="padding-left: 30px;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;GO&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="padding-left: 30px;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="padding-left: 30px;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;EXEC&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes;"&gt; &lt;span style="color: maroon;"&gt;sp_configure&lt;/span&gt;&lt;span style="color: blue;"&gt; &lt;/span&gt;&lt;span style="color: red;"&gt;'optimize for ad hoc workloads'&lt;/span&gt;&lt;span style="color: gray;"&gt;,&lt;/span&gt;1&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="padding-left: 30px;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;RECONFIGURE&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes;"&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="padding-left: 30px;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;GO&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="padding-left: 30px;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="padding-left: 30px;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;EXEC&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes;"&gt; &lt;span style="color: maroon;"&gt;sp_configure&lt;/span&gt;&lt;span style="color: blue;"&gt; &lt;/span&gt;&lt;span style="color: red;"&gt;'show advanced options'&lt;/span&gt;&lt;span style="color: gray;"&gt;,&lt;/span&gt;0&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="padding-left: 30px;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;RECONFIGURE&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="padding-left: 30px;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;GO&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="padding-left: 30px;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="padding-left: 30px;"&gt;&lt;span style="font-family: 'Courier New'; color: green; font-size: 10pt; mso-no-proof: yes;"&gt;-- Clear out adhoc queries for our second test&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="padding-left: 30px;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;DBCC&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes;"&gt; FREESYSTEMCACHE&lt;span style="color: gray;"&gt;(&lt;/span&gt;&lt;span style="color: red;"&gt;'SQL Plans'&lt;/span&gt;&lt;span style="color: gray;"&gt;)&lt;/span&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="padding-left: 30px;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="padding-left: 30px;"&gt;&lt;span style="font-family: 'Courier New'; color: green; font-size: 10pt; mso-no-proof: yes;"&gt;-- Take baseline - I see single_pages_kb = 120&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="padding-left: 30px;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;SELECT&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes;"&gt; single_pages_kb&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="padding-left: 30px;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;FROM&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes;"&gt; &lt;span style="color: green;"&gt;sys&lt;/span&gt;&lt;span style="color: gray;"&gt;.&lt;/span&gt;&lt;span style="color: green;"&gt;dm_os_memory_clerks&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="padding-left: 30px;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;WHERE&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes;"&gt; &lt;span style="color: blue;"&gt;type&lt;/span&gt; &lt;span style="color: gray;"&gt;=&lt;/span&gt; &lt;span style="color: red;"&gt;'CACHESTORE_SQLCP'&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="padding-left: 30px;"&gt;&lt;span style="font-family: 'Courier New'; color: red; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="padding-left: 30px;"&gt;&lt;span style="font-family: 'Courier New'; color: green; font-size: 10pt; mso-no-proof: yes;"&gt;-- Make some bloat again&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="padding-left: 30px;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;DECLARE&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes;"&gt; @NEWID &lt;span style="color: blue;"&gt;varchar&lt;/span&gt;&lt;span style="color: gray;"&gt;(&lt;/span&gt;36&lt;span style="color: gray;"&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="padding-left: 30px;"&gt;&lt;span style="font-family: 'Courier New'; color: gray; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="padding-left: 30px;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;DECLARE&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes;"&gt; curBloat &lt;span style="color: blue;"&gt;CURSOR&lt;/span&gt; &lt;span style="color: blue;"&gt;FOR&lt;/span&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="padding-left: 30px;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;SELECT&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes;"&gt; col01&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="padding-left: 30px;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;FROM&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes;"&gt; dbo&lt;span style="color: gray;"&gt;.&lt;/span&gt;Bloat&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="padding-left: 30px;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;ORDER&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes;"&gt; &lt;span style="color: blue;"&gt;BY&lt;/span&gt; col01&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="padding-left: 30px;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="padding-left: 30px;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;OPEN&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes;"&gt; curBloat&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="padding-left: 30px;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="padding-left: 30px;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;FETCH&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes;"&gt; &lt;span style="color: blue;"&gt;NEXT&lt;/span&gt; &lt;span style="color: blue;"&gt;FROM&lt;/span&gt; curBloat&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="padding-left: 30px;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;INTO&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes;"&gt; @NEWID&lt;span style="color: gray;"&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="padding-left: 30px;"&gt;&lt;span style="font-family: 'Courier New'; color: gray; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="padding-left: 30px;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;EXEC &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: gray; font-size: 10pt; mso-no-proof: yes;"&gt;(&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: red; font-size: 10pt; mso-no-proof: yes;"&gt;'SELECT col01 FROM dbo.Bloat WHERE col01 = '&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes;"&gt; &lt;span style="color: gray;"&gt;+&lt;/span&gt; &lt;span style="color: red;"&gt;''''&lt;/span&gt; &lt;span style="color: gray;"&gt;+&lt;/span&gt; @NEWID &lt;span style="color: gray;"&gt;+&lt;/span&gt; &lt;span style="color: red;"&gt;''''&lt;/span&gt;&lt;span style="color: gray;"&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="padding-left: 30px;"&gt;&lt;span style="font-family: 'Courier New'; color: gray; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="padding-left: 30px;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;WHILE&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes;"&gt; &lt;span style="color: fuchsia;"&gt;@@FETCH_STATUS&lt;/span&gt; &lt;span style="color: gray;"&gt;=&lt;/span&gt; 0&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="padding-left: 30px;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;BEGIN&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="padding-left: 30px;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="padding-left: 30px;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;FETCH&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes;"&gt; &lt;span style="color: blue;"&gt;NEXT&lt;/span&gt; &lt;span style="color: blue;"&gt;FROM&lt;/span&gt; curBloat&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="padding-left: 30px;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;INTO&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes;"&gt; @NEWID&lt;span style="color: gray;"&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="padding-left: 30px;"&gt;&lt;span style="font-family: 'Courier New'; color: gray; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="padding-left: 30px;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;EXEC &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: gray; font-size: 10pt; mso-no-proof: yes;"&gt;(&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: red; font-size: 10pt; mso-no-proof: yes;"&gt;'SELECT col01 FROM dbo.Bloat WHERE col01 = '&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes;"&gt; &lt;span style="color: gray;"&gt;+&lt;/span&gt; &lt;span style="color: red;"&gt;''''&lt;/span&gt; &lt;span style="color: gray;"&gt;+&lt;/span&gt; @NEWID &lt;span style="color: gray;"&gt;+&lt;/span&gt; &lt;span style="color: red;"&gt;''''&lt;/span&gt;&lt;span style="color: gray;"&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="padding-left: 30px;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;END&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="padding-left: 30px;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="padding-left: 30px;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;CLOSE&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes;"&gt; curBloat&lt;span style="color: gray;"&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="padding-left: 30px;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;DEALLOCATE&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes;"&gt; curBloat&lt;span style="color: gray;"&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="padding-left: 30px;"&gt;&lt;span style="font-family: 'Courier New'; color: gray; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="padding-left: 30px;"&gt;&lt;span style="font-family: 'Courier New'; color: green; font-size: 10pt; mso-no-proof: yes;"&gt;-- Measuring impact - single_pages_kb = 760 (versus 13,072)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="padding-left: 30px;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;SELECT&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes;"&gt; single_pages_kb&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="padding-left: 30px;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;FROM&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes;"&gt; &lt;span style="color: green;"&gt;sys&lt;/span&gt;&lt;span style="color: gray;"&gt;.&lt;/span&gt;&lt;span style="color: green;"&gt;dm_os_memory_clerks&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="padding-left: 30px;"&gt;&lt;span style="line-height: 115%; font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;WHERE&lt;/span&gt;&lt;span style="line-height: 115%; font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes;"&gt; &lt;span style="color: blue;"&gt;type&lt;/span&gt; &lt;span style="color: gray;"&gt;=&lt;/span&gt; &lt;span style="color: red;"&gt;'CACHESTORE_SQLCP'&lt;/span&gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10146713" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/JoeSacksSqlServerWeblog/~4/oq3L6G4fMQI" height="1" width="1"/&gt;</description><feedburner:origLink>http://blogs.msdn.com/b/joesack/archive/2011/03/28/measuring-impact-of-optimize-for-ad-hoc-workloads-via-cachestore-sqlcp.aspx</feedburner:origLink></item><item><title>ARP Caching and SQL Server Failover Cluster install failures</title><link>http://feedproxy.google.com/~r/JoeSacksSqlServerWeblog/~3/ziVp7nYeCds/arp-caching-and-sql-server-failover-cluster-install-failures.aspx</link><pubDate>Sun, 27 Mar 2011 20:42:10 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10146433</guid><dc:creator>Joseph Sack</dc:creator><slash:comments>4</slash:comments><wfw:commentRss>http://blogs.msdn.com/b/joesack/rsscomments.aspx?WeblogPostID=10146433</wfw:commentRss><comments>http://blogs.msdn.com/b/joesack/archive/2011/03/27/arp-caching-and-sql-server-failover-cluster-install-failures.aspx#comments</comments><description>&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; font-size: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Courier New';"&gt;Now I&amp;rsquo;m definitely &lt;i style="mso-bidi-font-style: normal;"&gt;not&lt;/i&gt; a networking guy, so even the more basic networking concepts fill me with wonder. &lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&lt;/span&gt;One area I learned about recently with regards to the following scenario was related to &lt;a target="_blank" href="http://en.wikipedia.org/wiki/Address_Resolution_Protocol"&gt;Address Resolution Protocol&lt;/a&gt; (ARP) caching.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; font-size: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Courier New';"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; font-size: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Courier New';"&gt;Consider the following scenario&amp;hellip; You&amp;rsquo;re performing a SQL Server Failover Cluster installation and it is failing with a message like &amp;ldquo;IP Address xyz is already in use. To continue, specify a different IP address.&amp;rdquo;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;You validate that this IP is &lt;i style="mso-bidi-font-style: normal;"&gt;not&lt;/i&gt; being used elsewhere and when you ping it, you don&amp;rsquo;t get a response.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; font-size: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Courier New';"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; font-size: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Courier New';"&gt;Enter ARP and ARP caching as one area to validate.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;ARP is a protocol that maps IPs to Ethernet MAC addresses.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;A network router sitting in between a client and server can in turn have an ARP cache which holds a list of the IP/Mac mappings.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;The cached mappings can be dynamic (created automatically) or static (created manually).&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;These mappings can have timeouts associated with them &amp;ndash; causing disused entries to be removed after a set period of time.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;You can view an ARP cache on your PC (for example &amp;ndash; I did this on my Windows 7 OS) using &amp;ldquo;arp &amp;ndash;a&amp;rdquo; at the command prompt. And as you can imagine, it is possible to have bad IP/MAC mappings.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; font-size: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Courier New';"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; font-size: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Courier New';"&gt;There is also the concept of a Proxy ARP where a network device answers ARP requests on behalf of another destination and re-routes out the request accordingly.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;This then relates to ARP cache poisoning where, in one manifestation of it, an ARP cache can be tampered with in order to point to a bad MAC address for a man-in-the-middle attack.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; font-size: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Courier New';"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; font-size: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Courier New';"&gt;Back to SQL Server Failover Cluster install failures&amp;hellip; The whole ARP caching concept is of particular interest to me in the context of SQL Server installations because I haven&amp;rsquo;t yet seen it listed on standard SQL Server clustering / install checklists as something to validate (perhaps because the aforementioned issue shouldn&amp;rsquo;t be too common).&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; font-size: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Courier New';"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; font-size: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Courier New';"&gt;So if you&amp;rsquo;re seeing an &amp;ldquo;already in use&amp;rdquo; message for your SQL FC install and you&amp;rsquo;re running out of ideas &amp;ndash; ask your networking folks about ARP caching and look for bad entries that potentially need to be cleared out in order to continue with your install.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="line-height: 115%; font-family: 'Verdana','sans-serif'; font-size: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Courier New'; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10146433" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/JoeSacksSqlServerWeblog/~4/ziVp7nYeCds" height="1" width="1"/&gt;</description><feedburner:origLink>http://blogs.msdn.com/b/joesack/archive/2011/03/27/arp-caching-and-sql-server-failover-cluster-install-failures.aspx</feedburner:origLink></item><item><title>Forced Parameterization with Filtered Indexes</title><link>http://feedproxy.google.com/~r/JoeSacksSqlServerWeblog/~3/zYLmkdLpmlw/forced-parameterization-with-filtered-indexes.aspx</link><pubDate>Sun, 27 Mar 2011 16:46:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10146391</guid><dc:creator>Joseph Sack</dc:creator><slash:comments>2</slash:comments><wfw:commentRss>http://blogs.msdn.com/b/joesack/rsscomments.aspx?WeblogPostID=10146391</wfw:commentRss><comments>http://blogs.msdn.com/b/joesack/archive/2011/03/27/forced-parameterization-with-filtered-indexes.aspx#comments</comments><description>&lt;p class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Calibri;"&gt;Consider the following scenario:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div class="MsoListParagraphCxSpFirst" style="padding-left: 30px;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="font-size: small;"&gt;You have a database that has PARAMETERIZATION FORCED enabled.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div class="MsoListParagraphCxSpLast" style="padding-left: 30px;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="font-size: small;"&gt;You have a table using a filtered index.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="font-size: small;"&gt;Here is a demo setup so you can follow along:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;p&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="font-size: small;"&gt;
&lt;hr width="10" style="width: 10px;" /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: green; mso-no-proof: yes;"&gt;&lt;span style="font-size: small;"&gt;-- Create demo database&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; mso-no-proof: yes;"&gt;USE&lt;/span&gt;&lt;span style="font-family: 'Courier New'; mso-no-proof: yes;"&gt; [master]&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family: 'Courier New'; color: blue; mso-no-proof: yes;"&gt;&lt;span style="font-size: small;"&gt;GO&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; mso-no-proof: yes;"&gt;CREATE&lt;/span&gt;&lt;span style="font-family: 'Courier New'; mso-no-proof: yes;"&gt; &lt;span style="color: blue;"&gt;DATABASE&lt;/span&gt; [FI_PF_Error_Demo]&lt;span style="color: gray;"&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family: 'Courier New'; color: blue; mso-no-proof: yes;"&gt;&lt;span style="font-size: small;"&gt;GO&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;o:p&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family: 'Courier New'; color: green; mso-no-proof: yes;"&gt;&lt;span style="font-size: small;"&gt;-- Set new database to forced parameterization&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; mso-no-proof: yes;"&gt;ALTER&lt;/span&gt;&lt;span style="font-family: 'Courier New'; mso-no-proof: yes;"&gt; &lt;span style="color: blue;"&gt;DATABASE&lt;/span&gt; [FI_PF_Error_Demo] &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; mso-no-proof: yes;"&gt;SET&lt;/span&gt;&lt;span style="font-family: 'Courier New'; mso-no-proof: yes;"&gt; &lt;span style="color: blue;"&gt;PARAMETERIZATION&lt;/span&gt; &lt;span style="color: blue;"&gt;FORCED&lt;/span&gt; &lt;span style="color: blue;"&gt;WITH&lt;/span&gt; NO_WAIT&lt;span style="color: gray;"&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family: 'Courier New'; color: blue; mso-no-proof: yes;"&gt;&lt;span style="font-size: small;"&gt;GO&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;o:p&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family: 'Courier New'; color: green; mso-no-proof: yes;"&gt;&lt;span style="font-size: small;"&gt;-- Create a demo table (and population will not be necessary to demonstrate)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; mso-no-proof: yes;"&gt;USE&lt;/span&gt;&lt;span style="font-family: 'Courier New'; mso-no-proof: yes;"&gt; [FI_PF_Error_Demo]&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family: 'Courier New'; color: blue; mso-no-proof: yes;"&gt;&lt;span style="font-size: small;"&gt;GO&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; mso-no-proof: yes;"&gt;CREATE&lt;/span&gt;&lt;span style="font-family: 'Courier New'; mso-no-proof: yes;"&gt; &lt;span style="color: blue;"&gt;TABLE&lt;/span&gt; dbo&lt;span style="color: gray;"&gt;.&lt;/span&gt;FI_PF_Demo_T &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: 'Courier New'; color: gray; mso-no-proof: yes;"&gt;(&lt;/span&gt;&lt;span style="font-family: 'Courier New'; mso-no-proof: yes;"&gt;col01 &lt;span style="color: blue;"&gt;int&lt;/span&gt;&lt;span style="color: gray;"&gt;,&lt;/span&gt; col02 &lt;span style="color: blue;"&gt;int&lt;/span&gt;&lt;span style="color: gray;"&gt;,&lt;/span&gt; col03 &lt;span style="color: blue;"&gt;int&lt;/span&gt;&lt;span style="color: gray;"&gt;);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family: 'Courier New'; color: blue; mso-no-proof: yes;"&gt;&lt;span style="font-size: small;"&gt;GO&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt; mso-no-proof: yes;"&gt;&lt;o:p&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family: 'Courier New'; color: green; mso-no-proof: yes;"&gt;&lt;span style="font-size: small;"&gt;-- Our filtered index referencing col01 as key and col03 in filter predicate&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; mso-no-proof: yes;"&gt;CREATE&lt;/span&gt;&lt;span style="font-family: 'Courier New'; mso-no-proof: yes;"&gt; &lt;span style="color: blue;"&gt;NONCLUSTERED&lt;/span&gt; &lt;span style="color: blue;"&gt;INDEX&lt;/span&gt; idx_FI_PF_Demo_T_col03 &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; mso-no-proof: yes;"&gt;ON&lt;/span&gt;&lt;span style="font-family: 'Courier New'; mso-no-proof: yes;"&gt; dbo&lt;span style="color: gray;"&gt;.&lt;/span&gt;FI_PF_Demo_T&lt;span style="color: gray;"&gt;(&lt;/span&gt;col01&lt;span style="color: gray;"&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; mso-no-proof: yes;"&gt;WHERE &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: gray; mso-no-proof: yes;"&gt;(&lt;/span&gt;&lt;span style="font-family: 'Courier New'; mso-no-proof: yes;"&gt;col03 &lt;span style="color: gray;"&gt;=&lt;/span&gt; 1924&lt;span style="color: gray;"&gt;);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="line-height: 115%; font-family: 'Courier New'; color: blue; mso-no-proof: yes;"&gt;&lt;span style="font-size: small;"&gt;GO&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="line-height: 115%; font-family: 'Courier New'; color: blue; mso-no-proof: yes;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;p&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
&lt;/span&gt;&lt;/span&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="font-size: small;"&gt;Now take the following query that uses the filtered index (using a hint to force this in the example, since there are no rows populated in this table):&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="font-size: small;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: 'Courier New'; color: green; mso-no-proof: yes;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: 'Courier New'; color: green; mso-no-proof: yes;"&gt;-- Tested on version 10.50.1600&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: blue; mso-no-proof: yes;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; mso-no-proof: yes;"&gt;SELECT&lt;/span&gt;&lt;span style="font-family: 'Courier New'; mso-no-proof: yes;"&gt; col01&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; mso-no-proof: yes;"&gt;FROM&lt;/span&gt;&lt;span style="font-family: 'Courier New'; mso-no-proof: yes;"&gt; dbo&lt;span style="color: gray;"&gt;.&lt;/span&gt;FI_PF_Demo_T&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; mso-no-proof: yes;"&gt;WITH &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: gray; mso-no-proof: yes;"&gt;(&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: blue; mso-no-proof: yes;"&gt;index&lt;/span&gt;&lt;span style="font-family: 'Courier New'; mso-no-proof: yes;"&gt; &lt;span style="color: gray;"&gt;=&lt;/span&gt; idx_FI_PF_Demo_T_col03 &lt;span style="color: gray;"&gt;)&lt;/span&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="line-height: 115%; font-family: 'Courier New'; color: blue; mso-no-proof: yes;"&gt;WHERE&lt;/span&gt;&lt;span style="line-height: 115%; font-family: 'Courier New'; mso-no-proof: yes;"&gt; col03 &lt;span style="color: gray;"&gt;=&lt;/span&gt; 1924&lt;span style="color: gray;"&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="line-height: 115%; font-family: 'Courier New'; mso-no-proof: yes;"&gt;&lt;span style="color: gray;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;p&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="font-size: small;"&gt;The following error is raised upon execution:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="font-size: small;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family: 'Courier New'; mso-no-proof: yes;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family: 'Courier New'; mso-no-proof: yes;"&gt;&lt;span style="font-size: small;"&gt;Msg 8622, Level 16, State 1, Line 1&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family: 'Courier New'; mso-no-proof: yes;"&gt;&lt;span style="font-size: small;"&gt;Query processor could not produce a query plan because of the hints defined in this query. Resubmit the query without specifying any hints and without using SET FORCEPLAN.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;o:p&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="font-size: small;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/o:p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="font-size: small;"&gt;Now try turning off forced parameterization:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="font-size: small;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: 'Courier New'; color: blue; mso-no-proof: yes;"&gt;ALTER&lt;/span&gt;&lt;span style="font-family: 'Courier New'; mso-no-proof: yes;"&gt; &lt;span style="color: blue;"&gt;DATABASE&lt;/span&gt; [FI_PF_Error_Demo] &lt;span style="color: blue;"&gt;SET&lt;/span&gt; &lt;span style="color: blue;"&gt;PARAMETERIZATION&lt;/span&gt; &lt;span style="color: blue;"&gt;SIMPLE&lt;/span&gt; &lt;span style="color: blue;"&gt;WITH&lt;/span&gt; NO_WAIT&lt;span style="color: gray;"&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="line-height: 115%; font-family: 'Courier New'; color: blue; mso-no-proof: yes;"&gt;&lt;span style="font-size: small;"&gt;GO&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="line-height: 115%; font-family: 'Courier New'; color: blue; mso-no-proof: yes;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;p&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
&lt;/span&gt;&lt;/span&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="font-size: small;"&gt;Now if you re-run the SELECT query, you won&amp;rsquo;t get error 8622.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="font-size: small;"&gt;So what&amp;rsquo;s going on?&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div class="MsoListParagraphCxSpFirst"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="font-size: small;"&gt;First of all, you may see 8622 in various contexts &amp;ndash; this isn&amp;rsquo;t just specific to this particular scenario.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;Because I&amp;rsquo;m using a hint, the QP is telling me I&amp;rsquo;m forcing a non-viable plan that will not be compiled.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;But in this demo &amp;ndash; the root cause isn&amp;rsquo;t &lt;i style="mso-bidi-font-style: normal;"&gt;just&lt;/i&gt; about the hint I designated.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div class="MsoListParagraphCxSpMiddle"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="font-size: small;"&gt;With forced parameterization enabled, the SELECT query I executed is getting parameterized first.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&lt;/span&gt;So for example col03 = 1924 becomes col03 = @p1.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div class="MsoListParagraphCxSpMiddle"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="font-size: small;"&gt;This means that my original value of 1924 is &lt;i style="mso-bidi-font-style: normal;"&gt;not&lt;/i&gt; being considered when compiling the plan.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;If I had a value not covered by the filtered index, then the filtered index I&amp;rsquo;m forcing in the hint will not potentially fulfill all potential values.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div class="MsoListParagraphCxSpLast"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="font-size: small;"&gt;Switching back to simple parameterization works because now the query isn&amp;rsquo;t being parameterized and is compiled based on the 1924 value for col03.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/p&gt;
&lt;/p&gt;
&lt;/p&gt;
&lt;/p&gt;
&lt;/p&gt;
&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10146391" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/JoeSacksSqlServerWeblog/~4/zYLmkdLpmlw" height="1" width="1"/&gt;</description><feedburner:origLink>http://blogs.msdn.com/b/joesack/archive/2011/03/27/forced-parameterization-with-filtered-indexes.aspx</feedburner:origLink></item><item><title>Two good Mondays in a row for the SQL MCM program</title><link>http://feedproxy.google.com/~r/JoeSacksSqlServerWeblog/~3/ZRSoMYoDHK8/two-good-mondays-in-a-row-for-the-sql-mcm-program.aspx</link><pubDate>Mon, 21 Feb 2011 23:24:25 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10132419</guid><dc:creator>Joseph Sack</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://blogs.msdn.com/b/joesack/rsscomments.aspx?WeblogPostID=10132419</wfw:commentRss><comments>http://blogs.msdn.com/b/joesack/archive/2011/02/21/two-good-mondays-in-a-row-for-the-sql-mcm-program.aspx#comments</comments><description>&lt;p&gt;The last two Mondays have brought us two new highly qualified Microsoft Certified Masters. If you’ve been involved with the SQL Server community for the last few years, it’s likely you’ve already heard their names – Maciej Pilecki and certified today, Simon Sabin.&lt;/p&gt;  &lt;p&gt;First – a little about Maciej:&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Maciej Pilecki&lt;/b&gt;, &lt;i&gt;Trainer and Consultant&lt;/i&gt;, &lt;a href="http://www.projectbotticelli.com/"&gt;Project Botticelli Ltd&lt;/a&gt;.. Maciej is a SQL MVP and Microsoft Certified Trainer with many years of experience with SQL Server database development, optimization and troubleshooting. He travels around the world advising his many customers on how to improve performance and reliability of their SQL Server environments. He is also a prolific and highly rated speaker covering the SQL Server engine, SQLOS, Storage Engine, Query Optimizer and Performance tuning.&lt;/p&gt;  &lt;p&gt;And – now background on Simon:&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Simon Sabin&lt;/b&gt;, &lt;i&gt;Principal Consultant&lt;/i&gt; (&lt;a href="http://sqlblogcasts.com/blogs/simons/"&gt;blog&lt;/a&gt; | &lt;a href="http://twitter.com/#!/simon_sabin"&gt;twitter&lt;/a&gt;). Simon is the principal consultant for &lt;a href="http://www.sqlknowhow.com/"&gt;SQL Know How&lt;/a&gt; a company that delivers SQL Server Consultancy and Training. Specialising in the performance tuning and mentoring development teams to deliver high performance solutions utilising SQL Server. He has provided services for clients like Microsoft and Tesco. He has worked with SQL Server since 1998 and has always focused on high performance reliable systems. He has a particular expertise in the world of search, distributed architectures, business intelligence and application development. Making websites and applications run faster through scale out technologies and performance tuning the database.    &lt;br /&gt;Simon was awarded as an MVP in 2006 and now SQL MCM in 2011. He runs user groups in London and Cambridge (&lt;a href="http://www.SQLSocial.com"&gt;http://www.SQLSocial.com&lt;/a&gt;) and in 2007 founded SQL Bits (Sqlbits.com) the largest SQL Server conference in the Europe. He is a regular speaker at SQL Server events as well as writing for his blog &lt;a href="http://sqlblogcasts.com/blogs/simons"&gt;http://sqlblogcasts.com/blogs/simons&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Welcome to the community and congrats on your achievement!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10132419" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/JoeSacksSqlServerWeblog/~4/ZRSoMYoDHK8" height="1" width="1"/&gt;</description><feedburner:origLink>http://blogs.msdn.com/b/joesack/archive/2011/02/21/two-good-mondays-in-a-row-for-the-sql-mcm-program.aspx</feedburner:origLink></item><item><title>One less “uncertified Master”</title><link>http://feedproxy.google.com/~r/JoeSacksSqlServerWeblog/~3/19ax6CA1qJQ/one-less-uncertified-master.aspx</link><pubDate>Fri, 11 Feb 2011 02:47:58 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10127823</guid><dc:creator>Joseph Sack</dc:creator><slash:comments>1</slash:comments><wfw:commentRss>http://blogs.msdn.com/b/joesack/rsscomments.aspx?WeblogPostID=10127823</wfw:commentRss><comments>http://blogs.msdn.com/b/joesack/archive/2011/02/11/one-less-uncertified-master.aspx#comments</comments><description>&lt;p&gt;News travels pretty fast, so I thought I would get the official word out tonight before this news became too stale.&lt;/p&gt;  &lt;p&gt;As many already know, three months ago we announced some pretty &lt;a href="http://www.microsoft.com/presspass/features/2010/nov10/11-09sqlservermcm.mspx" target="_blank"&gt;significant changes to the SQL MCM program&lt;/a&gt;. I won’t recap those changes in great detail here, but the bottom line is that we wanted to remove some of the barriers of cost, duration and location from the SQL MCM certification requirements.&lt;/p&gt;  &lt;p&gt;Why? One big reason was so we could reach more of the “uncertified Masters” we &lt;i&gt;know&lt;/i&gt; are already out there.&lt;/p&gt;  &lt;p&gt;And today there is now one less “uncertified Master”. Congratulations to Denny Cherry, our newest Microsoft Certified Master for SQL Server 2008!&lt;/p&gt;  &lt;p&gt;A little background on Denny:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;b&gt;&lt;a href="http://itke.techtarget.com/sql-server/" target="_blank"&gt;Denny Cherry&lt;/a&gt;&lt;/b&gt;, &lt;i&gt;Sr. Database Administrator&lt;/i&gt;. Denny Cherry has over a decade of experience managing SQL Server, including MySpace.com’s over 175 million user installations (one of the largest in the world). Denny’s areas of technical expertise include system architecture, performance tuning, replication and troubleshooting. Denny currently holds several Microsoft Certifications related to SQL Server as well as being a Microsoft MVP. Denny is a longtime member of PASS and Quest Software’s Association of SQL Server Experts and has written numerous technical articles on SQL Server management.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Needless to say, we’re very happy (and proud) to have Denny joining the community. &lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10127823" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/JoeSacksSqlServerWeblog/~4/19ax6CA1qJQ" height="1" width="1"/&gt;</description><feedburner:origLink>http://blogs.msdn.com/b/joesack/archive/2011/02/11/one-less-uncertified-master.aspx</feedburner:origLink></item><item><title>Last batch of SQL MCM videos now published</title><link>http://feedproxy.google.com/~r/JoeSacksSqlServerWeblog/~3/Jl9kVht1hdc/last-batch-of-sql-mcm-videos-now-published.aspx</link><pubDate>Tue, 04 Jan 2011 03:27:42 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10111319</guid><dc:creator>Joseph Sack</dc:creator><slash:comments>6</slash:comments><wfw:commentRss>http://blogs.msdn.com/b/joesack/rsscomments.aspx?WeblogPostID=10111319</wfw:commentRss><comments>http://blogs.msdn.com/b/joesack/archive/2011/01/04/last-batch-of-sql-mcm-videos-now-published.aspx#comments</comments><description>&lt;p&gt;Our last planned batch of &lt;a href="http://technet.microsoft.com/en-us/sqlserver/ff977043.aspx" target="_blank"&gt;SQL Server 2008 MCM Readiness Videos&lt;/a&gt; are now published – covering Partitioning, Snapshot Isolation, EXECUTE AS, SQL Injection, Replication, Partial Database Availability, Online Piecemeal Restore, optimizing procedural code, a demo of multi-server management, indexing strategies, index analysis, designing an availability strategy, Failover Cluster setup &amp;amp; troubleshooting and consolidation.&lt;/p&gt;  &lt;p&gt;This is the final batch of videos.&amp;#160; I hope we can extend something similar again in the future, but we’ll see.&amp;#160; It will depend on several factors.&amp;#160; &lt;/p&gt;  &lt;p&gt;I hope that you find these videos to be helpful and for those of you studying for SQL MCM certification, best of luck to you!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10111319" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/JoeSacksSqlServerWeblog/~4/Jl9kVht1hdc" height="1" width="1"/&gt;</description><feedburner:origLink>http://blogs.msdn.com/b/joesack/archive/2011/01/04/last-batch-of-sql-mcm-videos-now-published.aspx</feedburner:origLink></item><item><title>Second batch of SQL MCM Readiness Videos now Released</title><link>http://feedproxy.google.com/~r/JoeSacksSqlServerWeblog/~3/Hv338ltz968/second-batch-of-sql-mcm-readiness-videos-now-released.aspx</link><pubDate>Wed, 15 Dec 2010 21:43:09 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10105556</guid><dc:creator>Joseph Sack</dc:creator><slash:comments>10</slash:comments><wfw:commentRss>http://blogs.msdn.com/b/joesack/rsscomments.aspx?WeblogPostID=10105556</wfw:commentRss><comments>http://blogs.msdn.com/b/joesack/archive/2010/12/15/second-batch-of-sql-mcm-readiness-videos-now-released.aspx#comments</comments><description>&lt;p&gt;We just added another 23 videos on Technet – making it a total of 56 videos available as of today. The new videos cover storage core concepts &amp;amp; guidelines, DAS vs SAN architecture, storage testing and monitoring, index internals, the clustered index debate, statistics, locking, restore internals, Waits and Queues, a clustering introduction, SQLOS concepts, database mirroring, multi-server management, PBM and Resource Governor. &lt;/p&gt;  &lt;p&gt;A few things to be aware of:&lt;/p&gt;  &lt;p&gt;· The main &lt;a href="http://technet.microsoft.com/en-us/sqlserver/ff977043.aspx" target="_blank"&gt;landing page&lt;/a&gt; shows a rotating random video, followed by 10 of the most recently posted videos.&lt;/p&gt;  &lt;p&gt;· The “&lt;a href="http://www.microsoft.com/feeds/TechNet/en-us/How-to-videos/SQL_Server_2008_Microsoft_Certified_Master_(MCM)_Readiness_Videos.xml" target="_blank"&gt;more&lt;/a&gt;” link leads to the full list of available videos (56 videos as of today). By the way - this link &lt;i&gt;is&lt;/i&gt; an XML page – which is by design for Technet.&lt;/p&gt;  &lt;p&gt;· Each individual video page has the option of streaming the page in the browser or downloading video or audio files in varying formats (typically about 10+ download links per video). Right now this means there are 560+ individual links that get updated by the Technet team. Although I do random checks upon publication, I definitely don’t test every link. There have been instances of broken links or other bugs – so if you find them, please ping me directly and I’ll investigate and submit a fix request to the Technet team. Depending on when an issue is found it can take a couple of days to fix, but it &lt;i&gt;will&lt;/i&gt; get fixed.&lt;/p&gt;  &lt;p&gt;I hope you find these videos to be valuable (whether or not you use them for SQL MCM readiness).&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10105556" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/JoeSacksSqlServerWeblog/~4/Hv338ltz968" height="1" width="1"/&gt;</description><feedburner:origLink>http://blogs.msdn.com/b/joesack/archive/2010/12/15/second-batch-of-sql-mcm-readiness-videos-now-released.aspx</feedburner:origLink></item><item><title>How do you know if you’re ready for SQL MCM?</title><link>http://feedproxy.google.com/~r/JoeSacksSqlServerWeblog/~3/4W_PyFtjwL4/how-do-you-know-if-you-re-ready-for-sql-mcm.aspx</link><pubDate>Sun, 21 Nov 2010 21:07:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10094460</guid><dc:creator>Joseph Sack</dc:creator><slash:comments>2</slash:comments><wfw:commentRss>http://blogs.msdn.com/b/joesack/rsscomments.aspx?WeblogPostID=10094460</wfw:commentRss><comments>http://blogs.msdn.com/b/joesack/archive/2010/11/21/how-do-you-know-if-you-re-ready-for-sql-mcm.aspx#comments</comments><description>&lt;p&gt;&amp;ldquo;&lt;i&gt;Know what you know. Know what you don&amp;rsquo;t know. Don&amp;rsquo;t ever confuse the two.&lt;/i&gt;&amp;rdquo; Per Farny, founder of the original Microsoft Certified Master and Architect program&lt;/p&gt;
&lt;p&gt;How do you know if you are ready to take the Microsoft Certified Master SQL Server 2008 exams? This is a common question and a perfectly valid one, especially given the &lt;a target="_blank" href="http://www.microsoft.com/learning/en/us/certification/master-sql-path.aspx"&gt;recently announced SQL MCM program changes&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Giving recommendations on this topic is a bit of a balancing act&amp;hellip; We want to provide enough information to guide an individual&amp;rsquo;s preparation &amp;ndash; but not so much detail that it makes it too easy to pass the exams. The legacy SQL MCM candidates faced a similar challenge in that the final Lab Exam scope and coverage was not disclosed in advance. Candidates only knew that the Lab Exam was going to test &amp;ldquo;hands-on, real world&amp;rdquo; advanced SQL Server competencies. This description is pretty open ended and sometimes not even the top experts were able to pass the Lab Exam on the first attempt.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-01-17-45-metablogapi/0243.86_5F00_6.jpg"&gt;&lt;img height="235" width="312" src="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-01-17-45-metablogapi/5417.86_5F00_thumb_5F00_2.jpg" align="right" alt="86" border="0" title="86" style="border-bottom: 0px; border-left: 0px; margin: 5px 0px; display: inline; border-top: 0px; border-right: 0px" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;So how &lt;i&gt;do&lt;/i&gt; you know if you are ready? I&amp;rsquo;ll provide some guidance and recommendations based on what I&amp;rsquo;ve witnessed over the last year and a half &amp;ndash; and also based on my own experience going through the program back in 2006 and taking the upgrade in 2008. My seven tips are as follows:&lt;/p&gt;
&lt;p&gt;1. Read the &lt;a target="_blank" href="http://www.microsoft.com/learning/en/us/certification/master-sql-path.aspx#exam-topics"&gt;Exam Topics&lt;/a&gt; and ask yourself if you have experience in this area. Be real with yourself. Have you done what is listed? The seven competencies aren&amp;rsquo;t incredibly detailed &amp;ndash; but they do contain quite a bit of implied knowledge and experience. Make sure you feel comfortable in each area.&lt;/p&gt;
&lt;p&gt;2. Watch the &lt;a target="_blank" href="http://technet.microsoft.com/en-us/sqlserver/ff977043.aspx"&gt;SQL MCM Readiness Videos&lt;/a&gt;. Do you feel comfortable with the subjects as you watch them? Did you already know most everything you&amp;rsquo;ve been watching? These videos give you an indication of the program&amp;rsquo;s depth and breadth &amp;ndash; so these will act as a good hint of your overall readiness.&lt;/p&gt;
&lt;p&gt;3. Look over the reading list &amp;ndash; including the &lt;a target="_blank" href="http://www.microsoft.com/learning/en/us/certification/master-sql-path.aspx#mcm-microsoft-sql-server-2008-readiness"&gt;books and white papers&lt;/a&gt;. Also check out the &lt;a target="_blank" href="http://www.sqlskills.com/mcm.asp"&gt;reading list that SQLSkills.com&lt;/a&gt; put together (Microsoft doesn&amp;rsquo;t manage this list &amp;ndash; but it&amp;rsquo;s put together by the original instructors for the SQL MCM program). Have you read most of this list already? Have you been reading this over time? If affirmative, that&amp;rsquo;s a good sign.&lt;/p&gt;
&lt;p&gt;4. Look at the various people who have made it through the program to date. Look at their background on &lt;a target="_blank" href="http://blogs.technet.com/b/themasterblog/archive/tags/sql/"&gt;The Master Blog&lt;/a&gt; and ask yourself if it is similar to yours. We do have a wide variety of job roles in the SQL MCM community today, but there are certain themes that can be extracted from the data (years of experience, immersion in SQL Server, experience in mission critical environments). Have a look at the various announcements over the last year and see if your background is similar.&lt;/p&gt;
&lt;p&gt;5. Do you know a SQL MCM? If so, talk to them about your background and experience and get their feedback. They aren&amp;rsquo;t going to coach you on the exams or give you answers, but they can compare your background with other people in the community and see if you&amp;rsquo;re close to the mark or need a few more years of experience.&lt;/p&gt;
&lt;p&gt;6. Another option is to just jump right in and give the exams a try. This is potentially a more costly method because you may not pass the Knowledge Exam on the first attempt. Also, you cannot take the Lab Exam &lt;i&gt;until&lt;/i&gt; you pass the Knowledge Exam. You should also know that the two exams are distinct entities &amp;ndash; and while the Knowledge Exam acts as a first filter, the hands-on Lab Exam is the core of the SQL MCM program (just as it has been in the past). Taking the Knowledge Exam without certainty of your background is a perfectly valid approach if you have the means to do so &amp;ndash; but just remember that there is a 90 day waiting period between exam attempts and that the content may change over time.&lt;/p&gt;
&lt;p&gt;7. Instructor-led training more your style? Then my recommendation is you attend advanced training where available and depending on your budget and time. &lt;span style="text-decoration: line-through;"&gt;At Microsoft we&amp;rsquo;re working on releasing four new advanced instructor-led training courses that will be available through select Microsoft Learning Partners in the first half of 2011&lt;/span&gt; (** Update - we put that aforementioned courseware on hold and are looking at other ways to get out advanced&amp;nbsp;instruction to the broader SQL Server community - stay tuned **). Also, there are several top SQL experts that participated in the original SQL MCM training experience. If you have an opportunity to get advanced instruction from the likes of Paul Randal, Kimberly Tripp, Adam Machanic and Greg Low &amp;ndash; this can only help you (their training was often viewed as the best part of the legacy SQL MCM experience). Other trainers like Kalen Delaney and Bob Beauchemin (who helped in the re-launch of the SQL MCM program) also provide advanced training options and an incredible experience. Regardless of where you get your advanced training, this may be another way to validate your readiness.&lt;/p&gt;
&lt;p&gt;Last point I want to get across&amp;hellip; &lt;i&gt;Experience is paramount&lt;/i&gt;. Look over the scope of the exams and find ways to get hands-on experience.&lt;/p&gt;
&lt;p&gt;Hope this helps.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10094460" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/JoeSacksSqlServerWeblog/~4/4W_PyFtjwL4" height="1" width="1"/&gt;</description><feedburner:origLink>http://blogs.msdn.com/b/joesack/archive/2010/11/21/how-do-you-know-if-you-re-ready-for-sql-mcm.aspx</feedburner:origLink></item><item><title>Microsoft SQL Server 2008 Administration for Oracle DBAs</title><link>http://feedproxy.google.com/~r/JoeSacksSqlServerWeblog/~3/YOAWRtO26q0/microsoft-sql-server-2008-administration-for-oracle-dbas.aspx</link><pubDate>Sun, 21 Nov 2010 17:03:29 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10094415</guid><dc:creator>Joseph Sack</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://blogs.msdn.com/b/joesack/rsscomments.aspx?WeblogPostID=10094415</wfw:commentRss><comments>http://blogs.msdn.com/b/joesack/archive/2010/11/21/microsoft-sql-server-2008-administration-for-oracle-dbas.aspx#comments</comments><description>&lt;p&gt;I just found out today that one of our own SQL MCMs (2005/2008) &amp;amp; MCA, &lt;a href="http://sqlblogcasts.com/blogs/christian/" target="_blank"&gt;Christian Bolton&lt;/a&gt;, is a co-author for the recently published book &lt;a href="http://search.barnesandnoble.com/Microsoft-SQL-Server-2008-Administration-for-Oracle-DBAs/Mark-Anderson/e/9780071700641/?itm=1&amp;amp;USRI=microsoft+sql+server+2008+administration+for+oracle+dbas" target="_blank"&gt;Microsoft SQL Server 2008 Administration for Oracle DBAs&lt;/a&gt;. I just wanted to congratulate Christian on yet another published work! &lt;/p&gt;  &lt;p&gt;As an extra bonus - I was also informed that this book contains a list of the authors’ favorite MVP and Microsoft blogs. I was glad to see the SQL MCM community represented with Brent Ozar, Cindy Gross and Jens K. Suessmeyer. The list also included those who have helped the SQL MCM program for years (even back to the “SQL Ranger” days); Paul Randal and Kimberly Tripp – and also Kalen Delaney who helped with the recent &lt;a href="http://www.microsoft.com/learning/en/us/certification/master-sql-path.aspx" target="_blank"&gt;SQL MCM re-launch&lt;/a&gt; program design work. There are four other names on the blog list that I hope join the community in the future too – all great minds – and I won’t name them here so you’ll have to buy the book in order to find out who they are.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10094415" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/JoeSacksSqlServerWeblog/~4/YOAWRtO26q0" height="1" width="1"/&gt;</description><feedburner:origLink>http://blogs.msdn.com/b/joesack/archive/2010/11/21/microsoft-sql-server-2008-administration-for-oracle-dbas.aspx</feedburner:origLink></item><item><title>A New Path to Microsoft Certified Master: SQL Server 2008</title><link>http://feedproxy.google.com/~r/JoeSacksSqlServerWeblog/~3/cz_14eAzeTA/a-new-path-to-microsoft-certified-master-sql-server-2008.aspx</link><pubDate>Tue, 09 Nov 2010 17:57:03 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10088342</guid><dc:creator>Joseph Sack</dc:creator><slash:comments>2</slash:comments><wfw:commentRss>http://blogs.msdn.com/b/joesack/rsscomments.aspx?WeblogPostID=10088342</wfw:commentRss><comments>http://blogs.msdn.com/b/joesack/archive/2010/11/09/a-new-path-to-microsoft-certified-master-sql-server-2008.aspx#comments</comments><description>&lt;p class="MsoNormal" style="margin: 0in 0in 10pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: arial,helvetica,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="color: black; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: Calibri;"&gt;It&amp;rsquo;s a big day for the Microsoft Certified Master (MCM) program, as we announce &lt;/span&gt;&lt;span style="color: black;"&gt;&lt;a target="_blank" href="http://www.microsoft.com/learning/en/us/certification/master-sql-path.aspx"&gt;&lt;span style="mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: Calibri;"&gt;the new MCM SQL Server 2008 certification path&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span style="color: black; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: Calibri;"&gt;.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;Our customers want to be able to earn a SQL Server Microsoft Certified Master certification at a lower price, with more flexibility, and we&amp;rsquo;ve responded by evolving the SQL Server MCM program without lowering the bar on quality.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 10pt;"&gt;&lt;span style="color: black; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: Calibri;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: arial,helvetica,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;What changes have we made?&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul type="disc"&gt;
&lt;li class="MsoNormal" style="line-height: normal; margin: 0in 0in 10pt; color: black; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l0 level1 lfo1; tab-stops: list .5in;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: arial,helvetica,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;We&amp;rsquo;ve removed the three week training requirement, instead making the experience-based&amp;nbsp;exams stand alone in recognizing and validating the world&amp;rsquo;s top SQL Server talent.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: Calibri;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class="MsoNormal" style="line-height: normal; margin: 0in 0in 10pt; color: black; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l0 level1 lfo1; tab-stops: list .5in;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: arial,helvetica,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;Candidates&amp;nbsp;will now achieve MCM in SQL Server 2008 by passing these two new exams in the following order:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;ul type="circle"&gt;
&lt;li class="MsoNormal" style="line-height: normal; margin: 0in 0in 10pt; color: black; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l0 level2 lfo1; tab-stops: list 1.0in;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: arial,helvetica,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;Exam 88-970:&amp;nbsp;SQL Server 2008 Microsoft Certified Master:&amp;nbsp;Knowledge Exam (&lt;em&gt;now available&lt;/em&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class="MsoNormal" style="line-height: normal; margin: 0in 0in 10pt; color: black; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l0 level2 lfo1; tab-stops: list 1.0in;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: arial,helvetica,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;Exam 88-971: SQL Server 2008 Microsoft Certified Master: Lab Exam (&lt;em&gt;available in Q1 2011&lt;/em&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class="MsoNormal" style="line-height: normal; margin: 0in 0in 10pt; color: black; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l0 level1 lfo1; tab-stops: list .5in;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: arial,helvetica,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;These new exams were written with the help of&amp;nbsp;25 SQL Server industry experts (internal and external to Microsoft) in order to ensure industry validity and integrity and will be available&amp;nbsp;worldwide through a &lt;span style="color: windowtext;"&gt;&lt;a target="_blank" href="http://www.prometric.com/microsoft/mcm"&gt;select network of high security Prometric testing centers&lt;/a&gt;&lt;/span&gt;.&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class="MsoNormal" style="line-height: normal; margin: 0in 0in 10pt; color: black; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l0 level1 lfo1; tab-stops: list .5in;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: arial,helvetica,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;Although experience is paramount in order to be successful in the exams, flexible readiness options will also be made available. In addition to &lt;span style="color: windowtext;"&gt;&lt;a target="_blank" href="http://www.microsoft.com/learning/en/us/certification/master-sql-path.aspx#mcm-microsoft-sql-server-2008-readiness"&gt;the recommended reading list&lt;/a&gt;&lt;/span&gt; and an overview of &lt;span style="color: windowtext;"&gt;&lt;a target="_blank" href="http://www.microsoft.com/learning/en/us/certification/master-sql-path.aspx#exam-topics"&gt;skills that are being measured&lt;/a&gt;&lt;/span&gt;, we are also providing &lt;span style="color: windowtext;"&gt;&lt;a target="_blank" href="http://technet.microsoft.com/en-us/sqlserver/ff977043.aspx"&gt;several hours of free online video Masters-level instruction presented by top SQL Server experts&lt;/a&gt;&lt;/span&gt;.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;In 2011 we also plan to release four new instructor led courses covering High Availability, Performance, Manageability and Security. These courses will be made available globally through select Microsoft Learning Partners.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span style="font-family: 'Arial','sans-serif'; color: black; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin;"&gt;&lt;span style="font-family: arial,helvetica,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;It&amp;rsquo;s our goal to reach the SQL Server experts worldwide who may be qualified to achieve MCM certification, but who&amp;rsquo;ve run up against the previous barriers of time, cost and location.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;By reducing or removing these barriers, while keeping the integrity and value of the certification, we expect to grow the community of SQL Server MCMs and increase its visibility and awareness of its value. We&amp;rsquo;re very excited about the new program, and look forward to the continued growth of the SQL MCM community.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;Look for all the details about the program, the exams, and exam prep materials at &lt;/span&gt;&lt;/span&gt;&lt;a href="http://www.microsoft.com/learning/en/us/certification/master-sql-path.aspx"&gt;&lt;span style="font-family: arial,helvetica,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;http://www.microsoft.com/learning/en/us/certification/master-sql-path.aspx&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: arial,helvetica,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="line-height: 115%; color: black; font-size: 11pt; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;"&gt;&lt;span style="font-family: arial,helvetica,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;I&amp;rsquo;ll be blogging about all the details over the next few weeks and if you have questions, please contact me.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;If you&amp;rsquo;re attending SQL PASS, please stop by the MS Learning product booth in the expo hall!&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10088342" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/JoeSacksSqlServerWeblog/~4/cz_14eAzeTA" height="1" width="1"/&gt;</description><category domain="http://blogs.msdn.com/b/joesack/archive/tags/SQL+MCM/">SQL MCM</category><feedburner:origLink>http://blogs.msdn.com/b/joesack/archive/2010/11/09/a-new-path-to-microsoft-certified-master-sql-server-2008.aspx</feedburner:origLink></item><item><title>High Availability and Disaster Recovery for Microsoft’s SAP Data Tier: A SQL Server 2008 Technical Case Study</title><link>http://feedproxy.google.com/~r/JoeSacksSqlServerWeblog/~3/Bu2KUSAiMvg/high-availability-and-disaster-recovery-for-microsoft-s-sap-data-tier-a-sql-server-2008-technical-case-study.aspx</link><pubDate>Fri, 29 Oct 2010 19:57:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10083207</guid><dc:creator>Joseph Sack</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://blogs.msdn.com/b/joesack/rsscomments.aspx?WeblogPostID=10083207</wfw:commentRss><comments>http://blogs.msdn.com/b/joesack/archive/2010/10/29/high-availability-and-disaster-recovery-for-microsoft-s-sap-data-tier-a-sql-server-2008-technical-case-study.aspx#comments</comments><description>&lt;p&gt;&lt;span style="font-size: small;"&gt;Apologies for my radio silence lately.&amp;nbsp; With SQL PASS next month, I'll be getting a little more verbose again.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;"&gt;In the meantime while I remain relatively quiet, I worked on a White Paper with Eric Holling (Microsoft IT) and with Sanjay Mishra (SQL CAT team) and contributors Juergen Thomas and Elke Bregler&amp;nbsp;(along with a host of great reviewers) that just got published today:&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;a target="_blank" href="http://sqlcat.com/whitepapers/archive/2010/10/29/high-availability-and-disaster-recovery-for-microsoft-s-sap-data-tier-a-sql-server-2008-technical-case-study.aspx" title="SAP HA DR MSIT"&gt;&lt;span style="font-size: small;"&gt;High Availability and Disaster Recovery for Microsoft&amp;rsquo;s SAP Data Tier: A SQL Server 2008 Technical Case Study&lt;br /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;"&gt;It was a fun paper to work on, so I hope you find it to be informative.&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10083207" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/JoeSacksSqlServerWeblog/~4/Bu2KUSAiMvg" height="1" width="1"/&gt;</description><feedburner:origLink>http://blogs.msdn.com/b/joesack/archive/2010/10/29/high-availability-and-disaster-recovery-for-microsoft-s-sap-data-tier-a-sql-server-2008-technical-case-study.aspx</feedburner:origLink></item><item><title>Off Topic: How I chop wood and carry water </title><link>http://feedproxy.google.com/~r/JoeSacksSqlServerWeblog/~3/xViHy-Vpctg/off-topic-how-i-chop-wood-and-carry-water.aspx</link><pubDate>Thu, 17 Jun 2010 18:55:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10026649</guid><dc:creator>Joseph Sack</dc:creator><slash:comments>6</slash:comments><wfw:commentRss>http://blogs.msdn.com/b/joesack/rsscomments.aspx?WeblogPostID=10026649</wfw:commentRss><comments>http://blogs.msdn.com/b/joesack/archive/2010/06/17/off-topic-how-i-chop-wood-and-carry-water.aspx#comments</comments><description>&lt;p class="MsoNormal"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&lt;/span&gt;&amp;ldquo;Before enlightenment; chop wood, carry water. After enlightenment; chop wood, carry water.&amp;rdquo;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;Zen proverb&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="font-size: small;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;span style="font-family: Calibri;"&gt;&lt;span style="font-size: small;"&gt;I see my daily work as nothing more than a high tech form of chopping wood and carrying water. &lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&lt;/span&gt;Work can sometimes seem to be overwhelming or unmanageable, but in the end I think that everything can be broken down into small and manageable tasks.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;I&amp;rsquo;ve always been interested in hearing how others go about their daily work, and also understanding what works and what does not. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;span style="font-family: Calibri; font-size: small;"&gt;For the last year I&amp;rsquo;ve had two separate roles at Microsoft &amp;ndash; SQL Premier Field Engineer and Acting Program Manager for the &lt;/span&gt;&lt;a href="http://www.microsoft.com/learning/en/us/certification/master.aspx#tab2"&gt;&lt;span style="font-family: Calibri; color: #0000ff; font-size: small;"&gt;SQL Microsoft Certified Master and Architect program&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="font-size: small;"&gt;.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;I also just agreed to be more involved with my townhome association (hurrah &amp;ndash; more work!) and so I have a renewed energy around keeping organized and productive (without getting too stressed).&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;span style="font-family: Calibri;"&gt;&lt;span style="font-size: small;"&gt;For today&amp;rsquo;s post, I&amp;rsquo;m going to talk about my adopted work philosophies that have, &lt;i style="mso-bidi-font-style: normal;"&gt;at least so far&lt;/i&gt;, kept me organized, on track, and productive. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;span style="font-family: Calibri;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&lt;/span&gt;&amp;lt;Expectation warning&amp;gt; There is nothing amazingly original or ground breaking here &amp;ndash; just various scraps and bits that I&amp;rsquo;ve picked up over time from wiser people over time&amp;lt;/Expectation warning&amp;gt;:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&amp;nbsp;&lt;span style="font-family: Calibri;"&gt;&lt;span style="font-size: small;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;Make the complicated simple&lt;/b&gt;.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;Even when projects are complicated and sprawling &amp;ndash; you can still break them apart into smaller tasks.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;Those smaller tasks will need to be done in a certain order. &lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;Your smaller tasks still seem too complicated?&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;Keep chopping.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;Too many tasks?&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;Ask for help.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p class="MsoListParagraphCxSpFirst"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div class="MsoListParagraphCxSpMiddle"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="font-size: small;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;Single tasking?&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;Yes.&lt;/b&gt; Single tasking has been my friend for years.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;When I&amp;rsquo;m completely focused on a task, that&amp;rsquo;s when the magic happens.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;Whether I&amp;rsquo;m reading an article, writing an email or listening to a customer question &amp;ndash; when I give my full attention, it&amp;rsquo;s all good.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;Single tasking doesn&amp;rsquo;t mean I don&amp;rsquo;t handle multiple issues or tasks in a day &amp;ndash; but rather, when I move to a task, I &lt;i style="mso-bidi-font-style: normal;"&gt;try&lt;/i&gt; to give it 100% attention. &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p class="MsoListParagraphCxSpMiddle"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="font-size: small;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div class="MsoListParagraphCxSpMiddle"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="font-size: small;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;Delegate and follow-up&lt;/b&gt;.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;I&amp;rsquo;m still learning how to delegate (more).&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;Some people actually want to help - and you need to give people the opportunity to do so.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;Follow-up is equally important &amp;ndash; and that&amp;rsquo;s also an area where I constantly calibrate (give people enough space to get something done but still keep things moving within a reasonable timeframe).&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p class="MsoListParagraphCxSpMiddle"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="font-size: small;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div class="MsoListParagraphCxSpMiddle"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="font-size: small;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;I set my cache to 15% &amp;ldquo;learn&amp;rdquo; and 85% &amp;ldquo;do&amp;rdquo;.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/b&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&lt;/span&gt;In the SQL Server world, if you&amp;rsquo;re not continually reading and learning, you&amp;rsquo;re falling behind. For a typical 60 hour work week, I&amp;rsquo;m spending 9 hours dedicated to consuming new information.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;Ideally you can combine &amp;ldquo;learn&amp;rdquo; with &amp;ldquo;do&amp;rdquo;, but I still think it is important to establish isolated learning and &amp;ldquo;think&amp;rdquo; time.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p class="MsoListParagraphCxSpMiddle"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="font-size: small;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div class="MsoListParagraphCxSpMiddle"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="font-size: small;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;Responsive is best&lt;/b&gt;.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;If I&amp;rsquo;m very busy, I still like to respond.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;My response might be &amp;ldquo;sorry &amp;ndash; I&amp;rsquo;ll look at this next month and get back to you&amp;rdquo; &amp;ndash; but at a minimum I want to acknowledge receipt of a request or question.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;If I haven&amp;rsquo;t responded to you &amp;ndash; it is because your email went to my spam or you misspelled my email address.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;I don&amp;rsquo;t think that this is always possible at a larger scale, but right now I&amp;rsquo;m still in a place where I can be responsive.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p class="MsoListParagraphCxSpMiddle"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="font-size: small;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div class="MsoListParagraphCxSpMiddle"&gt;&lt;span style="font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;"&gt;&lt;span style="mso-list: Ignore;"&gt;&lt;span style="font: 7pt 'Times New Roman';"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="font-size: small;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;Bad news?&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;Get it out now&lt;/b&gt;.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;When I have something uncomfortable I need to communicate, I don&amp;rsquo;t let it block my day&amp;rsquo;s activities.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;I don&amp;rsquo;t sit on the information.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;Unless constrained by confidentiality concerns or NDA purposes, I get the bad news out quickly.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p class="MsoListParagraphCxSpMiddle"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div class="MsoListParagraphCxSpMiddle"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="font-size: small;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;AAA? (Angry? Annoyed? Alarmed?) Hold that email&lt;/b&gt;. I&amp;rsquo;m not always good about this - and when I don&amp;rsquo;t follow this advice I &lt;i style="mso-bidi-font-style: normal;"&gt;always&lt;/i&gt; regret it.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;If I&amp;rsquo;m in a heightened state of irritation that is usually a sign to myself to hold off on the email.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p class="MsoListParagraphCxSpMiddle"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div class="MsoListParagraphCxSpMiddle"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="font-size: small;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;Am I feeling righteous? I&amp;rsquo;m probably the one who is wrong.&lt;/b&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;Since joining corporate America sixteen years ago - I&amp;rsquo;ve been through this cycle many times.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;If I&amp;rsquo;m feeling righteous or indignant, that&amp;rsquo;s my alert to check the facts about a situation before making bad assumptions. There is a good chance I&amp;rsquo;m the one who is wrong.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p class="MsoListParagraphCxSpMiddle"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="font-size: small;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div class="MsoListParagraphCxSpMiddle"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;Physical order reflects mental order&lt;/b&gt;.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;My desk at home has a printer, a router, my laptop, a mouse, and that&amp;rsquo;s it.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;Everything else is filed away and out of sight.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;My desk at my customer site has a phone, hand sanitizer, laptop, caffeine, one metal tray and a pad of paper.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;That&amp;rsquo;s it.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;Clean workspace, clean mind.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;That isn&amp;rsquo;t everyone&amp;rsquo;s style, but it works for me.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;span style="line-height: 115%; font-family: 'Calibri','sans-serif'; font-size: 11pt; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;"&gt;That&amp;rsquo;s all today.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;Time to chop some wood.&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10026649" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/JoeSacksSqlServerWeblog/~4/xViHy-Vpctg" height="1" width="1"/&gt;</description><feedburner:origLink>http://blogs.msdn.com/b/joesack/archive/2010/06/17/off-topic-how-i-chop-wood-and-carry-water.aspx</feedburner:origLink></item><item><title>Sharing your T-SQL Code? Test it on a case sensitive SQL instance</title><link>http://feedproxy.google.com/~r/JoeSacksSqlServerWeblog/~3/K4fU4aXhDJw/sharing-your-t-sql-code-test-it-on-a-case-sensitive-sql-instance.aspx</link><pubDate>Tue, 01 Jun 2010 13:46:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10018178</guid><dc:creator>Joseph Sack</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://blogs.msdn.com/b/joesack/rsscomments.aspx?WeblogPostID=10018178</wfw:commentRss><comments>http://blogs.msdn.com/b/joesack/archive/2010/06/01/sharing-your-t-sql-code-test-it-on-a-case-sensitive-sql-instance.aspx#comments</comments><description>&lt;p&gt;(Reposting from cache - as the MSDN blog migration seemed to have lost my latest post)&lt;/p&gt;
&lt;p&gt;&lt;span style="background-color: #ffffff;"&gt;Do you share your T-SQL code with others?&amp;nbsp;&amp;nbsp;If you do, then first of all, thanks for sharing.&amp;nbsp; But next question - did you test it on a case sensitive SQL instance?&amp;nbsp; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="background-color: #ffffff;"&gt;Check out the following two queries:&lt;/span&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;span style="background-color: #ffffff;"&gt;SELECT DepartmentID&lt;br /&gt;FROM HumanResources.Department&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="background-color: #ffffff;"&gt;SELECT DepartmentId&lt;br /&gt;FROM HumanResources.Department&lt;/span&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;span style="background-color: #ffffff;"&gt;Subtle difference indeed&amp;nbsp;- and it is a difference that that I wouldn't have identified myself unless I had first tested the script on a case sensitive SQL instance (in my case, I&amp;nbsp;use SQL_Latin1_General_CP1_&lt;strong&gt;CS&lt;/strong&gt;_AS). &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="background-color: #ffffff;"&gt;When you're coding a small admin or monitoring script, It is usually no big deal in the grand scheme of things (I don't mind making a few changes to "gift scripts" from others).&amp;nbsp; But if you are sharing a big long script - you may exceed the number of changes that someone will tolerate before going with some other solution.&amp;nbsp; My customer uses plenty of&amp;nbsp;case sensitive&amp;nbsp;servers, and it didn't take long before I changed my&amp;nbsp;case insensitive ways...&amp;nbsp; The same goes for demos - when creating demonstration scripts, test them on a case sensitive SQL instance.&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10018178" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/JoeSacksSqlServerWeblog/~4/K4fU4aXhDJw" height="1" width="1"/&gt;</description><feedburner:origLink>http://blogs.msdn.com/b/joesack/archive/2010/06/01/sharing-your-t-sql-code-test-it-on-a-case-sensitive-sql-instance.aspx</feedburner:origLink></item><item><title>Eve of SQL Rotation 9 and planning for future rotations</title><link>http://feedproxy.google.com/~r/JoeSacksSqlServerWeblog/~3/CUgEBnMbQBQ/eve-of-sql-rotation-9-and-planning-for-future-rotations.aspx</link><pubDate>Sat, 01 May 2010 01:52:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10005598</guid><dc:creator>Joseph Sack</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://blogs.msdn.com/b/joesack/rsscomments.aspx?WeblogPostID=10005598</wfw:commentRss><comments>http://blogs.msdn.com/b/joesack/archive/2010/05/01/eve-of-sql-rotation-9-and-planning-for-future-rotations.aspx#comments</comments><description>&lt;P&gt;The&amp;nbsp;ninth rotation of the SQL Microsoft Certified Masters program&amp;nbsp;begins Monday.&amp;nbsp; I'm really looking forward to meeting this next batch of candidates and future MCMs.&amp;nbsp; A few days ago I drew up a summary of each attendee's experience and background&amp;nbsp;and then emailed it to our instructors.&amp;nbsp; I wanted the instructors to know about the significant accomplishments of the incoming group and also let them get a feel for their background and strengths. &lt;/P&gt;
&lt;P&gt;This rotation starts up only a month after the previous rotation.&amp;nbsp; In the future we'll be spacing the rotations more evenly apart.&amp;nbsp; On the subject of schedules, we've added a Winter 2011 session to the previously announced sessions.&amp;nbsp; The &lt;A href="http://www.microsoft.com/learning/en/us/certification/master.aspx#tab3" target=_blank mce_href="http://www.microsoft.com/learning/en/us/certification/master.aspx#tab3"&gt;&lt;FONT color=#35648c&gt;MCM registration&amp;nbsp;page&lt;/FONT&gt;&lt;/A&gt; will reflect this&amp;nbsp;new&amp;nbsp;addition&amp;nbsp;in a few days, but in the meantime, here are the dates for Rotations 10 - 12:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;October 4 – 23, 2010&lt;/LI&gt;
&lt;LI&gt;February 7 - 26, 2011&lt;/LI&gt;
&lt;LI&gt;May 2 – 21, 2011&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Although Rotation 9 starts only a few weeks after Rotation 8, we did get in a few changes and suggestions&amp;nbsp;based on feedback from the previous rotations (one of the bigger changes involved refactoring the content for&amp;nbsp;the High Availability day - which I myself am looking forward to watching).&amp;nbsp; &lt;/P&gt;
&lt;P&gt;Okay, time to pack my bags and get ready for the MCM marathon...&amp;nbsp; &lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10005598" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/JoeSacksSqlServerWeblog/~4/CUgEBnMbQBQ" height="1" width="1"/&gt;</description><feedburner:origLink>http://blogs.msdn.com/b/joesack/archive/2010/05/01/eve-of-sql-rotation-9-and-planning-for-future-rotations.aspx</feedburner:origLink></item><item><title>Friday afternoon case of the mystery scan versus seek</title><link>http://feedproxy.google.com/~r/JoeSacksSqlServerWeblog/~3/FZphqZRg-XU/friday-afternoon-case-of-the-mystery-scan-versus-seek.aspx</link><pubDate>Fri, 23 Apr 2010 20:36:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10001757</guid><dc:creator>Joseph Sack</dc:creator><slash:comments>1</slash:comments><wfw:commentRss>http://blogs.msdn.com/b/joesack/rsscomments.aspx?WeblogPostID=10001757</wfw:commentRss><comments>http://blogs.msdn.com/b/joesack/archive/2010/04/23/friday-afternoon-case-of-the-mystery-scan-versus-seek.aspx#comments</comments><description>&lt;P&gt;So I just got finished with a Friday afternoon head scratcher (that luckily had a resolution).&lt;/P&gt;
&lt;P&gt;Problem:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Ad hoc query with&amp;nbsp;a predicate that references a literal value does an index&amp;nbsp;seek.&amp;nbsp; 0 second execution.&lt;/LI&gt;
&lt;LI&gt;Ad hoc query that defines a local variable with same set value does an index scan.&amp;nbsp; 2 second execution.&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Looking at the XML execution plan, we see that the&amp;nbsp;"seek" query has values designated for ParameterCompiledValue and&amp;nbsp;ParameterRuntimeValue. The "scan" just shows a value for runtime.&lt;/P&gt;
&lt;P&gt;We experiment with RECOMPILE and OPTIMIZE FOR query hints.&amp;nbsp; No luck.&lt;/P&gt;
&lt;P&gt;I then look at the index scan operator and notice that there is an implicit data type conversion going on.&amp;nbsp; The index seek, on the other hand,&amp;nbsp;does not do an implicit data type conversion.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;We look at the base table - and the column referenced in the predicate is varchar(24).&amp;nbsp; We look at the local variable data type - and it is defined as Unicode -&amp;nbsp;nvarchar(24).&amp;nbsp; We change it to match the table - and now we're happily doing index seeks.&lt;/P&gt;
&lt;P&gt;More confirmation that implicit data type conversion,&amp;nbsp;in addition to silently&amp;nbsp;eating up extra CPU,&amp;nbsp;also can generate unnecessary I/O&amp;nbsp; (not to mention 7 minutes of support time).&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10001757" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/JoeSacksSqlServerWeblog/~4/FZphqZRg-XU" height="1" width="1"/&gt;</description><feedburner:origLink>http://blogs.msdn.com/b/joesack/archive/2010/04/23/friday-afternoon-case-of-the-mystery-scan-versus-seek.aspx</feedburner:origLink></item><item><title>Gotcha: When Server-Scoped DDL Triggers don’t honor ROLLBACK</title><link>http://feedproxy.google.com/~r/JoeSacksSqlServerWeblog/~3/ZPKAjgn9V2Y/gotcha-when-server-scoped-ddl-triggers-don-t-honor-rollback.aspx</link><pubDate>Thu, 08 Apr 2010 16:24:56 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9992540</guid><dc:creator>Joseph Sack</dc:creator><slash:comments>2</slash:comments><wfw:commentRss>http://blogs.msdn.com/b/joesack/rsscomments.aspx?WeblogPostID=9992540</wfw:commentRss><comments>http://blogs.msdn.com/b/joesack/archive/2010/04/08/gotcha-when-server-scoped-ddl-triggers-don-t-honor-rollback.aspx#comments</comments><description>&lt;p class="MsoNormal"&gt;I’ve used DDL Triggers before to prevent database DROP DATABASE operations.&lt;span style="mso-spacerun: yes"&gt;&amp;#160; &lt;/span&gt;For example:&lt;/p&gt;  &lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="mso-tab-count: 1"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; color: blue; font-size: 10pt; mso-no-proof: yes"&gt;CREATE&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes"&gt; &lt;span style="color: blue"&gt;TRIGGER&lt;/span&gt; ddl_ss_prevent_database_drop      &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin: 0in 0in 0pt 0.5in; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; color: blue; font-size: 10pt; mso-no-proof: yes"&gt;ON&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes"&gt; &lt;span style="color: gray"&gt;ALL&lt;/span&gt; &lt;span style="color: blue"&gt;SERVER       &lt;p&gt;&lt;/p&gt;     &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin: 0in 0in 0pt 0.5in; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; color: blue; font-size: 10pt; mso-no-proof: yes"&gt;FOR&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes"&gt; DROP_DATABASE     &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin: 0in 0in 0pt 0.5in; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; color: blue; font-size: 10pt; mso-no-proof: yes"&gt;AS     &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin: 0in 0in 0pt 0.5in; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; color: blue; font-size: 10pt; mso-no-proof: yes"&gt;PRINT&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes"&gt; &lt;span style="color: red"&gt;'Will not drop database until you disable this trigger.'       &lt;p&gt;&lt;/p&gt;     &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin: 0in 0in 0pt 0.5in; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; color: blue; font-size: 10pt; mso-no-proof: yes"&gt;ROLLBACK     &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-left: 0.5in" class="MsoNormal"&gt;&lt;span style="line-height: 115%; font-family: &amp;quot;Courier New&amp;quot;; color: blue; font-size: 10pt; mso-no-proof: yes"&gt;GO     &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;If you try to drop a database with this DDL trigger in place, you’ll get the following message:&lt;/p&gt;  &lt;p style="line-height: normal; margin: 0in 0in 0pt 0.5in; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 8pt; mso-no-proof: yes"&gt;Will not drop database until you disable this trigger.     &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin: 0in 0in 0pt 0.5in; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 8pt; mso-no-proof: yes"&gt;Msg 3609, Level 16, State 2, Line 2     &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin: 0in 0in 0pt 0.5in; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 8pt; mso-no-proof: yes"&gt;The transaction ended in the trigger. The batch has been aborted.     &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;What’s more – your DROP DATABASE truly &lt;em&gt;is&lt;/em&gt; prevented, as one would expect.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;But this behavior isn’t universal across all operations.&lt;span style="mso-spacerun: yes"&gt;&amp;#160; &lt;/span&gt;Sometimes ROLLBACK isn’t possible.&lt;span style="mso-spacerun: yes"&gt;&amp;#160; &lt;/span&gt;Take the following example of a DDL trigger on an ALTER_DATABASE event:&lt;/p&gt;  &lt;p style="line-height: normal; margin: 0in 0in 0pt 0.5in; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; color: blue; font-size: 10pt; mso-no-proof: yes"&gt;CREATE&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes"&gt; &lt;span style="color: blue"&gt;TRIGGER&lt;/span&gt; ddl_ss_tr_no_alter_db      &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin: 0in 0in 0pt 0.5in; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; color: blue; font-size: 10pt; mso-no-proof: yes"&gt;ON&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes"&gt; &lt;span style="color: gray"&gt;ALL&lt;/span&gt; &lt;span style="color: blue"&gt;SERVER       &lt;p&gt;&lt;/p&gt;     &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin: 0in 0in 0pt 0.5in; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; color: blue; font-size: 10pt; mso-no-proof: yes"&gt;FOR&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes"&gt; ALTER_DATABASE     &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin: 0in 0in 0pt 0.5in; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; color: blue; font-size: 10pt; mso-no-proof: yes"&gt;AS     &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin: 0in 0in 0pt 0.5in; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; color: blue; font-size: 10pt; mso-no-proof: yes"&gt;PRINT&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes"&gt; &lt;span style="color: red"&gt;'No ALTER DATABASE allowed!'       &lt;p&gt;&lt;/p&gt;     &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin: 0in 0in 0pt 0.5in; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; color: blue; font-size: 10pt; mso-no-proof: yes"&gt;ROLLBACK&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes"&gt; &lt;span style="color: blue"&gt;TRAN&lt;/span&gt;&lt;span style="color: gray"&gt;;       &lt;p&gt;&lt;/p&gt;     &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-left: 0.5in" class="MsoNormal"&gt;&lt;span style="line-height: 115%; font-family: &amp;quot;Courier New&amp;quot;; color: blue; font-size: 10pt; mso-no-proof: yes"&gt;GO&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;If you execute an ALTER DATABASE – you will indeed get an error message that looks like your operation was prevented – but this is not actually the case.&lt;span style="mso-spacerun: yes"&gt;&amp;#160; &lt;/span&gt;For example – let’s say I want to increase a file size:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="line-height: 115%; font-family: &amp;quot;Courier New&amp;quot;; color: blue; font-size: 10pt; mso-no-proof: yes"&gt;ALTER&lt;/span&gt;&lt;span style="line-height: 115%; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes"&gt; &lt;span style="color: blue"&gt;DATABASE&lt;/span&gt; [MR1] &lt;span style="color: blue"&gt;MODIFY&lt;/span&gt; &lt;span style="color: blue"&gt;FILE &lt;/span&gt;&lt;span style="color: gray"&gt;(&lt;/span&gt; NAME &lt;span style="color: gray"&gt;=&lt;/span&gt; &lt;span style="color: red"&gt;N'MR1_2'&lt;/span&gt;&lt;span style="color: gray"&gt;,&lt;/span&gt; SIZE &lt;span style="color: gray"&gt;=&lt;/span&gt; 70600KB &lt;span style="color: gray"&gt;)         &lt;p&gt;&lt;/p&gt;       &lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p class="MsoNormal"&gt;This returns:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 8pt; mso-no-proof: yes"&gt;No ALTER DATABASE allowed!       &lt;p&gt;&lt;/p&gt;     &lt;/span&gt;&lt;/p&gt;    &lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 8pt; mso-no-proof: yes"&gt;Msg 3609, Level 16, State 2, Line 1       &lt;p&gt;&lt;/p&gt;     &lt;/span&gt;&lt;/p&gt;    &lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 8pt; mso-no-proof: yes"&gt;The transaction ended in the trigger. The batch has been aborted.       &lt;p&gt;&lt;/p&gt;     &lt;/span&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p class="MsoNormal"&gt;But if I check the file size – sure enough – my ALTER DATABASE MODIFY FILE was actually executed and not aborted.&lt;span style="mso-spacerun: yes"&gt;&amp;#160; &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Why?&lt;span style="mso-spacerun: yes"&gt;&amp;#160; &lt;/span&gt;Some DDL operations aren’t allowed to be rolled back in an atomic fashion in line with the DDL trigger. &lt;span style="mso-spacerun: yes"&gt;&amp;#160;&lt;/span&gt;For example – DROP DATABASE can be prevented, but not ALTER DATABASE.&lt;span style="mso-spacerun: yes"&gt;&amp;#160; &lt;/span&gt;At first I thought that the following BOL topic covers – in a roundabout way – what won’t be honored for rollbacks: “&lt;a href="http://msdn.microsoft.com/en-us/library/ms191544.aspx"&gt;Transact-SQL Statements Allowed in Transactions&lt;/a&gt;” – however DROP DATABASE is on this list, so this isn’t consistent with what one sees with DDL triggers. &lt;/p&gt;  &lt;p class="MsoNormal"&gt;So my recommendation is as follows… If you are expecting a ROLLBACK for your DDL trigger – be sure to test that it &lt;em&gt;actually&lt;/em&gt; rolls back the operation.&lt;span style="mso-spacerun: yes"&gt;&amp;#160; &lt;/span&gt;Don’t rely just on the message back to your client session.&lt;span style="mso-spacerun: yes"&gt;&amp;#160; &lt;/span&gt;You should actually verify that the operation was rolled back.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9992540" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/JoeSacksSqlServerWeblog/~4/ZPKAjgn9V2Y" height="1" width="1"/&gt;</description><feedburner:origLink>http://blogs.msdn.com/b/joesack/archive/2010/04/08/gotcha-when-server-scoped-ddl-triggers-don-t-honor-rollback.aspx</feedburner:origLink></item><item><title>Free press doesn’t always mean lollypops and rainbows</title><link>http://feedproxy.google.com/~r/JoeSacksSqlServerWeblog/~3/UBLUnvfqI9I/free-press-doesn-t-always-mean-lollypops-and-rainbows.aspx</link><pubDate>Fri, 02 Apr 2010 21:17:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9989795</guid><dc:creator>Joseph Sack</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://blogs.msdn.com/b/joesack/rsscomments.aspx?WeblogPostID=9989795</wfw:commentRss><comments>http://blogs.msdn.com/b/joesack/archive/2010/04/02/free-press-doesn-t-always-mean-lollypops-and-rainbows.aspx#comments</comments><description>&lt;P&gt;(Cross posted on The Masters Blog)&lt;/P&gt;
&lt;P&gt;The eighth rotation of the SQL Microsoft Certified Masters program is about to wrap up and tomorrow is the big day of exams. David Ikeda is covering this rotation, but last week I got a chance to sit with the existing candidates for a day of instruction. I was really glad to get a chance to meet this group of candidates in person. These are highly qualified individuals and I have no doubt that we’ll be welcoming several of them to the SQL MCM community over the next few months.&lt;/P&gt;
&lt;P&gt;One unusual factor in this rotation is that we have a distinguished and well known SQL professional, trainer, author, and blogger in attendance - &lt;A href="http://www.brentozar.com/what-i-do/contact-me/" target=_blank mce_href="http://www.brentozar.com/what-i-do/contact-me/"&gt;Brent Ozar&lt;/A&gt;. I’ve followed Brent’s blog before the MCM days, and the prospect of his attendance was (and is) a very good thing. Brent has been blogging about his SQL MCM journey and preparation over the last two months, including details on his day to day experiences over the last three weeks of training.&lt;/P&gt;
&lt;P&gt;I was glad to see the blog posts – although I also thought that such transparency means that, with the exception of NDA discussions and exam details, Brent is in a position to discuss the good, bad &lt;I&gt;and&lt;/I&gt; the ugly (and although daunting, I believe that this is a good thing). MCM is an unusually tough process and sometimes the right notes are hit and sometimes the notes are missed entirely. Sure enough - today (after a few weeks of blogging) – Brent detailed some valuable (but tough) feedback for the SQL MCM program today on his blog: &lt;A href="http://www.brentozar.com/archive/2010/04/sql-mcm-now-bad-stuff/" target=_blank mce_href="http://www.brentozar.com/archive/2010/04/sql-mcm-now-bad-stuff/"&gt;SQL MCM: Now, the bad stuff&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;Both David and I want the candidates to have an experience of their lifetime – and so when components of the training miss the mark – we take it seriously.&lt;/P&gt;
&lt;P&gt;Unlike other Microsoft Official Curriculum offerings, MCM training is a bit more organic and malleable. For each rotation, we must be prepared to change based on feedback and external trends. Given Brent’s post – I just wanted to express that we’re definitely listening and that we’ll do what we did for the last rotation which is as follows:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;· At the end of the rotation we’ll aggregate all the feedback from surveys, emails, blogs, and conversations (group and individual).&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;· We’ll then sift through it all – looking for consistent themes. What worked? What didn’t work? Some content is golden and consistently loved. Sometimes content is liked by one rotation, but not the next. Some content is new – but not working. Some content is too easy or out of scope. Some content is missing. &lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;· Next, we then work to address the feedback (content feedback, flow of content, topics that are missing, topics that are too basic, lab work that need retooling)&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;So long story short – we are listening and we will act. My overall hope is that the candidates in this current rotation and those attending future rotations will find the experience to be worthwhile and come away from this with actionable knowledge and a career-long technical community (not to mention distinguishing themselves in the community). In the meantime, we’ll keep pushing.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9989795" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/JoeSacksSqlServerWeblog/~4/UBLUnvfqI9I" height="1" width="1"/&gt;</description><feedburner:origLink>http://blogs.msdn.com/b/joesack/archive/2010/04/02/free-press-doesn-t-always-mean-lollypops-and-rainbows.aspx</feedburner:origLink></item><item><title>ALTER INDEX ALL REBUILD behavior</title><link>http://feedproxy.google.com/~r/JoeSacksSqlServerWeblog/~3/qAEKjXXyWSs/alter-index-all-rebuild-behavior.aspx</link><pubDate>Tue, 09 Mar 2010 16:10:13 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9975534</guid><dc:creator>Joseph Sack</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://blogs.msdn.com/b/joesack/rsscomments.aspx?WeblogPostID=9975534</wfw:commentRss><comments>http://blogs.msdn.com/b/joesack/archive/2010/03/09/alter-index-all-rebuild-behavior.aspx#comments</comments><description>&lt;p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;I was asked a few questions about the behavior of using “ALTER INDEX ALL… REBUILD” and thought I would detail my answers here…&lt;span style="mso-spacerun: yes"&gt;&amp;#160; &lt;/span&gt;Quick background - using the ALL argument with ALTER INDEX REBUILD instead of naming a specific index allows you to specify all indexes associated with the table.&lt;span style="mso-spacerun: yes"&gt;&amp;#160; &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;For example – in the below command I’m rebuilding all indexes for the HumanResources.Department table:&lt;/p&gt;  &lt;p style="text-indent: 0.5in" class="MsoNormal"&gt;&lt;span style="line-height: 115%; font-family: &amp;quot;Courier New&amp;quot;; color: blue; font-size: 10pt; mso-no-proof: yes"&gt;ALTER&lt;/span&gt;&lt;span style="line-height: 115%; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes"&gt; &lt;span style="color: blue"&gt;INDEX&lt;/span&gt; &lt;span style="color: gray"&gt;ALL&lt;/span&gt; &lt;span style="color: blue"&gt;ON&lt;/span&gt; HumanResources&lt;span style="color: gray"&gt;.&lt;/span&gt;Department &lt;span style="color: blue"&gt;REBUILD&lt;/span&gt;&lt;span style="color: gray"&gt;;       &lt;p&gt;&lt;/p&gt;     &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;So I received a few questions on this topic which I’ll detail here – along with the query I used to “prove” out the answers (and if you find varying results in your own testing, I would like to hear about it):&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal"&gt;Question:&lt;/b&gt; When using ALTER INDEX ALL – are all indexes rebuilt at the same time?&lt;/p&gt;  &lt;p style="margin-left: 0.5in" class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal"&gt;Answer:&lt;/b&gt; No.&lt;span style="mso-spacerun: yes"&gt;&amp;#160; &lt;/span&gt;Although individual index rebuilds can use parallelism, each rebuild is executed in a serial fashion.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal"&gt;Question:&lt;/b&gt; If I have a heap – does that get included too?&lt;/p&gt;  &lt;p style="margin-left: 0.5in" class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal"&gt;Answer:&lt;/b&gt; No.&lt;span style="mso-spacerun: yes"&gt;&amp;#160; &lt;/span&gt;Only the clustered index (if exists) and associated nonclustered indexes get rebuilt.&lt;span style="mso-spacerun: yes"&gt;&amp;#160; &lt;/span&gt;Heaps are ignored.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal"&gt;Question: &lt;/b&gt;In what order are the indexes rebuilt?&lt;/p&gt;  &lt;p style="margin-left: 0.5in" class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal"&gt;Answer: &lt;/b&gt;I tested this out using a query that I’ll show at the end of this blog post.&lt;span style="mso-spacerun: yes"&gt;&amp;#160; &lt;/span&gt;The order is by index_id (for example – 1,2,3,4) &lt;span style="mso-spacerun: yes"&gt;&amp;#160;&lt;/span&gt;– which is then clustered index first, followed by nonclustered indexes.&lt;span style="mso-spacerun: yes"&gt;&amp;#160; &lt;/span&gt;Since the clustered index is always “1” – this reinforces this behavior.&lt;span style="mso-spacerun: yes"&gt;&amp;#160; &lt;/span&gt;I only saw one exception to this rule, where the indexes were so small that they both appeared to kick off at 2010-03-09 09:52:53.230 – so index id “2” appeared before “1” – but I believe this is a precision consideration and I think the clustered index started ever so slightly before the nonclustered index.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;In order to generate the answers to these questions, I used ALTER INDEX ALL against most tables in the AdventureWorks2008 database and then used the following query to identify rebuild timings and associated index types:&lt;/p&gt;  &lt;p style="line-height: normal; margin: 0in 0in 0pt 0.5in; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; color: blue; font-size: 10pt; mso-no-proof: yes"&gt;SELECT&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes"&gt;&lt;span style="mso-tab-count: 1"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: fuchsia"&gt;OBJECT_NAME&lt;/span&gt;&lt;span style="color: gray"&gt;(&lt;/span&gt;u&lt;span style="color: gray"&gt;.&lt;/span&gt;&lt;span style="color: fuchsia"&gt;object_id&lt;/span&gt;&lt;span style="color: gray"&gt;)&lt;/span&gt; objnm&lt;span style="color: gray"&gt;,       &lt;p&gt;&lt;/p&gt;     &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin: 0in 0in 0pt 0.5in; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes"&gt;&lt;span style="mso-tab-count: 2"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;u&lt;span style="color: gray"&gt;.&lt;/span&gt;index_id&lt;span style="color: gray"&gt;,&lt;/span&gt;       &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin: 0in 0in 0pt 0.5in; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes"&gt;&lt;span style="mso-tab-count: 2"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;i&lt;span style="color: gray"&gt;.&lt;/span&gt;name indnm&lt;span style="color: gray"&gt;,       &lt;p&gt;&lt;/p&gt;     &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin: 0in 0in 0pt 0.5in; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes"&gt;&lt;span style="mso-tab-count: 2"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;i&lt;span style="color: gray"&gt;.&lt;/span&gt;type_desc&lt;span style="color: gray"&gt;,       &lt;p&gt;&lt;/p&gt;     &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin: 0in 0in 0pt 0.5in; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes"&gt;&lt;span style="mso-tab-count: 2"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;u&lt;span style="color: gray"&gt;.&lt;/span&gt;system_scans&lt;span style="color: gray"&gt;,       &lt;p&gt;&lt;/p&gt;     &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin: 0in 0in 0pt 0.5in; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes"&gt;&lt;span style="mso-tab-count: 2"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;u&lt;span style="color: gray"&gt;.&lt;/span&gt;last_system_scan      &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin: 0in 0in 0pt 0.5in; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; color: blue; font-size: 10pt; mso-no-proof: yes"&gt;FROM&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes"&gt; &lt;span style="color: green"&gt;sys&lt;/span&gt;&lt;span style="color: gray"&gt;.&lt;/span&gt;&lt;span style="color: green"&gt;dm_db_index_usage_stats&lt;/span&gt; u      &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin: 0in 0in 0pt 0.5in; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; color: gray; font-size: 10pt; mso-no-proof: yes"&gt;INNER&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes"&gt; &lt;span style="color: gray"&gt;JOIN&lt;/span&gt; &lt;span style="color: green"&gt;sys&lt;/span&gt;&lt;span style="color: gray"&gt;.&lt;/span&gt;&lt;span style="color: green"&gt;indexes&lt;/span&gt; i &lt;span style="color: blue"&gt;ON       &lt;p&gt;&lt;/p&gt;     &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin: 0in 0in 0pt 0.5in; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes"&gt;&lt;span style="mso-tab-count: 1"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;u&lt;span style="color: gray"&gt;.&lt;/span&gt;&lt;span style="color: fuchsia"&gt;object_id&lt;/span&gt; &lt;span style="color: gray"&gt;=&lt;/span&gt; i&lt;span style="color: gray"&gt;.&lt;/span&gt;&lt;span style="color: fuchsia"&gt;object_id&lt;/span&gt; &lt;span style="color: gray"&gt;AND       &lt;p&gt;&lt;/p&gt;     &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin: 0in 0in 0pt 0.5in; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes"&gt;&lt;span style="mso-tab-count: 1"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;u&lt;span style="color: gray"&gt;.&lt;/span&gt;index_id &lt;span style="color: gray"&gt;=&lt;/span&gt; i&lt;span style="color: gray"&gt;.&lt;/span&gt;index_id      &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin: 0in 0in 0pt 0.5in; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; color: blue; font-size: 10pt; mso-no-proof: yes"&gt;WHERE&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes"&gt; last_system_scan &lt;span style="color: gray"&gt;IS&lt;/span&gt; &lt;span style="color: gray"&gt;NOT&lt;/span&gt; &lt;span style="color: gray"&gt;NULL       &lt;p&gt;&lt;/p&gt;     &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin: 0in 0in 0pt 0.5in; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; color: blue; font-size: 10pt; mso-no-proof: yes"&gt;ORDER&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes"&gt; &lt;span style="color: blue"&gt;BY&lt;/span&gt; &lt;span style="color: fuchsia"&gt;OBJECT_NAME&lt;/span&gt;&lt;span style="color: gray"&gt;(&lt;/span&gt;u&lt;span style="color: gray"&gt;.&lt;/span&gt;&lt;span style="color: fuchsia"&gt;object_id&lt;/span&gt;&lt;span style="color: gray"&gt;),&lt;/span&gt; last_system_scan      &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;The key ingredient to this query is the &lt;b style="mso-bidi-font-weight: normal"&gt;last_system_scan&lt;/b&gt; column from &lt;b style="mso-bidi-font-weight: normal"&gt;sys.dm_db_index_usage_stats&lt;/b&gt; which gets updated after an index rebuild operation.&lt;span style="mso-spacerun: yes"&gt;&amp;#160; &lt;/span&gt;In my test I cleared the stats of this DMV by restarting the SQL Server instance (so if you are doing your own testing – needless to say please don’t do that in production).&lt;span style="mso-spacerun: yes"&gt;&amp;#160; &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;If you find any exceptions to the rule on using ALTER INDEX ALL in your own testing, drop by a comment or email.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9975534" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/JoeSacksSqlServerWeblog/~4/qAEKjXXyWSs" height="1" width="1"/&gt;</description><feedburner:origLink>http://blogs.msdn.com/b/joesack/archive/2010/03/09/alter-index-all-rebuild-behavior.aspx</feedburner:origLink></item><item><title>SQL MCM Prep Week posts by Brent Ozar</title><link>http://feedproxy.google.com/~r/JoeSacksSqlServerWeblog/~3/9QMm2tsNqT0/sql-mcm-prep-week-posts-by-brent-ozar.aspx</link><pubDate>Wed, 10 Feb 2010 16:51:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9961315</guid><dc:creator>Joseph Sack</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://blogs.msdn.com/b/joesack/rsscomments.aspx?WeblogPostID=9961315</wfw:commentRss><comments>http://blogs.msdn.com/b/joesack/archive/2010/02/10/sql-mcm-prep-week-posts-by-brent-ozar.aspx#comments</comments><description>&lt;P&gt;Brent Ozar, who is a&amp;nbsp;Microsoft SQL Server expert for &lt;A href="http://www.quest.com/sql-server/" target=_blank mce_href="http://www.quest.com/sql-server/" jQuery1265820152483="3"&gt;Quest Software&lt;/A&gt;, &lt;A href="http://mvp.support.microsoft.com/default.aspx/profile=a1400adb-ad6c-42cd-9a1c-17b30ce87fed" target=_blank mce_href="http://mvp.support.microsoft.com/default.aspx/profile=a1400adb-ad6c-42cd-9a1c-17b30ce87fed" jQuery1265820152483="4"&gt;Microsoft MVP&lt;/A&gt;, Editor-in-Chief at &lt;A href="http://sqlserverpedia.com/" target=_blank mce_href="http://sqlserverpedia.com/" jQuery1265820152483="5"&gt;SQLServerPedia.com&lt;/A&gt;, and coauthor of &lt;A href="http://www.amazon.com/gp/product/0470484284?ie=UTF8&amp;amp;tag=brozsqseex-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=390957&amp;amp;creativeASIN=0470484284" target=_blank mce_href="http://www.amazon.com/gp/product/0470484284?ie=UTF8&amp;amp;tag=brozsqseex-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=390957&amp;amp;creativeASIN=0470484284" jQuery1265820152483="6"&gt;Professional SQL Server 2008 Internals and Troubleshooting&lt;/A&gt;&amp;nbsp;- has written a series of posts related to his SQL MCM training preparation.&amp;nbsp; His posts to date&amp;nbsp;include:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A title=http://www.brentozar.com/archive/2010/02/mcm-prep-week-what-is-a-microsoft-certified-master/ href="http://www.brentozar.com/archive/2010/02/mcm-prep-week-what-is-a-microsoft-certified-master/" target=_blank mce_href="http://www.brentozar.com/archive/2010/02/mcm-prep-week-what-is-a-microsoft-certified-master/"&gt;What is a Microsoft Certified Master?&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://www.brentozar.com/archive/2010/02/mcm-prep-week-microsoft-exam-70-433-and-70-451/" target=_blank mce_href="http://www.brentozar.com/archive/2010/02/mcm-prep-week-microsoft-exam-70-433-and-70-451/"&gt;Microsoft Exams 70-433 and 70-451&lt;/A&gt; ("candid" feedback on one of our prerequisites for SQL MCM)&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://www.brentozar.com/archive/2010/02/mcm-prep-week-interview-with-joe-sack/" target=_blank mce_href="http://www.brentozar.com/archive/2010/02/mcm-prep-week-interview-with-joe-sack/"&gt;Interview with Joe Sack&lt;/A&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;I believe he has two more days of posts on this subject, so &lt;A title="SQL MCM" href="http://www.brentozar.com/archive/category/computers/microsoft-certified-master/" target=_blank mce_href="http://www.brentozar.com/archive/category/computers/microsoft-certified-master/"&gt;watch this space&lt;/A&gt; for additional observations and opinions about the SQL MCM program.&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9961315" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/JoeSacksSqlServerWeblog/~4/9QMm2tsNqT0" height="1" width="1"/&gt;</description><feedburner:origLink>http://blogs.msdn.com/b/joesack/archive/2010/02/10/sql-mcm-prep-week-posts-by-brent-ozar.aspx</feedburner:origLink></item><item><title>DBA 101: Collecting and Interpreting Failover Cluster Logs</title><link>http://feedproxy.google.com/~r/JoeSacksSqlServerWeblog/~3/djIEKuL-wzQ/dba-101-collecting-and-interpreting-failover-cluster-logs.aspx</link><pubDate>Tue, 09 Feb 2010 18:16:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9960643</guid><dc:creator>Joseph Sack</dc:creator><slash:comments>2</slash:comments><wfw:commentRss>http://blogs.msdn.com/b/joesack/rsscomments.aspx?WeblogPostID=9960643</wfw:commentRss><comments>http://blogs.msdn.com/b/joesack/archive/2010/02/09/dba-101-collecting-and-interpreting-failover-cluster-logs.aspx#comments</comments><description>&lt;P class=MsoNormal&gt;When an unexplained outage occurs on a standalone server and you need to determine root cause, DBAs usually start with the collection and analysis of the following “artifacts”:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;DIV class=MsoNormal&gt;Event Log (Application, System)&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV class=MsoNormal&gt;SQL Error Logs &lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV class=MsoNormal&gt;Perfmon stats during the timeframe of the outage (assumes collection either via counter log or another external tool like Ops Mgr)&lt;/DIV&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P class=MsoNormal&gt;If the outage was on a Failover Cluster, you’ll also want to grab the cluster log.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;How and where you retrieve the cluster log depends on the operating system:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;DIV class=MsoNormal&gt;For Windows Server 2003, you can find the cluster log under C:\Windows\Cluster (located under %systemroot%\cluster).&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV class=MsoNormal&gt;For Windows Server 2008, the overall method of event collection is via Event Tracing for Windows (ETW). &lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;The Windows Server 2003 “Cluster.log” no longer exists in Windows Server 2008.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Instead, cluster events are now logged to an Event Trace Session File (.etl format). &lt;/DIV&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P class=MsoListParagraphCxSpMiddle&gt;There are a few ways to capture Failover Cluster activity in Windows Server 2008 – but for the scope of this blog post, I’ll focus on how to generate a cluster log similar to what you may have seen in Windows Server 2003. The cluster log(s) can be generated by the CLUSTER.EXE command.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;For example:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P class=MsoListParagraphCxSpMiddle&gt;CLUSTER.EXE YourClusterName LOG /GEN /COPY:"C:\Temp\cluster.log"&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P class=MsoNormal&gt;The below figure shows an example of executing this command with administrator rights on one node of a two node Windows Server 2008 Failover Cluster:&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;A href="http://blogs.msdn.com/blogfiles/joesack/WindowsLiveWriter/DBA101CollectingandInterpretingFailoverC_ACB1/cluster%201_2.png" mce_href="http://blogs.msdn.com/blogfiles/joesack/WindowsLiveWriter/DBA101CollectingandInterpretingFailoverC_ACB1/cluster%201_2.png"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title="cluster 1" border=0 alt="cluster 1" src="http://blogs.msdn.com/blogfiles/joesack/WindowsLiveWriter/DBA101CollectingandInterpretingFailoverC_ACB1/cluster%201_thumb.png" width=455 height=128 mce_src="http://blogs.msdn.com/blogfiles/joesack/WindowsLiveWriter/DBA101CollectingandInterpretingFailoverC_ACB1/cluster%201_thumb.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P class=MsoNormal mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal&gt;Looking in the C:\Temp directory I see a new cluster.log folder and see two generated cluster log files (one file for each node):&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;A href="http://blogs.msdn.com/blogfiles/joesack/WindowsLiveWriter/DBA101CollectingandInterpretingFailoverC_ACB1/cluster%202_2.png" mce_href="http://blogs.msdn.com/blogfiles/joesack/WindowsLiveWriter/DBA101CollectingandInterpretingFailoverC_ACB1/cluster%202_2.png"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title="cluster 2" border=0 alt="cluster 2" src="http://blogs.msdn.com/blogfiles/joesack/WindowsLiveWriter/DBA101CollectingandInterpretingFailoverC_ACB1/cluster%202_thumb.png" width=455 height=162 mce_src="http://blogs.msdn.com/blogfiles/joesack/WindowsLiveWriter/DBA101CollectingandInterpretingFailoverC_ACB1/cluster%202_thumb.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P class=MsoNormal mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;I style="mso-bidi-font-style: normal"&gt;For a more detailed description of cluster log generation in Windows Server 2008, along with some logging command option details, check out “&lt;A href="http://blogs.msdn.com/clustering/archive/2008/09/24/8962934.aspx" mce_href="http://blogs.msdn.com/clustering/archive/2008/09/24/8962934.aspx"&gt;How to create the cluster.log in Windows Server 2008 Failover Clustering&lt;/A&gt;” by Steven Ekren, Senior Program Manager of Clustering &amp;amp; High Availability. 
&lt;P mce_keep="true"&gt;&lt;/I&gt;Opening up a cluster log for the first time, your impression may be that the log is both cryptic and verbose.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Similar to reading a SQL Error Log for the first time, your comfort level and ability will grow with experience and practice.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Here are a few tips to help start you out on getting the most out of your cluster log analysis:&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN-LEFT: 38pt; mso-list: l4 level1 lfo3; mso-add-space: auto" class=MsoListParagraphCxSpFirst&gt;&lt;SPAN style="FONT-FAMILY: symbol; mso-bidi-font-family: symbol; mso-fareast-font-family: symbol"&gt;&lt;SPAN style="mso-list: ignore"&gt;·&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;As with Windows event logs – you’ll want to narrow down the time period where the Failover Cluster issue or outage was thought to have occurred.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN-LEFT: 38pt; mso-list: l4 level1 lfo3; mso-add-space: auto" class=MsoListParagraphCxSpMiddle&gt;&lt;SPAN style="FONT-FAMILY: symbol; mso-bidi-font-family: symbol; mso-fareast-font-family: symbol"&gt;&lt;SPAN style="mso-list: ignore"&gt;·&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;Time is logged in GMT format.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Keep this in mind when narrowing down the time range of your Failover Cluster outage.&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN-LEFT: 38pt; mso-list: l4 level1 lfo3; mso-add-space: auto" class=MsoListParagraphCxSpMiddle&gt;&lt;SPAN style="FONT-FAMILY: symbol; mso-bidi-font-family: symbol; mso-fareast-font-family: symbol"&gt;&lt;SPAN style="mso-list: ignore"&gt;·&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;Beware of downstream error messages (more recent error messages from a specific event).&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Try to find the&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;I style="mso-bidi-font-style: normal"&gt; first&lt;/I&gt;&lt;/B&gt; occurrence of an error or warning that preceded the event.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;For example, if a disk resource became unavailable, you might see an initial error regarding the disk resource – followed by several other errors from cluster resources that are dependent on the offline disk resource.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Your task is to work your way back to the original event and not get thrown off track by downstream events (focus on cause – and not downstream effects).&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN-LEFT: 38pt; mso-list: l4 level1 lfo3; mso-add-space: auto" class=MsoListParagraphCxSpLast&gt;&lt;SPAN style="FONT-FAMILY: symbol; mso-bidi-font-family: symbol; mso-fareast-font-family: symbol"&gt;&lt;SPAN style="mso-list: ignore"&gt;·&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;The default cluster logging level is “3” on a possible range between 1 through 5 (5 being the most verbose and highest in overhead).&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Level 3 translates to a logging of &lt;B style="mso-bidi-font-weight: normal"&gt;errors&lt;/B&gt;, &lt;B style="mso-bidi-font-weight: normal"&gt;warnings&lt;/B&gt;, and &lt;B style="mso-bidi-font-weight: normal"&gt;info&lt;/B&gt; details.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;You can find your logging level on a Windows Server 2008 Failover Cluster log by searching for the text “cluster service logging level”.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;For example:&lt;/P&gt;
&lt;P style="TEXT-INDENT: 0.5in" class=MsoNormal&gt;00000ccc.0000ca4::2009/10/17-19:20:41.265 INFO&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;[CS] &lt;SPAN style="BACKGROUND: yellow; mso-highlight: yellow"&gt;cluster service logging level is 3&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN-LEFT: 38pt; mso-list: l5 level1 lfo4; mso-add-space: auto" class=MsoListParagraphCxSpFirst&gt;&lt;SPAN style="FONT-FAMILY: symbol; mso-bidi-font-family: symbol; mso-fareast-font-family: symbol"&gt;&lt;SPAN style="mso-list: ignore"&gt;·&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;Within the cluster log you’ll find the log entry category on each logged line after the GMT timestamp – showing INFO, WARN, and ERR.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Similar to a Windows application or system event log – your attention should be focused on WARN and ERR to start with.&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN-LEFT: 38pt; mso-list: l5 level1 lfo4; mso-add-space: auto" class=MsoListParagraphCxSpLast&gt;&lt;SPAN style="FONT-FAMILY: symbol; mso-bidi-font-family: symbol; mso-fareast-font-family: symbol"&gt;&lt;SPAN style="mso-list: ignore"&gt;·&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;If your issue has resulted in several node reboots– you may have lost the necessary data needed to determine root cause.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;A new ETL file is generated each time a node is rebooted and the cluster log history is kept (by default) for up to five reboots.&lt;/P&gt;
&lt;P class=MsoNormal&gt;Here is a full description of what you can expect to see in a single log entry.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;The format is the same across entries – and I’ll deconstruct a single color-coded log event entry below:&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="BACKGROUND: yellow; mso-highlight: yellow"&gt;00000df4&lt;/SPAN&gt;.&lt;SPAN style="BACKGROUND: lime; mso-highlight: lime"&gt;00000c04&lt;/SPAN&gt;::&lt;SPAN style="BACKGROUND: red; mso-highlight: red"&gt;2009/10/17-19:20:47.093&lt;/SPAN&gt; &lt;SPAN style="BACKGROUND: fuchsia; mso-highlight: fuchsia"&gt;ERR&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="BACKGROUND: silver; mso-highlight: silver"&gt;[RHS]&lt;/SPAN&gt; &lt;SPAN style="BACKGROUND: aqua; mso-highlight: aqua"&gt;RhsCall::Perform_NativeEH: ERROR_MOD_NOT_FOUND(126)' because of 'Unable to load resource DLL mqclus.dll.&lt;/SPAN&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;DIV class=MsoNormal&gt;&lt;SPAN style="BACKGROUND: aqua; mso-highlight: aqua"&gt;&lt;/SPAN&gt;&lt;SPAN style="BACKGROUND: yellow; mso-highlight: yellow"&gt;00000df4&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;Hex format of the PID that logged the process.&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV class=MsoNormal&gt;&lt;SPAN style="BACKGROUND: lime; mso-highlight: lime"&gt;00000c04&amp;nbsp; &lt;/SPAN&gt;Hex thread ID of the thread that logged the entry.&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV class=MsoNormal&gt;&lt;SPAN style="BACKGROUND: red; mso-highlight: red"&gt;2009/10/17-19:20:47.093&amp;nbsp; &lt;/SPAN&gt;Date and timestamp in GMT format&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV class=MsoNormal&gt;&lt;SPAN style="BACKGROUND: fuchsia; mso-highlight: fuchsia"&gt;ERR&amp;nbsp; &lt;/SPAN&gt;Entry type (informational (INFO), warning (WARN), or error(ERR))&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV class=MsoNormal&gt;&lt;SPAN style="BACKGROUND: silver; mso-highlight: silver"&gt;[RHS] &lt;/SPAN&gt;Component or Resource DLL identifier. In this example, RHS represents the Resource Host &lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;Subsystem which hosts all resources in the Failover Cluster (via rhs.exe executable).&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Other common components you’ll see in the log include the [NM] Network Manager, [RES] Resource DLL logging, [IM] Interface Manager, [GUM] Global Update Manager and more.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;From a practical standpoint, interpreting these various codes assumes a deeper understanding of the underlying Windows Failover Clustering architecture.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Don’t worry too much if you do not have this background - the error message found after this identifier will likely be more helpful to you.&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: symbol; BACKGROUND: aqua; mso-bidi-font-family: symbol; mso-fareast-font-family: symbol; mso-highlight: aqua"&gt;&lt;SPAN style="mso-list: ignore"&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="BACKGROUND: aqua; mso-highlight: aqua"&gt;RhsCall::Perform_NativeEH: ERROR_MOD_NOT_FOUND(126)' because of 'Unable to load resource DLL mqclus.dll.&amp;nbsp; &lt;/SPAN&gt;Event description / error message.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Can vary significantly, and is your top “pointer” to&amp;nbsp;what was happening at the specific moment in time of your outage or event.&lt;/DIV&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P class=MsoNormal&gt;I’ll end this blog post with a summarized list of cluster log evaluation tactics:&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN-LEFT: 38pt; mso-list: l3 level1 lfo6; mso-add-space: auto" class=MsoListParagraphCxSpFirst&gt;&lt;SPAN style="mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;SPAN style="mso-list: ignore"&gt;1.&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;Focus on the time range of the outage or issue.&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN-LEFT: 38pt; mso-list: l3 level1 lfo6; mso-add-space: auto" class=MsoListParagraphCxSpMiddle&gt;&lt;SPAN style="mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;SPAN style="mso-list: ignore"&gt;2.&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;Windows Application and System event logs can add useful information in conjunction with the cluster log.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN-LEFT: 38pt; mso-list: l3 level1 lfo6; mso-add-space: auto" class=MsoListParagraphCxSpMiddle&gt;&lt;SPAN style="mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;SPAN style="mso-list: ignore"&gt;3.&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;Focus on ERR and WARN entry types&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN-LEFT: 38pt; mso-list: l3 level1 lfo6; mso-add-space: auto" class=MsoListParagraphCxSpMiddle&gt;&lt;SPAN style="mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;SPAN style="mso-list: ignore"&gt;4.&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;Sometimes the error messages are intuitively written and can point you in the right direction.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;You may not find the root cause directly – but the log can point you in the right direction.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;When not intuitive – see the next step.&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN-LEFT: 38pt; mso-list: l3 level1 lfo6; mso-add-space: auto" class=MsoListParagraphCxSpLast&gt;&lt;SPAN style="mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;SPAN style="mso-list: ignore"&gt;5.&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;Pattern match on captured error messages using Microsoft KB articles or other preferred forums.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;If you have purchase Microsoft support, the engineer will most certainly want to see the cluster log you have collected.&lt;/P&gt;
&lt;P class=MsoNormal&gt;That’s all for today. Happy cluster log surfing!&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9960643" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/JoeSacksSqlServerWeblog/~4/djIEKuL-wzQ" height="1" width="1"/&gt;</description><feedburner:origLink>http://blogs.msdn.com/b/joesack/archive/2010/02/09/dba-101-collecting-and-interpreting-failover-cluster-logs.aspx</feedburner:origLink></item><item><title>Why run the SQL MCM marathon?</title><link>http://feedproxy.google.com/~r/JoeSacksSqlServerWeblog/~3/SjdlyldpnwY/why-run-the-sql-mcm-marathon.aspx</link><pubDate>Thu, 21 Jan 2010 16:04:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9951481</guid><dc:creator>Joseph Sack</dc:creator><slash:comments>2</slash:comments><wfw:commentRss>http://blogs.msdn.com/b/joesack/rsscomments.aspx?WeblogPostID=9951481</wfw:commentRss><comments>http://blogs.msdn.com/b/joesack/archive/2010/01/21/why-run-the-sql-mcm-marathon.aspx#comments</comments><description>&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;FONT face=Calibri&gt;&lt;FONT size=3&gt;I’ve been a casual jogger for about 14 years, and lately I’ve been debating whether or not I should get serious and sign up for a marathon.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;In order to make my decision (still pending) I generated a list of some pros and cons.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;During that process I realized some of my concerns sounded &lt;I style="mso-bidi-font-style: normal"&gt;very&lt;/I&gt; familiar to what I’ve heard from potential SQL MCM candidates I’ve spoken to in the past.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;For example, marathons can be grueling, painful, humiliating, aggravating and risky.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Marathons demand planning, preparation, and practice.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;After all of your training and preparation – you’re still subject to variables outside of your control (weather conditions, your health, and terrain). &lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;FONT face=Calibri&gt;&lt;FONT size=3&gt;In spite of these risks and challenges – people still run marathons.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Motivating factors vary.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;You could be running for your favorite charity, trying to lose some weight, get fit, or celebrate your recovery from an illness. &lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;A few of my friends run marathons just because &lt;I style="mso-bidi-font-style: normal"&gt;they can&lt;/I&gt;.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Basically they are motivated by the achievement itself – the “I did this” factor.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;I realize too that like marathons, the SQL MCM program involves several risks and challenges.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;There are plenty of “uncertified Masters” out in the field that may never pursue this certification due to any one of the following reasons:&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.5in; mso-list: l0 level1 lfo1" class=MsoListParagraphCxSpFirst&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;FONT face=Calibri&gt;&lt;FONT size=3&gt;It is expensive.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 1in; mso-list: l0 level2 lfo1; mso-add-space: auto" class=MsoListParagraphCxSpMiddle&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; mso-fareast-font-family: 'Courier New'"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;o&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;I style="mso-bidi-font-style: normal"&gt;&lt;FONT face=Calibri&gt;&lt;FONT size=3&gt;Why so expensive? &lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;Some of the cost is due to operational and infrastructure overhead (lab equipment, rooms, content, planning, exam retakes, admin time, community management) and also because we get some of the top SQL trainers in the world to spend three weeks with our candidates – trainers such as Paul Randal, Kimberly Tripp, Adam Machanic, and Greg Low.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;There are also “opportunity costs” – the money you will not make when you’re attending the training (but ideally your certification will help bolster your earning potential on the back end).&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;There are also travel costs – as the training is conducted on the Microsoft, Redmond campus.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/I&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt 0.5in" class=MsoListParagraphCxSpMiddle&gt;&lt;o:p&gt;&lt;FONT size=3 face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.5in; mso-list: l0 level1 lfo1" class=MsoListParagraphCxSpMiddle&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri&gt;&lt;FONT size=3&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;It is time consuming.&lt;/B&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 1in; mso-list: l0 level2 lfo1; mso-add-space: auto" class=MsoListParagraphCxSpMiddle&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; mso-fareast-font-family: 'Courier New'"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;o&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;I style="mso-bidi-font-style: normal"&gt;&lt;FONT face=Calibri&gt;&lt;FONT size=3&gt;Why is the training three weeks long? &lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;The timeframe is mostly defined by the vast amount of information that must be covered.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;We experimented with four weeks – but that was just too long (early rotations ran for four weeks).&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Two weeks is too short to contain the required material.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Having one contiguous block of time also builds the “esprit de corps” – ideally leaving you with colleagues you can keep in touch with for years to come. &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/I&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt 0.5in" class=MsoListParagraphCxSpMiddle&gt;&lt;o:p&gt;&lt;FONT size=3 face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.5in; mso-list: l0 level1 lfo1" class=MsoListParagraphCxSpMiddle&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri&gt;&lt;FONT size=3&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;It is hard.&lt;/B&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 10pt 1in; mso-list: l0 level2 lfo1; mso-add-space: auto" class=MsoListParagraphCxSpLast&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; mso-fareast-font-family: 'Courier New'"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;o&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;I style="mso-bidi-font-style: normal"&gt;&lt;FONT face=Calibri&gt;&lt;FONT size=3&gt;Why so hard?&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Successful candidates must pass three exams and one six hour qualification lab. This is the most advanced technical certification available at Microsoft – and we’re looking to validate and certify SQL Server professionals who can successfully design, deploy and implement solutions that meet the most complex business requirements.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;We go deep on the product – and then expect you to come up for air and really understand how all the parts fit together.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/I&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;FONT face=Calibri&gt;&lt;FONT size=3&gt;So with all of these challenges – why would one “run” in the SQL MCM marathon?&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;There are several benefits I can think of – but for now I’ll boil it down to three benefits that I personally think are most important:&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.5in; mso-list: l1 level1 lfo2" class=MsoListParagraphCxSpFirst&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;FONT face=Calibri&gt;&lt;FONT size=3&gt;The Experience&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 1in; mso-list: l1 level2 lfo2; mso-add-space: auto" class=MsoListParagraphCxSpMiddle&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; mso-fareast-font-family: 'Courier New'"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;o&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;I style="mso-bidi-font-style: normal"&gt;&lt;FONT face=Calibri&gt;&lt;FONT size=3&gt;Three weeks of incredible training. When else would you get an excuse to completely submerge yourself in deep technical content for an extended period of time, in the heart of the Microsoft campus, surrounded with likeminded individuals?&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/I&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt 1in; mso-add-space: auto" class=MsoListParagraphCxSpMiddle&gt;&lt;I style="mso-bidi-font-style: normal"&gt;&lt;o:p&gt;&lt;FONT size=3 face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/I&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.5in; mso-list: l1 level1 lfo2" class=MsoListParagraphCxSpMiddle&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;FONT face=Calibri&gt;&lt;FONT size=3&gt;The People&lt;I style="mso-bidi-font-style: normal"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/I&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 1in; mso-list: l1 level2 lfo2; mso-add-space: auto" class=MsoListParagraphCxSpMiddle&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; mso-fareast-font-family: 'Courier New'"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;o&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;I style="mso-bidi-font-style: normal"&gt;&lt;FONT face=Calibri&gt;&lt;FONT size=3&gt;The networking opportunities and community building is absolutely incredible.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;You’ll meet new friends, amazing trainers, and exposure to Microsoft product and dev team members.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/I&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt 1in; mso-add-space: auto" class=MsoListParagraphCxSpMiddle&gt;&lt;I style="mso-bidi-font-style: normal"&gt;&lt;o:p&gt;&lt;FONT size=3 face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/I&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.5in; mso-list: l1 level1 lfo2" class=MsoListParagraphCxSpMiddle&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;FONT face=Calibri&gt;&lt;FONT size=3&gt;The Validation&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 10pt 1in; mso-list: l1 level2 lfo2; mso-add-space: auto" class=MsoListParagraphCxSpLast&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; mso-fareast-font-family: 'Courier New'"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;o&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;I style="mso-bidi-font-style: normal"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Achieving SQL MCM means that you’ve successfully made it through an extraordinary challenge.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;You’ve entered a small community (66 people as of January 21, 2010) that you can go to for support and advice. Most importantly, this certification will allow you to distinguish yourself in today’s job market.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/I&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;So if you’re considering the SQL MCM challenge – be sure to explicitly define which factors will motivate you to cross the finish line. The ongoing value of this certification will continue to evolve – but earning this certification is an achievement that you can always be proud of and is one that can never be taken away from you.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9951481" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/JoeSacksSqlServerWeblog/~4/SjdlyldpnwY" height="1" width="1"/&gt;</description><feedburner:origLink>http://blogs.msdn.com/b/joesack/archive/2010/01/21/why-run-the-sql-mcm-marathon.aspx</feedburner:origLink></item><item><title>Gaps in Database ID sequence – one reason why this can happen</title><link>http://feedproxy.google.com/~r/JoeSacksSqlServerWeblog/~3/ZePdxrDX6X4/gaps-in-database-id-sequence-one-reason-why-this-can-happen.aspx</link><pubDate>Mon, 28 Dec 2009 18:51:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9941661</guid><dc:creator>Joseph Sack</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://blogs.msdn.com/b/joesack/rsscomments.aspx?WeblogPostID=9941661</wfw:commentRss><comments>http://blogs.msdn.com/b/joesack/archive/2009/12/28/gaps-in-database-id-sequence-one-reason-why-this-can-happen.aspx#comments</comments><description>&lt;FONT size=3 face=Calibri&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;SPAN style="FONT-SIZE: 10pt; mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-fareast-font-family: 'Times New Roman'"&gt;I spoke with a DBA today about the following scenario… When running DBCC CHECKDB in SQL Server 2005, he noticed that there were no entries for the hidden database snapshot in sys.databases; however he did see that a database_id&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;value was shown when querying sys.dm_exec_requests (for the request running the DBCC command - &lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes; mso-fareast-font-family: 'Times New Roman'"&gt;WHERE&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-no-proof: yes; mso-fareast-font-family: 'Times New Roman'"&gt; command &lt;SPAN style="COLOR: gray"&gt;=&lt;/SPAN&gt; &lt;SPAN style="COLOR: red"&gt;'DBCC TABLE CHECK'&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-fareast-font-family: 'Times New Roman'"&gt;).&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;For that request, the database_id had a value of “9” – which was N+1 of the maximum database value (where N = the maximum database_id in sys.databases).&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;SPAN style="FONT-SIZE: 10pt; mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-fareast-font-family: 'Times New Roman'"&gt;His question to me then was – &lt;I style="mso-bidi-font-style: normal"&gt;what happens if he creates a new database while the DBCC CHECKDB is still executing&lt;/I&gt;?&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Will it try to use the hidden value of “9”?&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Will it error out?&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Will it use a higher number?&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;SPAN style="FONT-SIZE: 10pt; mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-fareast-font-family: 'Times New Roman'"&gt;I ran a quick test against AdventureWorks2008 and confirmed that indeed – the hidden snapshot database is &lt;I style="mso-bidi-font-style: normal"&gt;not &lt;/I&gt;visible in sys.databases.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;I also confirmed that sys.dm_exec_requests shows a higher value for database_id based on the maximum database_id currently in use (so N+1).&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;SPAN style="FONT-SIZE: 10pt; mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-fareast-font-family: 'Times New Roman'"&gt;Lastly, I created a new database concurrently with a DBCC CHECKDB, and sure enough – the resulting database_id was N+2 (or N+1 if you count the hidden snapshot).&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Specifically, my maximum database id was for AdventureWorks2008, and had a database_id value of “8”.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;A value of “9” was used for the DBCC CHECKDB hidden snapshot.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;A value of “10” was then used for my new database.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-SIZE: 10pt; mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"&gt;So if you ever see gaps in the sequence of database ids, this is one reason why this could happen.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;As a side note – he also asked if this could cause problems if an application depended on a specific database id.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;My reply was that an application should not be written to depend on a specific id.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Such hard-coding and dependencies will surely cause issues down the road (for example, if you ever plan on migrating your database to a new SQL Server instance with a differing number of databases and IDs).&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/FONT&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9941661" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/JoeSacksSqlServerWeblog/~4/ZePdxrDX6X4" height="1" width="1"/&gt;</description><feedburner:origLink>http://blogs.msdn.com/b/joesack/archive/2009/12/28/gaps-in-database-id-sequence-one-reason-why-this-can-happen.aspx</feedburner:origLink></item><item><title>Updated SQL 2008 MCM Pre-reading list</title><link>http://feedproxy.google.com/~r/JoeSacksSqlServerWeblog/~3/fxvdbM8e-ac/updated-sql-2008-mcm-pre-reading-list.aspx</link><pubDate>Mon, 07 Dec 2009 22:55:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9933772</guid><dc:creator>Joseph Sack</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://blogs.msdn.com/b/joesack/rsscomments.aspx?WeblogPostID=9933772</wfw:commentRss><comments>http://blogs.msdn.com/b/joesack/archive/2009/12/07/updated-sql-2008-mcm-pre-reading-list.aspx#comments</comments><description>&lt;P&gt;&lt;SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt"&gt;David Ikeda and I have updated the &lt;A href="https://dynamicevents.emeetingsonline.com/emeetings/dynamicevents/290/MCM_SQL2008_Pre-reading_v3.pdf" target=_blank mce_href="https://dynamicevents.emeetingsonline.com/emeetings/dynamicevents/290/MCM_SQL2008_Pre-reading_v3.pdf"&gt;SQL Server 2008 MCM Pre-reading&lt;/A&gt; list based on the last training rotation we conducted last October.&amp;nbsp; You can download the &lt;A href="https://dynamicevents.emeetingsonline.com/emeetings/dynamicevents/290/MCM_SQL2008_Pre-reading_v3.pdf" target=_blank mce_href="https://dynamicevents.emeetingsonline.com/emeetings/dynamicevents/290/MCM_SQL2008_Pre-reading_v3.pdf"&gt;PDF here.&lt;/A&gt;&amp;nbsp; &lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt"&gt;As a seasoned SQL Server professional, ideally you'll already have read some, if not &lt;I style="mso-bidi-font-style: normal"&gt;most&lt;/I&gt; of the material listed in this document.&amp;nbsp; If not, you'll find that there is quite a bit of material you’ll need to read.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Nonetheless I strongly recommend that anyone planning on attending the SQL MCM program review all of the material.&amp;nbsp; Doing so will help prepare you for the three week whirlwind of information and testing.&amp;nbsp; &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt"&gt;** Also as a tip - we've noticed (and heard from previous rotations) that students tend to avoid pre-reading material&amp;nbsp;for the XML, SQL Client, SQL CLR, and Service Broker topics.&amp;nbsp;My recommendation is to &lt;I style="mso-bidi-font-style: normal"&gt;not &lt;/I&gt;avoid reviewing this material.&amp;nbsp;If this is not your comfort area, I suggest you hit these topics first, and make sure you have reviewed it thoroughly prior to training.&amp;nbsp; If you do, you'll thank us once Week 2 of the training rolls around... **&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9933772" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/JoeSacksSqlServerWeblog/~4/fxvdbM8e-ac" height="1" width="1"/&gt;</description><feedburner:origLink>http://blogs.msdn.com/b/joesack/archive/2009/12/07/updated-sql-2008-mcm-pre-reading-list.aspx</feedburner:origLink></item></channel></rss>
