SQL Server: Query Plan Analysis
Learn how to interpret and analyze SQL Server query plans, making performance problems easier to recognize and understand, applicable to developers, DBAs, and anyone responsible for SQL Server, from SQL Server 2005 onwards
What you'll learn
SQL Server query plans contain a wealth of information that can be used to diagnose performance problems, but at first glance they appear complicated and difficult to understand. With more than 30 detailed demos, this course shows you how to easily understand and interpret query plans so you can pinpoint performance problems. The course starts by explaining the various methods of capturing query plans for later analysis, and how to recognize the basic elements of query plans along with their CPU, I/O, and memory costs and requirements. It then moves on to explaining all the common query plan operators and when they will be present in a query plan, along with notes on potential problems to watch out for. The final module explains common patterns to look for in query plans that indicate a performance problem that should be investigated and fixed. This course is perfect for developers, DBAs, and anyone responsible for SQL Server performance, from complete beginners through to those with more experience who want a definitive guide to SQL Server query plans. The information in the course applies to all versions from SQL Server 2005 onwards.
Table of contents
- Module Introduction 1m
- Capturing a Plan 2m
- Demo: Capturing a Plan 5m
- Why Deprecate? 1m
- DMOs 1m
- Demo: DMOs 3m
- SQL Trace and Extended Events 1m
- Demo: Using Extended Events to Capture Execution Plans 3m
- Graphical Showplan 1m
- Demo: Graphical Showplan 5m
- SQL Sentry Plan Explorer 1m
- Demo: SQL Sentry Plan Explorer 3m
- Estimated vs. Actual 1m
- Demo: Estimated vs. Actual 4m
- Module Introduction 1m
- Table and Index Scans 1m
- Demo: Table and Index Scans 2m
- Index Seeks 0m
- Demo: Index Seeks 2m
- Lookups 1m
- Demo: Lookups 2m
- Join Considerations 1m
- Outer / Inner Terminology 2m
- Demo: Outer / Inner Terminology 1m
- Nested Loop 1m
- Demo: Nested Loop 3m
- Merge Join 1m
- Demo: Merge Join 2m
- Hash Match Join 1m
- Demo: Hash Match Join 3m
- Filter 1m
- Demo: Filter 2m
- Stream Aggregate 1m
- Demo: Stream Aggregate 2m
- Hash Match (Aggregate) 1m
- Demo: Hash Match Aggregate 2m
- Sort 1m
- Demo: Sort 2m
- Spools 1m
- Eager Spool and 'Halloween Protection' 2m
- Demo: Eager Spool 1m
- Constant Scan 1m
- Demo: Constant Scan 1m
- Assert 0m
- Demo: Assert 1m
- Compute Scalar 1m
- Demo: Compute Scalar 1m
- Identifying Parallelism in the Plan 1m
- Exchange Operators 1m
- Demo: Exchange Operators 1m
- Bitmap 0m
- Demo: Bitmap 1m
- Merge Interval 0m
- Demo: Merge Interval 2m
- Concatenation 0m
- Demo: Concatenation 1m
- Segment and Sequence Project 1m
- Demo: Segment and Sequence Project 2m
- Module Introduction 1m
- The 'Basics' 1m
- Demo: Missing index warnings 2m
- Lookups 1m
- Nested Loop Patterns 1m
- Merge Join Patterns 1m
- Demo: Merge Join Overhead 2m
- Hash Join Patterns 1m
- Demo: Hash Join Spills 3m
- Stop-and-Go Operators 1m
- Sort Patterns 1m
- Aggregates 1m
- Predicates 1m
- Spool Overhead 1m
- Parallelism Performance Aspects 1m
- Data Modification Plan Patterns 1m
- Demo: Data Modification Plan Patterns 2m
- Cardinality Estimate Issues 1m
- Data Type Conversions 1m
- PlanAffectingConvert 0m
- Demo: PlanAffectingConvert 3m
- NoJoinPredicateWarning 1m
- ColumnsWithNoStatistics Warning 1m
- Parameter Sniffing 1m
- Demo: Parameter Sniffing 3m
- Columnstore Index Execution Mode 1m
- Course Summary 1m