<?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>Search results matching tag 'SQL 11'</title><link>http://sqlblog.com/search/SearchResults.aspx?o=DateDescending&amp;tag=SQL+11&amp;orTags=0</link><description>Search results matching tag 'SQL 11'</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP2 (Build: 61129.1)</generator><item><title>Connect Digest : 2011-05-02</title><link>http://sqlblog.com/blogs/aaron_bertrand/archive/2011/05/02/connect-digest-2011-05-02.aspx</link><pubDate>Mon, 02 May 2011 11:15:00 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:35217</guid><dc:creator>AaronBertrand</dc:creator><description>&lt;p&gt;This week, after seeing a lot of the DMV enhancements made in &lt;a href="http://sqlblog.com/blogs/aaron_bertrand/archive/2011/04/25/more-changes-you-might-not-have-noticed-in-the-sql-server-2008-r2-sp1-ctp.aspx" title="http://sqlblog.com/blogs/aaron_bertrand/archive/2011/04/25/more-changes-you-might-not-have-noticed-in-the-sql-server-2008-r2-sp1-ctp.aspx" target="_blank"&gt;SQL Server 2008 R2 SP1&lt;/a&gt;, I thought I would take a look at some dynamic management view/function requests.&lt;/p&gt;&lt;p&gt;&lt;br&gt;&lt;b&gt;Page split personality&lt;/b&gt; &lt;br&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;Michael Zilberstein &lt;a href="http://sqlblog.com/blogs/michael_zilberstein/archive/2011/04/25/35175.aspx" title="http://sqlblog.com/blogs/michael_zilberstein/archive/2011/04/25/35175.aspx" target="_blank"&gt;blogged on Monday&lt;/a&gt; about how Extended Events and the transaction log differ in the way they report page split information, and that it would be useful to have accurate information about these events available in the DMVs. So he filed this Connect item:&lt;br&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;&lt;a href="http://connect.microsoft.com/SQLServer/feedback/details/664900/please-add-page-splits-data-per-index-index-level-and-page-split-type" title="http://connect.microsoft.com/SQLServer/feedback/details/664900/please-add-page-splits-data-per-index-index-level-and-page-split-type" target="_blank"&gt;#664900 : Please add page splits data per index, index level and page split type&lt;/a&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;I asked for a very similar item back in 2008, but thought that it belonged in sys.dm_db_index_physical_stats:&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;&lt;a href="http://connect.microsoft.com/SQLServer/feedback/details/388403/include-page-split-information-in-sys-dm-db-index-physical-stats" title="http://connect.microsoft.com/SQLServer/feedback/details/388403/include-page-split-information-in-sys-dm-db-index-physical-stats" target="_blank"&gt;#388403 : Include page split information in sys.dm_db_index_physical_stats&lt;/a&gt;&amp;nbsp; &lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;They've already provided additional info via Extended Events (see &lt;a href="http://connect.microsoft.com/SQLServer/feedback/details/388482/sql-server-extended-events-page-split-event-additions" title="http://connect.microsoft.com/SQLServer/feedback/details/388482/sql-server-extended-events-page-split-event-additions" target="_blank"&gt;#388482 : SQL Server Extended Events Page/Split Event Additions&lt;/a&gt;) so, hopefully, they will take our DMV requests seriously as well.&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;br&gt;&lt;b&gt;How stale is my database?&lt;/b&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;Kimberly Tripp (&lt;a href="http://www.sqlskills.com/blogs/kimberly/" title="http://www.sqlskills.com/blogs/kimberly/" target="_blank"&gt;blog&lt;/a&gt; | &lt;a href="http://twitter.com/KimberlyLTripp" title="http://twitter.com/KimberlyLTripp" target="_blank"&gt;twitter&lt;/a&gt;) posted this item, asking for a column in sys.databases to reflect last accessed time (I think it belongs in an existing or new DMV, not in the catalog view). An additional comment on the item suggested a terrific enhancement to this potential feature, where each individual login would be represented with their last access time, making it easy to differentiate when a database is only being accessed by system or background processes.&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;&lt;a href="http://connect.microsoft.com/SQLServer/feedback/details/659846/database-last-accessed-time" title="http://connect.microsoft.com/SQLServer/feedback/details/659846/database-last-accessed-time" target="_blank"&gt;#659846 : Database last accessed time&lt;/a&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;They've recently rejected a similar item requesting last accessed time for objects within a database (see &lt;a href="http://connect.microsoft.com/SQLServer/feedback/details/454714/i-should-be-able-to-see-the-last-time-an-object-was-accessed-in-sysobjects" title="http://connect.microsoft.com/SQLServer/feedback/details/454714/i-should-be-able-to-see-the-last-time-an-object-was-accessed-in-sysobjects" target="_blank"&gt;#454714 : I should be able to see the last time an object was accessed in sysobjects&lt;/a&gt;), though that one had zero votes, so I'm hopeful that Kimberly's request may be deemed both easier to implement and more important to the community. &lt;br&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;br&gt;&lt;b&gt;I'm an E7-8800, what are you?&lt;/b&gt;&lt;br&gt;&lt;/p&gt;&lt;blockquote&gt;Glenn Alan Berry (&lt;a href="http://sqlserverperformance.wordpress.com/" title="http://sqlserverperformance.wordpress.com/" target="_blank"&gt;blog&lt;/a&gt; | &lt;a href="http://twitter.com/GlennAlanBerry" title="http://twitter.com/GlennAlanBerry" target="_blank"&gt;twitter&lt;/a&gt;) asked for an additional column on the sys.dm_os_sys_info DMV that reflects the CPU's description (e.g. Xeon X5505). As you may have noticed on his blog, Glenn spends a lot of effort on analyzing performance of workloads on different CPUs, and there are some pretty substantial differences between CPUs that may look quite similar to the average person - especially when seeing vastly different performance on two servers that are otherwise very similar (same amount of RAM, same SAN, etc).&lt;br&gt;&lt;blockquote&gt;&lt;p&gt;&lt;a href="http://connect.microsoft.com/SQLServer/feedback/details/657435/add-a-processor-description-column-to-sys-dm-os-sys-info-in-sql-server-denali" title="http://connect.microsoft.com/SQLServer/feedback/details/657435/add-a-processor-description-column-to-sys-dm-os-sys-info-in-sql-server-denali" target="_blank"&gt;#657435 : Add a processor_description column to sys.dm_os_sys_info in SQL Server Denali&lt;/a&gt;&lt;br&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;An additional comment requested that the true observed speed would be shown, as opposed (or in addition) to the manufacturer's stated clock speed - the true speed is a number than can vary greatly if you are using power saving options.&lt;br&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;br&gt;&lt;b&gt;You're a word, but are you reserved?&lt;/b&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;This almost certainly wouldn't be in a DMV, but I still like the idea and it almost fits here. Greg Low (&lt;a href="http://sqlblog.com/blogs/greg_low/default.aspx" title="http://sqlblog.com/blogs/greg_low/default.aspx" target="_blank"&gt;blog&lt;/a&gt; | &lt;a href="http://twitter.com/greglow" title="http://twitter.com/greglow" target="_blank"&gt;twitter&lt;/a&gt;) is requesting a system view of some kind that exposes a list of reserved words - my comment here was that relying on IntelliSense alone is a fool's errand.&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;&lt;a href="http://connect.microsoft.com/SQLServer/feedback/details/653455/system-view-that-lists-reserved-words" title="http://connect.microsoft.com/SQLServer/feedback/details/653455/system-view-that-lists-reserved-words" target="_blank"&gt;#653455 : System View that lists Reserved Words&lt;/a&gt;&amp;nbsp; &lt;br&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;On a somewhat-but-not-really-related note, Meredith Ryan-Smith (&lt;a href="http://meredithryansmith.wordpress.com/" title="http://meredithryansmith.wordpress.com/" target="_blank"&gt;blog&lt;/a&gt; | &lt;a href="http://twitter.com/coffegrl" title="http://twitter.com/coffegrl" target="_blank"&gt;twitter&lt;/a&gt;) recently &lt;a href="http://meredithryansmith.wordpress.com/2011/04/25/of-course-thats-how-you-spell-sp_msacquireheadofqueuelock/" title="http://meredithryansmith.wordpress.com/2011/04/25/of-course-thats-how-you-spell-sp_msacquireheadofqueuelock/" target="_blank"&gt;blogged about a workaround&lt;/a&gt; she used to export all of the object names from sys.all_objects into a custom dictionary for use in Word, PowerPoint, etc. to avoid the ugly red squiggly lines pointing out that you misspelled sp_server_diagnostics and sp_who2. I think that if the metadata Greg is asking for were made available, then this idea would be easy to extend to reserved words, so that Word also wouldn't try to convince you that perfectly valid "words" like COLUMNSTORE and DATA_COMPRESSION are spelled wrong.&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;br&gt;&lt;b&gt;Do you really like DBCC?&lt;/b&gt;&lt;br&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;Greg Low also requested that the information returned by running DBCC SHOW_STATISTICS be made available through a DMV (another user suggested &lt;a href="http://connect.microsoft.com/SQLServer/feedback/details/475270/add-column-to-sys-stats-to-indicate-if-the-optimizer-considers-statistics-out-of-date-invalid" title="http://connect.microsoft.com/SQLServer/feedback/details/475270/add-column-to-sys-stats-to-indicate-if-the-optimizer-considers-statistics-out-of-date-invalid" target="_blank"&gt;adding a column like is_stale to sys.stats&lt;/a&gt;, but I think a separate DMV makes more sense).&lt;br&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt; &lt;a href="http://connect.microsoft.com/SQLServer/feedback/details/611155/dbcc-show-statistics-info-should-be-available-as-a-dmv" title="http://connect.microsoft.com/SQLServer/feedback/details/611155/dbcc-show-statistics-info-should-be-available-as-a-dmv" target="_blank"&gt;#611155 : DBCC SHOW_STATISTICS info should be available as a DMV&lt;/a&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;Exposing this information in a DMV would also, presumably, make it easier to access information like STATS_DATE without having to be in the context of that database (see &lt;a href="http://connect.microsoft.com/SQLServer/feedback/details/654972/stats-date-only-works-as-documented-when-current-db-is-where-the-tables-are" title="http://connect.microsoft.com/SQLServer/feedback/details/654972/stats-date-only-works-as-documented-when-current-db-is-where-the-tables-are" target="_blank"&gt;#654972 : STATS_DATE only works as documented when current db is where the tables are&lt;/a&gt;).&lt;/p&gt;&lt;p&gt;&amp;nbsp; &lt;br&gt;&lt;/p&gt;&lt;/blockquote&gt;</description></item><item><title>More changes you might not have noticed in SQL Server 2008 R2 SP1 CTP</title><link>http://sqlblog.com/blogs/aaron_bertrand/archive/2011/04/25/more-changes-you-might-not-have-noticed-in-the-sql-server-2008-r2-sp1-ctp.aspx</link><pubDate>Mon, 25 Apr 2011 14:28:00 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:35141</guid><dc:creator>AaronBertrand</dc:creator><description>&lt;p&gt;On Friday,&amp;nbsp;after Microsoft released the CTP,&amp;nbsp;I talked a little bit about &lt;a href="http://sqlblog.com/blogs/aaron_bertrand/archive/2011/04/22/sql-server-2008-r2-sp1-ctp-is-now-available.aspx" title="http://sqlblog.com/blogs/aaron_bertrand/archive/2011/04/22/sql-server-2008-r2-sp1-ctp-is-now-available.aspx" target="_blank"&gt;the changes you will see in SQL Server 2008 R2 SP1&lt;/a&gt;. Namely:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;new rowcount-related columns in sys.dm_exec_query_stats;&lt;/li&gt;

