<?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>SQL Training Archives - The SERO Group</title>
	<atom:link href="https://theserogroup.com/tag/sql-training/feed/" rel="self" type="application/rss+xml" />
	<link>https://theserogroup.com/tag/sql-training/</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>SQL Training Archives - The SERO Group</title>
	<link>https://theserogroup.com/tag/sql-training/</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>What’s in a Job Title? Understanding Changing Data Roles</title>
		<link>https://theserogroup.com/data-strategy/different-data-roles/</link>
		
		<dc:creator><![CDATA[Natasha Collins]]></dc:creator>
		<pubDate>Wed, 31 Jul 2024 12:00:00 +0000</pubDate>
				<category><![CDATA[Data Strategy]]></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[SQL]]></category>
		<category><![CDATA[SQL Training]]></category>
		<category><![CDATA[The Sero Group]]></category>
		<guid isPermaLink="false">https://theserogroup.com/?p=6350</guid>

					<description><![CDATA[<p>The world of data is rapidly evolving, and the demand for skilled data professionals has continued to rise. But who are these data professionals? Those of us in the field have been asked many times about the nature of what we do. Students and prospective career changers, hiring managers, business partners, and prospective clients all&#8230; <br /> <a class="read-more" href="https://theserogroup.com/data-strategy/different-data-roles/">Read more</a></p>
<p>The post <a href="https://theserogroup.com/data-strategy/different-data-roles/">What’s in a Job Title? Understanding Changing Data Roles</a> appeared first on <a href="https://theserogroup.com">The SERO Group</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>The world of data is rapidly evolving, and the demand for skilled data professionals has continued to rise. But who are these data professionals? Those of us in the field have been asked many times about the nature of what we do. Students and prospective career changers, hiring managers, business partners, and prospective clients all have questions about what falls within the expertise of a “data professional”.</p>



<p>The answer is not simple.</p>



<p>Data roles are diverse and constantly evolving. Similarly, the lines that separate data disciplines are inherently blurred. The reality faced by active data professionals is also complex, with business and project requirements often requiring them to extend their expertise across disciplines. Consequently, data professionals often wear many hats.</p>



<p>Still, it&#8217;s useful for those entering the field or looking to hire a data professional to understand some of the important distinctions between data disciplines.</p>



<p>Here are just a few.</p>



<h2 class="wp-block-heading">Common Data Roles</h2>



<h3 class="wp-block-heading"><strong>Data Architect</strong></h3>



<p>Data architects design the overall blueprint for your organization&#8217;s data environment. They define how data is stored, organized, integrated, and accessed across systems. They also ensure that your data infrastructure is scalable, secure, architected for efficient retrieval, and aligns with your long-term business goals.</p>



<h3 class="wp-block-heading"><strong>Database Administrator (DBA)</strong></h3>



<p>DBAs are the administrators of your database systems. They possess a deep knowledge of the database engine itself, including all its native functionality and features. They are also responsible for keeping databases updated, backed up, secure, and performing optimally. DBAs also manage database upgrades and migrations, as well as database recovery in a disaster or emergency.</p>



<h3 class="wp-block-heading"><strong>Data Engineer</strong></h3>



<p>Think of data engineers as the builders of your data infrastructure. They design, construct, and maintain the pipelines that collect, store, and process your data. Their toolkit is diverse and often includes programming languages like Python and SQL. It is also common to leverage cloud platforms like Azure, AWS, or GCP. These professionals ensure that your data is accessible, reliable, and ready for analysis.</p>



<h3 class="wp-block-heading"><strong>Data Analyst / Business Intelligence Analyst</strong></h3>



<p>Data analysts are the storytellers of the data world. They take the data that engineers have prepared and draw out insights through creating reports, dashboards, and visualizations. Furthermore, their strong analytical skills and ability to recognize patterns allow them to turn data into knowledge. They tell stories with data to help guide decisions. Tools often include Excel and BI reporting platforms like Tableau or Power BI.</p>



<h3 class="wp-block-heading"><strong>Data Scientist</strong></h3>



<p>Data scientists take analytics to a deeper level. They use advanced statistical techniques and machine learning to uncover hidden patterns that are often difficult for humans to detect. Similarly, the algorithms used by data scientists can predict future trends, and the outputs of their models are used to drive decision-making. Data scientists possess mathematical expertise, programming skills in languages like Python or R, and domain knowledge relevant to their industry.</p>



<h3 class="wp-block-heading"><strong>Machine Learning Engineer</strong></h3>



<p>Machine learning engineers take the models created by data scientists and make them operational in real-world production environments. They leverage both data science and software engineering skills. ML engineers are responsible for building the systems that deploy, monitor, and scale data science models. They also manage these systems to ensure that they deliver accurate and timely predictions once deployed in a real-world context.</p>



<h2 class="wp-block-heading" id="h-tips-for-choosing-your-future-data-role">Tips for Choosing Your Future Data Role</h2>



<p>Shadowing some different data professionals is a great way to get started. Depending on which role appeals to you, there are different pathways to getting started.</p>



<p>If you have a background in system administration, data architecture and database administration<strong> </strong>may be good avenues to investigate. Likewise, people who have enjoyed building their own home labs may also enjoy these data roles. </p>



<p>Similarly, if you love automation and problem-solving for technical efficiency, one of the engineering roles may be right for you. Engineers enjoy designing and building solutions for technical challenges.</p>



<p>Finally, if you have a mind for analytics and statistics, an analyst or data science role may be a great fit. These roles uncover the root causes of the problems under investigation in order to unlock potential solutions.</p>



<h3 class="wp-block-heading" id="h-there-are-a-variety-of-ways-to-kick-start-your-journey-for-any-of-these-data-disciplines">There are a variety of ways to kick-start your journey for any of these data disciplines.</h3>



<ol class="wp-block-list">
<li><strong><a href="https://www.kdnuggets.com/2021/02/10-resources-data-science-self-study.html">Self-Education</a></strong>. There are many resources available online that can guide you through learning specialized skills. Set up a home lab environment in which to safely practice. Start to build a profile of projects and/or certifications that can showcase your new skills.</li>



<li><strong><a href="https://www.forbes.com/advisor/education/bootcamps/best-data-science-bootcamps/">Bootcamps</a>.</strong> The number and variety of bootcamps for data have increased dramatically in the last 5 years. If your schedule allows for participation in one of these intense programs, they can be a great way to upskill rapidly.</li>



<li><strong><a href="https://www.usnews.com/best-colleges/rankings/computer-science/data-analytics-science">Formal education</a>.</strong> If you are looking to go into a highly specialized role in a particular knowledge domain or industry, obtaining an advanced degree can be a great way to get started.</li>
</ol>



<p>Determining which path to take will depend on what appeals to you and on the circumstances in which you are beginning your journey. The key, however, is just taking the first step.</p>



<h2 class="wp-block-heading" id="h-tips-for-hiring-which-data-role-do-you-need">Tips for Hiring: Which Data Role Do You Need?</h2>



<p>Just as the path to becoming a data professional depends on individual circumstances, the type of data professional to hire will also depend on your organization’s needs and where you are in your data maturity journey.</p>



<p>Here are some hiring considerations for several common scenarios:</p>



<h3 class="wp-block-heading" id="h-just-starting-out"><strong>Just Starting Out</strong> </h3>



<p>If you are building your data capabilities from the ground up, a data engineer with versatile skills is a great first hire. While partnering with system administrators and business experts, as well as potentially seeking external assistance from a DBA or data architect, a data engineer can lay the foundation for your future data work.</p>



<h3 class="wp-block-heading" id="h-business-optimization-improved-operations"><strong>Business Optimization / Improved Operations</strong></h3>



<p>If you are looking to use your data for improved operations, a data or business intelligence analyst can work with business partners to track key metrics, identify trends, and drive data-driven decisions to find ways to improve. Likewise, by developing an understanding of the business, this person can work as a bridge between business and IT teams to help harness the full potential of your data.</p>



<h3 class="wp-block-heading" id="h-complex-or-outdated-data-environment"><strong>Complex or Outdated Data Environment</strong></h3>



<p>A data architect can bring order to chaos by ensuring that your data is well-organized, accessible, and scalable as your organization grows and expands. Data architects can also be instrumental in reshaping legacy structures to meet current business requirements and make the best use of modern technologies.</p>



<h3 class="wp-block-heading" id="h-predictive-insights-and-automation"><strong>Predictive Insights and Automation</strong></h3>



<p>Data scientists and machine learning engineers are ideal for building models that can make important predictions, optimize processes, and/or automate complex AI tasks. It is important to note, however, that having a robust, well-governed data infrastructure is a prerequisite for success for these types of initiatives.</p>



<h3 class="wp-block-heading" id="h-diverse-needs-large-scale-projects-or-complex-remediation"><strong>Diverse Needs, Large-Scale Projects, or Complex Remediation</strong></h3>



<p>Partnering with an external data team with diverse areas of expertise can be an affordable way to: remediate complex problems, make infrastructure improvements rapidly, or design and implement large-scale solutions. Leveraging this type of support also allows you to access professionals with expertise in different data roles and may offer flexibility for scaling up or scaling down your level of support as needed.</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 estate? <a href="https://theserogroup.com/contact-us/" target="_blank" rel="noreferrer noopener">Schedule a no-obligation discovery call</a> with us to get started.</p>
<p>The post <a href="https://theserogroup.com/data-strategy/different-data-roles/">What’s in a Job Title? Understanding Changing Data Roles</a> appeared first on <a href="https://theserogroup.com">The SERO Group</a>.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">6350</post-id>	</item>
		<item>
		<title>&#8220;We Want a Better SQL Environment, Just Not Yet.&#8221;</title>
		<link>https://theserogroup.com/dba/we-want-a-better-sql-environment-just-not-yet/</link>
		
		<dc:creator><![CDATA[Joe Webb]]></dc:creator>
		<pubDate>Wed, 12 Jun 2024 12:00:00 +0000</pubDate>
				<category><![CDATA[DBA]]></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 Conference]]></category>
		<category><![CDATA[SQL Consultant]]></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=6014</guid>

					<description><![CDATA[<p>No one wants a slow, unreliable SQL Server that leaks data like a sieve. No, they want a fast, reliable, and secure database environment. However, they may not want it right now. Creating a better SQL environment can wait until later, right? It might seem that way, but the risks will only grow while you&#8230; <br /> <a class="read-more" href="https://theserogroup.com/dba/we-want-a-better-sql-environment-just-not-yet/">Read more</a></p>
<p>The post <a href="https://theserogroup.com/dba/we-want-a-better-sql-environment-just-not-yet/">&#8220;We Want a Better SQL Environment, Just Not Yet.&#8221;</a> appeared first on <a href="https://theserogroup.com">The SERO Group</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>No one wants a slow, unreliable SQL Server that leaks data like a sieve. No, they want a fast, reliable, and secure database environment. However, they may not want it right now. Creating a better SQL environment can wait until later, right?</p>



<p>It might seem that way, but the risks will only grow while you wait.  </p>



<p>So, why do so many businesses delay making essential improvements to their SQL Servers?</p>



<h2 class="wp-block-heading" id="h-roadblocks-to-creating-a-better-sql-environment-and-how-to-navigate-them">Roadblocks to creating a better SQL environment (and how to navigate them)</h2>



<p>Budget is frequently an issue. However, there are likely other factors compounding that barrier. Let&#8217;s look at some common reasons companies choose to delay making changes that would help to create a more stable and secure SQL Server environment.</p>



<ol class="wp-block-list">
<li>&#8220;That&#8217;s part of a future project.&#8221;</li>



<li>&#8220;We don&#8217;t know where to start.&#8221;</li>



<li>&#8220;We don&#8217;t know what we don&#8217;t know.&#8221;</li>



<li>&#8220;We just can&#8217;t.&#8221;</li>



<li>&#8220;We&#8217;re not sure who owns those.&#8221;</li>
</ol>



<h3 class="wp-block-heading" id="h-that-s-part-of-a-future-project">&#8220;That&#8217;s part of a future project.&#8221;</h3>



<p>Sometimes companies will postpone tackling an issue with their SQL Server environment because it gets lumped into a much larger project. </p>



<p>For example, a company may recognize the need to regularly test their SQL Server backups. It&#8217;s important, and they know that. After all, an untested SQL Server backup file and process is only a hope that they can restore. (See <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> for some background here.)</p>



<p>Creating a process to regularly test SQL Server backups may still be deferred because &#8220;that will be part of the Disaster Recovery initiative.&#8221; However, if that DR initiative isn&#8217;t budgeted and doesn&#8217;t have a start date, that means delaying improvements indefinitely. </p>



<h4 class="wp-block-heading" id="h-so-what-can-you-do">So, what can you do? </h4>



<p>Start small. Take baby steps that lead you in the right direction. Often those baby steps will contribute to the larger project anyway.</p>



<p>In our backup example, check the status of your backup jobs every day. Schedule a job or another process to verify the backup files. Create reminders to periodically restore a key database to another server and run an integrity check on it.</p>



<p>Is this a perfect solution? No. But it&#8217;s far better than ignoring the gap until the larger project is funded.</p>



<h3 class="wp-block-heading" id="h-we-don-t-know-where-to-start">&#8220;We don&#8217;t know where to start.&#8221;</h3>



<p>Sometimes, the hardest part is knowing where to start. Even worse, not knowing where to start can make getting started seemingly insurmountable. </p>



<p>For example, let&#8217;s say a company has 15 SQL Server instances and they&#8217;d like to get that down to 8 or 10 through a consolidation project. But before they begin, they have questions. </p>



<ul class="wp-block-list">
<li>Which application databases can be moved to another SQL Server? </li>



<li>Which ones will play nicely together, and which will compete for limited resources? </li>



<li>Are there security considerations that require some applications to remain separate? </li>



<li>Will we have to add resources to the target instances?</li>



<li>And what haven&#8217;t we thought about that we should? </li>
</ul>



<p>Those unknowns can seem overwhelming, especially if you don&#8217;t know how to go about finding the answers.</p>



<h4 class="wp-block-heading" id="h-so-what-can-you-do-0">So, what can you do? </h4>



<p>Start small, build momentum, and keep your eye on the end-goal while making incremental progress. </p>



<p>In our SQL Server Consolidation Project example, can you build a high-level project plan with only the most basic steps? Then you can drill down into the details, step by step.</p>



<p>For example, the first step is to get a list of all of the SQL Servers that may be candidates for the consolidation project. Then, determine what applications use these SQL Servers. Then, identify the applications&#8217; requirements, and so on. </p>



<p>We know projects like this can become dauntingly complex if you&#8217;re not used to doing them. As with most anything, breaking things down into smaller, more manageable steps will help. </p>



<h3 class="wp-block-heading" id="h-we-don-t-know-what-we-don-t-know">&#8220;We don&#8217;t know what we don&#8217;t know.&#8221;</h3>



<p>This one is common and can take many forms. As an example, let&#8217;s say IT wants to decommission a SQL Server, but they&#8217;re unsure whether it&#8217;s being used. It&#8217;s got a dozen databases on it, but some are from older applications that may not be used anymore. Maybe the guy who created the database isn&#8217;t even with the company anymore.</p>



<p>Another example: IT would like to do a side-by-side upgrade of a SQL Server. They know there are a lot of data pipelines that rely on that SQL Server. However, do they know how many pipelines? Who owns them? Will they have to be redeployed? Are there any other aspects they&#8217;ve overlooked?</p>



<p>What should be a relatively simple request can become a larger issue. It can seem safer not to upset the apple cart when there are so many unknowns at play.</p>



<h4 class="wp-block-heading" id="h-so-what-can-you-do-1">So, what can you do? </h4>



<p>Having a long list of open questions with no clear path to find the answers can feel paralyzing. To find your way forward, focus on your goal and your reasons for wanting it. In the upgrade example, your goal is to upgrade your SQL Server. Why? Using an older, unsupported SQL Server version could cause serious issues; an upgrade would improve security, compliance, and supportability, which means you&#8217;re less likely to encounter problems.</p>



<p>Once you&#8217;re clear on your motivation, determine how you can begin to answer the first unknown. Then the next one. Then the one after that. Incremental progress will help you grow in confidence about your ability to improve the environment in addition to answering those unknowns. </p>



<h3 class="wp-block-heading" id="h-we-just-can-t">&#8220;We just can&#8217;t.&#8221;</h3>



<p>Sometimes limitations are self-imposed. Other times, limitations are implicitly imposed by stakeholders, even if they don&#8217;t have the authority to make the call outright.</p>



<p>This can happen with patching. As an example, vocal and influential stakeholders may insist that a SQL Server cannot go down for maintenance, period. IT may accept that limitation rather than fight it. As a result, things may progress until neither the SQL Server nor the Operating System have been patched in over two years. Not good!</p>



<h4 class="wp-block-heading" id="h-so-what-can-you-do-2">So, what can you do? </h4>



<p>This one can become overly politicized or personalized. Look for and emphasize common ground. </p>



<p>In the patching example, the common ground may be that everyone wants the SQL Server to be available and secure. From there, you can communicate how patching will help achieve that common goal. Planned downtime is always better than unplanned downtime, and reminding stakeholders of that can help put things in perspective. </p>



<p>Sometimes, IT has a reputation for implementing technology for technology&#8217;s sake, regardless of what&#8217;s in the best interest of the business or its stakeholders. Keep that in mind. Present your points so that the other party can see how they&#8217;ll benefit. </p>



<h3 class="wp-block-heading" id="h-we-re-not-sure-who-owns-those">&#8220;We&#8217;re not sure who owns those.&#8221;</h3>



<p>Sometimes there&#8217;s no clear owner of your SQL Servers. No one wants to make decisions about them, even if it helps to create better SQL environment. This can happen after an acquisition, during a re-org, or when responsibilities are not clearly spelled out.</p>



<p>For example, IT may become aware of some new SQL Servers. However, the team isn&#8217;t sure if those instances fall within their purview or the responsibility of another team or department. Spoiler alert: if something happens to one of the SQL Servers or its databases, IT almost always ends up having to fix it. </p>



<h4 class="wp-block-heading" id="h-so-what-can-you-do-3">So, what can you do? </h4>



<p>Uncertainty in areas of responsibility can lead to big problems. Get clear on who is responsible for SQL Servers (and any other assets) as soon as possible. Otherwise, those SQL Servers will become increasingly vulnerable to breaches or data loss.</p>



<h2 class="wp-block-heading" id="h-moving-forward-to-create-a-better-sql-server-environment">Moving forward to create a better SQL Server environment</h2>



<p>I&#8217;m sure this list of roadblocks isn&#8217;t comprehensive. There are likely other reasons companies don&#8217;t improve their SQL environment. Many of them may even be good and valid reasons.</p>



<p>However, in cases where creating a better SQL environment would be in everyone&#8217;s interest, don&#8217;t let the perfect be the enemy of the good. Look for ways to make incremental progress, however small, toward a more reliable and more secure SQL environment that performs.</p>



<p>If you&#8217;re not sure where to start, we can help. Helping clients overcome barriers to create better SQL environments is what we do for a living. <a href="https://theserogroup.com/#contact" target="_blank" rel="noreferrer noopener">Schedule a call</a>&nbsp;to see if working with our team of DBAs makes sense for you.</p>
<p>The post <a href="https://theserogroup.com/dba/we-want-a-better-sql-environment-just-not-yet/">&#8220;We Want a Better SQL Environment, Just Not Yet.&#8221;</a> appeared first on <a href="https://theserogroup.com">The SERO Group</a>.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">6014</post-id>	</item>
		<item>
		<title>Anatomy of a SQL Server Transaction Log</title>
		<link>https://theserogroup.com/sql-server/anatomy-of-a-sql-server-transaction-log/</link>
					<comments>https://theserogroup.com/sql-server/anatomy-of-a-sql-server-transaction-log/#comments</comments>
		
		<dc:creator><![CDATA[Natasha Collins]]></dc:creator>
		<pubDate>Tue, 19 Mar 2024 12:27:40 +0000</pubDate>
				<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[Database Administration]]></category>
		<category><![CDATA[Database Development]]></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=5806</guid>

					<description><![CDATA[<p>Recently, we discussed the role of the recovery model in establishing how SQL Server manages database transaction logs. But what is the SQL Server log composed of? How does the logging process work? In this post, we will dissect the SQL Server transaction log to uncover its core anatomy. First, what is the transaction log?&#8230; <br /> <a class="read-more" href="https://theserogroup.com/sql-server/anatomy-of-a-sql-server-transaction-log/">Read more</a></p>
<p>The post <a href="https://theserogroup.com/sql-server/anatomy-of-a-sql-server-transaction-log/">Anatomy of a SQL Server Transaction Log</a> appeared first on <a href="https://theserogroup.com">The SERO Group</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Recently, we discussed the role of the <a href="https://theserogroup.com/sql-server/sql-server-recovery-models/" target="_blank" rel="noreferrer noopener">recovery model</a> in establishing how SQL Server manages database transaction logs. But what is the SQL Server log composed of? How does the logging process work? In this post, we will dissect the SQL Server transaction log to uncover its core anatomy.</p>



<h2 class="wp-block-heading">First, what <em>is</em> the transaction log?</h2>



<p>The SQL Server transaction log is a crucial element within each database that records all database changes across time. This log enables point-in-time recoverability and rollbacks in the event of mistakes, corruption, or failure. This recoverability is critical to ensuring the integrity and resilience of the database.</p>



<h2 class="wp-block-heading">What is contained in the transaction log?</h2>



<p>There are several key concepts and log components to be aware of when dealing with SQL Server’s transaction logs.</p>



<h3 class="wp-block-heading">1.&nbsp;&nbsp;&nbsp;&nbsp; Log Records</h3>



<p>Within SQL Server’s transaction logs, individual change operations are enclosed within <strong>log records</strong>. Each log record represents one UPDATE, INSERT, or DELETE operation in the database and is associated with one transaction. Each transaction, however, may have numerous log records.</p>



<p>Every data modification made in the database has one or more log records associated with it. Log records contain either the logical operation performed with the modification made, or they contain before and after images of the modified data. Start and end times of each transaction are also recorded.</p>



<h3 class="wp-block-heading">2.&nbsp;&nbsp;&nbsp;&nbsp; Log Blocks</h3>



<p>A <strong>log block</strong> is the basic unit of I/O when it comes to transaction logs. The sizes of the log blocks vary but are at least 512 bytes and can be as large as 60 KB. Log blocks can contain multiple log records or none. According to <a href="https://learn.microsoft.com/en-us/sql/relational-databases/sql-server-transaction-log-architecture-and-management-guide?view=sql-server-ver16">Microsoft</a>, <em>“a log block is a container of log records that&#8217;s used as the basic unit of transaction logging when writing log records to disk.”</em></p>



<h3 class="wp-block-heading">3.&nbsp;&nbsp;&nbsp;&nbsp; Virtual Log Files (VLFs)</h3>



<p>When considering the database transaction log, it is important to keep in mind the concept of the physical log file and its composite VLFs, or <strong>virtual log files</strong>.</p>



<p>The division of the log into multiple log segments (or virtual logs) is handled automatically by SQL Server and is the foundation of the circular nature of the physical log file (see below). Each VLF is in turn composed of numerous log blocks.</p>



<p>VLFs are created dynamically as needed by SQL Server. While we as administrators are not able to set a static size for these file divisions, we can manage the auto-growth settings of the log file, which will in turn impact the size and number of the VLFs that SQL Server creates.</p>



<h3 class="wp-block-heading">4.&nbsp;&nbsp;&nbsp;&nbsp; Log Sequence Number (LSN)</h3>



<p>Within the database’s transaction log, the chronological consistency of transactions is preserved across the VLFs through <strong>LSNs, </strong>or log sequence numbers. These numbers allow SQL Server to arrange the transactions in their correct chronological order for the purposes of rollback and recovery despite the potential for having been written to different VLFs.</p>



<p>The LSN is a concatenation of the VLF ID, the Log Block ID, and the Log Record ID separated by colons. You can see examples of the LSN by querying the <em>sys.dm_db_log_info</em> view and looking at the [vlf_create_lsn] field:</p>



<figure class="wp-block-image size-full"><a href="https://theserogroup.com/wp-content/uploads/2024/03/TransactionLogLSN.png"><img decoding="async" width="124" height="118" src="https://theserogroup.com/wp-content/uploads/2024/03/TransactionLogLSN.png" alt="Example of a SQL Server transaction log LSN." class="wp-image-5807"/></a></figure>



<h3 class="wp-block-heading">5.&nbsp;&nbsp;&nbsp;&nbsp; Minimum Recovery LSN (MinLSN)</h3>



<p>The MinLSN<strong>, </strong>or <strong>minimum recovery LSN</strong>,is the LSN that would be needed for a full recovery of the database. Put another way, the MinLSN is the first LSN in the sequence of the <em>active</em> section or <em>tail</em> of the log, which is the section of the log that has not yet been written from memory to disk by a checkpoint operation.</p>



<h2 class="wp-block-heading">How does SQL Server logging work?</h2>



<h3 class="wp-block-heading">6.&nbsp;&nbsp;&nbsp;&nbsp; Checkpoint Process</h3>



<p><strong>Checkpoints</strong> are the SQL Server operations by which database modifications that are being stored in memory are written to disk. Checkpoints are usually triggered by a log backup or automatically by the recovery interval setting of the database.</p>



<p>The active section of the log that has not yet reached a checkpoint can never be truncated, so paying attention to the recovery settings of each database helps to manage checkpoints and transaction log truncation optimally.</p>



<h3 class="wp-block-heading">7.&nbsp;&nbsp;&nbsp;&nbsp; Cyclical Logging</h3>



<p>The SQL Server transaction log can be thought of as a revolving log file.</p>



<p>Consider that the physical log is allocated a designated amount of space in the database properties when it is configured. As mentioned above, the transaction log is made up of smaller segments (VLFs) that SQL Server writes to as part of its internal logging process – adding a new VLF each time the last one fills up. This process is internally controlled by the application.</p>



<p><strong>If the physical transaction log is never truncated, it will continue to grow, adding new VLFs as it grows, until it uses up all the space available to it and SQL Server fails.</strong></p>



<p>If, however, the transaction log is truncated, older VLFs containing transactions with LSNs prior to the MinLSN will be cleared. When those files are truncated, the space that was being used by the deleted log records will be released and made available for new log records to be created as more transactions are committed. This circular process allows the overall size of the log to remain consistent despite ongoing transaction logging.</p>



<p>This log-and-truncate cycle will continue successfully unless the logging rate exceeds the truncation rate. Note once again, however, that <strong>truncation of the transaction log cannot occur in full or bulk-logged recovery models if log backups are not taken first.</strong></p>



<p>For this reason, administrators should pay careful attention to the recovery and log file settings to avoid unnecessary disruptions in the SQL Server environment.</p>



<h2 class="wp-block-heading">What else should you know about SQL Server transaction logs?</h2>



<p>In an upcoming post, we will discuss how to troubleshoot some common issues with SQL Server transaction logs and give some best practices for transaction log management.</p>



<p>When configured carefully, the logging process within SQL Server can operate seamlessly for years without DBA intervention.</p>



<p>Here are some resources that contain more information about some of the topics we touched on:</p>



<ul class="wp-block-list">
<li><a href="https://learn.microsoft.com/en-us/sql/relational-databases/sql-server-transaction-log-architecture-and-management-guide?view=sql-server-ver16#log-blocks">Log Blocks</a></li>



<li><a href="https://www.sqlshack.com/sql-server-transaction-log-architecture/">LSNs</a></li>



<li><a href="https://learn.microsoft.com/en-us/sql/relational-databases/sql-server-transaction-log-architecture-and-management-guide?view=sql-server-ver16#virtual-log-file-creation">Virtual Log Files and Growth Algorithms</a></li>



<li><a href="https://learn.microsoft.com/en-us/sql/relational-databases/logs/database-checkpoints-sql-server?view=sql-server-ver16">SQL Server Checkpoint Process</a></li>



<li><a href="https://www.sqlshack.com/sql-server-transaction-log-backup-truncate-and-shrink-operations/">Transaction Log Backups and Log Shrinking</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>If you’re concerned about your backup strategy, or more to the point, your ability to restore a critical database, <a href="https://theserogroup.com/#contact">contact us</a>. We’re happy to help.</p>
<p>The post <a href="https://theserogroup.com/sql-server/anatomy-of-a-sql-server-transaction-log/">Anatomy of a SQL Server Transaction Log</a> appeared first on <a href="https://theserogroup.com">The SERO Group</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://theserogroup.com/sql-server/anatomy-of-a-sql-server-transaction-log/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">5806</post-id>	</item>
		<item>
		<title>SQL Server Settings: MAXDOP</title>
		<link>https://theserogroup.com/sql-server/sql-server-settings-maxdop/</link>
		
		<dc:creator><![CDATA[Eric Cobb]]></dc:creator>
		<pubDate>Fri, 23 Feb 2024 13:33:45 +0000</pubDate>
				<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[Database Administration]]></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 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=5722</guid>

					<description><![CDATA[<p>Did you know that not configuring the MAXDOP setting in SQL Server properly could cause performance problems for your queries?</p>
<p>The post <a href="https://theserogroup.com/sql-server/sql-server-settings-maxdop/">SQL Server Settings: MAXDOP</a> appeared first on <a href="https://theserogroup.com">The SERO Group</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>What is MAXDOP and how does it affect my SQL Server? </p>



<p>MAXDOP is short for Maximum Degree of Parallelism. SQL Server uses the MAXDOP setting to determine the maximum number of processors that can be used for the execution of a single query or operation. In simple terms, it controls how many CPU cores SQL Server can utilize to process a query. </p>



<h2 class="wp-block-heading" id="h-how-maxdop-works-in-sql-server">How MAXDOP works in SQL Server</h2>



<p>When SQL Server processes a query, it can break down the task into multiple smaller tasks and execute them concurrently on different processors. This is known as parallel execution, or &#8220;parallelism.&#8221; </p>



<p>MAXDOP specifies the maximum number of CPU cores that can be utilized for this parallel execution. This parallelism can improve query performance for large datasets or complex operations. However, an incorrect MAXDOP setting can also lead to inefficient query execution plans, increased CPU utilization, and potentially degraded performance.</p>



<p>MAXDOP is set at the server level. The default configuration setting for MAXDOP is usually set to 0 (unlimited). This means SQL Server can use all available processors for parallel queries. While this setting can be suitable for some workloads, it may not be optimal in all situations. </p>



<p>If SQL Server is allowed to use too many CPU cores for parallel execution, it may cause excessive contention and actually slow down the performance of other tasks and queries running on the server. On the other hand, if SQL Server is restricted to use too few CPU cores, it might not fully utilize the available hardware resources, resulting in slower query processing times.</p>



<p>It&#8217;s the Goldilocks Principle as applied to SQL Server. Not too many cores, nor too few. It needs to be just right. </p>



<h2 class="wp-block-heading" id="h-configuring-maxdop-for-your-sql-server">Configuring MAXDOP for your SQL Server</h2>



<p>Microsoft provides some <a href="https://learn.microsoft.com/en-us/sql/database-engine/configure-windows/configure-the-max-degree-of-parallelism-server-configuration-option?view=sql-server-ver16#recommendations" target="_blank" rel="noreferrer noopener">initial guidance for MAXDOP</a>. However, configuring MAXDOP appropriately for your specific environment and workload is crucial. You may need to adjust MAXDOP based on factors such as the number of processors, the nature of your queries, workload characteristics, and the specific requirements of your SQL Server environment.  It is essential to carefully tune this setting based on the characteristics of your database and the queries it processes to achieve the best overall performance. </p>



<h2 class="wp-block-heading" id="h-how-to-check-the-maxdop-setting">How to Check the MAXDOP Setting</h2>



<p>You can view your server&#8217;s MAXDOP setting by viewing the sever properties in SQL Server Management Studio.  Simply right click on your server and select &#8220;Properties&#8221;, and navigate to the &#8220;Parallelism&#8221; section under &#8220;Advanced&#8221;.</p>



<figure class="wp-block-image size-full is-resized"><a href="https://theserogroup.com/wp-content/uploads/2024/02/maxdop.png"><img fetchpriority="high" decoding="async" width="533" height="435" src="https://theserogroup.com/wp-content/uploads/2024/02/maxdop.png" alt="" class="wp-image-5767" style="width:537px;height:auto" srcset="https://theserogroup.com/wp-content/uploads/2024/02/maxdop.png 533w, https://theserogroup.com/wp-content/uploads/2024/02/maxdop-300x245.png 300w" sizes="(max-width: 533px) 100vw, 533px" /></a></figure>



<p>You can also use the built-in <a href="https://learn.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sp-configure-transact-sql?view=sql-server-ver16">sp_configure</a> system stored procedure to view and change the MAXDOP setting.  sp_configure is a system stored procedure designed to show and change server-level configuration settings on SQL Server. To use sp_configure to find your MAXDOP setting, run the following code:</p>



<pre class="wp-block-code"><code>EXEC sys.sp_configure 'max degree of parallelism'; </code></pre>



<h2 class="wp-block-heading" id="h-how-to-change-the-maxdop-setting">How to change the MAXDOP Setting</h2>



<p>Changing your server&#8217;s MAXDOP setting is just as easy as viewing it.  From SQL Server Management Studio simply change the existing value to the desired value and click &#8220;OK&#8221; at the bottom of the properties widow.  </p>



<p>To change the MAXDOP setting using sp_configure, use the below code to set the desired value:</p>



<pre class="wp-block-code"><code>EXEC sys.sp_configure 'max degree of parallelism', '&lt;desired value&gt;';
RECONFIGURE;</code></pre>



<p>Of course, you should be careful when changing MAXDOP or any other setting in SQL Server. A change may help or hurt performance. And remember, since MAXDOP is set at the SQL Server instance level, it will affect all databases on the SQL Server. A change that helps one query for one database may adversely affect other queries and other databases. </p>



<p>It&#8217;s important to baseline performance and monitor the results after making a change. </p>



<h2 class="wp-block-heading" id="h-for-more-information">For more information</h2>



<p>Do you have questions about your SQL Server&#8217;s MAXDOP setting? Or are you having some performance concerns? Here are some other posts and links that may be helpful.</p>



<ul class="wp-block-list">
<li><a href="https://learn.microsoft.com/en-us/sql/database-engine/configure-windows/configure-the-max-degree-of-parallelism-server-configuration-option?view=sql-server-ver16">Configure the max degree of parallelism (server configuration option) &#8211; SQL Server | Microsoft Learn</a></li>



<li><a href="https://docs.dbatools.io/Select-DbaObject"></a><a href="https://docs.dbatools.io/Set-DbaMaxDop" target="_blank" rel="noreferrer noopener">dbatools docs | Set-DbaMaxDop</a></li>



<li><a href="https://docs.dbatools.io/Test-DbaMaxDop" target="_blank" rel="noreferrer noopener">dbatools docs | Test-DbaMaxDop</a></li>



<li><a href="https://theserogroup.com/sql-server/infographic-5-commonly-overlooked-sql-server-settings/">Infographic: 5 Commonly Overlooked SQL Server Settings</a></li>



<li><a href="https://theserogroup.com/sql-server/sql-server-recovery-models/">What is a SQL Server Recovery Model?</a></li>



<li><a href="https://theserogroup.com/sql-server/why-is-my-sql-server-slow-14-common-reasons/">Why is My SQL Server Slow? 14 Common Reasons</a></li>



<li><a href="https://theserogroup.com/dba/do-i-still-need-a-sql-server-health-check/">Do I Still Need a SQL Server Health Check?</a></li>
</ul>



<p>If you’d like some assistance assessing your SQL Server workload,&nbsp;<a href="https://theserogroup.com/#contact">contact us</a>. We’re happy to help.</p>
<p>The post <a href="https://theserogroup.com/sql-server/sql-server-settings-maxdop/">SQL Server Settings: MAXDOP</a> appeared first on <a href="https://theserogroup.com">The SERO Group</a>.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">5722</post-id>	</item>
		<item>
		<title>Analyzing Disk Latency in Azure Virtual Machines &#8211; Part 2</title>
		<link>https://theserogroup.com/azure/analyzing-disk-latency-in-azure-virtual-machines-part-2/</link>
					<comments>https://theserogroup.com/azure/analyzing-disk-latency-in-azure-virtual-machines-part-2/#comments</comments>
		
		<dc:creator><![CDATA[Luke Campbell]]></dc:creator>
		<pubDate>Wed, 14 Feb 2024 13:00:00 +0000</pubDate>
				<category><![CDATA[Azure]]></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 Events]]></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=5701</guid>

					<description><![CDATA[<p>&#8220;I thought the cloud was supposed to be fast. Why are things moving like a sloth?&#8221; Have you heard someone complain about the speed of an application after moving it to the Microsoft Azure? Azure is a good environment, but things are not always fast in the cloud. To illustrate, in this post, we&#8217;ll review&#8230; <br /> <a class="read-more" href="https://theserogroup.com/azure/analyzing-disk-latency-in-azure-virtual-machines-part-2/">Read more</a></p>
<p>The post <a href="https://theserogroup.com/azure/analyzing-disk-latency-in-azure-virtual-machines-part-2/">Analyzing Disk Latency in Azure Virtual Machines &#8211; Part 2</a> appeared first on <a href="https://theserogroup.com">The SERO Group</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>&#8220;I thought the cloud was supposed to be fast. Why are things moving like a sloth?&#8221; Have you heard someone complain about the speed of an application after moving it to the Microsoft Azure? Azure is a good environment, but things are not always fast in the cloud. To illustrate, in this post, we&#8217;ll review an Azure VM experiencing high disk latency and determine if the bottleneck is due to the VM size or the disk size. This is part 2 of <a href="https://theserogroup.com/azure/analyzing-disk-latency-in-azure-virtual-machines-part-1/">Analyzing Disk Latency in Azure Virtual Machines</a>. </p>



<p>The specs for the VM we&#8217;re using are:</p>



<ul class="wp-block-list">
<li>Standard B4ms (4 vcpus, 16 GiB memory) &#8211; Supports up to <strong>2880 IOPs</strong> or <strong>35 MBps.</strong></li>



<li>Target disk &#8211; Standard SSD E10 &#8211; <strong>500 IOPs</strong> or <strong>60 MBps</strong>.  This drive is capable of bursting to <strong>600</strong> <strong>IOPs</strong> or <strong>150</strong> <strong>MBps</strong>.</li>
</ul>



<p>We&#8217;ll use Microsoft&#8217;s <a href="https://learn.microsoft.com/en-us/azure-stack/hci/manage/diskspd-overview">diskspd</a> utility to generate the load using the 8kb block size.</p>



<h2 class="wp-block-heading" id="h-azure-vm-metrics-reviewing-disk-related-counters">Azure VM Metrics &#8211; Reviewing disk-related counters</h2>



<p>Using Azure VM Metrics, you can review numerous counters related to the VM and create alerts based on a set threshold.  We&#8217;re focused on the following counters within the Virtual Machine Host namespace.  Three separate charts are used.  FYI, filters can be added if you&#8217;re only interested in a specific disk.  Identify the disk LUN and then add the LUN filter to the chart.  </p>



<h3 class="wp-block-heading" id="h-disk-throughput-sec-write-and-read">Disk Throughput / Sec &#8211; Write and Read</h3>



<ul class="wp-block-list">
<li>Data Disk Write Bytes/sec</li>



<li>Data Disk Read Bytes/sec</li>
</ul>



<h3 class="wp-block-heading" id="h-disk-operations-sec-iops-write-and-read">Disk Operations / Sec (IOPs) &#8211; Write and Read</h3>



<ul class="wp-block-list">
<li>Data Disk Write Operations/sec</li>



<li>Data Disk Read Operations/sec</li>
</ul>



<h3 class="wp-block-heading" id="h-disk-latency">Disk Latency </h3>



<ul class="wp-block-list">
<li>Data Disk Latency (Preview)</li>
</ul>



<p>The screenshot below shows each one of the counters.  The time range has been set to the last 30 minutes, which refreshes every 5 minutes.</p>



<figure class="wp-block-image size-large"><a href="https://theserogroup.com/wp-content/uploads/2024/02/image-4.png"><img decoding="async" width="1024" height="507" src="https://theserogroup.com/wp-content/uploads/2024/02/image-4-1024x507.png" alt="" class="wp-image-5731" srcset="https://theserogroup.com/wp-content/uploads/2024/02/image-4-1024x507.png 1024w, https://theserogroup.com/wp-content/uploads/2024/02/image-4-300x149.png 300w, https://theserogroup.com/wp-content/uploads/2024/02/image-4-768x381.png 768w, https://theserogroup.com/wp-content/uploads/2024/02/image-4-1536x761.png 1536w, https://theserogroup.com/wp-content/uploads/2024/02/image-4-2048x1015.png 2048w, https://theserogroup.com/wp-content/uploads/2024/02/image-4-1920x951.png 1920w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>



<p>In the example above, we&#8217;ve maxed out on read IOPs, leading to severe latency (above 1 second). By maxing out on IOPs, we&#8217;re also limiting in how much data can be read from the disk. At 8kb blocks * 524 IOPs, the disk maxes out at 4.1 MB/s.  It&#8217;s important to note that if your application reads or writes in larger block sizes it is possible to increase throughput at the cost of lowering IOPs.  </p>



<h2 class="wp-block-heading" id="h-conclusion">Conclusion</h2>



<p>The example above represents a bottleneck encountered at the disk vs. the VM size.  We&#8217;re nowhere near the VM&#8217;s limit of 2,880 IOPs or 35 MBps.  Azure VM Metrics is a fantastic way to review performance counters directly from within the Azure portal.</p>



<h2 class="wp-block-heading" id="h-for-more-information">For more information</h2>



<p>If you’d like some assistance assessing your SQL Server workload on an Azure Virtual Machine,&nbsp;<a href="https://theserogroup.com/#contact">reach out</a>. We’re happy to help.</p>



<p>In the meantime, here are some other posts you may find interesting.</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/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/azure-shared-disks-failover-clustered-instances/">Azure shared disks &#8211; Failover Clustered Instances</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</a></li>



<li><a href="https://theserogroup.com/sql-server/why-is-my-sql-server-slow-14-common-reasons/">Why is My SQL Server Slow? 14 Common Reasons</a></li>



<li><a href="https://theserogroup.com/data-strategy/10-data-storage-considerations-for-growing-companies/">10 Data Storage Considerations for Growing Companies</a></li>
</ul>
<p>The post <a href="https://theserogroup.com/azure/analyzing-disk-latency-in-azure-virtual-machines-part-2/">Analyzing Disk Latency in Azure Virtual Machines &#8211; Part 2</a> appeared first on <a href="https://theserogroup.com">The SERO Group</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://theserogroup.com/azure/analyzing-disk-latency-in-azure-virtual-machines-part-2/feed/</wfw:commentRss>
			<slash:comments>10</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">5701</post-id>	</item>
		<item>
		<title>Should I Use VM Snapshots to Backup SQL Server? A Webinar</title>
		<link>https://theserogroup.com/events/should-i-use-vm-snapshots-to-backup-sql-server/</link>
		
		<dc:creator><![CDATA[Joe Webb]]></dc:creator>
		<pubDate>Wed, 07 Feb 2024 13:00:00 +0000</pubDate>
				<category><![CDATA[Events]]></category>
		<category><![CDATA[Database]]></category>
		<category><![CDATA[Database Administration]]></category>
		<category><![CDATA[Database Development]]></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 Audit]]></category>
		<category><![CDATA[SQL Conference]]></category>
		<category><![CDATA[SQL Consultant]]></category>
		<category><![CDATA[SQL Events]]></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=5719</guid>

					<description><![CDATA[<p>&#8220;Should I Use VM Snapshots to Backup SQL Server?&#8221; Like so many SQL Server related questions, the answer is &#8220;It depends.&#8221; However, most often the ultimate answer will be no. And, in this upcoming webinar we&#8217;ll share 8 questions you should ask before using VM snapshots as your approach to backing up SQL Server. RTO&#8230; <br /> <a class="read-more" href="https://theserogroup.com/events/should-i-use-vm-snapshots-to-backup-sql-server/">Read more</a></p>
<p>The post <a href="https://theserogroup.com/events/should-i-use-vm-snapshots-to-backup-sql-server/">Should I Use VM Snapshots to Backup SQL Server? A Webinar</a> appeared first on <a href="https://theserogroup.com">The SERO Group</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>&#8220;Should I Use VM Snapshots to Backup SQL Server?&#8221; Like so many SQL Server related questions, the answer is &#8220;It depends.&#8221; However, most often the ultimate answer will be no. And, in this upcoming webinar we&#8217;ll share 8 questions you should ask before using VM snapshots as your approach to backing up SQL Server. </p>



<h2 class="wp-block-heading">RTO and RPO considerations webinar</h2>



<p>Many companies take virtual machine snapshots. They snapshot their web servers and their file servers. They snapshot before software patching, before server upgrades, and before other configuration changes. </p>



<p>And with good reason. Snapshotting can be a great way to ensure you can recover the VM if something goes wrong. </p>



<p>What about SQL Server? Should you use VM snapshots to backup SQL Server? Are there RTO and RPO considerations of using snapshots instead of other approaches to backups?</p>



<p>In an <a href="https://www.eventbrite.com/e/virtual-machine-backups-rto-and-rpo-considerations-for-your-sql-server-tickets-820412605187" target="_blank" rel="noreferrer noopener">upcoming webinar</a>, we’ll discuss using VM snapshots as part of your backup strategy. We’ll pose eight important questions you should ask before adopting the snapshot approach.</p>



<h3 class="wp-block-heading" id="h-here-s-what-we-ll-cover">Here’s what we&#8217;ll cover:</h3>



<ul class="wp-block-list">
<li>Why backup?</li>



<li>RPOs and RTOs</li>



<li>8 questions to ask</li>



<li>Best practices</li>



<li>Frequently Asked Questions</li>
</ul>



<h3 class="wp-block-heading" id="h-who-should-attend">Who should attend:</h3>



<p>This webinar will provide a discussion for those responsible for setting backup and recovery policies. It will benefit those who work with key stakeholders to understand the organization&#8217;s Recovery Point Objectives, and Recovery Time Objectives.</p>



<h2 class="wp-block-heading">Want to attend?</h2>



<p>The webinar is Wednesday, February 28 at&nbsp;11:00 AM – 12:30 PM CDT. That&#8217;s 18:00 UTC. </p>



<p>To register, visit the <a href="https://www.eventbrite.com/e/virtual-machine-backups-rto-and-rpo-considerations-for-your-sql-server-tickets-820412605187" target="_blank" rel="noreferrer noopener">Eventbrite page</a>, or complete the embedded version below. </p>


<div id="eventbrite-widget-1" class="wp-block-jetpack-eventbrite wp-block-jetpack-eventbrite--embed"><a href="https://www.eventbrite.com/e/virtual-machine-backups-rto-and-rpo-considerations-for-your-sql-server-tickets-820412605187" rel="noopener noreferrer" target="_blank" class="eventbrite__direct-link" >Register on Eventbrite</a></div>


<h2 class="wp-block-heading" id="h-have-some-specific-questions">Have some specific questions? </h2>



<p>Backups are good. But it’s the ability to restore that is important. How confident are you that you can restore a critical database? Are you sure that your backup strategy meets your RTO&#8217;s and RPO&#8217;s? </p>



<p>Here are some posts that may help. </p>



<ul class="wp-block-list">
<li><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></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/sql-server/sql-server-recovery-models/">What is a SQL Server Recovery Model?</a></li>



<li><a href="https://theserogroup.com/sql-server/script-how-long-until-my-sql-server-backup-restore-completes/">Script: How Long Until My SQL Server Backup/Restore Completes?</a></li>



<li><a href="https://theserogroup.com/azure/how-to-test-sql-server-backups-using-dbatools/">How to Test SQL Server Backups Using dbatools</a></li>



<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>
</ul>



<p>We help a lot of companies configure their SQL Server environment so that when a disaster strikes, they’ll be prepared. Want to learn more? <a href="https://theserogroup.com/#contact">Schedule a call</a> and let&#8217;s talk.</p>
<p>The post <a href="https://theserogroup.com/events/should-i-use-vm-snapshots-to-backup-sql-server/">Should I Use VM Snapshots to Backup SQL Server? A Webinar</a> appeared first on <a href="https://theserogroup.com">The SERO Group</a>.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">5719</post-id>	</item>
		<item>
		<title>Analyzing Disk Latency in Azure Virtual Machines &#8211; Part 1</title>
		<link>https://theserogroup.com/azure/analyzing-disk-latency-in-azure-virtual-machines-part-1/</link>
		
		<dc:creator><![CDATA[Luke Campbell]]></dc:creator>
		<pubDate>Wed, 17 Jan 2024 13:00:00 +0000</pubDate>
				<category><![CDATA[Azure]]></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 Events]]></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=5664</guid>

					<description><![CDATA[<p>If you&#8217;ve moved your SQL Server workload to Azure Virtual Machines, you&#8217;ve noticed there&#8217;s no shortage in the number of options available. Virtual machine sizes, disk types, caching vs no caching, support for bursting, etc. When hosting SQL Server on Azure Virtual Machines, choosing the right combination of VM size and disk types is essential&#8230; <br /> <a class="read-more" href="https://theserogroup.com/azure/analyzing-disk-latency-in-azure-virtual-machines-part-1/">Read more</a></p>
<p>The post <a href="https://theserogroup.com/azure/analyzing-disk-latency-in-azure-virtual-machines-part-1/">Analyzing Disk Latency in Azure Virtual Machines &#8211; Part 1</a> appeared first on <a href="https://theserogroup.com">The SERO Group</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>If you&#8217;ve moved your SQL Server workload to Azure Virtual Machines, you&#8217;ve noticed there&#8217;s no shortage in the number of options available.  Virtual machine sizes, disk types, caching vs no caching, support for bursting, etc.  </p>



<p>When hosting SQL Server on Azure Virtual Machines, choosing the right combination of VM size and disk types is essential from both a cost and performance perspective.  </p>



<p>However, workloads change over time and may require resizing the Azure VM or disks.  For example, perhaps you deployed a new application that utilizes SQL Server on an Azure Virtual Machine.  At first, usage was low, but now the application has become critical to the organization, and usage has increased significantly.  You&#8217;ve noticed disk-related waits in SQL Server have increased, and you are wondering how to address the latency and end users have started to complain.</p>



<p>Tracking down disk performance issues can be tricky.  There are multiple layers to consider.  Is it the virtual machine or the disk(s) causing the bottleneck?  </p>



<p>In Azure, disks and VMs have a cap on how much throughput and IOPs can be performed.  When looking into disk performance issues, it&#8217;s essential to account for the following at both the VM level and Disk level, as each has different levels of performance:</p>



<ul class="wp-block-list">
<li>VM &#8211; Max cached and temp storage throughput (IOPs/MBps).  Not all VMs support premium storage caching.</li>



<li>VM &#8211; Max uncached disk throughput (IOPs/MBps)</li>



<li>VM &#8211; Max data disks</li>



<li>Disk &#8211; Max disk size</li>



<li>Disk &#8211; Max throughput (MB/s)</li>



<li>Disk &#8211; Max IOPs</li>
</ul>



<p>To understand the VM level caps mentioned above, let&#8217;s review the three paths an IO can take: Cached, Uncached, Local/Temp disk.</p>



<h2 class="wp-block-heading" id="h-azure-virtual-machine-disk-io-paths">Azure Virtual Machine Disk IO Paths</h2>



<h3 class="wp-block-heading" id="h-cached">Cached</h3>



<p><strong>Purpose</strong>: Host caching in Azure is designed to improve performance by storing frequently accessed data closer to the VM.  This caching mechanism enhances read operations and can significantly reduce latency.  </p>



<p><strong>Types of Operations</strong>: It&#8217;s typically used for read-heavy workloads.  You can configure host caching to be read-only or read/write (not recommended for disks hosting transaction log files).  Read-only caching is ideal for workloads that predominantly involve read operations, while read/write caching is suitable for a balance of read and write operations.</p>



<p><strong>Performance</strong>: Cached I/O allows for higher IOPS and throughput as it utilizes the VM&#8217;s cache, which is faster than accessing data directly from the disk.  </p>



<p><strong>Limitations</strong>: The amount of storage available for host caching is limited and specified in the VM&#8217;s documentation.  Also, cached I/O counts towards the VM&#8217;s cached limits.</p>



<p><strong>Data Integrity</strong>: For read/write caching, writes are initially written to the cache and later written to the disk, which can be a concern for workloads requiring immediate persistence on disk.</p>



<h3 class="wp-block-heading" id="h-uncached">Uncached</h3>



<p><strong>Purpose</strong>: Uncached disk I/O involves direct interaction with the disk without the intermediate caching layer.  It is used for less frequently accessed data or when the latest data is required.</p>



<p><strong>Types of Operations</strong>: Suitable for workloads that involve a significant amount of write operations or where data integrity and immediate persistence are crucial.</p>



<p><strong>Performance</strong>: Generally, uncached disk I/O has lower performance compared to cached I/O due to the absence of the caching layer.  The IOPS and throughput are limited by the disk&#8217;s and VM&#8217;s capabilities.</p>



<p><strong>Limitations</strong>: The performance is constrained by the disk type and size and VM size.  For example, a P30 disk can handle up to 5,000 IOPs.</p>



<p><strong>Data Integrity</strong>: Since all operations are directly on the disk, there is immediate persistence of data, which is critical for certain applications and data security protocols.</p>



<h3 class="wp-block-heading" id="h-local-temp-disk">Local/Temp disk</h3>



<p><strong>Purpose</strong>: Temporary disks provide short-term storage for applications and processes running on the VM.  They are primarily used to store data that doesn&#8217;t need to be persistent, such as swap files, system caches, page files, or temporary data files (tempdb for example).</p>



<p><strong>Performance</strong>: Temporary disks are typically faster than standard storage disks because they are located on the same physical machine as the VM.  The performance of the temporary disk is tied to the VM size and offers high I/O throughput and low latency, making them ideal for temporary workloads and caching.</p>



<p><strong>Data Persistence and Reliability</strong>: Data on the temporary disk is volatile.  This means it persists only during the lifetime of the VM instance.  If the VM is stopped or de-allocated (not just restarted), data on the temporary disk is likely to be lost.  During some maintenance events or when the VM is moved to a different host hardware, the data on the temporary disk can also be lost. </p>



<p class="has-vivid-red-color has-text-color has-link-color wp-elements-ac08b9dc6ea8015a12bb3591da2e2cb2"><strong>Therefore, temporary disks should not be used for any data you need to keep.</strong></p>



<p>To learn more on how Azure High-Scale VMs utilize disk caching, see <a href="https://learn.microsoft.com/en-us/azure/virtual-machines/premium-storage-performance#disk-caching" target="_blank" rel="noreferrer noopener">here</a>.</p>



<h2 class="wp-block-heading" id="h-azure-vm-size-limitations">Azure VM Size Limitations</h2>



<p>Each Azure Virtual Machine size has the following properties defined (some VM sizes include additional properties such as burstable credits and cached throughput):</p>



<ul class="wp-block-list">
<li>vCPU &#8211; Number of virtual CPUs</li>



<li>Memory GiB </li>



<li>Temp Storage </li>



<li>Max Data Disks &#8211; Number of data disks that can be attached.</li>



<li>Max Network Bandwidth (Gbps)</li>



<li>Max NICs &#8211; Max number of network interface cards.</li>



<li>Max uncached disk throughput IOPS/MBps &#8211; Combined total of all disks.  For example, the remaining disks will encounter latency if one disk uses all available IOPs.</li>
</ul>



<p>We&#8217;ll focus on the disk-related properties throughout this series.</p>



<h2 class="wp-block-heading" id="h-conclusion">Conclusion</h2>



<p>In part 2, we&#8217;ll review an Azure VM experiencing high disk latency.  We&#8217;ll use Azure VM Metrics to help identify where the bottleneck may be and how to alleviate the issue.</p>



<p>In the meantime, here are a few other articles that may be helpful.</p>



<ul class="wp-block-list">
<li><a href="https://theserogroup.com/azure/azure-shared-disks-failover-clustered-instance-sql-server-2016/">Azure shared disks &#8211; Failover Clustered Instance &#8211; SQL Server 2016</a></li>



<li><a href="https://theserogroup.com/sql-server/azure-shared-disks-failover-clustered-instances/">Azure shared disks &#8211; Failover Clustered Instances</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</a></li>



<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/data-strategy/10-data-storage-considerations-for-growing-companies/">10 Data Storage Considerations for Growing Companies</a></li>
</ul>



<p>If you’d like some assistance assessing your SQL Server workload on an Azure Virtual Machine, <a href="https://theserogroup.com/#contact">reach out</a>. We’re happy to help.</p>
<p>The post <a href="https://theserogroup.com/azure/analyzing-disk-latency-in-azure-virtual-machines-part-1/">Analyzing Disk Latency in Azure Virtual Machines &#8211; Part 1</a> appeared first on <a href="https://theserogroup.com">The SERO Group</a>.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">5664</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>SQL Server Maintenance: 10 Things to Keep Your SQL Server Running Well</title>
		<link>https://theserogroup.com/dba/sql-server-maintenance-10-things-to-keep-your-sql-server-running-well/</link>
		
		<dc:creator><![CDATA[Joe Webb]]></dc:creator>
		<pubDate>Wed, 19 Apr 2023 15:41:48 +0000</pubDate>
				<category><![CDATA[DBA]]></category>
		<category><![CDATA[Database]]></category>
		<category><![CDATA[Database Administration]]></category>
		<category><![CDATA[Database Development]]></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 Assessment]]></category>
		<category><![CDATA[SQL Audit]]></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[SQL Training]]></category>
		<category><![CDATA[The Sero Group]]></category>
		<guid isPermaLink="false">https://theserogroup.com/?p=5077</guid>

					<description><![CDATA[<p>I&#8217;m not really a car guy. My daily driver is 10 years old but it serves me well. It&#8217;s reliable. It gets me where I want to go and back again. And I want to keep it that way so I maintain it. I change the oil regularly, I rotate the tires almost as often,&#8230; <br /> <a class="read-more" href="https://theserogroup.com/dba/sql-server-maintenance-10-things-to-keep-your-sql-server-running-well/">Read more</a></p>
<p>The post <a href="https://theserogroup.com/dba/sql-server-maintenance-10-things-to-keep-your-sql-server-running-well/">SQL Server Maintenance: 10 Things to Keep Your SQL Server Running Well</a> appeared first on <a href="https://theserogroup.com">The SERO Group</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>I&#8217;m not really a car guy. My daily driver is 10 years old but it serves me well. It&#8217;s reliable. It gets me where I want to go and back again. And I want to keep it that way so I maintain it. I change the oil regularly, I rotate the tires almost as often, and I even replaced timing belt when the odometer reached 125,000 miles, just as the manufacturer recommended. To keep my car running well requires regular maintenance.</p>



<p>The same is true for SQL Server. A well maintained SQL Server is more reliable, performs better, and is more secure than one that&#8217;s neglected. </p>



<h2 class="wp-block-heading" id="h-required-maintenance-to-keep-your-sql-server-running-well">Required maintenance to keep your SQL Server running well</h2>



<p>Like a car, SQL Server generally starts off running well. But to keep it running at peak performance, and to prevent an untimely and disruptive issue, you&#8217;ve got to maintain it. </p>



<p>Here are ten maintenance activities we recommend that will help. </p>



<ol class="wp-block-list">
<li><strong>Regularly backup your databases.</strong> Backups are crucial for protecting your data and ensuring that you can recover should a crisis happen. </li>



<li><strong>Verify your backups.</strong> Regularly perform test restores of key databases. Run integrity checks on the restored databases. Document the process.  See <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><strong>Maintain indexes.</strong> Keeping your indexes optimized helps with database performance. We recommend Ola Hallengren&#8217;s <a href="https://theserogroup.com/dba/whats-causing-sql-server-performance-issues/"></a><a href="https://ola.hallengren.com/">SQL Server Backup, Integrity Check, Index and Statistics Maintenance</a></li>



<li><strong>Update the statistics.</strong> Regularly updating statistics helps the SQL Server query optimizer generate better query plans. Bad statistics = bad query plans = bad performance. </li>



<li><strong>Proactively monitor your SQL Servers.</strong> SQL Server has some alerting and monitoring capabilities. Use them. Third-party tools provide far greater insight into what&#8217;s going on under the hood. </li>



<li><strong>Implement security best practices.</strong> Enforce security best practices such as separation of duties, the principle of least privilege, SQL Auditing, etc. See <a href="https://theserogroup.com/data-security/who-has-sysadmin-access-to-your-sql-servers/">Who Has sysadmin Access to your SQL Servers?</a></li>



<li><strong>Apply SQL Server patches.</strong> Keep your SQL Servers up to date with the latest security patches and Cumulative Updates to ensure that it is running efficiently and securely. See <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><strong>Daily health checks</strong>. Perform regular health checks to identify potential problems. Don&#8217;t rely on alerting and monitoring. Review the SQL Server logs daily. See <a href="https://theserogroup.com/dba/do-i-still-need-a-sql-server-health-check/">Do I Still Need a SQL Server Health Check?</a></li>



<li><strong>Monitor server resources.</strong> Monitor resources such as CPU, memory, and disk usage to ensure that the server can handle the load. Compile trends over time such as database growth, etc, so you can predict when additional resources will be required. </li>



<li><strong>Performance tuning.</strong> Although this may not strictly fall under maintenance, regularly reviewing the most resource intensive operations and looking for ways to optimize them will help to keep your SQL Server running. See <a href="https://theserogroup.com/dba/sql-server-performance-tuning-and-the-ooda-loop/">SQL Server Performance Tuning and the OODA Loop</a></li>
</ol>



<h2 class="wp-block-heading" id="h-that-sounds-like-a-lot">That sounds like a lot</h2>



<p>These ten maintenance activities will help. They will help improve your SQL Server&#8217;s performance, reliability, and security. That&#8217;s good. No one wants to be stranded by a car or by SQL Server.</p>



<p>However, the list above is not comprehensive. It&#8217;s a start. There are many other activities that can be regularly done to help your SQL Server, things an experienced DBA does on a regular basis.</p>



<ul class="wp-block-list">
<li>Translating and implementing the organization&#8217;s Recovery Point Objectives (RPOs) and Recovery Time Objectives (RTOs) in the organizations SQL Server estate</li>



<li>Planning, testing, and documenting Disaster Recovery scenarios</li>



<li>Implementing High Availability requirements</li>



<li>Benchmarking performance and predicting when additional resources will be required</li>



<li>Coordinating workload placement within the SQL estate</li>



<li>Evaluating cloud options and comparing to colocation sites</li>



<li>Reviewing problematic code with application developers</li>



<li>Providing insights to and coordinating with venders to improve performance</li>



<li>Documenting the SQL Server estate</li>
</ul>



<p>We do these things and more for our <a href="https://theserogroup.com/seroshield/">SEROShield DBA Team as a Service</a> clients.</p>



<p>If you&#8217;d like to learn more, <a href="https://theserogroup.com/#contact">contact us</a> to schedule a short introductory call. </p>
<p>The post <a href="https://theserogroup.com/dba/sql-server-maintenance-10-things-to-keep-your-sql-server-running-well/">SQL Server Maintenance: 10 Things to Keep Your SQL Server Running Well</a> appeared first on <a href="https://theserogroup.com">The SERO Group</a>.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">5077</post-id>	</item>
	</channel>
</rss>
