/*************************** ** START CUSTOM HIGHLIGHTING ****************************/ // tsql language not available by CDN /************************ * END CUSTOM HIGHLIGHTING *************************/ September 2024

About This Blog

Including content from SQLperformance.com & SQLblog.com

Sunday 15 September 2024

Current State of the ANY Aggregate Transformation

 

Summary

SQL Server provides a way to select any one row from a group of rows, provided you write the statement using a specific syntax. This method returns any one row from each group, not the minimum, maximum or anything else. In principle, the one row chosen from each group is unpredictable.

There have been problems with the SelSeqPrjToAnyAgg optimizer transformation used.

The table below summarises the current situation:


For details, read the full article on 𝕏.

Tuesday 10 September 2024

A Small Sample of SQL Server Chaos

 

Summary

Update processing is extremely complicated, much more so than is commonly appreciated. SQL Server generally takes great care to ensure correct operation at all times. It does this partly by protecting physical structures with appropriate latches and locks in accordance with the requirements of the current transaction isolation level.

Even an apparently simple operation like deleting a single row from an index requires a great deal of precise coordination between the query processor and storage engine. Much of the low-level code has been around for decades, so it is well-tested and robust.

It was a huge surprise then, to discover a case where SQL Server gets things wrong. This failure can result in errors, internal assertion failures, stack dumps, and connection termination.

Read the full article on 𝕏.