Book Image

Learn T-SQL Querying - Second Edition

By : Pedro Lopes, Pam Lahoud
Book Image

Learn T-SQL Querying - Second Edition

By: Pedro Lopes, Pam Lahoud

Overview of this book

Data professionals seeking to excel in Transact-SQL (T-SQL) for Microsoft SQL Server and Azure SQL Database often lack comprehensive resources. This updated second edition of Learn T-SQL Querying focuses on indexing queries and crafting elegant T-SQL code, catering to all data professionals seeking mastery in modern SQL Server versions and Azure SQL Database. Starting with query processing fundamentals, this book lays a solid foundation for writing performant T-SQL queries. You’ll explore the mechanics of the Query Optimizer and Query Execution Plans, learning how to analyze execution plans for insights into current performance and scalability. Through dynamic management views (DMVs) and dynamic management functions (DMFs), you’ll build diagnostic queries. This book thoroughly covers indexing for T-SQL performance and provides insights into SQL Server’s built-in tools for expedited resolution of query performance and scalability issues. Further, hands-on examples will guide you through implementing features such as avoiding UDF pitfalls, understanding predicate SARGability, Query Store, and Query Tuning Assistant. By the end of this book, you‘ll have developed the ability to identify query performance bottlenecks, recognize anti-patterns, and skillfully avoid such pitfalls.
Table of Contents (18 chapters)
1
Part 1: Query Processing Fundamentals
4
Part 2: Dos and Don’ts of T-SQL
9
Part 3: Assembling Our Query Troubleshooting Toolbox

Troubleshooting Live Queries

During our career as a database professional, we likely encounter cases where a runaway query takes hours to complete or doesn’t even complete by any reasonable time measurement. How do we troubleshoot cases such as this?

A query execution plan can help provide a conclusive explanation of query performance issues. But to get a query execution plan there is one requirement a long-running query can’t easily meet: query completion.

If the query takes a long time to complete or never actually does, then how can we troubleshoot these cases? And what happens if we take that production query back to our development server and it runs fine? That means there is a set of conditions that can only be reproduced in the production server, be that the size of the database, the data distribution statistics, or even the availability of resources such as memory or CPU. Therefore, the ability to analyze a query execution plan while the query is executing...