<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://www2.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 'denali'</title><link>http://www2.sqlblog.com/search/SearchResults.aspx?o=DateDescending&amp;tag=denali&amp;orTags=0</link><description>Search results matching tag 'denali'</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP2 (Build: 61129.1)</generator><item><title>Memory Manager Configuration changes in SQL Server 2012</title><link>http://www2.sqlblog.com/blogs/sqlos_team/archive/2012/07/12/memory-manager-configuration-changes-in-sql-server-2012.aspx</link><pubDate>Thu, 12 Jul 2012 14:07:00 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:44274</guid><dc:creator>SQLOS Team</dc:creator><description>&lt;p&gt;Continuing from yesterday's&amp;nbsp;article about &lt;a href="http://sqlblog.com/b/sqlosteam/archive/2012/07/11/memory-manager-surface-area-changes-in-sql-server-2012.aspx"&gt;Memory Manager surface area changes in SQL Server 2012&lt;/a&gt;, this&amp;nbsp;post looks at corresponding configuraton changes for the new Memory Manager. The surface area change article mentioned &amp;nbsp;that the Memory Manager redesign resulted in being able to more accurately size and govern all SQL Server memory consumption. Let's look at what this means in terms of sizing the total memory usage.&lt;/p&gt;
&lt;h3&gt;Max server memory&lt;/h3&gt;
&lt;p&gt;In SQL Server 2008, the &lt;strong&gt;max server memory&lt;/strong&gt; configuration setting only governed single 8K page allocations. CLR allocations, multi-page allocations, direct Windows allocations (DWA) and memory required by thread stacks would not be included,&amp;nbsp;so you'd have to set the&lt;em&gt; -g memory_to_reserve&lt;/em&gt; startup setting on 32-bit systems if you're using CLR for example, to reserve sufficient address space.&lt;/p&gt;

&lt;p&gt;Setting &lt;em&gt;max server memory&lt;/em&gt; becomes more straightforward with SQL Server 2012. The redesigned Memory Manager takes a central role in providing page allocations for the other components, and the &lt;em&gt;max server memory&lt;/em&gt; setting governs all memory manager allocations.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://sqlblog.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-83-23/2664.sql_5F00_config.png"&gt;&lt;img style="width:959px;height:503px;" border="0" alt="" src="http://blogs.msdn.com/cfs-filesystemfile.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-83-23/2664.sql_5F00_config.png" width="1164" height="662"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;With&amp;nbsp;all page allocations are governed, including&amp;nbsp;CLR page allocations, instance sizing is more predictable, which can help a lot in memory constrained and multi-instance scenarios. Direct Windows Allocations, (i.e. calls to VirtualAlloc()) will still remain outside of Memory Manager control.&lt;/p&gt;

&lt;p&gt;Here's a summary of the how the memory startup option settings changed in 2012:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;SQL Server 2008 R2&lt;/strong&gt;&lt;/p&gt;

&lt;table style="width:650px;" cellSpacing="0" cellPadding="0"&gt;

&lt;tr&gt;
&lt;td class="oa1"&gt;
&lt;p&gt;&lt;span&gt;&lt;strong&gt;Sp_configure option&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;

&lt;td class="oa1"&gt;
&lt;p&gt;&lt;span&gt;&lt;strong&gt;Default setting&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;

&lt;td class="oa1"&gt;
&lt;p&gt;&lt;span&gt;&lt;strong&gt;Lowest possible value&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;

&lt;td class="oa1"&gt;
&lt;p&gt;&lt;span&gt;&lt;strong&gt;Highest possible value&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td class="oa2"&gt;
&lt;p&gt;Min server memory&lt;/p&gt;
&lt;/td&gt;

&lt;td class="oa2"&gt;
&lt;p&gt;0&lt;/p&gt;
&lt;/td&gt;

&lt;td class="oa2"&gt;
&lt;p&gt;16 (MB)&lt;/p&gt;
&lt;/td&gt;

&lt;td class="oa2"&gt;
&lt;p&gt;Value&lt;br&gt;&amp;nbsp; less than max server&lt;/p&gt;

&lt;p&gt;memory setting&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td class="oa3"&gt;
&lt;p&gt;Max&lt;br&gt;&amp;nbsp; server memory&lt;/p&gt;
&lt;/td&gt;

&lt;td class="oa3"&gt;
&lt;p&gt;2147483647&lt;/p&gt;

&lt;p&gt;(available memory in the system)&lt;/p&gt;
&lt;/td&gt;

&lt;td class="oa3"&gt;
&lt;p&gt;16 (MB)&lt;/p&gt;
&lt;/td&gt;

&lt;td class="oa3"&gt;
&lt;p&gt;2147483647&lt;/p&gt;

&lt;p&gt;(available memory in the&lt;/p&gt;

&lt;p&gt;system)&lt;/p&gt;

&lt;/td&gt;
&lt;/tr&gt;

&lt;/table&gt;

&lt;p&gt;&lt;br&gt;&lt;strong&gt;SQL Server 2012&lt;/strong&gt;&lt;/p&gt;

&lt;table style="width:650px;" cellSpacing="0" cellPadding="0"&gt;

&lt;tr&gt;
&lt;td class="oa1"&gt;
&lt;p&gt;&lt;strong&gt;Sp_configure option&lt;/strong&gt;&lt;/p&gt;
&lt;/td&gt;

&lt;td class="oa1"&gt;
&lt;p&gt;&lt;strong&gt;Default setting&lt;/strong&gt;&lt;/p&gt;
&lt;/td&gt;

&lt;td class="oa1"&gt;
&lt;p&gt;&lt;strong&gt;Lowest possible value&lt;/strong&gt;&lt;/p&gt;
&lt;/td&gt;

&lt;td class="oa1"&gt;
&lt;p&gt;&lt;strong&gt;Highest possible value&lt;/strong&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td class="oa2"&gt;
&lt;p&gt;Min server memory&lt;/p&gt;
&lt;/td&gt;

&lt;td class="oa2"&gt;
&lt;p&gt;0&lt;/p&gt;
&lt;/td&gt;

&lt;td class="oa2"&gt;
&lt;p&gt;16 (MB)&lt;/p&gt;
&lt;/td&gt;

&lt;td class="oa2"&gt;
&lt;p&gt;Value&lt;br&gt;&amp;nbsp; less than max server&lt;/p&gt;

&lt;p&gt;memory setting&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td class="oa3"&gt;
&lt;p&gt;Max&lt;br&gt;&amp;nbsp; server memory&lt;/p&gt;
&lt;/td&gt;

&lt;td class="oa3"&gt;
&lt;p&gt;2147483647&lt;/p&gt;

&lt;p&gt;(available memory in the system)&lt;/p&gt;
&lt;/td&gt;

&lt;td class="oa3"&gt;
&lt;p&gt;&lt;strong&gt;32 bit - 64 (MB)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;64 bit – 128 (MB)&lt;/strong&gt;&lt;/p&gt;
&lt;/td&gt;

&lt;td class="oa3"&gt;
&lt;p&gt;2147483647&lt;/p&gt;

&lt;p&gt;(available memory in the&lt;/p&gt;

&lt;p&gt;system)&lt;/p&gt;

&lt;/td&gt;
&lt;/tr&gt;

&lt;/table&gt;

&lt;p&gt;&lt;strong&gt;sp_configure awe_enabled&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;SQL Server 2008 R2 was the last release to support the &lt;em&gt;awe_enabled&lt;/em&gt; option, which allowed use of memory above 4GB on 32-bit systems. In SQL Server 2012 32-bit architectures can no longer use &amp;gt;4GB, though you can still set this value on 32-bit systems to allow the use of locked pages but it's not needed on 64-bit. Note this setting does not affect the way Address Windowing Extensions are use to implement locked pages in memory on 64-bit systems.&lt;/p&gt;

&lt;p&gt;- Guy&lt;/p&gt;

&lt;p&gt;&lt;br&gt;&amp;nbsp;&lt;/p&gt;
Originally posted at http://blogs.msdn.com/b/sqlosteam/</description></item><item><title>Memory Manager surface area changes in SQL Server 2012</title><link>http://www2.sqlblog.com/blogs/sqlos_team/archive/2012/07/11/memory-manager-surface-area-changes-in-sql-server-2012.aspx</link><pubDate>Wed, 11 Jul 2012 13:31:00 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:44256</guid><dc:creator>SQLOS Team</dc:creator><description>&lt;p&gt;&lt;span style="font-size:small;"&gt;There were various changes to memory related DMVs, DBCC memory status, and Perfmon counters in SQL Server 2012 a&lt;span style="font-size:small;"&gt;s part of the redesign of the Memory Manager component of SQLOS. The Memory Manager redesign resulted in being able to more accurately size and govern all SQL Server memory consumption, making&amp;nbsp;page allocations more efficient, and better handling and tracking of NUMA node memory allocations.&lt;/span&gt; This post aims to document these surface area&amp;nbsp;changes in one place to serve as a quick reference.&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;span style="font-size:small;"&gt;Some of these&amp;nbsp;changes were to standardize&amp;nbsp;memory counters as "kb" rather than bytes or pages, continuing a process begun earlier, but now more relevant since the single and multi-page allocators were replaced by an any-size page allocator, so counting pages allocated would no longer give a meaningful view of memory use. This consolidation of allocators also resulted consolidated counters for page allocation.&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;span style="font-size:small;"&gt;Other changes reflect the central role of the redesigned Memory Manager in being the interface to the OS,&amp;nbsp;providing page allocations for the other components. A modular summary of the architectural changes&amp;nbsp;is shown below:&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;span style="font-size:small;"&gt;&lt;a href="http://sqlblog.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-83-23/5074.Untitled.png"&gt;&lt;/a&gt;&lt;img style="width:1039px;height:514px;" src="http://blogs.msdn.com/cfs-filesystemfile.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-83-23/5468.Untitled.png" width="1436" height="728"&gt;&lt;a href="http://sqlblog.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-83-23/5468.Untitled.png"&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2&gt;DMV Changes&lt;/h2&gt;
&lt;h3&gt;sys.dm_os_memory_nodes&lt;/h3&gt;
&lt;p&gt;The consolidation of the single and multi-page allocators is reflected in the pages_kb column in sys.dm_os_memory_nodes. The new foreign_committed_kb counter is a result of the improved NUMA management and reporting in SQL 2012 and identifies memory on a noe that belongs to a remote node, which can be useful if you're troubleshooting slower memory access. We will always try and use local memory first, at least until the target memory is reached.&lt;/p&gt;

&lt;table style="width:610px;" cellSpacing="0" cellPadding="0"&gt;

