Make life easier on yourself, get a baseline!

At the SQL Connections conference earlier this month, at the start of my talk on Making SQL Server Faster, Part 1: Simple Things, I talked about the importance of having a performance baseline so you can measure the effect of any changes made to your environment. A month ago I kicked off a survey about performance baselines, see here, to see how many of you do or do not have baselines, and why.

Here are the results:

The 'Other' values are:

  • 10 x "We use a performance monitoring tool to view live trends."
  • 8 x "Not enough time or resources or practical methods in place to baseline."
  • 5 x "I'm trying to create one."
  • 5 x "Not yet."
  • 3 x "We have one, but it's pretty old."
  • 2 x "New job. Created one my first week on systems I had access to. Will continue for the enterprise."
  • 2 x "Our environment is seasonal and the data volumes will be varying from year on year. Hence the baseline was not useful and sometimes the baselines pointed to a resource where it's not an issue."
  • 2 x "Too much stuff changes.
  • 1 x "Clients are not providing details as what an ideal workload is."
  • 1 x "I work for multiple companies and some of them require baselines, others do not know what baselining is. The latter is more."

The 'Other' values are:

  • 10 x "All of the above."
  • 6 x "Any of the above if needed!"
  • 4 x "Checking the effect of a change to the system, Performance troubleshooting, Proactive tuning, Capacity planning."
  • 1 x "If I weren't too busy, all the above."

Information on baselines and benchmarks

(Adapted from one of my recent Insider newsletters)

One of the sentiments that we stress several times during our IE2 course on Performance Tuning is that it's far easier to troubleshoot a performance problem when you have historical data compared to when you don't. This is called having a baseline – a set of measurements of performance metrics when the overall system is performing normally (i.e. satisfactorily for users). Some examples are:

  • The I/O load during regular and peak operations, from the SQL Server and Windows perspectives
  • Buffer pool health (e.g. Page Life Expectancy and Lazywriter activity)
  • Run-time characteristics of important queries
  • Wait statistics

Having a baseline means that when performance appears to be suffering, measurements can be taken and compared against the baseline, to identify areas that have changed. This allows you to target further investigations rather than do what I call 'flailing' or 'knee-jerk' performance tuning, where you have no idea where to start or pick a random symptom and focus on that, wasting precious time.

I could write a whole bunch about baselines, how to collect them, and all kinds of other info, but Erin Stellato has just started a multi-part article series over on SQL Server Central, so I won't duplicate that. Check out her first article: Back to Basics: Capturing Baselines on Production SQL Servers. She's also just published a 3-hour online course through Pluralsight called SQL Server: Baselining and Benchmarking, with all kinds of demos and tons of practical how-to advice.

Bottom line: your performance investigations and tuning will be a LOT easier if you have a baseline to compare against. If you don't have one, get one.

New 7.5 hour online course on logging, recovery, and the transaction log

As you know we're recording a lot of content for Pluralsight, and they've just published my latest course today: SQL Server: Logging, Recovery, and the Transaction Log.

This is a carefully structured, 7.5 hour brain dump of everything I know about logging and recovery, which will be useful whether you're a beginner, a seasoned DBA, or you want to delve into more details. The course gives a wealth of practical, applicable knowledge that will help you avoid and recover from transaction log problems.

I can confidently say this is the most comprehensive coverage of logging and recovery that exists in the world today, and there aren't any others by someone who actually wrote code in that portion of the SQL Server Engine.

The course has 37 demos and 194 total recordings, split into the following modules:

  • Introduction
  • Understanding Logging
  • Transaction Log Architecture
  • Log Records
  • Checkpoints
  • Transaction Log Operations
  • Recovery and Crash Recovery
  • Recovery Models and Minimal Logging
  • Transaction Log Provisioning and Management
  • Transaction Log Backups
  • Corruption and Other HA/DR Topics

This means we now have 10 courses from the SQLskills team available on Pluralsight, totaling more than 40 hours of content, with several more coming online before year end and plans for another 25-30+ more courses each year going forward.

With individual subscriptions are low as US$30/month, more than 380 total IT courses, and newly introduced course transcripts and multi-language closed-captioning, Pluralsight is where it's at for online training.

Check out my new course at: SQL Server: Logging, Recovery, and the Transaction Log

I hope you like it!

Make SQLskills part of YOUR team with dedicated consulting

We're there as part of your team when you need us, without the hassle of contracts and scoping calls. We realize that many of you want to have access to the best SQL Server resources on an ongoing basis and so we're now offering dedicated consulting through prepaid hours with a discount.

The idea is that you pre-pay a certain number of remote consulting hours that are valid for two years from the date of purchase and you can use them for consulting, architecture, design/code reviews, upgrades, migrations, hardware planning, performance tuning, health checks, 1-1 mentoring, virtualization, I/O subsystems, baselining, testing, and more, with access to the whole team. You can also convert some of the hours to onsite work or Immersion Event attendance too.

Your company benefits in multiple ways:

  • We get to know your environment and we become part of your extended team, perfect for larger enterprises with diverse consulting needs
  • Getting a discount for buying hours in bulk
  • No longer having to deal with multiple invoices and contracts with limited hours
  • Access to whoever on the team best fits your current needs

You're basically buying a practical insurance policy for your SQL Servers.

The plan has three options:

  • 100 hours pre-paid with a 7.5% discount
  • 200 hours pre-paid with a 10% discount
  • 400 hours pre-paid with a 12.5% discount

And we can discuss larger blocks of hours, as we have done with several of our enterprise clients.

You can convert some of the hours to Immersion Event registrations at the early-bird rate for the class, and you can also convert some of the hours to onsite visits. We provide guaranteed next business day response for incidents, but usually we're there helping our clients the same day. We just don't do 24-hour on-call. If you exhaust your hours, you can pre-pay some more, with the appropriate discount.

We've already signed up some of our existing customers who want no-hassle access to the best team in the business.

If you're interested in getting the same level of service, just send us an email at!