Andy dives deeper into building a change detection solution by beginning to tune the data flow. He covers options for change detection and explains why some are better than others.
Archive 1.07 – Change Detection Part 2 (31m)
Andy dives deeper into building a change detection solution by beginning to tune the data flow. He covers options for change detection and explains why some are better than others.
You'll need a membership to access this course. Check out my training classes.
- 1.1 Day 1 Module 1 (44m)
- 1.2 Day 1 Module 2 (45m)
- 1.3 Day 1 Module 3 (47m)
- 1.4 Day 1 Module 4 (53m)
- 1.5 Day 1 Module 5 (55m)
- 1.6 Day 1 Module 6 (62m)
- 2.1 Day 2 Module 1 (46m)
- 2.2 Day 2 Module 2 (44m)
- 2.3 Day 2 Module 3 (18m)
- 2.4 Day 2 Module 4 (21m)
- 2.5 Day 2 Module 5 (34m)
- 2.6 Day 2 Module 6 (59m)
- 2.7 Day 2 Module 7 (48m)
- 2017 PASS Summit Pre-Con: Expert Performance Tuning for SQL Server 2016 & 2017
- 0.1 Dec 27-29 Class Resources
- 1.1 Indexes: How to Think Like the Engine (110m)
- 1.2 Queries: How SQL Server Builds Plans and Cardinality Estimates (47m)
- 1.3 Indexes: How to Performance Tune Nonclustered Indexes with sp_BlitzIndex (70m)
- 1.4 Waits: LCK: Find and Fight Blocking (49m)
- 2.1 Queries: How to Identify and Fix Parameter Sniffing (84m)
- 2.2 Queries: Watch Brent Tune Queries with SQL Server 2017 (106m)
- 2.3 Waits: CXPACKET – Parallelism Gone Wild (34m)
- 2.4 Waits: PAGEIOLATCH – Slow Storage (77m)
- 3.1 Processes: How to Triage Performance Emergencies (84m)
- 3.2 Waits: ASYNC_NETWORK_IO, RESOURCE_SEMAPHORE, and WRITELOG (40m)
- 3.3 DBA: Corruption 201 – Optimizing CHECKDB Performance (43m)
- 3.1 Day 3 Module 1 (48m)
- 3.2 Day 3 Module 2 (41m)
- 3.3 Day 3 Module 3 (45m)
- 3.4 Day 3 Module 4 (54m)
- 3.5 Day 3 Module 5 (46m)
- Archive 1.03 – Whack n’ Load Part 2 (41m)
- Archive 1.05 – Sort Transformations (60m)
- Archive 1.06 – Change Detection Part 1: Brute Force (21m)
- Archive 1.09 – Performance Tuning for Change Detection (33m)
- Archive 1.10 – Performance Tuning Connections (13m)
- Archive 1.11 – Extract, Load and Transform (33m)
- Archive 2.02 – Execution Part 1 (16m)
- Archive 2.03 – Execution Part 2 & Creating a Catalog (25m)
- Archive 2.04 – Creating Catalogs and Deploying Projects (36m)
- Archive 2.05 – Catalog Monitoring Part 1 (12m)
- Archive 2.06 – Catalog Monitoring Part 2 (28m)
- Archive 2.07 – References, Environment Variables, and Parameters (41m)
- Archive 3.02 – BIML (72m)
- Consultant Toolkit
- Download the Consultant Toolkit
- Frequently Asked Questions
- How to Analyze the Results
- How to Run It
- How to Share the App with Your Clients
- Uploading to Amazon S3
- Data Science Fundamentals with a Real Project (Instant Replay)
- 1.1 Module 1 (1 hour, 34 minutes)
- 1.2 Module 2 (2 hours, 55 minutes)
- 1.3 Module 3 (2 hours, 3 minutes)
- 2.1 Module 1 (1 hours, 36 minutes)
- 2.2 Module 2 (1 hours, 55 minutes)
- 2.3 Module 3 (55 minutes)
- 2.4 Module 4 (1 hour 39 minutes)
- Data Science Fundamentals with R (Live, 2 Days, Recording)
- 1.01 Day 1 Module 1 (34m)
- 1.02 Day 1 Module 2 (34m)
- 1.03 Day 1 Module 3 (10m)
- 1.04 Day 1 Module 4 (5m)
- 1.05 Day 1 Module 5 (37m)
- 1.06 Day 1 Module 6 (35m)
- 1.07 Day 1 Module 7 (9m)
- 1.08 Day 1 Module 8 (5m)
- 1.09 Day 1 Module 9 (42m)
- 1.10 Day 1 Module 10 (23m)
- 1.11 Day 1 Module 11 (36m)
- 1.12 Day 1 Module 12 (31m)
- 1.13 Day 1 Module 13 (20m)
- 2.01 Day 2 Module 1 (12m)
- 2.02 Day 2 Module 2 (19m)
- 2.03 Day 2 Module 3 (30m)
- 2.04 Day 2 Module 4 (6m)
- 2.05 Day 2 Module 5 (8m)
- 2.06 Day 2 Module 6 (13m)
- 2.07 Day 2 Module 7 (13m)
- 2.08 Day 2 Module 8 (18m)
- 2.09 Day 2 Module 9 (7m)
- 2.10 Day 2 Module 10 (16m)
- 2.11 Day 2 Module 11 (4m)
- 2.12 Day 2 Module 12 (13m)
- 2.13 Day 2 Module 13 (14m)
- 2.14 Day 2 Module 14 (14m)
- 2.15 Day 2 Module 15 (9m)
- 2.16 Day 2 Module 16 (20m)
- 2.17 Day 2 Module 17 (7m)
- 2.18 Day 2 Module 18 (11m)
- 2.19 Day 2 Module 19 (25m)
- 2.20 Day 2 Module 20 (12m)
- 2.21 Day 2 Module 21 (14m)
- 2.22 Day 2 Module 22 (7m)
- 2.23 Day 2 Module 23 (6m)
- 2.24 Day 2 Module 24 (13m)
- DBA Job Interview Questions & Answers Kit
- 1. Core DBA Questions (38m)
- 2. Infrastructure Questions (19m)
- 3. Development DBA Questions (20m)
- 4. Screenshot Questions (13m)
- 5. Open-Ended Questions (10m)
- 6. Bad DBA Job Detector Test (19m)
- 7. Questions For YOU to Ask
- Fundamentals of Azure Networking for Data Professionals
- 1.1 Welcome and Class Roadmap
- 1.2 Networking 101
- 1.3 Demo: Creating a Virtual Network
- 2.1 Security, Limiting Access, Private Links
- 2.2 Demo: Using Virtual Networks for Data Services
- 2.3 Demo: Private Networks Without Public Access
- 2.4 Demo: Multiple Private Networks
- 2.5 Demo: Network Security Groups
- 3.1 Extending Networks to Azure with VPNs
- 3.2 Working With a VPN
- 4.1 Networking Topologies: Hub and Spoke vs Mesh
- 5.1 Microsoft-Managed Virtual Networks
- 5.2 Demo: Azure Data Factory Networking
- 6.1 What’s Next: Recap and Resources
- Fundamentals of Columnstore Indexes Instant Replay
- 0.1 Prerequisites Before the Class
- 0.2 How to Set Up Your Own Lab Server
- 01 How Columnstore Data is Stored
- 02 How Columnstore Data is Deleted, Updated, and Inserted
- 03 How Columnstore Data Is Selected
- 04 How Columnstore Data is Rebuilt
- 05 Clustered Columnstore Quiz: Is Your Table a Good Fit?
- 06 Nonclustered Columnstore Advantages
- 07 A Better Clustered Columnstore Candidate
- 08 Partitioning Is a Great Partner for Columnstore
- 09 Recap
- Fundamentals of Database Administration
- Backups 1: 3 Common Strategies
- Backups 2: Restores
- Backups 3: Setting Up Maintenance Plans
- Backups 4: Setting Up Ola Hallengren’s Maintenance Scripts
- Backups: Reading from Databases During Restores
- Configuration: Anti-Virus
- Configuration: Instant File Initialization
- Configuration: Lock Pages in Memory (LPIM)
- Configuration: Prepare for Emergencies with the Remote DAC
- Configuration: Sending Emails with Database Mail
- Configuration: sp_configure Settings
- Configuration: TempDB Files and Sizes
- Corruption 1: How it Happens, and How to Detect It
- Corruption 2: DBCC CHECKDB for VLDBs
- Maintenance: Agent Jobs
- Maintenance: Patches: Which Ones to Apply, When, and How
- Maintenance: Shrinking Files
- Fundamentals of Index Tuning (Instant Replay)
- 0 Prerequisites Before the Class
- 1 Designing Indexes for the WHERE Clause
- 2 Lab: Indexing for WHERE
- 3 Designing Indexes for ORDER BY
- 4 Lab: Indexing for WHERE + ORDER BY
- 5 Designing Indexes for JOINs
- 6 Lab – Indexing for Joins
- 7 SQL Server’s Built-In Index Recommendations
- 8 Recap and Next Steps
- Bonus Lab – Getting Index Recommendations and Tuning Them
- Fundamentals of Parameter Sniffing
- 0.1 Prerequisites Before the Class
- 01. What Parameter Sniffing Is
- 02. The Kinds of Queries That Are Susceptible to Parameter Sniffing
- 03. Mo Choices, Mo Problems
- 04. Lab: Write a Query that’s Susceptible to Parameter Sniffing
- 05. What Triggers Parameter Sniffing Emergencies, Part 1
- 06. What Triggers Parameter Sniffing Emergencies, Part 2
- 07. How to React to Parameter Sniffing Emergencies
- 08. Lab: Tackle a Parameter Sniffing Emergency
- 09. What Parameter Sniffing ISN’T
- 10. How SQL Server 2022 Tries Fixing Parameter Sniffing
- 11. Class Recap
- Bonus: Storytelling Time
- Fundamentals of PowerShell for DBAs
- 1.1 Welcome and Class Roadmap
- 1.2 How Drew Sets Up His Workstation
- 1.3 Setting Up Your Computer
- 2.1 What’s PowerShell?
- 2.2 Using Variables and Lab 1 Assignment
- 2.3 Using CMDLETs and the Pipeline
- 2.4 CMDLETs: Aliasing and the Pipeline
- 2.5 Lab 2 Assignment
- 3.1 Working with Objects
- 3.2 Object Properties and the Pipeline
- 3.3 Object Methods
- 3.4 Making Your Own Objects
- 3.5 Lab 3 Assignment
- 4.1 Logical Operators and Loops
- 4.2 Filtering with WHERE
- 4.3 WHILE Loops
- 4.4 IF – THEN – ELSE
- 4.5 Lab 4 Assignment
- 5.1 Functions and Parameters
- 5.2 Parameters and Error Handling
- 5.3 Lab 5 Assignment
- 6.1 The SQL Server PowerShell Module
- 6.2 The SQLSERVER:\ Drive
- 6.3 Working with SQLSERVER:\ Objects
- 6.4 Lab 6 Assignment
- 7.1 Scripting SQL Server Objects with PowerShell
- 7.2 Objects and Namespaces
- 7.3 Lab 7 Assignment
- 8.1 PowerShell and the SQL Server Agent
- 8.2 Creating Agent Jobs with PowerShell
- 8.3 Scheduling PowerShell Job Steps
- 8.4 Lab 8 Assignment
- 9.1 Auditing Permissions with PowerShell
- 9.2 Exporting Permissions to CSV
- 9.3 Lab 9 Assignment
- 9.4 What’s Next for You
- Fundamentals of Query Tuning
- 1 Prerequisites Before the Class
- 2 Building a Query Plan
- 3 How Parameters Influence Cached Plans
- 4 Improving Cardinality Estimation Accuracy
- 5 Common T-SQL Anti-Patterns
- 6 Execution Plans are Lying Liars
- 7 Recap and Next Steps
- Bonus: How to Find the Right Queries to Tune
- Bonus: Storytelling Time
- Fundamentals of Server Tuning with Wait Stats
- 01. How to Measure and Change Your SQL Server – 3 Metrics to Gather (23 minutes)
- 02. Measuring Your SQL Server with sp_BlitzFirst and Monitoring Software (24 minutes)
- 03. How to Measure and Change Your SQL Server – The Parts Catalog (7 minutes)
- Wait Types – ASYNC_NETWORK_IO (7 minutes)
- Wait Types – CXPACKET (54 minutes)
- Wait Types – LCK% – Locking Snapshot RCSI Part 1 (39 minutes)
- Wait Types – LCK% – Locking Snapshot RCSI Part 2 (29 minutes)
- Wait Types – PAGEIOLATCH Part 1 – Slow Reads from Storage (7 minutes)
- Wait Types – PAGEIOLATCH Part 2 – Ways to Mitigate It (9 minutes)
- Wait Types – RESOURCE_SEMAPHORE (33m)
- Wait Types – SOS_SCHEDULER_YIELD (44m)
- Wait Types – THREADPOOL (27m)
- Wait Types – WRITELOG (12m)
- Fundamentals of Stored Procedures
- 00 Prerequisites Before the Class
- 01 How to Catch and Roll Back Errors
- 02 How to Debug Without the Debugger
- 03 How to Pass In Multiple Values
- 04 How to Pass In Multiple Rows
- 11 Using Triggers on One Table
- Fundamentals of TempDB
- 0 – Prerequisites Before the Class
- 1 – How the Version Store Affects TempDB
- 2 – How Temp Tables Affect TempDB
- 3 – How Table Variables Affect TempDB
- 4 – Temp Tables and Table Variables at Scale: PFS/GAM/SGAM Contention
- 5 – Memory-Optimized Table Variables
- 6 – How Execution Plans Use TempDB
- 7 – Other TempDB Consumers: Cursors, Index Builds, AG Stats
- 8 – How to Provision and Monitor TempDB
- Hardware, Storage, and Virtualization
- 01. Architecture Design: Building a Strategy for RPO and RTO (18m)
- 02. Architecture Design: Tactics – Clustering, Always On, Mirroring, and More (29m)
- 03. Architecture Design: Are Always On Availability Groups Right for You? (40m)
- 04. Hardware: How to Build Fast SQL Servers (30m)
- 05. Hardware: Server Sizing (23m)
- 06. Hardware: Find the Old Server’s Bottleneck with Wait Stats (28m)
- 07. Virtualization: How VMware and Hyper-V Manage Resources (20m)
- 08. Virtualization: Planning for Consolidation and Virtualization (32m)
- 09. Virtualization: Configuring SQL Server for Virtualization (47m)
- 10. Virtualization: Backup Mistakes with Virtual SQL Servers (11m)
- 11. Storage: How to Test and Compare Your Storage (34m)
- 12. Storage: SAN Pathing (21m)
- 13. Storage: How to Set Up Your SAN for SQL Server (22m)
- 14. Storage: Using Solid State Drives with SQL (30m)
- 15. Storage Advanced Features: Tiering (12m)
- 16. Storage Advanced Features: Snapshots, Replication, Migrations (22m)
- 17. Go-Live Checklists and Testing (22m)
- High Availability and Disaster Recovery
- 01. Choosing the Right HA/DR Features: Defining Your RPO and RTO (17m)
- 02. Choosing the Right HA/DR Features: Why Some Options Look So Expensive (12m)
- 03. Choosing the Right HA/DR Features: HA/DR Features Explained (23m)
- 04. Transaction Log Shipping: Log Shipping Overview (17m)
- 05. Transaction Log Shipping: Unplanned Failovers (16m)
- 06. Transaction Log Shipping: Planned Failovers (18m)
- 07. Transaction Log Shipping: Fixing a Lagging Log Shipping Secondary (9m)
- 08. Transaction Log Shipping: Log Shipping Gotchas and Tools (10m)
- 09. Transaction Log Shipping: “Extreme” Log Shipping and Hidden Costs (10m)
- 10. Database Mirroring: Why Database Mirroring is Still Your Friend (13m)
- 11. Database Mirroring: Database Mirroring Rescue Scenarios (12m)
- 12. Database Mirroring: Demo: Failing over a Mirror; Automatic Page Repair (20m)
- 13. Database Mirroring: Monitoring Database Mirroring (8m)
- 14. Database Mirroring: Learning Plan (5m)
- 15. Quorum for Clusters and AGs: What Quorum Is, Why it Matters, and How to Configure It (21m)
- 16. Quorum for Clusters and AGs: Dynamic Quorum and Dynamic Witness (23m)
- 17. Cluster Validation for Clusters and AGs: Demo (11m)
- 18. Failover Clustered Instances: Features, Requirements, and Licensing (20m)
- 19. Failover Clustered Instances: Demo – Failing Over (18m)
- 20. Failover Clustered Instances: Links to Free Online Labs, Install Instructions, Articles
- 21. Always On Availability Groups Planning: Introduction and Sample Deployments (16m)
- 22. AlwaysOn Availability Groups Planning: Horror Stories and Successes (19m)
- 23. AG Failure Triage: Welcome to Triaging AGs (5m)
- 24. AG Failure Triage: Demo: Tour the AG Before It Breaks (7m)
- 25. AG Failure Triage: Demo: Triaging the Broken AG (34m)
- 26. AG Failure Triage: Recap: Why Did Quorum Fail? (5m)
- 27. AG Failure Triage: How You Can Triage Failures in AGs (14m)
- 28. Real-Life Lessons Learned: Brent’s Bug-Out Bag (5m)
- 29. Real-Life Lessons Learned: Role Swap Lessons Learned (9m)
- How I Use the First Responder Kit
- 00 Prerequisites Before the Class
- 01 Doing a Server-Wide Health Check with sp_Blitz
- 02 Doing a Server-Wide Performance Check with sp_BlitzFirst
- 03 Using sp_BlitzCache to Find the Queries Causing Your Top Waits
- 04 Using sp_BlitzIndex to Diagnose the Most Urgent Index Issues
- 05 Analyzing Deadlocks with sp_BlitzLock
- 06 Check Which Queries Are Running with sp_BlitzWho and sp_WhoIsActive
- 07 Check Your Data Risks with sp_BlitzBackup
- 08 Automate the Data-Gathering Process with the Consultant Toolkit
- 09 Recap and Writing Up Your Findings
- How To Set Up Your SQL Server Training Class Lab VM
- How to Think Like the SQL Server Engine
- 1. The Clustered Index (50 minutes)
- 2. Adding Non-Clustered Indexes (30 min)
- 3. Key Lookups and Cardinality Estimation (41 min)
- 4. Next Steps for Learning
- Live Class Logistics
- Mastering Index Tuning
- 0.1 Prerequisites Before the Class (~4 hours)
- 0.2 Download the Slides
- 1.2 The D.E.A.T.H. Method: Dedupe and Eliminate
- 1.3 Why Index Read & Write Numbers Are Wrong
- 1.4 Lab 1 Setup: Dedupe and Eliminate
- 1.4b Lab 1: Dedupe and Eliminate – Brent Does It
- 1.5 The D.E.A.T.H. Method: Tuning Indexes for Specific Queries
- 1.6 Foreign Key and Check Constraints
- 1.7 Lab 2 Setup: Tuning Indexes for Specific Queries
- 1.8 Lab 2: Tuning Indexes for Specific Queries – Brent Does It
- 2.1 Adding Indexes with the DMVs
- 2.2 Tuning to Avoid Key Lookups and Residual Predicates
- 2.3 Lab 3 Setup: Adding Indexes with Clippy and the DMVs
- 2.3b Lab 3: Adding Indexes with Clippy and the DMVs – Brent Does It
- 2.4 The D.E.A.T.H. Method – Heaps and Clustered Indexes
- 2.5 Tuning Indexes to Avoid Blocking
- 2.6 Lab 4 Setup: Solving Blocking with Indexes
- 2.6 Lab 4: Solving Blocking with Indexes – Brent Does It
- 3.1 Filtered Indexes, Indexed Views, and Computed Columns
- 3.2 Lab 5 Setup: Leveraging Artisanal Indexes
- 3.2b Lab 5: Leveraging Artisanal Indexes – Brent Does It
- 3.3 Lab 6 Setup and Final Lessons
- 3.4 Lab 6: Doing the D.E.A.
- 3.5 Lab 6: Doing the D.E.A.T.
- About the Lab Exercises
- Bonus: Storytelling Time
- Bonus: Tips from the Index Sommelier
- Mastering Parameter Sniffing
- 0.1 Prerequisites Before the Class
- 0.2 Download the Slides and Scripts
- 1.1 How Index Tuning Reduces the Stench
- 1.2 How Query Hints Reduce the Stench
- 1.3 The Drawbacks of Using Recompile Hints
- 1.4 Lab 1: Get One Plan to Work Well Enough for Most
- 1.5 Bad Branching Causes Sniffing, Good Branching Reduces It
- 1.6 Lab 2: Reducing Sniffing by Caching Multiple Plans
- 2.1 Spotting Wild Variations in the Plan Cache
- 2.2 How Freeing the Plan Cache Reduces the Blast Radius: usp_PlanCacheAutopilot
- 2.3 Tracking Even More Plan Cache Details with Query Store
- 2.4 Lab 3: Track Down Plans & Parameters
- 3.1 How Memory Grant Feedback Multiplies Parameter Sniffing
- 3.2 How Adaptive Joins Help, and How to Get Them
- 3.3 How Automatic Tuning Mitigates Parameter Sniffing
- 4.1 Lab 4 Setup: Fixing the Problems You’ve Been Tracking Down
- 4.2 Tuning usp_SearchPostsByPostType
- 4.3 Tuning usp_RptFastestAnswers
- 4.4 Tuning usp_SearchPostsByLocation
- 4.5 Tuning usp_RptQuestionsAnsweredForUser
- 4.6 Tuning usp_SearchUsers
- 4.7 Tuning usp_RptPostLeaderboard
- 4.8 Tuning usp_RptAvgAnswerTimeByTag
- 4.9 Tuning usp_GetTagsForUser
- Bonus Lab: Seeing the Effects of SQL Server 2019 Compat Mode
- Bonus: Storytelling Time
- Mastering Query Tuning
- 0.1 Prerequisites Before the Class (59 min)
- 0.2 Download the Slides and Scripts
- 1.1 How SQL Server Builds Query Plans
- 1.2 When the Architect Gets an Early Estimate Wrong
- 1.3 When the Architect Gets a Late Estimate Wrong
- 1.4 Lab 1 Setup: Improving Estimates
- 1.5 The Tuning Robots in SQL Server 2017, 2019, and 2022
- 1.6 Lab 2 Setup: Analyzing a Running Workload
- 2.1 Tuning for SELECT * and Lots of Rows
- 2.2 User-Defined Functions
- 2.3 Lab 3 Setup: Changing Results and Parameters
- 2.4 Dynamic SQL Pro Tips
- 2.5 Lab 4 Setup: Advanced Rewrites
- 3.1 How Parallelism Balances Work Across Threads
- 3.2 Avoiding Deadlocks
- 3.3 Using Batches to Do a Lot of Work Without Blocking
- 4.1 Lab 5 Setup: The Final Lab
- 4.2 Final Lab: Index Tuning
- 4.3a Final Lab: usp_Q1080
- 4.3a Final Lab: usp_Q6627
- 4.3a Final Lab: usp_Q8116
- 4.3a Final Lab: usp_Report3
- 4.3b Final Lab: Logging sp_BlitzCache to a Table
- 4.3c Final Lab: usp_Q7521
- 4.3e Final Lab: usp_FindRelatedPosts
- 4.3f Final Lab: usp_Q6627, Take 2
- Bonus: Storytelling Time
- Mastering Server Tuning with Wait Stats
- 0.1 Prerequisites Before the Class
- 0.2 Download the Slides and Scripts
- 1.1 How to Measure Your SQL Server
- 1.2 How to Fix PAGEIOLATCH Waits
- 1.3 Lab 1: Fixing PAGEIOLATCH Waits
- 1.4 How to Fix CPU Waits (SOS_SCHEDULER_YIELD)
- 1.5 Lab 2: CPU-Intensive Workload
- 2.1 How to Fix Parallelism Waits (CXPACKET, CXCONSUMER, and LATCH_EX)
- 2.2 Plan Caching and Parameterization
- 2.3 Lab 3: Mixed Workload
- 2.4 How to Fix Blocking Waits (LCK%)
- 2.5 Lab 4 Setup: Planning the Work
- 3.1 How to Fix Worker Thread Waits (THREADPOOL)
- 3.2 How to Fix Query Memory Waits (RESOURCE_SEMAPHORE)
- 3.3 How to Fix Hardware-Sounding Waits (WRITELOG, HADR_SYNC_COMMIT, ASYNC_NETWORK_IO)
- 3.4 Lab 5 Setup: Architecture Changes
- 3.5 How to Triage Performance Emergencies
- 3.6 Lab 6 Setup: Emergency Triage
- Bonus: Abnormal Parallelism
- Bonus: Storytelling Time
- Module 01 Intros (21m)
- Module 02 (25m)
- Module 03 (19m)
- Module 04 (40m)
- Module 05 (57m)
- Module 06 (30m)
- Module 07 (48m)
- Module 08 (36m)
- Module 09 (12m)
- Module 10 (18m)
- My Videos & Downloads
- Performance Tuning By Example
- 1.1 Introduction to Your Lab Server and Lab #1 (37m)
- 1.2 Lab 1 Solution: What We’re Looking For (3m)
- 1.3 Lab 1 Solution: Watch Brent Work Through It (51m)
- 1.4 Lab 2 Introduction: Fix It with Indexes (3m)
- 1.5 Lab 2 Solution: What We’re Looking For (8m)
- 1.6 Lab 2 Solution: Watch Brent Work Through It (60m)
- 2.1 Lab 3 Introduction: Fix It with Code Changes (11m)
- 2.2 Lab 3 Solution: Watch Brent Work Through It (55m)
- 2.3 Lab 3 Recap: Slides (7m)
- 2.4 Lab 4 Introduction: Fix Everything! (5m)
- 2.5 Lab 4 Solution: Watch Brent Work Through It (84m)
- 2.6 Lab 4 Recap: Slides (9m)
- Performance Tuning Class (Live, 4 Days, Recording)
- 1.1 Skills Quiz – What’s Your Real Job Title (28m)
- 1.2 How to Think Like the Engine Part 1 (23m)
- 1.2 How to Think Like the Engine Part 2 (48m)
- 1.3 How to Think Like the Engine – Part 3 (46m)
- 1.4 Heaps and Clustered Indexes (41m)
- 1.5 Tuning Indexes with sp_BlitzIndex Part 1 (47m)
- 1.5 Tuning Indexes with sp_BlitzIndex Part 2 (9m)
- 1.6 Homework: Index Tuning Workshop Part 1 (12m)
- 1.7 Homework: Index Tuning Workshop Part 2 – Answers (60m)
- 2.1 Building Execution Plans Part 1 (25m)
- 2.1 Building Execution Plans Part 2 (22m)
- 2.2 Parameter Sniffing Part 1 (20m)
- 2.2 Parameter Sniffing Part 2 (34m)
- 2.3 Watch Brent Tune Queries Part 1 (56m)
- 2.3 Watch Brent Tune Queries Part 2 (8m)
- 2.4 Common Problems in Query Plans (16m)
- 2.5 Functions (17m)
- 2.6 Designing Indexes for Queries Part 1 (21m)
- 2.6 Designing Indexes for Queries Part 2 (26m)
- 2.6 Designing Indexes for Queries Part 3 (14m)
- 2.7 Homework – Query Design Challenge (6m)
- 2.7 Homework – Query Design Challenge Answers (46m)
- 3.1 How to Measure Your Server – Part 1 (24m)
- 3.1 How to Measure Your Server – Part 2: Wait Stats (17m)
- 3.1 How to Measure Your Server – Part 3: sp_BlitzFirst and Monitoring Software (24m)
- 3.1 How to Measure Your Server – Part 4: Wait Stats Q&A (10m)
- 3.2 CXPACKET (41m)
- 3.3 PAGEIOLATCH: Slow Reads from the Data File (57m)
- 3.4 LCK – Locking Snapshot RCSI Part 1 (39m)
- 3.4 LCK – Locking Snapshot RCSI Part 2 (29m)
- 3.5 – CPU Waits – SOS_SCHEDULER_YIELD and THREADPOOL (44m)
- 3.6 – Hardware Waits – ASYNC_NETWORK_IO, RESOURCE_SEMAPHORE, and WRITELOG (25m)
- 4.1 Solving Waits with AlwaysOn Availability Groups (26m)
- 4.2 Solving Waits with Artisanal Indexes – Filters Views Computed Columns (32m)
- 4.3 Solving Waits with In-Memory OLTP (Hekaton) (43m)
- 4.4 VLDB Terabyteasaurus – Splitting Up Databases (33m)
- 4.5 How to Triage SQL Server Emergencies Part 1 (16m)
- 4.5 How to Triage SQL Server Emergencies Part 2 (44m)
- 4.5 How to Triage SQL Server Emergencies Part 3 (43m)
- 4.6 How to Write a Prescription (24m)
- 4.7 Recap and Q&A (58m)
- Performance Tuning in 21 Demos
- 01 – How NOLOCK Can Show Incorrect Results (10m)
- 02 – Locking and Blocking (29m)
- 03 – Deadlocks (18m)
- 04 – Trivial Plans (17m)
- 05 – Picking Index Key Order (34m)
- 06 – Missing Index Column Order (21m)
- 07 – Execution Plans are Lying Liars (24m)
- 08 – Estimates vs Actuals (48m)
- 09 – Table Variables vs Temp Tables: The 2019 Rematch (10m)
- 10 – How Plans Are Cached (10m)
- 11 – Parameter Sniffing (19m)
- 12 – The Problem with Multi-Parameter Stored Procedures (21m)
- 13 – Dynamic SQL Pro Tips (34m)
- 14 – Parallelism (38m)
- 15 – Simplification (14m)
- 16 – Filtered Indexes (23m)
- 17 – Indexed Views (22m)
- 18 – Computed Columns (14m)
- 19 – Heaps of Sadness (11m)
- 20 – Index Usage DMVs are Lying Liars (26m)
- 21 – Resource Semaphore (37m)
- 22 – Questions (17m)
- Bonus – Building a Fork Bomb in T-SQL (11m)
- Bonus – Managed Instance DTUs (4m)
- Bonus – Memory Usage by Different Operators (15m)
- Bonus: Numbers Tables (18m)
- Private Corporate Training
- Recorded Conference Sessions
- Register for Free Live SQL Server Training
- Running SQL Server in AWS & Azure
- 0 – Prerequisites Before the Class
- 1 – How to Assess Your Workloads
- 2 – Cloud Deployment Options
- 3 – Cloud Performance
- 4 – Designing Backups in the Cloud
- 5 – Measuring Performance and Adjusting Instance Sizes
- 6 – Cloud Products Related to SQL Server
- 7 – Recap
- Statistics: SQL Server’s Guessing Game
- 01. A Tale of Two Plans (7m)
- 02. Getting to Know Statistics (15m)
- 03. Combining Multiple Single-Column Statistics (8m)
- 04. Multi-Column Statistics and the Cardinality Estimators (14m)
- 05. What Is the Cardinality Estimator? (5m)
- 06. Filtered Statistics: ENHANCE! (15m)
- 07. The Ascending Key Problem (11m)
- 08. 10 Rules for Managing Statistics (12m)
- 09. Seeks, Scans, and Sargability (9m)
- 10. How Execution Plans are Made (10m)
- T-SQL Level Up
- 01. Prologue and Script Files
- 02. Thinking in Sets (5m)
- 03. Number and Date Tables (10m)
- 04. Case Expressions (17m)
- 05. Computed Columns (10m)
- 06. Windowing Functions – Design (21m)
- 07. Windowing Functions – Performance (8m)
- 08. Replacing Cursors, Part 1 (6m)
- 09. Replacing Cursors, Part 2 (5m)
- 10. Replacing Cursors, Part 3 (7m)
- 11. Let the Adventure Begin! (9m)
- 12. About Doug (2m)
- Terms and Conditions
- The Senior DBA Class
- 1.1 Intro and DBA Skills Quiz (33m)
- 1.2 Building and Testing Reliable SQL Servers Part 1 (25m)
- 1.2 Building and Testing Reliable SQL Servers Part 2 (21m)
- 1.3 Architecture for HA and DR Part 1
- 1.3 Architecture for HA and DR Part 2
- 1.4 Design Quorum for Failover Clusters (23m)
- 1.5 Triaging Failure in Availability Groups (32m)
- 1.6 Recovering from Failover Part 1 (40m)
- 1.6 Recovering from Failover Part 2 (12m)
- 1.7 Building an Inventory and a Support Matrix (39m)
- 2.1 Database Mirroring Field Medic Guide (40m)
- 2.2 Transaction Log Shipping Tips and Tricks (45m)
- 2.3 Troubleshooting Backup and Restore Problems (35m)
- 2.4 Optimizing DBCC CHECKDB (53m)
- 2.5 Availability Group Backup and CHECKDB Part 1 (8m)
- 2.5 Availability Group Backup and CHECKDB Part 2 (32m)
- 2.6 Cloud for the Senior DBA (38m)
- 2.7 Homework: Deciding Between Availability Solutions Part 1 (11m)
- 2.7 Homework: Deciding Between Availability Solutions Part 2 (27m)
- 3.1 Shared Storage Part 1 (28m)
- 3.1 Shared Storage Part 2 (32m)
- 3.2 Advanced SAN Features – Storage Tiering and Snapshots (31m)
- 3.3 Virtualization Management and Troubleshooting (61m)
- 3.4 Server Hardware Sizing (36m)
- 3.5 Homework Part 1 (11m)
- 3.5 Homework Part 2: Answers (28m)
- 3.6 Index Maintenance for Enterprise Environments (43m)
- 3.7 Recap and Q&A (28m)
- Training FAQ
- Training Plans
- Virtual Machine Setup
- Watch Brent Ozar Streaming Live