<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
  version="2.0">
  <channel>
    <title>SQLAdventurer</title>
    <atom:link
      href="https://docs.microsoft.com/archive/blogs/sqladventurer/feed.xml"
      rel="self"
      type="application/rss+xml" />
    <link>https://docs.microsoft.com/archive/blogs/sqladventurer/feed.xml</link>
    <description>Tammy Richter Jones - Seeking adventures in SQL</description>
    <lastBuildDate>Tue, 16 Apr 2019 05:30:02 GMT</lastBuildDate>
    <language>en-US</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>The SQL Server 2012 Parallel Data Warehouse is ready to roll out and it is a BigData big deal</title>
      <link>https://docs.microsoft.com/archive/blogs/sqladventurer/the-sql-server-2012-parallel-data-warehouse-is-ready-to-roll-out-and-it-is-a-bigdata-big-deal</link>
      <pubDate>Wed, 27 Feb 2013 10:32:00 GMT</pubDate>
      <dc:creator><![CDATA[SQLAdventurer]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/sqladventurer/2013/02/27/the-sql-server-2012-parallel-data-warehouse-is-ready-to-roll-out-and-it-is-a-bigdata-big-deal/</guid>
      <description><![CDATA[The SQL Server 2012 Parallel Data Warehouse (PDW 2012) contains a number of impressive improvements...]]></description>
      <content:encoded><![CDATA[<p>The SQL Server 2012 Parallel Data Warehouse (PDW 2012) contains a number of impressive improvements one of which is integration with Hadoop. PDW V1 featured integration with Hadoop by implementing a SQOOP based import/export connector. This new feature is named Polybase and in short, Ploybase allows you to issue a TSQL query that accesses data stored in a Hadoop cluster and in the PDW. Polybase replaces the SQOOP connectors&nbsp;and implements parallel data transfers between the PDW nodes and a Hadoop cluster HDFS nodes making data movement massively parallel and getting even more utilization out of the compute nodes.&nbsp; This is an impressive and technically fascinating improvement.</p>
<p>Ploybase allows for a high performance&nbsp;integrated query across Hadoop and relational data using two key components - External Tables and the HDFS Bridge.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/51/61/4846.Polybase.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-51-61/4846.Polybase.png"><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/51/61/4846.Polybase.png" original-url="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-51-61/4846.Polybase.png" alt="" width="396" height="909" border="0" /></a></p>
<p>&nbsp;</p>
<p>Here is some example SQL that is accessing ClickStream data stored in Hadoop and additional URL data stored in a dimensional table in the PDW.</p>
<p>&nbsp;</p>
<p style="margin: 0in; font-family: Calibri; font-size: 11pt;"><span style="font-family: courier new,courier; font-size: small;">SELECT</span><br /><span style="font-family: courier new,courier; font-size: small;">url.description</span></p>
<p><span style="font-family: courier new,courier; font-size: small;">FROM hdfsClickStream cs</span></p>
<p><span style="font-family: courier new,courier; font-size: small;">JOIN UrlDescription url</span></p>
<p><span style="font-family: courier new,courier; font-size: small;">ON cs.url = url.name</span></p>
<p><span style="font-family: courier new,courier; font-size: small;">WHEREcs.url = '<a href="http://www.cars.com">www.cars.com</a>'</span></p>
<p>&nbsp;</p>
<p>How does it work?</p>
<ol>
<li>Polybase uses an internal representation of data structure stored in PDW metadata called an External Table to see tables in Hadoop. Once a Hadoop data source has been defined as an External Table the user can access the table in the same fashion as a relational table.</li>
<li>To satisfy a query Polybase will import/export Hadoop data to and from the PDW to take the best advantage of the available computing power.&nbsp; This data transfer will be performed by the individual PDW Compute Nodes communicating directly with the Hadoop HDFS nodes for massively parallel data transfers.</li>
<li>Results are brought back (also in parallel) to the PDW and are temporarily (or permanently) stored on PDW. The PDW compute nodes complete processing and results are returned.&nbsp;&nbsp;</li>
</ol>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/51/61/6712.SQLinRestulstout.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-51-61/6712.SQLinRestulstout.png"><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/51/61/6712.SQLinRestulstout.png" original-url="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-51-61/6712.SQLinRestulstout.png" alt="" width="349" height="377" border="0" /></a></p>
<p><span style="color: #333399; font-size: medium;">External Tables</span></p>
<p>An EXTERNAL TABLE structure is what imposes structure upon the Hadoop data and identifies its location to PDW. The CREATE EXTERNAL TABLE statement defines the structure of the data being accessed and in the WITH clause locates the&nbsp;data in HDFS and specifies any formatting options. This metadata is stored on the PDF.&nbsp; External Table metadata&nbsp;can be queried using the DMV sys.pdw_external_tables. External tables also appear in SSMS object browser.</p>
<p><span style="font-family: courier new,courier;">CREATE EXTERNAL</span><br /><span style="font-family: courier new,courier;">TABLE hdfsClickStream (</span></p>
<p><span style="font-family: courier new,courier;">&nbsp;&nbsp;&nbsp; url varchar(50),</span></p>
<p><span style="font-family: courier new,courier;">&nbsp;&nbsp;&nbsp; event_date date,</span></p>
<p><span style="font-family: courier new,courier;">&nbsp;&nbsp;&nbsp; user_IP varchar(50)</span></p>
<p><span style="font-family: courier new,courier;">)</span></p>
<p><span style="font-family: courier new,courier;">WITH (</span><span style="font-family: courier new,courier;">LOCATION = </span><span style="font-family: courier new,courier;">'hdfs://192.168.2.154:5000/tpch1GB/click.txt',</span><span style="font-family: courier new,courier;">FORMAT_OPTIONS ( FIELD_TERMINATOR = '|')</span></p>
<p><span style="font-family: courier new,courier;">)</span></p>
<p>&nbsp;</p>
<p>Once your external table is defined you may query it directly with TSQL and perform joins to PDW tables</p>
<p><span style="font-family: courier new,courier;">SELECT </span><span style="font-family: courier new,courier;">url.description</span></p>
<p><span style="font-family: courier new,courier;">FROM hdfsClickStream </span><span style="font-family: courier new,courier;">cs</span></p>
<p><span style="font-family: courier new,courier;">JOIN UrlDescription </span><span style="font-family: courier new,courier;">url</span></p>
<p><span style="font-family: courier new,courier;">ON </span><span style="font-family: courier new,courier;">cs.url = url.name</span></p>
<p><span style="font-family: courier new,courier;">WHERE cs.url = '<a href="http://www.cars.com">www.cars.com</a>'</span></p>
<p><span style="color: #333399; font-size: large;">HDFS Bridge</span></p>
<p>The HDFS Bridge provides an abstraction layer over HDFS.&nbsp;HDFS Bridge has been added to the Data Movement Service (DMS) that runs on each PDW node. This&nbsp;is&nbsp;what provides for the massively parallel data transfers.&nbsp; This allows the HDFS data nodes to be queried concurrently by each compute node. Data moves in parallel directly between PDW Compute nodes and HDFS nodes.&nbsp;</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/51/61/7343.paralleldatatransfers.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-51-61/7343.paralleldatatransfers.png"><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/51/61/7343.paralleldatatransfers.png" original-url="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-51-61/7343.paralleldatatransfers.png" alt="" border="0" /></a></p>
<p>PolyBase was created in Jim Gray Systems Labs by&nbsp; David DeWitt, former Professor Emeritus of Computer Sciences.&nbsp; Dr. DeWitt is known for pioneering research in parallel databases, benchmarking, object-oriented and XML databases.&nbsp;&nbsp;</p>
<p>I highly recommend checking out the lab's web site at&nbsp;<a title="web site" href="http://gsl.azurewebsites.net/Projects/Polybase.aspx">http://gsl.azurewebsites.net/Projects/Polybase.aspx</a></p>
<p>And if you want to watch a good session tune in to David DeWitt's PASS 2012 Day 3 Spotlight Session&nbsp; (<a href="http://www.sqlpass.org/summit/2012/DavidDewittSpotlight.aspx">Day 3 Spotlight Session with David DeWitt</a>).</p>]]></content:encoded>
    </item>
    <item>
      <title>Book Review - Hadoop: The Definitive Guide, Third Edition</title>
      <link>https://docs.microsoft.com/archive/blogs/sqladventurer/book-review-hadoop-the-definitive-guide-third-edition</link>
      <pubDate>Wed, 14 Nov 2012 14:08:00 GMT</pubDate>
      <dc:creator><![CDATA[SQLAdventurer]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/sqladventurer/2012/11/14/book-review-hadoop-the-definitive-guide-third-edition/</guid>
      <description><![CDATA[Book Review - Hadoop: The Definitive Guide, Third Edition (May 2012)By Tom White
Copyright...]]></description>
      <content:encoded><![CDATA[<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/51/61/6232.HadooptheDifinitiveGuide.jpg" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-51-61/6232.HadooptheDifinitiveGuide.jpg"><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/51/61/6232.HadooptheDifinitiveGuide.jpg" original-url="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-51-61/6232.HadooptheDifinitiveGuide.jpg" alt="" width="162" height="192" border="0" /></a></p>
<p><br /><strong><span style="font-size: medium;">Book Review - <a href="http://www.barnesandnoble.com/w/hadoop-tom-white/1015558328?ean=9781449311520">Hadoop: The Definitive Guide</a>, Third Edition (May 2012)</span></strong><br /><strong>By Tom White</strong></p>
<p>Copyright 2012<br />Published by O&rsquo;Reilly Media Inc<br />ISBN: 978-1-449-31152-0</p>
<p><br /><strong><span style="color: #0000ff; font-size: medium;">Overview</span></strong><br />Organized into sixteen chapters and three appendices, Hadoop: The Definitive Guide, provides a comprehensive and detailed guide to the Hadoop ecosystem.&nbsp; The first three chapters&nbsp;provide an overview and history of the Hadoop project and introduce the two primary components; HDFS and Map Reduce.&nbsp;The following chapters&nbsp;focus in great depth on the architecture of HDFS and Map Reduce. These chapters build upon the introductory chapters and dive deeper into topics such as architecture, availability, compression, file systems, building Map Reduce applications, jobs and tasks. The core components of Hadoop are HDFS and Map Reduce and and they are covered by the author&nbsp;in a progressive and digestible format.</p>
<p><br />Each chapter provides in addition to description, technical details and recommendations, working examples that build chapter upon chapter to walk you through simple illustrative examples of each of the concepts. The examples are well presented and easy to understand and consistently use the data and use cases from previous chapters so that the reader does not need to comprehend a new use case for each example distracting focus from the example&rsquo;s message.</p>
<p><br />There are two chapters devoted to configuring and operating a Hadoop cluster and these are augmented by the three appendices that cover installation and prepping for the example code.&nbsp; Working through the example set up in combination with these chapters should prepare the reader for their own Hadoop implementation.</p>
<p><br />Pig, HBase and ZooKeeper are addressed in later chapters but are not covered in the same depth as HDFS and Map Reduce. Each of these additional tools deserves its own reference and there are many available.&nbsp; If you have covered the previous chapters the author&rsquo;s introduction and examples to these three tools will get you started.&nbsp;</p>
<p>&nbsp;<br />The table of contents and index are well executed and topics are easy to find. The example code is available online which is something that I always appreciate.&nbsp; Throughout the book the author provides links to the latest documentation online, hints and, best of all, Gotchas to look out for.</p>
<p><br /><span style="font-size: medium;"><strong><span style="color: #0000ff;">How I Read this Book</span></strong></span><br />This is a lot of information to take in and if you are new to Hadoop as I was I would recommend viewing an overview video or two online to become familiar with all the vocabulary before diving into this book.&nbsp; I got a LOT out of this book by tackling it in two passes; First, I read it all the way through but just glanced over the examples &ndash; understanding the use cases, but not getting all wrapped around the Java. It has easily been 10 years since I last developed anything in Java, so I postponed my personal syntax journey.&nbsp; In my second pass through the book I focused on working and understanding the examples.&nbsp; By reading first and then working the examples I found that I had more focus on understanding the details and concepts by reading with an uninterrupted flow. Following with a &ldquo;working the examples&rdquo; pass allowed me to review and reinforce concepts with example activities. I tackled&nbsp;this material using a &ldquo;lecture then lab&rdquo; aproach that works well for me.</p>
<p><br />Hadoop: The Definitive Guide is an excellent learning tool and reference for Hadoop.&nbsp; I should be required reading for anyone interested in working with Hadoop.</p>]]></content:encoded>
    </item>
    <item>
      <title>Exploring Windows Azure Storage Options</title>
      <link>https://docs.microsoft.com/archive/blogs/sqladventurer/exploring-windows-azure-storage-options</link>
      <pubDate>Tue, 16 Oct 2012 13:29:00 GMT</pubDate>
      <dc:creator><![CDATA[SQLAdventurer]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/sqladventurer/2012/10/16/exploring-windows-azure-storage-options/</guid>
      <description><![CDATA[My newest adventure has me exploring Big Data and I have spent the past few weeks swimming in the...]]></description>
      <content:encoded><![CDATA[<p>My newest adventure has me exploring Big Data and I have spent the past few weeks swimming in the deep end of the <a href="http://www.windowsazure.com/en-us/develop/net/fundamentals/intro-to-windows-azure/"><span style="color: #0000ff;" color="#0000ff">Windows Azure</span></a> pool.</p>
<p>Here are some quick links to the <a href="http://www.windowsazure.com/en-us/home/features/data-management/"><span style="color: #0000ff;" color="#0000ff">data storage</span></a> options available on Windows Azure:</p>
<p>&nbsp;<a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/51/61/8664.WindowsAzureStorage.jpg" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-51-61/8664.WindowsAzureStorage.jpg"><img border="0" alt="" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/51/61/8664.WindowsAzureStorage.jpg" original-url="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-51-61/8664.WindowsAzureStorage.jpg" /></a></p>
<p>&nbsp;</p>
<p><span style="color: #0000ff;"><b>SQL Database (formerly known as SQL Azure)</b></span></p>
<p style="padding-left: 30px;">This is Software as a Service (SaaS) serving up a full featured relational database engine.&nbsp; SQL Database is based on SQL Server so if you are already working with SQL Server you will find SQL Database a familiar place.&nbsp; It does not support all the features of SQL Server at this time, but more and more features are being added with each release.</p>
<p style="padding-left: 30px;">Read more <a href="http://msdn.microsoft.com/en-us/library/windowsazure/ee336279.aspx"><span style="color: #0000ff;" color="#0000ff">here</span></a>.</p>
<p style="padding-left: 30px;">&nbsp;[Aside: If you need full blown SQL Server in Windows Azure please take a look at <a href="http://social.technet.microsoft.com/wiki/contents/articles/11554.sql-server-in-windows-azure-virtual-machine-early-adoption-cook-book-en-us.aspx"><span style="color: #0000ff;" color="#0000ff">SQL Server on Windows Azure VM</span></a>].</p>
<p><span style="color: #0000ff;"><b>Azure Storage</b></span></p>
<p style="padding-left: 30px;">Table</p>
<p style="padding-left: 60px;">This is NoSQL storage. This is a key/value pair implementation. Don't be fooled by the name this is not relational storage. You will not be doing any complex queries against it, but it is excellent storage for high speed simple typed data. There can be a LOT of data here. This scales very well and a single table can hold 1TB of data.</p>
<p style="padding-left: 30px;">Blob</p>
<p style="padding-left: 60px;">Binary Large Object storage.&nbsp; Unstructured binary data, good for video, images, big binary data. &nbsp;A single blob can be as large as 1 TB.</p>
<p style="padding-left: 30px;">Both Blob and Table storage are ISO 27001 certified managed services. Both can scale to massive amounts of data and both are accessible from REST and managed APIs.</p>
<p style="padding-left: 30px;">More details <a href="http://msdn.microsoft.com/en-us/library/windowsazure/gg433040.aspx"><span style="color: #0000ff;" color="#0000ff">here</span></a>.</p>
<p><span style="color: #0000ff;"><b>Hadoop on Azure (Isotope)</b></span></p>
<p style="padding-left: 30px;">Although not categorized as storage per say,&nbsp;in Windows Azure it is found as part of&nbsp;Business Analytics.&nbsp;I want to add it to this summary anyway since one of its components (HDFS) is data storage.</p>
<p style="padding-left: 30px;">The format definition; Apache Hadoop core provides data storage with the Hadoop Distributed File System (HDFS) and a MapReduce programming model to process and analyze in parallel the data stored in this distributed system. &nbsp;Apache&trade; Hadoop&trade;-based Services for Windows Azure is a service that provisions and deploys Hadoop clusters in Windows Azure.</p>
<p style="padding-left: 30px;">Hadoop on Azure is currently in Customer Technical Preview (CTP). I'm lovin' it. I'll be bloggin more about it soon.</p>
<p style="padding-left: 30px;">In the meantime, read about it <a href="http://www.windowsazure.com/en-us/develop/net/tutorials/intro-to-hadoop/"><span style="color: #0000ff;" color="#0000ff">here</span></a>.</p>
<p>&nbsp;&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><span style="font-family: Times New Roman; font-size: small;" face="Times New Roman" size="3">&nbsp;</span></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>]]></content:encoded>
    </item>
    <item>
      <title>Hyperthreading, Turbo Boost, SQL Server and You</title>
      <link>https://docs.microsoft.com/archive/blogs/sqladventurer/hyperthreading-turbo-boost-sql-server-and-you</link>
      <pubDate>Wed, 11 Jul 2012 13:32:00 GMT</pubDate>
      <dc:creator><![CDATA[SQLAdventurer]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/sqladventurer/2012/07/11/hyperthreading-turbo-boost-sql-server-and-you/</guid>
      <description><![CDATA[Here are two topics that are tangentially related, Hyperthreading and Turbo Boost. Conversations...]]></description>
      <content:encoded><![CDATA[<p>Here are two topics that are tangentially related, Hyperthreading and Turbo Boost. Conversations beginning with one often lead to the other so here are my thoughts, comments, findings and resources&nbsp;on both.</p>
<p><span style="color: #3366ff; font-size: large;"><strong>Hyperthreading and SQL Server</strong></span></p>
<p>I am asked about hyperthreading all the time. People have a lot of different experiences with hyperthreading and SQL Server.&nbsp; Some folks think it is wonderful and others never, ever enable it on a SQL Server.&nbsp; I have seen it help&nbsp; performance and I have seen it hurt performance.&nbsp;</p>
<p>Hyperthreading is the SQL Server poster child for "it depends".&nbsp;&nbsp;&nbsp;</p>
<p>Hyperthreading is a technology that provides some additional processing power by dividing a single core into two logical processors.&nbsp; The thinking is to push even more work through the physical CPU by having more threads ready and reducing the time the CPU spends waiting for a ready thread. In a workload where the physical processors are already saturated then implementing hyperthreading can actually reduce the workload. Workloads with high levels of contention can also experience poor performance using hyperthreading.&nbsp;</p>
<p>How hyperthreading will behave in your environment is dependent upon;</p>
<ul>
<li>Your workload</li>
<li>
<div lang="en-AU">Windows Server OS version</div>
</li>
<li>
<div lang="en-AU">SQL Server Version</div>
</li>
<li>
<div lang="en-AU">Physical CPU chip/chipset<br />&nbsp;&nbsp;&nbsp;&nbsp; including cache size</div>
</li>
</ul>
<p lang="en-AU">Most environments running multiple SQL Servers will be running on any number of physically different servers with different CPU configurations.&nbsp; Your SQL Server workload should be tested with and without hyperthreading on the specific server upon which it will be running in production.&nbsp; This is a case where unless the servers in the test environment are exactly like the servers in production, down to the CPU chipset and configuration, the testing will not be valid.&nbsp;Repeatable test plans should be constructed and executed to gather metrics to quantify the use or disabling of hyperthreading for your environment.</p>
<p>Here are a few broad guidelines on hyperthreading;</p>
<ul>
<li>
<div lang="en-AU">Turn off hyperthreading if&nbsp;the logical CPU count that would result exceeds the number of CPUs supported by your OS or other software.&nbsp;&nbsp;Example: Windows Server 2008 R2 supports up to 64 logical&nbsp;&nbsp;processors, If you have a 40 core server (4, 10 core processors) hyperthreading would result in 80 logical cores. This is 16 cores greater than the OS will support. At start up those 16 logical cores will not be initialized and will be idle.&nbsp; That is 8 physical cores of processing power not in use.</div>
</li>
</ul>
<p lang="en-AU">&nbsp;</p>
<ul>
<li>
<div lang="en-AU">Turn off hyperthreading for SQL Server 2005 (in most cases).&nbsp;Some of the synchronization primitives do not see hyperthreading for what it is and interpret it as a multi core processor and some soft NUMA memory behaviours may occur that impact performance. This may be seen when processes execute that scan through large sections of memory. They may not affect your workload though so quantify your choice with testing.</div>
</li>
</ul>
<p lang="en-AU">&nbsp;</p>
<ul>
<li>
<div lang="en-AU">Test hyperthreading with your workload for SQL Server 2008, 2008 R2 and 2012.&nbsp; Hyperthreading is fully supported within the SQLOS without issue, but the nature of your specific workload may create issues related to I/O or read in-efficiency.&nbsp; The results may be seen as excessive CXPACKET waits that are due to the timing of true CPU threads vs.hyperthreading CPU threads.&nbsp;&nbsp; High CXPACKET waits may be observed even when MAXDOP is set to 1.&nbsp;</div>
</li>
</ul>
<p><span style="color: #3366ff;"><strong><span style="font-size: large;">Power Options and Intel Turbo Boost Technology</span></strong></span></p>
<p>When Intel first introduced performance scaling in their chips controlled by a power option in Windows many people were dismayed to find their SQL Server's CPU performance throttling down when Windows deemed the system "not busy".&nbsp; The default Power Option for Windows is "Balanced" which allows the processor to save energy by lowering the core frequency&nbsp;below the base frequency saving energy and lowering CPU performance.&nbsp; I came across some additional detail on this behavior and have provided it below.&nbsp;</p>
<p>The following is an excerpt from <strong>Performance Tuning Guidelines for Windows Server 2008 R2</strong> (<a href="http://msdn.microsoft.com/en-us/windows/hardware/gg463392.aspx">http://msdn.microsoft.com/en-us/windows/hardware/gg463392.aspx</a>)&nbsp;</p>
<p>Today&rsquo;s modern processors enable scaling of performance and power based on the current activity on the system. The different performance states are dynamically managed by Windows in conjunction with hardware and platform firmware to respond to varying workload requirements. . The 3 default power plans exposed by Windows provide varying tradeoffs of performance vs. power consumption. For example, if the High Performance power plan is selected, Windows places the system in the highest performance state and disables the dynamic scaling of performance in response to varying workload levels.&nbsp;</p>
<p>Servers hosting SQL Server should always be configured for High Performance. (my comment)&nbsp;</p>
<p>To change a power plan:</p>
<ol>
<li lang="en-AU" value="1">Click on Start and then Control Panel</li>
<li lang="en-AU" value="2">From the list of displayed item under Control Panel click on Power Options, which takes you to Select a power plan page (If you do not see Power Options, type the word 'power' in the Search Control Panel box and then select Choose a power plan.) .</li>
<li lang="en-AU">By default, the option to change power plans is disabled. To enable this, click the Change settings that are currently unavailable link.</li>
<li lang="en-AU">Choose the High Performance option</li>
<li lang="en-AU" value="5">Close the Power Option window.&nbsp;</li>
</ol>
<p><span style="color: #3366ff; font-size: medium;">Intel Turbo Boost Technology</span></p>
<p>Under some configurations and workloads, Intel&reg; Turbo Boost technology enables higher performance through the availability of increased core frequency (overclocking). Intel&reg; Turbo Boost technology automatically allows processor cores to run faster than the base operating frequency if the processor is operating below rated power, temperature, and current specification limits.&nbsp;</p>
<p>Turbo Boost should be enabled for servers hosting SQL Server. (my comment)</p>
<p><span style="color: #3366ff; font-size: medium;">Windows Server 2008 R2 Processor Performance Boost Policy</span></p>
<p>Intel Turbo Boost Technology is a feature that allows Intel processors to achieve additional performance when it is most useful (that is, at high system loads). However, this feature increases CPU core energy consumption, so Turbo Boost is configured based on the power policy that is in use and the specific processor implementation. Turbo Boost is enabled for High Performance power plans on all Intel processors and it is disabled for Power Saver power plans on all Intel processors.&nbsp; TurboBoost is disabled on Balanced power plans for some Intel processors. For future processors, this default setting might change depending on the energy efficiency of such features. To enable or disable the Turbo Boost feature, you must configure the Processor Performance Boost Policy parameter.&nbsp;</p>
<p>The Processor Performance Boost Policy is a percentage value from 0 to 100. The default value of this parameter is 49 percent on Balanced plans and 0 percent on Power Saver plans. Any value lower than 50 disables Turbo mode on some current Intel processors. To enable Turbo Mode, set this value to 50 or higher.&nbsp;</p>
<p>The following commands set Processor Performance Boost Policy to 100 on the current power plan. Specify the policy by using a GUID string, as shown below:</p>
<p><span style="font-family: courier new,courier;">Powercfg -setacvalueindex scheme_current sub_processor 45bcc044-d885-43e2-8605-ee0ec6e96b59 100</span></p>
<p><span style="font-family: courier new,courier;">Powercfg -setactive scheme_current&nbsp;</span></p>
<p>Note that you must run the powercfg -setactive command to enable the new settings. You do not need to reboot the server.</p>
<p>For more detail please review the relevant portions of Performance Tuning Guidelines for Windows Server 2008 R2 (<a href="http://msdn.microsoft.com/en-us/windows/hardware/gg463392.aspx">http://msdn.microsoft.com/en-us/windows/hardware/gg463392.aspx</a>).&nbsp;</p>
<p><span style="color: #3366ff;"><strong><span style="font-size: large;">Resources:</span></strong></span></p>
<p><strong>Intel Whitepaper: Intel Turbo Boost Technology in Intel Core Nehalem Processors</strong></p>
<p><a href="http://download.intel.com/design/processor/applnots/320354.pdf?iid=tech_tb+paper">http://download.intel.com/design/processor/applnots/320354.pdf?iid=tech_tb+paper</a>&nbsp;</p>
<p>Kevin Kline with some thoughts on hyperthreading on SQL Server 2005</p>
<p><strong>The Perils of Hyperthreading on SQL Server</strong></p>
<p><a href="http://www.sqlmag.com/article/sql-server/the-perils-of-hyperthreading-on-sql-server">http://www.sqlmag.com/article/sql-server/the-perils-of-hyperthreading-on-sql-server</a>&nbsp;</p>
<p>&nbsp;Slava Oks on hyperthreading on SQL Server 2000</p>
<p><strong>Be aware: To Hyper or not to Hyper</strong></p>
<p><a href="http://blogs.msdn.com/b/slavao/archive/2005/11/12/492119.aspx">http://blogs.msdn.com/b/slavao/archive/2005/11/12/492119.aspx</a></p>]]></content:encoded>
    </item>
    <item>
      <title>Virtualizing? You need more skills</title>
      <link>https://docs.microsoft.com/archive/blogs/sqladventurer/virtualizing-you-need-more-skills</link>
      <pubDate>Tue, 22 May 2012 13:15:00 GMT</pubDate>
      <dc:creator><![CDATA[SQLAdventurer]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/sqladventurer/2012/05/22/virtualizing-you-need-more-skills/</guid>
      <description><![CDATA[Latte Art
If you are planning on building a Private Cloud and virtualizing your SQL Servers there...]]></description>
      <content:encoded><![CDATA[<p><br /><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/51/61/0027.CIMG0101.jpg" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-51-61/0027.CIMG0101.jpg"><img border="0" alt="" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/51/61/0027.CIMG0101.jpg" original-url="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-51-61/0027.CIMG0101.jpg" width="331" height="398" /></a></p>
<p><span style="font-size: x-small;"><strong>Latte Art</strong></span></p>
<p>If you are planning on building a Private Cloud and virtualizing your SQL Servers there are some new skills you MUST acquire.&nbsp; In addition to all the skills you need to effectively manage your SQL Server instances and databases now you will need to be able to&nbsp;effectively manage the virtual environment that is hosting them.&nbsp; Even if you work in an environment where the management of the virtual environment is not under your control you&nbsp;need to know how it works.</p>
<p>You will thank me for making you learn this.</p>
<p>Some of the new tasks for managing a virtualized SQL Server Environment</p>
<div>
<table border="1" cellspacing="0" cellpadding="0" valign="top">
<tbody>
<tr>
<td>
<p>Virtualization</p>
</td>
<td>
<p>Windows Server w/&nbsp;Hyper-V</p>
</td>
</tr>
<tr>
<td>
<p>Monitoring</p>
</td>
<td>
<p>System Center Virtual Machine Manager (SCVMM)</p>
<p>System Center Operations manager (SCOM)</p>
<p>SCOM Management Packs</p>
</td>
</tr>
<tr>
<td>
<p>Physical to Virtual Migration</p>
</td>
<td>
<p>SCVMM</p>
</td>
</tr>
<tr>
<td>
<p>Minimize planned downtime</p>
</td>
<td>
<p>Windows Server Hyper-V Live Migration</p>
</td>
</tr>
<tr>
<td>
<p>Manage unplanned downtime</p>
</td>
<td>
<p>Guest Failover Clustering</p>
</td>
</tr>
<tr>
<td>
<p>Load balance across physical hosts</p>
</td>
<td>
<p>SCVMM</p>
</td>
</tr>
<tr>
<td>
<p>Standardize Server Builds</p>
</td>
<td>
<p>SCVMM VM Templates</p>
</td>
</tr>
<tr>
<td>
<p>Automate Server Provisioning</p>
</td>
<td>
<p>SCVMM Self-service portal</p>
</td>
</tr>
<tr>
<td>
<p>Measure Usage</p>
</td>
<td>
<p>SCVMM Self-service portal</p>
</td>
</tr>
<tr>
<td>
<p>Backup and Recovery of SQL Server Virtual Machines</p>
</td>
<td>
<p>Systems Center Data Protection Manager (DPM)</p>
</td>
</tr>
<tr>
<td>
<p>Patch Management</p>
</td>
<td>
<p>System Center Configuration Manager (SCCM)</p>
</td>
</tr>
</tbody>
</table>
</div>
<p>&nbsp;<span style="color: #0000ff; font-size: large;">Windows Hyper-V and Live Migration</span></p>
<p>Learn how to build and configure a Hyper-V environment with SQL Server guests. Learn this by doing it yourself.&nbsp;Learn how to create a guest&nbsp;VM, configure the CPUs, Memory, Networking and Storage. Learn about Cluster Shared Volumes (CSV).&nbsp; Know&nbsp;what Pass-Through vs. Fixed disks are and why Dynamic disks are not a good choice for SQL Server storage. Next, install SQL Server on it and install some test databases.&nbsp;Create a&nbsp;SQL Cluster. Implement AlwaysOn Availability Groups.&nbsp; You will need to know how the hypervisor manages memory and CPU and what the various configuration options do.&nbsp; You will need to know how each configuration option works and how it effects SQL Server. Practice cluster failovers and Availability Group failovers&nbsp;and Live Migration moves. Learn how to make them work in harmony. Push all the buttons, turn all the knobs.</p>
<p>"Planning, Implementing and Supporting SQL Server Virtualization with Windows Server 2008 R2 Hyper-V and Live Migration" <a href="http://technet.microsoft.com/en-us/library/ff898403(v=sql.105).aspx">http://technet.microsoft.com/en-us/library/ff898403(v=sql.105).aspx</a></p>
<p>&ldquo;Running SQL Server 2008 in a Hyper-V Environment &ndash; Best Practices and Performance Recommendations&rdquo; <a href="http://sqlcat.com/sqlcat/b/whitepapers/archive/2008/10/03/running-sql-server-2008-in-a-hyper-v-environment-best-practi">http://sqlcat.com/sqlcat/b/whitepapers/archive/2008/10/03/running-sql-server-2008-in-a-hyper-v-environment-best-practices-and-performance-recommendations.aspx</a></p>
<p><span style="color: #0000ff; font-size: large;">Managing the Environment</span></p>
<p>System Center 2012.&nbsp; Yes, you can try and monitor everything without using any tools other than your own scripts and PowerShell but why would you?</p>
<p>"System Center 2012 Capabilities Overview" <a href="http://www.microsoft.com/en-us/server-cloud/system-center/datacenter-management-capabilities.aspx">http://www.microsoft.com/en-us/server-cloud/system-center/datacenter-management-capabilities.aspx</a></p>
<p><span style="color: #0000ff; font-size: large;">Monitoring your virtual environment</span></p>
<p>System Center Virtual Machine Manager and Operations Manager with the right management packs will make your life much easier. Like learning to monitor SQL Server&nbsp;performance you need to understand what to monitor on both the host and the guest and what the values mean.&nbsp;</p>
<p>"Virtualization" <a href="http://technet.microsoft.com/en-us/sqlserver/Video/gg429826">http://technet.microsoft.com/en-us/sqlserver/Video/gg429826</a></p>
<p>"System Center Virtual Machine Manager 2012: VMM Gets Major Upgrade" <a href="http://technet.microsoft.com/en-us/magazine/hh300651.aspx">http://technet.microsoft.com/en-us/magazine/hh300651.aspx</a></p>
<p>System Center Monitoring Pack for System Center 2012&nbsp; - Virtual Machine Manager <a href="http://www.microsoft.com/en-us/download/details.aspx?id=29679">http://www.microsoft.com/en-us/download/details.aspx?id=29679</a></p>
<p><span style="color: #0000ff; font-size: large;">VM Templates</span></p>
<p>System Center Virtual Machine Manager will allow you to create guest machine templates so that you do not need to manually craft each and every precious SQL Server by hand.&nbsp; You will need to master not only the VM template abilities of SCVMM but now is the time to dig into sysprep for SQL Server if you have been putting this off.</p>
<p>"About Virtual Machine Templates" <a href="http://technet.microsoft.com/en-us/library/bb740838">http://technet.microsoft.com/en-us/library/bb740838</a></p>
<p>"Install SQL Server using SYSPREP" <a href="http://msdn.microsoft.com/en-us/library/ee210664.aspx">http://msdn.microsoft.com/en-us/library/ee210664.aspx</a></p>
<p>"SQL Server 2008 R2 Sysprep Step by Step" <a href="http://blogs.msdn.com/b/petersad/archive/2009/12/17/sql-server-2008-r2-sysprep-step-by-step.aspx">http://blogs.msdn.com/b/petersad/archive/2009/12/17/sql-server-2008-r2-sysprep-step-by-step.aspx</a></p>
<p><span style="color: #0000ff; font-size: large;">SCVMM Self Service Portal</span></p>
<p>The wisdom of allowing just anybody to create a SQL Server whenever they want may be questionable, but you need to get to know the SCVMM Self Service portal. Using this feature you can quickly provision new servers. The features supporting the self service portal also provide for usage tracking and charge back.&nbsp; Choosing to implement charge back is another heated debate but either way you go the Self Service portal will allow you track SQL Server usage and have some insight into where all that capacity is going.</p>
<p>"Virtual Machine Self Service" <a href="http://technet.microsoft.com/en-us/library/bb740810">http://technet.microsoft.com/en-us/library/bb740810</a></p>
<p><span style="color: #0000ff; font-size: large;">Backup and Restore - Data Protection Manager</span></p>
<p>Work with DPM and practice backing up and RESTORING your virtual environment.&nbsp; See how the DPM recovery interacts with your&nbsp;SQL Server&nbsp;restore and recovery plans&nbsp;and update your recovery plans accordingly.&nbsp; Learn how to recover from a wide variety of failures and practice, practice, practice.&nbsp; It is a lot easier to learn how to recover successfully and document the recovery&nbsp;before the next disaster (I say this a lot).</p>
<p>"DPM: Managing Hyper-V computers" <a href="http://technet.microsoft.com/en-us/library/hh757970">http://technet.microsoft.com/en-us/library/hh757970</a></p>
<p>&nbsp;</p>
<p>It is important for you, the SQL Server professional, to know how to host SQL Server on a Hyper-V environment.&nbsp; The virtualization specialists at your company may not be as well versed in the needs of SQL Server as you are and it will be your responsibility to make sure that the virtualization of your SQL Servers is performed to provide the best performance, availability and recovery for your clients. Virtualizing SQL Server is coming of age and there are more skills to learn to provide your customers with a reliable "it just works" SQL Server environment.</p>
<p>&nbsp;</p>]]></content:encoded>
    </item>
    <item>
      <title>SQL Server 2012 - CUs are Inevitable (T-SQL Tuesday #29)</title>
      <link>https://docs.microsoft.com/archive/blogs/sqladventurer/sql-server-2012-cus-are-inevitable-t-sql-tuesday-29</link>
      <pubDate>Tue, 10 Apr 2012 05:53:00 GMT</pubDate>
      <dc:creator><![CDATA[SQLAdventurer]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/sqladventurer/2012/04/10/sql-server-2012-cus-are-inevitable-t-sql-tuesday-29/</guid>
      <description><![CDATA[This T-SQL Tuesday is being&nbsp;hosted by Nigel Sammy. Enjoy.
Ever build a Slipstream install of...]]></description>
      <content:encoded><![CDATA[<p><a title="Host" href="http://www.nigelpsammy.com/2012/04/t-sql-tuesday-029-lets-have-sql-server.html"><img border="0" alt="" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/51/61/5481.T-SQLLogo.jpg" original-url="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-51-61/5481.T_2D00_SQLLogo.jpg" width="154" height="145" /></a></p>
<p>This T-SQL Tuesday is being&nbsp;hosted by <a href="http://www.nigelpsammy.com/p/about-me.html" target="_blank">Nigel Sammy</a>. Enjoy.</p>
<p>Ever build a Slipstream install of SQL Server?&nbsp; All that manual cut and move and pasting of little binary files here and there and everywhere it seems. Always felt so hands-on. Always wondered if it would actually work. Always had to update the thing.</p>
<p>Don't get me wrong it was a HUGE time saver if you were building several servers in the shop, but it did take a bit of extra time and testing. This was also a bit of a hidden feature. Not intentionally hidden, but not as well known as you would think. I know of a LOT of DBAs that are blissfully unaware of this installation option/technique. Bit of a shame.</p>
<p><span style="color: #666699; font-size: medium;">Product Update</span></p>
<p>SQL Server 2012 improves and extends the Slipstream concept by adding Product Update functionality right into the SQL Server installation process.</p>
<p>Product Update is on by default and has the ability to search Microsoft Update, use Windows Server Update Services, or a folder or network share for SQL Server updates.&nbsp; Any updates found get integrated into the setup process. No more building Slipstream installations. No more running the install and <em>then</em> the SP and <em>then</em> the CU. No more forgetting entirely to install service packs and updates.</p>
<p>By default SQL Server 2012 install will use Windows Update on the client and using its configuration (either Microsoft Update or WSUS) find whatever is the latest update;&nbsp;Service Pack, cumulative update (CU), or whatever combination of these is the latest patch level for SQL Server.</p>
<p>But what if you don't want the latest CU? What if the latest is not approved for use yet in your organization? What if I need to install the RTM? Never fear there are always choices.&nbsp; If you just run the setup without changing a thing it will use Windows Update to retrieve any updates either from WSUS or Microsoft Update and if any exist the install will stop and list all the updates it has found and allows you to opt out of the updates entirely. What about that second scenario? What if your organization very carefully approves updates and has a prescribed CU level for all SQL Servers? Then as each CU is approved for use it should be downloaded and placed in a common network share. Then SQL install can utilize the new&nbsp;UpdateSource parameter to search in the specified network share for SQL updates.</p>
<p>The Product Update feature by default is enabled and uses the client's Windows Update settings.&nbsp; If you wish to either disable Product Update entirely or you wish to seek updates from a folder or network share then you will need to specify input parameters to the setup process.</p>
<p>There are two parameters;</p>
<ul>
<li>/UpdateEnabled=True|False - allows you to turn off the Product Update feature</li>
<li>/UpdateSource="MU"|local folder path or UNC path containing downloaded updates</li>
</ul>
<p>There are three ways to specify input parameters for SQL Server 2012 setup;</p>
<ol>
<li>Command line installation</li>
<li>Place the parameters in a ConfigurationFile.ini and start the install from the command line specifying that configuration file</li>
<li>Modify the DefaultSetup.ini file in /x86 or /x64 folder at the root of the installation media</li>
</ol>
<p>Which you choose will have a lot to do with your organization.&nbsp;If everyone uses&nbsp;the same installation media, modifying<br />DefaultSetup.ini may be the best choice.&nbsp; If everything is scripted, placing the parameters right in the script or in a configuration file used in the script may be the best<br />choice.&nbsp;</p>
<p>Not many updates for SQL Server 2012 yet&nbsp;&lt;wink&gt; but this new feature has the potential to streamline your installation process, reduce the complexity of your SQL Server<br />installations and reduce the risk of updates not being applied properly.</p>
<p>More can be found <a href="http://msdn.microsoft.com/en-us/library/hh231670.aspx">here</a>.</p>]]></content:encoded>
    </item>
    <item>
      <title>Magical Database Monitoring</title>
      <link>https://docs.microsoft.com/archive/blogs/sqladventurer/magical-database-monitoring</link>
      <pubDate>Fri, 30 Mar 2012 13:08:00 GMT</pubDate>
      <dc:creator><![CDATA[SQLAdventurer]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/sqladventurer/2012/03/30/magical-database-monitoring/</guid>
      <description><![CDATA[This weeks photo is from Jersey City,NJ looking across the Hudson River
(Scene One: Office of the...]]></description>
      <content:encoded><![CDATA[<p><em><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/51/61/1351.P1010564.jpg" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-51-61/1351.P1010564.jpg"><img border="0" alt="" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/51/61/1351.P1010564.jpg" original-url="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-51-61/1351.P1010564.jpg" /></a></em></p>
<p><span style="font-size: x-small;"><em>This weeks photo is from Jersey City,NJ looking across the Hudson River</em></span></p>
<p><em>(Scene One: Office of the DBA)</em></p>
<p><em>Enter: Friendly SQL Adventurer ready to help you be more pro-active in your management of your enormous SQL Server landscape.</em></p>
<p style="padding-left: 30px;"><span style="color: #993300;">Has your company invested in a database monitoring tool?&nbsp; Something that will give you "live" performance information and alert you when specified thresholds have been exceeded?&nbsp; Something that is watching all of your SQL Agent jobs and will let you know if one is running too long or has failed?&nbsp; Something that allows you to configure all kinds of different profiles and classes of servers and levels of service?</span></p>
<p style="padding-left: 30px;"><span style="color: #993300;">You have one of these - wonderful!</span></p>
<p style="padding-left: 30px;"><span style="color: #993300;">Have you configured it for your environment?</span></p>
<p style="padding-left: 30px;"><span style="color: #993300;">Yes? Good, let's take a look&hellip;</span></p>
<p style="padding-left: 30px;"><span style="color: #993300;">Umm..</span></p>
<p style="padding-left: 30px;"><span style="color: #993300;">Okay, I see you have adjusted the performance alert thresholds&hellip;.</span></p>
<p style="padding-left: 30px;"><span style="color: #993300;">So, you really only want to be paged when the CPU usage gets over 98%?</span></p>
<p style="padding-left: 30px;"><span style="color: #993300;">Oh, you&nbsp; got tired of getting an alert for every little spike.</span></p>
<p style="padding-left: 30px;"><span style="color: #993300;">Did you know that you can configure this to only&nbsp;alert you when&nbsp;the threshold is exceeded for a specified duration?</span></p>
<p style="padding-left: 30px;"><span style="color: #993300;">No?&nbsp; Okay, well you can configure this to alert you when CPU usage gets over 80% for 5 min.</span></p>
<p style="padding-left: 30px;"><span style="color: #993300;">Yes, that would be better.</span></p>
<p style="padding-left: 30px;"><span style="color: #993300;">&nbsp;</span></p>
<p style="padding-left: 30px;"><span style="color: #993300;">So, I see you have divided your servers up into Dev, Test and Production. That's great.</span></p>
<p style="padding-left: 30px;"><span style="color: #993300;">I see they are all using the same performance profile.</span></p>
<p style="padding-left: 30px;"><span style="color: #993300;">You didn&rsquo;t know you could create different profiles? Okay here let me show you&hellip;.</span></p>
<p style="padding-left: 30px;"><span style="color: #993300;">&nbsp;</span></p>
<p style="padding-left: 30px;"><span style="color: #993300;">You say you got this great tool and set it all up and added all your SQL Servers, but it alerted and paged you all the time so you adjusted some of the settings.</span></p>
<p style="padding-left: 30px;"><span style="color: #993300;">Kind of looks like you adjusted them so that they would never go off unless the building was on fire.</span></p>
<p style="padding-left: 30px;"><span style="color: #993300;">Ah, yes.&nbsp; I don't like to be paged unnecessarily either.</span></p>
<p style="padding-left: 30px;"><span style="color: #993300;">&nbsp;</span></p>
<p style="padding-left: 30px;"><span style="color: #993300;">Let's sit down and do a little analysis of your environment ...</span></p>
<p>&nbsp;</p>
<p><span style="color: #3366ff; font-size: large;"><strong>Three Part Harmony</strong></span></p>
<p>Before you even start to look at monitoring tools you need to know what you want to know and when you want to know it.</p>
<p>The first step to monitoring your environment is creating a detailed list of what you need to know.&nbsp; For which servers this information is important?&nbsp; What is the priority when everything is going wrong at once? Other environmental factors will need to be identified such as&nbsp;the lead time to allocate more disk space.</p>
<p>For example, remaining physical disk space for the production backup storage location is very important or your backups will start to fail. You'll want to be notified when&nbsp;it is getting low with enough lead time that you can do something about it.&nbsp; If it takes six months to get more disk space then you need to know six months before your backup jobs start to fail that you need more space.</p>
<p>Generally, performance problems are more important to production environments then to development environments. Adjust your thresholds accordingly.</p>
<p>You get the idea.</p>
<p>I believe that you should monitor all of your environments, even development.&nbsp; The dev SQL Servers are important for the developers&nbsp;to be able to do their work - they are <em>production</em> to the developers.&nbsp;If they are not performing well you will need to handle it.&nbsp; It is important to monitor test servers too.&nbsp; You will be able to catch poorly performing components or badly configured SQL Servers before they get to production.&nbsp; If your test environment is supposed to be <em>just like</em> production that should include the monitoring.&nbsp; This will allow you to take the performance you saw in test and compare it to what is being observed in production.</p>
<p>Take the time to identify each SQL Server - server, instance and database -&nbsp;and detail how it should be monitored,&nbsp;what should be monitored, the urgency, and who will be responsible for responding to issues.</p>
<p>Now, choose a tool. And here is the important bit&hellip;</p>
<p><strong>Learn how to use it.</strong></p>
<p>All of the available tools do a lot of things, but not by magic. You need to make the investment in learning how to fully utilize the tools you have chosen.&nbsp; I know we all want to find a monitoring tool that will just be magical and solve all of our monitoring and alerting problems with little or no effort or configuration.</p>
<p><span style="color: #3366ff; font-size: large;"><strong>In Tune</strong></span></p>
<p>Any monitoring tool will come with a set of default monitoring parameters. Most tools you can just install, let them discover your SQL Servers and let 'er rip!&nbsp; Your inbox will be full in no time.&nbsp;</p>
<p>Go to that work you did before you purchased the tool and configure it to work for <em>you</em> and proactively alert to <em>your</em> specifications.&nbsp;</p>
<p>Monitoring tools are VERY worth the investment. Realize that the investment is not just in dollars spent to acquire the tool but in analyzing your environment to identify HOW and WHAT to monitor and investing in developing the skills to make full use of the tools you have chosen.</p>
<p>By thoughtfully designing a&nbsp;monitoring plan, becoming skilled with your chosen&nbsp;tool set,&nbsp;and configuring for your environment you will have created a monitoring environment that has solved all of your alerting and monitoring problems -&nbsp;just like magic.</p>
<p>&nbsp;</p>]]></content:encoded>
    </item>
    <item>
      <title>VSUS (VLF Segments of Unusual Size)</title>
      <link>https://docs.microsoft.com/archive/blogs/sqladventurer/vsus-vlf-segments-of-unusual-size</link>
      <pubDate>Fri, 23 Mar 2012 15:08:31 GMT</pubDate>
      <dc:creator><![CDATA[SQLAdventurer]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/sqladventurer/2012/03/23/vsus-vlf-segments-of-unusual-size/</guid>
      <description><![CDATA[Enjoying another little train trip around an airport.

and while waiting around for my flight I...]]></description>
      <content:encoded><![CDATA[<p>Enjoying another little train trip around an airport.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/51/61/4452.CIMG0028.jpg" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-51-61/4452.CIMG0028.jpg"><img border="0" alt="" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/51/61/4452.CIMG0028.jpg" original-url="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-51-61/4452.CIMG0028.jpg" /></a></p>
<p>and while waiting around for my flight I thought I would try and tackle fixing that 16 VLF&nbsp;segments of&nbsp;16 GB each&nbsp;situation I described in&nbsp;my previous <a href="http://blogs.msdn.com/b/sqladventurer/archive/2012/03/16/if-gt-50-vlfs-are-bad-then-16-is-good-right.aspx">blog</a> post.</p>
<p>You might just think "well that should be just like fixing the too many VLFs issue, just shrink it down and grow it back up".&nbsp;</p>
<p>There is a bit of a hitch to this. That #1 VLF segment in the primary transaction log file is sticky.</p>
<p>You cannot get rid of that first 16 GB VLF without dropping the log entirely and I do not recommend that. Ever. Not if you love your data.</p>
<p>Here are the factors that make this first VLF segment "sticky";</p>
<ol>
<li>SHRINKFILE will only shrink in VLF sized increments.</li>
<li>SHRINKFILE will&nbsp; not shrink your transaction log to fewer than 2 VLF segments.</li>
<li>You cannot REMOVE the primary transaction log file (that is the transaction log file that was created during the original&nbsp;CREATE DATABASE statement)</li>
</ol>
<p style="text-align: left;"><span style="color: #ff0000;">Msg 5020, Level 16, State 1, Line 1</span></p>
<p style="text-align: left;"><span style="color: #ff0000;">The primary data or log file cannot be removed from a database.</span></p>
<p>So, what can you do</p>
<p>Well, using the technique below you can get to a log file with the all but the first VLF down to the size you desire. Please note that I did not create a transation log of 256 GB to test this technique. I am not that patient.</p>
<p>Start by freeing up as much as you can by either running a transaction log backup (FULL) or CHECKPOINT (SIMPLE).</p>
<p>Run</p>
<p><span style="color: #3366ff;">DBCC</span> LOGINFO(VLFTEST)</p>
<p>To see what you have to work with.&nbsp; The number of rows indicates the number of VLF segments your log has.&nbsp; Take note of where the lowest VLF of Status 2 is located.</p>
<p>When the first VLF segment is the only VLF with a status of 2 (like pictured below), shrink the primary transaction log file down to two VLFs</p>
<p></p>
<p></p>
<p>&nbsp;[Just a note here.&nbsp; Shrink can only release VLMs up to the "lowest" one. If your lowest #2 is down the list a ways it you will have to wait around for enough transactions to go through for the log for it to wrap back around to the front. Depending upon the workload of your system you may need to be patient (Yes, you could do something like create a temp table and INSERT and DELETE a bunch of data into it to get your transaction log to roll around, but this may introduce unwanted risk into a production system and waiting may be a better choice).]</p>
<p><span style="color: #3366ff;">DBCC</span> SHRINKFILE (VLFTEST_LOG, 1)</p>
<p>You should be rewarded with 2 VLFs left</p>
<p><img border="0" alt="" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/51/61/1881.Image2.png" original-url="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-51-61/1881.Image2.png" /></p>
<p>Now, remember that it will not let you have fewer than 2 VLFs so to trick it we will temporarily add a second transaction log file</p>
<p>ALTER DATABASE VLFTEST</p>
<p>&nbsp;&nbsp;&nbsp; ADD LOG FILE (NAME=VLFTEST_LOG2,</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\VLFDATA_Log2.ldf',</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SIZE = 100 MB)</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/51/61/8802.Image3.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-51-61/8802.Image3.png"><img border="0" alt="" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/51/61/8802.Image3.png" original-url="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-51-61/8802.Image3.png" /></a></p>
<p></p>
<p>Shrink the primary transaction log file again and it will get down to 1 VLF segment in the first file</p>
<p><span style="color: #3366ff;">DBCC</span> SHRINKFILE (VLFTEST_LOG, 1)</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/51/61/4645.Image4.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-51-61/4645.Image4.png"><img border="0" alt="" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/51/61/4645.Image4.png" original-url="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-51-61/4645.Image4.png" /></a></p>
<p></p>
<p>Using a series of ALTER DATABASE MODIFY FILE statements grow primary transaction log file out to the size and VLFcount you&nbsp;desire (like&nbsp;480 512 MB VLF segments plus that first 16 GB segment for last week's example).</p>
<p>And finally, remove that second log file shrink that second transaction log file with EMPTYFILE option to move everything back into the primary file.</p>
<p><span style="color: #3366ff;">DBCC</span> SHRINKFILE (VLFTEST_LOG2, EMPTYFILE)</p>
<p>Now remove the unwanted second transaction log file</p>
<p>ALTER DATABASE VLFTEST</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; REMOVE FILE VLFTEST_LOG2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</p>
<p>You should be left with your desired number of VLF segments in the primary transaction log file with only the first segment being&nbsp;a segment of unusual size.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/51/61/2337.Image5.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-51-61/2337.Image5.png"><img border="0" alt="" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/51/61/2337.Image5.png" original-url="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-51-61/2337.Image5.png" /></a></p>
<p>If anyone knows of a method to "resize" that first VLF segment that does not involve dropping the database or log in some fashion please drop me a line.</p>
<p>&nbsp;</p>]]></content:encoded>
    </item>
    <item>
      <title>If &gt; 50 VLFs are bad, then 16 is good, right?</title>
      <link>https://docs.microsoft.com/archive/blogs/sqladventurer/if-50-vlfs-are-bad-then-16-is-good-right</link>
      <pubDate>Fri, 16 Mar 2012 11:01:00 GMT</pubDate>
      <dc:creator><![CDATA[SQLAdventurer]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/sqladventurer/2012/03/16/if-50-vlfs-are-bad-then-16-is-good-right/</guid>
      <description><![CDATA[Exhibit A:
&nbsp;256 GB transaction log file with 16 VLFs.&nbsp; Doing the quick math that would...]]></description>
      <content:encoded><![CDATA[<p><span style="color: #000000;"><strong>Exhibit A:</strong></span></p>
<p>&nbsp;256 GB transaction log file with 16 VLFs.&nbsp; Doing the quick math that would make each VLF 16GB.&nbsp; 16 x 16GB VLFs = 256GB transaction log. (yes, that <em>is</em> a&nbsp;large transaction log)</p>
<p>All this guidance I see says 50 VLFs would&nbsp;be too many.</p>
<p>Okay, not too many VLFs, so we should be fine&hellip; Matter of fact, if 50 is too many isn't 16 awesome?</p>
<p>Well, no.&nbsp;</p>
<p>If you have too few VLFs, and more importantly VLFs that are<em> too big</em>, you will see poor performance from any of the processes that need to process these big VLFs.&nbsp; These include your transaction log backups, transactional replication and database mirroring.</p>
<p>Transaction log backups will suffer when a large VLFs is finally filled and inactive, ready for backup and clearing.&nbsp; In the above example 16GB of log will have to backup and a 16GB chunk of log will need to be cleared for reuse.&nbsp; How fast is your backup environment?</p>
<p>Transactional replication processes the transaction log using the Log Reader.&nbsp; Only committed transactions are replicated so it has to process through 1 or more 16GB VLFs (depending on how large the transaction was). These very large VLFs can cause additional latency in your replication.&nbsp;</p>
<p>Database mirroring sends to its mirroring partner committed transactions extracted by the logging system itself&nbsp; within the Storage Engine. The logging system is also going to feel the burden of an enormous VLF. &nbsp;</p>
<p>Now consider a system that is replicating and mirroring - ouch!</p>
<p>So how do you find the&nbsp; size/count balance?</p>
<p>First, evaluate how many VLFs a transaction log has (DBCC LOGINFO) and run a sanity check and see if it is a reasonable number for the file size.</p>
<p>Both 16 VLFs for a 256GB transaction log and 39 VLFs for a 11 MB transaction log fail the sanity check.</p>
<p>Next,&nbsp; how big is each VLF? This is also in DBCC LOGINFO.&nbsp; You will notice that the segments are probably not all exactly equally sized and the individual sizes may vary quite a bit.&nbsp; This is the nature of how transaction log files are sized and grow and there are excellent details on this in&nbsp; Kimberly Tripp's &nbsp;[<a href="http://www.sqlskills.com/BLOGS/KIMBERLY/">blog</a>|<a href="https://twitter.com/KimberlyLTripp">twitter</a>]&nbsp; blog <a href="http://www.sqlskills.com/BLOGS/KIMBERLY/post.aspx?id=25d9ac88-07a6-4ec0-a999-36461dbed2cc">here</a>.&nbsp;</p>
<p>Is the size too big for an efficient transaction log backup (or log reader) process?</p>
<p>I have had excellent success with VLFs sized around 500 MB, but for large transaction logs this may create too many VLFs.&nbsp;</p>
<p>Taking Exhibit A, let's examine our options;</p>
<ul>
<li>Keeping our VLF count to 50 will give us VLFs around 5GB is size</li>
<li>Creating 512 MB VLFs will create 512 VLFs</li>
</ul>
<ul>
<li>A 1 GB VLF will give you 256 VLFs</li>
<li>A 2 GB VLF will give you 128 VLFs</li>
</ul>
<p>In this specific example the transaction rate, whether replication or mirroring is in use, whether clustering is in use, the frequency of the transaction log backups and the throughput of the transaction log backup process needs to be analyzed to identify the best VLF size/count combination for this environment.&nbsp;</p>
<p>When all is said and done, okay, so there are more than 50 VLFs,&nbsp; but each VLF is sized so that there are no performance issues with the transaction log backups and the number of VLFs is<strong> reasonable for the total transaction log file size</strong> and no where near the "so many it is painfully funny" realm that results in recovery and other problems.</p>
<p>&nbsp;</p>
<p><span style="color: #333399;"><strong>Corrected 4/9/13:</strong> Thanks to Paul Randal of <a href="http://www.SQLskills.com/"><span style="color: #333399;">SQLskills.com</span></a> (<a href="http://www.SQLskills.com/blogs/paul"><span style="color: #333399;">Blog</span></a> | <a href="https://twitter.com/PaulRandal"><span style="color: #333399;">Twitter</span></a>) for reading my blog and pointing out an error on how database mirroring gets its transaction log entries.&nbsp; As usual every time I interact with Paul I learn something.</span></p>]]></content:encoded>
    </item>
    <item>
      <title>Up in the Air</title>
      <link>https://docs.microsoft.com/archive/blogs/sqladventurer/up-in-the-air</link>
      <pubDate>Fri, 09 Mar 2012 14:44:23 GMT</pubDate>
      <dc:creator><![CDATA[SQLAdventurer]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/sqladventurer/2012/03/09/up-in-the-air/</guid>
      <description><![CDATA[Airplanes with Props
One of my favorite short flights is the flight from Seattle, WA to Portland,...]]></description>
      <content:encoded><![CDATA[<p><span style="color: #333399; font-size: large;">Airplanes with Props</span></p>
<p><span style="font-size: large;"></span>One of my favorite short flights is the flight from <span style="color: #000000;">Seattle</span>, WA to Portland, OR.</p>
<p>If the weather cooporates you can get views like this;</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/51/61/8713.CIMG0011.jpg" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-51-61/8713.CIMG0011.jpg"><img border="0" alt="" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/51/61/8713.CIMG0011.jpg" original-url="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-51-61/8713.CIMG0011.jpg" /></a></p>
<p style="text-align: left;"><strong>Mt. Rainier</strong></p>
<p>There are a number of things I like about this flight.&nbsp; First, I like airplanes with props - just something about them. Second, this flight is so short that as soon as you clear the mountains you start coming back down.&nbsp; I don't know what the altitude gets up to but it is not very high. That leads to third,&nbsp; I love looking out the window and seeing the world from above.&nbsp; I grew up around here so I can name all the mountains and rivers and lakes along the way.&nbsp; I am fascinated by the shape of the land and seeing the effects of vulcanism, wind, water and time on the landscape.</p>
<p>This flight was particularly nice.&nbsp; Late afternoon the sun was just setting and the morning's snowstorm had just blown itself out..</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/51/61/0250.CIMG0016.jpg" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-51-61/0250.CIMG0016.jpg"><img border="0" alt="" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/51/61/0250.CIMG0016.jpg" original-url="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-51-61/0250.CIMG0016.jpg" /></a></p>
<p><strong>Mt. Saint Helens (that's Mt. Adams in the background)</strong></p>
<p><span style="color: #333399; font-size: large;">What are we going to see here?</span></p>
<p><span style="font-size: large;"></span>In this blog I will be covering SQL Server technical topics focusing primarily on the relational engine, database design and development and query performance.&nbsp; It will be driven primarily by the work I do as a SQL Server specialist in&nbsp;the Microsoft Operations Consulting team.&nbsp; Microsoft classifies me as "non-location specific" which means I travel. All... The... Time. I have the opportulity to assist and consult all over the country for an incredible variety of SQL Server customers.&nbsp;My clients come in all shapes and sizes and so do their SQL Server environments.&nbsp; One week I may be&nbsp;coaching performance monitoring to a brand new accidental DBA and the next week trying to eek out the absolute fastest data load for a 2 TB table with a team that has already tried everything they can think of. My job is not boring.</p>
<p>There will also be blogs like this one that are not technical at all.</p>
<p>Let the adventure begin!</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/51/61/3312.SQLAdventurer21.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-51-61/3312.SQLAdventurer21.png"><img border="0" alt="" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/51/61/3312.SQLAdventurer21.png" original-url="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-51-61/3312.SQLAdventurer21.png" width="84" height="74" /></a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>]]></content:encoded>
    </item>
  </channel>
</rss>