&lt;li&gt;extended functionality of the FORCESEEK query hint;&lt;/li&gt;

&lt;li&gt;a new FORCESCAN query hint;&lt;/li&gt;

&lt;li&gt;support for 15,000 partitions (to match new functionality added in SQL Server 2008 SP2);&lt;/li&gt;

&lt;li&gt;a new DAC framework for in-place upgrades; and,&lt;br&gt;&lt;/li&gt;

&lt;li&gt;a new disk space control in PowerPivot for SharePoint.&lt;br&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Since then, I have been digging a little deeper, as the release notes are pretty vague about the changes, and the Books Online updates have not been published yet - at least not that I have seen (and I don't expect them to be published until after the service pack is RTM).&lt;/p&gt;

&lt;p&gt;In addition to the new columns in sys.dm_exec_query_stats, there are some other DMVs that have been added or changed in comparison to the RTM release of SQL Server 2008 R2, and some new Extended Events objects as well. I'll also note below each item description whether the change is present in Denali (initially I thought there would be more, but there is only one case where this has happened for DMVs in CTP1).&lt;br&gt;&lt;/p&gt;

&lt;p&gt;&lt;br&gt;&lt;b&gt;New system objects:&lt;/b&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;img src="http://bertrandaaron.files.wordpress.com/2011/04/r2sp1_new_dmvs.png" border="1" height="151" width="402"&gt;&amp;nbsp;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;br&gt;&lt;b&gt;All columns for new DMVs, and new columns on existing DMVs:&lt;/b&gt; &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;img src="http://bertrandaaron.files.wordpress.com/2011/04/r2sp1_newdmvcolumns.png" border="1" height="531" width="468"&gt;&amp;nbsp;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;b&gt;&lt;br&gt;&lt;font color="#000000"&gt;sys.dm_os_volume_stats&lt;/font&gt;&lt;/b&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;This new Dynamic Management Function provides you with information about the disk subsystem where your database files live. It takes the parameters @DatabaseID and @FileID, making it easy to CROSS APPLY against sys.sysalfiles to get all kinds of information about all of the databases across your instance. You can see free vs. available space, whether the drive supports compression / alternate streams / sparse files, and whether the drive is compressed or read only:&lt;/p&gt;

&lt;blockquote&gt;
&lt;table bgcolor="#eeeeee" cellpadding="0" cellspacing="0"&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;pre style="padding:10px 20px;font-size:12px;font-family:consolas,lucida console,courier new,courier;-moz-background-inline-policy:continuous;"&gt;&lt;font color="blue"&gt;SELECT &lt;/font&gt;&lt;br&gt;&lt;font color="blue"&gt;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="black"&gt;vs.volume_mount_point&lt;/font&gt;&lt;font color="gray"&gt;, &lt;/font&gt;&lt;font color="green"&gt;-- e.g. C:\&lt;/font&gt;&lt;br&gt;&lt;font color="green"&gt;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="black"&gt;vs.volume_id&lt;/font&gt;&lt;font color="gray"&gt;,&lt;/font&gt;&lt;br&gt;&lt;font color="gray"&gt;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="black"&gt;vs.logical_volume_name&lt;/font&gt;&lt;font color="gray"&gt;,&lt;/font&gt;&lt;br&gt;&lt;font color="gray"&gt;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="black"&gt;vs.file_system_type&lt;/font&gt;&lt;font color="gray"&gt;,&lt;/font&gt;&lt;font color="green"&gt;  -- e.g. NTFS&lt;/font&gt;&lt;br&gt;&lt;font color="green"&gt;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="black"&gt;db =&lt;/font&gt;&lt;font color="blue"&gt; &lt;/font&gt;&lt;font color="magenta"&gt;DB_NAME&lt;/font&gt;&lt;font color="gray"&gt;(&lt;/font&gt;&lt;font color="black"&gt;f.dbid&lt;/font&gt;&lt;font color="gray"&gt;), &lt;/font&gt;&lt;br&gt;&lt;font color="gray"&gt;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="black"&gt;[file] =&lt;/font&gt;&lt;font color="blue"&gt; &lt;/font&gt;&lt;font color="black"&gt;f.[name]&lt;/font&gt;&lt;font color="gray"&gt;,&lt;/font&gt;&lt;br&gt;&lt;font color="gray"&gt;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="black"&gt;f.[filename]&lt;/font&gt;&lt;font color="gray"&gt;,&lt;/font&gt;&lt;br&gt;&lt;font color="gray"&gt;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="black"&gt;file_size_MB =&lt;/font&gt;&lt;font color="blue"&gt; &lt;/font&gt;&lt;font color="black"&gt;f.[size] &lt;/font&gt;&lt;font color="gray"&gt;/ &lt;/font&gt;&lt;font color="black"&gt;128&lt;/font&gt;&lt;font color="gray"&gt;,&lt;/font&gt;&lt;br&gt;&lt;font color="gray"&gt;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="black"&gt;drive_size_MB =&lt;/font&gt;&lt;font color="blue"&gt; &lt;/font&gt;&lt;font color="black"&gt;vs.total_bytes&lt;/font&gt;&lt;font color="gray"&gt;/&lt;/font&gt;&lt;font color="black"&gt;1024&lt;/font&gt;&lt;font color="gray"&gt;/&lt;/font&gt;&lt;font color="black"&gt;1024&lt;/font&gt;&lt;font color="gray"&gt;, &lt;/font&gt;&lt;br&gt;&lt;font color="gray"&gt;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="black"&gt;drive_free_space_MB =&lt;/font&gt;&lt;font color="blue"&gt; &lt;/font&gt;&lt;font color="black"&gt;vs.available_bytes&lt;/font&gt;&lt;font color="gray"&gt;/&lt;/font&gt;&lt;font color="black"&gt;1024&lt;/font&gt;&lt;font color="gray"&gt;/&lt;/font&gt;&lt;font color="black"&gt;1024&lt;/font&gt;&lt;font color="gray"&gt;, &lt;/font&gt;&lt;br&gt;&lt;font color="gray"&gt;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="black"&gt;drive_percent_free =&lt;/font&gt;&lt;font color="blue"&gt; &lt;/font&gt;&lt;font color="magenta"&gt;CONVERT&lt;/font&gt;&lt;font color="gray"&gt;(&lt;/font&gt;&lt;font color="blue"&gt;DECIMAL&lt;/font&gt;&lt;font color="gray"&gt;(&lt;/font&gt;&lt;font color="black"&gt;5&lt;/font&gt;&lt;font color="gray"&gt;,&lt;/font&gt;&lt;font color="black"&gt;2&lt;/font&gt;&lt;font color="gray"&gt;), &lt;/font&gt;&lt;font color="black"&gt;vs.available_bytes &lt;/font&gt;&lt;font color="gray"&gt;* &lt;/font&gt;&lt;font color="black"&gt;100.0 &lt;/font&gt;&lt;font color="gray"&gt;/ &lt;/font&gt;&lt;font color="black"&gt;vs.total_bytes&lt;/font&gt;&lt;font color="gray"&gt;),&lt;/font&gt;&lt;br&gt;&lt;font color="gray"&gt;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="black"&gt;vs.supports_compression&lt;/font&gt;&lt;font color="gray"&gt;, &lt;/font&gt;&lt;br&gt;&lt;font color="gray"&gt;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="black"&gt;vs.supports_alternate_streams&lt;/font&gt;&lt;font color="gray"&gt;, &lt;/font&gt;&lt;br&gt;&lt;font color="gray"&gt;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="black"&gt;vs.supports_sparse_files&lt;/font&gt;&lt;font color="gray"&gt;, &lt;/font&gt;&lt;br&gt;&lt;font color="gray"&gt;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="black"&gt;vs.is_read_only&lt;/font&gt;&lt;font color="gray"&gt;, &lt;/font&gt;&lt;br&gt;&lt;font color="gray"&gt;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="black"&gt;vs.is_compressed&lt;/font&gt;&lt;br&gt;&lt;font color="blue"&gt;FROM&lt;/font&gt;&lt;br&gt;&lt;font color="blue"&gt;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font&gt;&lt;font color="green"&gt;sys&lt;/font&gt;&lt;/font&gt;&lt;font color="black"&gt;.&lt;/font&gt;&lt;font&gt;&lt;font color="green"&gt;sysaltfiles&lt;/font&gt;&lt;/font&gt;&lt;font color="black"&gt; &lt;/font&gt;&lt;font color="blue"&gt;AS &lt;/font&gt;&lt;font color="black"&gt;f&lt;/font&gt;&lt;br&gt;&lt;font&gt;&lt;font color="blue"&gt;CROSS APPLY&lt;/font&gt;&lt;/font&gt;&lt;br&gt;&lt;font color="black"&gt;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font&gt;&lt;font color="green"&gt;sys&lt;/font&gt;&lt;/font&gt;&lt;font color="black"&gt;.&lt;/font&gt;&lt;font&gt;&lt;font color="green"&gt;dm_os_volume_stats&lt;/font&gt;&lt;/font&gt;&lt;font color="gray"&gt;(&lt;/font&gt;&lt;font color="black"&gt;f.dbid&lt;/font&gt;&lt;font color="gray"&gt;, &lt;/font&gt;&lt;font color="black"&gt;f.fileid&lt;/font&gt;&lt;font color="gray"&gt;) &lt;/font&gt;&lt;font color="blue"&gt;AS &lt;/font&gt;&lt;font color="black"&gt;vs&lt;/font&gt;&lt;br&gt;&lt;font color="blue"&gt;WHERE&lt;/font&gt;&lt;br&gt;&lt;font color="blue"&gt;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="black"&gt;f.dbid &lt;/font&gt;&lt;font color="gray"&gt;&amp;lt; &lt;/font&gt;&lt;font color="black"&gt;32767&lt;/font&gt;&lt;br&gt;&lt;font color="blue"&gt;ORDER BY&lt;/font&gt;&lt;br&gt;&lt;font color="blue"&gt;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="black"&gt;drive_percent_free &lt;/font&gt;&lt;font color="blue"&gt;DESC&lt;/font&gt;&lt;font color="gray"&gt;,&lt;/font&gt;&lt;br&gt;&lt;font color="gray"&gt;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="black"&gt;db&lt;/font&gt;&lt;font color="gray"&gt;,&lt;/font&gt;&lt;br&gt;&lt;font color="gray"&gt;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="black"&gt;[file]&lt;/font&gt;&lt;font color="gray"&gt;;&lt;/font&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;/blockquote&gt;

&lt;p&gt;This is much more powerful than the undocumented and unsupported extended procedure xp_fixeddrives, and I assume - though I haven't tested yet - that it will see things like external hard drives, mount points and other specialty devices. Granted, with or without the usage of sys.sysaltfiles, it is only going to tell you about volumes where you actually have at least one database file.&lt;br&gt;&lt;/p&gt;

&lt;p&gt;&lt;font size="2"&gt;&lt;i&gt;* Not yet in Denali. &lt;/i&gt;&lt;/font&gt;&lt;br&gt;&lt;/p&gt;
&lt;/blockquote&gt;


&lt;p&gt;&lt;br&gt;&lt;b&gt;sys.sp_db_increased_partitions&lt;/b&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;This stored procedure was first introduced in SQL Server 2008 SP2, and enables you to create up to 15,000 partitions on a single table (before this change, the maximum was 1,000 partitions). The reason for the change is that some big customers wanted a partition per day, and the built-in limit of 1,000 meant they couldn't even reach three years of data using that structure. The stored procedure takes two parameters: the database name (@dbname sysname) and whether to turn the setting on or off (@increased_partitions varchar(6)). The latter parameter can take any of the following values: 'on', 'off', 'true' or 'false' - I recommend using lower case to be sure the parameters are not misinterpreted on a binary or case-sensitive collation. As an example, to turn on and then off increased partition support for the AdventureWorks database, you can run the following code:
&lt;/p&gt;

&lt;blockquote&gt;
&lt;table bgcolor="#eeeeee" cellpadding="0" cellspacing="0"&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;pre style="padding:10px 20px;font-size:12px;font-family:consolas,lucida console,courier new,courier;-moz-background-inline-policy:continuous;"&gt;&lt;font color="blue"&gt;EXEC &lt;/font&gt;&lt;font&gt;&lt;font color="green"&gt;sys&lt;/font&gt;&lt;/font&gt;&lt;font color="black"&gt;.&lt;/font&gt;&lt;font color="darkred"&gt;sp_db_increased_partitions &lt;/font&gt;&lt;font color="#434343"&gt;&lt;br&gt;    @dbname =&lt;/font&gt;&lt;font color="blue"&gt; &lt;/font&gt;&lt;font color="red"&gt;N'AdventureWorks'&lt;/font&gt;&lt;font color="gray"&gt;, &lt;/font&gt;&lt;font color="#434343"&gt;&lt;br&gt;    @increased_partitions =&lt;/font&gt;&lt;font color="blue"&gt; &lt;/font&gt;&lt;font color="red"&gt;'on'&lt;/font&gt;&lt;font color="gray"&gt;;&lt;br&gt;&lt;/font&gt;&lt;font color="blue"&gt;&lt;br&gt;EXEC &lt;/font&gt;&lt;font&gt;&lt;font color="green"&gt;sys&lt;/font&gt;&lt;/font&gt;&lt;font color="black"&gt;.&lt;/font&gt;&lt;font color="darkred"&gt;sp_db_increased_partitions &lt;br&gt;    &lt;/font&gt;&lt;font color="#434343"&gt;@dbname =&lt;/font&gt;&lt;font color="blue"&gt; &lt;/font&gt;&lt;font color="red"&gt;N'AdventureWorks'&lt;/font&gt;&lt;font color="gray"&gt;, &lt;/font&gt;&lt;font color="#434343"&gt;&lt;br&gt;    @increased_partitions =&lt;/font&gt;&lt;font color="blue"&gt; &lt;/font&gt;&lt;font color="red"&gt;'off'&lt;/font&gt;&lt;font color="gray"&gt;;&lt;br&gt;&lt;/font&gt;&lt;font color="green"&gt;&lt;br&gt;-- or&lt;br&gt;&lt;br&gt;&lt;/font&gt;&lt;font color="blue"&gt;EXEC &lt;/font&gt;&lt;font&gt;&lt;font color="green"&gt;sys&lt;/font&gt;&lt;/font&gt;&lt;font color="black"&gt;.&lt;/font&gt;&lt;font color="darkred"&gt;sp_db_increased_partitions &lt;/font&gt;&lt;font color="#434343"&gt;&lt;br&gt;    @dbname =&lt;/font&gt;&lt;font color="blue"&gt; &lt;/font&gt;&lt;font color="red"&gt;N'AdventureWorks'&lt;/font&gt;&lt;font color="gray"&gt;, &lt;br&gt;    &lt;/font&gt;&lt;font color="#434343"&gt;@increased_partitions =&lt;/font&gt;&lt;font color="blue"&gt; &lt;/font&gt;&lt;font color="red"&gt;'true'&lt;/font&gt;&lt;font color="gray"&gt;;&lt;br&gt;&lt;br&gt;&lt;/font&gt;&lt;font color="blue"&gt;EXEC &lt;/font&gt;&lt;font&gt;&lt;font color="green"&gt;sys&lt;/font&gt;&lt;/font&gt;&lt;font color="black"&gt;.&lt;/font&gt;&lt;font color="darkred"&gt;sp_db_increased_partitions &lt;/font&gt;&lt;font color="#434343"&gt;&lt;br&gt;    @dbname =&lt;/font&gt;&lt;font color="blue"&gt; &lt;/font&gt;&lt;font color="red"&gt;N'AdventureWorks'&lt;/font&gt;&lt;font color="gray"&gt;, &lt;/font&gt;&lt;font color="#434343"&gt;&lt;br&gt;    @increased_partitions =&lt;/font&gt;&lt;font color="blue"&gt; &lt;/font&gt;&lt;font color="red"&gt;'false'&lt;/font&gt;&lt;font color="gray"&gt;;&lt;/font&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;font size="2"&gt;&lt;i&gt;* Not yet in Denali.&lt;/i&gt;&lt;/font&gt;&lt;br&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;br&gt;&lt;b&gt;sys.sp_MScheckIsPubOfSub&lt;/b&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;I assume this stored procedure is not meant for public consumption, but is probably used by other internal stored procedures involving replication. From the comments in the stored procedure: &lt;br&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;table bgcolor="#eeeeee" cellpadding="0" cellspacing="0"&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;pre style="padding:10px 20px;font-size:12px;font-family:consolas,lucida console,courier new,courier;-moz-background-inline-policy:continuous;color:green;"&gt;/*&lt;br&gt;&amp;nbsp; *&amp;nbsp; This proc will discover if the specified subid is a subscriber to the specified pubid.&lt;br&gt;&amp;nbsp; *&amp;nbsp; Currently, this is a one level check, it does not support n-level re-publishing.&lt;br&gt;*/&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;/blockquote&gt;

&lt;p&gt;The procedure takes two uniqueidentifer input parameters (@pubid and @subid), and returns a single output parameter (@pubOfSub bit).&lt;/p&gt;

&lt;p&gt;&lt;font size="2"&gt;&lt;i&gt;* Not yet in Denali. &lt;/i&gt;&lt;/font&gt;&lt;br&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;br&gt;&lt;b&gt;sys.dm_os_windows_info&lt;/b&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;This new DMV complements sys.dm_os_sys_info with a bit of information about the underlying Windows operating system - version and service pack information, sku and language.
&lt;/p&gt;

&lt;blockquote&gt;
&lt;table bgcolor="#eeeeee" cellpadding="0" cellspacing="0"&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;pre style="padding:10px 20px;font-size:12px;font-family:consolas,lucida console,courier new,courier;-moz-background-inline-policy:continuous;"&gt;&lt;font color="blue"&gt;SELECT&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="black"&gt;windows_release&lt;/font&gt;&lt;font color="gray"&gt;,&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="black"&gt;windows_service_pack_level&lt;/font&gt;&lt;font color="gray"&gt;,&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="black"&gt;windows_sku&lt;/font&gt;&lt;font color="gray"&gt;,&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="black"&gt;os_language_version&lt;br&gt;&lt;/font&gt;&lt;font color="blue"&gt;FROM&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font&gt;&lt;font color="green"&gt;sys&lt;/font&gt;&lt;/font&gt;&lt;font color="black"&gt;.&lt;font color="green"&gt;d&lt;/font&gt;&lt;/font&gt;&lt;font&gt;&lt;font color="green"&gt;m_os_windows_info&lt;/font&gt;&lt;/font&gt;&lt;font color="gray"&gt;;&lt;/font&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;/blockquote&gt;

On my system (US English Windows 7 Ultimate SP1), the following results were returned (the only other windows_sku value I know of for this DMV so far is 28, for Windows 7 Ultimate N):

&lt;blockquote&gt;
&lt;p&gt;&lt;img src="http://bertrandaaron.files.wordpress.com/2011/04/r2sp1_wininfo.png" border="1" height="37" width="483"&gt;&amp;nbsp;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;font size="2"&gt;&lt;i&gt;* Not yet in Denali.&lt;/i&gt;&lt;/font&gt;&lt;br&gt; &lt;br&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;b&gt;sys.dm_server_memory_dumps&lt;/b&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Thankfully I have only had to look into memory dumps a couple of times, but this new DMV will give you a row for each dump that has been generated, including the name of the file, when it was created, and how big it is:&lt;/p&gt;
&lt;/blockquote&gt;

&lt;blockquote&gt;
&lt;blockquote&gt;
&lt;table bgcolor="#eeeeee" cellpadding="0" cellspacing="0"&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;pre style="padding:10px 20px;font-size:12px;font-family:consolas,lucida console,courier new,courier;-moz-background-inline-policy:continuous;"&gt;&lt;font color="blue"&gt;SELECT&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="black"&gt;[filename]&lt;/font&gt;&lt;font color="gray"&gt;,&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="black"&gt;creation_time&lt;/font&gt;&lt;font color="gray"&gt;,&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="black"&gt;size_in_bytes&lt;br&gt;&lt;/font&gt;&lt;font color="blue"&gt;FROM&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="green"&gt;sys&lt;/font&gt;&lt;font&gt;&lt;font color="black"&gt;.&lt;/font&gt;&lt;/font&gt;&lt;font color="green"&gt;dm_server_memory_dumps;&lt;/font&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;/blockquote&gt;

&lt;p&gt;And also thankfully, this query returns 0 rows on all of the systems I have updated to the CTP of Service Pack 1. Note that, unlike almost every other date/time-related column in every DMV in the system, creation_time is returned as datetimeoffset, not datetime. Just something to keep in mind if you are accessing this data programmatically. &lt;/p&gt;

&lt;p&gt;&lt;font size="2"&gt;&lt;i&gt;* Not yet in Denali.&lt;/i&gt;&lt;/font&gt;&lt;/p&gt;
&lt;/blockquote&gt;


&lt;p&gt;&lt;br&gt;&lt;b&gt;sys.dm_server_registry&lt;/b&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;One of the things I've always hated is having to resort to the undocumented and unsupported extended procedure xp_regread. This DMV eliminates the need to use that xp, provided you are after information that is explicitly relevant to the current instance of SQL Server. On this particular instance, I get information about the engine and SQL Server Agent services (including service account names, startup parameters and agent history properties), as well as plenty of network-related information that is very tedious to obtain in current versions (for example, the port(s) in use and whether they are dynamic):&lt;/p&gt;

&lt;blockquote&gt;
&lt;table bgcolor="#eeeeee" cellpadding="0" cellspacing="0"&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;pre style="padding:10px 20px;font-size:12px;font-family:consolas,lucida console,courier new,courier;-moz-background-inline-policy:continuous;"&gt;&lt;font color="blue"&gt;SELECT &lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="black"&gt;registry_key&lt;/font&gt;&lt;font color="gray"&gt;,&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="black"&gt;value_name&lt;/font&gt;&lt;font color="gray"&gt;,&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="black"&gt;value_data&lt;br&gt;&lt;/font&gt;&lt;font color="blue"&gt;FROM&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="green"&gt;sys.dm_server_registry;&lt;/font&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;/blockquote&gt;

&lt;p&gt;I'm not going to show all of the data for this specific instance, but here are the distinct registry keys that are returned for a named instance "SQL2008R2" - this should give you a good idea of the information you can get to without having to trawl through the SQL Server logs, Agent property dialogs, or dig into the registry manually:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;img src="http://bertrandaaron.files.wordpress.com/2011/04/r2sp1_reg.png" border="1" height="360" width="704"&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;font size="2"&gt;&lt;i&gt;* Not yet in Denali.&lt;/i&gt;&lt;/font&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;br&gt;&lt;b&gt;sys.dm_server_services&lt;/b&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;In SQL Server 2008, sys.dm_os_sys_info was enhanced with the column sqlserver_start_time which shows when the SQL Server service was started. This new DMV has a row for each server service, and includes the startup time as well the current status, the startup type, the current process_id (making it easy to determine the instance you see in perfmon or task manager on a machine with multiple instances), the account the service is running under, and whether the service is clustered (which is returned as an nvarchar(1), for some strange reason). Like the new registry DMV, you can now get to this information programmatically and a whole lot easier than you could do in previous versions. Here is an example from my system, which is only currently running SQL Server and SQL Server Agent (I truncated some column names to get the image to fit into this post):&lt;/p&gt;

&lt;blockquote&gt;
&lt;table bgcolor="#eeeeee" cellpadding="0" cellspacing="0"&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;pre style="padding:10px 20px;font-size:12px;font-family:consolas,lucida console,courier new,courier;-moz-background-inline-policy:continuous;"&gt;&lt;font color="blue"&gt;SELECT&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="black"&gt;servicename&lt;/font&gt;&lt;font color="gray"&gt;,&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="black"&gt;[startup] =&lt;/font&gt;&lt;font color="blue"&gt; &lt;/font&gt;&lt;font color="black"&gt;startup_type_desc&lt;/font&gt;&lt;font color="gray"&gt;,&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="black"&gt;[status] =&lt;/font&gt;&lt;font color="blue"&gt; &lt;/font&gt;&lt;font color="black"&gt;status_desc&lt;/font&gt;&lt;font color="gray"&gt;,&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="black"&gt;pid =&lt;/font&gt;&lt;font color="blue"&gt; &lt;/font&gt;&lt;font color="black"&gt;process_id&lt;/font&gt;&lt;font color="gray"&gt;,&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="black"&gt;last_startup_time&lt;/font&gt;&lt;font color="gray"&gt;,&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="black"&gt;service_account&lt;/font&gt;&lt;font color="gray"&gt;,&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="black"&gt;[clus] = is_clustered&lt;br&gt;&lt;/font&gt;&lt;font color="blue"&gt;FROM&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="green"&gt;sys.dm_server_services;&lt;br&gt;&lt;/font&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;/blockquote&gt;

&lt;p&gt;Results:&lt;/p&gt;

&lt;blockquote&gt;&lt;img src="http://bertrandaaron.files.wordpress.com/2011/04/r2sp1_sysa.png" border="1" height="57" width="721"&gt;&lt;br&gt;&lt;/blockquote&gt;
&lt;/blockquote&gt;


&lt;blockquote&gt;
&lt;p&gt;There are two things to note about last_startup_time for the core SQL Server service: (1) it is exposed as a datetimeoffset data type, so it includes offset information from UTC, and (2) it may be a second or two off from the sqlserver_start_time value in sys.dm_os_sys_info. I don't have an explanation for the latter, but I did complain about both the missing Agent startup time and the odd data type choices in this DMV (this is not the only questionable data type choice in this DMV's output):&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;a href="http://connect.microsoft.com/SQLServer/feedback/details/664557/sys-dm-server-services-last-startup-time-is-always-null-for-sql-agent" title="http://connect.microsoft.com/SQLServer/feedback/details/664557/sys-dm-server-services-last-startup-time-is-always-null-for-sql-agent" target="_blank"&gt;#664557 : sys.dm_server_services.last_startup_time is always NULL for SQL Agent&lt;/a&gt; &lt;br&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;a href="http://connect.microsoft.com/SQLServer/feedback/details/664559/odd-data-type-choices-in-sys-dm-server-services" title="http://connect.microsoft.com/SQLServer/feedback/details/664559/odd-data-type-choices-in-sys-dm-server-services" target="_blank"&gt;#664559 : Odd data type choices in sys.dm_server_services&lt;/a&gt; &lt;br&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;font size="2"&gt;&lt;i&gt;* Not yet in Denali.&lt;/i&gt;&lt;/font&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;br&gt;&lt;b&gt;sys.dm_exec_query_stats&lt;/b&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;I talked about this DMV in &lt;a href="http://sqlblog.com/blogs/aaron_bertrand/archive/2011/04/22/sql-server-2008-r2-sp1-ctp-is-now-available.aspx" title="http://sqlblog.com/blogs/aaron_bertrand/archive/2011/04/22/sql-server-2008-r2-sp1-ctp-is-now-available.aspx" target="_blank"&gt;my previous post&lt;/a&gt;; it is not a new DMV, but it gets some shiny new columns. Essentially, there are four new columns showing row count statistics for each query exposed by the view: total_rows, last_rows, min_rows and max_rows. This enhances the information you have about each query if you are want to know if it has returned a vastly different number of rows over time.&lt;/p&gt;

