<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Clustering Archives - The SERO Group</title>
	<atom:link href="https://theserogroup.com/tag/clustering/feed/" rel="self" type="application/rss+xml" />
	<link>https://theserogroup.com/tag/clustering/</link>
	<description>SQL Servers Healthy, Secure, And Reliable</description>
	<lastBuildDate>Tue, 16 Dec 2025 18:34:56 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9</generator>

<image>
	<url>https://theserogroup.com/wp-content/uploads/2024/07/cropped-Canister-only-1-32x32.png</url>
	<title>Clustering Archives - The SERO Group</title>
	<link>https://theserogroup.com/tag/clustering/</link>
	<width>32</width>
	<height>32</height>
</image> 
<site xmlns="com-wordpress:feed-additions:1">121220030</site>	<item>
		<title>Why Quiet Reflection Leads to Better IT Strategy Decisions</title>
		<link>https://theserogroup.com/azure/why-quiet-reflection-leads-to-better-it-strategy-decisions/</link>
		
		<dc:creator><![CDATA[Joe Webb]]></dc:creator>
		<pubDate>Wed, 17 Dec 2025 13:00:04 +0000</pubDate>
				<category><![CDATA[Azure]]></category>
		<category><![CDATA[Data Security]]></category>
		<category><![CDATA[DBA]]></category>
		<category><![CDATA[Events]]></category>
		<category><![CDATA[Professional Development]]></category>
		<category><![CDATA[SQL Community]]></category>
		<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[SQL Server Consulting]]></category>
		<category><![CDATA[The Sero Group]]></category>
		<category><![CDATA[Clustering]]></category>
		<category><![CDATA[Clusters]]></category>
		<category><![CDATA[Database]]></category>
		<category><![CDATA[Database Administration]]></category>
		<category><![CDATA[Database Development]]></category>
		<category><![CDATA[IT Manager]]></category>
		<category><![CDATA[Microsoft Azure]]></category>
		<category><![CDATA[Public Speaking]]></category>
		<category><![CDATA[Script Library]]></category>
		<category><![CDATA[Sero]]></category>
		<category><![CDATA[Sero Group]]></category>
		<category><![CDATA[Serogroup]]></category>
		<category><![CDATA[Shared Disks]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[SQL Assessment]]></category>
		<category><![CDATA[SQL Audit]]></category>
		<category><![CDATA[SQL Conference]]></category>
		<category><![CDATA[SQL Consultant]]></category>
		<category><![CDATA[SQL Events]]></category>
		<category><![CDATA[SQL Security]]></category>
		<category><![CDATA[SQL Server Consultant]]></category>
		<category><![CDATA[SQL Server Management]]></category>
		<category><![CDATA[SQL Training]]></category>
		<category><![CDATA[TempDB]]></category>
		<guid isPermaLink="false">https://theserogroup.com/?p=7691</guid>

					<description><![CDATA[<p>Last Saturday, I woke up before dawn to a quiet house. My family was still asleep, as I’m the only morning person in our household. The Christmas tree lights cast a warm glow across the room, and I was alone with my thoughts and a hot cup of coffee. No urgent emails, no fire drills,&#8230; <br /> <a class="read-more" href="https://theserogroup.com/azure/why-quiet-reflection-leads-to-better-it-strategy-decisions/">Read more</a></p>
<p>The post <a href="https://theserogroup.com/azure/why-quiet-reflection-leads-to-better-it-strategy-decisions/">Why Quiet Reflection Leads to Better IT Strategy Decisions</a> appeared first on <a href="https://theserogroup.com">The SERO Group</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Last Saturday, I woke up before dawn to a quiet house. My family was still asleep, as I’m the only morning person in our household. The Christmas tree lights cast a warm glow across the room, and I was alone with my thoughts and a hot cup of coffee. No urgent emails, no fire drills, no meetings starting in five minutes. Just space to think.</p>



<p>As I sat there, I ended up reflecting back on 2025. I found myself gravitating to these three questions:</p>



<ul class="wp-block-list">
<li>What went well this year?</li>



<li>What did I learn?</li>



<li>What should I focus on next year?</li>
</ul>



<p>If you’re a leader, I’m guessing you rarely get this kind of thinking time during your workday. I know I don’t. Our calendars are packed with calls, team meetings, and those &#8220;quick questions” that turn into two-hour troubleshooting sessions.</p>



<p>But here&#8217;s what I&#8217;ve learned: <strong>the quality of your strategic decisions is directly tied to the quality of your thinking time.</strong></p>



<p>And thinking time doesn&#8217;t happen by accident. You have to protect it.</p>



<h3 class="wp-block-heading" id="h-what-went-well-this-year">What Went Well This Year?</h3>



<p>When I asked myself this question, I didn&#8217;t think about our biggest projects or flashiest achievements. I didn&#8217;t think about when we migrated almost 2,000 databases as part of an upgrade project. Or the performance tuning we did that resulted in a $36,000 reduction in annual Azure spend for a client. </p>



<p>Instead, I thought about the relationships we strengthened. The trust we built with clients. The problems we solved before they became crises.</p>



<p>For you, this might look like:</p>



<ul class="wp-block-list">
<li>The audit that went smoothly because your security documentation was solid</li>



<li>The successful disaster recovery test that was possible because you kept refining the process</li>



<li>The team member you mentored who&#8217;s now ready for more responsibility</li>



<li>The support resources you provided your team through a trusted partner</li>
</ul>



<p>These aren&#8217;t always the things that make it into board reports. But they&#8217;re the foundation that everything else is built on.</p>



<h3 class="wp-block-heading" id="h-what-did-i-learn">What Did I Learn?</h3>



<p>This year reminded me of something Eisenhower once said: <strong>&#8220;Plans are worthless, but planning is everything.&#8221;</strong></p>



<p>The need for planning cannot be overstated. It&#8217;s critical. Even if the plan doesn&#8217;t always work out the way you intended. </p>



<p><strong>The plan itself wasn&#8217;t the point. The thinking I did while creating the plan was the point.</strong></p>



<p>Because I’d thought through our capacity, our ideal client profile, and our service delivery model, I could adjust quickly when reality didn’t match my spreadsheet. I knew which opportunities were a good fit for us and which ones to let go. Because we’ve intentionally built a small but incredibly talented team that genuinely wants to see our clients succeed, we were able to identify and create ways to help them.</p>



<p>I watched the same dynamic play out with clients. The institutions that had documented their SQL Server environments, tested their disaster recovery plans, and mapped their compliance requirements adapted quickly when needed. They were positioned for success even when the unexpected happened.</p>



<p>Planning isn&#8217;t about predicting the future. It&#8217;s about <strong>building the muscle memory to respond when the future surprises you.</strong></p>



<p>What did you learn this year about planning and adapting? Maybe it was:</p>



<ul class="wp-block-list">
<li>That your three-year technology roadmap needs quarterly reviews, not just annual ones</li>



<li>That the disaster recovery plan sitting in a SharePoint folder isn&#8217;t the same as a tested DR plan</li>



<li>That &#8220;we&#8217;ll address that next quarter&#8221; eventually becomes &#8220;why didn&#8217;t we address this sooner?&#8221;</li>



<li>That having an expert on call beats having a plan to find an expert when something breaks</li>
</ul>



<p>These lessons matter. Write them down. They&#8217;re not just hindsight—they&#8217;re your blueprint for better decisions ahead.</p>



<h3 class="wp-block-heading" id="h-what-should-i-focus-on-next-year">What Should I Focus On Next Year?</h3>



<p>For me, the answer was clear: <strong>I need to help more financial institutions and healthcare organizations understand that they have options.</strong> Most CIOs think they have two choices for database management: hire a full-time DBA (expensive and hard to find) or make do with whoever can &#8220;figure it out&#8221; (risky and unsustainable).</p>



<p>There&#8217;s a third option: fractional DBA services that give you expert oversight without the full-time price tag. </p>



<p>For you, your focus might be different. Maybe it&#8217;s:</p>



<ul class="wp-block-list">
<li>Finally getting your SQL Server environment documented and audit-ready</li>



<li>Building a disaster recovery plan that you&#8217;ve actually tested</li>



<li>Move a little further along the <a href="https://theserogroup.com/data-strategy/sql-server-maturity-curve-how-banks-move-from-reactive-risk-to-strategic-advantage/">SQL Server Maturity Curve</a></li>



<li>Finding a partner who understands banking compliance, not just databases</li>
</ul>



<p>Whatever it is, the key is to actually choose something. Not everything. Something. And move toward it. Make progress.</p>



<h3 class="wp-block-heading" id="h-the-power-of-quiet-reflection">The Power of Quiet Reflection</h3>



<p>Here&#8217;s the thing about those early Saturday morning moments: they&#8217;re rare. And precious. </p>



<p>During the week, we’re in execution mode. We’re responding, reacting, solving, and fixing. That’s necessary work. But it’s not strategic work.</p>



<p>Strategic work requires space. It requires stepping back from the urgent to focus on the important.</p>



<p>So, here&#8217;s my challenge to you as we wind down 2025 and usher in the new year:</p>



<h3 class="wp-block-heading" id="h-block-off-time-just-to-think-then-protect-it">Block Off Time Just to Think, Then Protect It</h3>



<p>Maybe it&#8217;s Saturday mornings before your family wakes up. Maybe it&#8217;s a long walk at lunch. Maybe it&#8217;s 90 minutes with your calendar blocked and your office door closed. </p>



<p>Whatever it is, protect it. The decisions you make during that quiet time about where to focus, what risks to address, and which partnerships to invest in will help shape your entire year.</p>



<h3 class="wp-block-heading" id="h-your-turn">Your Turn</h3>



<p>As you think about the year ahead, I&#8217;d encourage you to ask yourself those three questions:</p>



<ol class="wp-block-list">
<li>What went well this year? Celebrate it. Learn from it.</li>



<li>What did I learn? Write it down. It&#8217;s wisdom you paid for.</li>



<li>What should I focus on next year? Pick one or two things. Not everything.</li>
</ol>



<p>And if one of those focus areas is &#8220;finally get our SQL Server environment to a place where I&#8217;m confident, not just hopeful,&#8221; let&#8217;s talk. That&#8217;s exactly what we help institutions do.</p>



<p>If you&#8217;re a CIO wondering whether your SQL Server environment is as healthy and secure as it should be, I&#8217;d be happy to have a conversation. No sales pitch. Just two people talking candidly about database management. <a href="https://theserogroup.com/contact-us/" target="_blank" rel="noreferrer noopener">Schedule a time here</a>.</p>
<p>The post <a href="https://theserogroup.com/azure/why-quiet-reflection-leads-to-better-it-strategy-decisions/">Why Quiet Reflection Leads to Better IT Strategy Decisions</a> appeared first on <a href="https://theserogroup.com">The SERO Group</a>.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">7691</post-id>	</item>
		<item>
		<title>How to Build SQL Server FCIs in AWS with Multi-Attach EBS Volumes</title>
		<link>https://theserogroup.com/sql-server/how-to-build-sql-server-fcis-in-aws-with-multi-attach-ebs-volumes/</link>
		
		<dc:creator><![CDATA[Luke Campbell]]></dc:creator>
		<pubDate>Wed, 18 Dec 2024 13:00:00 +0000</pubDate>
				<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[Clustering]]></category>
		<category><![CDATA[Clusters]]></category>
		<category><![CDATA[Database]]></category>
		<category><![CDATA[Database Administration]]></category>
		<category><![CDATA[Microsoft Azure]]></category>
		<category><![CDATA[Serogroup]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[SQL Server Management]]></category>
		<guid isPermaLink="false">https://theserogroup.com/?p=6945</guid>

					<description><![CDATA[<p>Need to build a SQL Server FCI in AWS but prefer not to use FSx for Windows File Server? Good news, you have other options. One option that more closely aligns with traditional FCIs that use shared disks is Multi-Attach EBS volumes. Multi-Attach EBS volumes in AWS enable organizations to use Windows Server Failover Clusters&#8230; <br /> <a class="read-more" href="https://theserogroup.com/sql-server/how-to-build-sql-server-fcis-in-aws-with-multi-attach-ebs-volumes/">Read more</a></p>
<p>The post <a href="https://theserogroup.com/sql-server/how-to-build-sql-server-fcis-in-aws-with-multi-attach-ebs-volumes/">How to Build SQL Server FCIs in AWS with Multi-Attach EBS Volumes</a> appeared first on <a href="https://theserogroup.com">The SERO Group</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Need to build a SQL Server FCI in AWS but prefer not to use FSx for Windows File Server?  Good news, you have other options.  One option that more closely aligns with traditional FCIs that use shared disks is Multi-Attach EBS volumes.</p>



<p>Multi-Attach EBS volumes in AWS enable organizations to use Windows Server Failover Clusters with shared storage. Attaching a single EBS (Elastic Block Store) to multiple EC2 instances simultaneously makes them ideal for SQL Server FCIs.</p>



<h2 class="wp-block-heading" id="h-what-are-multi-attach-ebs-volumes">What are Multi-Attach EBS Volumes?</h2>



<p>These EBS volumes are single Elastic Block Store volumes that can be attached to multiple EC2 instances.  The feature is available for io1 and io2 Block Express volumes.  However, Windows instances only support io2 Block Express volumes.  Multi-Attach facilitates high availability and seamless failover for SQL Server FCIs (similar to how they operate on-premises).  </p>



<h2 class="wp-block-heading" id="h-prerequisites">Prerequisites</h2>



<p>Before setting up these volumes for SQL Server FCIs, ensure the following prerequisites are met:</p>



<h3 class="wp-block-heading" id="h-1-ec2-instances-in-the-same-availability-zone">1. EC2 Instances in the same Availability Zone</h3>



<p>All EC2 instances that will attach to the EBS volume must reside within the same AZ.  This ensures low latency and high throughput between the instances and the EBS volume.  This is critical for maintaining performance and reliability in a failover scenario.</p>



<h3 class="wp-block-heading" id="h-2-supported-ebs-volume-types">2. Supported EBS Volume Types</h3>



<p>While both io1 and io2 Block Express volumes support the Multi-Attach option, Windows instances only support io2 Block Express volumes.  This limitation is due to the enhanced performance and features that io2 Block Express provides.</p>



<h3 class="wp-block-heading" id="h-3-regional-availability-of-io2-block-express-volumes">3. Regional Availability of io2 Block Express Volumes</h3>



<p>Verify that io2 Block Express Volumes are available in your AWS region.  Not all regions may support this volume type, so review the <strong><a href="https://docs.aws.amazon.com/ebs/latest/userguide/provisioned-iops.html">Amazon EBS Provisioned IOPS SSD volumes</a></strong> user guide to confirm availability.</p>



<h3 class="wp-block-heading" id="h-4-additional-networking-and-vpc-configurations">4. Additional Networking and VPC Configurations</h3>



<p>While this post focuses on EBS Multi-Attach, ensure that your networking and VPC configurations meet the requirements for setting up a Windows Server Failover Cluster.  See this <a href="https://aws.amazon.com/blogs/modernizing-with-aws/how-to-deploy-a-sql-server-failover-cluster-with-amazon-ebs-multi-attach-on-windows-server/#:~:text=In%20this%20blog%20post%2C%20we%E2%80%99ll%20walk%20you%20through,Multi-Attach%20on%20io2%20volumes%20with%20persistent%20reservations%20feature.">link</a> to review the full list of prerequisites for WSFC.</p>



<h2 class="wp-block-heading" id="h-io2-block-express-volumes">io2 Block Express Volumes</h2>



<p>These volumes offer the highest-performance block storage.  Key features include:</p>



<ul class="wp-block-list">
<li><strong>Capacity: </strong>Ranges from 4 GB to 64 TB, accommodating various workloads.</li>



<li><strong>Performance:</strong>
<ul class="wp-block-list">
<li><strong>IOPS: </strong>Up to 256,000 IOPS per volume.</li>



<li><strong>Throughput: </strong>Maximum throughput of 4 GB/s per volume</li>
</ul>
</li>
</ul>



<p>These high-performance metrics make io2 Block Express volumes ideal for demanding SQL Server workloads, especially those requiring rapid data access and high transaction rates.</p>



<h3 class="wp-block-heading" id="h-compatibility">Compatibility</h3>



<p>io2 Block Express volumes are available on all <strong><a href="https://docs.aws.amazon.com/ec2/latest/instancetypes/ec2-nitro-instances.html">Nitro-based EC2</a></strong> instances.  The AWS Nitro system is a collection of hardware and software components designed to provide enhanced security, performance, and flexibility for EC2 instances.  </p>



<h2 class="wp-block-heading" id="h-enabling-multi-attach-for-ebs-volumes">Enabling Multi-Attach for EBS Volumes</h2>



<p>By default, this option is disabled but simple to enable. See this <a href="https://docs.aws.amazon.com/ebs/latest/userguide/working-with-multi-attach.html">link</a> for instructions on using the AWS Console or Command-Line.</p>



<h2 class="wp-block-heading" id="h-want-to-work-with-the-sero-group">Want to work with The SERO Group?</h2>



<p>Want to learn more about how The SERO Group helps organizations take the guesswork out of managing their SQL Servers? <a href="https://theserogroup.com/contact-us/" target="_blank" rel="noreferrer noopener">Schedule a no-obligation discovery call</a>&nbsp;with us to get started.</p>
<p>The post <a href="https://theserogroup.com/sql-server/how-to-build-sql-server-fcis-in-aws-with-multi-attach-ebs-volumes/">How to Build SQL Server FCIs in AWS with Multi-Attach EBS Volumes</a> appeared first on <a href="https://theserogroup.com">The SERO Group</a>.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">6945</post-id>	</item>
		<item>
		<title>HADR for Crying Out Loud</title>
		<link>https://theserogroup.com/sql-server/hadr-for-crying-out-loud/</link>
		
		<dc:creator><![CDATA[Joe Webb]]></dc:creator>
		<pubDate>Tue, 09 May 2023 15:50:23 +0000</pubDate>
				<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[Clustering]]></category>
		<category><![CDATA[Clusters]]></category>
		<category><![CDATA[Database]]></category>
		<category><![CDATA[Database Administration]]></category>
		<category><![CDATA[Database Development]]></category>
		<category><![CDATA[HADR]]></category>
		<category><![CDATA[IT Manager]]></category>
		<category><![CDATA[Sero]]></category>
		<category><![CDATA[Sero Group]]></category>
		<category><![CDATA[Serogroup]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[SQL Consultant]]></category>
		<category><![CDATA[SQL Server Consultant]]></category>
		<category><![CDATA[SQL Server Management]]></category>
		<category><![CDATA[SQL Training]]></category>
		<category><![CDATA[The Sero Group]]></category>
		<guid isPermaLink="false">https://theserogroup.com/?p=5193</guid>

					<description><![CDATA[<p>I was on my morning walk recently when I noticed this laying on the walking path. Some call it a binky. Others a pacifier or fooler. Whatever you call it, it&#8217;s an essential piece of equipment for some infants. Without it, their world falls apart. And the calamity is contagious. They, and everyone around them,&#8230; <br /> <a class="read-more" href="https://theserogroup.com/sql-server/hadr-for-crying-out-loud/">Read more</a></p>
<p>The post <a href="https://theserogroup.com/sql-server/hadr-for-crying-out-loud/">HADR for Crying Out Loud</a> appeared first on <a href="https://theserogroup.com">The SERO Group</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>I was on my morning walk recently when I noticed this laying on the walking path. Some call it a binky. Others a pacifier or fooler. Whatever you call it, it&#8217;s an essential piece of equipment for some infants. Without it, their world falls apart. And the calamity is contagious. They, and everyone around them, are miserable until an adequate replacement can be found and peace is restored. That&#8217;s where HADR comes in. </p>



<p>HADR for binkies? What? And how does this relate to SQL Server?</p>



<p>Sometimes the difference between the HA (High Availability) and DR (Disaster Recovery) can be difficult to grasp. There a nuances and the approaches can overlap. So, let&#8217;s consider an analogy &#8211; binkies and HADR in SQL Server. </p>



<p>As an infant, one of our daughters was very partial to her binky. She was seldom without one. Day or night, she &#8220;needed&#8221; her binky. </p>



<h2 class="wp-block-heading">The Disaster Recovery analogy</h2>



<p>We knew that life was better when she had a binky. Every time we left home, we strapped her into her infant car carrier, also known as a her &#8220;cry bucket&#8221;, and ensured she had a binky in her mouth.  </p>



<p>If it was lost during our trip, life would be unpleasant. So we were prepared. We carried extra. At least one, sometimes more than one, just in case the unthinkable happened. </p>



<p>If she somehow managed to lose her binky, if it fell out along the way unnoticed, we would open the diaper bag and retrieve the spare. </p>



<p>That was binky DR. We would have to manually step in to solve the problem. She was disrupted until the fix was in place. But it was better than long periods of screaming about it. We could handle a little disruption and still avoid an all out disaster.</p>



<h3 class="wp-block-heading">How this applies to SQL Server</h3>



<p>The same is true for SQL Server. DR is a way to recover from some kind of disaster. It could be at the data center level, or at a SQL Server instance level. In either case, we need to recover from some kind of failure as quickly as possible. </p>



<p>In SQL Server, that could mean: </p>



<ul class="wp-block-list">
<li><strong>Restoring from a backup.</strong> Assuming your backup process is robust, meets your RTOs and RPOs, and is regularly tested, you can apply the various backup files to get you back to whole again. Typically, you&#8217;ll restore a full backup, a differential backup, and then a serious of transaction log backups.</li>



<li><strong>Restore a virtual machine.</strong> If the failure affects the instance and not just a database, you may have to restore a virtual machine image. You may be done after that. Or you may have to restore a the backup files as described before to meet your RPO requirement. </li>



<li><strong>Switch to a stand-by SQL Server. </strong>Log-shipping can be a cost effective way to implement a level of DR. If you&#8217;re leveraging it as part of DR strategy, to recover you&#8217;ll need to make the standby SQL Server the new production SQL Server. You&#8217;ll stop log-shipping, recover database on the standby server, and point everything to the new production instance. </li>



<li><strong>Site-wide DR.</strong> Of course, some companies have a site-wide DR plan. If the entire data center is out of commission, they can failover to the DR site in another city or region. Properly configured, that can work very well. Typically, however, you don&#8217;t want to do that for a single instance of SQL Server. It&#8217;s reserved for disasters on a larger scale.</li>
</ul>



<h3 class="wp-block-heading">Disaster Recovery Summary</h3>



<p>In all of these cases, manual intervention is required. Someone had to do something to get things back to normal. In our analogy, someone had to dig through the diaper bag to find the spare and give it to our daughter. Until that point, everyone was unhappy. </p>



<p>It&#8217;s also worth noting that we checked and double checked that we had a spare binky before leaving home. For SQL Server, you want to regularly test your backups to make sure you can indeed recover from them when needed. </p>



<h2 class="wp-block-heading" id="h-high-availability">High Availability</h2>



<p>Our approach to binky DR when we left home tended to work pretty well. There were times when we weren&#8217;t able to recover quickly enough and drew awkward glares from those around us. However, for the most part it was a success. </p>



<p>At night it was a different story. </p>



<p>We would go through the bedtime process &#8211; reading a story, rocking for a little while, maybe even humming a lullaby, and gently placing her in her crib. Then we&#8217;d tip toe out of the room. </p>



<p>Unfortunately, at some point during the night, her binky would slip from her mouth. And before long, she&#8217;d notice. And when she noticed, we all were quickly made aware. One of us would have to get up, search through the blanket and put the binky back into her mouth. </p>



<p>Fortunately, we discovered a better way. </p>



<p>We began putting her in her crib with a binky in her mouth, and a spare one in each hand. That way, when the binky slipped from her mouth, she could quickly and easily replace it with one from her hand. This allowed her to sleep for longer periods and time. And us too! </p>



<p>Binky high availability at its finest. </p>



<h3 class="wp-block-heading">How this applies to SQL Server</h3>



<p>Many mission critical systems depend on SQL Server. For example, Practice Management Systems or Electronic Medical Records in healthcare, Project Management Systems or Job Costing Systems in construction, and core systems in the banking. They all rely on SQL Server. If SQL Server is down, the business is down. And that can be costly. </p>



<p>For those situations, we can leverage High Availability in SQL Server. Two technologies are commonly used. </p>



<ul class="wp-block-list">
<li><strong>Failover Cluster Instance (FCI). </strong>With an FCI, one SQL Server instance is effectively spread across multiple Windows Server Failover Cluster nodes. SQL Server runs on the primary node. In the event of a planned or unplanned downtime, a secondary node will start its services, take ownership of the shared resources, and begin servicing application requests. This can happen automatically, often with minimal disruption to users.</li>



<li><strong>Availability Groups (AG).</strong> With an AG, SQL Server is installed on two or more nodes of a Windows Server Failover Cluster. (Strictly speaking the nodes don&#8217;t have to be WSFC. Linux clusters can be used.) As with the FCI, if a disruption occurs on the primary node, a secondary node will be promoted to primary and all application requests will be automatically directed to the new primary node. There are a lot of nuances to configuring an AG including synchronous / asynchronous transactions, automatic or manual failover, etc. The point here is that it can be configured to happen automatically and will little noticeable disruption to the end users. </li>
</ul>



<h3 class="wp-block-heading">High Availability Summary</h3>



<p>One really nice distinction with High Availability is that it can happen automatically, without someone having to do something to make it happen. For businesses running critical applications on SQL Server, this can prevent costly unplanned and planned downtime. </p>



<p>For parents with kids dependent on binkies, this could mean hours of additional uninterrupted sleep each night. </p>



<p>In either case, HA can be really worth looking into. </p>



<h2 class="wp-block-heading" id="h-want-to-learn-more">Want to learn more?</h2>



<p>Hopefully this analogy has helped. Here are a few addition resources that may likewise be helpful.</p>



<ul class="wp-block-list">
<li><a href="https://theserogroup.com/sql-server/whats-the-difference-in-sql-server-fcis-and-ags/">What&#8217;s the Difference in SQL Server FCIs and AGs? &#8211; The SERO Group</a></li>



<li><a href="https://theserogroup.com/sql-server/hadr-options-for-sql-server/">High Availability and Disaster Recovery in SQL Server &#8211; The SERO Group</a></li>



<li><a href="https://theserogroup.com/sql-server/how-to-create-sql-server-2019-failover-clustered-instances-in-azure/">How to Create SQL Server 2019 Failover Clustered Instances in Azure &#8211; The SERO Group</a></li>



<li><a href="https://theserogroup.com/sql-server/azure-shared-disks-failover-clustered-instances/">Azure shared disks &#8211; Failover Clustered Instances &#8211; The SERO Group</a></li>



<li><a href="https://theserogroup.com/sql-server/using-vm-snapshots-to-backup-sql-server/">Using VM Snapshots to Backup SQL Server? &#8211; The SERO Group</a></li>



<li><a href="https://learn.microsoft.com/en-us/sql/database-engine/availability-groups/windows/always-on-availability-groups-sql-server?view=sql-server-ver16" target="_blank" rel="noreferrer noopener">Availability groups: a high-availability and disaster-recovery solution &#8211; SQL Server Always On | Microsoft Learn</a></li>
</ul>



<p>If you&#8217;d like to talk though how improve your SQL Server&#8217;s reliability, <a href="https://theserogroup.com/#contact">give us a call</a>. We&#8217;re happy to help. </p>
<p>The post <a href="https://theserogroup.com/sql-server/hadr-for-crying-out-loud/">HADR for Crying Out Loud</a> appeared first on <a href="https://theserogroup.com">The SERO Group</a>.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">5193</post-id>	</item>
		<item>
		<title>Webinar: Is Your SQL Server Healthy?</title>
		<link>https://theserogroup.com/professional-development/webinar-is-your-sql-server-healthy/</link>
		
		<dc:creator><![CDATA[Joe Webb]]></dc:creator>
		<pubDate>Fri, 11 Jun 2021 14:59:30 +0000</pubDate>
				<category><![CDATA[Professional Development]]></category>
		<category><![CDATA[Clustering]]></category>
		<category><![CDATA[Clusters]]></category>
		<category><![CDATA[Database]]></category>
		<category><![CDATA[Database Administration]]></category>
		<category><![CDATA[Database Development]]></category>
		<category><![CDATA[IT Manager]]></category>
		<category><![CDATA[Script Library]]></category>
		<category><![CDATA[Sero]]></category>
		<category><![CDATA[Sero Group]]></category>
		<category><![CDATA[Serogroup]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[SQL Assessment]]></category>
		<category><![CDATA[SQL Audit]]></category>
		<category><![CDATA[SQL Consultant]]></category>
		<category><![CDATA[SQL Events]]></category>
		<category><![CDATA[SQL Security]]></category>
		<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[SQL Server Consultant]]></category>
		<category><![CDATA[SQL Server Management]]></category>
		<category><![CDATA[SQL Training]]></category>
		<category><![CDATA[TempDB]]></category>
		<category><![CDATA[The Sero Group]]></category>
		<guid isPermaLink="false">https://theserogroup.com/?p=3784</guid>

					<description><![CDATA[<p>SQL Server. Many business depend on it. But how can you tell if your SQL Server is healthy? It&#8217;s not always obvious. SQL Server can be pretty forgiving in many ways, until it&#8217;s not. And that can put your performance and even your data at risk. The right configuration settings are critical. Unfortunately, it&#8217;s easy&#8230; <br /> <a class="read-more" href="https://theserogroup.com/professional-development/webinar-is-your-sql-server-healthy/">Read more</a></p>
<p>The post <a href="https://theserogroup.com/professional-development/webinar-is-your-sql-server-healthy/">Webinar: Is Your SQL Server Healthy?</a> appeared first on <a href="https://theserogroup.com">The SERO Group</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>SQL Server. Many business depend on it. But how can you tell if your SQL Server is healthy? It&#8217;s not always obvious. SQL Server can be pretty forgiving in many ways, until it&#8217;s not. And that can put your performance and even your data at risk.</p>



<p>The right configuration settings are critical. Unfortunately, it&#8217;s easy to overlook many SQL Server settings and best practices. The defaults are not always the best.  </p>



<p>A proper maintenance schedule for your databases and servers is important. So is regular monitoring. And a sound HADR plan that meets the needs of the business is critical. </p>



<h2 class="wp-block-heading" id="h-is-your-sql-server-healthy-a-free-webinar">Is your SQL Server healthy? A free webinar</h2>



<p>In an upcoming webinar, we’ll discuss some commonly overlooked SQL Server settings and practices we uncover during our <a href="https://theserogroup.com/sql-configuration-assessment/">SQL Server Assessments</a>. These can have dramatic effects on your database server’s performance and reliability. And we&#8217;ll share what you can do to fix them and help to keep your SQL Server healthy. </p>



<p><a href="https://seroprotech3.eventbrite.com" target="_blank" rel="noreferrer noopener">Register here</a> for the free webinar on June 23, 2021.</p>



<p>In the meantime, check out these posts.</p>



<ul class="wp-block-list">
<li><a href="https://theserogroup.com/dba/identifying-sql-server-disk-latency/">Identifying SQL Server Disk Latency</a></li>



<li><a href="https://theserogroup.com/professional-development/scary-and-dangerous-things-in-sql-server/">Scary and Dangerous Things in SQL Server</a></li>



<li><a href="https://theserogroup.com/sql-server/securing-your-sql-servers-what-should-you-audit/">Securing Your SQL Servers, What Should You Audit?</a></li>



<li><a href="https://theserogroup.com/sql-server/when-was-the-last-known-good-dbcc-checkdb-integrity-check/">When Was the Last Known Good DBCC CHECKDB Integrity Check?</a></li>



<li><a href="https://theserogroup.com/sql-server-consulting/identify-disk-i-o-performance-issues-for-your-sql-server-using-diskspd/">Identify Disk I/O Performance Issues for Your SQL Server Using DiskSpd</a></li>



<li><a href="https://theserogroup.com/sql-server/is-my-sql-server-configured-properly/">Is My SQL Server Configured Properly?</a></li>



<li><a href="https://theserogroup.com/sql-server/how-many-tempdb-data-files-should-my-sql-server-have/">How Many tempdb Data Files Should My SQL Server Have?</a></li>
</ul>


<div id="eventbrite-widget-1" class="wp-block-jetpack-eventbrite wp-block-jetpack-eventbrite--embed"><a href="https://www.eventbrite.com/e/is-your-sql-server-healthy-common-issues-that-may-be-putting-data-at-risk-tickets-158608011833" rel="noopener noreferrer" target="_blank" class="eventbrite__direct-link" >Register on Eventbrite</a></div>


<h2 class="wp-block-heading" id="h-want-to-work-with-the-sero-group">Want to work with The SERO Group?</h2>



<p>Want to learn more about how SERO Group helps organizations take the guesswork out of managing their SQL Servers? It’s easy and there is no obligation.&nbsp;</p>



<p><a href="https://theserogroup.com/#contact" target="_blank" rel="noreferrer noopener">Schedule a call</a> with us to get started.</p>
<p>The post <a href="https://theserogroup.com/professional-development/webinar-is-your-sql-server-healthy/">Webinar: Is Your SQL Server Healthy?</a> appeared first on <a href="https://theserogroup.com">The SERO Group</a>.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">3784</post-id>	</item>
		<item>
		<title>What&#8217;s the Difference in SQL Server FCIs and AGs?</title>
		<link>https://theserogroup.com/sql-server/whats-the-difference-in-sql-server-fcis-and-ags/</link>
					<comments>https://theserogroup.com/sql-server/whats-the-difference-in-sql-server-fcis-and-ags/#comments</comments>
		
		<dc:creator><![CDATA[Joe Webb]]></dc:creator>
		<pubDate>Thu, 27 May 2021 12:25:47 +0000</pubDate>
				<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[Clustering]]></category>
		<category><![CDATA[Clusters]]></category>
		<category><![CDATA[Database]]></category>
		<category><![CDATA[Database Administration]]></category>
		<category><![CDATA[Database Development]]></category>
		<category><![CDATA[IT Manager]]></category>
		<category><![CDATA[Microsoft Azure]]></category>
		<category><![CDATA[Sero]]></category>
		<category><![CDATA[Sero Group]]></category>
		<category><![CDATA[Serogroup]]></category>
		<category><![CDATA[Shared Disks]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[SQL Assessment]]></category>
		<category><![CDATA[SQL Audit]]></category>
		<category><![CDATA[SQL Consultant]]></category>
		<category><![CDATA[SQL Events]]></category>
		<category><![CDATA[SQL Server Consultant]]></category>
		<category><![CDATA[SQL Server Management]]></category>
		<category><![CDATA[The Sero Group]]></category>
		<guid isPermaLink="false">https://theserogroup.com/?p=3744</guid>

					<description><![CDATA[<p>&#8220;What&#8217;s the difference in SQL Server FCIs and AGs?&#8221; That question comes up frequently when talking High Availability and Disaster Recovery (HADR). It&#8217;s especially important when &#8220;Everything stops and people can&#8217;t do their jobs if SQL Server is unavailable.&#8221; There are a lot of how-to articles on the internet for setting up Always On Failover&#8230; <br /> <a class="read-more" href="https://theserogroup.com/sql-server/whats-the-difference-in-sql-server-fcis-and-ags/">Read more</a></p>
<p>The post <a href="https://theserogroup.com/sql-server/whats-the-difference-in-sql-server-fcis-and-ags/">What&#8217;s the Difference in SQL Server FCIs and AGs?</a> appeared first on <a href="https://theserogroup.com">The SERO Group</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>&#8220;What&#8217;s the difference in SQL Server FCIs and AGs?&#8221; That question comes up frequently when talking High Availability and Disaster Recovery (HADR). It&#8217;s especially important when &#8220;Everything stops and people can&#8217;t do their jobs if SQL Server is unavailable.&#8221;</p>



<p>There are a lot of how-to articles on the internet for setting up Always On Failover Clustered Instances (FCIs) and Always On Availability Groups (AGs). In fact, Luke Campbell created a couple of nice guides &#8211; <a href="https://theserogroup.com/sql-server/how-to-create-sql-server-2019-failover-clustered-instances-in-azure/">How to Create SQL Server 2019 Failover Clustered Instances in Azure</a> and <a href="https://theserogroup.com/azure/azure-shared-disks-failover-clustered-instance-sql-server-2016/">Azure shared disks – Failover Clustered Instance – SQL Server 2016</a>.</p>



<p>So, I won&#8217;t deep dive into the technologies. Rather I&#8217;ll share some of their key, high-level differences. The goal is to help you identify the better choice for your environment. Even with that narrow scope, this is a big topic. I&#8217;ll touch on the basics here and elaborate on the more advanced aspects in the future.</p>



<p>Keep in mind that there are lots of ways to combine different technologies to improve your HADR capabilities. For example, you can use a FCI to host one of the AG replicas. You can use Distributed AGs in different datacenters. And many other combinations.</p>



<p>There&#8217;s a TLDR; <a href="#Compare-FCI-AG">summary table</a> comparing the two at the end of the post. </p>



<h2 class="wp-block-heading">Comparing SQL Server FCIs and AGs</h2>



<p>FCIs and AGs aren&#8217;t exactly apples and oranges. They have similarities. Both are native to SQL Server. And both can greatly reduce planned and unplanned downtime. However, there are some key differences in their requirements and the way they are implemented. These differences may influence what&#8217;s best in your environment. Let&#8217;s have a look. </p>



<h3 class="wp-block-heading">What are the hardware and software requirements for FCIs and AGs?</h3>



<p>Let&#8217;s begin by considering some of the aspects that may make one of these technologies a non-starter for you &#8211; the hardware and software requirements.</p>



<p>Windows Server Failover Clustering (WSFC) serves as the underlying foundation for both FCIs and AGs. At least in the Windows world. Pacemaker is used for clustering Linux instances. Here, I&#8217;ll refer to them collectively as WSFC.</p>



<h4 class="wp-block-heading">FCI requirements and operation</h4>



<p>With an FCI you&#8217;re essentially installing one instance of SQL Server across two or more nodes of a WSFC. Only one node is active at a time, the primary node. The secondary nodes are available, but not active. Clients connect to the Virtual Network Name and do not need to know which node is currently serving as the primary. </p>



<p>Should the primary WSFC node become unavailable, the SQL Server services are started on another node and it becomes the primary node. All databases, logins, jobs, etc, that are part of that SQL Server instance are available on the new primary node. That&#8217;s good. FCIs provide instance-level protection.</p>



<p>To make this possible, FCIs require shared storage. The primary WSFC node owns the shared resource. When it fails, another node will take ownership of the resource and then start its SQL services. The SQL binaries reside on each WSFC node, not the shared storage. </p>



<p>FCIs are available in both Standard Edition and Enterprise Edition of SQL Server. From a licensing perspective, FCIs are a single instance of SQL Server since only one node is actively serving clients. (Note: a qualified licensing expert should be consulted to ensure you fully understand the SQL Server licensing. It can get quite complex.)</p>



<figure class="wp-block-image size-large"><a href="https://theserogroup.com/wp-content/uploads/2021/05/FCI.png"><img fetchpriority="high" decoding="async" width="422" height="384" src="https://theserogroup.com/wp-content/uploads/2021/05/FCI.png" alt="SQL Server FCI" class="wp-image-3750" srcset="https://theserogroup.com/wp-content/uploads/2021/05/FCI.png 422w, https://theserogroup.com/wp-content/uploads/2021/05/FCI-300x273.png 300w" sizes="(max-width: 422px) 100vw, 422px" /></a></figure>



<h4 class="wp-block-heading">AG requirements and operation</h4>



<p>AS with FCIs, SQL Server is installed on each WSFC node that is part of an AG. However, unlike FCIs, the SQL Server service runs continually on each node. One of the nodes is designated as the primary replica and all other nodes are secondary replicas. Clients connect to a Listener that directs the connection to the primary replica. </p>



<p>Each WSFC node has its own copy of the AG databases. No shared storage is required. When changes are made to the primary replica, those changes are propagated to the secondary replicas. The increases the total storage capacity required. A two-node AG doubles your storage requirements. A four-node AG increases your storage requirements by a factor of four.</p>



<p>AG can be configured for HA (more on that later). Secondary replicas in HA mode typically do not require licenses.</p>



<p>When the primary replica in an AG configured for HA goes down, one of the secondary replicas becomes the new primary. The Listener directs all connections to the new primary replica.</p>



<p>AGs provide database-level redundancy. This means that all databases that are part of the AG will failover to the new primary replica at the same time. Instance-level objects are not part of the AG. So, logins, SQL agent jobs, etc, are not automatically available on the secondary replicas. </p>



<p>Basic Availability Groups are available in SQL Server Standard Edition. Basic AGs are limited to a two-node system with a single database. AGs in SQL Server Enterprise Edition can have multiple databases that failover together and up to 8 replicas per AG. </p>



<figure class="wp-block-image size-large"><a href="https://theserogroup.com/wp-content/uploads/2021/05/AG.png"><img decoding="async" width="420" height="380" src="https://theserogroup.com/wp-content/uploads/2021/05/AG.png" alt="SQL Server AG" class="wp-image-3752" srcset="https://theserogroup.com/wp-content/uploads/2021/05/AG.png 420w, https://theserogroup.com/wp-content/uploads/2021/05/AG-300x271.png 300w" sizes="(max-width: 420px) 100vw, 420px" /></a></figure>



<h3 class="wp-block-heading">Is it HA, DR, or both?</h3>



<p>There can be some overlap in what&#8217;s considered High Availability (HA) and what&#8217;s considered Disaster Recovery (DR). Though few would argue that the terms are interchangeable, some technologies can span across both terms depending on how they are implemented. </p>



<p>Generally speaking, HA means the databases remain online and fielding requests despite what would otherwise be a disruptive event. So, users don&#8217;t experience noticeable downtime due to unexpected events such as a hardware failure, or during normally scheduled maintenance windows. </p>



<p>DR, on the other hand, is typically a response to a more catastrophic event that could affect more than the SQL Servers. Fires, Tornados, flooding, hurricanes, etc, can hit a datacenter or even an entire region. Ransomware can make its way into a network. The question is how quickly can your team respond to such events?</p>



<h4 class="wp-block-heading">FCIs and HADR</h4>



<p>FCIs are generally considered an HA technology. They are designed to keep the databases online during unexpected events. FCIs can span multiple subnets, datacenters, etc, to help with DR, but they are primarily used for HA purposes. </p>



<h4 class="wp-block-heading">AGs and HADR</h4>



<p>AGs have couple of modes that are frequently used for different purposes. If the nodes are configured for Synchronous-commit mode, each transaction is held open until the secondary replicas are updated. This keeps the replicas up to date at the possible expense of performance. This is good for HA scenarios. </p>



<p>With asynchronous-commit modes, the transactions complete as soon as the log file is written on the primary replica. This allows for some lag between the primary and secondary replicas. Should the primary unexpectedly go offline, some data loss can occur. Asynchronous-commit mode is often used in DR scenarios, when secondary nodes are in a different datacenter or region. </p>



<h3 class="wp-block-heading">What about RTO and RPO?</h3>



<p>No HADR discussion is complete without Recovery Time Objectives (RTOs) and Recovery Point Objectives (RPOs). How do FCIs and AGs stack up on RTOs and RPOs? (See <a href="https://theserogroup.com/data-security/where-to-start-with-disaster-recovery-in-sql-server/">Where to Start with Disaster Recovery in SQL Server</a> for a description of RTOs and RPOs)</p>



<h4 class="wp-block-heading">FCIs and RPOs / RTOs</h4>



<p>Recall that each WSFC node has access to a shared storage resource. Only one node at a time owns the resource, but all nodes have access to it should they become the primary node. The system and user databases are located on the shared storage resource. As a result every transaction committed on the primary node persists after a failover to a new primary. There should be no loss of data during failovers.</p>



<p>During a planned failover, dirty buffers are written to disk on the primary before the role is transitioned to a new primary. During an unplanned failover, committed transactions that never made it to the data file are rolled forward during the start-up recovery process. Failovers are frequently very fast, however for busy systems, it can time some time. </p>



<h4 class="wp-block-heading">AGs and RPOs / RTOs</h4>



<p>As mentioned before, AGs can be configured in synchronous-commit or asynchronous-commit modes. Synchronous-commit mode can further be divided into &#8220;planned manual failover only&#8221; or &#8220;automatic failover&#8221;. </p>



<p>AGs configured with Synchronous-commit with automatic failover will, as the name implies, automatically failover to a secondary replica should the primary become unavailable. This process generally doesn&#8217;t take too long. Of course, you&#8217;d want to test in your environment to know what to expect. </p>



<p>For secondary replicas configured for Synchronous-commit with planned manual failover only, failover requires manual intervention. Once initiated, the failover typically occurs relatively quickly. </p>



<p>Asynchronous-commit replicas also require manual intervention and could experience some data loss since the secondary replica may be slightly out of sync with the primary.  </p>



<h3 class="wp-block-heading">How difficult is it to manage FCIs and AGs? </h3>



<p>FCIs provide instance-level protection. Once installed and configured, FCIs are essentially a single instance of SQL Server spread across a WSFC. As a result, you don&#8217;t have to worry about ensuring logins, jobs, etc, are consistent among the WSFC nodes. If you&#8217;d like to add or remove nodes, use the SQL Server Setup program.</p>



<p>AGs, on the other hand, require a bit more effort. Since AGs provide database-level protection, you&#8217;ll need make sure that important instance-level objects that AG databases depend on are available on the secondary replicas. For example, primary replica logins are not automatically created on the secondary replicas. You&#8217;ll need to do the same for maintenance jobs. We typically add a step to the beginning of each job to determine whether the job is on the primary replica or a secondary replica. If the job is running on the primary, continue. Otherwise, don&#8217;t do anything. </p>



<h3 class="wp-block-heading">What about patching FCIs and AGs?</h3>



<p>Both FCIs and AGs can minimize downtime due to patching. Although the exact details vary, you can apply Windows and/or SQL patches to secondary nodes/replicas, manually failover the services so that the newly patched system becomes the primary node/replica, and then apply the patches to the remaining nodes/replicas. </p>



<p>This approach limits downtime to the time it takes to failover. </p>



<h3 class="wp-block-heading">Are secondary nodes/replicas available for production use?</h3>



<p>It can be interesting to think about using the secondary nodes/replicas to offload work from the primary node/replica. With FCIs this is unfortunately not possible. In fact the SQL Server service isn&#8217;t even running on the secondary nodes. So, the secondary nodes aren&#8217;t available for other purposes. </p>



<p>With AGs, you can configure secondary replicas for read-only access. This allows actions such as backups to be performed on the secondary replica. Additionally, you can offload some resources-intensive reporting queries to the secondary replica. Note, additional licenses are required if the secondary replicas are used for production proposes. </p>



<h2 class="wp-block-heading" id="Compare-FCI-AG">How do FCIs and AGs compare?</h2>



<p>So, what&#8217;s the Difference in SQL Server FCIs and AGs? The following chart summarizes the differences. </p>



<figure class="wp-block-table is-style-stripes"><table><thead><tr><th>Feature</th><th>FCIs</th><th>AGs</th></tr></thead><tbody><tr><td>Licenses*</td><td>Single license required</td><td>Single license required for HA mode (with Software Assurance), additional licenses required for actively used secondary replicas</td></tr><tr><td>Edition</td><td>Standard and Enterprise Editions</td><td>Basic AG on Standard Edition, full AGs on Enterprise Edition</td></tr><tr><td>Storage Configuration</td><td>Shared storage, eg SAN, Storage Spaces Direct, etc.</td><td>No shared storage needed, each replica has its own</td></tr><tr><td>Storage Requirements</td><td>No additional store space required for user databases</td><td>Each replica stores its own copy of the database</td></tr><tr><td>Protection</td><td>Instance-level</td><td>Database-level</td></tr><tr><td>Typical configuration</td><td>HA, with DR capabilities if combined with other technologies</td><td>HA or DR</td></tr><tr><td>RPO: Potential data loss</td><td>Typically no data loss during failover</td><td>Typically no data loss during failover for synchronous-commit; potential data loss for asynchronous-commit</td></tr><tr><td>RTO: Time to failover</td><td>Potentially noticeable for large and active systems</td><td>Typically fast and may be unnoticeable on many systems</td></tr><tr><td>Administration</td><td>Once configured, manage the instance. Use SQL Server Setup program to add/remove nodes</td><td>Once configured, additional care must be taken for instance-level objects such as logins and jobs.</td></tr><tr><td>Patching and maintenance</td><td>Reduces downtime to failover time</td><td>Reduces downtime to failover time</td></tr></tbody></table></figure>



<p>* See the <a href="https://download.microsoft.com/download/e/2/9/e29a9331-965d-4faa-bd2e-7c1db7cd8348/SQL_Server_2019_Licensing_guide.pdf" target="_blank" rel="noreferrer noopener">SQL Server 2019 Licensing Guide</a> available on the <a href="https://www.microsoft.com/en-us/licensing/product-licensing/sql-server#primaryR13" target="_blank" rel="noreferrer noopener">Microsoft SQL Server licensing page</a>.</p>



<h2 class="wp-block-heading">Which is better, FCIs or AGs?</h2>



<p>Is one of these two technologies better than the other? Yes, almost certainly. But, which one? That&#8217;s really going to depend on what your objectives are, on what technologies and licenses you have in place or can afford, and on how your SQL Servers fit into the broader HADR conversation.</p>



<p>The important thing is to take the first step. Start having the conversations. </p>



<p>In <a href="https://theserogroup.com/sql-server/hadr-options-for-sql-server/">High Availability and Disaster Recovery in SQL Server</a>, I also share a couple of other basic DR options &#8211; Backups and Log Shipping.</p>



<h2 class="wp-block-heading">Want to work with The SERO Group?</h2>



<p>Want to learn more about how SERO Group helps organizations take the guesswork out of managing their SQL Servers? It’s easy and there is no obligation.&nbsp;</p>



<p><a href="https://www.calendly.com/joe_webb" target="_blank" rel="noreferrer noopener">Schedule a call</a>&nbsp;with us to get started.</p>
<p>The post <a href="https://theserogroup.com/sql-server/whats-the-difference-in-sql-server-fcis-and-ags/">What&#8217;s the Difference in SQL Server FCIs and AGs?</a> appeared first on <a href="https://theserogroup.com">The SERO Group</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://theserogroup.com/sql-server/whats-the-difference-in-sql-server-fcis-and-ags/feed/</wfw:commentRss>
			<slash:comments>3</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">3744</post-id>	</item>
		<item>
		<title>Identifying SQL Server Disk Latency</title>
		<link>https://theserogroup.com/dba/identifying-sql-server-disk-latency/</link>
					<comments>https://theserogroup.com/dba/identifying-sql-server-disk-latency/#comments</comments>
		
		<dc:creator><![CDATA[Joe Webb]]></dc:creator>
		<pubDate>Wed, 12 May 2021 14:00:00 +0000</pubDate>
				<category><![CDATA[DBA]]></category>
		<category><![CDATA[Clustering]]></category>
		<category><![CDATA[Clusters]]></category>
		<category><![CDATA[Database]]></category>
		<category><![CDATA[Database Administration]]></category>
		<category><![CDATA[Database Development]]></category>
		<category><![CDATA[IT Manager]]></category>
		<category><![CDATA[Script Library]]></category>
		<category><![CDATA[Sero]]></category>
		<category><![CDATA[Sero Group]]></category>
		<category><![CDATA[Serogroup]]></category>
		<category><![CDATA[Shared Disks]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[SQL Assessment]]></category>
		<category><![CDATA[SQL Consultant]]></category>
		<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[SQL Server Consultant]]></category>
		<category><![CDATA[SQL Server Management]]></category>
		<category><![CDATA[TempDB]]></category>
		<category><![CDATA[The Sero Group]]></category>
		<guid isPermaLink="false">https://theserogroup.com/?p=3721</guid>

					<description><![CDATA[<p>When SQL Server is not as fast as users think it ought to be, how can you tell where the slowdown is? Where&#8217;s the performance bottleneck? Where&#8217;s the traffic jam? Is it waiting on CPU? Does it needs memory? What about the disks? Could SQL Server be slow because of disk latency? Could be. But&#8230; <br /> <a class="read-more" href="https://theserogroup.com/dba/identifying-sql-server-disk-latency/">Read more</a></p>
<p>The post <a href="https://theserogroup.com/dba/identifying-sql-server-disk-latency/">Identifying SQL Server Disk Latency</a> appeared first on <a href="https://theserogroup.com">The SERO Group</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>When SQL Server is not as fast as users think it ought to be, how can you tell where the slowdown is? Where&#8217;s the performance bottleneck? Where&#8217;s the traffic jam? Is it waiting on CPU? Does it needs memory? What about the disks? Could SQL Server be slow because of disk latency? Could be. But how can we know for sure? Fortunately, we can ask SQL Server what it&#8217;s waiting on when it&#8217;s waiting for a resource.</p>



<p>There are a couple of easy ways to check for disk latency issues in SQL Server: using the sys.dm_io_virtual_file_stats DMV and using the dbatools.io Test-DbaDiskSpeed command. Let&#8217;s look at each.</p>



<h2 class="wp-block-heading">Check disk latency using DMVs</h2>



<p>Way back in SQL Server 2005, Microsoft introduced the <a href="https://docs.microsoft.com/en-us/sql/relational-databases/system-dynamic-management-views/sys-dm-io-virtual-file-stats-transact-sql?view=sql-server-ver15" target="_blank" rel="noreferrer noopener">sys.dm_io_virtual_file_stats</a> Dynamic Management View (DMV). This DMV reports disk read and write activities for data and log files.  </p>



<p>For many years, I&#8217;ve used a query <a href="https://www.sqlskills.com/blogs/paul/how-to-examine-io-subsystem-latencies-from-within-sql-server/" target="_blank" rel="noreferrer noopener">based on one from SQLSkills&#8217; Paul Randal</a>. I&#8217;ve simply added a column to help quickly categorize/interpret the latency values. This query can be very helpful when troubleshooting what you suspect to be a disk I/O bottleneck.</p>



<pre class="wp-block-code"><code>SELECT
   &#91;ReadLatency] =
        CASE WHEN &#91;num_of_reads] = 0
            THEN 0 ELSE (&#91;io_stall_read_ms] / &#91;num_of_reads]) END,
   &#91;WriteLatency] =
        CASE WHEN &#91;num_of_writes] = 0
            THEN 0 ELSE (&#91;io_stall_write_ms] / &#91;num_of_writes]) END,
   &#91;Latency] =
        CASE WHEN (&#91;num_of_reads] = 0 AND &#91;num_of_writes] = 0)
            THEN 0 ELSE (&#91;io_stall] / (&#91;num_of_reads] + &#91;num_of_writes])) END,
   &#91;Latency Desc] = 
         CASE 
            WHEN (&#91;num_of_reads] = 0 AND &#91;num_of_writes] = 0) THEN 'N/A' 
            ELSE 
               CASE WHEN (&#91;io_stall] / (&#91;num_of_reads] + &#91;num_of_writes])) &lt; 2 THEN 'Excellent'
                    WHEN (&#91;io_stall] / (&#91;num_of_reads] + &#91;num_of_writes])) &lt; 6 THEN 'Very good'
                    WHEN (&#91;io_stall] / (&#91;num_of_reads] + &#91;num_of_writes])) &lt; 11 THEN 'Good'
                    WHEN (&#91;io_stall] / (&#91;num_of_reads] + &#91;num_of_writes])) &lt; 21 THEN 'Poor'
                    WHEN (&#91;io_stall] / (&#91;num_of_reads] + &#91;num_of_writes])) &lt; 101 THEN 'Bad'
                    WHEN (&#91;io_stall] / (&#91;num_of_reads] + &#91;num_of_writes])) &lt; 501 THEN 'Yikes!'
               ELSE 'YIKES!!'
               END 
         END, 
   &#91;AvgBPerRead] =
        CASE WHEN &#91;num_of_reads] = 0
            THEN 0 ELSE (&#91;num_of_bytes_read] / &#91;num_of_reads]) END,
   &#91;AvgBPerWrite] =
        CASE WHEN &#91;num_of_writes] = 0
            THEN 0 ELSE (&#91;num_of_bytes_written] / &#91;num_of_writes]) END,
   &#91;AvgBPerTransfer] =
        CASE WHEN (&#91;num_of_reads] = 0 AND &#91;num_of_writes] = 0)
            THEN 0 ELSE
                ((&#91;num_of_bytes_read] + &#91;num_of_bytes_written]) /
                (&#91;num_of_reads] + &#91;num_of_writes])) END,
   LEFT (&#91;mf].&#91;physical_name], 2) AS &#91;Drive],
   DB_NAME (&#91;vfs].&#91;database_id]) AS &#91;DB],
   &#91;mf].&#91;physical_name]
FROM
   sys.dm_io_virtual_file_stats (NULL,NULL) AS &#91;vfs]
   JOIN sys.master_files AS &#91;mf]
   ON &#91;vfs].&#91;database_id] = &#91;mf].&#91;database_id]
      AND &#91;vfs].&#91;file_id] = &#91;mf].&#91;file_id]
-- WHERE &#91;vfs].&#91;file_id] = 2 -- log files
ORDER BY &#91;Latency] DESC
-- ORDER BY &#91;ReadLatency] DESC
-- ORDER BY &#91;WriteLatency] DESC;
GO</code></pre>



<p>When I run this query against a docker-based SQL Server 2017 instance, I receive the following results. </p>



<figure class="wp-block-image size-large"><a href="https://theserogroup.com/wp-content/uploads/2021/05/sqlserverdisklatencystats-dmv.png"><img decoding="async" width="1024" height="419" src="https://theserogroup.com/wp-content/uploads/2021/05/sqlserverdisklatencystats-dmv-1024x419.png" alt="SQL Server disk latency stats from dmv" class="wp-image-3727" srcset="https://theserogroup.com/wp-content/uploads/2021/05/sqlserverdisklatencystats-dmv-1024x419.png 1024w, https://theserogroup.com/wp-content/uploads/2021/05/sqlserverdisklatencystats-dmv-300x123.png 300w, https://theserogroup.com/wp-content/uploads/2021/05/sqlserverdisklatencystats-dmv-768x314.png 768w, https://theserogroup.com/wp-content/uploads/2021/05/sqlserverdisklatencystats-dmv-1536x628.png 1536w, https://theserogroup.com/wp-content/uploads/2021/05/sqlserverdisklatencystats-dmv-2048x837.png 2048w, https://theserogroup.com/wp-content/uploads/2021/05/sqlserverdisklatencystats-dmv-1920x785.png 1920w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>



<p>The Latency Desc column helps to interpret the results. Latency can be classified as shown in the following table. Of course, this is a rule of thumb and your needs may vary. </p>



<figure class="wp-block-table is-style-stripes"><table><tbody><tr><td>0 to 1 ms</td><td>Excellent</td></tr><tr><td>2 to 5 ms</td><td>Very good</td></tr><tr><td>6 to 10 ms</td><td>Good</td></tr><tr><td>11 to 20 ms</td><td>Poor</td></tr><tr><td>21 to 100 ms</td><td>Bad</td></tr><tr><td>101 to 500 ms</td><td>Yikes!</td></tr><tr><td>more than 500 ms</td><td>YIKES!!!</td></tr></tbody></table></figure>



<h2 class="wp-block-heading">Check disk latency using dbatools</h2>



<p>Fans of <a href="https://dbatools.io/" target="_blank" rel="noreferrer noopener">dbatools.io</a> may already know that something similar to the query above is included as part of the <a href="https://docs.dbatools.io/#Test-DbaDiskSpeed" target="_blank" rel="noreferrer noopener">Test-DbaDiskSpeed</a> command. </p>



<p>You can run the command as-is, only providing the instance and credentials to use. I typically add a few other options to format the output into a table and send it to a file that I can easily examine. </p>



<pre class="wp-block-code"><code>Test-DbaDiskSpeed -SqlInstance localhost -SqlCredential sa | Format-Table -Property Database, SizeGB, FileName, FileID, FileType, DiskLocation, Reads, AverageReadStall, ReadPerformance, Writes, AverageWriteStall, WritePerformance, 'Avg Overall Latency' | Out-String -Width 4096 |out-file c:\temp\DbaDiskSpeed.txt</code></pre>



<p>Running the PowerShell script on my docker-based SQL Server 2017 instance provides the following output file. </p>



<figure class="wp-block-image size-large"><a href="https://theserogroup.com/wp-content/uploads/2021/05/diskspeedoutputsqlserverdbatools.png"><img loading="lazy" decoding="async" width="1024" height="354" src="https://theserogroup.com/wp-content/uploads/2021/05/diskspeedoutputsqlserverdbatools-1024x354.png" alt="SQL Server disk latency identified dbatools" class="wp-image-3731" srcset="https://theserogroup.com/wp-content/uploads/2021/05/diskspeedoutputsqlserverdbatools-1024x354.png 1024w, https://theserogroup.com/wp-content/uploads/2021/05/diskspeedoutputsqlserverdbatools-300x104.png 300w, https://theserogroup.com/wp-content/uploads/2021/05/diskspeedoutputsqlserverdbatools-768x265.png 768w, https://theserogroup.com/wp-content/uploads/2021/05/diskspeedoutputsqlserverdbatools-1536x531.png 1536w, https://theserogroup.com/wp-content/uploads/2021/05/diskspeedoutputsqlserverdbatools.png 1598w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>



<h2 class="wp-block-heading">Let&#8217;s not ask SQL Server about disk latency</h2>



<p>Of course, there will be those who mistrust the results from either of these methods, because, well, of course SQL Server wouldn&#8217;t fess up to being the bottleneck. It&#8217;s obviously going to point the finger elsewhere. </p>



<p>To address those claims, check out <a href="https://theserogroup.com/sql-server-consulting/identify-disk-i-o-performance-issues-for-your-sql-server-using-diskspd/">Identify Disk I/O Performance Issues for Your SQL Server Using DiskSpd</a>. That tool completely removes SQL Server from the discussion and objectively tests the disk I/O. </p>



<p>But for a quick sanity check, you can&#8217;t beat the sys.dm_io_virtual_file_stats DMV and the Test-DbaDiskSpeed command.</p>



<p>Looking for other ways to diagnose or improve performance? Here are a few other posts that may help. </p>



<ul class="wp-block-list"><li><a href="https://theserogroup.com/sql-server/should-i-add-hardware-resources-to-my-sql-server-do-this-first/">Should I Add Hardware Resources to My SQL Server? Do This First.</a> </li><li><a href="https://theserogroup.com/dba/sql-server-performance-and-windows-power-plan/">SQL Server Performance and Windows Power Plan</a></li><li><a href="https://theserogroup.com/dba/how-do-views-affect-sql-server-performance/">How do Views Affect SQL Server Performance?</a></li><li><a href="https://theserogroup.com/sql-server/is-my-sql-server-configured-properly/">Is My SQL Server Configured Properly?</a></li></ul>



<h2 class="wp-block-heading">Want to work with The SERO Group?</h2>



<p>Want to learn more about how SERO Group helps organizations take the guesswork out of managing their SQL Servers? It’s easy and there is no obligation.&nbsp;</p>



<p><a href="https://calendly.com/joe_webb" target="_blank" rel="noreferrer noopener">Schedule a call</a>&nbsp;with us to get started.</p>
<p>The post <a href="https://theserogroup.com/dba/identifying-sql-server-disk-latency/">Identifying SQL Server Disk Latency</a> appeared first on <a href="https://theserogroup.com">The SERO Group</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://theserogroup.com/dba/identifying-sql-server-disk-latency/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">3721</post-id>	</item>
		<item>
		<title>Learn SQL Server with PluralSight’s FreeApril</title>
		<link>https://theserogroup.com/professional-development/learn-sql-server-with-pluralsights-freeapril/</link>
		
		<dc:creator><![CDATA[Joe Webb]]></dc:creator>
		<pubDate>Mon, 05 Apr 2021 19:35:07 +0000</pubDate>
				<category><![CDATA[Professional Development]]></category>
		<category><![CDATA[Clustering]]></category>
		<category><![CDATA[Clusters]]></category>
		<category><![CDATA[Database]]></category>
		<category><![CDATA[Database Administration]]></category>
		<category><![CDATA[Database Development]]></category>
		<category><![CDATA[IT Manager]]></category>
		<category><![CDATA[Microsoft Azure]]></category>
		<category><![CDATA[Sero]]></category>
		<category><![CDATA[Sero Group]]></category>
		<category><![CDATA[Serogroup]]></category>
		<category><![CDATA[Shared Disks]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[SQL Assessment]]></category>
		<category><![CDATA[SQL Audit]]></category>
		<category><![CDATA[SQL Community]]></category>
		<category><![CDATA[SQL Conference]]></category>
		<category><![CDATA[SQL Consultant]]></category>
		<category><![CDATA[SQL Events]]></category>
		<category><![CDATA[SQL Security]]></category>
		<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[SQL Server Consultant]]></category>
		<category><![CDATA[SQL Server Management]]></category>
		<category><![CDATA[SQL Training]]></category>
		<category><![CDATA[TempDB]]></category>
		<category><![CDATA[The Sero Group]]></category>
		<guid isPermaLink="false">https://theserogroup.com/?p=3261</guid>

					<description><![CDATA[<p>“I want to learn [a technology]. Where should I start?” Since I’ve spent the last 25 year working with SQL Server (no exaggeration, see footnote), the question is usually about learning SQL Server. Sometimes it’s about learning related technologies such as data analytics and visualization, scripting languages such as Python or PowerShell, or the burgeoning&#8230; <br /> <a class="read-more" href="https://theserogroup.com/professional-development/learn-sql-server-with-pluralsights-freeapril/">Read more</a></p>
<p>The post <a href="https://theserogroup.com/professional-development/learn-sql-server-with-pluralsights-freeapril/">Learn SQL Server with PluralSight’s FreeApril</a> appeared first on <a href="https://theserogroup.com">The SERO Group</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>“I want to learn [a technology]. Where should I start?” Since I’ve spent the last 25 year working with SQL Server (no exaggeration, see footnote), the question is usually about learning SQL Server. Sometimes it’s about learning related technologies such as data analytics and visualization, scripting languages such as Python or PowerShell, or the burgeoning fields Artificial Intelligence and Machine Learning. </p>



<p>There are a lots of great free options for learning SQL Server. I shared some in <a href="https://theserogroup.com/training/want-to-learn-sql-server-here-are-3-free-sources/">Want to Learn SQL Server? Here Are 3 Free Sources</a>. </p>



<p>Many of those sources are directly from Microsoft through their labs, Channel 9, and EdX programs. Others are from members in the SQL Server community, both individuals and companies, usually in the form of training videos, user group presentations, and MeetUps. </p>



<p>But there are other resources, too, including some low-cost options for learning SQL Server. </p>



<h2 class="wp-block-heading" id="h-pluralsight-can-be-a-great-place-to-learn-sql-server">PluralSight can be a great place to learn SQL Server</h2>



<p><a rel="noreferrer noopener" href="https://www.pluralsight.com" target="_blank">PluralSight</a> has become a leading platform for training videos for all sorts of technical training. Some of the smartest people I know in the SQL Server world have top-notch training videos on PluralSight. I’m reluctant to begin mentioning names here because there are so many. I’m sure I’d accidentally omit someone. Nevertheless, stalwarts from the community who regularly share their knowledge in user group meetings, at conferences and pre-cons (in the pre-COVID days), and online in forums and Twitter’s <a href="https://twitter.com/search?q=%23sqlhelp&amp;src=typed_query" target="_blank" rel="noreferrer noopener">sqlhelp hashtag</a> have PluralSight courses. If you’re looking for one in particular, here’s a list of <a rel="noreferrer noopener" href="https://www.pluralsight.com/authors" target="_blank">PluralSight authors</a>. You can also search the <a rel="noreferrer noopener" href="https://www.pluralsight.com/browse" target="_blank">PluralSight catalog</a> of courses.</p>



<p>PluralSight is not free, however. You have to pay to have access to their content. They share that revenue with the contributors, so course authors get paid for their work. Note: I do not have any courses on PluralSight nor do I have a referral agreement with the company. So, I&#8217;m not hocking something to get a kickback .</p>



<p>For those of us that like to &#8220;try before we buy,&#8221; for the month of April 2021 PluralSight is making their content available for free. They are calling it <a href="https://www.pluralsight.com/offer/2021/free-april-individual" target="_blank" rel="noreferrer noopener">FREEAPRIL</a>. </p>



<h2 class="wp-block-heading" id="h-want-to-work-with-the-sero-group">Want to work with The Sero Group?</h2>



<p>While you&#8217;re leveling up your SQL prowess, we&#8217;ll be happy to help out with any SQL Server needs you may have. </p>



<p><a href="https://theserogroup.com/#contact" target="_blank" rel="noreferrer noopener">Schedule a call</a> with us to learn more. There&#8217;s no obligation.</p>



<p><strong>Footnote</strong>: I first started working with <a href="https://en.wikipedia.org/wiki/History_of_Microsoft_SQL_Server" target="_blank" rel="noreferrer noopener">Microsoft SQL Server 6.5 back in 1996</a>. In fact, that was one of the first certification exams I passed.  </p>
<p>The post <a href="https://theserogroup.com/professional-development/learn-sql-server-with-pluralsights-freeapril/">Learn SQL Server with PluralSight’s FreeApril</a> appeared first on <a href="https://theserogroup.com">The SERO Group</a>.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">3261</post-id>	</item>
		<item>
		<title>Scary and Dangerous Things in SQL Server</title>
		<link>https://theserogroup.com/professional-development/scary-and-dangerous-things-in-sql-server/</link>
		
		<dc:creator><![CDATA[Joe Webb]]></dc:creator>
		<pubDate>Tue, 16 Mar 2021 17:24:05 +0000</pubDate>
				<category><![CDATA[Professional Development]]></category>
		<category><![CDATA[Clustering]]></category>
		<category><![CDATA[Clusters]]></category>
		<category><![CDATA[Database]]></category>
		<category><![CDATA[Database Administration]]></category>
		<category><![CDATA[Database Development]]></category>
		<category><![CDATA[IT Manager]]></category>
		<category><![CDATA[Microsoft Azure]]></category>
		<category><![CDATA[Script Library]]></category>
		<category><![CDATA[Sero]]></category>
		<category><![CDATA[Sero Group]]></category>
		<category><![CDATA[Serogroup]]></category>
		<category><![CDATA[Shared Disks]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[SQL Assessment]]></category>
		<category><![CDATA[SQL Audit]]></category>
		<category><![CDATA[SQL Consultant]]></category>
		<category><![CDATA[SQL Events]]></category>
		<category><![CDATA[SQL Security]]></category>
		<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[SQL Server Consultant]]></category>
		<category><![CDATA[SQL Server Management]]></category>
		<category><![CDATA[SQL Training]]></category>
		<category><![CDATA[The Sero Group]]></category>
		<guid isPermaLink="false">https://theserogroup.com/?p=3579</guid>

					<description><![CDATA[<p>Some things are scary. Other things are dangerous. And in SQL Server, you can have both scary and dangerous at the same time. Scary, that we can deal with. But dangerous, particularly things that are deceptively dangerous, is bad. Scary things Let&#8217;s start with scary. Some things give us pause. We see them, think about&#8230; <br /> <a class="read-more" href="https://theserogroup.com/professional-development/scary-and-dangerous-things-in-sql-server/">Read more</a></p>
<p>The post <a href="https://theserogroup.com/professional-development/scary-and-dangerous-things-in-sql-server/">Scary and Dangerous Things in SQL Server</a> appeared first on <a href="https://theserogroup.com">The SERO Group</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Some things are scary. Other things are dangerous. And in SQL Server, you can have both scary and dangerous at the same time. Scary, that we can deal with. But dangerous, particularly things that are deceptively dangerous, is bad. </p>



<h2 class="wp-block-heading" id="h-scary-things">Scary things</h2>



<p>Let&#8217;s start with scary. </p>



<p>Some things give us pause. We see them, think about them, and begin listing all the ways that something could go wrong. </p>



<p>Rappelling. Rappelling is a good example. Backing up to the edge of a rock mountain face with nothing between you and the distant ground. Leaning back as far as your can. Extending out from the safety of the ledge. Jumping backward with only a rope. It&#8217;s unnatural. Our instinct tells us we shouldn&#8217;t do it. Every fiber of our being screams &#8220;Nope!&#8221; </p>



<p>It&#8217;s scary.</p>



<p>But just because it&#8217;s scary doesn&#8217;t mean it&#8217;s unsafe. Or dangerous. With proper training and gear, rappelling is a great experience. It&#8217;s a lot of fun. And it can be done safely. We are aware of what we&#8217;re doing. We have a heightened sense and an increased awareness of the things that can wrong. And we purposely take steps to mitigate any danger present.</p>



<h3 class="wp-block-heading" id="h-scary-things-in-sql-server">Scary things in SQL Server</h3>



<p>In SQL Server, upgrades and server migrations can be scary. What happens if things go wrong? Can the migration be completed during the maintenance window? Will users be able to login when the time comes? What about performance afterward? </p>



<p>These are very real issues.</p>



<p>But, as with rappelling, we can take steps to mitigate the scary issues. We can meticulously plan the upgrade/migration. We can perform the upgrade/migration in a test environment first, allowing users to validate and approve before production is ever touched. Backups can be taken before the upgrade begins. The VM can snapshotted.</p>



<p>In short, we&#8217;ve identified the potential problems that could arise and we&#8217;ve taken precautions. </p>



<p>It may be scary, but it&#8217;s safe. </p>



<h2 class="wp-block-heading" id="h-dangerous-things">Dangerous things</h2>



<p>Dangerous things are more concerning, especially if the danger is not recognized. </p>



<p>Walking along the side of a snow-covered mountain on a peaceful day. The sun warms your face. You can see for miles. Beauty abounds. It&#8217;s an exhilarating experience, a serene journey, a peaceful adventure.</p>



<p>Yet, it can also be dangerous. A foot or more beneath the crunch of each step, a layer of ice may have formed between two layers of snow. The ice creates a seam, a seam with little friction. It wouldn&#8217;t take much for that snow above the ice to begin sliding, creating an avalanche. And as we all know, avalanches are very dangerous for everyone nearby. </p>



<h3 class="wp-block-heading" id="h-dangerous-things-in-sql-server">Dangerous things in SQL Server</h3>



<p> In SQL Server, danger comes in many forms. Everything may seem ok, at least on the surface, but something could go very wrong, very quickly.</p>



<ul class="wp-block-list">
<li><strong>Untested backups</strong>. Having backups but not testing them regularly. </li>



<li><strong>No alerts. </strong>A production SQL Server without configured alerts. </li>



<li><strong>Ignored alerts.</strong> Alerts that are ignored because there are too many false positives.</li>



<li><strong>Untested Disaster Recovery Plan. </strong>A crisis is not the time to try to figure out your DR.</li>



<li><strong>Assumed RPOs and RTOs.</strong> Not being able to recover to the right point in time in the allotted time. </li>



<li><strong>SQL Server health. </strong>Uncertainty about how your SQL Server is configured. </li>



<li><strong>Deferred maintenance.</strong> Preventative maintenance jobs take too long to complete so they are disabled. </li>



<li><strong>Unpatched SQL Servers. </strong>Patching is not scheduled regularly. </li>



<li><strong>Out of Support SQL Servers. </strong>There&#8217;s simply no time to upgrade so ancient versions of SQL Servers are still hanging around.</li>



<li><strong>Reacting rather than responding.</strong> Addressing the symptom rather than fixing the problem.</li>



<li><strong>Conflating HA and DR.</strong> High Availability and Disaster Recovery are similar but not interchangeable. </li>



<li><strong>Unmonitored SQL Server environments.</strong> SQL Servers are left on their own to report issues. </li>



<li><strong>Elevated permissions.</strong> Too many people with sysadmin or dbo privileges.</li>
</ul>



<p>Of course, this is not a comprehensive list of all the dangers that can lurk in a SQL Server environment. I&#8217;m sure you have some from your experiences. Feel free to share in the comments below; I&#8217;d love to hear them. </p>



<h3 class="wp-block-heading" id="h-mitigating-dangers-in-sql-server">Mitigating dangers in SQL Server</h3>



<p>Recognition is the first step. We must identify and acknowledge the dangers inherent in our SQL Server environment. Then we can do something about them. We can take steps to mitigate the dangers, to reduce or even eliminate the problems we&#8217;ve identified. </p>



<p>Here are a few posts that may help. </p>



<ul class="wp-block-list">
<li><a href="https://theserogroup.com/the-sero-group/how-often-should-i-test-my-sql-server-backups/">How Often Should I Test My SQL Server Backups?</a></li>



<li><a href="https://theserogroup.com/sql-server/is-my-sql-server-configured-properly/">Is My SQL Server Configured Properly?</a></li>



<li><a href="https://theserogroup.com/sql-configuration-assessment">SQL Server Assessments</a></li>



<li><a href="https://theserogroup.com/sql-server/when-was-the-last-known-good-dbcc-checkdb-integrity-check/">When Was the Last Known Good DBCC CHECKDB Integrity Check?</a></li>



<li><a href="https://theserogroup.com/sql-server/should-i-upgrade-sql-servers-that-are-out-of-support/">Should I Upgrade SQL Servers that Are Out of Support?</a></li>



<li><a href="https://theserogroup.com/sql-server/hadr-options-for-sql-server/">High Availability and Disaster Recovery in SQL Server</a></li>



<li><a href="https://theserogroup.com/database-administration-as-a-service">DBA as a Service</a></li>



<li><a href="https://theserogroup.com/sql-server/securing-your-sql-servers-what-should-you-audit/">Securing Your SQL Servers, What Should You Audit?</a></li>
</ul>



<p>And, of course, we&#8217;ll be happy to help. It&#8217;s what we do. </p>



<h2 class="wp-block-heading" id="h-want-to-work-with-the-sero-group">Want to work with The Sero Group?</h2>



<p>Want to learn more about how SERO Group helps organizations take the guesswork out of managing their SQL Servers? It’s easy and there is no obligation.&nbsp;</p>



<p><a href="https://theserogroup.com/#contact" target="_blank" rel="noreferrer noopener">Schedule a call</a> with us to get started.</p>



<p>(To give credit where it&#8217;s due. The idea for Scary vs Dangerous was adapted from Jim Koch&#8217;s excellent and entertaining book <a href="https://www.amazon.com/Quench-Your-Own-Thirst-Business/dp/125013501X/ref=sr_1_1?crid=1MM7L99EM3I2L&amp;dchild=1&amp;keywords=quench+your+own+thirst+by+jim+koch&amp;qid=1615911221&amp;sprefix=quench+your%2Caps%2C225&amp;sr=8-1" target="_blank" rel="noreferrer noopener">Quench Your Own Thirst</a>.)</p>
<p>The post <a href="https://theserogroup.com/professional-development/scary-and-dangerous-things-in-sql-server/">Scary and Dangerous Things in SQL Server</a> appeared first on <a href="https://theserogroup.com">The SERO Group</a>.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">3579</post-id>	</item>
		<item>
		<title>Should I Add Hardware Resources to My SQL Server? Do This First.</title>
		<link>https://theserogroup.com/sql-server/should-i-add-hardware-resources-to-my-sql-server-do-this-first/</link>
					<comments>https://theserogroup.com/sql-server/should-i-add-hardware-resources-to-my-sql-server-do-this-first/#comments</comments>
		
		<dc:creator><![CDATA[Joe Webb]]></dc:creator>
		<pubDate>Thu, 04 Mar 2021 14:17:41 +0000</pubDate>
				<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[Clustering]]></category>
		<category><![CDATA[Clusters]]></category>
		<category><![CDATA[Database]]></category>
		<category><![CDATA[Database Administration]]></category>
		<category><![CDATA[Database Development]]></category>
		<category><![CDATA[IT Manager]]></category>
		<category><![CDATA[Microsoft Azure]]></category>
		<category><![CDATA[Sero]]></category>
		<category><![CDATA[Sero Group]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[SQL Assessment]]></category>
		<category><![CDATA[SQL Consultant]]></category>
		<category><![CDATA[SQL Events]]></category>
		<category><![CDATA[SQL Security]]></category>
		<category><![CDATA[SQL Server Consultant]]></category>
		<category><![CDATA[SQL Server Management]]></category>
		<category><![CDATA[SQL Training]]></category>
		<category><![CDATA[TempDB]]></category>
		<category><![CDATA[The Sero Group]]></category>
		<guid isPermaLink="false">https://theserogroup.com/?p=3546</guid>

					<description><![CDATA[<p>&#8220;The server is seriously slow! Can&#8217;t we add memory or something?&#8221; We&#8217;ve all heard this before. You may have even thought it yourself. Adding resources could be an easy fix to a troublesome performance problem. After all, SQL Server hungers for memory. The more the better. And a side of processor goes a long way,&#8230; <br /> <a class="read-more" href="https://theserogroup.com/sql-server/should-i-add-hardware-resources-to-my-sql-server-do-this-first/">Read more</a></p>
<p>The post <a href="https://theserogroup.com/sql-server/should-i-add-hardware-resources-to-my-sql-server-do-this-first/">Should I Add Hardware Resources to My SQL Server? Do This First.</a> appeared first on <a href="https://theserogroup.com">The SERO Group</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>&#8220;The server is seriously slow! Can&#8217;t we add memory or something?&#8221; We&#8217;ve all heard this before. You may have even thought it yourself. Adding resources could be an easy fix to a  troublesome performance problem. After all, SQL Server hungers for memory. The more the better. And a side of processor goes a long way, too. </p>



<p>I&#8217;m reminded of a classic IBM consulting commercial from many years ago. [<a href="https://www.youtube.com/watch?v=xHTNu5UQvH4" target="_blank" rel="noreferrer noopener">IBM &#8211; Throw Money At It? &#8211; Catapult Ad &#8211; YouTube</a>]. In it, Consultant Ned advises Sir Arthur to build a giant catapult to fire the &#8220;greatest of projectiles&#8221; at the attacking sloth. If you haven&#8217;t seen it, it&#8217;s worth 30 seconds of your time. </p>



<h2 class="wp-block-heading" id="h-the-cost-of-adding-resources-to-your-sql-server">The cost of adding resources to your SQL Server</h2>



<p>Adding hardware may seem like a good idea. It could be a quick fix that will make users happy, at least for a while. But it&#8217;s not a panacea. It can come with a hefty price tag. So it shouldn&#8217;t be the first tool out of the bag. </p>



<h3 class="wp-block-heading" id="h-compute-time">Compute time</h3>



<p>With the turn of a knob, you can add a couple of processers to the VM. A click of a mouse can increase the memory available to SQL Server. And in Azure, AWS, and other IaaS providers, faster solid-state disks are there for the asking. That&#8217;s definitely an Easy button. </p>



<p>However, these are not free, especially in a cloud environment. In a model where you pay by the resource and compute, these changes come with a very real and direct cost. </p>



<p>Even in a on-prem environment, the more resources you allocate to one VM, the fewer you&#8217;ll have available for the other VMs residing on the host. </p>



<h3 class="wp-block-heading" id="h-sql-server-licenses">SQL Server licenses</h3>



<p>SQL Server licensing is, in a word, complex. So, I&#8217;m not going to get into the nuances of the different licensing models. However, SQL Server is licensed by processor. And it&#8217;s not cheap. The price for SQL Server 2019 Enterprise Edition is currently $13,748 for a 2-core pack, whereas the Standard Edition is $3,586, according to <a href="https://www.microsoft.com/en-us/sql-server/sql-server-2019-pricing" target="_blank" rel="noreferrer noopener">Microsoft</a>. So adding four processors to a SQL Server Enterprise Edition system can have a memorable price tag.</p>



<p>Additionally SQL Server Standard Edition has some <a href="https://docs.microsoft.com/en-us/sql/sql-server/compute-capacity-limits-by-edition-of-sql-server?view=sql-server-ver15" target="_blank" rel="noreferrer noopener">built-in resource limitations</a>. Once those are reached, you&#8217;ll need to either upgrade to Enterprise Edition, or scale out to other SQL Server Standard Edition instances. Obviously both have some hard and soft costs.</p>



<p>For more information about the differences in the editions of SQL Server, see <a href="https://theserogroup.com/sql-server/do-i-really-need-sql-server-enterprise-edition/">Do I Really Need SQL Server Enterprise Edition?</a></p>



<h2 class="wp-block-heading" id="h-before-adding-resources-to-your-sql-server">Before adding resources to your SQL Server</h2>



<p>As enticing as throwing resources at your SQL Server problem may be, it&#8217;s certainly a good idea to look at other options to solve your performance problems first. In doing so, you may, indeed, find that SQL Server needs more resources. But, at least, you&#8217;ll know exactly what resources are needed, and have confidence that you are making the right decision. </p>



<p>So, before you turn the magical resource knob, let&#8217;s look a few areas to examine first.</p>



<h3 class="wp-block-heading" id="h-define-the-problem">Define the problem</h3>



<p>Albert Einstein purportedly said &#8220;If given an hour to solve a problem, I would spend 55 minutes defining the problem and then five minutes solving it.&#8221; </p>



<p>Although there is some serious doubt around whether he actually said that, the point is still a good one. Before rushing in to solve a problem, it&#8217;s best to truly understand what you&#8217;re actually trying to accomplish. Define the problem before attempting to solve it is sound advice, even if Einstein didn&#8217;t say it.</p>



<p>In the SQL Server world, we&#8217;ve seen a wide array of &#8220;database problems&#8221; that weren&#8217;t actually &#8220;database&#8221; problems. So it&#8217;s a good idea to actually make sure the issue doesn&#8217;t reside somewhere else. For example, could it be a networking issue? Or perhaps a DNS issue? Maybe it&#8217;s a Citrix issue? </p>



<p>This is where benchmarking your systems can be of tremendous help. Have a look a the key metrics now and compare them to the metrics captured last month or last year. See if there&#8217;s a noticeable difference in response times, etc. </p>



<p>Clarifying the problem up front can save you time and money in the long run. </p>



<h3 class="wp-block-heading" id="h-assess-the-sql-server-configuration">Assess the SQL Server configuration</h3>



<p>Once you&#8217;ve determined that the problem may actually be with the SQL Server, it&#8217;s worth your time to do a high-level assessment of the configuration. This is especially important if you&#8217;ve inherited the SQL Server, didn&#8217;t set it up yourself, or it&#8217;s been a long time since you&#8217;ve looked at it. </p>



<p>In our <a href="https://theserogroup.com/sql-configuration-assessment">SQL Server Assessments</a>, we do a thorough analysis of the system configuration and settings. We look to see how it compares to industry best practices from a lot of perspectives, including those that would affect performance. </p>



<p>You may not have to go to that level of detail at this stage, though. A cursory glance at some of the more commonly misconfigured settings may prove fruitful. At a minimum, it&#8217;s worth ensuring that:</p>



<ul class="wp-block-list">
<li><a href="https://docs.microsoft.com/en-us/sql/relational-databases/databases/tempdb-database?view=sql-server-ver15" target="_blank" rel="noreferrer noopener">tempdb</a> is configured properly. Verify you have the right number, the right location, and the right sizes. See <a href="https://theserogroup.com/sql-server/3-ways-to-find-your-sql-server-tempdb-data-files/">3 Ways to Find Your SQL Server tempdb Data Files</a> and <a href="https://theserogroup.com/sql-server/how-many-tempdb-data-files-should-my-sql-server-have/">How Many tempdb Data Files Should My SQL Server Have?</a></li>



<li><a href="https://docs.microsoft.com/en-us/sql/database-engine/configure-windows/configure-the-max-degree-of-parallelism-server-configuration-option?view=sql-server-ver15" target="_blank" rel="noreferrer noopener">MAXDOP</a> is not left at the default setting. That&#8217;s seldom the best choice.</li>



<li><a href="https://docs.microsoft.com/en-us/sql/database-engine/configure-windows/configure-the-cost-threshold-for-parallelism-server-configuration-option?view=sql-server-ver15" target="_blank" rel="noreferrer noopener">Cost Threshold for Parallelism</a> is not set to the default. This never the right choice. </li>
</ul>



<p>You can also look for other areas that could cause contention, such ensuring data and log files are separated, etc.</p>



<p>This quick assessment may not reveal the solution, but as long as you&#8217;re looking at the SQL Server anyway, it&#8217;s a good idea to do a quick check. Here&#8217;s some more information  that may be helpful as well &#8211; <a href="https://theserogroup.com/sql-server/is-my-sql-server-configured-properly/">Is My SQL Server Configured Properly?</a> </p>



<p>Also, check out our <a href="https://theserogroup.com/sql-server-configuration-download/">SQL Server Configuration: 5 Common Issues That May Be Putting Your Data at Risk free PDF</a>.</p>



<h3 class="wp-block-heading" id="h-confirm-maintenance-plans">Confirm maintenance plans</h3>



<p>When a new query comes in, the SQL Server query optimizer decides how to resolve it. The optimizer considers quite a few alternatives for gathering the data. It assigns a cost to each approach and selects the plan with the lowest cost. This is known as cost-based optimization. </p>



<p>Cost-based optimization is predicated on having good, accurate, and up-to-date statistics. If the statistics are stale, bad decisions are made. And bad decisions lead to poor performance. </p>



<p>Verify that maintenance plans are in place to keep the statistics up to date. Verify that indexes are being maintained as well. </p>



<h3 class="wp-block-heading" id="h-examine-sql-server-wait-statistics">Examine SQL Server wait statistics</h3>



<p>As SQL Server goes about its job of receiving and responding to queries, it actively manage its key resources. For example, memory, CPU, disk i/o and network throughput are all critical resources for SQL Server. </p>



<p>SQL Server tracks what each thread is doing, and more importantly for this discussion, what each thread is waiting on when it&#8217;s waiting. This is information is commonly called wait stats. </p>



<p>Best of all, SQL Server makes this information available to us. We can use the <a href="https://docs.microsoft.com/en-us/sql/relational-databases/system-dynamic-management-views/system-dynamic-management-views?view=sql-server-ver15" target="_blank" rel="noreferrer noopener">Dynamic Management Views (DMVs)</a> to ask SQL Server what it&#8217;s waiting on.</p>



<p>There are a LOT of wait stats. Paul Randal has a some great information about them on the SQL Skills web site. <a href="https://www.sqlskills.com/blogs/paul/wait-statistics-or-please-tell-me-where-it-hurts/" target="_blank" rel="noreferrer noopener">Here&#8217;s a great place to start reading</a> some of his detailed writing on the subject. And, of course, Glenn Berry has a ton of <a href="https://glennsqlperformance.com/resources/" target="_blank" rel="noreferrer noopener">DMV queries</a>.</p>



<p>If you&#8217;re more of a point-and-click person, you can also find some useful information in SQL Server Management Studio&#8217;s <a href="https://docs.microsoft.com/en-us/sql/relational-databases/performance/performance-dashboard?view=sql-server-ver15" target="_blank" rel="noreferrer noopener">Performance Dashboard</a>. It&#8217;s not nearly as comprehensive as going right to the DMV source, but it may provide enough information to point you in the right direction. </p>



<h3 class="wp-block-heading" id="h-identify-the-most-resource-intensive-queries">Identify the most resource intensive queries</h3>



<p>Another approach consider before adding hardware resources, is to identify the most expensive or problematic queries on your SQL Server and see if you can do something about them. </p>



<p>The most expensive queries are not always the ones that take the longest to complete. A query for a report delivered nightly at 2:00 AM may take 10 minutes to complete. And you may not care because the SQL Server is not heavily used in the wee hours of the morning. </p>



<p>On the other hand, you may find a that the application login procedures take 10 seconds to complete. Each morning from 7:00 AM to 9:00 AM while users are logging in, the system is S-L-O-W! If you can get those 10 seconds down to 10 milliseconds, you&#8217;ve got huge win. </p>



<p>The DMVs will be your friend in searching for these. SSMS also has some standard reports built in, including:</p>



<ul class="wp-block-list">
<li>Top Queries by Average CPU Time</li>



<li>Top Queries by Total CPU Time</li>



<li>All Blocking Transactions</li>



<li>Service Broker Statistics</li>



<li>Top Queries by Average IO</li>



<li>Top Queries by Total IO</li>



<li>and much more</li>
</ul>



<p>With &#8220;home grown&#8221; applications, those applications designed and developed by your company, you may have the freedom to make some pretty substantive changes. You can recommend database design changes and tune long running queries. You can create indexes and remove nested views. (See <a href="https://theserogroup.com/dba/how-do-views-affect-sql-server-performance/">How do Views Affect SQL Server Performance?</a>) </p>



<p>For purchased applications, on the other hand, such as electronic medical records, accounting packages, job costing applications, etc, it&#8217;s best to coordinate with the vendor. Typically, it&#8217;s not a good idea change to their application. It&#8217;ll break support and probably hinder your ability to upgrade in the future. </p>



<h2 class="wp-block-heading" id="h-other-tools-and-resources">Other tools and resources</h2>



<p>Here are a few other tools and resources that may help. </p>



<ul class="wp-block-list">
<li><a href="https://docs.microsoft.com/en-us/sql/relational-databases/performance/performance-monitoring-and-tuning-tools?view=sql-server-ver15" target="_blank" rel="noreferrer noopener">Performance Monitoring and Tuning Tools</a></li>



<li><a href="https://sqlperformance.com/" target="_blank" rel="noreferrer noopener">SQLPerformance.com</a></li>



<li><a href="https://www.sentryone.com/products/sentryone-platform/sql-sentry/sql-server-performance-monitoring" target="_blank" rel="noreferrer noopener">SQL Sentry</a></li>



<li><a href="https://theserogroup.com/dba/sql-server-performance-and-windows-power-plan/">SQL Server Performance and Windows Power Plan</a></li>



<li><a href="https://theserogroup.com/sql-server-consulting/identify-disk-i-o-performance-issues-for-your-sql-server-using-diskspd/">Identify Disk I/O Performance Issues for Your SQL Server Using DiskSpd</a></li>



<li><a href="https://theserogroup.com/sql-server/why-9-out-of-10-sql-servers-arent-configured-with-best-practices/">Why 9 Out of 10 SQL Servers Aren’t Configured with Best Practices</a></li>
</ul>



<h2 class="wp-block-heading" id="h-want-to-work-with-the-sero-group">Want to work with The Sero Group?</h2>



<p>Want to learn more about how SERO Group helps organizations take the guesswork out of managing their SQL Servers? It’s easy and there is no obligation.&nbsp;</p>



<p><a href="https://theserogroup.com/#contact" target="_blank" rel="noreferrer noopener">Schedule a call</a> with us to get started.</p>
<p>The post <a href="https://theserogroup.com/sql-server/should-i-add-hardware-resources-to-my-sql-server-do-this-first/">Should I Add Hardware Resources to My SQL Server? Do This First.</a> appeared first on <a href="https://theserogroup.com">The SERO Group</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://theserogroup.com/sql-server/should-i-add-hardware-resources-to-my-sql-server-do-this-first/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">3546</post-id>	</item>
		<item>
		<title>SQL Server Performance and Windows Power Plan</title>
		<link>https://theserogroup.com/dba/sql-server-performance-and-windows-power-plan/</link>
					<comments>https://theserogroup.com/dba/sql-server-performance-and-windows-power-plan/#comments</comments>
		
		<dc:creator><![CDATA[Joe Webb]]></dc:creator>
		<pubDate>Fri, 26 Feb 2021 19:32:51 +0000</pubDate>
				<category><![CDATA[DBA]]></category>
		<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[Clustering]]></category>
		<category><![CDATA[Clusters]]></category>
		<category><![CDATA[Database]]></category>
		<category><![CDATA[Database Administration]]></category>
		<category><![CDATA[Database Development]]></category>
		<category><![CDATA[IT Manager]]></category>
		<category><![CDATA[Microsoft Azure]]></category>
		<category><![CDATA[Script Library]]></category>
		<category><![CDATA[Sero]]></category>
		<category><![CDATA[Sero Group]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[SQL Assessment]]></category>
		<category><![CDATA[SQL Consultant]]></category>
		<category><![CDATA[SQL Events]]></category>
		<category><![CDATA[SQL Server Consultant]]></category>
		<category><![CDATA[SQL Server Management]]></category>
		<category><![CDATA[The Sero Group]]></category>
		<guid isPermaLink="false">https://theserogroup.com/?p=3526</guid>

					<description><![CDATA[<p>Conserving energy is good. It’s good for the environment and it’s good for the bottom line. That’s why Windows Server has built-in power settings. But there&#8217;s a trade off. With reduced power comes reduced performance for most SQL Servers. The Windows Power Plan Setting Windows Server has three pre-defined power settings: Balanced, High Performance, and&#8230; <br /> <a class="read-more" href="https://theserogroup.com/dba/sql-server-performance-and-windows-power-plan/">Read more</a></p>
<p>The post <a href="https://theserogroup.com/dba/sql-server-performance-and-windows-power-plan/">SQL Server Performance and Windows Power Plan</a> appeared first on <a href="https://theserogroup.com">The SERO Group</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Conserving energy is good. It’s good for the environment and it’s good for the bottom line. That’s why Windows Server has built-in power settings. But there&#8217;s a trade off. With reduced power comes reduced performance for most SQL Servers.</p>



<h2 class="wp-block-heading" id="h-the-windows-power-plan-setting">The Windows Power Plan Setting</h2>



<p>Windows Server has three pre-defined power settings: Balanced, High Performance, and Power Saver. I’ll briefly summarize the settings without going into much detail. The names are pretty descriptive. (Microsoft has some nice documentation about how Windows uses and calculates energy efficiency. See <a rel="noreferrer noopener" href="https://docs.microsoft.com/en-us/windows-server/administration/performance-tuning/hardware/power/power-performance-tuning" target="_blank">Power and performance tuning</a> for more information.)</p>



<h3 class="wp-block-heading" id="h-the-balanced-power-plan">The Balanced Power Plan</h3>



<p>The Balanced power plan is the default Windows Power Plan setting. Unless you’ve intentionally changed the setting, that’s the scheme your Windows Server is using. It’s a good setting for many servers since it balances performance with power consumption. Typically, this setting is not good for SQL Servers, however. A reduction in processing power translates into a reduction in performance.</p>



<h3 class="wp-block-heading" id="h-the-high-performance-power-plan">The High Performance Power Plan</h3>



<p>The High Performance scheme prioritizes server performance over power conservation. All cores are unparked and all processors are running at their highest level. This is the best setting for resource intensive applications and services where throughput and responsiveness is critical. </p>



<h3 class="wp-block-heading" id="h-the-power-saver-power-plan">The Power Saver Power Plan</h3>



<p>Power Saver is exactly that. Priority is given to reducing heat, conserving energy, and lowering operating costs. This may a good setting for some workloads where latency and other performance metrics are less important. It&#8217;s hard to imagine a case when SQL Server would benefit from this setting. </p>



<h2 class="wp-block-heading" id="h-checking-the-windows-power-plan-on-your-sql-server">Checking the Windows Power Plan on your SQL Server </h2>



<p>A Windows Server running SQL Server should almost always use the High Performance setting. Yet, the Windows Power Plan setting is often overlooked when a new server is provisioned. In fact, we routinely find the Balanced Plan setting in place during our <a href="https://theserogroup.com/sql-configuration-assessment">SQL Server Assessments</a>. </p>



<p>So, to help eek out the best performance on your SQL Server, check the Windows Power Plan on your servers. Here are a few ways.</p>



<h3 class="wp-block-heading" id="h-using-the-windows-power-plan-configuration">Using the Windows Power Plan Configuration</h3>



<p>Unless you’re running Windows Server Core or Nano, you have access to the point-and-click GUI environment. To check the Power setting, open the Power Options as shown below. You can see that this server is set for High Performance.</p>



<figure class="wp-block-image size-large"><a href="https://theserogroup.com/wp-content/uploads/2021/02/poweroptions.png"><img loading="lazy" decoding="async" width="762" height="368" src="https://theserogroup.com/wp-content/uploads/2021/02/poweroptions.png" alt="SQL Server Performance and the Windows Power Plan 1" class="wp-image-3532" srcset="https://theserogroup.com/wp-content/uploads/2021/02/poweroptions.png 762w, https://theserogroup.com/wp-content/uploads/2021/02/poweroptions-300x145.png 300w" sizes="auto, (max-width: 762px) 100vw, 762px" /></a></figure>



<p>If your server is set to one of the other plans, you can choose another plan and close the window. No reboot is required for the new setting to take affect. </p>



<h3 class="wp-block-heading" id="h-using-powercfg-to-check-the-windows-power-setting">Using Powercfg to check the Windows Power Setting</h3>



<p>The point-and-click method may be fine for just a few servers. But if you want to check much more than that scripting, will be your friend. Fortunately, Windows Server has a command line utility to help &#8211; the Power Configuration (<a rel="noreferrer noopener" href="https://docs.microsoft.com/en-us/windows-hardware/design/device-experiences/powercfg-command-line-options" target="_blank">Powercfg</a>). </p>



<p>Powercfg has a lot of options, including the ability to check and change the Windows Power Plan. To see the current Power Plan setting, use the command line to run the utility with the /getactivescheme option as shown below.</p>



<pre class="wp-block-code"><code>powercfg /getactivescheme</code></pre>



<p>The current setting is printed to the screen.</p>



<figure class="wp-block-image size-large"><a href="https://theserogroup.com/wp-content/uploads/2021/02/powercfg.png"><img loading="lazy" decoding="async" width="622" height="112" src="https://theserogroup.com/wp-content/uploads/2021/02/powercfg.png" alt="SQL Server Performance and the Windows Power Plan 2 - command line" class="wp-image-3533" srcset="https://theserogroup.com/wp-content/uploads/2021/02/powercfg.png 622w, https://theserogroup.com/wp-content/uploads/2021/02/powercfg-300x54.png 300w" sizes="auto, (max-width: 622px) 100vw, 622px" /></a></figure>



<p>If you want to change the current setting. use the <a rel="noreferrer noopener" href="https://docs.microsoft.com/en-us/windows-hardware/design/device-experiences/powercfg-command-line-options#option_setactive" target="_blank">/setactive</a> option.  </p>



<h3 class="wp-block-heading" id="h-using-dbatools-to-check-the-windows-power-setting">Using DbaTools to check the Windows Power Setting</h3>



<p>For those of use who are PowerShell fans, <a rel="noreferrer noopener" href="https://dbatools.io/" target="_blank">dbatools.io</a> has a great command available called <a rel="noreferrer noopener" href="https://docs.dbatools.io/#Get-DbaPowerPlan" target="_blank">Get-DbaPowerPlan</a>. From within PowerShell, run the command and specify the server(s) you&#8217;d like to check. In the following example, I&#8217;m checking only the local server.</p>



<pre class="wp-block-code"><code>get-dbapowerplan -ComputerName .</code></pre>



<figure class="wp-block-image size-large"><a href="https://theserogroup.com/wp-content/uploads/2021/02/Get-DbaPowerPlan.png"><img loading="lazy" decoding="async" width="422" height="162" src="https://theserogroup.com/wp-content/uploads/2021/02/Get-DbaPowerPlan.png" alt="SQL Server Performance and the Windows Power Plan  - DBATools" class="wp-image-3534" srcset="https://theserogroup.com/wp-content/uploads/2021/02/Get-DbaPowerPlan.png 422w, https://theserogroup.com/wp-content/uploads/2021/02/Get-DbaPowerPlan-300x115.png 300w" sizes="auto, (max-width: 422px) 100vw, 422px" /></a></figure>



<p>You can also use the <a href="https://docs.dbatools.io/#Set-DbaPowerPlan" target="_blank" rel="noreferrer noopener">Set-DbaPowerPlan</a> command to change the setting.</p>



<h2 class="wp-block-heading" id="h-more-on-sql-server-performance">More on SQL Server performance</h2>



<p>If your SQL Server is running with the default Balanced Power Plan, you may be running with less power than you have available. Checking and changing the Windows Power Plan can help boost the performance of your SQL Server. </p>



<p>Here are a few other posts on SQL Server&#8217;s performance, as well. </p>



<ul class="wp-block-list">
<li><a href="https://theserogroup.com/sql-server/is-my-sql-server-configured-properly/">Is My SQL Server Configured Properly?</a></li>



<li><a href="https://theserogroup.com/sql-server-consulting/identify-disk-i-o-performance-issues-for-your-sql-server-using-diskspd/">Identify Disk I/O Performance Issues for Your SQL Server Using DiskSpd</a></li>



<li><a href="https://theserogroup.com/sql-server/how-many-tempdb-data-files-should-my-sql-server-have/">How Many tempdb Data Files Should My SQL Server Have?</a></li>



<li><a href="https://theserogroup.com/sql-server/3-ways-to-find-your-sql-server-tempdb-data-files/">3 Ways to Find Your SQL Server tempdb Data Files</a></li>



<li><a href="https://theserogroup.com/sql-server/is-there-an-update-for-my-sql-server/">Is There an Update for My SQL Server?</a></li>
</ul>



<h2 class="wp-block-heading" id="h-want-to-work-with-the-sero-group">Want to work with The Sero Group?</h2>



<p>Want to learn more about how SERO Group helps organizations take the guesswork out of managing their SQL Servers? It’s easy and there is no obligation. Let&#8217;s <a href="https://theserogroup.com/#contact" target="_blank" rel="noreferrer noopener">schedule a short call</a>.</p>
<p>The post <a href="https://theserogroup.com/dba/sql-server-performance-and-windows-power-plan/">SQL Server Performance and Windows Power Plan</a> appeared first on <a href="https://theserogroup.com">The SERO Group</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://theserogroup.com/dba/sql-server-performance-and-windows-power-plan/feed/</wfw:commentRss>
			<slash:comments>4</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">3526</post-id>	</item>
	</channel>
</rss>
