Adaptive Joins (Batch Mode) |
Yes, starting with database compatibility level 140 |
Yes, starting in SQL Server 2017 (14.x) with database compatibility level 140 |
Adaptive joins dynamically select a join type during runtime based on actual input rows. |
Approximate Count Distinct |
Yes |
Yes, starting in SQL Server 2019 (15.x) |
Provide approximate COUNT DISTINCT for big data scenarios with the benefit of high performance and a low memory footprint. |
Approximate Percentile |
Yes, starting with database compatibility level 110 |
Yes, starting in SQL Server 2022 (16.x) with compatibility level 110 |
Quickly compute percentiles for a large dataset with acceptable rank-based error bounds to help make rapid decisions by using approximate percentile aggregate functions. |
Batch Mode on Rowstore |
Yes, starting with database compatibility level 150 |
Yes, starting in SQL Server 2019 (15.x) with compatibility level 150 |
Provide batch mode for CPU-bound relational DW workloads without requiring columnstore indexes. |
Cardinality estimation (CE) feedback |
Yes, starting with database compatibility level 160 |
Yes, starting in SQL Server 2022 (16.x) with compatibility level 160 |
Automatically adjusts cardinality estimates for repeating queries to optimize workloads where inefficient CE assumptions cause poor query performance. CE feedback will identify and use a model assumption that better fits a given query and data distribution to improve query execution plan quality. |
Degrees of Parallelism (DOP) feedback |
Yes, in Preview, starting with database compatibility level 160 |
Yes, starting in SQL Server 2022 (16.x) with compatibility level 160 |
Automatically adjusts degree of parallelism for repeating queries to optimize for workloads where inefficient parallelism can cause performance issues. Requires Query Store to be enabled. |
Interleaved Execution |
Yes, starting with database compatibility level 140 |
Yes, starting in SQL Server 2017 (14.x) with database compatibility level 140 |
Uses the actual cardinality of the multi-statement table valued function encountered on first compilation instead of a fixed guess. |
Memory grant feedback (Batch Mode) |
Yes, starting with database compatibility level 140 |
Yes, starting in SQL Server 2017 (14.x) with database compatibility level 140 |
If a batch mode query has operations that spill to disk, add more memory for consecutive executions. If a query wastes > 50% of the memory allocated to it, reduce the memory grant size for consecutive executions. |
Memory grant feedback (Row Mode) |
Yes, starting with database compatibility level 150 |
Yes, starting in SQL Server 2019 (15.x) with database compatibility level 150 |
If a row mode query has operations that spill to disk, add more memory for consecutive executions. If a query wastes > 50% of the memory allocated to it, reduce the memory grant size for consecutive executions. |
Memory grant feedback (Percentile) |
Yes, enabled on all databases |
Yes, starting with SQL Server 2022 (16.x)) with database compatibility level 140 |
Addresses existing limitations of memory grant feedback in a non-intrusive way by incorporating past query execution to refine feedback. |
Memory Grant feedback persistence |
Yes, enabled on all databases |
Yes, starting with SQL Server 2022 (16.x)) with database compatibility level 140 |
Provides new functionality to persist memory grant feedback. Requires Query Store to be enabled for the database and in READ_WRITE mode. |
CE feedback persistence |
Yes, starting with database compatibility level 160 |
Yes, starting with SQL Server 2022 (16.x)) with database compatibility level 160 |
Requires Query Store to be enabled for the database and in READ_WRITE mode. |
DOP feedback persistence |
Yes, in Preview, starting with database compatibility level 160 |
Yes, starting with SQL Server 2022 (16.x)) with database compatibility level 160 |
Requires Query Store to be enabled for the database and in READ_WRITE mode. |
Optimized plan forcing |
Yes |
Yes, starting with SQL Server 2022 (16.x)). |
Reduces compilation overhead for repeating forced queries. For more information, see Optimized plan forcing with Query Store. |
Scalar UDF Inlining |
Yes, starting with database compatibility level 150 |
Yes, starting in SQL Server 2019 (15.x) with database compatibility level 150 |
Scalar UDFs are transformed into equivalent relational expressions that are "inlined" into the calling query, often resulting in significant performance gains. |
Parameter Sensitivity Plan optimization |
Yes, starting with database compatibility level 160 |
Yes, starting in SQL Server 2022 (16.x) with database compatibility level 160 |
Parameter Sensitive Plan optimization addresses the scenario where a single cached plan for a parameterized query is not optimal for all possible incoming parameter values, for example non-uniform data distributions. |
Table Variable Deferred Compilation |
Yes, starting with database compatibility level 150 |
Yes, starting in SQL Server 2019 (15.x) with database compatibility level 150 |
Uses the actual cardinality of the table variable encountered on first compilation instead of a fixed guess. |