&lt;p&gt;&lt;font size="2"&gt;&lt;i&gt;* Not yet in Denali.&lt;/i&gt;&lt;/font&gt; &lt;br&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;br&gt;&lt;b&gt;sys.dm_os_sys_info&lt;/b&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;This DMV is also not new, but it has a couple of new columns dedicated to virtualization, so you can tell programmatically, for example, if the SQL Server instance is on a virtualized or physical host. The new columns are virtual_machine_type and virtual_machine_type_desc. I don't have a full mapping of the possible values yet; since I only have 2008 R2 running on virtual machines, I can only show you the values in that situation:&lt;/p&gt;

&lt;blockquote&gt;
&lt;table bgcolor="#eeeeee" cellpadding="0" cellspacing="0"&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;pre style="padding:10px 20px;font-size:12px;font-family:consolas,lucida console,courier new,courier;-moz-background-inline-policy:continuous;"&gt;&lt;font color="blue"&gt;SELECT &lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="black"&gt;virtual_machine_type&lt;/font&gt;&lt;font color="gray"&gt;,&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="black"&gt;virtual_machine_type_desc&lt;br&gt;&lt;/font&gt;&lt;font color="blue"&gt;FROM&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="green"&gt;sys.dm_os_sys_info;&lt;br&gt;&lt;/font&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;/blockquote&gt;