&lt;tr&gt;
&lt;td colSpan="2"&gt;
&lt;p&gt;&lt;b&gt;sys.dm_os_memory_nodes&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;&lt;b&gt;SQL Server 2012&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;

&lt;td&gt;
&lt;p&gt;&lt;b&gt;SQL Server 2008 R2&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;pages_kb&lt;/p&gt;
&lt;/td&gt;

&lt;td&gt;
&lt;p&gt;single_pages_kb +&lt;br&gt;&amp;nbsp; multi_pages_kb&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;foreign_committed_kb&lt;/p&gt;
&lt;/td&gt;

&lt;td&gt;
&lt;p&gt;-&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;

&lt;/table&gt;

&lt;h3&gt;sys.dm_os_sys_info&lt;/h3&gt;
&lt;p&gt;The main memory manager changes here are to standardize memory counters.&lt;/p&gt;

&lt;table style="width:610px;" cellSpacing="0" cellPadding="0"&gt;

&lt;tr&gt;
&lt;td colSpan="2"&gt;
&lt;p&gt;&lt;b&gt;sys.dm_os_sys_info&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;&lt;b&gt;SQL Server 2012&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;

&lt;td&gt;
&lt;p&gt;&lt;b&gt;SQL Server 2008 R2&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;physical_memory_kb&lt;/p&gt;
&lt;/td&gt;

&lt;td&gt;
&lt;p&gt;physical_memory_in_bytes&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;virtual_memory_kb&lt;/p&gt;
&lt;/td&gt;

&lt;td&gt;
&lt;p&gt;virtual_memory_in_bytes&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;committed_kb&lt;/p&gt;
&lt;/td&gt;

&lt;td&gt;
&lt;p&gt;bpool_committed&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;committed_target_kb&lt;/p&gt;
&lt;/td&gt;

&lt;td&gt;
&lt;p&gt;bpool_commit_target&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;visible_target_kb&lt;/p&gt;
&lt;/td&gt;

&lt;td&gt;
&lt;p&gt;bpool_visible&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;

&lt;/table&gt;

&lt;h3&gt;sys.dm_os_memory_cache_counters&lt;/h3&gt;

&lt;table style="width:610px;" cellSpacing="0" cellPadding="0"&gt;

&lt;tr&gt;
&lt;td colSpan="2"&gt;
&lt;p&gt;&lt;b&gt;sys.dm_os_memory_cache_counters&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;&lt;b&gt;SQL Server 2012&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;

&lt;td&gt;
&lt;p&gt;&lt;b&gt;SQL Server 2008 R2&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;pages_kb&lt;/p&gt;
&lt;/td&gt;

&lt;td&gt;
&lt;p&gt;single_pages_kb +&lt;br&gt;&amp;nbsp; multi_pages_kb&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;pages_in_use_kb&lt;/p&gt;
&lt;/td&gt;

&lt;td&gt;
&lt;p&gt;single_pages_in_use_kb&lt;br&gt;&amp;nbsp; + multi_pages_in_use_kb&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;

&lt;/table&gt;

&lt;p&gt;&lt;b&gt;&lt;/b&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3&gt;sys.dm_os_memory_cache_entries&lt;/h3&gt;
&lt;table style="width:610px;" cellSpacing="0" cellPadding="0"&gt;

&lt;tr&gt;
&lt;td colSpan="2"&gt;
&lt;p&gt;&lt;b&gt;sys.dm_os_memory_cache_entries&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;&lt;b&gt;SQL Server 2012&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;

&lt;td&gt;
&lt;p&gt;&lt;b&gt;SQL Server 2008 R2&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;pages_kb&lt;/p&gt;
&lt;/td&gt;

&lt;td&gt;
&lt;p&gt;pages_allocated_count&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;

&lt;/table&gt;

&lt;p&gt;&lt;b&gt;&lt;/b&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3&gt;&lt;b&gt;sys.dm_os_memory_clerks&lt;/b&gt;&lt;/h3&gt;
&lt;table style="width:610px;" cellSpacing="0" cellPadding="0"&gt;

&lt;tr&gt;
&lt;td colSpan="2"&gt;
&lt;p&gt;&lt;b&gt;sys.dm_os_memory_clerks&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;&lt;b&gt;SQL Server 2012&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;

&lt;td&gt;
&lt;p&gt;&lt;b&gt;SQL Server 2008 R2&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;pages_kb&lt;/p&gt;
&lt;/td&gt;

&lt;td&gt;
&lt;p&gt;single_pages_kb +&lt;br&gt;&amp;nbsp; multi_pages_kb&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;page_size_in_bytes&lt;/p&gt;
&lt;/td&gt;

&lt;td&gt;
&lt;p&gt;page_size_bytes&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;

&lt;/table&gt;

&lt;p&gt;&lt;b&gt;&lt;/b&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3&gt;&lt;b&gt;&lt;b&gt;sys.dm_os_memory_objects&lt;/b&gt;&lt;/b&gt;&lt;/h3&gt;

&lt;table style="width:610px;" cellSpacing="0" cellPadding="0"&gt;

&lt;tr&gt;
&lt;td colSpan="2"&gt;
&lt;p&gt;&lt;b&gt;sys.dm_os_memory_objects&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;&lt;b&gt;SQL Server 2012&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;

&lt;td&gt;
&lt;p&gt;&lt;b&gt;SQL Server 2008 R2&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;pages_in_bytes&lt;/p&gt;
&lt;/td&gt;

&lt;td&gt;
&lt;p&gt;pages_allocated_count&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;max_pages_in_bytes&lt;/p&gt;
&lt;/td&gt;

&lt;td&gt;
&lt;p&gt;max_pages_allocated_count&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;

&lt;/table&gt;
&lt;h2&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2&gt;DBCC Memory Status changes&lt;/h2&gt;
&lt;p&gt;&amp;nbsp;Many of the DBCC memory counters that were previously under Buffer Pool have now been consolidated under Memory Manager to reflect the revised architecture. There is also some additional information to reflect OS errors and NUMA awareness. NUMA growth phase&amp;nbsp;shows memory growth before the target is reached. The “Pages In Use” counter shows the actual number of pages in use, including&amp;nbsp;the stolen pages, database pages, and the reserved memory. The Away Committed counter indicates how much memory from this node is committed from other nodes.&lt;/p&gt;

&lt;table style="width:610px;" cellSpacing="0" cellPadding="0"&gt;

&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;&lt;b&gt;SQL Server&lt;br&gt;&amp;nbsp; 2012&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;

&lt;td&gt;
&lt;p&gt;&lt;b&gt;SQL Server&lt;br&gt;&amp;nbsp; 2008 R2&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;Memory Manager \&lt;br&gt;&amp;nbsp; Large Pages Allocated&lt;/p&gt;
&lt;/td&gt;

&lt;td&gt;
&lt;p&gt;-&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;Memory Manager \&lt;br&gt;&amp;nbsp; Emergency Memory&lt;/p&gt;
&lt;/td&gt;

&lt;td&gt;
&lt;p&gt;Memory Manager \&lt;br&gt;&amp;nbsp; Reserved Memory&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;Memory Manager \ Emergency&lt;br&gt;&amp;nbsp; Memory In Use&lt;/p&gt;
&lt;/td&gt;

&lt;td&gt;
&lt;p&gt;Memory Manager \&lt;br&gt;&amp;nbsp; Reserved Memory In Use&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;Memory Manager \&lt;br&gt;&amp;nbsp; Target Committed (KB)&lt;/p&gt;
&lt;/td&gt;

&lt;td&gt;
&lt;p&gt;Buffer Pool \&lt;br&gt;&amp;nbsp; Target (Pages)&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;Memory Manager \&lt;br&gt;&amp;nbsp; Current Committed (KB)&lt;/p&gt;
&lt;/td&gt;

&lt;td&gt;
&lt;p&gt;Buffer Pool \&lt;br&gt;&amp;nbsp; Committed (Pages)&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;Memory Manager \&lt;br&gt;&amp;nbsp; Pages Allocated (KB)&lt;/p&gt;
&lt;/td&gt;

&lt;td&gt;
&lt;p&gt;Buffer Pool \&lt;br&gt;&amp;nbsp; Stolen (Pages) + Buffer Pool \ Database (Pages)&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;Memory Manager \&lt;br&gt;&amp;nbsp; Pages Reserved (KB)&lt;/p&gt;
&lt;/td&gt;

&lt;td&gt;
&lt;p&gt;Buffer Pool \&lt;br&gt;&amp;nbsp; Reserved (Pages)&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;Memory Manager \&lt;br&gt;&amp;nbsp; Pages Free (KB)&lt;/p&gt;
&lt;/td&gt;

&lt;td&gt;
&lt;p&gt;Buffer Pool \ Free&lt;br&gt;&amp;nbsp; (Pages)&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;Memory Manager \&lt;br&gt;&amp;nbsp; Pages In Use&lt;/p&gt;
&lt;/td&gt;

&lt;td&gt;
&lt;p&gt;-&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;Memory Manager \&lt;br&gt;&amp;nbsp; Page Alloc Potential (KB)&lt;/p&gt;
&lt;/td&gt;

&lt;td&gt;
&lt;p&gt;Buffer Pool \&lt;br&gt;&amp;nbsp; Stolen Potential (Pages)&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;Memory Manager \&lt;br&gt;&amp;nbsp; NUMA Growth Phase&lt;/p&gt;
&lt;/td&gt;

&lt;td&gt;
&lt;p&gt;-&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;Memory Manager \&lt;br&gt;&amp;nbsp; Last OOM Factor&lt;/p&gt;
&lt;/td&gt;

&lt;td&gt;
&lt;p&gt;Buffer Pool \ Last&lt;br&gt;&amp;nbsp; OOM Factor&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;Memory Manager \&lt;br&gt;&amp;nbsp; Last OS Error&lt;/p&gt;
&lt;/td&gt;

&lt;td&gt;
&lt;p&gt;-&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;

&lt;/table&gt;

&lt;p&gt;&lt;b&gt;&lt;/b&gt;&amp;nbsp;&lt;/p&gt;

&lt;table style="width:610px;" cellSpacing="0" cellPadding="0"&gt;

&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;&lt;b&gt;SQL Server&lt;br&gt;&amp;nbsp; 2012&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;

&lt;td&gt;
&lt;p&gt;&lt;b&gt;SQL Server&lt;br&gt;&amp;nbsp; 2008 R2&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;Memory Manager \&lt;br&gt;&amp;nbsp; Large Pages Allocated&lt;/p&gt;
&lt;/td&gt;

