Columnstore Grouped Aggregate Pushdown
A deep dive into columnstore grouped aggregation pushdown, showing where this optimization is unsuccessful or not attempted, using the undocumented SQL Server command DBCC CSINDEX
.
A deep dive into columnstore grouped aggregation pushdown, showing where this optimization is unsuccessful or not attempted, using the undocumented SQL Server command DBCC CSINDEX
.
Why the IGNORE_DUP_KEY
index option is much slower on a clustered index than a nonclustered unique index. Detail execution plan analysis and internal engine details.
How the new SQL Server cardinality estimator uses histogram coarse alignment.
A redundant and problematic TOP (1)
added to the inner side of an apply anti join.
An anti join does not automatically come with a 'row goal'. This article describes anti joins and the conditions required for the optimizer to add a row goal.
When the SQL Server query optimizer adds a row goal for a semi join. How you can spot the effects in showplan and trace flag output.
Information about SQL Server row goals and why they're important when trying to understand why the query optimizer made a particular choice.
Using character substrings (trigrams) to speed up wildcard searches in SQL Server. Provides an fairly complete example implementation.
Using a debugger to explore how SQL Server derives estimates when combining multiple single-column statistics.
Improving execution plans and performance for queries involving computed columns using a new trace flag in SQL Server 2016.
It makes sense for the optimizer to consider reordering the inputs to a concatenation when less than the full potential result set is needed. Surprisingly, SQL Server does not do this in general.
Deep dive into SQL Server temporary table and variable caching, including common misconceptions and practices that disable this optimization.
The statistical science and algorithms behind the way SQL Server calculates a cardinality estimate for a filter on a COUNT
aggregate.
SQL Server sometimes produces misleading information about sort operations in execution plans.
How WITH ENCRYPTION
is implemented and how to reverse it using T-SQL.
Why an update may fail when a partition has some data on a read-only filegroup due to "rowset sharing". Includes several workarounds for the issue.
The SQL Server query optimizer does not use uniqueness information obtained through automatic indexed view matching.
Follows the process of optimizing a simple update query and explores some deep internals including "lazy latches" along the way.