&lt;p&gt;Results:&lt;/p&gt;

&lt;blockquote&gt;&lt;img src="http://bertrandaaron.files.wordpress.com/2011/04/r2sp1_sys.png" border="1" height="37" width="299"&gt;&lt;br&gt;&lt;/blockquote&gt;
&lt;/blockquote&gt;

&lt;blockquote&gt;
&lt;p&gt;Note that the machines where I ran these queries are running on Windows 7 virtual machines under VMWare Fusion, so don't always believe that "HYPERVISOR" means Hyper-V explicitly.&lt;/p&gt;

&lt;p&gt;Also note: the current Denali BOL documentation for "&lt;a href="http://64.4.11.252/en-us/library/ms143179%28SQL.110%29.aspx" title="http://64.4.11.252/en-us/library/ms143179%28SQL.110%29.aspx" target="_blank"&gt;Breaking Changes to Database Engine Features&lt;/a&gt;" incorrectly states that these columns were removed.&lt;/p&gt;

&lt;p&gt;&lt;font size="2"&gt;&lt;i&gt;* This DMV is the only one on this page that has already been added/changed in current builds of Denali (CTP1).&lt;/i&gt;&lt;/font&gt;&lt;br&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;br&gt;&lt;b&gt;Extended Events&lt;/b&gt;&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;Some new xevents were added in SP1 as well. I'm sure Jonathan Kehayias (&lt;a href="http://www.sqlskills.com/blogs/jonathan/" title="http://www.sqlskills.com/blogs/jonathan/" target="_blank"&gt;blog&lt;/a&gt; | &lt;a href="http://twitter.com/SQLPoolBoy" title="http://twitter.com/SQLPoolBoy" target="_blank"&gt;twitter&lt;/a&gt;) will talk more about them soon enough, but I can at least identify them - by joining a couple of XE views on the local, SP1 server to a linked server running 2008 R2 RTM: &lt;/p&gt;