&lt;td&gt;
&lt;p&gt;-&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;Memory Manager \&lt;br&gt;&amp;nbsp; Emergency Memory&lt;/p&gt;
&lt;/td&gt;

&lt;td&gt;
&lt;p&gt;Memory Manager \&lt;br&gt;&amp;nbsp; Reserved Memory&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;Memory Manager \&lt;br&gt;&amp;nbsp; Emergency Memory In Use&lt;/p&gt;
&lt;/td&gt;

&lt;td&gt;
&lt;p&gt;Memory Manager \&lt;br&gt;&amp;nbsp; Reserved Memory In Use&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;Memory Manager \&lt;br&gt;&amp;nbsp; Target Committed (KB)&lt;/p&gt;
&lt;/td&gt;

&lt;td&gt;
&lt;p&gt;Buffer Pool \&lt;br&gt;&amp;nbsp; Target (Pages)&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;Memory Manager \ Current&lt;br&gt;&amp;nbsp; Committed (KB)&lt;/p&gt;
&lt;/td&gt;

&lt;td&gt;
&lt;p&gt;Buffer Pool \&lt;br&gt;&amp;nbsp; Committed (Pages)&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;Memory Manager \&lt;br&gt;&amp;nbsp; Pages Allocated (KB)&lt;/p&gt;
&lt;/td&gt;

&lt;td&gt;
&lt;p&gt;Buffer Pool \&lt;br&gt;&amp;nbsp; Stolen (Pages) + Buffer Pool \ Database (Pages)&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;Memory Manager \&lt;br&gt;&amp;nbsp; Pages Reserved (KB)&lt;/p&gt;
&lt;/td&gt;

&lt;td&gt;
&lt;p&gt;Buffer Pool \&lt;br&gt;&amp;nbsp; Reserved (Pages)&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;Memory Manager \&lt;br&gt;&amp;nbsp; Pages Free (KB)&lt;/p&gt;
&lt;/td&gt;

&lt;td&gt;
&lt;p&gt;Buffer Pool \ Free&lt;br&gt;&amp;nbsp; (Pages)&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;Memory Manager \&lt;br&gt;&amp;nbsp; Pages In Use&lt;/p&gt;
&lt;/td&gt;

&lt;td&gt;
&lt;p&gt;-&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;Memory Manager \&lt;br&gt;&amp;nbsp; Page Alloc Potential (KB)&lt;/p&gt;
&lt;/td&gt;

&lt;td&gt;
&lt;p&gt;Buffer Pool \&lt;br&gt;&amp;nbsp; Stolen Potential (Pages)&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;Memory Manager \&lt;br&gt;&amp;nbsp; NUMA Growth Phase&lt;/p&gt;
&lt;/td&gt;

&lt;td&gt;
&lt;p&gt;-&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;Memory Manager \&lt;br&gt;&amp;nbsp; Last OOM Factor&lt;/p&gt;
&lt;/td&gt;

&lt;td&gt;
&lt;p&gt;Buffer Pool \ Last&lt;br&gt;&amp;nbsp; OOM Factor&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;Memory Manager \&lt;br&gt;&amp;nbsp; Last OS Error&lt;/p&gt;
&lt;/td&gt;

&lt;td&gt;
&lt;p&gt;-&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;

&lt;/table&gt;

&lt;table style="width:610px;" cellSpacing="0" cellPadding="0"&gt;

&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;&lt;b&gt;SQL Server&lt;br&gt;&amp;nbsp; 2012&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;

&lt;td&gt;
&lt;p&gt;&lt;b&gt;SQL Server&lt;br&gt;&amp;nbsp; 2008 R2&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;Memory node Id = n&lt;br&gt;&amp;nbsp; \ Pages Allocated&lt;/p&gt;
&lt;/td&gt;

&lt;td&gt;
&lt;p&gt;Memory node Id = n&lt;br&gt;&amp;nbsp; \ MultiPage Allocator + Memory node Id = n \ SinglePage Allocator&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;Memory node Id = n&lt;br&gt;&amp;nbsp; \ Target Committed&lt;/p&gt;
&lt;/td&gt;

&lt;td&gt;
&lt;p&gt;-&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;Memory node Id = n&lt;br&gt;&amp;nbsp; \ Current Committed&lt;/p&gt;
&lt;/td&gt;

&lt;td&gt;
&lt;p&gt;-&lt;/p&gt;

&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;Memory node Id = n&lt;br&gt;&amp;nbsp; \ Foreign Committed&lt;/p&gt;
&lt;/td&gt;

&lt;td&gt;
&lt;p&gt;-&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;Memory node Id = n&lt;br&gt;&amp;nbsp; \ Away Committed&lt;/p&gt;
&lt;/td&gt;

&lt;td&gt;
&lt;p&gt;-&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;Memory Clerks \&lt;br&gt;&amp;nbsp; Pages Allocated&lt;/p&gt;
&lt;/td&gt;

&lt;td&gt;
&lt;p&gt;Memory Clerks \&lt;br&gt;&amp;nbsp; SinglePage Allocator + Memory Clerks \ MultiPage Allocator&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;

&lt;/table&gt;

&lt;h2&gt;Perfmon counters&lt;/h2&gt;
&lt;p&gt;&amp;nbsp;The Perfmon counter changes follow the same consolidation of counters under the Memory Manager object, and the standardization of counters to KB. Several deprecated AWE counters are now removed.&lt;/p&gt;

&lt;table style="width:856px;" cellSpacing="0" cellPadding="0"&gt;

&lt;tr&gt;
&lt;td class="oa1"&gt;
&lt;p&gt;SQL Server 2012&lt;/p&gt;
&lt;/td&gt;

&lt;td class="oa1"&gt;
&lt;p&gt;SQL Server 2008 R2&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td class="oa2"&gt;
&lt;p&gt;Object - SQLServer:Memory&lt;br&gt;&amp;nbsp; Manager&lt;/p&gt;
&lt;/td&gt;

&lt;td class="oa2"&gt;
&lt;p&gt;Object - SQLServer:Buffer&lt;br&gt;&amp;nbsp; Manager&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td class="oa3"&gt;
&lt;p&gt;Database Cache Memory (KB)&lt;/p&gt;
&lt;/td&gt;

&lt;td class="oa3"&gt;
&lt;p&gt;Database pages&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td class="oa4"&gt;
&lt;p&gt;Free Memory (KB)&lt;/p&gt;
&lt;/td&gt;

&lt;td class="oa4"&gt;
&lt;p&gt;Free pages&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td class="oa3"&gt;
&lt;p&gt;Reserved Server Memory (KB)&lt;/p&gt;
&lt;/td&gt;

&lt;td class="oa3"&gt;
&lt;p&gt;Reserved pages&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td class="oa4"&gt;
&lt;p&gt;Stolen Server Memory (KB)&lt;/p&gt;
&lt;/td&gt;

&lt;td class="oa4"&gt;
&lt;p&gt;Stolen pages&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td class="oa3"&gt;
&lt;p&gt;Target&lt;br&gt;&amp;nbsp; Server Memory&lt;br&gt;&amp;nbsp; (KB)&lt;/p&gt;
&lt;/td&gt;

&lt;td class="oa3"&gt;
&lt;p&gt;Target&lt;br&gt;&amp;nbsp; pages&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td class="oa4"&gt;
&lt;p&gt;Total&lt;br&gt;&amp;nbsp; Server Memory (KB)&lt;/p&gt;
&lt;/td&gt;

&lt;td class="oa4"&gt;
&lt;p&gt;Total&lt;br&gt;&amp;nbsp; pages&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td class="oa3"&gt;
&lt;p&gt;-&lt;/p&gt;
&lt;/td&gt;

&lt;td class="oa3"&gt;
&lt;p&gt;AWE&lt;br&gt;&amp;nbsp; lookup maps / sec&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td class="oa4"&gt;
&lt;p&gt;-&lt;/p&gt;
&lt;/td&gt;

&lt;td class="oa4"&gt;
&lt;p&gt;AWE stolen maps / sec&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td class="oa3"&gt;
&lt;p&gt;-&lt;/p&gt;
&lt;/td&gt;

&lt;td class="oa3"&gt;
&lt;p&gt;AWE&lt;br&gt;&amp;nbsp; write maps /&lt;br&gt;&amp;nbsp; sec&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td class="oa4"&gt;
&lt;p&gt;-&lt;/p&gt;
&lt;/td&gt;

&lt;td class="oa4"&gt;
&lt;p&gt;AWE&lt;br&gt;&amp;nbsp; unmap&lt;br&gt;&amp;nbsp; calls / sec&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td class="oa3"&gt;
&lt;p&gt;-&lt;/p&gt;
&lt;/td&gt;

&lt;td class="oa3"&gt;
&lt;p&gt;AWE&lt;br&gt;&amp;nbsp; unmap&lt;br&gt;&amp;nbsp; pages / sec&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;

&lt;/table&gt;

&lt;table style="width:610px;" cellSpacing="0" cellPadding="0"&gt;

&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;&lt;b&gt;SQL Server&lt;br&gt;&amp;nbsp; 2012&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;

&lt;td&gt;
&lt;p&gt;&lt;b&gt;SQL Server&lt;br&gt;&amp;nbsp; 2008 R2&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;Object -&lt;br&gt;&amp;nbsp; SQLServer:Memory Node&lt;/p&gt;
&lt;/td&gt;

&lt;td&gt;
&lt;p&gt;Object -&lt;br&gt;&amp;nbsp; SQLServer:Buffer Node&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;Database Node&lt;br&gt;&amp;nbsp; Memory (KB)&lt;/p&gt;
&lt;/td&gt;

&lt;td&gt;
&lt;p&gt;Database pages&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;Free Node Memory&lt;br&gt;&amp;nbsp; (KB)&lt;/p&gt;
&lt;/td&gt;

&lt;td&gt;
&lt;p&gt;Free pages&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;Foreign Node Memory&lt;br&gt;&amp;nbsp; (KB)&lt;/p&gt;
&lt;/td&gt;

&lt;td&gt;
&lt;p&gt;Foreign pages&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;Stolen Node Memory&lt;br&gt;&amp;nbsp; (KB)&lt;/p&gt;
&lt;/td&gt;

&lt;td&gt;
&lt;p&gt;Stolen pages&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;Target Node Memory&lt;br&gt;&amp;nbsp; (KB)&lt;/p&gt;
&lt;/td&gt;

&lt;td&gt;
&lt;p&gt;Target pages&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;Total Node Memory&lt;br&gt;&amp;nbsp; (KB)&lt;/p&gt;
&lt;/td&gt;

