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

Avoiding unnecessary sort operations

Sort operations in a query plan are very expensive, so we need to avoid anything that might introduce a sort where it is not needed. Using ORDER BY in our query practically guarantees a sort unless we happen to be able to leverage an index and an ordered scan.

Tip

If your query needs to produce an ordered result set and uses a covering index, ensure the index sort order is the same as the query’s desired order. This will increase the likelihood that the SQL Database Engine can leverage the index to order the rows rather than having to do a costly sort operation.

This may be necessary if we need our result set to be returned in a specific order, but if order is not important, this is just overhead.

In this section, we will look at a few examples that may introduce an unnecessary sort operation.

UNION ALL versus UNION

The UNION and UNION ALL syntax is used to combine the results of two separate queries into a single result...