&lt;blockquote&gt;
&lt;table bgcolor="#eeeeee" cellpadding="0" cellspacing="0"&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;pre style="padding:10px 20px;font-size:12px;font-family:consolas,lucida console,courier new,courier;-moz-background-inline-policy:continuous;"&gt;&lt;font color="blue"&gt;SELECT&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="black"&gt;l.name&lt;/font&gt;&lt;font color="gray"&gt;,&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="black"&gt;l.map_value&lt;br&gt;&lt;/font&gt;&lt;font color="blue"&gt;FROM&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="green"&gt;sys&lt;/font&gt;&lt;font&gt;&lt;font color="black"&gt;.&lt;/font&gt;&lt;/font&gt;&lt;font color="green"&gt;dm_xe_map_values &lt;/font&gt;&lt;font color="blue"&gt;AS &lt;/font&gt;&lt;font color="black"&gt;l&lt;br&gt;&lt;/font&gt;&lt;font color="magenta"&gt;LEFT &lt;/font&gt;&lt;font color="gray"&gt;OUTER &lt;/font&gt;&lt;font color="blue"&gt;JOIN&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="black"&gt;[GREENLANTERN\SQL2008R2RTM].[master]&lt;/font&gt;&lt;font color="black"&gt;.&lt;/font&gt;&lt;font color="green"&gt;sys&lt;/font&gt;&lt;font&gt;&lt;font color="black"&gt;.&lt;/font&gt;&lt;/font&gt;&lt;font color="green"&gt;dm_xe_map_values &lt;/font&gt;&lt;font color="blue"&gt;AS &lt;/font&gt;&lt;font color="black"&gt;r&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="blue"&gt;ON &lt;/font&gt;&lt;font color="black"&gt;l.name =&lt;/font&gt;&lt;font color="blue"&gt; &lt;/font&gt;&lt;font color="black"&gt;r.name&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="gray"&gt;AND &lt;/font&gt;&lt;font color="black"&gt;l.map_key =&lt;/font&gt;&lt;font color="blue"&gt; &lt;/font&gt;&lt;font color="black"&gt;r.map_key&lt;br&gt;&lt;/font&gt;&lt;font color="blue"&gt;WHERE&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="black"&gt;r.name &lt;/font&gt;&lt;font color="blue"&gt;IS &lt;/font&gt;&lt;font color="gray"&gt;NULL;&lt;br&gt;&lt;br&gt;&lt;/font&gt;&lt;font color="blue"&gt;SELECT&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="black"&gt;l.name&lt;/font&gt;&lt;font color="gray"&gt;,&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="black"&gt;l.description&lt;br&gt;&lt;/font&gt;&lt;font color="blue"&gt;FROM&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="green"&gt;sys&lt;/font&gt;&lt;font&gt;&lt;font color="black"&gt;.&lt;/font&gt;&lt;/font&gt;&lt;font color="green"&gt;dm_xe_objects &lt;/font&gt;&lt;font color="blue"&gt;AS &lt;/font&gt;&lt;font color="black"&gt;l&lt;br&gt;&lt;/font&gt;&lt;font color="magenta"&gt;LEFT &lt;/font&gt;&lt;font color="gray"&gt;OUTER &lt;/font&gt;&lt;font color="blue"&gt;JOIN&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="black"&gt;[GREENLANTERN\SQL2008R2RTM].[master]&lt;/font&gt;&lt;font color="black"&gt;.&lt;/font&gt;&lt;font color="green"&gt;sys&lt;/font&gt;&lt;font&gt;&lt;font color="black"&gt;.&lt;/font&gt;&lt;/font&gt;&lt;font color="green"&gt;dm_xe_objects &lt;/font&gt;&lt;font color="blue"&gt;AS &lt;/font&gt;&lt;font color="black"&gt;r&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="blue"&gt;ON &lt;/font&gt;&lt;font color="black"&gt;l.name =&lt;/font&gt;&lt;font color="blue"&gt; &lt;/font&gt;&lt;font color="black"&gt;r.name&lt;br&gt;&lt;/font&gt;&lt;font color="blue"&gt;WHERE&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="black"&gt;r.name &lt;/font&gt;&lt;font color="blue"&gt;IS &lt;/font&gt;&lt;font color="gray"&gt;NULL;&lt;br&gt;&lt;/font&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;