&lt;td&gt;
&lt;p&gt;Total pages&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;

&lt;/table&gt;

&lt;p&gt;&lt;b&gt;&lt;/b&gt;&amp;nbsp;&lt;/p&gt;

&lt;p&gt;I'll follow up this article with some additional surface area changes for configuration and new memory manager messages that appear in the errorlog.&amp;nbsp;&lt;/p&gt;

&lt;p&gt;The goal of these changes is to make the new Memory Manager activity easier and more intuitive to track, and to clean up some of the values that no longer make sense with the any size page allocator and deprecation of AWE. Anything you used to use but can't find any more? Let me know.&lt;/p&gt;

Originally posted at http://blogs.msdn.com/b/sqlosteam/</description></item><item><title>SQL Server 2012 : The Data Tools installer is now available</title><link>http://www2.sqlblog.com/blogs/aaron_bertrand/archive/2011/11/21/sql-server-2012-the-data-tools-installer-is-now-available.aspx</link><pubDate>Mon, 21 Nov 2011 15:18:00 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:39908</guid><dc:creator>AaronBertrand</dc:creator><description>&lt;p&gt;Last week when RC0 was released, the updated installer for "Juneau" (SQL Server Data Tools) was not available. Depending on how you tried to get it, you either ended up on a blank search page, or a page offering the CTP3 bits. Important note: the CTP3 Juneau bits are not compatible with SQL Server 2012 RC0.&lt;/p&gt;&lt;p&gt;If you already have Visual Studio 2010 installed (meaning Standard/Pro/Premium/Ultimate), you will need to install &lt;a href="http://www.microsoft.com/download/en/details.aspx?id=23691" title="http://www.microsoft.com/download/en/details.aspx?id=23691" target="_blank"&gt;Service Pack 1&lt;/a&gt; before continuing. You can get to the installer simply by opening Visual Studio, going to File &amp;gt; New &amp;gt; Project, and then choose the option "SQL Server" that appears under the "Other Languages" category (not the "SQL Server" option that appears under the "Database" category):&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;&lt;img src="http://bertrandaaron.files.wordpress.com/2011/11/rc0_juneau_1.png" height="454" width="704"&gt;&amp;nbsp;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;When you click OK, you will get another dialog that prompts you to install SQL Server Data Tools:&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;&lt;img src="http://bertrandaaron.files.wordpress.com/2011/11/rc0_juneau_2.png" height="260" width="476"&gt;&amp;nbsp;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;When you click Install, your web browser will be launched on the &lt;a href="http://msdn.microsoft.com/en-us/data/hh297027" title="http://msdn.microsoft.com/en-us/data/hh297027" target="_blank"&gt;Data Tools "Get Started" page&lt;/a&gt;. There you will see a link to "Download SQL Server Data Tools" which will launch or download SSDTSetup.exe:&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;&lt;img src="http://bertrandaaron.files.wordpress.com/2011/11/rc0_juneau_3.png" height="182" width="669"&gt;&amp;nbsp;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;At this point I would close Visual Studio 2010, because you'll probably be prompted to close it anyway. &lt;/p&gt;&lt;p&gt;As usual you'll be prompted with a security warning:&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;&lt;img src="http://bertrandaaron.files.wordpress.com/2011/11/juneau_4.png" height="294" width="413"&gt;&amp;nbsp;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;Next you'll need to agree to the lengthy license terms and conditions:&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;&lt;img src="http://bertrandaaron.files.wordpress.com/2011/11/juneau_5.png" height="549" width="789"&gt;&amp;nbsp;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;Next it will download LoaclDB (the new dev/Express runtime) and install. For me on multiple installs the Installation Progress bar held at 99% for a noticeable amount of time:&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;&lt;img src="http://bertrandaaron.files.wordpress.com/2011/11/juneau_6.png" height="550" width="789"&gt;&amp;nbsp;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;With a little bit of luck you should end up at the "Success" screen:&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;&lt;img src="http://bertrandaaron.files.wordpress.com/2011/11/juneau_7.png" height="549" width="789"&gt;&amp;nbsp;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;Now you can open Visual Studio directly (or from the "SQL Server Data Tools" menu item under All Programs &amp;gt; Microsoft SQL Server 2012 RC0. Choose File &amp;gt; New &amp;gt; Project and again choose "SQL Server" under "Other Languages." The option depicted above has changed to "SQL Server Database Project":&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;&lt;img src="http://bertrandaaron.files.wordpress.com/2011/11/juneau_9.png" height="453" width="705"&gt;&lt;br&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt; Click OK. You will find a Toolbox and a familiar Object Explorer on the left, where you can easily create new objects:&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;&lt;img src="http://bertrandaaron.files.wordpress.com/2011/11/juneau_8.png" height="359" width="343"&gt;&amp;nbsp;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;And now you can go to town developing your project. I haven't tried upgrading a project from CTP3 or from a previous version of "Data Dude." You're on your own there, sorry. &lt;br&gt;&lt;/p&gt;&lt;p&gt;As an aside the "other" SQL Server option under "Database" contains all the old project types that you may not want to use anymore. I hope they straighten this out and consolidate by RTM:&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;&lt;img src="http://bertrandaaron.files.wordpress.com/2011/11/juneau_10.png"&gt;&lt;br&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;If you already had Juneau CTP3 installed, you should be able to install SQL Server Data Tools CTP4 as an upgrade by simply downloading the updated SSDTSetup.exe from the &lt;a href="http://msdn.microsoft.com/en-us/data/hh297027" title="http://msdn.microsoft.com/en-us/data/hh297027" target="_blank"&gt;"Get Started" page&lt;/a&gt;. You may still need to install Visual Studio 2010 Service Pack 1 prior to doing so. For what it's worth, I completely removed SQL Server 2012 CTP3 and Juneau CTP3 before attempting to install the updated bits. If you try an upgrade and come across any issues, please let me know. &lt;br&gt;&lt;/p&gt;&lt;p&gt;You may be wondering why the versioning seems out of cadence - SQL Server is at RC0 while Juneau is at CTP4. This is because SQL Server is feature complete and an upgrade to RTM will now be supported. Juneau is not quite complete (there are still some pending changes before RTM); the naming remains CTP so that folks do not get the impression that an upgrade to RTM will be supported.&lt;br&gt;&amp;nbsp;&lt;br&gt;&lt;/p&gt;</description></item><item><title>A rose by any other name...</title><link>http://www2.sqlblog.com/blogs/aaron_bertrand/archive/2011/10/24/a-rose-by-any-other-name.aspx</link><pubDate>Mon, 24 Oct 2011 17:55:00 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:39353</guid><dc:creator>AaronBertrand</dc:creator><description>&lt;p&gt;At the PASS Summit, one of the most anticipated announcements was the release date, and marketing label, for SQL Server code-named "Denali" - the release date is "first half of 2012" (which probably means somewhere around June 25th), and the official name is SQL Server 2012. The logo was revealed on stage, and &lt;a href="http://sqlblog.com/blogs/aaron_bertrand/archive/2011/10/12/blogging-from-the-sql-pass-keynote-day-1.aspx" title="http://sqlblog.com/blogs/aaron_bertrand/archive/2011/10/12/blogging-from-the-sql-pass-keynote-day-1.aspx" target="_blank"&gt;in a previous blog post&lt;/a&gt;, I crafted up my own quick, dirty and horrible rendition with the limited tools available to me on my laptop while sitting at the blogger table. Here is the official version:&lt;br&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;&lt;img src="http://bertrandaaron.files.wordpress.com/2011/10/sql_2012.png" border="0" height="136" width="578"&gt;&amp;nbsp;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;Now, you will probably see many people continue to call it Denali in writing and conversation, both formal and casual alike. It will take a while for the new name to take hold, never mind be manually updated in Books Online, other forms of documentation, and even in GUIs and dialogs within Management Studio and other client components.&lt;/p&gt;&lt;p&gt;When the name was revealed, I heard some minor objections to continuing with the "year of release" theme. Some folks thought that it should be SQL 11 or SQL 12, corresponding to the actual version number (depending on &lt;a href="http://sqlblog.com/blogs/aaron_bertrand/archive/2011/02/09/is-sql-server-2008-r2-a-full-release-of-sql-server.aspx" title="http://sqlblog.com/blogs/aaron_bertrand/archive/2011/02/09/is-sql-server-2008-r2-a-full-release-of-sql-server.aspx" target="_blank"&gt;whether you consider 2008 R2 a full version&lt;/a&gt;). Let me explain why I think the chosen naming scheme makes the most sense, at least to Microsoft. &lt;br&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;The year of release is a fantastic model when dealing with customers down the road. In 2016 it makes it so much more obvious that their software is four years old than if it was called SQL Server 11.0 or SQL Server 12.0. What does this mean? A more compelling upgrade story. "Come on, you're on SQL Server 2012!" sounds a lot more antique than "Come on, you're on SQL Server 12.0, which was released in 2012."&lt;br&gt;&lt;br&gt;&lt;/li&gt;&lt;li&gt;SQL Server 2012 will likely be released in conjunction with Windows 8 Server, which will also likely be named with a 2012 suffix. In the 2000 and 2008 timeframes, this story was consistent; with Windows Server 2003 and SQL Server 2005, they got a little out of sync. If I were a betting man I'd say they'll be back in step in 2012.&lt;br&gt;&lt;br&gt;&lt;/li&gt;&lt;li&gt;Be quite thankful that they're not using the previous method of just appending some release flag to an existing version, yet still trying to maintain that it is a full release. We know that in reality they didn't give it a "full release name" because there really wasn't a whole lot to it in the core engine - Unicode compression for Enterprise customers, and backup compression for Standard customers. And we also know that this horrible naming blunder causes unending confusion with customers:&lt;br&gt;&lt;br&gt;&lt;ul&gt;&lt;li&gt;"Is this service pack for 2008 also applicable to 2008 R2?"&amp;nbsp; &lt;br&gt;&lt;br&gt;&lt;/li&gt;&lt;li&gt;"Do I need to install 2008 SP3 before or after 2008 R2? &lt;br&gt;&lt;br&gt;&lt;/li&gt;&lt;/ul&gt;The fun never ends. So while I joke occasionally that they should have named it...&lt;br&gt;&lt;br&gt;&lt;img src="http://bertrandaaron.files.wordpress.com/2011/10/sql_2008_r3.png" height="136" width="578"&gt;&lt;br&gt;&lt;br&gt;...I'm really not serious. I believe (or at least hope) that they've learned their lesson with that one. Though, I had hoped they'd learned their lesson with bad data type names like TIMESTAMP, yet they came out with DATETIME2 amidst very loud objections from several MVPs. And who could forget entities with multiple personality disorders, like user-defined types and DAC? They also recently announced that Crescent will be officially named "Power View" with a space, unlike PowerPivot, PowerPoint, and PowerShell, which have no spaces. Since consistency is such a priority, early in 2014, I wouldn't be too surprised to see the announcement of:&lt;br&gt;&lt;br&gt;&lt;img src="http://bertrandaaron.files.wordpress.com/2011/10/sql_2012_r2.png" height="136" width="578"&gt;&lt;br&gt;&lt;br&gt;Will I still be excited about it? Probably at least as excited as I was about SQL Server 2008 R2. And I'll leave it at that.&lt;br&gt;&amp;nbsp;&lt;br&gt;&lt;/li&gt;&lt;/ol&gt;</description></item><item><title>SSIS: Script component debugging comes to SQL Server Integration Services 2012</title><link>http://www2.sqlblog.com/blogs/jamie_thomson/archive/2011/10/14/ssis-script-component-debugging-comes-to-sql-server-integration-services-2012.aspx</link><pubDate>Fri, 14 Oct 2011 08:48:00 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:39042</guid><dc:creator>jamiet</dc:creator><description>&lt;p&gt;One of the biggest complaints I see developers raising about SSIS since it was released in 2005 is that the only way to debug Script Components is the distinctly simplistic and old fashioned method of sticking up message boxes - there&amp;nbsp;is no way to step through the code as it executes (something that Microsoft developers have generally&amp;nbsp;been able to&amp;nbsp;do for eons).&lt;/p&gt;&lt;p&gt;Happily that is no longer the case, or won't be soon anyway. In his session yesterday at the PASS Summit SSIS team member Matt Masson revealed that proper Script Component debugging (breakpoints, step into, step over, etc...) will be coming to SSIS 2012. Matt asked me to point out that nothing is certain, things may change before RTM blah blah blah but ostensibly SSIS developers can now sleep easy in the knowledge that message box debugging has gone away forever. Great news!&lt;/p&gt;&lt;p&gt;@jamiet&lt;/p&gt;</description></item><item><title>PASS Summit 2011, Day 1 </title><link>http://www2.sqlblog.com/blogs/kevin_kline/archive/2011/10/13/pass-summit-2011-day-1.aspx</link><pubDate>Thu, 13 Oct 2011 13:40:00 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:39029</guid><dc:creator>KKline</dc:creator><description>I've already had a few good days in Seattle/Redmond this week, meeting with the Microsoft SQL Server program teams and with other Microsoft SQL Server MVPs.  I was as excited as a squeeling Justin Beiber fangirl waiting for his new video, wishing I could tell you all of the cool things I learned at Redmond about the future of SQL Server.  But as you'd expect, all of that cool stuff is presently NDA.  I'm sure there'll be some cool announcements from Microsoft this week.  So be on the lookout for the good word from Microsoft.
&lt;h2&gt;Keynote&lt;/h2&gt;
Rushabh Mehta, the PASS president, spent a few moments extolling the value of community and the achievements of the professional association.  And he's got a lot to be proud of.  PASS has come &lt;span style="text-decoration:underline;"&gt;such&lt;/span&gt; a long way.  One of the most telling facts about the significance of PASS, to me, is that important SQL Server announcements now happen at the PASS Summit.  There was a time, and not very long ago too, in which Microsoft made important SQL Server announcements at other Microsoft events like PDC and TechEd.  No longer!  PASS is the nexus for Microsoft's data management users.  And it shows.

