Queries with DISTINCT
When the DISTINCT
clause is specified in a query, SQL Server can eliminate duplicate rows by sorting the result set in a worktable to identify and remove the duplicates, similar to how a worktable is used for GROUP BY
queries. In SQL Server 2012, the Query Optimizer can also employ a hashing strategy similar to that used for GROUP BY
to return only the distinct rows before the final result set is determined.
In addition, if the Query Optimizer can determine at compile time that there will be no possibility of duplicate rows in the result set (for example, each row contains the table’s primary key), the strategies for removing duplicate rows are skipped altogether.
Get Microsoft® SQL Server 2012 Unleashed now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.