&lt;/blockquote&gt;&lt;p&gt;Results:&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;&lt;img src="http://bertrandaaron.files.wordpress.com/2011/04/screen-shot-2011-04-25-at-9-55-45-am.png" border="1" height="218" width="657"&gt;&amp;nbsp;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;font size="2"&gt;&lt;i&gt;* These are partially in Denali CTP1. Well, the first two rows in the first resultset, at least.&lt;/i&gt;&lt;/font&gt;&lt;br&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;br&gt;&lt;b&gt;Reference queries&lt;/b&gt;&lt;br&gt;&lt;/p&gt;

&lt;p&gt;For reference, you can see the queries I used here to perform this Sherlock Holmes-esque work against the DMVs:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;I talked about how to &lt;a href="http://sqlblog.com/blogs/aaron_bertrand/archive/2010/11/29/sql-server-v-next-denali-new-changed-and-removed-system-objects.aspx" title="http://sqlblog.com/blogs/aaron_bertrand/archive/2010/11/29/sql-server-v-next-denali-new-changed-and-removed-system-objects.aspx" target="_blank"&gt;find new DMVs and other system objects&lt;/a&gt; in November 2010.&lt;/li&gt;

&lt;li&gt;I talked about how to &lt;a href="http://sqlblog.com/blogs/aaron_bertrand/archive/2009/08/11/new-columns-in-sql-server-2008-r2-dmvs.aspx" title="http://sqlblog.com/blogs/aaron_bertrand/archive/2009/08/11/new-columns-in-sql-server-2008-r2-dmvs.aspx" target="_blank"&gt;find new and changed DMV columns&lt;/a&gt; in August 2009.&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;&lt;b&gt;&lt;br&gt;Download&lt;/b&gt; &lt;br&gt;&lt;/p&gt;
&lt;p&gt;SP1 CTP for "normal" SKUs (and also a stand-alone download for upgrading client tools only):&lt;br&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;a href="http://www.microsoft.com/downloads/en/details.aspx?FamilyID=bd200f8e-ba8a-45e3-af59-e28a9e2d17df" title="http://www.microsoft.com/downloads/en/details.aspx?FamilyID=bd200f8e-ba8a-45e3-af59-e28a9e2d17df" target="_blank"&gt;http://www.microsoft.com/downloads/en/details.aspx?FamilyID=bd200f8e-ba8a-45e3-af59-e28a9e2d17df&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;SP1 CTP for the various Express Editions (Express, Express with Tools, Express with Advanced Services):&lt;br&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;a href="http://www.microsoft.com/downloads/en/details.aspx?FamilyID=e70a4b51-53be-48d3-8030-80dc9e755be3" title="http://www.microsoft.com/downloads/en/details.aspx?FamilyID=e70a4b51-53be-48d3-8030-80dc9e755be3" target="_blank"&gt;http://www.microsoft.com/downloads/en/details.aspx?FamilyID=e70a4b51-53be-48d3-8030-80dc9e755be3&lt;/a&gt; &lt;br&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;SP1 CTP Feature Packs (please don't ask me what all of these files are, but &lt;a href="http://koprowskit.eu/geek/2011/04/en-sql-server-2008-r2-sp1-ctp-14-feature-packs-are-available/" title="http://koprowskit.eu/geek/2011/04/en-sql-server-2008-r2-sp1-ctp-14-feature-packs-are-available/" target="_blank"&gt;someone else did a pretty good job&lt;/a&gt;):&lt;br&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;a href="http://www.microsoft.com/downloads/en/details.aspx?FamilyID=15dcfec2-abb8-409d-91ff-c7c8e18c8409" title="http://www.microsoft.com/downloads/en/details.aspx?FamilyID=15dcfec2-abb8-409d-91ff-c7c8e18c8409" target="_blank"&gt;http://www.microsoft.com/downloads/en/details.aspx?FamilyID=15dcfec2-abb8-409d-91ff-c7c8e18c8409&lt;/a&gt; &lt;br&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;br&gt;&lt;b&gt;Summary&lt;/b&gt; &lt;br&gt;&lt;/p&gt;

