An Indexed View Bug with Scalar Aggregates

Details of a SQL Server bug that can render an indexed view incorrect.
Details of a SQL Server bug that can render an indexed view incorrect.
How SQL Server maintains indexed views as the underlying data changes.
How SQL Server allocation ordered scans work in detail, when they can and can't be used, and how to disable them (almost) completely.
Thinking laterally to find a better algorithm rather than tuning individual SQL Server execution plan operators.
How merge concatenation can be used to avoid sorting, if you know enough about the SQL Server execution engine.
Though SQL is a declarative language, expressing queries differently can dramatically change execution plans.
Details of a regression in a deadlock fix.
A SQL Server semi join cardinality estimation bug where predicates pushed beyond a UNION ALL
are missed.
Index to my series on concurrency, the ACID properties of statements and transactions, and isolation levels in SQL Server.
Guarantees provided by the SQL Server snapshot isolation level and some of its surprising behaviours.
Adding a filtered index can have surprising side-effects on existing queries, even where it seems the new filtered index is completely unrelated.
Why and when UPDATE
and DELETE
statements acquire locks under RCSI.
The detailed behaviour of RCSI compared with locking read committed isolation, including subtle aspects to be aware of.
The logical and physical guarantees provided by read committed isolation.
The guarantees provided by the repeatable read isolation level, including some allowed behaviours you might find surprising.
The cardinality estimation formulas for multiple OR
predicates in SQL Server 2014 and later (using the 'default' cardinality estimator).
Guarantees provided by the strongest transaction isolation level and what they mean in practice.
Concurrency considerations and the practical meaning of each component of the ACID acronym in a SQL Server context.