SQL Server Performance Tuning

Duration: 3 days

SQL SERVER TRAINING OVERVIEW

SQL Server Performance Tuning training class teaches attendees how to tune their indexes, database engine, queries, and other features to achieve optimal performance. Note: This course is designed for administrators who are new to tuning SQL Server , rather than developers.

SQL SERVER TRAINING PREREQUISITES

This course is designed for SQL Server administrators who have prior SQL query writing experience but are relatively new to tuning SQL Server. This course assumes an existing understanding of relational database concepts and general SQL Server administration topics. If your audience has substantial prior SQL Server tuning experience, this course is not recommended.

HANDS-ON/LECTURE RATIO

Due to the theory required to implement many of the performance tuning practices, the first 2.5 days of this SQL Server training is 50 lecture, 50% hands-on, with the longest lecture segments lasting for 60 minutes. If desired, the last half-day is spent tuning and troubleshooting your databases and queries.

SOFTWARE NEEDED ON EACH STUDENT PC

  • 64-bit Windows 7 or later, or Windows Server 2008 R2 or later, with the latest service pack updates and at least 4 GB RAM
  • A full installation of the SQL Server database engine with the latest service packs installed, as well as all client tools
  • Adventureworks database

 

SQL Server Training Objectives

  • Use Windows Performance Monitor
  • Create a performance baseline
  • Collect and analyze SQL Server Extended Events
  • Analyze the performance of SQL queries
  • Analyze and optimize indexes
  • Use the Database Tuning Advisor
  • Examine and correct fragmentation
  • Review execution plans and the execution plan cache for optimizations
  • Analyze the performance of SQL queries
  • Design more efficient queries
  • Detect and reduce or eliminate blocking
  • Catch and solve deadlocks
  • Optimize database workloads

 

SQL SERVER TRAINING OUTLINE

  • Performance Tuning Overview
    • The Performance-Tuning Process
    • Performance vs. Price
    • Performance Baseline
    • Where to Focus Efforts
    • SQL Server Performance Killers

     

  • System Performance Analysis
    • Performance Monitor Tool
    • Dynamic Management Views
    • Hardware Resource Bottlenecks
    • Memory Bottleneck Analysis
    • Memory Bottleneck Resolutions
    • Disk Bottleneck Analysis
    • Disk Bottleneck Resolutions
    • Processor Bottleneck Analysis
    • Processor Bottleneck Resolutions
    • Network Bottleneck Analysis
    • Network Bottleneck Resolutions
    • SQL Server Overall Performance
    • Creating a Baseline
    • System Behavior Analysis Against Baseline

     

  • SQL Query Performance Analysis
    • Extended Events Wizard
    • Extended Events Automation
    • Extended Events Recommendations
    • Other Query Performance Metrics Methods
    • Costly Queries
    • Execution Plans

     

  • Index Analysis
    • What Is an Index?
    • Index Design Recommendations
    • Clustered Indexes
    • Nonclustered Indexes
    • Clustered vs. Nonclustered Indexes
    • Advanced Indexing Techniques
    • ColumnStore Indexes
    • Special Index Types
    • Additional Characteristics of Indexes

     

  • Bookmark Lookup Analysis
    • Purpose of Bookmark Lookups
    • Drawbacks of Bookmark Lookups
    • Analyzing the Cause of a Bookmark Lookup
    • Resolving Bookmark Lookups

     

  • Statistics Analysis
    • The Role of Statistics in Query Optimization
    • Statistics on an Indexed Column
    • Statistics on a Nonindexed Column
    • Analyzing Statistics
    • Statistics Maintenance
    • Analyzing the Effectiveness of Statistics for a Query
    • Recommendations

     

  • Fragmentation Analysis
    • Causes of Fragmentation
    • Fragmentation Overhead
    • Analyzing the Amount of Fragmentation
    • Fragmentation Resolutions
    • Significance of the Fill Factor
    • Automatic Maintenance

     

  • Execution Plan Cache Analysis
    • Execution Plan Generation
    • Execution Plan Caching
    • Components of the Execution Plan
    • Aging of the Execution Plan
    • Analyzing the Execution Plan Cache
    • Execution Plan Reuse
    • Query Plan Hash and Query Hash
    • Execution Plan Cache Recommendations

     

  • Query Recompilation
    • Benefits and Drawbacks of Recompilation
    • Identifying the Statement Causing Recompilation
    • Analyzing Causes of Recompilation
    • Avoiding Recompilations

     

  • Query Design Analysis
    • Query Design Recommendations
    • Operating on Small Result Sets
    • Using Indexes Effectively
    • Avoiding Optimizer Hints
    • Using Domain and Referential Integrity
    • Avoiding Resource-Intensive Queries
    • Reducing the Number of Network Round-Trips
    • Reducing the Transaction Cost

     

  • Blocking Analysis
    • Blocking Fundamentals
    • Understanding Blocking
    • Locks
    • Isolation Levels
    • Effect of Indexes on Locking
    • Capturing Blocking Information
    • Blocking Resolutions
    • Recommendations to Reduce Blocking
    • Automation to Detect and Collect Blocking Information

     

  • Deadlock Analysis
    • Deadlock Fundamentals
    • Using Error Handling to Catch a Deadlock
    • Deadlock Analysis
    • Avoiding Deadlocks

     

  • SQL Profiler
    • Server Side Trace
    • Client Side Trace
    • Trace Capture using GUI
    • Events, Data columns, Filters
    • Slow Running Queries Trace
    • Error Capturing Trace
    • Auditing Trace
    • Stored Procedure Tracing
    • Deadlock Capture
    • Analysis of Trace Files