Ted Kummert, Microsoft's top data executive, had a lot of exciting talking points about how the community has grown.  PASS now has hundreds of chapters worldwide and nearly ninety thousand members.  The event has over 4000 paying attendees this year, which means probably around 6000 total attendees including press, exhibitors, speakers, etc.  That's big!  In fact, that's just about the peak capacity for the Washington State Convention Center here in Seattle.  No wonder PASS will be at other locations in the future.
&lt;h2&gt;It's Officially called SQL Server 2012&lt;/h2&gt;
SQL Server "Denali" is officially rolling out as &lt;span style="text-decoration:underline;"&gt;SQL Server 2012&lt;/span&gt;.  There are a lot of interesting new developments with SQL12 regarding the way the product is splitting into multiple types of appliances designed for specific workloads and customer needs.  Need a massive processing appliance, check! That's PDW.  Need a hybrid solution for data housed both on premises and in the cloud?  Check.  Need processing power for BigData?  Need processing for non-relational and unstructured data?  Check.

Microsoft's improving tools will culminate in a new release of development tools called "SQL Server Data Tools", formerly known as Project Juneau, while the business intelligence side of the house will have a new set of tools in "Power View", formerly known as Project Crescent.  Hadoop figured large in the keynote, as Microsoft acknowledges that many BigData problems are best served by non-relational data stores.  Denny Lee, of SQLCAT, proposed an in-house data marketplace during his demos.  My face lit up like a kid at a surprise 10-yr birthday party.  Really?!?  FOR ME?!!?  I laugh because I'd been doing that at jobs throughout my career, offering up what I used to call the "data feedstore" to managers within my team.  +! for validation of your ideas.
&lt;h2&gt;First Session of the Day&lt;/h2&gt;
From there I headed out to my first presentation of the conference, which I was delivering with my pal Buck Woody (&lt;a title="Buck Wouldn't, Woody?" href="http://blogs.msdn.com/b/buckwoody/" target="_blank"&gt;blog&lt;/a&gt; | &lt;a title="Inventor of the BuckmeisterwoodyfullerIne" href="http://twitter.com/buckwoody" target="_blank"&gt;twitter&lt;/a&gt;) of Microsoft. Our session was all about Cloud 101 - when it's appropriate to use the cloud and where you can learn more about the specific technologies like IaaS, PaaS, and SaaS.  Many IT pros don't know the difference and are being subjected to the "implement it!" decrees of their bosses who simply read an article on an airplane saying that the cloud is the future.  The best quote from the Twittersphere about our session?  "Elastic is fantastic"  I couldn't have said it better!

Speaking of conference sessions, my buddy Brent Ozar (&lt;a title="One of the few, the proud, the MCMs" href="http://brentozar.com/" target="_blank"&gt;blog&lt;/a&gt; | &lt;a title="Tro-lo-lo with BrentO" href="http://twitter.com/brento" target="_blank"&gt;twitter&lt;/a&gt;) pointed out this great mobile schedule planning resource:
&lt;p style="padding-left:30px;"&gt;Go to &lt;a href="http://guidebookapp.com/getit/"&gt;Guidebook&lt;/a&gt; and download the app for your iPhone, Windows Phone 7, Android, or Blackberry.  After launching it, you’ll be prompted to download a guide.  Type in PASS Summit, and we’re near the bottom of the list.&lt;/p&gt;
Voila! Instant mobile schedule guidebook to the PASS Summit.
&lt;h2&gt;The Energy is Nuts!&lt;/h2&gt;
After delivering my session, it was off to the Exhibit Hall, where I played the role of booth jockey for Quest Software for the rest of the proceedings that day.  I noticed two things of significance.  First, the crowds were thicker and more energetic than I've seen in years.  Wow!  I knew attendance was our highest ever, but the crowd was near to bursting out at the seems like a 14-year old kid wearing last season's clothes.  So either the Washington State Convention Center is no longer big enough or more planning is needed to make this venue work.  When I was in leadership for PASS, planning and properly utilizing the venue was always a logistical nightmare.  So I don't envy the current leadership in figuring out how to make the PASS Summit scale to an even larger size.  The second thing I noticed was how focused the crowd was.  Usually, you get a lot of tire-kickers in the booth who, deep down inside, only want your vendor swag.  Yes, we had some cute swag this year (a &lt;a title="The TOAD IDE" href="http://www.toadworld.com" target="_blank"&gt;Toad&lt;/a&gt; beanie baby and some cool ribbons for your badge).  But we also had huge crowds even &lt;em&gt;after &lt;/em&gt;we ran out of swag.  And, in case you didn't detect the important part of the previous sentence, &lt;em&gt;we ran out of swag!&lt;/em&gt; That's right we gave out everything on day 1 of a 3 day event.  I nearly &lt;a title="My daughters love Victoria Justice" href="http://www.youtube.com/watch?v=K6oE23XeZPM" target="_blank"&gt;freaked the freak out&lt;/a&gt;. What is going on here, folks?  Haven't you heard that there's a recession going on?

&amp;nbsp;

&amp;nbsp;</description></item><item><title>PASS Summit 2011 Resource List : What's New in SQL Server 2012</title><link>http://www2.sqlblog.com/blogs/aaron_bertrand/archive/2011/10/12/pass-summit-2011-resource-list-what-s-new-in-denali.aspx</link><pubDate>Wed, 12 Oct 2011 15:00:00 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:38298</guid><dc:creator>AaronBertrand</dc:creator><description>&lt;p&gt;At PASS I am giving a presentation on &lt;strike&gt;Denali&lt;/strike&gt; SQL Server 2012 - What's New in Engine and Tools. In previous blog posts I've compiled a list of resources and, now that CTP3 is out, I thought I'd compile a much larger list that flows somewhat like my slide deck.&lt;/p&gt;&lt;p&gt;Here is the deck and sample files:&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;&lt;a href="http://bit.ly/AB-PASS-2012" title="http://bit.ly/AB-PASS-2012" target="_blank"&gt;http://bit.ly/AB-PASS-2012&lt;/a&gt;&amp;nbsp;&amp;nbsp; &lt;br&gt;&lt;/p&gt;&lt;/blockquote&gt;The second demo file, 11.SSMS.sql, doesn't really help you at all, since it was meant to be an interactive demo where I would show you visually what I was doing. I do plan to write a more extensive blog post on the snippets feature specifically, but some of the benefits of the new VS shell for Management Studio are ones you just have to touch and feel for yourself.&lt;br&gt;

&lt;p&gt;In any case, since I cleared out a lot of the noise in the deck (mostly links), I promised a resource list, and here it is - largely in the order of the slides. Please note that much of the content being linked to was written months ago, and that some of the information may have changed (and continues to change) - so may not be 100% in line with what is on the slide deck above.&lt;/p&gt;

