SQLskills
SQL MCM
Microsoft Certified Master
Microsoft Certified Master
Microsoft Certified Master
Microsoft Certified Master
Microsoft Certified Master
Microsoft Certified Master
Microsoft Certified Master
Microsoft Certified Master
Microsoft Certified Master
IE2: Immersion Event on Performance Tuning
 
Overview

This 5-day class is focused on the many areas surrounding performance. While we strongly recommend that the Immersion Event on Internals and Performance should be taken prior to taking this class, this class also stands alone for anyone wanting to focus on some of the most important aspects of performance tuning for SQL Server.

There are many aspects to performance tuning – some should be done when the database is designed, prototyped and tested, while others must be implemented over time. Why can’t you do all of this during design? Data churn varies, user needs change and what the users told you during development often turns out to be untrue; the end result is that workloads change. The key to long term success is being able to understand, recognize and respond to these changes.

In terms of resource troubleshooting, we’ll introduce key concepts that explain how your SQL Server is performing – IO, SQLOS, waits, queues, and inconsistent plans– and explain how to investigate performance issues related to them. We’ll focus on features (many were new for SQL Server 2008) that allow better analysis and/or control to constrained and protect critical workloads and perform very in-depth troubleshooting.

Please see our Immersion Events Schedule for class dates and our comprehensive Immersion Events FAQ for class costs and other frequently asked questions.

Instructors: Paul S. Randal, Kimberly L. Tripp, Jonathan Kehayias, Joe Sack

Module List
Module 1: SQL Server IO

Before we talk about how storage works, we need to understand what SQL Server needs. We’ll cover each of SQL Server’s commonly used storage devices (such as data, log, tempdb, and backups) and cover their IO patterns and trends. For each, we’ll then go into detail about how certain kinds of activities change those requirements requirements and how to monitor resource usage using DMVs. Topics covered include:
  • Designing file/filegroup layout and partitioning
  • Data: logging, writing, scanning, restoring
  • Physical layout considerations
  • Tempdb
Module 2: Waits and Queues

The Waits and Queues performance tuning methodology is the cornerstone of investigating performance issues with SQL Server. SQL Server knows what it is waiting for, so ask it and then figure out what else in the system to investigate. This module will cover the methodology, common wait patterns and what they mean, as well as some deeper investigative techniques. Topics covered include:
  • Methodology
  • The RUNNING-SUSPENDED-RUNNABLE-RUNNING cycle
  • Common wait types
  • Wait stats DMV usage
Module 3: Critical DMVs - the 20% You'll Use 80% of the Time

SQL Server contains a plethora of DMVs for gaining insight into what's happening (and happened) on the system. In this module we investigate the most useful DMVs and show you their practical application. Topics covered include:
  • Plan cache analysis
  • Query fingerprints (query_hash and query_plan_hash)
  • Index analysis
  • DMV tools (e.g. sp_WhoIsActive
  • SQL Server 2012 DMV preview
  • Summary
Module 4: Query Plan Analysis

Once you’ve identified a query or batch that is associated with a performance issue, you’ll want to look at the query execution plan and see if there are ways that you can address the problem (or problems). Topics covered include:
  • How to capture query execution plans
  • How to analyze query execution plans
  • Common query plan "red flags" and associated next steps leading you to resolution
Module 5: Benchmarking & Baselining

One of the fundamentals of performance tuning is being able to tell how performance has changed from a known point, and also what your system is capable of. This module will show techniques for load testing and creating a baseline. While using Profiler is an expected skill coming into this class, Profiler will still be discussed for some of its more advanced uses including server-side trace queues, automating traces through jobs, Transact-SQL and Performance Monitor counter thresholds as well as collecting the “RIGHT” data for analysis. Topics covered include:
  • Methodology basics
  • Benchmark and baseline data collection
  • Benchmarking storage
  • Replay Markup Language Utilities
  • IO tools and utilities
Module 6: Collecting Performance Data

In addition to benchmarking and baselining, it is also important to know how to collect performance data on an ongoing basis. SQL Server 2008 offers different options for collecting this data, which we’ll discuss in this module. Also important is knowing how to use the data you collect it and analyze it. Therefore we’ll also spend some time looking at some of the secondary tools that can be used to analyze collected data. Topics covered include:
  • Performance Dashboard (even on SQL Server 2008)
  • Management Data Warehouse
  • System collection sets
  • Custom data collection (rolling your own)
  • Parameterizing trace data with sp_get_query_template
  • Aggregating trace data within a table
  • RML, ReadTrace
  • SQLDiag
  • SQLNexus
Module 7: Extended Events

Extended events are a powerful way to look deeply into the internals of SQL Server without compromising performance, but there is a bit of a learning curve to extracting and analyzing the information. Topics covered include:
  • Extended events overview
  • Analyzing captured events
  • System health event session
  • Advanced techniques
Module 8: Practical SQLOS - what you really need to know to effectively troubleshoot

SQLOS helps SQL Server perform by managing queries, internal jobs, the buffer pool, and many other shared resources. We'll discuss how SQL Server interacts with Windows and the underlying hardware, and how you may need to tweak it in order to really push the scaling limits. Topics covered include:
  • Server hardware and NUMA
  • CPU scheduling
  • Memory allocation
  • DMV monitoring and troubleshooting
  • Edge cases and "benchmark specials"
Module 9: CPU Performance Tuning

This module will cover the various patterns to watch for when troubleshooting CPU-related bottlenecks, including tools that you can use to address these issues (such as Resource Governor). Topics covered include:
  • First step for a CPU issue – is it SQL or not?
  • Okay it’s SQL – but is it Kernel or User time?
  • Possible suspects for Kernel time
  • Possible suspects for User time
  • Triage the prime suspects (e.g. how to identify top CPU consuming queries)
  • Controlling CPU with Resource Governor (overview and application)
Module 10: Memory Performance Tuning

This module will cover the various patterns to watch for when troubleshooting memory-related bottlenecks. Topics covered include:
  • How to identify Memory issues (including how to distinguish them from other upstream issues)
  • Identify and troubleshoot Internal Memory pressure
  • Identify and troubleshoot External Memory pressure
  • Identify and troubleshoot Low Virtual Memory issues
  • All about Resource Semaphores
  • Introduction to memory internals changes in SQL Server 2012
Module 11: IO Concepts for DBAs

Now that we understand what SQL Server needs from our storage, we can explore the different kinds of storage available to us. Topics covered include:
  • Defining storage terminology (IOPs, latency, etc.)
  • Magnetic drives and solid state drives
  • Building arrays with RAID
  • Mount points
  • Partition alignment
  • Testing with SQLIO and IOmeter
  • Direct attached storage including PCI-Express drives
Module 12: IO - Storage Area Networks for DBAs

Shared storage makes things a lot more complicated, but we’ll demystify the black box. We’ll cover each of the major SAN components, explain how it affects SQL Server performance, and show how to get the right configurations from your SAN administrators. Topics covered include:
  • SAN components
  • Shared vs. dedicated arrays
  • Pathing - Multipathing
  • Cache (on the drives, SAN controller, RAID controller, and Windows)
  • Snapshot backups (SAN, not SQL)
  • Clustering
Module 13: Bringing It All Together

In this module we’ll summarize the various methodologies we’ve presented through the week by working through some real-life customer scenarios we’ve dealt with.
 
Questions?
If you have any questions about the training classes that SQLskills.com provides, please don't hesitate to send us email!
Privacy Policy.
All Rights Reserved.
Copyright 2011 SQLskills.com
sqlskills.com
Events in Seattle Washington