<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://sqlblog.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Kalen Delaney</title><link>http://sqlblog.com/blogs/kalen_delaney/default.aspx</link><description /><dc:language>en</dc:language><generator>CommunityServer 2.1 SP2 (Build: 61129.1)</generator><item><title>Geek City: Three New Whitepapers</title><link>http://sqlblog.com/blogs/kalen_delaney/archive/2009/06/13/three-new-whitepapers.aspx</link><pubDate>Sat, 13 Jun 2009 14:49:00 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:14630</guid><dc:creator>Kalen Delaney</dc:creator><slash:comments>0</slash:comments><comments>http://sqlblog.com/blogs/kalen_delaney/comments/14630.aspx</comments><wfw:commentRss>http://sqlblog.com/blogs/kalen_delaney/commentrss.aspx?PostID=14630</wfw:commentRss><description>&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Microsoft has just published 3 new SQL Server 2008 Whitepapers, two of which were authored by SQLBloggers, right here at SQLBlog.com.&amp;nbsp; Ok, I'll admit .... one of the authors is ME. :-)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;STRONG&gt;SQL Server 2008 Management Data Warehouse&lt;/STRONG&gt;&lt;/FONT&gt; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;A href="http://msdn.microsoft.com/en-us/library/dd939169.aspx"&gt;http://msdn.microsoft.com/en-us/library/dd939169.aspx&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;STRONG&gt;SQL Server 2008 Policy-Based Management&lt;/STRONG&gt;&lt;/FONT&gt; &lt;/P&gt;
&lt;P&gt;&lt;A href="http://msdn.microsoft.com/en-us/library/dd938891.aspx"&gt;http://msdn.microsoft.com/en-us/library/dd938891.aspx&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;STRONG&gt;Understanding and Using PowerShell Support in SQL Server 2008&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://msdn.microsoft.com/en-us/library/dd938892.aspx"&gt;http://msdn.microsoft.com/en-us/library/dd938892.aspx&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Enjoy!&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#ff00ff size=4&gt;~Kalen&lt;/FONT&gt;&lt;/P&gt;
&lt;BR&gt;&lt;div class = "shareblock"&gt;&lt;span class = "shareblockTitle"&gt;Share this post:&lt;/span&gt;&lt;span class = "shareblockLink"&gt; &lt;a href = "mailto:?subject=Geek City: Three New Whitepapers&amp;amp;body=Seen on SQLblog.com: %0A%0A%09Geek City: Three New Whitepapers%0A%0Ahttp://sqlblog.com/blogs/kalen_delaney/archive/2009/06/13/three-new-whitepapers.aspx" target="_blank" title = "Email Geek City: Three New Whitepapers"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://sqlblog.com/blogs/kalen_delaney/archive/2009/06/13/three-new-whitepapers.aspx&amp;amp;title=Geek+City%3a+Three+New+Whitepapers" target="_blank" title = "Submit Geek City: Three New Whitepapers to del.icio.us"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://sqlblog.com/blogs/kalen_delaney/archive/2009/06/13/three-new-whitepapers.aspx&amp;amp;phase=2" target="_blank" title = "Submit Geek City: Three New Whitepapers to digg.com"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://sqlblog.com/blogs/kalen_delaney/archive/2009/06/13/three-new-whitepapers.aspx&amp;amp;title=Geek+City%3a+Three+New+Whitepapers" target="_blank" title = "Submit Geek City: Three New Whitepapers to reddit.com"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://sqlblog.com/blogs/kalen_delaney/archive/2009/06/13/three-new-whitepapers.aspx&amp;amp;title=Geek+City%3a+Three+New+Whitepapers" target="_blank" title = "Submit Geek City: Three New Whitepapers to DotNetKicks"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://sqlblog.com/blogs/kalen_delaney/archive/2009/06/13/three-new-whitepapers.aspx&amp;amp;title=Geek+City%3a+Three+New+Whitepapers&amp;amp;;top=1" target="_blank" title = "Add Geek City: Three New Whitepapers to Live Bookmarks"&gt;live it!&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;img src="http://info.sqlblog.com/a.aspx?ZoneID=0&amp;BannerID=12&amp;AdvertiserID=1&amp;CampaignID=12&amp;Task=Get&amp;Mode=TEXT&amp;SiteID=1&amp;RandomNumber=463323" width="1" height="1" border="0"&gt;&lt;img src="http://sqlblog.com/aggbug.aspx?PostID=14630" width="1" height="1"&gt;</description><category domain="http://sqlblog.com/blogs/kalen_delaney/archive/tags/whitepapers/default.aspx">whitepapers</category></item><item><title>Did You Know? I'll be teaching a public course in Boston!</title><link>http://sqlblog.com/blogs/kalen_delaney/archive/2009/05/19/public-course-in-boston.aspx</link><pubDate>Tue, 19 May 2009 18:25:00 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:14159</guid><dc:creator>Kalen Delaney</dc:creator><slash:comments>2</slash:comments><comments>http://sqlblog.com/blogs/kalen_delaney/comments/14159.aspx</comments><wfw:commentRss>http://sqlblog.com/blogs/kalen_delaney/commentrss.aspx?PostID=14159</wfw:commentRss><description>&lt;P&gt;I receive a lot of requests for classes on the East Coast, and I am very pleased to announce my first new public training partner in the US in more than 5 years! Since I am drastically cutting back on my travel, this will probably be my last new public training partner.&amp;nbsp; I am excited to be able to offer my &lt;A href="http://bostonsqltraining.com/course.aspx" target=_blank&gt;SQL Server 2005/2008 Internals and Tuning class&lt;/A&gt; in conjunction with SQLBlog's own Adam Machanic at &lt;A href="http://bostonsqltraining.com/default.aspx" target=_blank&gt;Boston SQL Server Training&lt;/A&gt;. &lt;/P&gt;
&lt;P&gt;You can find the course description and registration information at the &lt;A href="http://bostonsqltraining.com/default.aspx" target=_blank&gt;Boston SQL Server Training site&lt;/A&gt;. &lt;/P&gt;
&lt;P&gt;I appreciate this opportunity to teach in New England and hopefully many of you who have been asking for me to come to your side of the country will be able to attend.&lt;/P&gt;
&lt;P&gt;Thanks&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#ff00ff size=4&gt;~Kalen&lt;/FONT&gt;&lt;/P&gt;
&lt;BR&gt;&lt;div class = "shareblock"&gt;&lt;span class = "shareblockTitle"&gt;Share this post:&lt;/span&gt;&lt;span class = "shareblockLink"&gt; &lt;a href = "mailto:?subject=Did You Know? I'll be teaching a public course in Boston!&amp;amp;body=Seen on SQLblog.com: %0A%0A%09Did You Know? I'll be teaching a public course in Boston!%0A%0Ahttp://sqlblog.com/blogs/kalen_delaney/archive/2009/05/19/public-course-in-boston.aspx" target="_blank" title = "Email Did You Know? I'll be teaching a public course in Boston!"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://sqlblog.com/blogs/kalen_delaney/archive/2009/05/19/public-course-in-boston.aspx&amp;amp;title=Did+You+Know%3f+I%27ll+be+teaching+a+public+course+in+Boston!" target="_blank" title = "Submit Did You Know? I'll be teaching a public course in Boston! to del.icio.us"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://sqlblog.com/blogs/kalen_delaney/archive/2009/05/19/public-course-in-boston.aspx&amp;amp;phase=2" target="_blank" title = "Submit Did You Know? I'll be teaching a public course in Boston! to digg.com"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://sqlblog.com/blogs/kalen_delaney/archive/2009/05/19/public-course-in-boston.aspx&amp;amp;title=Did+You+Know%3f+I%27ll+be+teaching+a+public+course+in+Boston!" target="_blank" title = "Submit Did You Know? I'll be teaching a public course in Boston! to reddit.com"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://sqlblog.com/blogs/kalen_delaney/archive/2009/05/19/public-course-in-boston.aspx&amp;amp;title=Did+You+Know%3f+I%27ll+be+teaching+a+public+course+in+Boston!" target="_blank" title = "Submit Did You Know? I'll be teaching a public course in Boston! to DotNetKicks"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://sqlblog.com/blogs/kalen_delaney/archive/2009/05/19/public-course-in-boston.aspx&amp;amp;title=Did+You+Know%3f+I%27ll+be+teaching+a+public+course+in+Boston!&amp;amp;;top=1" target="_blank" title = "Add Did You Know? I'll be teaching a public course in Boston! to Live Bookmarks"&gt;live it!&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;img src="http://info.sqlblog.com/a.aspx?ZoneID=0&amp;BannerID=12&amp;AdvertiserID=1&amp;CampaignID=12&amp;Task=Get&amp;Mode=TEXT&amp;SiteID=1&amp;RandomNumber=463323" width="1" height="1" border="0"&gt;&lt;img src="http://sqlblog.com/aggbug.aspx?PostID=14159" width="1" height="1"&gt;</description><category domain="http://sqlblog.com/blogs/kalen_delaney/archive/tags/internals/default.aspx">internals</category><category domain="http://sqlblog.com/blogs/kalen_delaney/archive/tags/training/default.aspx">training</category></item><item><title>Did You Know? I'll be at TechEd!</title><link>http://sqlblog.com/blogs/kalen_delaney/archive/2009/05/08/teched.aspx</link><pubDate>Fri, 08 May 2009 17:23:00 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:13901</guid><dc:creator>Kalen Delaney</dc:creator><slash:comments>0</slash:comments><comments>http://sqlblog.com/blogs/kalen_delaney/comments/13901.aspx</comments><wfw:commentRss>http://sqlblog.com/blogs/kalen_delaney/commentrss.aspx?PostID=13901</wfw:commentRss><description>&lt;P&gt;I'm delivering a session on Tuesday morning (May 12) called "Controlling Your Query Plans", and for most of the rest of Tuesday, Wednesday and Thursday I'll be at the ATE (Ask the Experts) Area. Feel free to stop by!&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;IMG title=TENA_blgr2_mvps height=133 alt=TENA_blgr2_mvps src="http://blogs.msdn.com/blogfiles/mvpawardprogram/WindowsLiveWriter/RealWorldPerspectivesontheProsandConsofS_BA39/TENA_blgr2_mvps_thumb.jpg" width=115 align=right border=0&gt;&lt;FONT color=#ff00ff size=4&gt;~Kalen&lt;/FONT&gt;&lt;/P&gt;
&lt;BR&gt;&lt;div class = "shareblock"&gt;&lt;span class = "shareblockTitle"&gt;Share this post:&lt;/span&gt;&lt;span class = "shareblockLink"&gt; &lt;a href = "mailto:?subject=Did You Know? I'll be at TechEd!&amp;amp;body=Seen on SQLblog.com: %0A%0A%09Did You Know? I'll be at TechEd!%0A%0Ahttp://sqlblog.com/blogs/kalen_delaney/archive/2009/05/08/teched.aspx" target="_blank" title = "Email Did You Know? I'll be at TechEd!"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://sqlblog.com/blogs/kalen_delaney/archive/2009/05/08/teched.aspx&amp;amp;title=Did+You+Know%3f+I%27ll+be+at+TechEd!" target="_blank" title = "Submit Did You Know? I'll be at TechEd! to del.icio.us"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://sqlblog.com/blogs/kalen_delaney/archive/2009/05/08/teched.aspx&amp;amp;phase=2" target="_blank" title = "Submit Did You Know? I'll be at TechEd! to digg.com"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://sqlblog.com/blogs/kalen_delaney/archive/2009/05/08/teched.aspx&amp;amp;title=Did+You+Know%3f+I%27ll+be+at+TechEd!" target="_blank" title = "Submit Did You Know? I'll be at TechEd! to reddit.com"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://sqlblog.com/blogs/kalen_delaney/archive/2009/05/08/teched.aspx&amp;amp;title=Did+You+Know%3f+I%27ll+be+at+TechEd!" target="_blank" title = "Submit Did You Know? I'll be at TechEd! to DotNetKicks"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://sqlblog.com/blogs/kalen_delaney/archive/2009/05/08/teched.aspx&amp;amp;title=Did+You+Know%3f+I%27ll+be+at+TechEd!&amp;amp;;top=1" target="_blank" title = "Add Did You Know? I'll be at TechEd! to Live Bookmarks"&gt;live it!&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;img src="http://info.sqlblog.com/a.aspx?ZoneID=0&amp;BannerID=12&amp;AdvertiserID=1&amp;CampaignID=12&amp;Task=Get&amp;Mode=TEXT&amp;SiteID=1&amp;RandomNumber=463323" width="1" height="1" border="0"&gt;&lt;img src="http://sqlblog.com/aggbug.aspx?PostID=13901" width="1" height="1"&gt;</description><category domain="http://sqlblog.com/blogs/kalen_delaney/archive/tags/plan+guides/default.aspx">plan guides</category><category domain="http://sqlblog.com/blogs/kalen_delaney/archive/tags/conference/default.aspx">conference</category><category domain="http://sqlblog.com/blogs/kalen_delaney/archive/tags/TechEd/default.aspx">TechEd</category><category domain="http://sqlblog.com/blogs/kalen_delaney/archive/tags/query+plans/default.aspx">query plans</category></item><item><title>Geek City: Controlling Lock Granularity</title><link>http://sqlblog.com/blogs/kalen_delaney/archive/2009/05/03/controlling-lock-granularity.aspx</link><pubDate>Sun, 03 May 2009 12:51:00 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:13729</guid><dc:creator>Kalen Delaney</dc:creator><slash:comments>7</slash:comments><comments>http://sqlblog.com/blogs/kalen_delaney/comments/13729.aspx</comments><wfw:commentRss>http://sqlblog.com/blogs/kalen_delaney/commentrss.aspx?PostID=13729</wfw:commentRss><description>&lt;P&gt;In all versions of SQL Server since 7.0, the engine could choose to lock rows, pages or the entire table. In addition, even if it starts out your query execution by obtaining row or page locks, if too many locks are acquired, SQL Server could escalate to a table lock.&amp;nbsp; Each lock uses memory, so when escalation replaces the thousands of fine-grained locks with one table lock, there can be substantial resource savings. On the other hand, once a table is exclusively locked, no other processes can access any data at all from it, which drastically reduces concurrency. &lt;/P&gt;
&lt;P&gt;Way back in SQL Server 6/6.5, we had some controls over what percentage of a table had to be locked in order to induce escalation. These controls were implemented as configuration options but they were removed in SQL 7. So what controls do we have now? &lt;/P&gt;
&lt;P&gt;Lock escalation occurs in the following situations (taken from "SQL Server 2008 Internals", MS Press 2009): &lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;The number of locks held by a single statement on one object, or on one partition of one object, exceeds a threshold. Currently that threshold is 5000 locks, but it might change in future service packs. The lock escalation will not occur if the locks are spread over multiple objects in the same statement—for example, 3000 locks in one index and 3000 in another. &lt;FONT size=1&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Memory taken by lock resources exceeds 40 percent of the non-AWE (32-bit) or regular (64-bit) enabled memory and the locks configuration option is set to 0. (In this case, the lock memory is allocated dynamically as needed, so the 40 percent value is not a constant.) If the locks option is set to a non-zero value, memory reserved for locks is statically allocated when SQL Server starts. Escalation will occur when SQL Server is using more than 40 percent of the reserved lock memory for lock resources. &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Most of the discussion of escalation that I have seen indicates that people want to prevent escalation, to maximize access to the data. One way to do this is to enable trace flag 1211 on your instance, which prevents lock escalation from occurring under any circumstances. You need to be really careful with this one, because it affects every table in every database on the instance. Another option is to trick SQL Server into thinking the table is in use, because if there is even one row locked by a different connection, escalation cannot occur. So you could add a dummy row to your table and start a process that starts a transaction, updates the dummy rows, and then keeps the transaction open. Although this can keep anyone from acquiring a table lock, this method has its own nasty side-effects. Namely, as long as the transaction is open, the log cannot truncated past that point. But if you can synchronize it with the operation updating the table, and make sure this dummy update gets closed as soon as the 'real' update finishes, you might be ok.&lt;/P&gt;
&lt;P&gt;SQL Server 2008 provides us with a bit more control, with a new option to ALTER TABLE:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;FONT face=Consolas color=#000080 size=1&gt;ALTER TABLE &amp;lt;table_name&amp;gt;&lt;BR&gt;SET (LOCK_ESCALATION = [TABLE | AUTO |DISABLE]);&lt;/FONT&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;The default is escalation is TABLE, and that was the only possibility for escalation prior to SQL 2008. If you set the option to AUTO, locks can escalate to a table or to a partition, if the table is partitioned. The third option is to completely disable escalation for this table. This option is much more manageable that my trick of having another transaction lock a single row, and much more fine-grained that disallowing escalation on the entire instance. 
&lt;P&gt;But what if you want the opposite behavior? What if you always want to take table locks in order to conserve resources? Yes, there are lock hints available to request TABLOCK or TABLOCKX, but those must be specified in every query. What if there are only a few tables that you want to always lock at the table level. 
&lt;P&gt;SQL Server provides an option to ALTER INDEX to disallow ROW and PAGE locks.&amp;nbsp; (In SQL 7 and 2000 you could use the system procedure sp_indexoption to do the same thing.) If the index is a clustered index, this means ROW and PAGE locks will be disallowed for the table. But, if the table is a heap, you can't use this option.&amp;nbsp; 
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;FONT face=Consolas color=#000080 size=1&gt;ALTER INDEX &amp;lt;index_name&amp;gt; ON &amp;lt;table_name&amp;gt; &lt;BR&gt;SET (ALLOW_PAGE_LOCKS = OFF);&amp;nbsp; &lt;/FONT&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Also note that if you set ALLOW_PAGE_LOCKS to OFF, you &lt;STRONG&gt;cannot &lt;/STRONG&gt;REORGANIZE (defragment) the index. &lt;/P&gt;
&lt;P&gt;I usually mention this ALTER INDEX option in my Internals and Tuning class, and also mention that the only time I really had to use it was when clients turned off PAGE or ROW locks inappropriately and ended up with far too many unexplained table locks. Once you check sys.indexes (there are columns called allow_row_locks and allow_page_locks, with possible values of only 0 and 1), the behavior is no longer unexplained. (For versions prior to SQL Server 2005 you can use the INDEXPROPERTY function to check the status of these options.)&amp;nbsp; It was several years ago that I last encountered someone using this option to turn off finer grained locks, and I was considering removing mention of it from my course.&amp;nbsp; 
&lt;P&gt;And then, just last week, in my Oslo class, one of students had been asking about why her queries with CTEs ended up getting TABLE locks all the time. I didn't believe it had anything to do with the CTEs, but suggested she wait until we discussed locking, which we do on the fourth day of the class. She paid very close attention, and on Friday morning she came back and told me that the problem had not been the CTEs after all, but that 'someone' had turned off the ALLOW_PAGE_LOCKS and ALLOW_ROW_LOCKS options! &lt;/P&gt;
&lt;P&gt;So I guess I continue to mention this possibility in future classes. &lt;/P&gt;
&lt;P&gt;&lt;FONT color=#ff00ff size=4&gt;~Kalen&lt;/FONT&gt;&lt;/P&gt;
&lt;BR&gt;&lt;div class = "shareblock"&gt;&lt;span class = "shareblockTitle"&gt;Share this post:&lt;/span&gt;&lt;span class = "shareblockLink"&gt; &lt;a href = "mailto:?subject=Geek City: Controlling Lock Granularity&amp;amp;body=Seen on SQLblog.com: %0A%0A%09Geek City: Controlling Lock Granularity%0A%0Ahttp://sqlblog.com/blogs/kalen_delaney/archive/2009/05/03/controlling-lock-granularity.aspx" target="_blank" title = "Email Geek City: Controlling Lock Granularity"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://sqlblog.com/blogs/kalen_delaney/archive/2009/05/03/controlling-lock-granularity.aspx&amp;amp;title=Geek+City%3a+Controlling+Lock+Granularity" target="_blank" title = "Submit Geek City: Controlling Lock Granularity to del.icio.us"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://sqlblog.com/blogs/kalen_delaney/archive/2009/05/03/controlling-lock-granularity.aspx&amp;amp;phase=2" target="_blank" title = "Submit Geek City: Controlling Lock Granularity to digg.com"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://sqlblog.com/blogs/kalen_delaney/archive/2009/05/03/controlling-lock-granularity.aspx&amp;amp;title=Geek+City%3a+Controlling+Lock+Granularity" target="_blank" title = "Submit Geek City: Controlling Lock Granularity to reddit.com"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://sqlblog.com/blogs/kalen_delaney/archive/2009/05/03/controlling-lock-granularity.aspx&amp;amp;title=Geek+City%3a+Controlling+Lock+Granularity" target="_blank" title = "Submit Geek City: Controlling Lock Granularity to DotNetKicks"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://sqlblog.com/blogs/kalen_delaney/archive/2009/05/03/controlling-lock-granularity.aspx&amp;amp;title=Geek+City%3a+Controlling+Lock+Granularity&amp;amp;;top=1" target="_blank" title = "Add Geek City: Controlling Lock Granularity to Live Bookmarks"&gt;live it!&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;img src="http://info.sqlblog.com/a.aspx?ZoneID=0&amp;BannerID=12&amp;AdvertiserID=1&amp;CampaignID=12&amp;Task=Get&amp;Mode=TEXT&amp;SiteID=1&amp;RandomNumber=463323" width="1" height="1" border="0"&gt;&lt;img src="http://sqlblog.com/aggbug.aspx?PostID=13729" width="1" height="1"&gt;</description><category domain="http://sqlblog.com/blogs/kalen_delaney/archive/tags/indexes/default.aspx">indexes</category><category domain="http://sqlblog.com/blogs/kalen_delaney/archive/tags/locking/default.aspx">locking</category><category domain="http://sqlblog.com/blogs/kalen_delaney/archive/tags/escalation/default.aspx">escalation</category></item><item><title>Did You Know? How to tell if a bug has been fixed?</title><link>http://sqlblog.com/blogs/kalen_delaney/archive/2009/04/22/has-a-bug-has-been-fixed.aspx</link><pubDate>Wed, 22 Apr 2009 18:31:00 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:13451</guid><dc:creator>Kalen Delaney</dc:creator><slash:comments>2</slash:comments><comments>http://sqlblog.com/blogs/kalen_delaney/comments/13451.aspx</comments><wfw:commentRss>http://sqlblog.com/blogs/kalen_delaney/commentrss.aspx?PostID=13451</wfw:commentRss><description>&lt;P&gt;Maybe I should change the topic to "Do you know?". "Did you know" seems to imply that _I_ actually know the answer.&amp;nbsp; It seems very tricky to know for sure if a bug has been fixed, unless you have an actual bug number from Microsoft. If you have a bug numnber, you can check the list of fixes in the KB article that contains the list of fixes. But even then, there are no guarantees. The list seems to only include bugs and fixes for which a KB article has been written.&amp;nbsp; For example, &lt;A title=http://support.microsoft.com/?kbid=955706 href="http://support.microsoft.com/?kbid=955706"&gt;http://support.microsoft.com/?kbid=955706&lt;/A&gt; lists the bugs fixed in SQL Server 2005, Service Pack 3, and includes this disclaimer:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Other fixes that are not documented may be included in the service pack.&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;If a bug is fixed in a new release (for example, SQL Server 2008), there is no list of the bugs from the previous version that have been fixed. Even if you file (or find) a bug on Connect, the information about the the status is sometimes uncertain. Sometimes the engineers say "Will be fixed", but there is rarely a followup on Connect when that fix is actually included in a release. 
&lt;P&gt;I &lt;A href="http://sqlblog.com/blogs/kalen_delaney/archive/2006/11/28/376.aspx#13448"&gt;posted about a bug&lt;/A&gt; with generating a Deadlock Graph Event back in November 2006, and recently received a comment asking if that bug had been fixed in SP3. The comment indicated that the bug was not being seen in SP3. My first thought was that if you're not seeing it, then it must be fixed. The &lt;A href="https://connect.microsoft.com/SQLServer/feedback/ViewFeedback.aspx?FeedbackID=240737"&gt;Connect Item&lt;/A&gt; indicated it wouldn't be fixed until SQL 2008, but at the time, SP3 was not being planned, so it made sense to think it had been fixed without the Connect Item being updated. But on rereading the reason in Connect, they said it was "too risky" for SP2. I would think that if it was too risky for SP2 it would be too risky for SP3. If they had said "not enough time", I might have been more likely to believe the fix could have made it into SP3. 
&lt;P&gt;So, did what I always like to do before posting... I tried it out for myself. Using the same script that Erland has in the Connect Item to generate a deadlock, I tried to capture Deadlock Graph on SQL Server 2005 SP3, with no filters defined. My Deadlock Graph Event showed up plain as day: 
&lt;P&gt;&lt;A href="http://sqlblog.com/blogs/kalen_delaney/WindowsLiveWriter/DidYouKnowHowtotellifabughasbeenfixed_989F/image_2.png"&gt;&lt;IMG style="BORDER-RIGHT:0px;BORDER-TOP:0px;BORDER-LEFT:0px;BORDER-BOTTOM:0px;" height=85 alt=image src="http://sqlblog.com/blogs/kalen_delaney/WindowsLiveWriter/DidYouKnowHowtotellifabughasbeenfixed_989F/image_thumb.png" width=244 border=0&gt;&lt;/A&gt; 
&lt;P&gt;I then stopped the trace, added a filter on Database ID, and ran the same script (after dropping the table first), and no Deadlock Graph was generated. So purely by the evidence, I'd say this bug was not fixed in Service Pack 3. 
&lt;P&gt;So now we know about this one. What about all the others? 
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;"&gt;&lt;FONT size=3&gt;&lt;SPAN style="COLOR:#1f497d;FONT-FAMILY:Wingdings;mso-fareast-font-family:'Times New Roman';mso-fareast-theme-font:minor-fareast;mso-bidi-font-family:'Times New Roman';mso-bidi-theme-font:minor-bidi;mso-no-proof:yes;"&gt;J&lt;/SPAN&gt;&lt;SPAN style="COLOR:#1f497d;mso-fareast-font-family:'Times New Roman';mso-fareast-theme-font:minor-fareast;mso-bidi-font-family:'Times New Roman';mso-bidi-theme-font:minor-bidi;mso-no-proof:yes;"&gt;&lt;FONT face=Calibri&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#ff00ff size=4&gt;~Kalen&lt;/FONT&gt;&lt;/P&gt;
&lt;BR&gt;&lt;div class = "shareblock"&gt;&lt;span class = "shareblockTitle"&gt;Share this post:&lt;/span&gt;&lt;span class = "shareblockLink"&gt; &lt;a href = "mailto:?subject=Did You Know? How to tell if a bug has been fixed?&amp;amp;body=Seen on SQLblog.com: %0A%0A%09Did You Know? How to tell if a bug has been fixed?%0A%0Ahttp://sqlblog.com/blogs/kalen_delaney/archive/2009/04/22/has-a-bug-has-been-fixed.aspx" target="_blank" title = "Email Did You Know? How to tell if a bug has been fixed?"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://sqlblog.com/blogs/kalen_delaney/archive/2009/04/22/has-a-bug-has-been-fixed.aspx&amp;amp;title=Did+You+Know%3f+How+to+tell+if+a+bug+has+been+fixed%3f" target="_blank" title = "Submit Did You Know? How to tell if a bug has been fixed? to del.icio.us"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://sqlblog.com/blogs/kalen_delaney/archive/2009/04/22/has-a-bug-has-been-fixed.aspx&amp;amp;phase=2" target="_blank" title = "Submit Did You Know? How to tell if a bug has been fixed? to digg.com"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://sqlblog.com/blogs/kalen_delaney/archive/2009/04/22/has-a-bug-has-been-fixed.aspx&amp;amp;title=Did+You+Know%3f+How+to+tell+if+a+bug+has+been+fixed%3f" target="_blank" title = "Submit Did You Know? How to tell if a bug has been fixed? to reddit.com"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://sqlblog.com/blogs/kalen_delaney/archive/2009/04/22/has-a-bug-has-been-fixed.aspx&amp;amp;title=Did+You+Know%3f+How+to+tell+if+a+bug+has+been+fixed%3f" target="_blank" title = "Submit Did You Know? How to tell if a bug has been fixed? to DotNetKicks"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://sqlblog.com/blogs/kalen_delaney/archive/2009/04/22/has-a-bug-has-been-fixed.aspx&amp;amp;title=Did+You+Know%3f+How+to+tell+if+a+bug+has+been+fixed%3f&amp;amp;;top=1" target="_blank" title = "Add Did You Know? How to tell if a bug has been fixed? to Live Bookmarks"&gt;live it!&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;img src="http://info.sqlblog.com/a.aspx?ZoneID=0&amp;BannerID=12&amp;AdvertiserID=1&amp;CampaignID=12&amp;Task=Get&amp;Mode=TEXT&amp;SiteID=1&amp;RandomNumber=463323" width="1" height="1" border="0"&gt;&lt;img src="http://sqlblog.com/aggbug.aspx?PostID=13451" width="1" height="1"&gt;</description><category domain="http://sqlblog.com/blogs/kalen_delaney/archive/tags/bug/default.aspx">bug</category><category domain="http://sqlblog.com/blogs/kalen_delaney/archive/tags/Profiler/default.aspx">Profiler</category><category domain="http://sqlblog.com/blogs/kalen_delaney/archive/tags/deadlocks/default.aspx">deadlocks</category></item><item><title>Geek City: Two Compression Questions and Parameter Metadata</title><link>http://sqlblog.com/blogs/kalen_delaney/archive/2009/03/10/two-compression-questions-and-parameter-metadata.aspx</link><pubDate>Tue, 10 Mar 2009 17:46:00 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:12539</guid><dc:creator>Kalen Delaney</dc:creator><slash:comments>4</slash:comments><comments>http://sqlblog.com/blogs/kalen_delaney/comments/12539.aspx</comments><wfw:commentRss>http://sqlblog.com/blogs/kalen_delaney/commentrss.aspx?PostID=12539</wfw:commentRss><description>&lt;P&gt;I am teaching the SQL 2008 version of my course for the first time this week. My life is still is disarray and spare time is practically non-existent.&amp;nbsp; During the evenings after I class I am trying to get caught up on several projects that I fell way behind on&amp;nbsp;over the last month when most of my time was spent in the hospital. Blogging has been put on the back burner, but I thought I could share some of the questions that came up in class on the first day.&amp;nbsp; I usually try to track down answers to open questions, and then share them with the students the next day.&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#0000ff&gt;&lt;I&gt;1. Why can't the stored procedure sp_estimate_data_compression_savings be available on SQL Server 2008 Standard Edition, instead of just Enterprise, Developer and Evaluation? We realize that compression is an Enterprise only feature, but if non-Enterprise users could see how much space they would save, it might help them determine whether Enterprise Edition is worth while?&lt;/I&gt;&lt;/FONT&gt; &lt;/P&gt;
&lt;P&gt;(OK, here's a really geeky part... speaking of Enterprise, my #1 son sent me &lt;A href="http://www.traileraddict.com/trailer/star-trek-xi/feature-trailer"&gt;this link&lt;/A&gt; yesterday. ) &lt;/P&gt;
&lt;P&gt;Now I'm not saying that Microsoft should be obnoxious about this and say "See what you could save if you upgraded to Enterprise",&amp;nbsp; and do that whether the user wants to know or not. It would be on request, when the user ran this procedure. &lt;/P&gt;
&lt;P&gt;I also understand that the procedure actually applies compression to a sample of pages to compute the savings potential. And it was confirmed last night when I started researching this question that Enterprise features are just turned on and off through a switch so it actually would be easy enough to just not do the check for Enterprise Edition within this stored procedure. Microsoft is looking at possibly making this change, but it looks like it might not happen before the next major release.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#0000ff&gt;&lt;I&gt;2. Since page compression is applied on a page by page basis, what's the point of compressing a read-only table? Each page would be compressed, perhaps into a small amount of space, but if no new rows were added, the empty space on each page wouldn't get used and we would still have the same number of pages in the table.&lt;/I&gt;&lt;/FONT&gt; &lt;/P&gt;
&lt;P&gt;Although it is true that compression is applied on each page individually, you need to rebuild the table or index in order to compress it, with ALTER TABLE or ALTER INDEX.&amp;nbsp; And rebuilding a table or index moves the data to all new pages. So as the table is being rebuilt, when a page gets full, it is compressed, but then more rows can be added, and when are sufficient number are added, it gets recompressed, and keeps getting recompressed as more rows are added, until there is no chance of any more more rows being added. So during the rebuild process the table really isn't read-only, as the original data is being inserted into the a new copy of the table. You could end up with far few pages.&lt;/P&gt;
&lt;P&gt;This is pretty easy to test out, by just compressing a relatively full table of your own into a test table (so no one will update it) and then compressing it. It should take less space. &lt;/P&gt;
&lt;P&gt;There are lots of compression scripts, plus a lot more detail about how compression works, in my new book, which is scheduled for release TOMORROW!!&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#0000ff&gt;&lt;I&gt;3. Where is the metadata that contains the default values of SQL Server stored procedure parameters?&lt;/I&gt;&lt;/FONT&gt; &lt;/P&gt;
&lt;P&gt;Uh, the answer appears to be 'None of the above'. There is no metadata, either system views or system tables (viewable using the DAC) that contains this information. &lt;/P&gt;
&lt;P&gt;You can read this Connect request for more details (and even vote for it if you like): &lt;/P&gt;
&lt;P&gt;&lt;A title=https://connect.microsoft.com/SQLServer/feedback/ViewFeedback.aspx?FeedbackID=234143 href="https://connect.microsoft.com/SQLServer/feedback/ViewFeedback.aspx?FeedbackID=234143"&gt;https://connect.microsoft.com/SQLServer/feedback/ViewFeedback.aspx?FeedbackID=234143&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;It does seem strange that this information is not available and it's hard to believe SQL Server parses the procedure definition every time it wants to know the default.&amp;nbsp; It turns out that even if all you want to know is whether or not a default exists is not easy to find. (You might want to know that to be able to determine if a parameter is optional.)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;So now you know.&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#ff00ff size=4&gt;~Kalen&lt;/FONT&gt;&lt;/P&gt;
&lt;BR&gt;&lt;div class = "shareblock"&gt;&lt;span class = "shareblockTitle"&gt;Share this post:&lt;/span&gt;&lt;span class = "shareblockLink"&gt; &lt;a href = "mailto:?subject=Geek City: Two Compression Questions and Parameter Metadata&amp;amp;body=Seen on SQLblog.com: %0A%0A%09Geek City: Two Compression Questions and Parameter Metadata%0A%0Ahttp://sqlblog.com/blogs/kalen_delaney/archive/2009/03/10/two-compression-questions-and-parameter-metadata.aspx" target="_blank" title = "Email Geek City: Two Compression Questions and Parameter Metadata"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://sqlblog.com/blogs/kalen_delaney/archive/2009/03/10/two-compression-questions-and-parameter-metadata.aspx&amp;amp;title=Geek+City%3a+Two+Compression+Questions+and+Parameter+Metadata" target="_blank" title = "Submit Geek City: Two Compression Questions and Parameter Metadata to del.icio.us"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://sqlblog.com/blogs/kalen_delaney/archive/2009/03/10/two-compression-questions-and-parameter-metadata.aspx&amp;amp;phase=2" target="_blank" title = "Submit Geek City: Two Compression Questions and Parameter Metadata to digg.com"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://sqlblog.com/blogs/kalen_delaney/archive/2009/03/10/two-compression-questions-and-parameter-metadata.aspx&amp;amp;title=Geek+City%3a+Two+Compression+Questions+and+Parameter+Metadata" target="_blank" title = "Submit Geek City: Two Compression Questions and Parameter Metadata to reddit.com"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://sqlblog.com/blogs/kalen_delaney/archive/2009/03/10/two-compression-questions-and-parameter-metadata.aspx&amp;amp;title=Geek+City%3a+Two+Compression+Questions+and+Parameter+Metadata" target="_blank" title = "Submit Geek City: Two Compression Questions and Parameter Metadata to DotNetKicks"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://sqlblog.com/blogs/kalen_delaney/archive/2009/03/10/two-compression-questions-and-parameter-metadata.aspx&amp;amp;title=Geek+City%3a+Two+Compression+Questions+and+Parameter+Metadata&amp;amp;;top=1" target="_blank" title = "Add Geek City: Two Compression Questions and Parameter Metadata to Live Bookmarks"&gt;live it!&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;img src="http://info.sqlblog.com/a.aspx?ZoneID=0&amp;BannerID=12&amp;AdvertiserID=1&amp;CampaignID=12&amp;Task=Get&amp;Mode=TEXT&amp;SiteID=1&amp;RandomNumber=463323" width="1" height="1" border="0"&gt;&lt;img src="http://sqlblog.com/aggbug.aspx?PostID=12539" width="1" height="1"&gt;</description><category domain="http://sqlblog.com/blogs/kalen_delaney/archive/tags/metadata/default.aspx">metadata</category><category domain="http://sqlblog.com/blogs/kalen_delaney/archive/tags/SQL+Server+2008/default.aspx">SQL Server 2008</category><category domain="http://sqlblog.com/blogs/kalen_delaney/archive/tags/compression/default.aspx">compression</category></item><item><title>Did You Know? My book is at the printers!</title><link>http://sqlblog.com/blogs/kalen_delaney/archive/2009/02/18/my-book-is-at-the-printers.aspx</link><pubDate>Wed, 18 Feb 2009 20:43:00 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:11981</guid><dc:creator>Kalen Delaney</dc:creator><slash:comments>29</slash:comments><comments>http://sqlblog.com/blogs/kalen_delaney/comments/11981.aspx</comments><wfw:commentRss>http://sqlblog.com/blogs/kalen_delaney/commentrss.aspx?PostID=11981</wfw:commentRss><description>&lt;P&gt;I know it's been a while since my last post, and there is a specific reason for that, which I am going to tell you about. On February 5th, I emailed to my editor the LAST chapter of my new book, after the author reviews and all comments from the editors were answered. I was technically done, except for a bit of work on the Intro, etc. Less than an hour after I sent off that last chapter, I got a call from the Washington State Highway Patrol that my husband had been found at the side of the road; he was semi-conscious after having a major stroke. I have spent most of the last two weeks by his side at Harborview Hospital in Seattle. Although there is WiFi in the rooms and I was able to check email and keep family and close friends informed, there was little inclination or energy for blogging. &lt;/P&gt;
&lt;P&gt;Today, after all the final polishing by Microsoft Press, the pages were sent to the printer. The expected 'in print' date is March 11. It will be a week or so after that until the bookstores get it. I don't know how soon Amazon will be able to start shipping the pre-orders.&lt;/P&gt;
&lt;P&gt;I'm not going to post my husband's whole story here, but suffice it to say my life will be changing. I will need to cut back on traveling, but I do need to continue working. I may not be offering nearly as many public classes, so if you've ever wanted to take a class from me, I suggest you think about doing it sooner rather than later, because there might not be a later.&amp;nbsp; I will start delivering the 2008 version of my SQL Server Internals course next month. (Probably 90-95% of the course is still relevant to SQL Server 2005.)&lt;/P&gt;
&lt;P&gt;Take care .... and in the words of one of my favorite singers/songwriters, James Taylor,&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;Shower the people you love with love....&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&lt;FONT color=#ff00ff size=4&gt;~Kalen&lt;/FONT&gt;&lt;/P&gt;
&lt;BR&gt;&lt;div class = "shareblock"&gt;&lt;span class = "shareblockTitle"&gt;Share this post:&lt;/span&gt;&lt;span class = "shareblockLink"&gt; &lt;a href = "mailto:?subject=Did You Know? My book is at the printers!&amp;amp;body=Seen on SQLblog.com: %0A%0A%09Did You Know? My book is at the printers!%0A%0Ahttp://sqlblog.com/blogs/kalen_delaney/archive/2009/02/18/my-book-is-at-the-printers.aspx" target="_blank" title = "Email Did You Know? My book is at the printers!"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://sqlblog.com/blogs/kalen_delaney/archive/2009/02/18/my-book-is-at-the-printers.aspx&amp;amp;title=Did+You+Know%3f+My+book+is+at+the+printers!" target="_blank" title = "Submit Did You Know? My book is at the printers! to del.icio.us"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://sqlblog.com/blogs/kalen_delaney/archive/2009/02/18/my-book-is-at-the-printers.aspx&amp;amp;phase=2" target="_blank" title = "Submit Did You Know? My book is at the printers! to digg.com"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://sqlblog.com/blogs/kalen_delaney/archive/2009/02/18/my-book-is-at-the-printers.aspx&amp;amp;title=Did+You+Know%3f+My+book+is+at+the+printers!" target="_blank" title = "Submit Did You Know? My book is at the printers! to reddit.com"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://sqlblog.com/blogs/kalen_delaney/archive/2009/02/18/my-book-is-at-the-printers.aspx&amp;amp;title=Did+You+Know%3f+My+book+is+at+the+printers!" target="_blank" title = "Submit Did You Know? My book is at the printers! to DotNetKicks"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://sqlblog.com/blogs/kalen_delaney/archive/2009/02/18/my-book-is-at-the-printers.aspx&amp;amp;title=Did+You+Know%3f+My+book+is+at+the+printers!&amp;amp;;top=1" target="_blank" title = "Add Did You Know? My book is at the printers! to Live Bookmarks"&gt;live it!&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;img src="http://info.sqlblog.com/a.aspx?ZoneID=0&amp;BannerID=12&amp;AdvertiserID=1&amp;CampaignID=12&amp;Task=Get&amp;Mode=TEXT&amp;SiteID=1&amp;RandomNumber=463323" width="1" height="1" border="0"&gt;&lt;img src="http://sqlblog.com/aggbug.aspx?PostID=11981" width="1" height="1"&gt;</description><category domain="http://sqlblog.com/blogs/kalen_delaney/archive/tags/internals/default.aspx">internals</category><category domain="http://sqlblog.com/blogs/kalen_delaney/archive/tags/training/default.aspx">training</category><category domain="http://sqlblog.com/blogs/kalen_delaney/archive/tags/books/default.aspx">books</category><category domain="http://sqlblog.com/blogs/kalen_delaney/archive/tags/personal/default.aspx">personal</category></item><item><title>Did You Know? I'm Going Down Under Again in June</title><link>http://sqlblog.com/blogs/kalen_delaney/archive/2009/02/03/going-down-under-again-in-june.aspx</link><pubDate>Wed, 04 Feb 2009 05:16:00 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:11710</guid><dc:creator>Kalen Delaney</dc:creator><slash:comments>0</slash:comments><comments>http://sqlblog.com/blogs/kalen_delaney/comments/11710.aspx</comments><wfw:commentRss>http://sqlblog.com/blogs/kalen_delaney/commentrss.aspx?PostID=11710</wfw:commentRss><description>&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;It's official... and Peter Ward has already blogged about it:&lt;/P&gt;
&lt;P&gt;&lt;A title=http://wardyit.com/blog/blog/archive/2009/01/29/kalen-delaney-in-australia-in-june.aspx href="http://wardyit.com/blog/blog/archive/2009/01/29/kalen-delaney-in-australia-in-june.aspx"&gt;http://wardyit.com/blog/blog/archive/2009/01/29/kalen-delaney-in-australia-in-june.aspx&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Anyone registering by March 27th will get a free copy of my new book, SQL Server 2008 Internals:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://www.amazon.com/gp/product/0735626243?ie=UTF8&amp;amp;tag=insqse-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=390957&amp;amp;creativeASIN=0735626243"&gt;SQL Server 2008 Internals&lt;/A&gt; 
&lt;P&gt;But as always, there will be giveaways for more copies of this book and other swag at the end of each seminar. 
&lt;P&gt;&lt;FONT color=#ff00ff size=4&gt;~Kalen&lt;/FONT&gt;&lt;/P&gt;
&lt;BR&gt;&lt;div class = "shareblock"&gt;&lt;span class = "shareblockTitle"&gt;Share this post:&lt;/span&gt;&lt;span class = "shareblockLink"&gt; &lt;a href = "mailto:?subject=Did You Know? I'm Going Down Under Again in June&amp;amp;body=Seen on SQLblog.com: %0A%0A%09Did You Know? I'm Going Down Under Again in June%0A%0Ahttp://sqlblog.com/blogs/kalen_delaney/archive/2009/02/03/going-down-under-again-in-june.aspx" target="_blank" title = "Email Did You Know? I'm Going Down Under Again in June"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://sqlblog.com/blogs/kalen_delaney/archive/2009/02/03/going-down-under-again-in-june.aspx&amp;amp;title=Did+You+Know%3f+I%27m+Going+Down+Under+Again+in+June" target="_blank" title = "Submit Did You Know? I'm Going Down Under Again in June to del.icio.us"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://sqlblog.com/blogs/kalen_delaney/archive/2009/02/03/going-down-under-again-in-june.aspx&amp;amp;phase=2" target="_blank" title = "Submit Did You Know? I'm Going Down Under Again in June to digg.com"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://sqlblog.com/blogs/kalen_delaney/archive/2009/02/03/going-down-under-again-in-june.aspx&amp;amp;title=Did+You+Know%3f+I%27m+Going+Down+Under+Again+in+June" target="_blank" title = "Submit Did You Know? I'm Going Down Under Again in June to reddit.com"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://sqlblog.com/blogs/kalen_delaney/archive/2009/02/03/going-down-under-again-in-june.aspx&amp;amp;title=Did+You+Know%3f+I%27m+Going+Down+Under+Again+in+June" target="_blank" title = "Submit Did You Know? I'm Going Down Under Again in June to DotNetKicks"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://sqlblog.com/blogs/kalen_delaney/archive/2009/02/03/going-down-under-again-in-june.aspx&amp;amp;title=Did+You+Know%3f+I%27m+Going+Down+Under+Again+in+June&amp;amp;;top=1" target="_blank" title = "Add Did You Know? I'm Going Down Under Again in June to Live Bookmarks"&gt;live it!&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;img src="http://info.sqlblog.com/a.aspx?ZoneID=0&amp;BannerID=12&amp;AdvertiserID=1&amp;CampaignID=12&amp;Task=Get&amp;Mode=TEXT&amp;SiteID=1&amp;RandomNumber=463323" width="1" height="1" border="0"&gt;&lt;img src="http://sqlblog.com/aggbug.aspx?PostID=11710" width="1" height="1"&gt;</description><category domain="http://sqlblog.com/blogs/kalen_delaney/archive/tags/Australia/default.aspx">Australia</category><category domain="http://sqlblog.com/blogs/kalen_delaney/archive/tags/seminars/default.aspx">seminars</category></item><item><title>Did You Know? A New SQL Server 2008 Books Online Update is Available</title><link>http://sqlblog.com/blogs/kalen_delaney/archive/2009/02/02/SQL-Server-2008-books-online-update.aspx</link><pubDate>Tue, 03 Feb 2009 01:45:00 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:11671</guid><dc:creator>Kalen Delaney</dc:creator><slash:comments>4</slash:comments><comments>http://sqlblog.com/blogs/kalen_delaney/comments/11671.aspx</comments><wfw:commentRss>http://sqlblog.com/blogs/kalen_delaney/commentrss.aspx?PostID=11671</wfw:commentRss><description>&lt;P&gt;When I searched for "sql server 2008 books online update", the first non-advertising hit I got was labeled August 2008, and I already have a Books Online download for August. &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://sqlblog.com/blogs/kalen_delaney/WindowsLiveWriter/DidYouKnowANewSQLServer2008BooksOnlineUp_F97C/search1_2.jpg"&gt;&lt;IMG style="BORDER-RIGHT:0px;BORDER-TOP:0px;BORDER-LEFT:0px;BORDER-BOTTOM:0px;" height=101 alt=search1 src="http://sqlblog.com/blogs/kalen_delaney/WindowsLiveWriter/DidYouKnowANewSQLServer2008BooksOnlineUp_F97C/search1_thumb.jpg" width=520 border=0&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;However, when I clicked on the link I was taken to a page to download a brand new January 2009 Update::&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://sqlblog.com/blogs/kalen_delaney/WindowsLiveWriter/DidYouKnowANewSQLServer2008BooksOnlineUp_F97C/BOL%202008_2.jpg"&gt;&lt;IMG style="BORDER-RIGHT:0px;BORDER-TOP:0px;BORDER-LEFT:0px;BORDER-BOTTOM:0px;" height=310 alt="BOL 2008" src="http://sqlblog.com/blogs/kalen_delaney/WindowsLiveWriter/DidYouKnowANewSQLServer2008BooksOnlineUp_F97C/BOL%202008_thumb.jpg" width=586 border=0&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;So here's the link:&lt;/P&gt;
&lt;P&gt;&lt;A title=http://www.microsoft.com/downloads/details.aspx?FamilyId=765433F7-0983-4D7A-B628-0A98145BCB97&amp;amp;displaylang=en href="http://www.microsoft.com/downloads/details.aspx?FamilyId=765433F7-0983-4D7A-B628-0A98145BCB97&amp;amp;displaylang=en"&gt;http://www.microsoft.com/downloads/details.aspx?FamilyId=765433F7-0983-4D7A-B628-0A98145BCB97&amp;amp;displaylang=en&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Have fun!&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#ff00ff size=4&gt;~Kalen&lt;/FONT&gt;&lt;/P&gt;
&lt;BR&gt;&lt;div class = "shareblock"&gt;&lt;span class = "shareblockTitle"&gt;Share this post:&lt;/span&gt;&lt;span class = "shareblockLink"&gt; &lt;a href = "mailto:?subject=Did You Know? A New SQL Server 2008 Books Online Update is Available&amp;amp;body=Seen on SQLblog.com: %0A%0A%09Did You Know? A New SQL Server 2008 Books Online Update is Available%0A%0Ahttp://sqlblog.com/blogs/kalen_delaney/archive/2009/02/02/SQL-Server-2008-books-online-update.aspx" target="_blank" title = "Email Did You Know? A New SQL Server 2008 Books Online Update is Available"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://sqlblog.com/blogs/kalen_delaney/archive/2009/02/02/SQL-Server-2008-books-online-update.aspx&amp;amp;title=Did+You+Know%3f+A+New+SQL+Server+2008+Books+Online+Update+is+Available" target="_blank" title = "Submit Did You Know? A New SQL Server 2008 Books Online Update is Available to del.icio.us"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://sqlblog.com/blogs/kalen_delaney/archive/2009/02/02/SQL-Server-2008-books-online-update.aspx&amp;amp;phase=2" target="_blank" title = "Submit Did You Know? A New SQL Server 2008 Books Online Update is Available to digg.com"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://sqlblog.com/blogs/kalen_delaney/archive/2009/02/02/SQL-Server-2008-books-online-update.aspx&amp;amp;title=Did+You+Know%3f+A+New+SQL+Server+2008+Books+Online+Update+is+Available" target="_blank" title = "Submit Did You Know? A New SQL Server 2008 Books Online Update is Available to reddit.com"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://sqlblog.com/blogs/kalen_delaney/archive/2009/02/02/SQL-Server-2008-books-online-update.aspx&amp;amp;title=Did+You+Know%3f+A+New+SQL+Server+2008+Books+Online+Update+is+Available" target="_blank" title = "Submit Did You Know? A New SQL Server 2008 Books Online Update is Available to DotNetKicks"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://sqlblog.com/blogs/kalen_delaney/archive/2009/02/02/SQL-Server-2008-books-online-update.aspx&amp;amp;title=Did+You+Know%3f+A+New+SQL+Server+2008+Books+Online+Update+is+Available&amp;amp;;top=1" target="_blank" title = "Add Did You Know? A New SQL Server 2008 Books Online Update is Available to Live Bookmarks"&gt;live it!&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;img src="http://info.sqlblog.com/a.aspx?ZoneID=0&amp;BannerID=12&amp;AdvertiserID=1&amp;CampaignID=12&amp;Task=Get&amp;Mode=TEXT&amp;SiteID=1&amp;RandomNumber=463323" width="1" height="1" border="0"&gt;&lt;img src="http://sqlblog.com/aggbug.aspx?PostID=11671" width="1" height="1"&gt;</description><category domain="http://sqlblog.com/blogs/kalen_delaney/archive/tags/documentation/default.aspx">documentation</category><category domain="http://sqlblog.com/blogs/kalen_delaney/archive/tags/SQL+Server+2008/default.aspx">SQL Server 2008</category></item><item><title>Did You Know? Dave Campbell is So Cool!</title><link>http://sqlblog.com/blogs/kalen_delaney/archive/2009/01/29/dave-campbell-is-so-cool.aspx</link><pubDate>Thu, 29 Jan 2009 19:15:00 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:11587</guid><dc:creator>Kalen Delaney</dc:creator><slash:comments>2</slash:comments><comments>http://sqlblog.com/blogs/kalen_delaney/comments/11587.aspx</comments><wfw:commentRss>http://sqlblog.com/blogs/kalen_delaney/commentrss.aspx?PostID=11587</wfw:commentRss><description>&lt;P&gt;And this picture on the cover of the latest issue of SQL Server Magazine is awesome! &lt;BR&gt;The content of the interview isn't bad either.&lt;/P&gt;
&lt;P&gt;&lt;A title=http://www.sqlmag.com/Articles/ArticleID/101093/101093.html href="http://www.sqlmag.com/Articles/ArticleID/101093/101093.html"&gt;http://www.sqlmag.com/Articles/ArticleID/101093/101093.html&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;This is very interesting timing, because I just wrote about Dave in my SQL Server Magazine UPDATE commentary a few weeks ago:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;A title=http://www.sqlmag.com/Article/ArticleID/101185/sql_server_101185.html href="http://www.sqlmag.com/Article/ArticleID/101185/sql_server_101185.html"&gt;http://www.sqlmag.com/Article/ArticleID/101185/sql_server_101185.html&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;I know, I sound&amp;nbsp; like a groupie, but so be it... I'm just waiting for the action figure now.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#ff00ff size=4&gt;~Kalen&lt;/FONT&gt;&lt;/P&gt;
&lt;BR&gt;&lt;div class = "shareblock"&gt;&lt;span class = "shareblockTitle"&gt;Share this post:&lt;/span&gt;&lt;span class = "shareblockLink"&gt; &lt;a href = "mailto:?subject=Did You Know? Dave Campbell is So Cool!&amp;amp;body=Seen on SQLblog.com: %0A%0A%09Did You Know? Dave Campbell is So Cool!%0A%0Ahttp://sqlblog.com/blogs/kalen_delaney/archive/2009/01/29/dave-campbell-is-so-cool.aspx" target="_blank" title = "Email Did You Know? Dave Campbell is So Cool!"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://sqlblog.com/blogs/kalen_delaney/archive/2009/01/29/dave-campbell-is-so-cool.aspx&amp;amp;title=Did+You+Know%3f+Dave+Campbell+is+So+Cool!" target="_blank" title = "Submit Did You Know? Dave Campbell is So Cool! to del.icio.us"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://sqlblog.com/blogs/kalen_delaney/archive/2009/01/29/dave-campbell-is-so-cool.aspx&amp;amp;phase=2" target="_blank" title = "Submit Did You Know? Dave Campbell is So Cool! to digg.com"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://sqlblog.com/blogs/kalen_delaney/archive/2009/01/29/dave-campbell-is-so-cool.aspx&amp;amp;title=Did+You+Know%3f+Dave+Campbell+is+So+Cool!" target="_blank" title = "Submit Did You Know? Dave Campbell is So Cool! to reddit.com"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://sqlblog.com/blogs/kalen_delaney/archive/2009/01/29/dave-campbell-is-so-cool.aspx&amp;amp;title=Did+You+Know%3f+Dave+Campbell+is+So+Cool!" target="_blank" title = "Submit Did You Know? Dave Campbell is So Cool! to DotNetKicks"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://sqlblog.com/blogs/kalen_delaney/archive/2009/01/29/dave-campbell-is-so-cool.aspx&amp;amp;title=Did+You+Know%3f+Dave+Campbell+is+So+Cool!&amp;amp;;top=1" target="_blank" title = "Add Did You Know? Dave Campbell is So Cool! to Live Bookmarks"&gt;live it!&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;img src="http://info.sqlblog.com/a.aspx?ZoneID=0&amp;BannerID=12&amp;AdvertiserID=1&amp;CampaignID=12&amp;Task=Get&amp;Mode=TEXT&amp;SiteID=1&amp;RandomNumber=463323" width="1" height="1" border="0"&gt;&lt;img src="http://sqlblog.com/aggbug.aspx?PostID=11587" width="1" height="1"&gt;</description><category domain="http://sqlblog.com/blogs/kalen_delaney/archive/tags/SQL+Server+Magazine/default.aspx">SQL Server Magazine</category><category domain="http://sqlblog.com/blogs/kalen_delaney/archive/tags/Dave+Campbell/default.aspx">Dave Campbell</category></item><item><title>Did You Know? Management Studio Got Smarter!</title><link>http://sqlblog.com/blogs/kalen_delaney/archive/2009/01/23/management-studio-got-smarter.aspx</link><pubDate>Fri, 23 Jan 2009 22:32:00 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:11411</guid><dc:creator>Kalen Delaney</dc:creator><slash:comments>9</slash:comments><comments>http://sqlblog.com/blogs/kalen_delaney/comments/11411.aspx</comments><wfw:commentRss>http://sqlblog.com/blogs/kalen_delaney/commentrss.aspx?PostID=11411</wfw:commentRss><description>&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Hopefully you're aware that there is no way using the ALTER TABLE statement to add a new column in a particular ordinal position within a table. I see people in the forums asking for this capability, and they may point out that it is possible to do this using the Table Designer in Management Studio. However, usually someone will point out to them that you're really not altering the table in that case, you're actually creating a whole new table. And if it's a BIG table, it can take a long time, because all the data has to be moved to the table with the new definition, and then all the indexes have to be rebuilt. You can do the same using TSQL statements, but it's not a single quick and fast operation.&lt;/P&gt;
&lt;P&gt;I just discovered today that SQL Server 2008 Management Studio is a bit smarter about this. You are actually not allowed to save a change to a table that will require the table be rebuilt. You can, however, change that behavior to allow the change, as in older versions. I also discovered that this new behavior had already been discovered, and blogged about, by the awesome Brian Knight at &lt;/P&gt;
&lt;P&gt;&lt;A title=http://pragmaticworks.com/community/blogs/brianknight/archive/2008/06/04/sql-server-2008-designer-behavior-change-saving-changes-not-permitted.aspx href="http://pragmaticworks.com/community/blogs/brianknight/archive/2008/06/04/sql-server-2008-designer-behavior-change-saving-changes-not-permitted.aspx"&gt;http://pragmaticworks.com/community/blogs/brianknight/archive/2008/06/04/sql-server-2008-designer-behavior-change-saving-changes-not-permitted.aspx&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Brian shows you the error message, and the the dialog to change the behavior. &lt;/P&gt;
&lt;P&gt;So after reading Brian's post, I did some quick tests to verify that after changing the option, I could indeed make changes to a table that required a rebuild. &lt;/P&gt;
&lt;P&gt;Then when I was getting ready to blog this, I thought I would generate my own screenshot of the error message. So I used Table Designer to remove the identity property from the&amp;nbsp; &lt;EM&gt;AdventureWorks.Sales.SalesOrderHeader.SalesOrderID&lt;/EM&gt; column and tried to save the table. I received a warning, but not the one I expected.&amp;nbsp; It told me that half a dozen other tables would have to be changed because of my change to SalesOrderHeader. I presumed the message about not be able to actually save the change that required rebuilding the table would come next... so I clicked OK. Oops, it didn't complain. Because I had turned off the option to&amp;nbsp; prevent saving such changes, and I never turned it back on again. &lt;/P&gt;
&lt;P&gt;Wasn't there a thread going around a while ago about goofs people had made?&lt;/P&gt;
&lt;P&gt;Oh, well. At least I have the ability to re-create AdventureWorks.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Have fun!&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#ff00ff size=4&gt;~Kalen&lt;/FONT&gt;&lt;/P&gt;
&lt;BR&gt;&lt;div class = "shareblock"&gt;&lt;span class = "shareblockTitle"&gt;Share this post:&lt;/span&gt;&lt;span class = "shareblockLink"&gt; &lt;a href = "mailto:?subject=Did You Know? Management Studio Got Smarter!&amp;amp;body=Seen on SQLblog.com: %0A%0A%09Did You Know? Management Studio Got Smarter!%0A%0Ahttp://sqlblog.com/blogs/kalen_delaney/archive/2009/01/23/management-studio-got-smarter.aspx" target="_blank" title = "Email Did You Know? Management Studio Got Smarter!"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://sqlblog.com/blogs/kalen_delaney/archive/2009/01/23/management-studio-got-smarter.aspx&amp;amp;title=Did+You+Know%3f+Management+Studio+Got+Smarter!" target="_blank" title = "Submit Did You Know? Management Studio Got Smarter! to del.icio.us"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://sqlblog.com/blogs/kalen_delaney/archive/2009/01/23/management-studio-got-smarter.aspx&amp;amp;phase=2" target="_blank" title = "Submit Did You Know? Management Studio Got Smarter! to digg.com"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://sqlblog.com/blogs/kalen_delaney/archive/2009/01/23/management-studio-got-smarter.aspx&amp;amp;title=Did+You+Know%3f+Management+Studio+Got+Smarter!" target="_blank" title = "Submit Did You Know? Management Studio Got Smarter! to reddit.com"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://sqlblog.com/blogs/kalen_delaney/archive/2009/01/23/management-studio-got-smarter.aspx&amp;amp;title=Did+You+Know%3f+Management+Studio+Got+Smarter!" target="_blank" title = "Submit Did You Know? Management Studio Got Smarter! to DotNetKicks"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://sqlblog.com/blogs/kalen_delaney/archive/2009/01/23/management-studio-got-smarter.aspx&amp;amp;title=Did+You+Know%3f+Management+Studio+Got+Smarter!&amp;amp;;top=1" target="_blank" title = "Add Did You Know? Management Studio Got Smarter! to Live Bookmarks"&gt;live it!&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;img src="http://info.sqlblog.com/a.aspx?ZoneID=0&amp;BannerID=12&amp;AdvertiserID=1&amp;CampaignID=12&amp;Task=Get&amp;Mode=TEXT&amp;SiteID=1&amp;RandomNumber=463323" width="1" height="1" border="0"&gt;&lt;img src="http://sqlblog.com/aggbug.aspx?PostID=11411" width="1" height="1"&gt;</description><category domain="http://sqlblog.com/blogs/kalen_delaney/archive/tags/Management+Tools/default.aspx">Management Tools</category><category domain="http://sqlblog.com/blogs/kalen_delaney/archive/tags/ALTER+TABLE/default.aspx">ALTER TABLE</category></item><item><title>Did You Know? Troubleshooting Tools Update</title><link>http://sqlblog.com/blogs/kalen_delaney/archive/2009/01/23/troubleshooting-tools-update.aspx</link><pubDate>Fri, 23 Jan 2009 17:44:00 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:11399</guid><dc:creator>Kalen Delaney</dc:creator><slash:comments>3</slash:comments><comments>http://sqlblog.com/blogs/kalen_delaney/comments/11399.aspx</comments><wfw:commentRss>http://sqlblog.com/blogs/kalen_delaney/commentrss.aspx?PostID=11399</wfw:commentRss><description>&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Last May,&amp;nbsp; I blogged about &lt;A href="http://sqlblog.com/blogs/kalen_delaney/archive/2008/05/17/free-troubleshooting-tools.aspx" target=_blank&gt;free troubleshooting tools&lt;/A&gt; for SQL Server and today I received a comment that one of the tools listed seemed to no longer be available.&amp;nbsp; So I thought I would publish a refresh. &lt;/P&gt;
&lt;P&gt;There are dozens of great tools available, and I'm not even pretending that I am going to list them all. This post is really just an update to the tools I listed previously.&amp;nbsp; So here is the list from my May post, with additional comments.&lt;/P&gt;
&lt;P&gt;----------------------------------------------------------------------------------------------------------------------------------------------------------------------&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT size=2&gt;RML Utilities for SQL Server&lt;/FONT&gt;&lt;/STRONG&gt; 
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;A href="http://support.microsoft.com/kb/944837"&gt;http://support.microsoft.com/kb/944837&lt;/A&gt; 
&lt;P&gt;&lt;A href="http://www.microsoft.com/downloads/details.aspx?familyid=7EDFA95A-A32F-440F-A3A8-5160C8DBE926&amp;amp;displaylang=en"&gt;http://www.microsoft.com/downloads/details.aspx?familyid=7EDFA95A-A32F-440F-A3A8-5160C8DBE926&amp;amp;displaylang=en&lt;/A&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;RML Utilities are still around and better than ever. You can read about the CU1 here: 
&lt;P&gt;&amp;nbsp;&lt;A href="http://blogs.msdn.com/psssql/archive/2008/11/12/cumulative-update-1-to-the-rml-utilities-for-microsoft-sql-server-released.aspx"&gt;http://blogs.msdn.com/psssql/archive/2008/11/12/cumulative-update-1-to-the-rml-utilities-for-microsoft-sql-server-released.aspx&lt;/A&gt; 
&lt;P&gt;And some comments from the SQLCAT team here: 
&lt;P&gt;&lt;A href="http://sqlcat.com/technicalnotes/archive/2008/02/01/precision-performance-for-microsoft-sql-server-using-rml-utilities-9-0.aspx"&gt;http://sqlcat.com/technicalnotes/archive/2008/02/01/precision-performance-for-microsoft-sql-server-using-rml-utilities-9-0.aspx&lt;/A&gt; 
&lt;P&gt;&lt;STRONG&gt;&lt;/STRONG&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT size=2&gt;SQL Nexus&lt;/FONT&gt;&lt;/STRONG&gt; 
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;A href="http://www.sqlnexus.net/"&gt;&lt;STRIKE&gt;http://www.sqlnexus.net/&lt;/STRIKE&gt;&lt;/A&gt; 
&lt;P&gt;&lt;STRONG&gt;&lt;/STRONG&gt;&amp;nbsp;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;The SQL Nexus tools have moved to codeplex: 
&lt;P&gt;&lt;A href="http://www.codeplex.com/sqlnexus"&gt;http://www.codeplex.com/sqlnexus&lt;/A&gt; 
&lt;P&gt;And if you want more free tools than the ones listed here, check out everything else available at Codeplex! 
&lt;P&gt;&lt;STRONG&gt;&lt;FONT size=2&gt;PSSDIAG Data Collection Utility&lt;/FONT&gt;&lt;/STRONG&gt; 
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;A href="http://www.microsoft.com/downloads/details.aspx?FamilyId=5564386A-28C2-4483-8293-76FFF67B9EB3&amp;amp;displaylang=en"&gt;http://www.microsoft.com/downloads/details.aspx?FamilyId=5564386A-28C2-4483-8293-76FFF67B9EB3&amp;amp;displaylang=en&lt;/A&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;(This one is still here.) 
&lt;P&gt;&lt;STRONG&gt;&lt;/STRONG&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT size=2&gt;SQL Server Performance Analysis Utilities Read80Trace and OSTRESS&lt;/FONT&gt;&lt;/STRONG&gt; 
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;A href="http://support.microsoft.com/kb/887057"&gt;http://support.microsoft.com/kb/887057&lt;/A&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Although the KB article is still available, the links it points to are broken. 
&lt;P&gt;OSTRESS and Read%Trace are are incorporated into RML tools, so see the first link above! 
&lt;P&gt;&lt;STRONG&gt;&lt;/STRONG&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;STRONG&gt;S&lt;/STRONG&gt;&lt;STRONG&gt;QL Server Health and History Tool (SQLH2)&lt;/STRONG&gt;&lt;/FONT&gt; 
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;A href="http://www.microsoft.com/downloads/details.aspx?FamilyID=EEDD10D6-75F7-4763-86DE-D2347B8B5F89&amp;amp;displaylang=en"&gt;http://www.microsoft.com/downloads/details.aspx?FamilyID=EEDD10D6-75F7-4763-86DE-D2347B8B5F89&amp;amp;displaylang=en&lt;/A&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;The KB articles is still there, but you can also get the Health and History Tool from Codeplex: 
&lt;P&gt;&lt;A href="http://www.codeplex.com/sqlh2"&gt;http://www.codeplex.com/sqlh2&lt;/A&gt; 
&lt;P&gt;&lt;STRONG&gt;&lt;/STRONG&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT size=2&gt;Performance Dashboard&lt;/FONT&gt;&lt;/STRONG&gt; 
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;A href="http://www.microsoft.com/downloads/details.aspx?familyid=1d3a4a0d-7e0c-4730-8204-e419218c1efc&amp;amp;displaylang=en"&gt;http://www.microsoft.com/downloads/details.aspx?familyid=1d3a4a0d-7e0c-4730-8204-e419218c1efc&amp;amp;displaylang=en&lt;/A&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;(This one is still here.) 
&lt;P&gt;I started out that post by mentioning: 
&lt;BLOCKQUOTE&gt;
&lt;P&gt;I'm very excited about the new &lt;FONT size=2&gt;Management Data Warehouse&lt;/FONT&gt; coming in SQL Server 2008 (which was called Performance Studio at one point), but keep in mind there are lots of available tools in the current versions.&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;And now that I've had a chance to use the MDW a bit, I've even more excited. I think THIS is the reason to upgrade to SQL 2008 (if you haven't found another reason yet.) 
&lt;P&gt;Have fun! 
&lt;P&gt;&lt;FONT color=#ff00ff size=4&gt;~Kalen&lt;/FONT&gt;&lt;/P&gt;
&lt;BR&gt;&lt;div class = "shareblock"&gt;&lt;span class = "shareblockTitle"&gt;Share this post:&lt;/span&gt;&lt;span class = "shareblockLink"&gt; &lt;a href = "mailto:?subject=Did You Know? Troubleshooting Tools Update&amp;amp;body=Seen on SQLblog.com: %0A%0A%09Did You Know? Troubleshooting Tools Update%0A%0Ahttp://sqlblog.com/blogs/kalen_delaney/archive/2009/01/23/troubleshooting-tools-update.aspx" target="_blank" title = "Email Did You Know? Troubleshooting Tools Update"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://sqlblog.com/blogs/kalen_delaney/archive/2009/01/23/troubleshooting-tools-update.aspx&amp;amp;title=Did+You+Know%3f+Troubleshooting+Tools+Update" target="_blank" title = "Submit Did You Know? Troubleshooting Tools Update to del.icio.us"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://sqlblog.com/blogs/kalen_delaney/archive/2009/01/23/troubleshooting-tools-update.aspx&amp;amp;phase=2" target="_blank" title = "Submit Did You Know? Troubleshooting Tools Update to digg.com"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://sqlblog.com/blogs/kalen_delaney/archive/2009/01/23/troubleshooting-tools-update.aspx&amp;amp;title=Did+You+Know%3f+Troubleshooting+Tools+Update" target="_blank" title = "Submit Did You Know? Troubleshooting Tools Update to reddit.com"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://sqlblog.com/blogs/kalen_delaney/archive/2009/01/23/troubleshooting-tools-update.aspx&amp;amp;title=Did+You+Know%3f+Troubleshooting+Tools+Update" target="_blank" title = "Submit Did You Know? Troubleshooting Tools Update to DotNetKicks"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://sqlblog.com/blogs/kalen_delaney/archive/2009/01/23/troubleshooting-tools-update.aspx&amp;amp;title=Did+You+Know%3f+Troubleshooting+Tools+Update&amp;amp;;top=1" target="_blank" title = "Add Did You Know? Troubleshooting Tools Update to Live Bookmarks"&gt;live it!&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;img src="http://info.sqlblog.com/a.aspx?ZoneID=0&amp;BannerID=12&amp;AdvertiserID=1&amp;CampaignID=12&amp;Task=Get&amp;Mode=TEXT&amp;SiteID=1&amp;RandomNumber=463323" width="1" height="1" border="0"&gt;&lt;img src="http://sqlblog.com/aggbug.aspx?PostID=11399" width="1" height="1"&gt;</description><category domain="http://sqlblog.com/blogs/kalen_delaney/archive/tags/Tools/default.aspx">Tools</category><category domain="http://sqlblog.com/blogs/kalen_delaney/archive/tags/Troubleshooting/default.aspx">Troubleshooting</category><category domain="http://sqlblog.com/blogs/kalen_delaney/archive/tags/SQLTrace/default.aspx">SQLTrace</category></item><item><title>Did You Know? I'm speaking at a the SSWUG Virtual Conference!</title><link>http://sqlblog.com/blogs/kalen_delaney/archive/2009/01/20/sswug-virtual-conference.aspx</link><pubDate>Tue, 20 Jan 2009 23:00:00 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:11290</guid><dc:creator>Kalen Delaney</dc:creator><slash:comments>2</slash:comments><comments>http://sqlblog.com/blogs/kalen_delaney/comments/11290.aspx</comments><wfw:commentRss>http://sqlblog.com/blogs/kalen_delaney/commentrss.aspx?PostID=11290</wfw:commentRss><description>&lt;P&gt;SSWUG.org is hosting the second Ultimate Virtual Conference! Check it out at &lt;A title=http://www.vconferenceonline.com/shows/spring09/sql/ href="http://www.vconferenceonline.com/shows/spring09/sql/"&gt;http://www.vconferenceonline.com/shows/spring09/sql/&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;I'll be using this opportunity partly as a test to see if it will be worthwhile to go through SSWUG to record my &lt;EM&gt;SQL Server Internals&lt;/EM&gt; course. But in any case, I'm excited to be going down to Tucson to record two sessions, in the middle of February. The conference will be held April 22-24. &lt;/P&gt;
&lt;P&gt;Early bird discounts are available, plus you get an extra discount by using my VIP key when you register:&amp;nbsp; &lt;STRONG&gt;&lt;FONT size=2&gt;KDELVIP&lt;/FONT&gt;&lt;/STRONG&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Check it out!&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;A title=http://www.vconferenceonline.com/shows/spring09/sql/ href="http://www.vconferenceonline.com/shows/spring09/sql/"&gt;http://www.vconferenceonline.com/shows/spring09/sql/&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#ff00ff size=4&gt;~Kalen&lt;/FONT&gt;&lt;/P&gt;
&lt;BR&gt;&lt;div class = "shareblock"&gt;&lt;span class = "shareblockTitle"&gt;Share this post:&lt;/span&gt;&lt;span class = "shareblockLink"&gt; &lt;a href = "mailto:?subject=Did You Know? I'm speaking at a the SSWUG Virtual Conference!&amp;amp;body=Seen on SQLblog.com: %0A%0A%09Did You Know? I'm speaking at a the SSWUG Virtual Conference!%0A%0Ahttp://sqlblog.com/blogs/kalen_delaney/archive/2009/01/20/sswug-virtual-conference.aspx" target="_blank" title = "Email Did You Know? I'm speaking at a the SSWUG Virtual Conference!"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://sqlblog.com/blogs/kalen_delaney/archive/2009/01/20/sswug-virtual-conference.aspx&amp;amp;title=Did+You+Know%3f+I%27m+speaking+at+a+the+SSWUG+Virtual+Conference!" target="_blank" title = "Submit Did You Know? I'm speaking at a the SSWUG Virtual Conference! to del.icio.us"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://sqlblog.com/blogs/kalen_delaney/archive/2009/01/20/sswug-virtual-conference.aspx&amp;amp;phase=2" target="_blank" title = "Submit Did You Know? I'm speaking at a the SSWUG Virtual Conference! to digg.com"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://sqlblog.com/blogs/kalen_delaney/archive/2009/01/20/sswug-virtual-conference.aspx&amp;amp;title=Did+You+Know%3f+I%27m+speaking+at+a+the+SSWUG+Virtual+Conference!" target="_blank" title = "Submit Did You Know? I'm speaking at a the SSWUG Virtual Conference! to reddit.com"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://sqlblog.com/blogs/kalen_delaney/archive/2009/01/20/sswug-virtual-conference.aspx&amp;amp;title=Did+You+Know%3f+I%27m+speaking+at+a+the+SSWUG+Virtual+Conference!" target="_blank" title = "Submit Did You Know? I'm speaking at a the SSWUG Virtual Conference! to DotNetKicks"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://sqlblog.com/blogs/kalen_delaney/archive/2009/01/20/sswug-virtual-conference.aspx&amp;amp;title=Did+You+Know%3f+I%27m+speaking+at+a+the+SSWUG+Virtual+Conference!&amp;amp;;top=1" target="_blank" title = "Add Did You Know? I'm speaking at a the SSWUG Virtual Conference! to Live Bookmarks"&gt;live it!&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;img src="http://info.sqlblog.com/a.aspx?ZoneID=0&amp;BannerID=12&amp;AdvertiserID=1&amp;CampaignID=12&amp;Task=Get&amp;Mode=TEXT&amp;SiteID=1&amp;RandomNumber=463323" width="1" height="1" border="0"&gt;&lt;img src="http://sqlblog.com/aggbug.aspx?PostID=11290" width="1" height="1"&gt;</description><category domain="http://sqlblog.com/blogs/kalen_delaney/archive/tags/conference/default.aspx">conference</category></item><item><title>Geek City: Too Many Indexes!</title><link>http://sqlblog.com/blogs/kalen_delaney/archive/2009/01/18/too-many-indexes.aspx</link><pubDate>Sun, 18 Jan 2009 20:37:00 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:11244</guid><dc:creator>Kalen Delaney</dc:creator><slash:comments>5</slash:comments><comments>http://sqlblog.com/blogs/kalen_delaney/comments/11244.aspx</comments><wfw:commentRss>http://sqlblog.com/blogs/kalen_delaney/commentrss.aspx?PostID=11244</wfw:commentRss><description>&lt;P&gt;I wrote about &lt;A href="http://sqlblog.com/blogs/kalen_delaney/archive/2008/09/20/too-many-columns.aspx" target=_blank&gt;"Too Many Columns"&lt;/A&gt; last September, and along with changes in SQL Server 2008 that allow lots of columns, there is also the ability to create more than the old maximum of 249 nonclustered indexes on a table. I knew this fact, but somehow I overlooked it when updating the chapter on table structures in my new book. My omission also got past all the editors, and I just realized my mistake when reviewing the Indexes chapter, which was being updated for SQL 2008 by Kimberly Tripp.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;I found that Books Online has not been completely updated (and I have filed a doc bug on this already). This page still says the limit is 249&amp;nbsp; nonclustered indexes per table:&lt;/P&gt;
&lt;P&gt;&lt;A title=http://msdn.microsoft.com/en-us/library/ms190197.aspx href="http://msdn.microsoft.com/en-us/library/ms190197.aspx"&gt;http://msdn.microsoft.com/en-us/library/ms190197.aspx&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;However, the page for CREATE TABLE at &lt;A title=http://msdn.microsoft.com/en-us/library/ms174979.aspx href="http://msdn.microsoft.com/en-us/library/ms174979.aspx"&gt;http://msdn.microsoft.com/en-us/library/ms174979.aspx&lt;/A&gt; does say:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;Each table can contain a maximum of 999 nonclustered indexes, and 1 clustered index. These include the indexes generated to support any PRIMARY KEY and UNIQUE constraints defined for the table.&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;You can take my script to create a table with lots of columns, and edit it to create a UNIQUE constraint on every column. 
&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;DECLARE @create varchar(max);&lt;BR&gt;DECLARE @tabname sysname;&lt;BR&gt;DECLARE @numcols int; &lt;BR&gt;DECLARE @col int;&lt;BR&gt;SELECT @numcols = 900;&lt;BR&gt;SELECT @tabname = 'wide' + CONVERT(varchar, @numcols); &lt;/FONT&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;SELECT @create = 'CREATE TABLE ' + @tabname + &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' (ID int IDENTITY, '; &lt;/FONT&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;SELECT @col = 1;&lt;BR&gt;WHILE @col &amp;lt; @numcols BEGIN&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; IF (@col % 3) = 0 &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SELECT @create = @create + 'col' + CONVERT(varchar, @col) +&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' int UNIQUE,';&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; IF (@col % 3) = 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SELECT @create = @create + 'col' + CONVERT(varchar, @col) +&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' char(5) UNIQUE,';&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IF (@col % 3) = 2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SELECT @create = @create + 'col' + CONVERT(varchar, @col) +&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' varchar(25) UNIQUE,';&lt;BR&gt;SELECT @col = @col + 1;&lt;BR&gt;END;&lt;BR&gt;SELECT @create = @create + 'col' + CONVERT(varchar, @col) + &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' int default 0);'&lt;BR&gt;PRINT @create&amp;nbsp; &lt;BR&gt;EXECUTE (@create) &lt;/FONT&gt;
&lt;P&gt;After the table is created, you can examine &lt;EM&gt;sys.indexes&lt;/EM&gt;: 
&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;SELECT name, index_id, type_desc&lt;BR&gt;FROM sys.indexes&lt;BR&gt;WHERE object_id = object_id('wide900');&lt;/FONT&gt; 
&lt;P&gt;You'll definitely see more than 249 indexes! In addition, you might note that there is a gap in the &lt;EM&gt;index_id&lt;/EM&gt; values. The values 251 - 255 are not used, and this is for backward compatibility. In much older versions, &lt;EM&gt;index_id&lt;/EM&gt; (or &lt;EM&gt;indid&lt;/EM&gt;) 255 was reserved for the LOB data belonging to a table, and the values from 251 - 254 were reserved. So that range is still not used. But you can see that I have &lt;EM&gt;index_id&lt;/EM&gt; values from 256 - 905 in this table. 
&lt;P&gt;So, thanks Kim~ 
&lt;P&gt;One more place that Books Online could use a little tweaking is in the section on Programmability Enhancements: 
&lt;P&gt;&lt;A title=http://msdn.microsoft.com/en-us/library/cc645577.aspx href="http://msdn.microsoft.com/en-us/library/cc645577.aspx"&gt;http://msdn.microsoft.com/en-us/library/cc645577.aspx&lt;/A&gt; 
&lt;P&gt;The section on "Wide Tables" seems to imply that you need to have an XML column set in order to get 1000 indexes. It doesn't actually say that, so it's not really a bug, but it does seem to imply it: 
&lt;BLOCKQUOTE&gt;
&lt;P&gt;Wide tables are tables that contain one or more column sets. A wide table can contain up to 30000 columns, 1000 indexes, and 30000 statistics.&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Because you can only reach the 30000 column limit with a wide table, it seems to imply that the 1000 index limit is only for wide tables. But as my script shows, it is not. You can have up to 1024 columns in a non-wide table, and you can now have indexes on every one of those columns. 
&lt;P&gt;But do you want that many? That's for another post, another time... 
&lt;P&gt;Have fun! 
&lt;P&gt;&lt;FONT color=#ff00ff size=4&gt;~Kalen&lt;/FONT&gt;&lt;/P&gt;
&lt;BR&gt;&lt;div class = "shareblock"&gt;&lt;span class = "shareblockTitle"&gt;Share this post:&lt;/span&gt;&lt;span class = "shareblockLink"&gt; &lt;a href = "mailto:?subject=Geek City: Too Many Indexes!&amp;amp;body=Seen on SQLblog.com: %0A%0A%09Geek City: Too Many Indexes!%0A%0Ahttp://sqlblog.com/blogs/kalen_delaney/archive/2009/01/18/too-many-indexes.aspx" target="_blank" title = "Email Geek City: Too Many Indexes!"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://sqlblog.com/blogs/kalen_delaney/archive/2009/01/18/too-many-indexes.aspx&amp;amp;title=Geek+City%3a+Too+Many+Indexes!" target="_blank" title = "Submit Geek City: Too Many Indexes! to del.icio.us"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://sqlblog.com/blogs/kalen_delaney/archive/2009/01/18/too-many-indexes.aspx&amp;amp;phase=2" target="_blank" title = "Submit Geek City: Too Many Indexes! to digg.com"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://sqlblog.com/blogs/kalen_delaney/archive/2009/01/18/too-many-indexes.aspx&amp;amp;title=Geek+City%3a+Too+Many+Indexes!" target="_blank" title = "Submit Geek City: Too Many Indexes! to reddit.com"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://sqlblog.com/blogs/kalen_delaney/archive/2009/01/18/too-many-indexes.aspx&amp;amp;title=Geek+City%3a+Too+Many+Indexes!" target="_blank" title = "Submit Geek City: Too Many Indexes! to DotNetKicks"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://sqlblog.com/blogs/kalen_delaney/archive/2009/01/18/too-many-indexes.aspx&amp;amp;title=Geek+City%3a+Too+Many+Indexes!&amp;amp;;top=1" target="_blank" title = "Add Geek City: Too Many Indexes! to Live Bookmarks"&gt;live it!&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;img src="http://info.sqlblog.com/a.aspx?ZoneID=0&amp;BannerID=12&amp;AdvertiserID=1&amp;CampaignID=12&amp;Task=Get&amp;Mode=TEXT&amp;SiteID=1&amp;RandomNumber=463323" width="1" height="1" border="0"&gt;&lt;img src="http://sqlblog.com/aggbug.aspx?PostID=11244" width="1" height="1"&gt;</description><category domain="http://sqlblog.com/blogs/kalen_delaney/archive/tags/nonclustered+index/default.aspx">nonclustered index</category><category domain="http://sqlblog.com/blogs/kalen_delaney/archive/tags/books/default.aspx">books</category><category domain="http://sqlblog.com/blogs/kalen_delaney/archive/tags/indexes/default.aspx">indexes</category><category domain="http://sqlblog.com/blogs/kalen_delaney/archive/tags/SQL+Server+2008/default.aspx">SQL Server 2008</category></item><item><title>Did You Know? You, too, can be a Geek!</title><link>http://sqlblog.com/blogs/kalen_delaney/archive/2008/12/30/you-too-can-be-a-geek.aspx</link><pubDate>Wed, 31 Dec 2008 03:33:00 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:10824</guid><dc:creator>Kalen Delaney</dc:creator><slash:comments>5</slash:comments><comments>http://sqlblog.com/blogs/kalen_delaney/comments/10824.aspx</comments><wfw:commentRss>http://sqlblog.com/blogs/kalen_delaney/commentrss.aspx?PostID=10824</wfw:commentRss><description>&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Danny Gould has a new (beta) version of his Internals Viewer, that you can download from Codeplex at &lt;A title=http://www.codeplex.com/InternalsViewer href="http://www.codeplex.com/InternalsViewer"&gt;http://www.codeplex.com/InternalsViewer&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;I've just started playing around with it, and the coolest thing is that it integrates right with your Management Studio!&lt;/P&gt;
&lt;P&gt;The codeplex site include a Troubleshooting Guide and a User Guide.&lt;/P&gt;
&lt;P&gt;It does look like it can display SQL Server 2008 data pages that have been compressed. For pages with ROW compression you'll be able to see the data, but for PAGE compression, no translation is done. &lt;/P&gt;
&lt;P&gt;You can also request to have information from the transaction log displayed, but it's not the same as the 3rd party log reader tools, in that it doesn't give you the complete set of values that were inserted&amp;nbsp; or deleted. &lt;/P&gt;
&lt;P&gt;I'm still exploring its nuances, and now you can too!&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Have fun!&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#ff00ff size=4&gt;~Kalen&lt;/FONT&gt;&lt;/P&gt;
&lt;BR&gt;&lt;div class = "shareblock"&gt;&lt;span class = "shareblockTitle"&gt;Share this post:&lt;/span&gt;&lt;span class = "shareblockLink"&gt; &lt;a href = "mailto:?subject=Did You Know? You, too, can be a Geek!&amp;amp;body=Seen on SQLblog.com: %0A%0A%09Did You Know? You, too, can be a Geek!%0A%0Ahttp://sqlblog.com/blogs/kalen_delaney/archive/2008/12/30/you-too-can-be-a-geek.aspx" target="_blank" title = "Email Did You Know? You, too, can be a Geek!"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://sqlblog.com/blogs/kalen_delaney/archive/2008/12/30/you-too-can-be-a-geek.aspx&amp;amp;title=Did+You+Know%3f+You%2c+too%2c+can+be+a+Geek!" target="_blank" title = "Submit Did You Know? You, too, can be a Geek! to del.icio.us"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://sqlblog.com/blogs/kalen_delaney/archive/2008/12/30/you-too-can-be-a-geek.aspx&amp;amp;phase=2" target="_blank" title = "Submit Did You Know? You, too, can be a Geek! to digg.com"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://sqlblog.com/blogs/kalen_delaney/archive/2008/12/30/you-too-can-be-a-geek.aspx&amp;amp;title=Did+You+Know%3f+You%2c+too%2c+can+be+a+Geek!" target="_blank" title = "Submit Did You Know? You, too, can be a Geek! to reddit.com"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://sqlblog.com/blogs/kalen_delaney/archive/2008/12/30/you-too-can-be-a-geek.aspx&amp;amp;title=Did+You+Know%3f+You%2c+too%2c+can+be+a+Geek!" target="_blank" title = "Submit Did You Know? You, too, can be a Geek! to DotNetKicks"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://sqlblog.com/blogs/kalen_delaney/archive/2008/12/30/you-too-can-be-a-geek.aspx&amp;amp;title=Did+You+Know%3f+You%2c+too%2c+can+be+a+Geek!&amp;amp;;top=1" target="_blank" title = "Add Did You Know? You, too, can be a Geek! to Live Bookmarks"&gt;live it!&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;img src="http://info.sqlblog.com/a.aspx?ZoneID=0&amp;BannerID=12&amp;AdvertiserID=1&amp;CampaignID=12&amp;Task=Get&amp;Mode=TEXT&amp;SiteID=1&amp;RandomNumber=463323" width="1" height="1" border="0"&gt;&lt;img src="http://sqlblog.com/aggbug.aspx?PostID=10824" width="1" height="1"&gt;</description><category domain="http://sqlblog.com/blogs/kalen_delaney/archive/tags/internals/default.aspx">internals</category></item></channel></rss>