<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://sqlcat.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>sqlCat</title><link>http://sqlcat.com/sqlCat/default.aspx</link><description /><dc:language /><generator>Telligent Community 5.6.583.21914 (Build: 5.6.583.21914)</generator><item><title>Blog Post: Building Great Cloud Applications - Decoded</title><link>http://sqlcat.com/sqlCat/b/msdnmirror/archive/2013/05/07/building-great-cloud-applications-decoded.aspx</link><pubDate>Tue, 07 May 2013 23:49:00 GMT</pubDate><guid isPermaLink="false">e9619797-5f48-4d02-a1a8-7f300d09be66:2809</guid><dc:creator>jenlussier</dc:creator><description>&lt;p&gt;The application you write on premise is written to a piece of software purchased, installed and configured on a piece of computer hardware that you privately own.&amp;nbsp; The application you write in the cloud is written to a set of services that are available to you as well as the public to exploit.&amp;nbsp;&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/b/windowsazure/archive/2013/05/07/writing-a-cloud-application-is-easy-writing-a-good-cloud-application-is-harder.aspx"&gt;Read here&lt;/a&gt; to learn about how they are different.&amp;nbsp; We also provide &lt;a href="http://code.msdn.microsoft.com/Cloud-Fundamentals-in-1a3ab1bd"&gt;Cloud Service fundamentals code on Code Gallery&lt;/a&gt;.&amp;nbsp;&lt;/p&gt;</description></item><item><title>Blog Post: Be aware of the difference in isolation levels if porting an application from Windows Azure SQL DB to SQL Server in Windows Azure Virtual Machine</title><link>http://sqlcat.com/sqlCat/b/msdnmirror/archive/2013/04/30/be-aware-of-the-difference-in-isolation-levels-if-porting-an-application-from-windows-azure-sql-db-to-sql-server-in-windows-azure-virtual-machine.aspx</link><pubDate>Wed, 01 May 2013 06:26:00 GMT</pubDate><guid isPermaLink="false">e9619797-5f48-4d02-a1a8-7f300d09be66:2808</guid><dc:creator>SanjayMishra</dc:creator><description>&lt;p&gt;&lt;b&gt;Author&lt;/b&gt;: Sanjay Mishra, Tim Wieman&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Technical Reviewers&lt;/b&gt;: Mike Weiner, Shep Sheppard, Prem Mehra, Chuck Heinzelman, James Podgorski, Silvano Coriani, Madhan Arumugam Ramakrishnan, Sunil Agarwal, Guy Bowerman&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/windowsazure/ee336279.aspx"&gt;Windows Azure SQL Database&lt;/a&gt; and &lt;a href="http://msdn.microsoft.com/en-us/library/windowsazure/jj823132.aspx"&gt;SQL Server in Windows Azure Virtual Machine&lt;/a&gt; are two different data storage options and are best suited for slightly different application scenarios. Refer to the published articles on MSDN for a &lt;a href="http://blogs.msdn.com/b/windowsazure/archive/2012/06/26/data-series-sql-server-in-windows-azure-virtual-machine-vs-sql-database.aspx"&gt;comparison&lt;/a&gt;&amp;nbsp;and &lt;a href="http://blogs.msdn.com/b/windowsazure/archive/2013/02/14/choosing-between-sql-server-in-windows-azure-vm-amp-windows-azure-sql-database.aspx"&gt;how to choose&lt;/a&gt; between these options.&lt;/p&gt;  &lt;p&gt;There are certain differences between the two storage options. One important different is the isolation level of the database. Depending upon application design, difference in isolation level can impact the application concurrency, and ultimately, application performance and throughput.&lt;/p&gt;  &lt;p&gt;It is not a common practice to port databases from Windows Azure SQL Database to SQL Server in a Windows Azure VM environment. However, for some&amp;nbsp;specific unique reasons, not covered here, one of our customers performed such a migration and the only change made was to change the connection string.&lt;/p&gt;  &lt;p&gt;During the load test after the porting, we noticed that the performance of the application on SQL Server in Windows Azure VM did not match up to the performance of the application on Windows Azure SQL Database. Upon further investigation, we found much higher volume of&amp;nbsp; lock waits under SQL Server in Windows Azure VM.&lt;/p&gt;  &lt;p&gt;The key difference that impacted the application behavior is the isolation level of the two databases. On Windows Azure SQL Database, the isolation level settings for READ COMMITTED SNAPSHOT and SNAPSHOT ISOLATION are turned on:&lt;/p&gt;  &lt;p&gt;&lt;span style="font-family:courier new,courier;"&gt;select name, snapshot_isolation_state, is_read_committed_snapshot_on from sys.databases&lt;/span&gt;&lt;/p&gt;  &lt;table align="left" style="border-width:1px;border-style:solid;width:593px;height:44px;" border="1" frame="border"&gt;  &lt;tbody&gt;  &lt;tr&gt;  &lt;td&gt;&lt;strong&gt;name&lt;/strong&gt;&lt;/td&gt;  &lt;td&gt;&lt;strong&gt;snapshot_isolation_state&lt;/strong&gt;&lt;/td&gt;  &lt;td&gt;&lt;strong&gt;is_read_committed_snapshot_on&lt;/strong&gt;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr&gt;  &lt;td&gt;CustomerDB&lt;/td&gt;  &lt;td&gt;1&lt;/td&gt;  &lt;td&gt;1&lt;/td&gt;  &lt;/tr&gt;  &lt;/tbody&gt;  &lt;/table&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;p&gt;On a SQL Server database (running on Windows Azure VirtualMachine, or on-premises), the isolation level settings for READ COMMITTED SNAPSHOT and SNAPSHOT ISOLATION are turned off, by default:&lt;/p&gt;  &lt;p&gt;&lt;span style="font-family:courier new,courier;"&gt;select name, snapshot_isolation_state, is_read_committed_snapshot_on from sys.databases&lt;/span&gt;&lt;/p&gt;  &lt;table align="left" style="border-width:1px;border-style:solid;width:592px;height:44px;" border="1" frame="border"&gt;  &lt;tbody&gt;  &lt;tr&gt;  &lt;td&gt;&lt;strong&gt;name&lt;/strong&gt;&lt;/td&gt;  &lt;td&gt;&lt;strong&gt;snapshot_isolation_state&lt;/strong&gt;&lt;/td&gt;  &lt;td&gt;&lt;strong&gt;is_read_committed_snapshot_on&lt;/strong&gt;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr&gt;  &lt;td&gt;CustomerDB&lt;/td&gt;  &lt;td&gt;0&lt;/td&gt;  &lt;td&gt;0&lt;/td&gt;  &lt;/tr&gt;  &lt;/tbody&gt;  &lt;/table&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;p&gt;The customer application was designed and developed on Windows Azure SQL Database and it did make use of READ COMMITTED SNAPSHOT ISOLATION (RCSI).&lt;/p&gt;  &lt;p&gt;The performance comparison of the two data storage options, under default settings:&lt;/p&gt;  &lt;table align="left" style="width:589px;height:88px;" border="1"&gt;  &lt;tbody&gt;  &lt;tr&gt;  &lt;td&gt;&lt;strong&gt;Data Platform&lt;/strong&gt;&lt;/td&gt;  &lt;td&gt;&lt;strong&gt;Application Response Time (sec)&lt;/strong&gt;&lt;/td&gt;  &lt;td&gt;&lt;strong&gt;Application Throughput (web pages / sec)&lt;/strong&gt;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr&gt;  &lt;td&gt;&lt;span style="color:black;line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;Windows Azure SQL Database&lt;/span&gt;&lt;/td&gt;  &lt;td&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;0.83&lt;/span&gt;&lt;/td&gt;  &lt;td&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;38&lt;/span&gt;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr&gt;  &lt;td&gt;&lt;span style="color:black;line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;SQL Server in Windows Azure VM (default)&lt;/span&gt;&lt;/td&gt;  &lt;td&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;2.94&lt;/span&gt;&lt;/td&gt;  &lt;td&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;13.9&lt;/span&gt;&lt;/td&gt;  &lt;/tr&gt;  &lt;/tbody&gt;  &lt;/table&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;p&gt;As you can see, the application throughput for SQL Server in Windows Azure VM was almost one-third of the throughput with the database on Windows Azure SQL Database.&amp;nbsp; One of the important goals of the load testing was to ensure application response time under 2 seconds. For SQL Server in Windows Azure VM, under default settings, the application response time was more than the 2 second threshold the customer had set. Analyzing waitstats perfmon counters (counter &amp;ldquo;Lock Waits&amp;rdquo; under object =&amp;gt; &amp;ldquo;SQL Server:Wait Statistics&amp;rdquo;, instance =&amp;gt; &amp;ldquo;Average wait time (ms)&amp;rdquo;), we observed about 1 sec average wait time for locks.&lt;/p&gt;  &lt;p&gt;With RCSI turned on, the average lock wait time came down to a few milliseconds, application throughput significantly improved, and the application response time significantly improved.&lt;/p&gt;  &lt;table align="left" style="width:590px;height:71px;" border="1"&gt;  &lt;tbody&gt;  &lt;tr&gt;  &lt;td&gt;&lt;strong&gt;Data Platform&lt;/strong&gt;&lt;/td&gt;  &lt;td&gt;&lt;strong&gt;Application Response Time (sec)&lt;/strong&gt;&lt;/td&gt;  &lt;td&gt;&lt;strong&gt;Application Throughput (web pages / sec)&lt;/strong&gt;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr&gt;  &lt;td&gt;&lt;span style="color:black;line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;SQL Server in Windows Azure VM (default)&lt;/span&gt;&lt;/td&gt;  &lt;td&gt;2.94&lt;/td&gt;  &lt;td&gt;13.9&lt;/td&gt;  &lt;/tr&gt;  &lt;tr&gt;  &lt;td&gt;&lt;span style="color:black;line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;SQL Server in Windows Azure VM (with RCSI)&lt;/span&gt;&lt;/td&gt;  &lt;td&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;1.14&lt;/span&gt;&lt;/td&gt;  &lt;td&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;34.8&lt;/span&gt;&lt;/td&gt;  &lt;/tr&gt;  &lt;/tbody&gt;  &lt;/table&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;span style="text-decoration:underline;"&gt;&lt;/span&gt;&lt;/b&gt;&amp;nbsp;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;span style="text-decoration:underline;"&gt;&lt;/span&gt;&lt;/b&gt;&amp;nbsp;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;span style="text-decoration:underline;"&gt;Important Note&lt;/span&gt;:&lt;/b&gt;&amp;nbsp; When turning on &lt;a href="http://msdn.microsoft.com/en-us/library/ms177404(v=sql.105).aspx"&gt;RCSI&lt;/a&gt;, be aware that SQL Server maintains the version store in the TEMPDB database, and you may observe significant activity in TEMPDB.&amp;nbsp; Therefore, appropriate capacity and throughput must be planned for TEMPDB.&lt;/p&gt;  &lt;p style="padding-left:30px;"&gt;For example, for this specific scenario, after enabling RCSI, the increased throughput demands of TEMPDB necessitated scaling out TEMPDB data files to multiple data disks.&amp;nbsp; Following is the TEMPDB disk I/O throughput comparison before and after RCSI:&lt;/p&gt;  &lt;table align="center" style="width:581px;height:74px;" border="1"&gt;  &lt;tbody&gt;  &lt;tr&gt;  &lt;td&gt;&lt;b&gt;&lt;span style="color:black;line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;Data Platform&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;  &lt;td&gt;&lt;b&gt;&lt;span style="color:black;line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;Disk Read Bytes / sec&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;  &lt;td&gt;&lt;b&gt;&lt;span style="color:black;line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;Disk Write Bytes / sec&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr&gt;  &lt;td&gt;&lt;span style="color:black;line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;SQL Server in Windows Azure VM (default)&lt;/span&gt;&lt;/td&gt;  &lt;td&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;403,031&lt;/span&gt;&lt;/td&gt;  &lt;td&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;1,504,410&lt;/span&gt;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr&gt;  &lt;td&gt;&lt;span style="color:black;line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;SQL Server in Windows Azure VM (with RCSI)&lt;/span&gt;&lt;/td&gt;  &lt;td&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;26,570,531&lt;/span&gt;&lt;/td&gt;  &lt;td&gt;&lt;span style="line-height:115%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;58,219,559&lt;/span&gt;&lt;/td&gt;  &lt;/tr&gt;  &lt;/tbody&gt;  &lt;/table&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;span style="text-decoration:underline;"&gt;Further Reading:&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;ul&gt;  &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/windowsazure/jj879332.aspx"&gt;Windows Azure SQL Database and SQL Server -- Performance and Scalability Compared and Contrasted&lt;/a&gt;&lt;/li&gt;  &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms189122(v=SQL.105).aspx"&gt;Isolation Levels in the Database Engine&lt;/a&gt;&lt;/li&gt;  &lt;/ul&gt;</description></item><item><title>Blog Post: Access Azure Blob Stores from HDInsight</title><link>http://sqlcat.com/sqlCat/b/msdnmirror/archive/2013/04/25/access-azure-blob-stores-from-hdinsight.aspx</link><pubDate>Thu, 25 Apr 2013 20:38:00 GMT</pubDate><guid isPermaLink="false">e9619797-5f48-4d02-a1a8-7f300d09be66:2804</guid><dc:creator>sqlcat</dc:creator><description>&lt;p&gt;One of the great enhancements in Microsoft&amp;#39;s HDInsight distribution of Hadoop is the ability to store and access Hadoop data on an Azure Blob Store. We do this via the HDFS API extension called Azure Storage Vault (ASV). This allows you to persist data even after you spin down an HDInsight cluster and to make that data available across multiple programs or clusters from persistent storage. Blob stores can be replicated for redundancy and are highly available. When you need to access the data from Hadoop you point your cluster at the existing data and the data persists even after the cluster is spun down.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Azure Blob Storage&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Let&amp;#39;s start with how your data is stored. A storage account is created in the Azure portal and has access keys associated with it. All access to your Azure blob data is done via storage accounts. Within a storage account you need to create at least one container, though you can have many. Files (blobs) are put in the container(s). For more information on how to create and use storage accounts and containers see: &lt;a title="http://www.windowsazure.com/en-us/develop/net/how-to-guides/blob-storage/" href="http://www.windowsazure.com/en-us/develop/net/how-to-guides/blob-storage/"&gt;http://www.windowsazure.com/en-us/develop/net/how-to-guides/blob-storage/&lt;/a&gt;. Any storage accounts associated with HDInsight should be in the same data center as the cluster and must not be in an affinity group.&lt;/p&gt;  &lt;p&gt;You can create a container from the Azure portal....&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Read the complete blog post at:&lt;/strong&gt; &lt;a href="http://blogs.msdn.com/b/cindygross/archive/2013/04/25/access-azure-blob-stores-from-hdinsight.aspx"&gt;http://blogs.msdn.com/b/cindygross/archive/2013/04/25/access-azure-blob-stores-from-hdinsight.aspx&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10414080" width="1" height="1" alt=" " /&gt;</description></item><item><title>Blog Post: Self-Service BI Works!</title><link>http://sqlcat.com/sqlCat/b/msdnmirror/archive/2013/04/16/self-service-bi-works.aspx</link><pubDate>Tue, 16 Apr 2013 16:51:00 GMT</pubDate><guid isPermaLink="false">e9619797-5f48-4d02-a1a8-7f300d09be66:2803</guid><dc:creator>sqlcat</dc:creator><description>&lt;p&gt;When I talk to people about adding self-service BI to their company&amp;#39;s environment I generally get a list of reasons why it won&amp;#39;t work. Some things I commonly hear:&lt;/p&gt;  &lt;ul&gt;  &lt;li&gt;I can&amp;#39;t get anyone in IT or on the business side to even try it.&lt;/li&gt;  &lt;li&gt;The business side doesn&amp;#39;t know how to use the technology.&lt;/li&gt;  &lt;li&gt;This threatens my job.&lt;/li&gt;  &lt;li&gt;I just don&amp;#39;t know where to start either politically/culturally or with the technology.&lt;/li&gt;  &lt;li&gt;I have too many other things to do.&lt;/li&gt;  &lt;li&gt;How can it possibly be secure, allow standardization, or result in quality data and decisions?&lt;/li&gt;  &lt;li&gt;That&amp;#39;s not the way we do things.&lt;/li&gt;  &lt;li&gt;I don&amp;#39;t really know what self-service BI means.&lt;/li&gt;  &lt;/ul&gt;  &lt;p align="left"&gt;&lt;img style="margin:0px 10px 0px 0px;display:inline;" title="#PASSBAC 2013 Cindy and Eduardo" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-58-metablogapi/7128.PASSBAC2013CindyEduardo_5F00_thumb_5F00_63647A24.jpg" alt="#PASSBAC 2013 Cindy and Eduardo" width="240" height="171" align="left" border="0" /&gt;&amp;nbsp;So what is a forward thinking BI implementer to do? Well, Intel just went out and did it, blowing through the supposed obstacles. Eduardo Gamez of Intel&amp;#39;s Technology Manufacturing Engineering (TME) group interviewed business folks....&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&amp;nbsp;Read the complete post and get the slides at Self-Service BI Works! &lt;a href="http://blogs.msdn.com/b/cindygross/archive/2013/04/16/self-service-bi-works.aspx"&gt;http://blogs.msdn.com/b/cindygross/archive/2013/04/16/self-service-bi-works.aspx&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10411544" width="1" height="1" alt=" " /&gt;</description></item><item><title>Blog Post: Batching Techniques for SQL Database Applications in Windows Azure</title><link>http://sqlcat.com/sqlCat/b/msdnmirror/archive/2013/04/09/batching-techniques-for-sql-database-applications-in-windows-azure.aspx</link><pubDate>Tue, 09 Apr 2013 20:33:00 GMT</pubDate><guid isPermaLink="false">e9619797-5f48-4d02-a1a8-7f300d09be66:2801</guid><dc:creator>Silvano Coriani</dc:creator><description>&lt;p&gt;Batching operations to SQL Database significantly improves the performance and scalability of cloud services in Windows Azure. This paper first demonstrates the effectiveness of batching. It then covers the techniques, scenarios, and considerations to help you to use batching successfully in your cloud services. There are fixed processing costs to any interactions with a remote service, such as serialization, network transfer, and deserialization. Packaging many separate transactions into a single batch minimizes these costs.&lt;/p&gt;  &lt;p&gt;In &lt;a title="this" href="http://msdn.microsoft.com/en-us/library/dn132615.aspx"&gt;this&lt;/a&gt; paper, we want to examine various SQL Database batching strategies and scenarios. Although these strategies are also important for on-premises applications that use SQL Server, there are two main reasons for highlighting the use of batching for SQL Database:&lt;/p&gt;</description></item><item><title>Blog Post: Windows Azure SQL Database and SQL Server - Performance and Scalability Compared and Contrasted</title><link>http://sqlcat.com/sqlCat/b/msdnmirror/archive/2013/02/08/windows-azure-sql-database-and-sql-server-performance-and-scalability-compared-and-contrasted.aspx</link><pubDate>Fri, 08 Feb 2013 22:03:00 GMT</pubDate><guid isPermaLink="false">e9619797-5f48-4d02-a1a8-7f300d09be66:2790</guid><dc:creator>Silvano Coriani</dc:creator><description>&lt;p&gt;Curious about the differences in approaching performance and scalability in SQL Server vs. Windows Azure SQL Database (formerly SQL Azure)? Check out this new paper that brings together insights from the Microsoft SQL Engineering and Customer Advisory Teams (CAT) to detail the differences between on-premises SQL Server and Azure SQL Database tuning and monitoring techniques and best practices for database performance testing. If you&amp;rsquo;re an on-premises SQL Server whiz and currently integrating the cloud or considering a move to Platform as a Service, this paper is a must read!&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Paper Overview&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;While SQL Server and Windows Azure SQL Databases have large and important similarities, they are not identical, and while the differences are relatively small, they affect the way that applications perform on SQL Database compared to SQL Server. As a result, the application architecture and performance evaluation techniques for each platform also differ.&lt;br /&gt;&amp;nbsp;&lt;br /&gt;This document explains these performance differences and their causes and includes real-world customer wisdom from experience troubleshooting performance on production customer SQL Databases. This document also examines common SQL Server performance evaluation techniques that do not work on SQL Database.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Read the full &lt;a title="http://msdn.microsoft.com/en-us/library/windowsazure/jj879332.aspx" href="http://msdn.microsoft.com/en-us/library/windowsazure/jj879332.aspx"&gt;paper&lt;/a&gt;.&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>Blog Post: Hurricane Sandy Mash-Up: Hive, SQL Server, PowerPivot &amp; Power View</title><link>http://sqlcat.com/sqlCat/b/msdnmirror/archive/2013/02/01/hurricane-sandy-mash-up-hive-sql-server-powerpivot-amp-power-view.aspx</link><pubDate>Sat, 02 Feb 2013 01:36:00 GMT</pubDate><guid isPermaLink="false">e9619797-5f48-4d02-a1a8-7f300d09be66:2787</guid><dc:creator>sqlcat</dc:creator><description>&lt;p&gt;For my #SQLPASS Summit 2012 talk SQLCAT: Big Data &amp;ndash; All Abuzz About Hive (&lt;a href="http://blogs.msdn.com/b/cindygross/archive/2012/11/06/big-data-all-abuzz-about-hive-at-sqlpass-summit-2012.aspx"&gt;&lt;span style="color:#0000ff;"&gt;slides available to all&lt;/span&gt;&lt;/a&gt; | &lt;a href="http://www.sqlpass.org/summit/2012/Sessions/SessionDetails.aspx?sid=2686"&gt;&lt;span style="color:#0000ff;"&gt;recording available to PASS Summit 2012 attendees&lt;/span&gt;&lt;/a&gt;) I showed a mash-up of Hive, SQL Server, and Excel data that had been imported to PowerPivot and then displayed via Power View in Excel 2013 (using the new SharePoint-free self-service option). PowerPivot brings together the new world of unstructured data from Hadoop with structured data from more traditional relational and multi-dimensional sources to gain new business insights and break down data silos. We were able to take very recent data from Hurricane Sandy, which occurred the week before the PASS Summit, and quickly build a report to pinpoint some initial areas of interest. The report provides a sample foundation for exploring to find additional insights. If you need more background on Big Data, Hadoop, and Hive please see my &lt;a href="http://blogs.msdn.com/b/cindygross/archive/tags/hadoop/"&gt;&lt;span style="color:#0000ff;"&gt;previous blogs and talks&lt;/span&gt;&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;I will walk you through the steps to create the report including loading population demographics (&lt;a href="http://www.census.gov/main/www/access.html"&gt;&lt;span style="color:#0000ff;"&gt;census&lt;/span&gt;&lt;/a&gt;), weather (&lt;a href="http://www.srh.noaa.gov/rfcshare/ffg_download/ffg_download.php"&gt;&lt;span style="color:#0000ff;"&gt;NOAA&lt;/span&gt;&lt;/a&gt;), and lookup table (state abbreviations) data into Hive, SQL Server, Excel, and PowerPivot then creating visualizations in Power View to gain additional insights. Our initial goal is to see if there are particular geographic areas in the path of Hurricane Sandy that might need extra assistance with evacuation. One hypothesis is that people above a given age might be more likely to need assistance, so we want to compare age data with the projected rainfall patterns related to the path of the hurricane. Once you see this basic demonstration you can envision all sorts of additional data sets that could add value to the model, along with different questions that could be asked given the existing data sets. Data from the &lt;a href="http://www.cdc.gov/DataStatistics/"&gt;&lt;span style="color:#0000ff;"&gt;CDC&lt;/span&gt;&lt;/a&gt;, &lt;a href="http://www.infochimps.com/datasets/household-pet-ownership-2001"&gt;&lt;span style="color:#0000ff;"&gt;pet ownership figures&lt;/span&gt;&lt;/a&gt;, &lt;a href="http://www.data.gov/search/node/housing"&gt;&lt;span style="color:#0000ff;"&gt;housing details&lt;/span&gt;&lt;/a&gt;, &lt;a href="http://www.data.gov/search/node/jobs"&gt;&lt;span style="color:#0000ff;"&gt;job statistics&lt;/span&gt;&lt;/a&gt;, &lt;a href="http://www.cdc.gov/phpr/zombies.htm"&gt;&lt;span style="color:#0000ff;"&gt;zombie predictions&lt;/span&gt;&lt;/a&gt;, and &lt;a href="http://www.data.gov/search/node/public%20utility"&gt;&lt;span style="color:#0000ff;"&gt;public utility&lt;/span&gt;&lt;/a&gt; data could be added to Hive or pulled directly from existing sources and added to the report to gain additional insights. Those insights might, for example, help first responders during future storms, assist your business to understand various ways it can help after a storm or major cleanup effort, or aid future research into reducing the damage done by natural disasters.&lt;/p&gt;  &lt;p&gt;Read the complete post at&amp;nbsp;&lt;a href="http://blogs.msdn.com/b/cindygross/archive/2013/01/31/mash-up-hive-sql-server-data-in-powerpivot-amp-power-view-hurricane-sandy-2012.aspx"&gt;http://blogs.msdn.com/b/cindygross/archive/2013/01/31/mash-up-hive-sql-server-data-in-powerpivot-amp-power-view-hurricane-sandy-2012.aspx&lt;/a&gt;&amp;nbsp;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:10pt;"&gt;&lt;a href="https://twitter.com/sqlcindy"&gt;Cindy Gross&lt;/a&gt; Microsoft SQLCAT PM&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10390482" width="1" height="1" alt=" " /&gt;</description></item><item><title>Blog Post: SSIS Tips Tricks and Best Practices: SSIS Operational and Tuning Guide</title><link>http://sqlcat.com/sqlCat/b/whitepapers/archive/2013/01/02/ssis-tips-tricks-and-best-practices-ssis-operational-and-tuning-guide.aspx</link><pubDate>Wed, 02 Jan 2013 17:39:00 GMT</pubDate><guid isPermaLink="false">e9619797-5f48-4d02-a1a8-7f300d09be66:2778</guid><dc:creator>sthoward</dc:creator><description>&lt;p&gt;&lt;img alt=" " src="http://i.msdn.microsoft.com/dynimg/IC596043.jpg" /&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;SSIS Operational and Tuning Guide&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;SQL Server Technical Article&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Writer:&lt;/strong&gt; Alexei Khalyako, Carla Sabotta, Silvano Coriani, Sreedhar Pelluru, Steve Howard&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Technical Reviewer:&lt;/strong&gt; Cindy Gross, David Pless, Mark Simms, Daniel Sol&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Published:&lt;/strong&gt; December 2012&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Applies to:&lt;/strong&gt; SQL Server 2012; Windows Azure SQL Database&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Summary:&lt;/strong&gt; SQL Server Integration Services (SSIS) can be used effectively as a tool for moving data to and from Windows Azure (WA) SQL Database, as part of the total extract, transform, and load (ETL) solution and as part of the data movement solution. SSIS can be used effectively to move data between sources and destinations in the cloud, and in a hybrid scenario between the cloud and on-premise. This paper outlines SSIS best practices for cloud sources and destinations, discusses project planning for SSIS projects whether the project is all in the cloud or involves hybrid data moves, and walks through an example of maximizing performance on a hybrid move by scaling out the data movement.&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;To review the document, please download the &lt;a href="http://download.microsoft.com/download/D/2/0/D20E1C5F-72EA-4505-9F26-FEF9550EFD44/SSIS%20Operational%20and%20Tuning%20Guide.docx"&gt;SSIS Operational and Tuning Guide&lt;/a&gt; Word document.&lt;/p&gt;</description></item><item><title>Blog Post: SSIS Tips Tricks and Best Practices: SSIS for Azure and Hybrid Data Movement</title><link>http://sqlcat.com/sqlCat/b/whitepapers/archive/2013/01/02/ssis-tips-tricks-and-best-practices-ssis-for-azure-and-hybrid-data-movement.aspx</link><pubDate>Wed, 02 Jan 2013 17:36:00 GMT</pubDate><guid isPermaLink="false">e9619797-5f48-4d02-a1a8-7f300d09be66:2777</guid><dc:creator>sthoward</dc:creator><description>&lt;p&gt;&lt;img alt=" " src="http://i.msdn.microsoft.com/dynimg/IC596043.jpg" /&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;SSIS for Azure and Hybrid Data Movement&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;SQL Server Technical Article&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Writer:&lt;/strong&gt; Alexei Khalyako, Carla Sabotta, Daniel Sol, Silvano Coriani, Sreedhar Pelluru, Steve Howard&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Technical Reviewer:&lt;/strong&gt; David Pless&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Published:&lt;/strong&gt; December 2012&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Applies to:&lt;/strong&gt; SQL Server 2012&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Summary:&lt;/strong&gt; SQL Server Integration Services (SSIS) can be used effectively as a tool for moving data to and from Windows Azure SQL Database, as part of the total extract, transform, and load (ETL) solution and as part of the data movement solution. SSIS can be used effectively to move data between sources and destinations in the cloud, and in a hybrid scenario between the cloud and on-premise. This paper outlines best practices for using SSIS for cloud sources and destinations and for project planning for SSIS projects to be used with Azure or hybrid data moves, and gives an example of maximizing performance on a hybrid move by scaling out the data movement.&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;To review the document, please download the &lt;a href="http://download.microsoft.com/download/D/2/0/D20E1C5F-72EA-4505-9F26-FEF9550EFD44/SSIS%20Hybrid%20and%20Azure.docx"&gt;SSIS for Azure and Hybrid Data Movement&lt;/a&gt; Word document.&lt;/p&gt;</description></item><item><title>Blog Post: New version of Partition Management Utility supports SQL2012, ColumnStore Indexes</title><link>http://sqlcat.com/sqlCat/b/msdnmirror/archive/2012/12/03/new-version-of-partition-management-utility-supports-sql2012-columnstore-indexes.aspx</link><pubDate>Mon, 03 Dec 2012 20:02:00 GMT</pubDate><guid isPermaLink="false">e9619797-5f48-4d02-a1a8-7f300d09be66:2767</guid><dc:creator>sqlcat</dc:creator><description>&lt;p&gt;A new version of the&lt;strong&gt; Partition Management Utility for SQL Server&lt;/strong&gt; is now available on Codeplex at &lt;strong&gt;&lt;a href="http://sqlpartitionmgmt.codeplex.com/"&gt;http://sqlpartitionmgmt.codeplex.com/&lt;/a&gt;&lt;/strong&gt;.&amp;nbsp;&amp;nbsp; This is a tool that helps you create necessary staging tables and indexes and associated check constraints, to support partition-switch operations against existing partitioned tables.&amp;nbsp;&amp;nbsp; This solves the problem of keeping staging table scripts in synch when a permanent partitioned table evolves to contain new boundary values or column attributes.&lt;/p&gt;  &lt;p&gt;The latest version adds some significant new capabilities:&lt;/p&gt;  &lt;ul&gt;  &lt;li&gt;Support for SQL Server 2012 Columnstore Indexes&lt;/li&gt;  &lt;li&gt;Option to create TSQL scripts for staging stables, rather than executing DDL&lt;/li&gt;  &lt;li&gt;Date constraints are now specified in a locale-independent format better supporting globalized deployments&lt;/li&gt;  &lt;li&gt;Compatible with a broader range of partitioning column types&lt;/li&gt;  &lt;/ul&gt;  &lt;p&gt;The utility is a command line tool but it also can be integrated into an SSIS process or used to generate SQL scripts that then become part of a regular &amp;quot;sliding window&amp;quot; partition management scenario.&amp;nbsp;&amp;nbsp; The new version is backward-compatible with SQL Server 2005, 2008 and 2008 R2.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10374196" width="1" height="1" alt=" " /&gt;</description></item><item><title>Blog Post: SQL Clinic at PASS Summit 2012</title><link>http://sqlcat.com/sqlCat/b/msdnmirror/archive/2012/11/02/sql-clinic-at-pass-summit-2012.aspx</link><pubDate>Sat, 03 Nov 2012 00:10:00 GMT</pubDate><guid isPermaLink="false">e9619797-5f48-4d02-a1a8-7f300d09be66:2760</guid><dc:creator>SanjayMishra</dc:creator><description>&lt;p&gt;&lt;span style="font-family:tahoma,arial,helvetica,sans-serif;"&gt;SQLCAT joins hands with CSS to bring you SQL Clinic.&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-family:tahoma,arial,helvetica,sans-serif;"&gt;Bring your design / architecture questions, and real world troubleshooting issues and get expert help.&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-family:tahoma,arial,helvetica,sans-serif;"&gt;Clinic Hours:&lt;/span&gt;&lt;/p&gt;  &lt;ul&gt;  &lt;li&gt;&lt;span style="font-family:tahoma,arial,helvetica,sans-serif;"&gt;Wednesday&lt;/span&gt;&lt;/li&gt;  &lt;/ul&gt;&lt;ul&gt;  &lt;ul&gt;  &lt;li&gt;07:00 &amp;ndash; 08:00&lt;/li&gt;  &lt;li&gt;10:00 &amp;ndash; 18:15&lt;/li&gt;  &lt;/ul&gt;  &lt;/ul&gt;  &lt;ul&gt;&lt;li&gt;Thursday&lt;/li&gt;  &lt;/ul&gt;&lt;ul&gt;  &lt;ul&gt;  &lt;li&gt;07:00 &amp;ndash; 08:00&lt;/li&gt;  &lt;li&gt;10:00 &amp;ndash; 18:30&lt;/li&gt;  &lt;/ul&gt;  &lt;/ul&gt;  &lt;ul&gt;&lt;li&gt;Friday&lt;/li&gt;  &lt;/ul&gt;&lt;ul&gt;  &lt;ul&gt;  &lt;li&gt;07:00 &amp;ndash; 14:00&lt;/li&gt;  &lt;/ul&gt;  &lt;/ul&gt;    &lt;p&gt;&lt;br /&gt;Note that the Clinic has moved from past years&amp;#39; location to a newer and bigger room.&lt;/p&gt;  &lt;p&gt;It is in Room 4C-3 this year.&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;p&gt;If you are attending PASS Summit, you don&amp;#39;t want to miss out on the SQL Clinic experience.&lt;/p&gt;  &lt;p&gt;See you all there.&lt;/p&gt;</description></item><item><title>Blog Post: SQLCAT Sessions at PASS Summit 2012</title><link>http://sqlcat.com/sqlCat/b/msdnmirror/archive/2012/11/02/sqlcat-sessions-at-pass-summit-2012.aspx</link><pubDate>Sat, 03 Nov 2012 00:00:00 GMT</pubDate><guid isPermaLink="false">e9619797-5f48-4d02-a1a8-7f300d09be66:2759</guid><dc:creator>SanjayMishra</dc:creator><description>&lt;p&gt;SQLCAT will be deeply involved in the PASS Summit 2012. There wil be several technical sessions providing indepth technical learnings and best practices derived from real-world customer experiences.&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;table style="width:922px;height:1197px;" border="0" cellpadding="0"&gt;  &lt;tbody&gt;  &lt;tr&gt;  &lt;td colspan="4"&gt;  &lt;p&gt;&lt;b&gt;Wednesday, November 07, 2012&lt;/b&gt;&lt;/p&gt;  &lt;/td&gt;  &lt;/tr&gt;  &lt;tr&gt;  &lt;td width="115"&gt;  &lt;p&gt;10:15 AM - 11:30 AM&lt;/p&gt;  &lt;/td&gt;  &lt;td&gt;  &lt;p&gt;&lt;a href="http://www.sqlpass.org/summit/2012/Sessions/SessionDetails.aspx?sid=2900" target="_blank"&gt;[AD-307-M] SQLCAT: What Are the Largest SQL Server Projects in the World?&lt;/a&gt;&lt;/p&gt;  &lt;/td&gt;  &lt;td&gt;  &lt;p&gt;[RM:609]&lt;/p&gt;  &lt;/td&gt;  &lt;td&gt;  &lt;p&gt;&lt;a href="http://www.sqlpass.org/summit/2011/SummitContent/iCalDownload.aspx?dfsid=745" target="_blank"&gt;&lt;/a&gt;&lt;/p&gt;  &lt;/td&gt;  &lt;/tr&gt;  &lt;tr&gt;  &lt;td width="115"&gt;  &lt;p&gt;10:15 AM - 11:30 AM&lt;/p&gt;  &lt;/td&gt;  &lt;td&gt;  &lt;p&gt;&lt;a href="http://www.sqlpass.org/summit/2012/Sessions/SessionDetails.aspx?sid=2686" target="_blank"&gt;[BIA-305-A] SQLCAT: Big Data &amp;ndash; All Abuzz About Hive&lt;/a&gt;&lt;/p&gt;  &lt;/td&gt;  &lt;td&gt;  &lt;p&gt;[RM:606-607]&lt;/p&gt;  &lt;/td&gt;  &lt;td&gt;  &lt;p&gt;&lt;a href="http://www.sqlpass.org/summit/2011/SummitContent/iCalDownload.aspx?dfsid=741" target="_blank"&gt;&lt;/a&gt;&lt;/p&gt;  &lt;/td&gt;  &lt;/tr&gt;  &lt;tr&gt;  &lt;td width="115"&gt;  &lt;p&gt;10:15 AM - 11:30 AM&lt;/p&gt;  &lt;/td&gt;  &lt;td&gt;  &lt;p&gt;&lt;a href="http://www.sqlpass.org/summit/2012/Sessions/SessionDetails.aspx?sid=3590" target="_blank"&gt;[CLD-309-A] SQLCAT: Best Practices and Lessons Learned on SQL Server in an Azure VM&lt;/a&gt;&lt;/p&gt;  &lt;/td&gt;  &lt;td&gt;  &lt;p&gt;[RM:613-614]&lt;/p&gt;  &lt;/td&gt;  &lt;td&gt;  &lt;p&gt;&lt;a href="http://www.sqlpass.org/summit/2011/SummitContent/iCalDownload.aspx?dfsid=779" target="_blank"&gt;&lt;/a&gt;&lt;/p&gt;  &lt;/td&gt;  &lt;/tr&gt;  &lt;tr&gt;  &lt;td width="115"&gt;  &lt;p&gt;10:15 AM - 11:30 AM&lt;/p&gt;  &lt;/td&gt;  &lt;td&gt;  &lt;p&gt;&lt;a href="http://www.sqlpass.org/summit/2012/Sessions/SessionDetails.aspx?sid=3599" target="_blank"&gt;[BID-302-M] Mobile Business Intelligence&lt;/a&gt;&lt;/p&gt;  &lt;/td&gt;  &lt;td&gt;  &lt;p&gt;[RM:6E]&lt;/p&gt;  &lt;/td&gt;  &lt;td&gt;  &lt;p&gt;&lt;a href="http://www.sqlpass.org/summit/2011/SummitContent/iCalDownload.aspx?dfsid=782" target="_blank"&gt;&lt;/a&gt;&lt;/p&gt;  &lt;/td&gt;  &lt;/tr&gt;  &lt;tr&gt;  &lt;td width="115"&gt;  &lt;p&gt;1:30 PM - 2:45 PM&lt;/p&gt;  &lt;/td&gt;  &lt;td&gt;  &lt;p&gt;&lt;a href="http://www.sqlpass.org/summit/2012/Sessions/SessionDetails.aspx?sid=3602" target="_blank"&gt;[CLD-302-M] SQLCAT: How Do I Troubleshoot My Database Now that It Is in the Cloud?&lt;/a&gt;&lt;/p&gt;  &lt;/td&gt;  &lt;td&gt;  &lt;p&gt;[RM:305-TCC]&lt;/p&gt;  &lt;/td&gt;  &lt;td&gt;  &lt;p&gt;&lt;a href="http://www.sqlpass.org/summit/2011/SummitContent/iCalDownload.aspx?dfsid=784" target="_blank"&gt;&lt;/a&gt;&lt;/p&gt;  &lt;/td&gt;  &lt;/tr&gt;  &lt;tr&gt;  &lt;td width="115"&gt;  &lt;p&gt;1:30 PM - 2:45 PM&lt;/p&gt;  &lt;/td&gt;  &lt;td&gt;  &lt;p&gt;&lt;a href="http://www.sqlpass.org/summit/2012/Sessions/SessionDetails.aspx?sid=2691" target="_blank"&gt;[DBA-403-M] SQLCAT: SQLOS Memory Manager Changes in SQL Server 2012&lt;/a&gt;&lt;/p&gt;  &lt;/td&gt;  &lt;td&gt;  &lt;p&gt;[RM:301-TCC]&lt;/p&gt;  &lt;/td&gt;  &lt;td&gt;  &lt;p&gt;&lt;a href="http://www.sqlpass.org/summit/2011/SummitContent/iCalDownload.aspx?dfsid=742" target="_blank"&gt;&lt;/a&gt;&lt;/p&gt;  &lt;/td&gt;  &lt;/tr&gt;  &lt;tr&gt;  &lt;td width="115"&gt;  &lt;p&gt;1:30 PM - 2:45 PM&lt;/p&gt;  &lt;/td&gt;  &lt;td&gt;  &lt;p&gt;&lt;a href="http://www.sqlpass.org/summit/2012/Sessions/SessionDetails.aspx?sid=3542" target="_blank"&gt;[DBA-305-M] SQLCAT: Many-Core Processors, SSDs, Large Memory: How to Benefit SQL Server&lt;/a&gt;&lt;/p&gt;  &lt;/td&gt;  &lt;td&gt;  &lt;p&gt;[RM:613-614]&lt;/p&gt;  &lt;/td&gt;  &lt;td&gt;  &lt;p&gt;&lt;a href="http://www.sqlpass.org/summit/2011/SummitContent/iCalDownload.aspx?dfsid=771" target="_blank"&gt;&lt;/a&gt;&lt;/p&gt;  &lt;/td&gt;  &lt;/tr&gt;  &lt;tr&gt;  &lt;td width="115"&gt;  &lt;p&gt;3:00 PM - 4:15 PM&lt;/p&gt;  &lt;/td&gt;  &lt;td&gt;  &lt;p&gt;&lt;a href="http://www.sqlpass.org/summit/2012/Sessions/SessionDetails.aspx?sid=2980" target="_blank"&gt;[DBA-315-A] SQLCAT: AlwaysOn HA/DR Design Patterns, Architectures and Best Practices&lt;/a&gt;&lt;/p&gt;  &lt;/td&gt;  &lt;td&gt;  &lt;p&gt;[RM:609]&lt;/p&gt;  &lt;/td&gt;  &lt;td&gt;  &lt;p&gt;&lt;a href="http://www.sqlpass.org/summit/2011/SummitContent/iCalDownload.aspx?dfsid=748" target="_blank"&gt;&lt;/a&gt;&lt;/p&gt;  &lt;/td&gt;  &lt;/tr&gt;  &lt;tr&gt;  &lt;td width="115"&gt;  &lt;p&gt;4:45 PM - 6:00 PM&lt;/p&gt;  &lt;/td&gt;  &lt;td&gt;  &lt;p&gt;&lt;a href="http://www.sqlpass.org/summit/2012/Sessions/SessionDetails.aspx?sid=3555" target="_blank"&gt;[AD-402-A] SQLCAT: Real-World Case Study of Mission-Critical Active/Active Remote DCs&lt;/a&gt;&lt;/p&gt;  &lt;/td&gt;  &lt;td&gt;  &lt;p&gt;[RM:303-TCC]&lt;/p&gt;  &lt;/td&gt;  &lt;td&gt;  &lt;p&gt;&lt;a href="http://www.sqlpass.org/summit/2011/SummitContent/iCalDownload.aspx?dfsid=774" target="_blank"&gt;&lt;/a&gt;&lt;/p&gt;  &lt;/td&gt;  &lt;/tr&gt;  &lt;tr&gt;  &lt;td width="115"&gt;  &lt;p&gt;4:45 PM - 6:00 PM&lt;/p&gt;  &lt;/td&gt;  &lt;td&gt;  &lt;p&gt;&lt;a href="http://www.sqlpass.org/summit/2012/Sessions/SessionDetails.aspx?sid=2988" target="_blank"&gt;[DBA-314-M] SQLCAT: AlwaysOn Unplugged &amp;ndash; Everything You Want to Know About AlwaysOn&lt;/a&gt;&lt;/p&gt;  &lt;/td&gt;  &lt;td&gt;  &lt;p&gt;[RM:305-TCC]&lt;/p&gt;  &lt;/td&gt;  &lt;td&gt;  &lt;p&gt;&lt;a href="http://www.sqlpass.org/summit/2011/SummitContent/iCalDownload.aspx?dfsid=750" target="_blank"&gt;&lt;/a&gt;&lt;/p&gt;  &lt;/td&gt;  &lt;/tr&gt;  &lt;tr&gt;  &lt;td width="115"&gt;  &lt;p&gt;4:45 PM - 6:00 PM&lt;/p&gt;  &lt;/td&gt;  &lt;td&gt;  &lt;p&gt;&lt;a href="http://www.sqlpass.org/summit/2012/Sessions/SessionDetails.aspx?sid=3543" target="_blank"&gt;[DBA-306-M] SQLCAT: How Does Microsoft Run Its SAP Landscape on Windows and SQL Server?&lt;/a&gt;&lt;/p&gt;  &lt;/td&gt;  &lt;td&gt;  &lt;p&gt;[RM:307-308]&lt;/p&gt;  &lt;/td&gt;  &lt;td&gt;  &lt;p&gt;&lt;a href="http://www.sqlpass.org/summit/2011/SummitContent/iCalDownload.aspx?dfsid=772" target="_blank"&gt;&lt;/a&gt;&lt;/p&gt;  &lt;/td&gt;  &lt;/tr&gt;  &lt;tr&gt;  &lt;td width="115"&gt;  &lt;p&gt;4:45 PM - 6:00 PM&lt;/p&gt;  &lt;/td&gt;  &lt;td&gt;  &lt;p&gt;&lt;a href="http://www.sqlpass.org/summit/2012/Sessions/SessionDetails.aspx?sid=3652" target="_blank"&gt;[BIA-304-M] Configuring Kerberos for SharePoint 2010 BI in 7 Steps&lt;/a&gt;&lt;/p&gt;  &lt;/td&gt;  &lt;td&gt;  &lt;p&gt;[RM:606-607]&lt;/p&gt;  &lt;/td&gt;  &lt;td&gt;  &lt;p&gt;&lt;a href="http://www.sqlpass.org/summit/2011/SummitContent/iCalDownload.aspx?dfsid=789" target="_blank"&gt;&lt;/a&gt;&lt;/p&gt;  &lt;/td&gt;  &lt;/tr&gt;  &lt;tr&gt;  &lt;td colspan="4"&gt;  &lt;p&gt;&lt;b&gt;Thursday, November 08, 2012&lt;/b&gt;&lt;/p&gt;  &lt;/td&gt;  &lt;/tr&gt;  &lt;tr&gt;  &lt;td width="115"&gt;  &lt;p&gt;10:15 AM - 11:30 AM&lt;/p&gt;  &lt;/td&gt;  &lt;td&gt;  &lt;p&gt;&lt;a href="http://www.sqlpass.org/summit/2012/Sessions/SessionDetails.aspx?sid=3500" target="_blank"&gt;[AD-300-M] Bootstrapping Data Warehousing in Azure for Use with Hadoop&lt;/a&gt;&lt;/p&gt;  &lt;/td&gt;  &lt;td&gt;  &lt;p&gt;[RM:612]&lt;/p&gt;  &lt;/td&gt;  &lt;td&gt;  &lt;p&gt;&lt;a href="http://www.sqlpass.org/summit/2011/SummitContent/iCalDownload.aspx?dfsid=769" target="_blank"&gt;&lt;/a&gt;&lt;/p&gt;  &lt;/td&gt;  &lt;/tr&gt;  &lt;tr&gt;  &lt;td width="115"&gt;  &lt;p&gt;1:30 PM - 2:45 PM&lt;/p&gt;  &lt;/td&gt;  &lt;td&gt;  &lt;p&gt;&lt;a href="http://www.sqlpass.org/summit/2012/Sessions/SessionDetails.aspx?sid=3620" target="_blank"&gt;[BID-300-M] Running Reporting Services in SharePoint Integrated Mode: How and Why&lt;/a&gt;&lt;/p&gt;  &lt;/td&gt;  &lt;td&gt;  &lt;p&gt;[RM:608]&lt;/p&gt;  &lt;/td&gt;  &lt;td&gt;  &lt;p&gt;&lt;a href="http://www.sqlpass.org/summit/2011/SummitContent/iCalDownload.aspx?dfsid=786" target="_blank"&gt;&lt;/a&gt;&lt;/p&gt;  &lt;/td&gt;  &lt;/tr&gt;  &lt;tr&gt;  &lt;td width="115"&gt;  &lt;p&gt;3:00 PM - 4:15 PM&lt;/p&gt;  &lt;/td&gt;  &lt;td&gt;  &lt;p&gt;&lt;a href="http://www.sqlpass.org/summit/2012/Sessions/SessionDetails.aspx?sid=3600" target="_blank"&gt;[CLD-300-M] SQLCAT: SQL Azure Design Patterns and Best Practices&lt;/a&gt;&lt;/p&gt;  &lt;/td&gt;  &lt;td&gt;  &lt;p&gt;[RM:609]&lt;/p&gt;  &lt;/td&gt;  &lt;td&gt;  &lt;p&gt;&lt;a href="http://www.sqlpass.org/summit/2011/SummitContent/iCalDownload.aspx?dfsid=783" target="_blank"&gt;&lt;/a&gt;&lt;/p&gt;  &lt;/td&gt;  &lt;/tr&gt;  &lt;tr&gt;  &lt;td width="115"&gt;  &lt;p&gt;5:00 PM - 6:15 PM&lt;/p&gt;  &lt;/td&gt;  &lt;td&gt;  &lt;p&gt;&lt;a href="http://www.sqlpass.org/summit/2012/Sessions/SessionDetails.aspx?sid=2981" target="_blank"&gt;[DBA-323-A] SQLCAT: SQL Server 2012 AlwaysOn HA/DR Customer Panel&lt;/a&gt;&lt;/p&gt;  &lt;/td&gt;  &lt;td&gt;  &lt;p&gt;[RM:608]&lt;/p&gt;  &lt;/td&gt;  &lt;td&gt;  &lt;p&gt;&lt;a href="http://www.sqlpass.org/summit/2011/SummitContent/iCalDownload.aspx?dfsid=796" target="_blank"&gt;&lt;/a&gt;&lt;/p&gt;  &lt;/td&gt;  &lt;/tr&gt;  &lt;tr&gt;  &lt;td width="115"&gt;  &lt;p&gt;5:00 PM - 6:15 PM&lt;/p&gt;  &lt;/td&gt;  &lt;td&gt;  &lt;p&gt;&lt;a href="http://www.sqlpass.org/summit/2012/Sessions/SessionDetails.aspx?sid=3070" target="_blank"&gt;[BIA-206-M] BI Power Hour&lt;/a&gt;&lt;/p&gt;  &lt;/td&gt;  &lt;td&gt;  &lt;p&gt;[RM:602-604]&lt;/p&gt;  &lt;/td&gt;  &lt;td&gt;  &lt;p&gt;&lt;a href="http://www.sqlpass.org/summit/2011/SummitContent/iCalDownload.aspx?dfsid=757" target="_blank"&gt;&lt;/a&gt;&lt;/p&gt;  &lt;/td&gt;  &lt;/tr&gt;  &lt;tr&gt;  &lt;td colspan="4"&gt;  &lt;p&gt;&lt;b&gt;Friday, November 09, 2012&lt;/b&gt;&lt;/p&gt;  &lt;/td&gt;  &lt;/tr&gt;  &lt;tr&gt;  &lt;td width="115"&gt;  &lt;p&gt;8:00 AM - 9:15 AM&lt;/p&gt;  &lt;/td&gt;  &lt;td&gt;  &lt;p&gt;&lt;a href="http://www.sqlpass.org/summit/2012/Sessions/SessionDetails.aspx?sid=2901" target="_blank"&gt;[CLD-303-A] SQLCAT: What Are the Largest Azure Projects in the World?&lt;/a&gt;&lt;/p&gt;  &lt;/td&gt;  &lt;td&gt;  &lt;p&gt;[RM:608]&lt;/p&gt;  &lt;/td&gt;  &lt;td&gt;  &lt;p&gt;&lt;a href="http://www.sqlpass.org/summit/2011/SummitContent/iCalDownload.aspx?dfsid=746" target="_blank"&gt;&lt;/a&gt;&lt;/p&gt;  &lt;/td&gt;  &lt;/tr&gt;  &lt;tr&gt;  &lt;td width="115"&gt;  &lt;p&gt;9:45 AM - 11:00 AM&lt;/p&gt;  &lt;/td&gt;  &lt;td&gt;  &lt;p&gt;&lt;a href="http://www.sqlpass.org/summit/2012/Sessions/SessionDetails.aspx?sid=3571" target="_blank"&gt;[CLD-304-M] SQLCAT: Architecture Patterns and Lessons Learned from Azure ISV Projects&lt;/a&gt;&lt;/p&gt;  &lt;/td&gt;  &lt;td&gt;  &lt;p&gt;[RM:606-607]&lt;/p&gt;  &lt;/td&gt;  &lt;td&gt;  &lt;p&gt;&lt;a href="http://www.sqlpass.org/summit/2011/SummitContent/iCalDownload.aspx?dfsid=778" target="_blank"&gt;&lt;/a&gt;&lt;/p&gt;  &lt;/td&gt;  &lt;/tr&gt;  &lt;tr&gt;  &lt;td width="115"&gt;  &lt;p&gt;1:00 PM - 2:15 PM&lt;/p&gt;  &lt;/td&gt;  &lt;td&gt;  &lt;p&gt;&lt;a href="http://www.sqlpass.org/summit/2012/Sessions/SessionDetails.aspx?sid=3521" target="_blank"&gt;[CLD-308-A] SQLCAT: How SQL Azure Supports Large-Scale Customer Deployments&lt;/a&gt;&lt;/p&gt;  &lt;/td&gt;  &lt;td&gt;  &lt;p&gt;[RM:307-308]&lt;/p&gt;  &lt;/td&gt;  &lt;td&gt;  &lt;p&gt;&lt;a href="http://www.sqlpass.org/summit/2011/SummitContent/iCalDownload.aspx?dfsid=770" target="_blank"&gt;&lt;/a&gt;&lt;/p&gt;  &lt;/td&gt;  &lt;/tr&gt;  &lt;/tbody&gt;  &lt;/table&gt;  &lt;p&gt;&lt;br /&gt;See you all at PASS Summit 2012.&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;</description></item><item><title>Blog Post: Impact of Adding a Node to a Windows Cluster on the Possible Owners property of existing SQL Server Failover Cluster Instances</title><link>http://sqlcat.com/sqlCat/b/technicalnotes/archive/2012/08/15/impact-of-adding-a-node-to-a-windows-cluster-on-the-possible-owners-property-of-existing-sql-server-failover-cluster-instances.aspx</link><pubDate>Wed, 15 Aug 2012 18:33:00 GMT</pubDate><guid isPermaLink="false">e9619797-5f48-4d02-a1a8-7f300d09be66:2731</guid><dc:creator>SanjayMishra</dc:creator><description>&lt;p&gt;&lt;span style="font-size:small;"&gt;&lt;b&gt;Author&lt;/b&gt;: Sanjay Mishra &lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size:small;"&gt;&lt;b&gt;Contributor&lt;/b&gt;:&lt;b&gt; &lt;/b&gt;David P Smith (ServiceU)&lt;b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size:small;"&gt;&lt;b&gt;Technical Reviewers&lt;/b&gt;: Charles (Curt) Mathews, James Podgorski, Eric Kang, Prem Mehra, Min He&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size:small;"&gt;&lt;span&gt;It is common to have more than one SQL Server Failover Cluster Instance (FCI) within a single Windows Server Failover Cluster (WSFC). It is also fairly common that not all nodes in the WSFC are the possible owners of all the FCIs within that WSFC. One such scenario is when you have a FCI + AG solution (&lt;a href="http://sqlcat.com/sqlcat/b/whitepapers/archive/2012/06/22/alwayson-architecture-guide-building-a-high-availability-and-disaster-recovery-solution-by-using-failover-cluster-instances-and-availability-groups.aspx" target="_blank"&gt;AlwaysOn Architecture Guide: Building a High Availability and Disaster Recovery Solution by Using Failover Cluster Instances and Availability Groups&lt;/a&gt;&lt;/span&gt;&lt;a href="http://download.microsoft.com/download/D/2/0/D20E1C5F-72EA-4505-9F26-FEF9550EFD44/Building_a_HA_and_DR_Solution_using_AlwaysON_SQL_FCIs_and_AGs%20v1.docx)"&gt;&lt;span&gt;)&lt;/span&gt;&lt;/a&gt;&lt;span&gt;, where multiple FCIs reside within a single WSFC, and an availability group is created across the FCIs, as shown in the Figure 1 below:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://sqlcat.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-00-08-metablogapi/3681.image_5F00_6138E900.png"&gt;&lt;img style="border:0px currentcolor;display:inline;" title="image" border="0" alt="image" src="http://sqlcat.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-00-08-metablogapi/5153.image_5F00_thumb_5F00_55A32BC1.png" width="607" height="233" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;i&gt;Figure 1: An FCI+AG solution across two data centers (FCI being used for HA and AG being used for DR)&lt;/i&gt;&lt;/b&gt;&lt;b&gt;&lt;i&gt;&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size:small;"&gt;In this deployment,&lt;/span&gt;&lt;/p&gt;  &lt;ul&gt;  &lt;li&gt;&lt;span style="font-size:small;"&gt;Possible owners of SMFCI601\SM_FCI_601 = {PE2970-01, PE2970-02}.&lt;/span&gt;&lt;/li&gt;  &lt;li&gt;&lt;span style="font-size:small;"&gt;Possible owners of SMFCI602\SM_FCI_602 = {R900-03, R900-04}.&lt;/span&gt;&lt;/li&gt;  &lt;/ul&gt;  &lt;p&gt;&lt;span style="font-size:small;"&gt;High level steps to build such a solution are:&lt;/span&gt;&lt;/p&gt;  &lt;ol&gt;  &lt;li&gt;&lt;span style="font-size:small;"&gt;&lt;b&gt;Step 1&lt;/b&gt;: Build the primary site failover cluster instance SMFCI601\SM_FCI_601 on nodes PE2970-01 and PE2970-02.&lt;/span&gt;&lt;/li&gt;  &lt;li&gt;&lt;span style="font-size:small;"&gt;&lt;b&gt;Step 2&lt;/b&gt;: Add the DR site nodes R900-03 and R900-04, to the same Windows cluster, and then create the secondary failover cluster instance SMFCI602\SM_FCI_602 on R900-03 and R900-04.&lt;/span&gt;&lt;/li&gt;  &lt;li&gt;&lt;span style="font-size:small;"&gt;&lt;b&gt;Step 3&lt;/b&gt;: Create the AG across the two instances SMFCI601\SM_FCI_601 and SMFCI602\SM_FCI_602.&lt;/span&gt;&lt;/li&gt;  &lt;/ol&gt;  &lt;p&gt;&lt;span style="font-size:small;"&gt;After building the primary site failover cluster instance (Step 1 above, shown in Figure 2 below), you will see the possible owners of the resources for the failover cluster instance resource group SMFCI601\SM_FCI_601 as shown in the Figure 3.&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://sqlcat.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-00-08-metablogapi/2045.image_5F00_7C050F0C.png"&gt;&lt;img style="border:0px currentcolor;display:inline;" title="image" border="0" alt="image" src="http://sqlcat.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-00-08-metablogapi/4617.image_5F00_thumb_5F00_7B98DC17.png" width="302" height="269" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;i&gt;Figure 2: Topology after Completing Step 1 (2-node FCI created at the primary data center)&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://sqlcat.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-00-08-metablogapi/2465.image_5F00_14287968.png"&gt;&lt;img style="border:0px currentcolor;display:inline;" title="image" border="0" alt="image" src="http://sqlcat.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-00-08-metablogapi/5618.image_5F00_thumb_5F00_3A8A5CB3.png" width="519" height="389" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;i&gt;Figure 3: Possible owners of the FCI network name resource after Completing Step 1 (2-node FCI created at the primary data center)&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size:small;"&gt;This is correct, and as expected.&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size:small;"&gt;During Step 2, the two nodes from the DR site (R900-03 and R900-04) are first added to the WSFC (Figure 4). Once these two nodes are added to the WSFC, you will see that the newly added nodes have been unexpectedly added as possible owners (Figure 5) for all the resources of the previously existing FCI (SMFCI601\SM_FCI_601).&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://sqlcat.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-00-08-metablogapi/5224.image_5F00_1E0D6AD3.png"&gt;&lt;img style="border:0px currentcolor;display:inline;" title="image" border="0" alt="image" src="http://sqlcat.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-00-08-metablogapi/8272.image_5F00_thumb_5F00_1DA137DE.png" width="612" height="240" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;i&gt;Figure 4: Two nodes from the DR site added to the WSFC&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://sqlcat.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-00-08-metablogapi/6253.image_5F00_7D19F82B.png"&gt;&lt;img style="border:0px currentcolor;display:inline;" title="image" border="0" alt="image" src="http://sqlcat.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-00-08-metablogapi/5001.image_5F00_thumb_5F00_237BDB77.png" width="512" height="385" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;i&gt;Figure 5: Possible owners list of the FCI network name resource of the primary FCI, after adding two nodes from the DR site to the WSFC&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size:small;"&gt;&lt;b&gt;This is neither intended nor desired&lt;/b&gt;. R900-03 and R900-04 can never be the possible owners of any resources of SMFCI601\SM_FCI_601. So, why does this happen? It is the way SQL Server FCI setup works with Windows clustering. When a node is added to the WSFC, the node is added as a possible owner for all existing FCIs. This works well in some scenarios, but doesn&amp;rsquo;t work well in the scenario we are discussing in this article.&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size:small;"&gt;The possible owners list must be manually modified each time you add a node to the WSFC. Figure 6 shows corrected possible owners list for one resource (the FCI network name on the primary).&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://sqlcat.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-00-08-metablogapi/8244.image_5F00_5ECF4135.png"&gt;&lt;img style="border:0px currentcolor;display:inline;" title="image" border="0" alt="image" src="http://sqlcat.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-00-08-metablogapi/8168.image_5F00_thumb_5F00_42524F55.png" width="524" height="393" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;i&gt;Figure 6: Possible owners list of the FCI network name resource of the primary FCI, after manually correcting the list&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size:small;"&gt;Repeat this for all resources (other than disks, the disk resources don&amp;rsquo;t demonstrate this behavior), such as:&lt;/span&gt;&lt;/p&gt;  &lt;ul&gt;  &lt;li&gt;&lt;span style="font-size:small;"&gt;FCI network name&lt;/span&gt;&lt;/li&gt;  &lt;li&gt;&lt;span style="font-size:small;"&gt;FCI IP address&lt;/span&gt;&lt;/li&gt;  &lt;li&gt;&lt;span style="font-size:small;"&gt;SQL instance&lt;/span&gt;&lt;/li&gt;  &lt;li&gt;&lt;span style="font-size:small;"&gt;SQL Agent&lt;/span&gt;&lt;/li&gt;  &lt;li&gt;&lt;span style="font-size:small;"&gt;Any other resources part of the resource group must be checked for correct possible owners.&lt;/span&gt;&lt;/li&gt;  &lt;/ul&gt;  &lt;p&gt;&lt;span style="font-size:small;"&gt;And repeat this for each FCI in your topology. Note that the possible owners list for the resources in each FCI will differ from other FCIs.&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size:small;"&gt;The possible owners list must be appropriately modified before proceeding to create the availability group across the FCIs (Step 3 listed above), otherwise AG creation will fail, because there will be overlap between the possible owners of the two instances hosting the AG replicas.&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size:small;"&gt;&lt;span&gt;This should not be confused with the possible owners list for the availability group resource. You should not alter the possible owners list for the availability group (&lt;a href="http://sqlcat.com/sqlcat/b/msdnmirror/archive/2012/03/30/do-not-use-windows-failover-cluster-manager-to-perform-availability-group-failover.aspx" target="_blank"&gt;DO NOT use Windows Failover Cluster Manager to perform Availability Group Failover&lt;/a&gt;&lt;/span&gt;&lt;span&gt;).&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;</description></item><item><title>Blog Post: Review a working option to setup a SQL Server 2012 BI solution using Azure’s IaaS VMs</title><link>http://sqlcat.com/sqlCat/b/msdnmirror/archive/2012/07/17/review-a-working-option-to-setup-a-sql-server-2012-bi-solution-using-azure-s-iaas-vms.aspx</link><pubDate>Wed, 18 Jul 2012 02:13:00 GMT</pubDate><guid isPermaLink="false">e9619797-5f48-4d02-a1a8-7f300d09be66:2719</guid><dc:creator>sqlcat</dc:creator><description>&lt;p&gt;&lt;b&gt;By: Nicholas Dritsas&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Reviewers: James Podgorski, Olivier Matrat, Sanjay Mishra&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="text-decoration:underline;"&gt;Overview&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;Azure&amp;rsquo;s Iaas VMs plus Virtual Networks can be used to configure easily a set of servers/VMs to host the main components of a BI solution. This process assumes you already have an Azure subscription plus access to add new VMs and Virtual Networks.&lt;/p&gt;  &lt;p&gt;&lt;span style="text-decoration:underline;"&gt;Setting up a virtual network&lt;/span&gt;&lt;/p&gt;  &lt;ol&gt;  &lt;li&gt;Go to the Azure portal here: &lt;a href="https://windows.azure.com/"&gt;https://windows.azure.com/&lt;/a&gt;. &amp;nbsp;Ensure you connect to the preview portal.&lt;/li&gt;  &lt;li&gt;Select +New bottom left of the welcome screen and choose Network, Custom Create. (for setup details, look &lt;a href="http://msdn.microsoft.com/en-us/library/windowsazure/jj156074.aspx"&gt;here&lt;/a&gt;.)&lt;/li&gt;  &lt;/ol&gt;&lt;ol&gt;  &lt;li&gt;Enter a network name and choose either an existing Affinity Group or choose to create a new one.&lt;/li&gt;  &lt;li&gt;For Address space, you can give a range such as 10.4.0.0/16.&amp;nbsp; If you like, you can break it down to a few subnets for better segmentation.&amp;nbsp;&lt;/li&gt;  &lt;li&gt;Then select to Create a DNS, give it a name and use as IP address the first valid IP of your range, eg 10.4.0.4.&amp;nbsp; This IP is expected to be used by the first VM we will create below as our Domain controller.&amp;nbsp; Mind you, in Azure a VM keeps its provided IP&lt;br /&gt;the same during its lifetime.&amp;nbsp; So, even if your settings remain DHCP, your IP remains the same even if the VM restartsor fails over.&amp;nbsp; For more details, see &lt;a href="http://msdn.microsoft.com/en-us/library/windowsazure/jj156090.aspx#BKMK_IPAddressDNS."&gt;here&lt;/a&gt;.&lt;/li&gt;  &lt;/ol&gt;  &lt;ul&gt;&lt;li&gt;  &lt;p&gt;Creating a DC (this step &lt;b&gt;must&lt;/b&gt; be done first before adding any other VM in the network you just created).&lt;/p&gt;  &lt;ol&gt;  &lt;li&gt;Create a new VM from the Gallery using Windows 2008 R2 image.&amp;nbsp; Small or medium is fine since this will be used only as DC and DNS.&amp;nbsp;Then, ensure you choose VM as standalone, choose your storage account in&lt;br /&gt;the same region to host it and select the Virtual Network name you created above.&lt;/li&gt;  &lt;li&gt;After the new VM creation is complete, attach to it a new empty disk of 10GB or so.&amp;nbsp;&lt;/li&gt;  &lt;li&gt;Then, connect to it by selecting the VM name and selecting connect at the bottom.&amp;nbsp;&lt;/li&gt;  &lt;/ol&gt;&lt;/li&gt;  &lt;/ul&gt;&lt;ol&gt;&lt;/ol&gt;  &lt;p&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;&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;&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;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;i.&amp;nbsp;After you connect, ensure its IP is indeed 10.4.0.4.&lt;/p&gt;  &lt;p&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;&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;&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;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ii.&amp;nbsp;Using the disk management found in server manager, format the new disk as F: drive.&amp;nbsp;Create 3 subdirectories there to host AD files later on.&lt;/p&gt;  &lt;p&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;&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;&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;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;iii.Then, we need to promote to it to DC, look &lt;a href="http://www.techiwarehouse.com/engine/ff1cb340/How-to-Promote-Windows-Server-2008-R2-to-a-Domain-Controller"&gt;here&lt;/a&gt;&amp;nbsp;for details.&amp;nbsp; In simple terms, run the program dcpromo.exe from the command prompt and follow instructions to create a new forest.&lt;/p&gt;  &lt;ol&gt;&lt;ol&gt;&lt;ol&gt;&lt;ol&gt;&lt;ol&gt;&lt;ol&gt;  &lt;li&gt;Choose DHCP and ignore the warning&lt;/li&gt;  &lt;li&gt;Store AD db, logs and sysvol on the 3 subdirectories in the F: drive&lt;/li&gt;  &lt;li&gt;After all setup is done, restart the VM.&lt;/li&gt;  &lt;/ol&gt;&lt;/ol&gt;&lt;/ol&gt;&lt;/ol&gt;&lt;/ol&gt;&lt;/ol&gt;  &lt;p style="padding-left:180px;"&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;iv.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;After it restarts, go to Windows Explorer, select Network and Enable file sharing and discovery.&lt;/p&gt;  &lt;p style="padding-left:180px;"&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;&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;&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;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;v.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Create a new domain admin account user too for future use&lt;/p&gt;  &lt;p style="padding-left:60px;"&gt;4. Now, you have a domain in azure.&amp;nbsp; Create one new VM from the Gallery using SQL 2012.&amp;nbsp; Then, join the domain you just created.&amp;nbsp; Go to Windows Explorer, select Network and Enable file sharing and discovery.&amp;nbsp;&lt;br /&gt;Now, you should be able to ping the DC by IP and name.&lt;/p&gt;  &lt;p style="padding-left:120px;"&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;&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;&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;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;i.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;You have to open inbound ports in the vm that hosts ssas and sql server (or you disable the firewall for domain networks if you like).&amp;nbsp; See here:&amp;nbsp; &lt;a href="http://msdn.microsoft.com/en-us/library/bb934283.aspx"&gt;http://msdn.microsoft.com/en-us/library/bb934283.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p style="padding-left:120px;"&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;&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;&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;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;ii. You can find the ssas ports or any process ports from this link:&amp;nbsp; &lt;a href="http://support.microsoft.com/kb/2466860"&gt;http://support.microsoft.com/kb/2466860&lt;/a&gt;.&amp;nbsp; I added a new inbound rule to allow ports 1433 and 2383. 1433 is for sql server when 2383 is the port for the default&lt;br /&gt;ssas instance.&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;p style="padding-left:60px;"&gt;5. Create another new VM from the Gallery using Windows 2008 R2.&amp;nbsp; Then, join the domain you just created.&amp;nbsp; Go to Windows Explorer, select Network and Enable file sharing and discovery.&amp;nbsp; Now, you should be able to ping the DC.&lt;/p&gt;  &lt;ol&gt;&lt;ol&gt;&lt;ol&gt;&lt;ol&gt;  &lt;li&gt;Install Excel 2010 and try to connect to SSAS server. It should work fine.&lt;/li&gt;  &lt;/ol&gt;&lt;/ol&gt;&lt;/ol&gt;&lt;/ol&gt;  &lt;div style="clear:both;"&gt;&lt;/div&gt;  &lt;p&gt;&lt;img width="1" height="1" src="http://blogs.msdn.com/aggbug.aspx?PostID=10330933" alt=" " /&gt;&lt;/p&gt;</description></item><item><title>Blog Post: AlwaysOn Architecture Guide: Building a High Availability and Disaster Recovery Solution by Using Failover Cluster Instances and Availability Groups</title><link>http://sqlcat.com/sqlCat/b/whitepapers/archive/2012/06/22/alwayson-architecture-guide-building-a-high-availability-and-disaster-recovery-solution-by-using-failover-cluster-instances-and-availability-groups.aspx</link><pubDate>Sat, 23 Jun 2012 00:42:00 GMT</pubDate><guid isPermaLink="false">e9619797-5f48-4d02-a1a8-7f300d09be66:2712</guid><dc:creator>SanjayMishra</dc:creator><description>&lt;p&gt;&lt;span style="font-size:small;"&gt;&lt;strong&gt;Authors:&lt;/strong&gt; Joseph Sack (SQLskills.com), Sanjay Mishra (Microsoft)&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size:small;"&gt;&lt;strong&gt;Technical Reviewers:&lt;/strong&gt; Min He (Microsoft), Chuck Heinzelman (Microsoft), Alexi Khalyako (Microsoft), Charles Mathews (Microsoft), Prem Mehra (Microsoft) , Juergen Thomas (Microsoft), Mike Weiner (Microsoft), Amitabh Tamhane (Microsoft), Brent Ozar (Brent Ozar PLF), Gianluca Hotz (SolidQ), David P. Smith (ServiceU), Michael Steineke (Edgenet), Glenn Berry (SQLskills.com)&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Content Program Manager&lt;/strong&gt;: Glenn Minch (Microsoft)&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size:small;"&gt;&lt;strong&gt;Summary:&lt;/strong&gt; SQL Server 2012 AlwaysOn Failover Cluster Instances (FCI) and AlwaysOn Availability Groups provide a comprehensive high availability and disaster recovery solution. Prior to SQL Server 2012, many customers used FCIs to provide local high availability within a data center and database mirroring for disaster recovery to a remote data center. With SQL Server 2012, this design pattern can be replaced with an architecture that uses FCIs for high availability and availability groups for disaster recovery business requirements. Availability groups leverage Windows Server Failover Clustering (WSFC) functionality and enable multiple features not available in database mirroring. This paper details the key topology requirements of this specific design pattern, including asymmetric storage considerations, quorum model selection, quorum votes, steps required to build the environment, and a workflow illustrating how to handle a disaster recovery event in the new topology across participating job roles.&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size:small;"&gt;&lt;strong&gt;Read on:&lt;a href="http://msdn.microsoft.com/en-us/library/jj215886"&gt;http://msdn.microsoft.com/en-us/library/jj215886&lt;/a&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;</description></item><item><title>Blog Post: AlwaysOn Architecture Guide: Building a High Availability and Disaster Recovery Solution by Using AlwaysOn Availability Groups</title><link>http://sqlcat.com/sqlCat/b/whitepapers/archive/2012/06/22/alwayson-architecture-guide-building-a-high-availability-and-disaster-recovery-solution-by-using-alwayson-availability-groups.aspx</link><pubDate>Sat, 23 Jun 2012 00:36:00 GMT</pubDate><guid isPermaLink="false">e9619797-5f48-4d02-a1a8-7f300d09be66:2711</guid><dc:creator>SanjayMishra</dc:creator><description>&lt;p&gt;&lt;span style="font-size:small;"&gt;&lt;strong&gt;Authors:&lt;/strong&gt; Joseph Sack (SQLskills.com), Sanjay Mishra (Microsoft)&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size:small;"&gt;&lt;strong&gt;Technical Reviewers:&lt;/strong&gt; Lindsey Allen (MS), Juergen Thomas (MS), Mike Weiner (MS), Prem Mehra (MS), Yorihito Tada (MS), Curt Matthews (MS), Amitabh Tamhane (MS), Aditya Samant (MS), Daniel Janik (MS), Jimmy May (MS), David P Smith (ServiceU), Richard Waymire (SolidQ), Brent Ozar (Brent Ozar PLF), Wolfgang Kutschera (bwin.party), Paul S. Randal (SQLskills.com), Gianluca Hotz (SolidQ), Ayad Shammout (Caregroup)&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Content Program Manager&lt;/strong&gt;: Glenn Minch (Microsoft)&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size:small;"&gt;&lt;strong&gt;Summary: &lt;/strong&gt;SQL Server 2012 AlwaysOn Availability Groups provides a unified high availability and disaster recovery (HADR) solution that improves upon legacy functionality previously found across disparate features. Prior to SQL Server 2012, several customers used database mirroring to provide local high availability within a data center, and log shipping for disaster recovery across a remote data center. With SQL Server 2012, this common design pattern can be replaced with an architecture that uses availability groups for both high availability and disaster recovery. This paper details the key topology requirements of this specific design pattern, including quorum configuration considerations, steps required to build the environment, and a workflow that shows how to handle a disaster recovery event in the new topology.&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size:small;"&gt;&lt;strong&gt;Read on: &lt;a href="http://msdn.microsoft.com/en-us/library/jj191711"&gt;http://msdn.microsoft.com/en-us/library/jj191711&lt;/a&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;</description></item><item><title>Blog Post: AlwaysOn Availability Groups Generate Network Traffic with No User Activity</title><link>http://sqlcat.com/sqlCat/b/msdnmirror/archive/2012/06/21/alwayson-availability-groups-generate-network-traffic-with-no-user-activity.aspx</link><pubDate>Thu, 21 Jun 2012 21:31:00 GMT</pubDate><guid isPermaLink="false">e9619797-5f48-4d02-a1a8-7f300d09be66:2710</guid><dc:creator>sqlcat</dc:creator><description>&lt;h1&gt;&lt;ins datetime="2012-06-20T11:34" cite="mailto:kevincox"&gt;&lt;/ins&gt;&amp;nbsp;&lt;/h1&gt;  &lt;p&gt;Author: Kevin Cox&lt;/p&gt;  &lt;p&gt;Contributors:&amp;nbsp; Min He,Steve Lindell&lt;/p&gt;  &lt;p&gt;Reviewers: Sanjay Mishra, Juergen Thomas, Jimmy May&lt;ins datetime="2012-06-20T11:36" cite="mailto:kevincox"&gt;&lt;/ins&gt;&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;p&gt;Creating an availability group needs pings and status checks across the different servers involved.&amp;nbsp;This accounts for approximately 500 bytes &lt;i&gt;per database &lt;/i&gt;in the group.&amp;nbsp; The PerfMon counter used to track the activity is &amp;ldquo;Bytes Received from Replica/sec&amp;rdquo;.&amp;nbsp; Books Online has recently been changed to reflect a high level description.&amp;nbsp; The purpose of this blog is to provide a bit more detail.&lt;/p&gt;  &lt;p&gt;Books Online&amp;nbsp;&amp;nbsp; &lt;a href="http://msdn.microsoft.com/en-us/library/ff878472.aspx"&gt;http://msdn.microsoft.com/en-us/library/ff878472.aspx&lt;/a&gt;&lt;/p&gt;  &lt;table style="width:100%;" border="0" cellspacing="3" cellpadding="0"&gt;  &lt;tbody&gt;  &lt;tr&gt;  &lt;td&gt;  &lt;p align="center"&gt;&lt;b&gt;Counter Name&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;/td&gt;  &lt;td&gt;  &lt;p align="center"&gt;&lt;b&gt;Description&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;/td&gt;  &lt;/tr&gt;  &lt;tr&gt;  &lt;td&gt;  &lt;p&gt;&lt;b&gt;Bytes&lt;br /&gt; Received from Replica/sec&lt;/b&gt;&lt;/p&gt;  &lt;/td&gt;  &lt;td&gt;  &lt;p&gt;Number of&amp;nbsp;&amp;nbsp; bytes received from the availability replica per second. Pings and status updates will generate network&lt;br /&gt; traffic even on databases with no user updates.&lt;/p&gt;  &lt;/td&gt;  &lt;/tr&gt;  &lt;/tbody&gt;  &lt;/table&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;p&gt;The key to understanding this counter is that the traffic is &lt;i&gt;per database&lt;/i&gt;.&amp;nbsp; On one customer project with 40 databases in one availability group, this counter was showing about 8k/sec when there was no&amp;nbsp;user traffic.&amp;nbsp; This consists of bi-directional&lt;br /&gt;ping and status checks.&lt;/p&gt;  &lt;p&gt;What does the primary do with this data it gets back from pings and status checks?&amp;nbsp; It displays the information on the Always On Dashboard.&amp;nbsp;There are two main sources for the dashboard data.&amp;nbsp;&lt;/p&gt;  &lt;ol&gt;  &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ff877972.aspx"&gt;sys.dm_hadr_database_replica_states&lt;/a&gt;.&amp;nbsp; This runs every second unless the primary is too busy, then it will run as soon as it can. This is used to display the information from the latest status checks, but does not drive any network traffic.&lt;/li&gt;  &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ff878233(v=sql.110).aspx"&gt;sp_server_diagnostics&lt;/a&gt;. It is called by the Availability Group (AG) Resource DLL, which is only run on the AG primary node and only connects to the local instance.&amp;nbsp; It does not contribute to the network traffic mentioned above, but is useful to know that it is running periodically according to the &lt;a href="http://msdn.microsoft.com/en-us/library/ff878399.aspx"&gt;HEALTH_CHECK_TIMEOUT&lt;/a&gt;&amp;nbsp;setting.&amp;nbsp;&amp;nbsp; All the Availability Groups on one instance share a single resource DLL.&lt;/li&gt;  &lt;/ol&gt;  &lt;p&gt;Hopefully, with this information you will be able to understand why the Bytes Received from Replica/sec counter is showing activity even when there is no user activity.&lt;/p&gt;  &lt;div style="clear:both;"&gt;&lt;/div&gt;  &lt;p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10322740" width="1" height="1" alt=" " /&gt;&lt;/p&gt;</description></item><item><title>Blog Post: Running SQL Server in Windows Azure Virtual Machine - Performance Guidelines for Preview</title><link>http://sqlcat.com/sqlCat/b/technicalnotes/archive/2012/06/08/running-sql-server-in-windows-azure-virtual-machine-performance-guidelines-for-preview.aspx</link><pubDate>Sat, 09 Jun 2012 00:36:00 GMT</pubDate><guid isPermaLink="false">e9619797-5f48-4d02-a1a8-7f300d09be66:2704</guid><dc:creator>Lindsey.allen</dc:creator><description>&lt;p&gt;&lt;span style="font-size:x-small;"&gt;A Windows Azure Virtual Machine is similar to a virtual machine run on premise except that it runs in Windows Azure, Microsoft&amp;rsquo;s public cloud. Starting with the Windows Azure 2012 Preview release, new Virtual Machine capabilities have been added to the Windows Azure. We support a number of scenarios for SQL Server running in Windows Azure in addition to moving existing SQL Server applications to Windows Azure Virtual Machines. For details on how to migrate your existing SQL Server application, see &lt;/span&gt;&lt;a href="http://go.microsoft.com/fwlink/?LinkID=249158"&gt;&lt;span style="font-size:x-small;"&gt;Migrating with Windows Azure Virtual Machines&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size:x-small;"&gt;.&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size:x-small;"&gt;The performance of a relational database in Windows Azure Virtual Machine depends on many factors, including the VM size, the number and configuration of disks, the network throughput and latency, the configuration of the database software and the application workload. We encourage users to benchmark their application on several VM sizes and storage configurations in order to select the most appropriate configuration. &lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size:x-small;"&gt;In order to help customers with the task of characterizing the performance for migrating to Windows Azure Virtual Machine, we are working on extending the Microsoft Assessment and Planning (MAP) Toolkit for SQL Server to have more built-in awareness for Windows Azure VMs.&lt;/span&gt;&lt;/p&gt;  &lt;h2&gt;VM Size&lt;/h2&gt;  &lt;p&gt;&lt;span style="font-size:x-small;"&gt;To improve the performance of your database, you need to understand which of the server&amp;rsquo;s resources is the performance constraint. If your database performance is limited by CPU or memory, users can scale up the compute available to the SQL instance by choosing a larger VM. Follow &lt;a href="http://msdn.microsoft.com/en-us/library/windowsazure/jj152814"&gt;&lt;span style="font-size:x-small;"&gt;Set-AzureVMsize&lt;/span&gt;&lt;/a&gt; for more detail on how to upgrade to a bigger VM size. Please note that this involves taking the VM offline and restarting the VM. &lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size:x-small;"&gt;Be mindful that this is a cloud environment with a multi-tenant storage and networking infrastructure, so you should expect some variance in performance. In general, for production workloads we recommend running SQL Server on Medium or larger VMs. For best performance use extra-large VMs.&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size:x-small;"&gt;We recommend the default setting for the SQL configuration option &amp;ldquo;max server memory&amp;rdquo; in order to allow SQL to manage its memory needs dynamically.&lt;/span&gt;&lt;/p&gt;  &lt;h2&gt;Number and configuration of disks&lt;/h2&gt;  &lt;p&gt;&lt;span style="font-size:x-small;"&gt;The number of disks allowed for your Windows Azure VM varies based on the VM size, with each disk up to 1TB. For example, in an extra-large VM, up to 16 disks are supported. For more details, please refer to the table below (source &lt;/span&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/windowsazure/ee814754.aspx"&gt;&lt;span style="font-size:x-small;"&gt;here&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size:x-small;"&gt;).&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://sqlcat.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-00-08-metablogapi/0447.image_5F00_3ACCF07A.png"&gt;&lt;img style="display:inline;" title="image" border="0" alt="image" src="http://sqlcat.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-00-08-metablogapi/3108.image_5F00_thumb_5F00_0149E083.png" width="578" height="339" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size:x-small;"&gt;If your performance is strongly disk I/O sensitive, be mindful that a larger VM may be required in order to add enough disks to meet your I/O requirements. For details, please see the &lt;/span&gt;&lt;a href="http://www.windowsazure.com/en-us/manage/windows/how-to-guides/attach-a-disk/"&gt;&lt;span style="font-size:x-small;"&gt;How to attach a data disk to a virtual machine topic&lt;/span&gt;&lt;/a&gt;&amp;nbsp;&lt;span style="font-size:x-small;"&gt;in How to create and configure a virtual machine in Windows Azure.&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size:x-small;"&gt;Being a shared cloud service, performance of Windows Azure VM, especially the I/O capacity, also depends on concurrent load &amp;ndash; performance will vary, for example, based on the time of day. We recommend users to validate the disk configuration to determine its I/O capacity prior to deploying SQL Server. &lt;/span&gt;&lt;a href="http://www.microsoft.com/en-us/download/details.aspx?id=20163"&gt;&lt;span style="font-size:x-small;"&gt;SQLIO Disk Subsystem Benchmark Tool&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size:x-small;"&gt; is available for performing such tests. &lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size:x-small;"&gt;In terms of configuration, we recommend placing data and log on separate disks from the OS disk for better performance.&lt;/span&gt;&lt;/p&gt;  &lt;h2&gt;Disk cache settings&lt;/h2&gt;  &lt;p&gt;&lt;span style="font-size:x-small;"&gt;The default cache settings on the OS disk and the data disk are different. &lt;/span&gt;&lt;/p&gt;  &lt;ul&gt;  &lt;li&gt;&lt;span style="font-size:x-small;"&gt;On the OS disk, the default is ON for both read and write caching. &lt;/span&gt;&lt;/li&gt;  &lt;li&gt;&lt;span style="font-size:x-small;"&gt;On the data disk, the default is OFF for both read and write caching.&lt;/span&gt;&lt;/li&gt;  &lt;/ul&gt;  &lt;p&gt;&lt;span style="font-size:x-small;"&gt;For running SQL workloads, we recommend keeping the write cache OFF. In case data has to be placed on the OS disk, disable the write caching on the OS disk in the service model. Use Windows Azure Powershell command &lt;/span&gt;&lt;a href="http://msdnstage/en-us/library/jj152847"&gt;&lt;span style="font-size:x-small;"&gt;Set-AzureOSDisk&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size:x-small;"&gt; to disable write caching. Please note that changing the cache settings on the OS disk while running will result in a reboot of the VM.&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size:x-small;"&gt;Apart from Windows Azure OS disk and data disk, there is also Temporary Storage available in the VM (usually exposed as drive &amp;ldquo;D:\&amp;rdquo;). This temporary storage, however, does not provide data durability as OS disks or data disks do. We recommend users refrain from keeping data that need to be persisted on this drive.&lt;/span&gt;&lt;/p&gt;  &lt;h2&gt;Performance Tuning and Troubleshooting&lt;/h2&gt;  &lt;p&gt;&lt;span style="font-size:x-small;"&gt;In general, users have the same database performance tuning options in the Windows Azure Virtual Machine environment that they would have in a physical server environment, this includes resources such as Windows performance counters, Xperf and SQL Server DMVs. Additionally, for logging and troubleshooting performance of the networked drives, the user can leverage &lt;/span&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/hh343270.aspx"&gt;&lt;span style="font-size:x-small;"&gt;Storage Analytics&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size:x-small;"&gt;, a tool for performance logging and troubleshooting against Windows Azure storage.&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;h2&gt;&lt;span style="font-size:x-small;"&gt;Additional Resources&lt;/span&gt;&lt;/h2&gt;  &lt;ul&gt;  &lt;li&gt;&lt;span style="font-size:x-small;"&gt;&lt;a href="http://www.windowsazure.com/en-us/manage/windows/how-to-guides/"&gt;How to guide for Windows Virtual Machines&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;  &lt;li&gt;&lt;span style="font-size:x-small;"&gt;&lt;a href="http://support.microsoft.com/kb/956893"&gt;Support policy for Microsoft SQL Server products that are running in a hardware virtualization environment&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;  &lt;li&gt;&lt;span style="font-size:x-small;"&gt;&lt;a href="https://www.windowsazure.com/en-us/pricing/details/"&gt;Pricing Details&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;  &lt;li&gt;&lt;span style="font-size:x-small;"&gt;&lt;a href="http://www.windowsazure.com/en-us/pricing/calculator/?scenario=virtual-machines"&gt;Price calculator&lt;/a&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;  &lt;li&gt;&lt;span style="font-size:x-small;"&gt;&lt;a href="http://www.windowsazure.com/en-us/pricing/free-trial/"&gt;Get Free Trial&lt;/a&gt;&lt;/span&gt;&amp;nbsp;&lt;/li&gt;  &lt;/ul&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size:x-small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;</description></item><item><title>Blog Post: Memory Error Recovery in SQL Server 2012</title><link>http://sqlcat.com/sqlCat/b/technicalnotes/archive/2012/06/05/memory-error-recovery-in-sql-server-2012.aspx</link><pubDate>Wed, 06 Jun 2012 00:14:00 GMT</pubDate><guid isPermaLink="false">e9619797-5f48-4d02-a1a8-7f300d09be66:2700</guid><dc:creator>Lindsey.allen</dc:creator><description>&lt;p&gt;&lt;span style="color:#0000a0;font-size:x-small;"&gt;&lt;em&gt;Xin Jin; Fabricio Voznika; Madhan Arumugam; Lindsey Allen&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size:x-small;"&gt;SQL Server 2012 has many hidden gems, one of them is the capability of recovering from memory corruption error. We will tell you how it works in this article. &lt;/span&gt;&lt;/p&gt;  &lt;h4&gt;&lt;strong&gt;&lt;span style="font-size:x-small;"&gt;Contents&lt;/span&gt;&lt;/strong&gt;&lt;/h4&gt;  &lt;ol&gt;  &lt;li&gt;&lt;span style="font-size:x-small;"&gt;Memory Error Recovery in SQL Server 2012&lt;/span&gt;&lt;/li&gt;  &lt;li&gt;&lt;span style="font-size:x-small;"&gt;Hardware errors and taxonomy&lt;/span&gt;&lt;/li&gt;  &lt;li&gt;&lt;span style="font-size:x-small;"&gt;Soft error vs. hard error&lt;/span&gt;&lt;/li&gt;  &lt;li&gt;&lt;span style="font-size:x-small;"&gt;Corrected error vs. uncorrected error&lt;/span&gt;&lt;/li&gt;  &lt;li&gt;&lt;span style="font-size:x-small;"&gt;Fatal error vs. non-fatal error&lt;/span&gt;&lt;/li&gt;  &lt;li&gt;&lt;span style="font-size:x-small;"&gt;What is memory scrubbing?&lt;/span&gt;&lt;/li&gt;  &lt;li&gt;&lt;span style="font-size:x-small;"&gt;How To: Find if this feature is available&lt;/span&gt;&lt;/li&gt;  &lt;li&gt;&lt;span style="font-size:x-small;"&gt;How To: Detect that a page has been repaired&lt;/span&gt;&lt;/li&gt;  &lt;li&gt;&lt;span style="font-size:x-small;"&gt;How to: Detect uncorrected hardware memory corruption&lt;/span&gt;&lt;/li&gt;  &lt;li&gt;&lt;span style="font-size:x-small;"&gt;How To: Monitor the system&lt;/span&gt;&lt;/li&gt;  &lt;/ol&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size:x-small;"&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size:x-small;"&gt;SQL Server is able to recover from memory corruption when hardware support&amp;nbsp; is available. Platforms that support hardware memory scrubber can send notification to applications when memory corruption is detected. SQL Server responds to these notifications and attempts to repair the memory. Clean database pages in buffer pool &lt;/span&gt;&lt;a&gt;&lt;span style="font-size:x-small;"&gt;are &lt;/span&gt;&lt;/a&gt;&lt;span style="font-size:x-small;"&gt; restored by reading the page again from disk. This new feature helps SQL Server to remain running even when there are hardware memory errors&lt;/span&gt;&lt;a&gt;&lt;span style="font-size:x-small;"&gt;.&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size:x-small;"&gt;&lt;/span&gt;&lt;/p&gt;  &lt;h4&gt;&lt;a name="_Toc323507213"&gt;&lt;/a&gt;&lt;span style="font-size:x-small;"&gt;Hardware errors and taxonomy&lt;/span&gt;&lt;/h4&gt;  &lt;p&gt;&lt;span style="font-size:x-small;"&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size:x-small;"&gt;Please see the &lt;/span&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/windows/hardware/ff559382(v=vs.85).aspx"&gt;&lt;span style="font-size:x-small;"&gt;Hardware Errors and Error Sources&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size:x-small;"&gt; on MSDN for an overview of hardware errors and their definitions.&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size:x-small;"&gt;&lt;/span&gt;&lt;/p&gt;  &lt;h5&gt;&lt;a name="_Toc323507214"&gt;&lt;/a&gt;&lt;span style="font-size:x-small;"&gt;Soft error vs. hard error&lt;/span&gt;&lt;/h5&gt;  &lt;p&gt;&lt;span style="font-size:x-small;"&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size:x-small;"&gt;A soft error is an error in a signal or datum which is wrong. After a soft error is observed , there is no implication that the system is any less reliable than before. If detected, a soft error may be corrected by rewriting correct data in place of erroneous data. An example of a soft error is a single bit flip.&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size:x-small;"&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size:x-small;"&gt;Unlike soft error, a hard error is an error that occurs because of a physical hardware issue such as a defect, a mistake in design or construction, or a broken component. These errors require that the hardware causing the error be replaced. Rewriting the data does not correct the error.&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size:x-small;"&gt;&lt;/span&gt;&lt;/p&gt;  &lt;h5&gt;&lt;a name="_Toc323507215"&gt;&lt;/a&gt;&lt;span style="font-size:x-small;"&gt;Corrected error vs. uncorrected error&lt;/span&gt;&lt;/h5&gt;  &lt;p&gt;&lt;span style="font-size:x-small;"&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size:x-small;"&gt;A corrected error is a hardware error condition that has been corrected by the hardware or the firmware by the time that the operating system is notified about the presence of the error condition.&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size:x-small;"&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size:x-small;"&gt;An uncorrected error is a hardware error condition that cannot be corrected by the hardware or the firmware. Uncorrected errors are classified as either fatal or nonfatal.&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size:x-small;"&gt;&lt;/span&gt;&lt;/p&gt;  &lt;h5&gt;&lt;a name="_Toc323507216"&gt;&lt;/a&gt;&lt;span style="font-size:x-small;"&gt;Fatal error vs. non-fatal error&lt;/span&gt;&lt;/h5&gt;  &lt;p&gt;&lt;span style="font-size:x-small;"&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size:x-small;"&gt;A fatal hardware error is an uncorrected or uncontained error condition that is determined to be unrecoverable by the hardware. When a fatal uncorrected error occurs, the operating system generates a bug check to contain the error.&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size:x-small;"&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size:x-small;"&gt;A nonfatal hardware error is an uncorrected error condition from which the operating system can attempt recovery by trying to correct the error. If the operating system cannot correct the error, it generates a bug check to contain the error.&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size:x-small;"&gt;&lt;/span&gt;&lt;/p&gt;  &lt;h4&gt;&lt;a name="_Toc323507217"&gt;&lt;/a&gt;&lt;span style="font-size:x-small;"&gt;What is memory scrubbing?&lt;/span&gt;&lt;/h4&gt;  &lt;p&gt;&lt;span style="font-size:x-small;"&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://en.wikipedia.org/wiki/Memory_scrubbing"&gt;&lt;span style="font-size:x-small;"&gt;Memory scrubbing&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size:x-small;"&gt; is the process of detecting and correcting bit errors in computer memory by using error-detecting codes like ECC. Memory scrubbing can detect and correct soft, correctable errors. For certain soft, uncorrected non-fatal errors, SQL Server captures of this information and checks whether the corrupted memory is part of a clean database page that is in Buffer Pool. If that is the case, this page is tossed and the memory is de-allocated. If corruption is in another region of memory that can not be repaired, only logging is done to notify of the event and no action is taken. &lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size:x-small;"&gt;&lt;/span&gt;&lt;/p&gt;  &lt;h4&gt;&lt;a name="_Toc323507218"&gt;&lt;/a&gt;&lt;a&gt;&lt;span style="font-size:x-small;"&gt;How To: Find if this feature is available&lt;/span&gt;&lt;/a&gt;&lt;/h4&gt;  &lt;p&gt;&lt;span style="font-size:x-small;"&gt; If the memory error recovery feature is available, you will be able to see the following by looking at SQL errorlog.&lt;/span&gt;&amp;nbsp;&lt;/p&gt;  &lt;table border="0" cellspacing="0" cellpadding="0"&gt;  &lt;tbody&gt;  &lt;tr&gt;  &lt;td valign="top" width="869"&gt;  &lt;p&gt;&lt;span style="color:#008000;font-family:Consolas;font-size:x-small;"&gt;Machine supports memory error recovery. SQL memory protection is enabled to recover from memory corruption.&lt;/span&gt;&lt;/p&gt;  &lt;/td&gt;  &lt;/tr&gt;  &lt;/tbody&gt;  &lt;/table&gt;  &lt;h4&gt;&lt;a name="_Toc323507219"&gt;&lt;/a&gt;&lt;span style="font-size:x-small;"&gt;How To: Detect that a page has been repaired&lt;/span&gt;&lt;/h4&gt;  &lt;p&gt;&lt;span style="font-size:x-small;"&gt;If the memory corruption is associated with a clean page in Buffer Pool, SQL Server is able to recover from it and the following message will be logged in the &lt;/span&gt;&lt;a&gt;&lt;span style="font-size:x-small;"&gt;errorlog&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size:x-small;"&gt;.&lt;/span&gt;&lt;/p&gt;  &lt;table border="0" cellspacing="0" cellpadding="0"&gt;  &lt;tbody&gt;  &lt;tr&gt;  &lt;td valign="top" width="869"&gt;  &lt;p&gt;&lt;span style="color:#008040;font-family:Consolas;font-size:x-small;"&gt;SQL Server has detected hardware memory corruption in database &amp;#39;%ls&amp;#39;, file ID: %u, page ID; %u, memory address: 0x%x and has successfully recovered the page.&lt;/span&gt;&lt;/p&gt;  &lt;/td&gt;  &lt;/tr&gt;  &lt;/tbody&gt;  &lt;/table&gt;  &lt;p&gt;&lt;span style="font-size:x-small;"&gt;Also you can monitor the detection and repair of the memory corruption with the following Extended Events (XEvents):&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size:x-small;"&gt;- bad_memory_detected: corrupted memory has been detected and reported to SQL. The memory may or may not belong to a database page.&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size:x-small;"&gt;- bad_memory_fixed: memory corruption has been detected and fixed. Fields of then event contain more details regarding the exact page affected&lt;/span&gt;&lt;/p&gt;  &lt;h4&gt;&lt;span style="font-size:x-small;"&gt;How to: Detect uncorrected hardware memory corruption&lt;/span&gt;&lt;/h4&gt;  &lt;p&gt;&lt;span style="font-size:x-small;"&gt;SQL Server is able to recover from memory corruption of clean pages in buffer pool. It cannot recover from memory errors associated with dirty pages or outside Buffer Pool. Upon detection of such uncorrectable hardware errors, the following entry can be observed from errorlog.&lt;/span&gt;&lt;/p&gt;  &lt;table border="0" cellspacing="0" cellpadding="0"&gt;  &lt;tbody&gt;  &lt;tr&gt;  &lt;td valign="top" width="869"&gt;  &lt;p&gt;&lt;span style="color:#008040;font-family:Consolas;font-size:x-small;"&gt;Uncorrectable hardware memory corruption detected. Your system may become unstable. Please check the Windows event log for more details.&lt;/span&gt;&lt;/p&gt;  &lt;/td&gt;  &lt;/tr&gt;  &lt;/tbody&gt;  &lt;/table&gt;  &lt;h4&gt;&lt;a name="_Toc323507221"&gt;&lt;/a&gt;&lt;span style="font-size:x-small;"&gt;How To: Monitor the system&lt;/span&gt;&lt;/h4&gt;  &lt;p&gt;&lt;span style="font-size:x-small;"&gt;The user can monitor the detection of memory corruption using &lt;strong&gt;sp_server_diagnostics&lt;/strong&gt;. The &lt;em&gt;system&lt;/em&gt; component state will be set to &lt;em&gt;warning&lt;/em&gt; upon detection of a memory corruption. In addition, the &lt;em&gt;data&lt;/em&gt; column logs information about count of bad page detected, count of bad page fixed as well as the virtual address of the bad page last encountered. &lt;/span&gt;&lt;/p&gt;</description></item><item><title>Blog Post: Comparing I/O characteristics in AlwaysOn Availability Groups and Database Mirroring</title><link>http://sqlcat.com/sqlCat/b/technicalnotes/archive/2012/06/01/comparing-i-o-characteristics-in-alwayson-availability-groups-and-database-mirroring.aspx</link><pubDate>Fri, 01 Jun 2012 22:19:00 GMT</pubDate><guid isPermaLink="false">e9619797-5f48-4d02-a1a8-7f300d09be66:2693</guid><dc:creator>ytada</dc:creator><description>&lt;p&gt;&lt;b&gt;Author&lt;/b&gt;: Yorihito Tada &lt;br /&gt;&lt;br /&gt;&lt;b&gt;Contributors&lt;/b&gt;: Sanjay Mishra, Steve Lindell &lt;br /&gt;&lt;br /&gt;&lt;b&gt;Technical Reviewers&lt;/b&gt;: Prem Mehra, Mike Weiner, Sunil Agarwal&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;p&gt;Microsoft SQL Server 2012 introduces AlwaysOn Availability Groups, which is a high availability and disaster recovery solution. The basic concept of AlwaysOn Availability Groups is similar to Database Mirroring, which was introduced in SQL Server 2005 SP1. AlwaysOn Availability Groups offers improvements over Database Mirroring; for example, with AlwaysOn Availability Groups, you can have multiple databases in one availability group, and you can have up to four secondary replicas for every primary replica. For more information about AlwaysOn Availability Groups, see &lt;a href="http://technet.microsoft.com/en-us/library/ff877884(v=SQL.110).aspx"&gt;Overview of AlwaysOn Availability Groups&lt;/a&gt; (http://technet.microsoft.com/en-us/library/ff877884(v=SQL.110).aspx).&lt;/p&gt;  &lt;p&gt;AlwaysOn Availability Groups not only extends the functionality of Database Mirroring, it also provides performance enhancements. This paper provides some technical details on two of these enhancements:&lt;/p&gt;  &lt;ul&gt;  &lt;li&gt;The I/O efficiency of flushing data pages on the secondary replica&lt;/li&gt;  &lt;li&gt;Throughput improvements by optimized I/O for transaction log file using log pool&lt;/li&gt;  &lt;/ul&gt;  &lt;p&gt;The paper also discusses the results of tests that we performed to demonstrate these features and their effect on performance.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;I/O Efficiency of Flushing Pages on the Secondary&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;One significant change in SQL Server 2012 is the improved I/O efficiency on the secondary replica (also known as the mirror database in Database Mirroring). Database Mirroring does a continual flush of the dirty pages, because to go from a &amp;lsquo;restoring&amp;rsquo; state to an &amp;lsquo;online&amp;rsquo; state (that is, from the mirror database to the principal database), all pages are required to be on disk. To shorten recovery time at failover, Database Mirroring writes dirty data pages to disk continuously. Because databases in AlwaysOn Availability Groups are online in both primary and secondary replicas (regardless of whether they are readable or not) , the flush is not required on a role change. Therefore AlwaysOn Availability Groups does not need to force page flushes except at checkpoints or buffer pool memory pressure. This change significantly reduces I/O for the secondary replica, when there are multiple updates on same page.&lt;/p&gt;  &lt;p&gt;To compare AlwaysOn Availability Groups and Database Mirroring, I used one OLTP-type database and the same workload for AlwaysOn Availability Groups and Database Mirroring. Each database had 12 data files (6 files on each file group) and one transaction log file. The total size was approximately 80&amp;nbsp;GB allocated and 35&amp;nbsp;GB used at the initial state. Both AlwaysOn Availability Groups and Database Mirroring were configured as synchronous replicas or mirrors. The workloads were mixed, with INSERTs, UPDATEs and READs. The concurrent connected user count was 1,000 users. On each node, data files were placed on drive H:(direct attached SSD drive), and transaction log files were on drive E:(SAN storage).&lt;/p&gt;  &lt;p&gt;&lt;a href="http://sqlcat.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-00-08/1362.AGDBMIO_5F00_Figure11.png"&gt;&lt;img border="0" alt=" " src="http://sqlcat.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-00-08/1362.AGDBMIO_5F00_Figure11.png" /&gt;&lt;/a&gt;&lt;a href="http://sqlcat.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-00-08/5415.AGDBMIO_5F00_Figure11.png"&gt;&lt;/a&gt;&lt;a href="http://sqlcat.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-00-08/8176.AGDBMIO_5F00_Figure1.png"&gt;&lt;/a&gt;&lt;a href="http://sqlcat.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-00-08/6177.AGDBMIO_5F00_Figure1.png"&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Figure 1: The Data Disk Write Byte /sec counter&lt;/p&gt;  &lt;p&gt;In Figure 1, the red line shows the Disk Write Bytes/sec counter values on the secondary node data disk. It shows that there were approximately 500&amp;nbsp;MB per second of write I/O every minute for AlwaysOn Availability Groups; this write I/O occurred at the checkpoint. There were continuously 200&amp;nbsp;MB per second of write I/O for Database Mirroring. Note: The blue dotted line tracks the Disk Write Bytes/sec counter on the primary replica (in AlwaysOn Availability Groups) or principal database (in Database Mirroring), showing the checkpoint activity, which is a very similar pattern in both technologies. Average Disk Write Bytes/sec is around 63&amp;nbsp;MB per second for AlwaysOn Availability Groups and 205&amp;nbsp;MB per second for Database Mirroring during workload. These test results show that AlwaysOn Availability Groups reduces write I/O on the mirror significantly, compared to Database Mirroring.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Throughput improvements by optimized I/O for transaction log file using the log pool&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;SQL Server 2012 Availability Groups introduces another improvement, the dynamic cache capability of the log pool. This capability increases throughput capacity on the AlwaysOn Availability Groups databases. The log pool is a new common cache mechanism for log records consumers. When a transaction is run on the primary replica, the transaction log records are written to the log cache, and at the same time they are sent to the log pool to be passed along to the secondary replica. Figure 2 shows an example of this with a single secondary replica, although the logic is the same for multiple secondary replicas. If an unsent log is not in cache, AlwaysOn Availability Groups or Database Mirroring log capture threads have to read the log from the file. The log pool serves as a dynamic cache that can grow until unsent log entries fit into the cache, if there is no memory pressure. Then AlwaysOn Availability Groups adds less I/O to the log file for read than Database Mirroring does.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://sqlcat.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-00-08/1732.AGDBMIO_5F00_Figure2.png"&gt;&lt;img border="0" alt=" " src="http://sqlcat.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-00-08/1732.AGDBMIO_5F00_Figure2.png" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Figure 2: Data movement architecture of AlwaysOn Availability Groups&lt;/p&gt;  &lt;p&gt;In Figure 3, the red line shows Batch Requests/sec, the blue line shows Log write waits, and the green line shows Disk Read Bytes/sec for the transaction log. These results are all taken from the primary replica or the principal database.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://sqlcat.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-00-08/4722.AGDBMIO_5F00_Figure31.png"&gt;&lt;img border="0" alt=" " src="http://sqlcat.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-00-08/4722.AGDBMIO_5F00_Figure31.png" /&gt;&lt;/a&gt;&lt;a href="http://sqlcat.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-00-08/1616.AGDBMIO_5F00_Figure31.png"&gt;&lt;/a&gt;&lt;a href="http://sqlcat.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-00-08/6327.AGDBMIO_5F00_Figure3.png"&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Figure 3: Batch Requests/sec&lt;/p&gt;  &lt;p&gt;For AlwaysOn Availability Groups, the average value for Batch Requests/sec is about 5000, and for Database Mirroring, the average is 4000. This improvement in throughput is caused by a difference in the Log writes waits counter and heavier read I/O (as measured by the Disk Read Byes/sec counter&lt;i&gt;)&lt;/i&gt; on the transaction log file for Database Mirroring. This enhancement comes from the log pool with a dynamically sized log cache. Database Mirroring, on the other hand, uses a fixed-size log cache. These log pool changes enable AlwaysOn Availability Groups to handle spikes in log volume much better, which results in an increase in capacity over Database Mirroring.&lt;/p&gt;</description></item></channel></rss>