1 SQL Server 2012 Optimization, Performance Tuning and Troubleshooting 5 Days (SQ-OPT2012-301-EN) Description During this five-day intensive course, students will learn the internal architecture of SQL Server and the typical environments it operate in. This will enable them to better diagnose problems and improve the performance of their SQL Server environments. Students will also dive through the various bottlenecks of SQL Server, learn how to optimize them, and troubleshoot common problems. Target Audience This course is intended for: SQL Server administrators who are responsible for monitoring, troubleshooting and optimizing database servers and installations SQL Server developers who are responsible for developing efficient SQL Server queries and stored procedures Prerequisites Before attending this course, it is recommended that students have the following skills: Experience with SQL Server Understanding of database concepts Experience with SQL Server administration Experience with Transact-SQL programming Knowledge of SQL Server Performance Tuning concepts Course Objectives Upon completion of this course, the students will be able to: Configure database physical storage and filegroups Manage database compression Troubleshoot common virtualization problems Troubleshoot and optimize locking and concurrency issues Optimize and maintain statistics Read, understand and troubleshoot complex execution plans
2 Detect and optimize common poorly performing coding practices Optimize data loading Maintain databases for optimal performance Course Summary Outline Module 01: SQL Server Architecture SQL Server Architecture SQLOS Module 02: SQL Server CPU Architecture of the CPU Subsystem o SMP and NUMA o Schedulers and Workers o Enhancements in SQL Server 2012 SQL Server Configurations o Affinity Mask o Parallelism Monitoring SQL Server CPU o Monitoring and Thresholds o Tuning Methodology Module 03: Introduction of SQL Server Memory Architecture Memory Architecture and Memory Pools SQL Server Configurations Affecting Memory Usage o Min server memory and max server memory o Dynamic Memory o AWE Performance Monitoring and Tuning SQL Server Memory o Monitoring and Thresholds o Tuning Methodology Module 04: SQL Server Files and Filegroups Files and their Usage Filegroups and their Usage Monitoring File Activity and Size Lab 04: Configuring and Verifying a Database File Structure
3 Module 05: Introduction to Disk Subsystem Terminology and Architecture Disk Subsystem Terminology and Architecture Disk Subsystem RAID Levels Virtualization of SQL Server Lab 05: Planning a SQL Server Storage Environment Module 06: Physical Architecture of Databases and Storage Internals Database Files Data Compression Lab 06: Working with Compression Module 07: Transaction Log and tempdb Working with the SQL Server Transaction Log o Transaction Log Architecture o Transaction Log Configuration Working with SQL Server tempdb o Configuring tempdb o Monitoring tempdb Lab 07: Troubleshooting tempdb Contention Module 08: Monitoring and Tuning the Performance of the SQL Server Disk Subsystem Pre-installation Testing o SQLIO o Iometer Monitoring a Running System o Wait Statistics o File I/O Statistics Monitoring and Thresholds Lab 08: I/O Benchmarking
4 Module 09: Introduction to SQL Server performance tuning tools Windows Performance Monitor SQL Trace and SQL Server Profiler Extended Events DMVs and DMFs Database Engine Tuning Advisor SQLDiag Data Collector Third-party Tools Lab 09 A: Synchronizing SQL Server Profiler and Windows Performance Monitor Data Lab 09 B: Working with Deep Events Module 10: SQL Server concurrency Concurrency and Transactions Isolation Levels Blocking Deadlocks Lab 10 A: Working with the SNAPSHOT Isolation Level Lab 10 B: Deadlock Monitoring Module 11: SQL Server Locking Locks Latches Monitoring Locks Lab 11: Monitoring Locks Module 12: SQL Server Data Types Native Data Types SQLCLR Data Types Lab 12 A: Understanding the Impact of Improper Data Type Usage Lab 12 B: Investigating a SQLCLR Data Type
5 Module 13: Statistics The Need for Statistics SQL Server Statistics Objects Creating Statistics Maintaining Statistics Best Practices Lab 13: Creating and Maintaining Statistics Module 14: SQL Server Indexing and Index Maintenance Heaps Indexing Basics o Special Considerations Special Indexes o Columnstore o XML o Spatial o FTS o Hierarchyid Fragmentation o Correcting Fragmentation Issues Lab 14: Understanding Fragmentation Module 15: Execution Plans Query Processing Viewing Execution Plans Plan Operators Affecting Execution Plans Caching and Parameterized Plans What to Look For Lab 15: Reading and Affecting Execution Plans
6 Module 16: Poorly Performing Coding Practices Search Arguments Parameter Sniffing User-defined Functions Business Logic in Queries Iterative Data Access Module 17: Plan Guides, Query Hints, UDFs, and Computed Columns Plan Guides Query and Table Hints UDFs Computed Columns Lab 17: Understanding UDF and Computed Column Performance Module 18: SQL Server Partitioning Table and Index Partitioning o Introduction o Benefits Components and Concepts Partition Management o MERGE o SPLIT o SWITCH Storage Alignment Metadata Lab 18: Table and Index Partitioning Module 19: Optimizing Data Loading Minimally Logged Operations Bulk Load Mechanisms Common Scenarios Optimizing Bulk Load Performance Module 20: Database Maintenance Fragmentation Consistency