&lt;p&gt;&lt;br&gt;&lt;b&gt;Licensing FAQ&lt;/b&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;a href="http://bit.ly/AB-2012-Licensing" title="http://bit.ly/AB-2012-Licensing" target="_blank"&gt;http://bit.ly/AB-2012-Licensing&lt;/a&gt; &lt;br&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;br&gt;Setup&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &lt;a href="http://bit.ly/AB_Denali_Setup" target="_blank"&gt;http://bit.ly/AB_Denali_Setup&lt;/a&gt;&lt;br&gt;
&lt;br&gt;
&lt;b&gt;&lt;br&gt;Books Online&lt;/b&gt;&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;a href="http://bit.ly/AB_Denali_BOL" target="_blank"&gt;http://bit.ly/AB_Denali_BOL&lt;/a&gt;&lt;br&gt;
&lt;br&gt;
&lt;b&gt;&lt;br&gt;AlwaysOn&lt;/b&gt;&lt;br&gt;
&lt;/p&gt;

&lt;blockquote&gt;AlwaysOn resource site: &lt;a href="http://bit.ly/AB_Denali_AlwaysOn" target="_blank"&gt;http://bit.ly/AB_Denali_AlwaysOn&lt;/a&gt;&lt;br&gt;
PASS keynote video: &lt;a href="http://bit.ly/AB_Denali_Keynote2" target="_blank"&gt;http://bit.ly/AB_Denali_Keynote2&lt;/a&gt;&lt;br&gt;
Bob Dorr blog post: &lt;a href="http://bit.ly/AB_Denali_BobDorr" target="_blank"&gt;http://bit.ly/AB_Denali_BobDorr&lt;/a&gt;&lt;br&gt;Brent Ozar blog post: &lt;a href="http://bit.ly/AB_Denali_OzarAlwaysOn" title="http://bit.ly/AB_Denali_OzarAlwaysOn" target="_blank"&gt;http://bit.ly/AB_Denali_OzarAlwaysOn&lt;/a&gt;&lt;br&gt;Leroy Tuttle AlwaysOn Solutions Guide: &lt;a href="http://bit.ly/AB-2012-Tuttle" title="http://bit.ly/AB-2012-Tuttle" target="_blank"&gt;http://bit.ly/AB-2012-Tuttle&lt;/a&gt;&lt;br&gt;&lt;/blockquote&gt;

&lt;p&gt;
&lt;b&gt;&lt;br&gt;Contained Databases&lt;/b&gt;&lt;br&gt;
&lt;/p&gt;

&lt;blockquote&gt;&lt;a href="http://bit.ly/AB_Denali_CDBtag" target="_blank"&gt;http://bit.ly/AB_Denali_CDBtag&lt;/a&gt;&lt;br&gt;&lt;/blockquote&gt;

&lt;p&gt;
&lt;b&gt;&lt;br&gt;Custom server roles&lt;/b&gt;&lt;br&gt;&lt;/p&gt;

&lt;blockquote&gt;
Mike Walsh blog post: &lt;a href="http://bit.ly/AB_Denali_MikeWalsh" target="_blank"&gt;http://bit.ly/AB_Denali_MikeWalsh&lt;/a&gt;&lt;br&gt;&lt;/blockquote&gt;

&lt;p&gt;
&lt;b&gt;&lt;br&gt;Juneau&lt;/b&gt;&lt;br&gt;&lt;/p&gt;

&lt;blockquote&gt;TechEd Europe video: &lt;a href="http://bit.ly/AB_Denali_BIDSVid" target="_blank"&gt;http://bit.ly/AB_Denali_BIDSVid&lt;/a&gt;&lt;br&gt;&lt;/blockquote&gt;

&lt;blockquote&gt;
&lt;p&gt;Intro / download: &lt;a href="http://bit.ly/AB-Denali-Juneau" title="http://bit.ly/AB-Denali-Juneau" target="_blank"&gt;http://bit.ly/AB-Denali-Juneau&lt;/a&gt;&lt;br&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;b&gt;&lt;br&gt;Programmability / SSMS&lt;/b&gt;&lt;br&gt;
&lt;a href="http://bit.ly/AB_Denali_SSMS" target="_blank"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;&lt;a href="http://bit.ly/AB_Denali_SSMS" target="_blank"&gt;http://bit.ly/AB_Denali_SSMS&lt;/a&gt;&lt;br&gt;&lt;/blockquote&gt;

&lt;p&gt;
&lt;b&gt;&lt;br&gt;Metadata discovery / EXEC ... WITH RESULT SETS&lt;/b&gt;&lt;br&gt;
&lt;a href="http://bit.ly/AB_Denali_Metadata" target="_blank"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;&lt;a href="http://bit.ly/AB_Denali_Metadata" target="_blank"&gt;http://bit.ly/AB_Denali_Metadata&lt;/a&gt;&lt;br&gt;&lt;/blockquote&gt;

&lt;p&gt;
&lt;b&gt;&lt;br&gt;OFFSET&lt;/b&gt;&lt;br&gt;
&lt;a href="http://bit.ly/AB_Denali_OFFSET" target="_blank"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;&lt;a href="http://bit.ly/AB_Denali_OFFSET" target="_blank"&gt;http://bit.ly/AB_Denali_OFFSET&lt;/a&gt;&lt;br&gt;&lt;/blockquote&gt;

&lt;p&gt;
&lt;br&gt;
&lt;b&gt;SEQUENCE&lt;/b&gt;&lt;br&gt;
&lt;a href="http://bit.ly/AB_Denali_SEQUENCEtag" target="_blank"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;&lt;a href="http://bit.ly/AB_Denali_SEQUENCEtag" target="_blank"&gt;http://bit.ly/AB_Denali_SEQUENCEtag&lt;/a&gt;&lt;br&gt;&lt;/blockquote&gt;

&lt;p&gt;
&lt;br&gt;
&lt;b&gt;THROW&lt;/b&gt;&lt;br&gt;
&lt;a href="http://bit.ly/AB_Denali_THROW" target="_blank"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;&lt;a href="http://bit.ly/AB_Denali_THROW" target="_blank"&gt;http://bit.ly/AB_Denali_THROW&lt;/a&gt;&lt;/blockquote&gt;

&lt;p&gt;&lt;br&gt;&lt;b&gt;Windowing Functions&lt;/b&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;Itzik Ben-Gan: &lt;a href="http://www.sqlmag.com/blog/puzzled-by-t-sql-blog-15/tsql/improved-support-window-functions-sql-server-denali-ctp3-140423" title="http://www.sqlmag.com/blog/puzzled-by-t-sql-blog-15/tsql/improved-support-window-functions-sql-server-denali-ctp3-140423" target="_blank"&gt;SQL Mag article&lt;/a&gt; / &lt;a href="http://channel9.msdn.com/Events/TechEd/NorthAmerica/2011/DBI310" title="http://channel9.msdn.com/Events/TechEd/NorthAmerica/2011/DBI310" target="_blank"&gt;Tech Ed Video&lt;/a&gt;&lt;br&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;br&gt;&lt;b&gt;EOMONTH()&lt;/b&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;a href="http://bit.ly/AB-Denali-EOMONTH" title="http://bit.ly/AB-Denali-EOMONTH" target="_blank"&gt;http://bit.ly/AB-Denali-EOMONTH&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;br&gt;&lt;b&gt;FORMAT()&lt;/b&gt; &lt;br&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;a href="http://bit.ly/AB-Denali-Format" title="http://bit.ly/AB-Denali-Format" target="_blank"&gt;
http://bit.ly/AB-Denali-Format&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;br&gt;&lt;b&gt;TRY_CONVERT / PARSE / TRY_PARSE / CHOOSE / CONCAT / IIF&lt;/b&gt;&lt;br&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;&lt;a href="http://www.sqlmag.com/blog/puzzled-by-t-sql-blog-15/tsql/denali-tsql-glance-enhanced-functions-140785" title="http://www.sqlmag.com/blog/puzzled-by-t-sql-blog-15/tsql/denali-tsql-glance-enhanced-functions-140785" target="_blank"&gt;Itzik Ben-Gan's post for SQL Mag&lt;/a&gt;&lt;br&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;br&gt;
&lt;b&gt;FORCESEEK / FORCESCAN&lt;/b&gt;&lt;br&gt;
&lt;a href="http://bit.ly/AB_Denali_ForceSeek" target="_blank"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;&lt;a href="http://bit.ly/AB_Denali_ForceSeek" target="_blank"&gt;http://bit.ly/AB_Denali_ForceSeek&lt;/a&gt;&lt;br&gt;&lt;/blockquote&gt;

&lt;p&gt;
&lt;br&gt;
&lt;b&gt;Spatial Whitepaper&lt;/b&gt;&lt;br&gt;
&lt;a href="http://bit.ly/AB_Denali_Spatial_WP" target="_blank"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;&lt;a href="http://bit.ly/AB_Denali_Spatial_WP" target="_blank"&gt;http://bit.ly/AB_Denali_Spatial_WP&lt;/a&gt;&lt;br&gt;&lt;/blockquote&gt;

&lt;p&gt;
&lt;br&gt;
&lt;b&gt;Columnstore Index&lt;/b&gt;&lt;br&gt;
&lt;/p&gt;

&lt;blockquote&gt;ColumnStore Performance Tuning: &lt;a href="http://bit.ly/AB-2012-ColumnStoreTuning" title="http://bit.ly/AB-2012-ColumnStoreTuning" target="_blank"&gt;http://bit.ly/AB-2012-ColumnStoreTuning&lt;/a&gt; &lt;br&gt;ColumnStore Index FAQ: &lt;a href="http://bit.ly/AB-2012-ColumnStoreFAQ" title="http://bit.ly/AB-2012-ColumnStoreFAQ" target="_blank"&gt;http://bit.ly/AB-2012-ColumnStoreFAQ&lt;/a&gt;&lt;br&gt;My blog post: &lt;a href="http://bit.ly/AB_Denali_Apollo" target="_blank"&gt;http://bit.ly/AB_Denali_Apollo&lt;/a&gt;&lt;br&gt;&lt;/blockquote&gt;

&lt;p&gt;&lt;br&gt;&lt;b&gt;Full-Text Search : Semantic Search&lt;/b&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;&lt;a href="http://blogs.msdn.com/b/sqlfts/archive/2011/07/21/introducing-fulltext-statistical-semantic-search-in-sql-server-codename-denali-release.aspx" title="http://blogs.msdn.com/b/sqlfts/archive/2011/07/21/introducing-fulltext-statistical-semantic-search-in-sql-server-codename-denali-release.aspx" target="_blank"&gt;Naveen Grag's blog post&lt;/a&gt; &lt;br&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;br&gt;&lt;b&gt;
List of changed system objects&lt;/b&gt;&lt;br&gt;&lt;/p&gt;