&lt;p&gt;I'm still torn about features being added in service packs, but if you're on this platform, clearly there are some changes that you might be able to take advantage of once the Service Pack 1 is officially RTM. And I have every reason to believe that these changes will be ported to Denali, probably by the time you see the next CTP.&lt;/p&gt;
&lt;p&gt;Please remember, though, that this service pack is not going to include fixes from &lt;a href="http://support.microsoft.com/kb/2507770" title="http://support.microsoft.com/kb/2507770" target="_blank"&gt;cumulative update #7 for SQL Server 2008 R2&lt;/a&gt;, so if you're relying on those fixes, don't install this service pack - it will undo those changes. Also don't install the service pack CTP if you think you might be interested in cumulative update #8, since it will be problematic to downgrade to that CU once the service pack is installed (even the CTP). And who knows when the service pack will be officially released (never mind the subsequent CU that will get it "caught up" with the current branch of RTM fixes).&lt;/p&gt;&lt;p&gt;Also, please remember that DMV data does not persist through a service 
restart. So, while some of these queries will yield relatively static 
results (such as those that talk about the operating system or that dig 
information out of the registry), things like the rowcount values added 
to sys.dm_exec_query_stats are only valid since the time the service was
 started. &lt;br&gt;&lt;/p&gt;
&lt;p&gt;And finally, please don't try, and please don't ask; you cannot install this service pack on SQL Server 2008. This is ONLY for the SQL Server 2008 R2 release. &lt;br&gt;&lt;/p&gt;

&lt;p&gt;&amp;nbsp; &lt;br&gt;&lt;/p&gt;</description></item><item><title>SQL Bits 8: &amp;quot;What's New in SQL Server Denali?&amp;quot;</title><link>http://sqlblog.com/blogs/aaron_bertrand/archive/2011/04/09/sql-bits-8-what-s-new-in-sql-server-denali.aspx</link><pubDate>Sat, 09 Apr 2011 23:25:00 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:34394</guid><dc:creator>AaronBertrand</dc:creator><description>&lt;p&gt;At SQL Bits I presented my "What's New in Denali?" deck in two different sessions - once on Friday to about 120 people, and once on Saturday to about 80 people. You can download the deck and samples below.&lt;/p&gt;&lt;p&gt;&amp;nbsp; &lt;br&gt;&lt;/p&gt;</description></item><item><title>Meme Monday: Say something somewhat meaningful in 11 words or less</title><link>http://sqlblog.com/blogs/aaron_bertrand/archive/2011/04/04/meme-monday.aspx</link><pubDate>Mon, 04 Apr 2011 11:43:00 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:34494</guid><dc:creator>AaronBertrand</dc:creator><description>&lt;p&gt;I will be delivering my Deep Dives 2 draft on time.&lt;/p&gt;&lt;p&gt;&amp;nbsp; &lt;br&gt;&lt;/p&gt;</description></item><item><title>Presenting &amp;quot;What's New in SQL Server Denali&amp;quot; for the Kent, England user group</title><link>http://sqlblog.com/blogs/aaron_bertrand/archive/2011/03/31/presenting-what-s-new-in-sql-server-denali-for-the-kent-england-user-group.aspx</link><pubDate>Thu, 31 Mar 2011 17:20:00 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:34391</guid><dc:creator>AaronBertrand</dc:creator><description>&lt;p&gt;This afternoon (well, evening to them) I presented my "What's New in Denali" deck remotely for the Kent, England SQL Server &amp;amp; .NET User Group. The link for the event is &lt;a href="http://kentnetsql20110331-eorg.eventbrite.com/" title="http://kentnetsql20110331-eorg.eventbrite.com/" target="_blank"&gt;here&lt;/a&gt; and you can download the deck and samples below.&lt;/p&gt;&lt;p&gt;&amp;nbsp; &lt;br&gt;&lt;/p&gt;</description></item><item><title>SQL Saturday #67, Chicago: &amp;quot;What's New in SQL Server Denali&amp;quot;</title><link>http://sqlblog.com/blogs/aaron_bertrand/archive/2011/03/26/sql-saturday-67-chicago-what-s-new-in-sql-server-denali.aspx</link><pubDate>Sat, 26 Mar 2011 15:01:00 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:34390</guid><dc:creator>AaronBertrand</dc:creator><description>&lt;p&gt;Today I was in Chicago for &lt;a href="http://www.sqlsaturday.com/67/eventhome.aspx" title="http://www.sqlsaturday.com/67/eventhome.aspx" target="_blank"&gt;SQL Saturday #67&lt;/a&gt; to present my "What's New in SQL Server Denali" deck. You can download the deck and samples below.&lt;/p&gt;&lt;p&gt;I mentioned during the talk that THROW is another command added to the list that require the previous statement to be terminated with a semi-colon. Here is the blog post I referenced that talked more about &lt;a href="http://sqlblog.com/blogs/aaron_bertrand/archive/2009/09/03/ladies-and-gentlemen-start-your-semi-colons.aspx" title="http://sqlblog.com/blogs/aaron_bertrand/archive/2009/09/03/ladies-and-gentlemen-start-your-semi-colons.aspx" target="_blank"&gt;why you should start using semi-colons today&lt;/a&gt;. &lt;/p&gt;&lt;p&gt;I liked the feedback mechanism at this event. Everyone was handed an evaluation, and the drawings took place after each session at the chapter table downstairs. Much more compelling to get your evals in right away, and even better, I get them back right after that. Which means I can tally my scores and see what went well, and more importantly, what didn't go well (and wasn't obvious). The evals were much simpler than some other events. Two basic questions and room for comments (not everyone left comments, and not everyone answered both questions):&lt;br&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;Expectation (circle one): Did Not Meet / Met / Exceeded&lt;/b&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;Met: 23 / 34&lt;br&gt;Exceeded: 11 / 34&lt;br&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;b&gt;Overall quality (5 = great):&lt;/b&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;3: 4 / 32&lt;br&gt;4: 11 / 32&lt;br&gt;5: 17 / 32&lt;br&gt;Average: &lt;font color="#006600"&gt;&lt;b&gt;4.41&lt;/b&gt;&lt;/font&gt; &amp;nbsp; &lt;br&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;Not top scores, no, but I still feel pretty good about this. What I liked most? Seven comments included one of my brand words, "knowledgeable." Well, a couple used the variation "knowledge" - but that counts, right? &lt;br&gt;&lt;/p&gt;&lt;p&gt;The comment that surprised me most was a complaint that I didn't cover any BI. Even though I stated multiple times at the beginning that I wouldn't be covering BI - and even dedicated my very first "real" slide to this fact. Still, I've taken the feedback. For future events I'm going to change the title of the session to "SQL Server Denali : What's New in Engine, Setup and Tools." &lt;/p&gt;&lt;p&gt;I also gave a quick demo of SQL Sentry Plan Explorer in our vendor session at lunch (we were a "You Rock!" sponsor of SQL Saturday #67, after all). I didn't use a deck and it was all demos. Plan Explorer is free; if you haven't already tried it, please go to &lt;a href="http://sqlsentry.net/plan-explorer/sql-server-query-view.asp" title="http://sqlsentry.net/plan-explorer/sql-server-query-view.asp" target="_blank"&gt;the download page&lt;/a&gt; and read my &lt;a href="http://sqlblog.com/search/SearchResults.aspx?q=%22plan+explorer%22&amp;amp;s=18" title="http://sqlblog.com/search/SearchResults.aspx?q=%22plan+explorer%22&amp;amp;s=18" target="_blank"&gt;previous blog posts&lt;/a&gt; about the tool.&lt;br&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &lt;br&gt;&lt;/p&gt;</description></item><item><title>Presenting &amp;quot;What's New in SQL Server Denali&amp;quot; for WVPASS</title><link>http://sqlblog.com/blogs/aaron_bertrand/archive/2011/03/17/presenting-what-s-new-in-sql-server-denali-for-wvpass.aspx</link><pubDate>Thu, 17 Mar 2011 21:00:00 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:34231</guid><dc:creator>AaronBertrand</dc:creator><description>&lt;p&gt;Recently I was asked by John Sterrett (&lt;a href="http://johnsterrett.com/" title="http://johnsterrett.com/" target="_blank"&gt;blog&lt;/a&gt; | &lt;a href="http://twitter.com/johnsterrett" title="http://twitter.com/johnsterrett" target="_blank"&gt;twitter&lt;/a&gt;) to present to his SQL Server user group (&lt;a href="http://wvpass.sqlpass.org/" title="http://wvpass.sqlpass.org/" target="_blank"&gt;WVPASS&lt;/a&gt;) in Wheeling, West Virginia. Well, today is the day, and I will be presenting, "What's new in SQL Server Denali" at tonight's meeting, sponsored by &lt;a href="http://sqlsentry.net" title="http://sqlsentry.net" target="_blank"&gt;SQL Sentry&lt;/a&gt;. The slide deck is attached below; the samples are available &lt;a href="http://sqlblog.com/files/folders/34238/download.aspx" title="http://sqlblog.com/files/folders/34238/download.aspx" target="_blank"&gt;here&lt;/a&gt;. &lt;/p&gt;&lt;p&gt;If you attended this presentation, please feel free to &lt;a href="http://speakerrate.com/talks/6880-what-s-new-in-sql-server-denali" title="http://speakerrate.com/talks/6880-what-s-new-in-sql-server-denali" target="_blank"&gt;provide feedback at SpeakerRate&lt;/a&gt;. &lt;br&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;br&gt;&lt;/p&gt;</description></item><item><title>SQL Server v.Next (&amp;quot;Denali&amp;quot;) : How a columnstore index is not like a normal index</title><link>http://sqlblog.com/blogs/aaron_bertrand/archive/2011/02/28/sql-server-v-next-denali-how-a-columnstore-index-is-not-like-a-normal-index.aspx</link><pubDate>Mon, 28 Feb 2011 17:34:00 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:33810</guid><dc:creator>AaronBertrand</dc:creator><description>&lt;p&gt;At the end of my Denali presentation at &lt;a href="http://sqlsaturday.com/65/eventhome.aspx" title="http://sqlsaturday.com/65/eventhome.aspx" target="_blank"&gt;SQL Saturday #65&lt;/a&gt; in Vancouver, a member of the audience asked, "What makes a columnstore index different from a regular nonclustered index?" At the end of a busy day, I was at a loss for an answer, and I'll explain why.&lt;/p&gt;&lt;p&gt;First, I'll briefly explain the basic, core, high-level functionality of a columnstore index (you can read a lot more details in &lt;a href="http://bit.ly/AB_Denali_ColumnWP" title="http://bit.ly/AB_Denali_ColumnWP" target="_blank"&gt;this white paper&lt;/a&gt;). Basically, instead of storing index data together on a page, it divvies up the data from each column into its own set of pages. If you are after the data from only one column, this doesn't provide a great advantage over a traditional index, since you're not going to be able to store that many more rows on a page.&lt;br&gt;&lt;/p&gt;&lt;p&gt;The reason I was having a hard time articulating the benefit is because I was thinking about a simple non-clustered index with one column, and comparing it to a columnstore index with only one column defined. The benefit of the columnstore index is that you can basically declare it against most or all of the columns in a table, effectively similar to creating an index on each column - and this is where column store indexes provide the largest benefit. The differences between a column store index and a handful of indexes for each column are (1) size due to the structure of the index and the fact that compression will likely work much better when you can fit more like values on a page, and (2) you only pay for the index maintenance on a columnstore index once, because of what I'll describe next.&lt;br&gt;&lt;/p&gt;&lt;p&gt;The columnstore index has limitations that definitely make you feel like the grass is greener on the other side. Most importantly, in Denali, due to the cost of maintenance, a columnstore index will be read only... essentially, you will need to rebuild the index when data changes. Some other limitations: only one columnstore index per table, the index must be partition-aligned, can't be filtered, and the base object must be a table (so, no indexed views).&lt;br&gt;&lt;/p&gt;&lt;p&gt;This feature is definitely geared to data warehouse scenarios, or where you are free to rebuild indexes nightly or on some other interval. I can't give you a good idea about the cost of maintaining this index manually compared to multiple traditional indexes, since the feature did not make the cut for the &lt;a href="http://bit.ly/AB_Denali_Download" title="http://bit.ly/AB_Denali_Download" target="_blank"&gt;publicly available CTP1&lt;/a&gt;. But I hope to publish some blog posts with real numbers on both the read and write sides when the next public CTP is made available. I am fairly certain I will be able to demonstrate cases where this type of index will drastically increase read performance (without losing substantial write performance), provided that you are in a scenario where you can update the data on an infrequent schedule, such as nightly.&lt;/p&gt;&lt;p&gt;If you want some detailed background on this technology, please check out Dr. David DeWitt's &lt;a href="http://bit.ly/eYzuYD" title="http://bit.ly/eYzuYD" target="_blank"&gt;PASS Summit 2009 keynote slide deck&lt;/a&gt;. And if you’re a PASS member, you can access the video at &lt;a href="http://www.sqlpass.org/LearningCenter/SessionRecordings/Summit2009/Day3KeynoteDavidDeWitt.aspx" title="http://www.sqlpass.org/LearningCenter/SessionRecordings/Summit2009/Day3KeynoteDavidDeWitt.aspx" target="_blank"&gt;sqlpass.org&lt;/a&gt; (login required). &lt;br&gt;&lt;/p&gt;&lt;p&gt;[I am currently at the MVP Summit, and I just want to clarify (in case anyone was wondering), none of the material I discuss above is in violation of NDA.] &lt;br&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description></item><item><title>Slides and samples from SQL Saturday #65 - Vancouver</title><link>http://sqlblog.com/blogs/aaron_bertrand/archive/2011/02/26/slides-and-samples-from-sql-saturday-65-vancouver.aspx</link><pubDate>Sun, 27 Feb 2011 00:53:00 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:33795</guid><dc:creator>AaronBertrand</dc:creator><description>&lt;p&gt;Today I presented my "What's New in SQL Server 'Denali'" deck to about 40 attendees at &lt;a href="http://sqlsaturday.com/65/eventhome.aspx" title="http://sqlsaturday.com/65/eventhome.aspx" target="_blank"&gt;SQL Saturday #65&lt;/a&gt; in Vancouver, British Columbia. Attached below (and &lt;a href="http://sqlblog.com/blogs/aaron_bertrand/attachment/33795.ashx" title="http://sqlblog.com/blogs/aaron_bertrand/attachment/33795.ashx"&gt;here&lt;/a&gt;) are the slightly updated slides and samples.&lt;/p&gt;</description></item><item><title>Slide decks and samples from SQL Saturday #60 - Cleveland</title><link>http://sqlblog.com/blogs/aaron_bertrand/archive/2011/02/05/slide-decks-and-samples-from-sql-saturday-60-cleveland.aspx</link><pubDate>Sat, 05 Feb 2011 22:34:00 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:33178</guid><dc:creator>AaronBertrand</dc:creator><description>&lt;p&gt;Attached are the slide decks and demos from my two presentations at &lt;a href="http://www.sqlsaturday.com/60/eventhome.aspx" title="http://www.sqlsaturday.com/60/eventhome.aspx" target="_blank"&gt;SQL Saturday #60&lt;/a&gt; in Cleveland:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://sqlblog.com/files/folders/33222/download.aspx" title="Denali.zip" target="_blank"&gt;What's New in SQL Server "Denali"&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://sqlblog.com/files/folders/33223/download.aspx" title="BadHabitsToKick.zip" target="_blank"&gt;T-SQL : Bad Habits to Kick&lt;/a&gt;&lt;br&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description></item></channel></rss>