&lt;blockquote&gt;&lt;a href="http://bit.ly/AB_Denali_SystemObjects" target="_blank"&gt;http://bit.ly/AB_Denali_SystemObjects&lt;/a&gt;&lt;/blockquote&gt;

&lt;blockquote&gt;&lt;a href="http://bit.ly/AB-Denali-SystemObjectsCTP3" title="http://bit.ly/AB-Denali-SystemObjectsCTP3" target="_blank"&gt;http://bit.ly/AB-Denali-SystemObjectsCTP3&lt;/a&gt; &lt;br&gt;&lt;/blockquote&gt;

&lt;p&gt;&lt;br&gt;&lt;b&gt;Resource Governor changes&lt;/b&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;&lt;a href="http://bit.ly/AB-Denali-RG" title="http://bit.ly/AB-Denali-RG" target="_blank"&gt;http://bit.ly/AB-Denali-RG&lt;/a&gt; &lt;br&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;br&gt;&lt;b&gt;sys.sp_server_diagnostics&lt;/b&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;Joe Sack's blog - &lt;a href="http://www.sqlskills.com/blogs/joe/post/Under-the-covers-with-sp_server_diagnostics-data-%28Part-I%29.aspx" title="http://www.sqlskills.com/blogs/joe/post/Under-the-covers-with-sp_server_diagnostics-data-%28Part-I%29.aspx" target="_blank"&gt;part 1&lt;/a&gt; / &lt;a href="http://www.sqlskills.com/blogs/joe/post/Under-the-covers-with-sp_server_diagnostics-data-%28Part-II%29.aspx" title="http://www.sqlskills.com/blogs/joe/post/Under-the-covers-with-sp_server_diagnostics-data-%28Part-II%29.aspx" target="_blank"&gt;part 2&lt;/a&gt; &lt;br&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;br&gt;&lt;b&gt;Deprecated / discontinued functionality&lt;/b&gt;&lt;br&gt;
&lt;a href="http://bit.ly/AB_Denali_Deprecated" target="_blank"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;&lt;a href="http://bit.ly/AB_Denali_Deprecated" target="_blank"&gt;http://bit.ly/AB_Denali_Deprecated&lt;/a&gt;&lt;br&gt;&lt;a href="http://bit.ly/AB-RC0-Discontinued" title="http://bit.ly/AB-RC0-Discontinued" target="_blank"&gt;http://bit.ly/AB-RC0-Discontinued&lt;/a&gt;&lt;br&gt;&amp;nbsp;&lt;br&gt;&lt;/blockquote&gt;

&lt;p&gt;&lt;b&gt;
Launch point for Denali BI resources&lt;/b&gt;&lt;br&gt;
&lt;a href="http://bit.ly/AB_Denali_BI" target="_blank"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;&lt;a href="http://bit.ly/AB_Denali_BI" target="_blank"&gt;http://bit.ly/AB_Denali_BI&lt;/a&gt;&lt;br&gt;&lt;/blockquote&gt;

&lt;p&gt;&lt;br&gt;----------------------&lt;/p&gt;

&lt;p&gt;&lt;br&gt;
&lt;b&gt;Download SQL Server 2012 RC0 (11.0.1750)&lt;/b&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;&lt;a href="http://bit.ly/AB-RC0-Download" title="http://bit.ly/AB-RC0-Download" target="_blank"&gt;http://bit.ly/AB-RC0-Download&lt;/a&gt;&amp;nbsp;&amp;nbsp; &lt;br&gt;&amp;nbsp;&lt;br&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;b&gt;SQL Server 2012 RC0 Developer Training Kit&lt;/b&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;a href="http://bit.ly/AB-RC0-TrainingKit" title="http://bit.ly/AB-RC0-TrainingKit" target="_blank"&gt;http://bit.ly/AB-RC0-TrainingKit&lt;/a&gt;&lt;br&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;br&gt;&lt;b&gt;
Forums&lt;/b&gt;&lt;br&gt;
&lt;a href="http://bit.ly/AB_Denali_Forums" target="_blank"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;&lt;a href="http://bit.ly/AB_Denali_Forums" target="_blank"&gt;http://bit.ly/AB_Denali_Forums&lt;/a&gt;&lt;br&gt;&lt;/blockquote&gt;

&lt;p&gt;
&lt;br&gt;&lt;b&gt;
Feedback / suggestions / bug reports&lt;/b&gt;&lt;br&gt;
&lt;a href="http://connect.microsoft.com/sql/" target="_blank"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;&lt;a href="http://connect.microsoft.com/sql/" target="_blank"&gt;http://connect.microsoft.com/sql/&lt;/a&gt;&lt;br&gt;&amp;nbsp;
&lt;/blockquote&gt;</description></item><item><title>Getting Juneau CTP3 to work - SqlCeManager issues</title><link>http://www2.sqlblog.com/blogs/aaron_bertrand/archive/2011/10/11/getting-juneau-ctp3-to-work-sqlcemanager-issues.aspx</link><pubDate>Tue, 11 Oct 2011 15:48:00 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:38993</guid><dc:creator>AaronBertrand</dc:creator><description>&lt;p&gt;Since installing Juneau, I've had various issues accomplishing even the simplest of tasks. I would get errors saying that the SqlCeManager could not be initialized or "object reference not set to an instance of an object." Depending on what I tried to do I might also see a big error dialog that suggested installing the fix from &lt;a href="http://support.microsoft.com/kb/974247" title="http://support.microsoft.com/kb/974247" target="_blank"&gt;KB #974247&lt;/a&gt;, however this fix did not work. What ended up solving my issues, and allowing me to actually demo the new code-aware table designer in my Denali session tomorrow, was &lt;a href="http://support.microsoft.com/kb/2553608" title="http://support.microsoft.com/kb/2553608" target="_blank"&gt;KB #2553608&lt;/a&gt;. You'll need to go to this link:&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;&lt;a href="http://support.microsoft.com/hotfix/KBHotfix.aspx?kbnum=2553608&amp;amp;kbln=en-us" title="http://support.microsoft.com/hotfix/KBHotfix.aspx?kbnum=2553608&amp;amp;kbln=en-us" target="_blank"&gt;http://support.microsoft.com/hotfix/KBHotfix.aspx?kbnum=2553608&amp;amp;kbln=en-us&lt;/a&gt; &lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;Check the box, fill in your e-mail address (twice), decipher the captcha, and request the download. Once it comes in, extract the archive, and run SSCERuntime-ENU.exe. This will extract SSCE_Runtime-x86.msi and SSCE_Runtime-x64.msi. If you are on a 64-bit system, you'll want to install *both* MSIs. I installed the x86 version first, then the x64. Once I did that, I was able to successfully connect to databases, create projects, etc.&lt;/p&gt;&lt;p&gt;Hope this helps.&lt;br&gt;&amp;nbsp;&lt;br&gt;&lt;/p&gt;</description></item><item><title>SQL Server v.Next (Denali) : Changes to Resource Governor</title><link>http://www2.sqlblog.com/blogs/aaron_bertrand/archive/2011/10/10/sql-server-v-next-denali-changes-to-resource-governor.aspx</link><pubDate>Mon, 10 Oct 2011 19:49:00 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:38968</guid><dc:creator>AaronBertrand</dc:creator><description>&lt;p&gt;After reading the headline, you're probably quite excited - but sadly, no, Denali does not introduce the ability to govern I/O. But there are some cool additions here that you will be able to take advantage of. For now I'll just talk about these enhancements in short form but will hopefully elaborate on them later. Note that these changes are not present in CTP3 but should be available in the next publicly available build.&lt;br&gt;&lt;/p&gt;

&lt;p&gt;&lt;br&gt;&lt;b&gt;More Resource Pools &lt;br&gt;&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;Under 64-bit only, you will now be able to have 64 resource pools (the current limit is 20). This number includes the default and internal pools, so really you can only create 18 resource pools today. The increased limit can help folks on larger hardware consolidate more instances into a single instance, and can help service providers offer more customers a "slice" of an instance's resources.&lt;/p&gt;

&lt;p&gt;&lt;br&gt;&lt;b&gt;Scheduler Affinity&lt;/b&gt; &lt;br&gt;&lt;/p&gt;

&lt;p&gt;You will now have the ability to set affinity to a scheduler, group of schedulers, or a NUMA node. So for example, if you wanted to set the affinity of a certain resource pool to schedulers 9 through 12 only, you could say:&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;ALTER RESOURCE POOL&lt;/font&gt; pool_name &lt;font color="blue"&gt;WITH&lt;/font&gt; (&lt;font color="blue"&gt;AFFINITY SCHEDULER&lt;/font&gt; = (9 &lt;font color="blue"&gt;TO&lt;/font&gt; 12));&lt;/pre&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;/blockquote&gt;

&lt;p&gt;As a warning of sorts, this can make your calculations for, as an example, MIN_CPU_PERCENT (which can't add to more than 100%) a lot more complex. There is also a new DMV so that you can inspect the affinity settings (only resource pools with explicit affinity settings will show in the result):&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="green"&gt;sys.dm_resource_governor_resource_pool_affinity&lt;/font&gt;&lt;br&gt;&lt;br&gt;Columns: &lt;br&gt;    pool_id, processor_group, scheduler_mask
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;br&gt;&lt;span style="font-weight:bold;"&gt;Real CPU capping&lt;/span&gt;&lt;br style="font-weight:bold;"&gt;&lt;/p&gt;

&lt;p&gt;You will now be able to cap CPU usage by a pool, even when there is no contention on the box. Currently MAX_CPU_PERCENT is only enforced if there are other workloads competing for CPU resources. This will allow providers to offer more predictable chargeback if their customer is often the only one on the box, in which case the MAX_CPU_PERCENT limit is ignored. You will be able to set the cap this way:&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;ALTER RESOURCE POOL&lt;/font&gt; pool_name &lt;font color="blue"&gt;WITH&lt;/font&gt; (&lt;font color="blue"&gt;CAP_CPU_PERCENT&lt;/font&gt; = 30);&lt;/pre&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;/blockquote&gt;


&lt;p&gt;This would prevent this pool from exceeding 30% CPU regardless of what other workloads are (or are not) running on the box. &lt;br&gt;&lt;/p&gt;

&lt;p&gt;&lt;br&gt;&lt;span style="font-weight:bold;"&gt;Memory Control&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;Resource Governor will be able to control all memory allocations *except* buffer pool and column store cache. Today it only handles query grant memory, but now this coverage will be extended (mostly due to changes in the memory manager).&lt;br&gt;&amp;nbsp;&lt;br&gt;&lt;/p&gt;</description></item><item><title>A quick look at SQL Server Audit in Denali CTP3</title><link>http://www2.sqlblog.com/blogs/linchi_shea/archive/2011/10/07/a-quick-look-at-sql-server-audit-in-denali-ctp3.aspx</link><pubDate>Fri, 07 Oct 2011 18:27:00 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:38929</guid><dc:creator>Linchi Shea</dc:creator><description>&lt;P style="MARGIN:0in 0in 10pt;" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;I have been using the SQL Server 2008 audit feature on a regular basis and generally like it a lot. No doubt there is still room for improvement to make it practically more useful. Here are three changes I would love to see.&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT:-0.25in;MARGIN:0in 0in 10pt 0.5in;mso-list:l0 level1 lfo1;" class=MsoListParagraph&gt;&lt;SPAN style="FONT-FAMILY:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;SPAN style="mso-list:Ignore;"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;You can’t really just audit the SELECT statements. Yes, you can pick SELECT as an audit action type. But because of the way the audit feature is implemented, you most likely would also end up with a lot of UPDATE or DELETE in the audit log. Note that SQL Server audit logs its data at the points when permissions are checked and a SELECT permission check is almost always performed when UPDATE/DELETE is executed. In other words, practically you can’t specify that you only want to audit SELECT queries on a table but don’t care about any DML on the same table. &lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN:0in 0in 10pt 0.5in;" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;Why is this even an issue? One of primary reasons I use the audit feature is to track usage for deprecation purposes. On one reporting server, we suspect that a table is not really being used and would like to confirm that’s the case and drop the table. So I set up the table for audit on all SELECT queries by specifying SELECT as the audit action type on the table, expecting to find none or very few audit records. But I end up with millions of records in the audit log, and virtually all of them are updates. Note that this is a reporting server, and the table is being replicated from an OLTP server, on which the table is heavily updated. These updates are faithfully replicated by a transactional replication distribution agent. For our purpose, we know the table is being updated by the distribution agent and we don’t care about. We just want to know if anyone is querying the table for reporting. But we don’t seem to be able to do that efficiently with the SQL Server 2008 audit feature.&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT:-0.25in;MARGIN:0in 0in 0pt 0.5in;mso-list:l0 level1 lfo1;" class=MsoListParagraphCxSpFirst&gt;&lt;SPAN style="FONT-FAMILY:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;SPAN style="mso-list:Ignore;"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;When you have a server with a lot of stored procedures calling each other, it can be difficult to find out where a statement in an audit record comes from. To me, the top most stored procedure is a key piece of audit information in addition to the exact statement being applied to the table directly. It should be captured, but it is not.&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT:-0.25in;MARGIN:0in 0in 10pt 0.5in;mso-list:l0 level1 lfo1;" class=MsoListParagraphCxSpLast&gt;&lt;SPAN style="FONT-FAMILY:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;SPAN style="mso-list:Ignore;"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;Much of the useful session level information is not captured in the audit record, making it difficult to correlate what (e.g. program name) did what (i.e. the info in the audit record) from where (e.g. hostname). There may be a perfect reason for not providing more/tighter correlation with the session level information. But this makes the audit feature less useful.&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN:0in 0in 10pt;" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;So the question is: do we have any good news from Denali CTP3? The answer is yes and no. Denali CTP3 has some nice improvement, but in my opinion it isn’t going far enough.&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN:0in 0in 10pt;" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;Good news is that in Denali CTP3, (1) we now can selectively retain audit records by using any or a combination of the columns in the audit records to setup a filtering predicate, and (2) the Additional Information column of the audit log now may include the T-SQL stack that has information on upper level calling stored procedures.&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN:0in 0in 10pt;" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;Not so good news is that these changes are not as effective as they could be or I’d love them to be.&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN:0in 0in 10pt;" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;I see two deficiencies in the audit filter capability. First, it is an attribute of the server audit object. It would give us more flexibility to add it as part of a database audit specification so that, for instance, we could create filters on what action type to include and what action type to filter out. The second issue with the current filter design is that it’s difficult to create an effective filter to retain only SELECT queries that are actually submitted instead ‘bogus’ SELECT as a result of permission checks on UPDATE or DELETE. &lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN:0in 0in 10pt;" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;The inclusion of the T-SQL stack information is excellent. But my testing with CTP3 shows that it only provides information going up one level (I don’t know if this will change in the final release). For instance, if you audit SELECT on table foo, and you have the following two stored procedures:&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN:0in 0in 0pt;BACKGROUND:#d9d9d9;mso-background-themecolor:background1;mso-background-themeshade:217;" class=MsoNormal&gt;&lt;SPAN style="LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';FONT-SIZE:9pt;"&gt;CREATE PROC p_foo_1&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN:0in 0in 0pt;BACKGROUND:#d9d9d9;mso-background-themecolor:background1;mso-background-themeshade:217;" class=MsoNormal&gt;&lt;SPAN style="LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';FONT-SIZE:9pt;"&gt;As &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN:0in 0in 0pt;BACKGROUND:#d9d9d9;mso-background-themecolor:background1;mso-background-themeshade:217;" class=MsoNormal&gt;&lt;SPAN style="LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';FONT-SIZE:9pt;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;SELECT * FROM foo&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN:0in 0in 0pt;BACKGROUND:#d9d9d9;mso-background-themecolor:background1;mso-background-themeshade:217;" class=MsoNormal&gt;&lt;SPAN style="LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';FONT-SIZE:9pt;"&gt;go&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN:0in 0in 0pt;BACKGROUND:#d9d9d9;mso-background-themecolor:background1;mso-background-themeshade:217;" class=MsoNormal&gt;&lt;SPAN style="LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';FONT-SIZE:9pt;"&gt;CREATE PROC p_foo_2&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN:0in 0in 0pt;BACKGROUND:#d9d9d9;mso-background-themecolor:background1;mso-background-themeshade:217;" class=MsoNormal&gt;&lt;SPAN style="LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';FONT-SIZE:9pt;"&gt;AS&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN:0in 0in 0pt;BACKGROUND:#d9d9d9;mso-background-themecolor:background1;mso-background-themeshade:217;" class=MsoNormal&gt;&lt;SPAN style="LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';FONT-SIZE:9pt;"&gt;EXECUTE p_foo_1&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN:0in 0in 0pt;BACKGROUND:#d9d9d9;mso-background-themecolor:background1;mso-background-themeshade:217;" class=MsoNormal&gt;&lt;SPAN style="LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';FONT-SIZE:9pt;"&gt;go&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN:0in 0in 0pt;" class=MsoNormal&gt;&lt;o:p&gt;&lt;FONT size=3 face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P style="MARGIN:0in 0in 10pt;" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;When you execute p_foo1 and p_foo2, the statement captured in the audit records will be the same:&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN:0in 0in 10pt;BACKGROUND:#d9d9d9;mso-background-themecolor:background1;mso-background-themeshade:217;" class=MsoNormal&gt;&lt;SPAN style="LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';FONT-SIZE:9pt;"&gt;SELECT * FROM foo&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN:0in 0in 10pt;" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;The T-SQL stack for p_foo_1 is as follows, clearly identifying the calling proc:&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN:0in 0in 0pt;BACKGROUND:#d9d9d9;mso-background-themecolor:background1;mso-background-themeshade:217;" class=MsoNormal&gt;&lt;SPAN style="LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';FONT-SIZE:9pt;"&gt;&amp;lt;tsql_stack&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN:0in 0in 0pt;BACKGROUND:#d9d9d9;mso-background-themecolor:background1;mso-background-themeshade:217;" class=MsoNormal&gt;&lt;SPAN style="LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';FONT-SIZE:9pt;"&gt;&amp;lt;frame nest_level = '1' database_name = 'test' schema_name = 'dbo' &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN:0in 0in 0pt;BACKGROUND:#d9d9d9;mso-background-themecolor:background1;mso-background-themeshade:217;" class=MsoNormal&gt;&lt;SPAN style="LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';FONT-SIZE:9pt;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;object_name = 'p_foo_1'/&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN:0in 0in 0pt;BACKGROUND:#d9d9d9;mso-background-themecolor:background1;mso-background-themeshade:217;" class=MsoNormal&gt;&lt;SPAN style="LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';FONT-SIZE:9pt;"&gt;&amp;lt;/tsql_stack&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN:0in 0in 0pt;" class=MsoNormal&gt;&lt;o:p&gt;&lt;FONT size=3 face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P style="MARGIN:0in 0in 10pt;" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;And the T-SQL stack captured for p_foo_2 is:&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN:0in 0in 0pt;BACKGROUND:#d9d9d9;mso-background-themecolor:background1;mso-background-themeshade:217;" class=MsoNormal&gt;&lt;SPAN style="LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';FONT-SIZE:9pt;"&gt;&amp;lt;tsql_stack&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN:0in 0in 0pt;BACKGROUND:#d9d9d9;mso-background-themecolor:background1;mso-background-themeshade:217;" class=MsoNormal&gt;&lt;SPAN style="LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';FONT-SIZE:9pt;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&amp;lt;frame nest_level = '2' database_name = 'test' schema_name = 'dbo' &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN:0in 0in 0pt;BACKGROUND:#d9d9d9;mso-background-themecolor:background1;mso-background-themeshade:217;" class=MsoNormal&gt;&lt;SPAN style="LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';FONT-SIZE:9pt;"&gt;&lt;SPAN style="mso-spacerun:yes;"&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;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;object_name = 'p_foo_1'/&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN:0in 0in 0pt;BACKGROUND:#d9d9d9;mso-background-themecolor:background1;mso-background-themeshade:217;" class=MsoNormal&gt;&lt;SPAN style="LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';FONT-SIZE:9pt;"&gt;&amp;lt;/tsql_stack&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN:0in 0in 10pt;" class=MsoNormal&gt;&lt;o:p&gt;&lt;FONT size=3 face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P style="MARGIN:0in 0in 10pt;" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;In both cases, the stored procedure is identified as p_foo_1, the one doing SELECT on the table directly. In the case of p_foo_2, you’ll need to pay attention to the value in the nest_level attribute. The nest_level value is 2, and you know that you must search one level up to find the calling stored procedure. This definitely helps. But if the nest_level value is 5, you end up having to do a lot of code search. So why not just identify the top calling stored procedure and save the user from having to search through the code?&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN:0in 0in 10pt;" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;With respect to the third issue I mentioned earlier, I have not found any change in CTP3 to better integrate/correlate the audit records with the SQL Server session level attributes.&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN:0in 0in 10pt;" class=MsoNormal&gt;&lt;o:p&gt;&lt;FONT size=3 face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;</description></item></channel></rss>