You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/t-sql/queries/hints-transact-sql-query.md
+10-10Lines changed: 10 additions & 10 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -336,24 +336,24 @@ The following hint names are supported:
336
336
|`'ABORT_QUERY_EXECUTION'` <aid="use_hint_abort_query_execution"></a> | Blocks query execution. Intended to be used as a [Query Store hint](../../relational-databases/performance/query-store-hints.md) to let administrators block future execution of known problematic queries, for example non-essential queries affecting application workloads. For more information, see [Block future execution of problematic queries](../../relational-databases/performance/query-store-hints-best-practices.md#block-future-execution-of-problematic-queries).<br /><br />**Applies to**: [!INCLUDE [ssazure-sqldb](../../includes/ssazure-sqldb.md)], [!INCLUDE [ssazuremi-md](../../includes/ssazuremi-md.md)]<sup>[AUTD](/azure/azure-sql/managed-instance/update-policy#always-up-to-date-update-policy)</sup>, and [!INCLUDE [sql-server-2025](../../includes/sssql25-md.md)]. |
337
337
|`'ASSUME_FIXED_MIN_SELECTIVITY_FOR_REGEXP'`| The [Cardinality Estimation](../../relational-databases/performance/cardinality-estimation-sql-server.md) model for [REGEXP_LIKE](../functions/regexp-like-transact-sql.md) provides default selectivity values. Use this hint if the default estimation is too high. It sets the selectivity to a fixed lower selectivity value.<br /><br />**Applies to:**[!INCLUDE [sssql25-md](../../includes/sssql25-md.md)] and later versions, and [!INCLUDE [ssazure-sqldb](../../includes/ssazure-sqldb.md)]|
338
338
|`'ASSUME_FIXED_MAX_SELECTIVITY_FOR_REGEXP'`| The [Cardinality Estimation](../../relational-databases/performance/cardinality-estimation-sql-server.md) model for [REGEXP_LIKE](../functions/regexp-like-transact-sql.md) provides default selectivity values. Use this hint if the default estimation is too low. It sets the selectivity to a fixed higher selectivity value.<br /><br />**Applies to:**[!INCLUDE [sssql25-md](../../includes/sssql25-md.md)] and later versions, and [!INCLUDE [ssazure-sqldb](../../includes/ssazure-sqldb.md)]|
339
-
|`'ASSUME_JOIN_PREDICATE_DEPENDS_ON_FILTERS'` <aid="use_hint_join_containment"></a> | Generates a query plan using the Simple Containment assumption instead of the default Base Containment assumption for joins, under the Query Optimizer [Cardinality Estimation](../../relational-databases/performance/cardinality-estimation-sql-server.md) model of [!INCLUDE [ssSQL14](../../includes/sssql14-md.md)] and later versions. This hint name is equivalent to [Trace flag](../database-console-commands/dbcc-traceon-trace-flags-transact-sql.md) 9476. |
340
-
|`'ASSUME_MIN_SELECTIVITY_FOR_FILTER_ESTIMATES'` <aid="use_hint_correlation"></a> | Generates a plan using minimum selectivity when estimating AND predicates for filters to account for full correlation. This hint name is equivalent to [Trace flag](../database-console-commands/dbcc-traceon-trace-flags-transact-sql.md) 4137 when used with cardinality estimation model of [!INCLUDE [ssSQL11](../../includes/sssql11-md.md)] and earlier versions, and has similar effect when [Trace flag](../database-console-commands/dbcc-traceon-trace-flags-transact-sql.md) 9471 is used with cardinality estimation model of [!INCLUDE [ssSQL14](../../includes/sssql14-md.md)] and later versions. |
341
-
|`'ASSUME_FULL_INDEPENDENCE_FOR_FILTER_ESTIMATES'`| Generates a plan using maximum selectivity when estimating AND predicates for filters to account for full independence. This hint name is the default behavior of the cardinality estimation model of [!INCLUDE [ssSQL11](../../includes/sssql11-md.md)] and earlier versions, and equivalent to [Trace flag](../database-console-commands/dbcc-traceon-trace-flags-transact-sql.md) 9472 when used with cardinality estimation model of [!INCLUDE [ssSQL14](../../includes/sssql14-md.md)] and later versions.<br /><br />**Applies to**: [!INCLUDE [ssazure-sqldb](../../includes/ssazure-sqldb.md)]|
339
+
|`'ASSUME_JOIN_PREDICATE_DEPENDS_ON_FILTERS'` <aid="use_hint_join_containment"></a> | Generates a query plan using the Simple Containment assumption instead of the default Base Containment assumption for joins, under the Query Optimizer [Cardinality Estimation](../../relational-databases/performance/cardinality-estimation-sql-server.md) model of [!INCLUDE [ssSQL14](../../includes/sssql14-md.md)] and later versions. This hint name is equivalent to [trace flag](../database-console-commands/dbcc-traceon-trace-flags-transact-sql.md) 9476. |
340
+
|`'ASSUME_MIN_SELECTIVITY_FOR_FILTER_ESTIMATES'` <aid="use_hint_correlation"></a> | Generates a plan using minimum selectivity when estimating AND predicates for filters to account for full correlation. This hint name is equivalent to [trace flag](../database-console-commands/dbcc-traceon-trace-flags-transact-sql.md) 4137 when used with cardinality estimation model of [!INCLUDE [ssSQL11](../../includes/sssql11-md.md)] and earlier versions, and has similar effect when [trace flag](../database-console-commands/dbcc-traceon-trace-flags-transact-sql.md) 9471 is used with cardinality estimation model of [!INCLUDE [ssSQL14](../../includes/sssql14-md.md)] and later versions. |
341
+
|`'ASSUME_FULL_INDEPENDENCE_FOR_FILTER_ESTIMATES'`| Generates a plan using maximum selectivity when estimating AND predicates for filters to account for full independence. This hint name is the default behavior of the cardinality estimation model of [!INCLUDE [ssSQL11](../../includes/sssql11-md.md)] and earlier versions, and equivalent to [trace flag](../database-console-commands/dbcc-traceon-trace-flags-transact-sql.md) 9472 when used with cardinality estimation model of [!INCLUDE [ssSQL14](../../includes/sssql14-md.md)] and later versions.<br /><br />**Applies to**: [!INCLUDE [ssazure-sqldb](../../includes/ssazure-sqldb.md)]|
342
342
|`'ASSUME_PARTIAL_CORRELATION_FOR_FILTER_ESTIMATES'`| Generates a plan using most to least selectivity when estimating AND predicates for filters to account for partial correlation. This hint name is the default behavior of the cardinality estimation model of [!INCLUDE [ssSQL14](../../includes/sssql14-md.md)] and later versions.<br /><br />**Applies to**: [!INCLUDE [ssazure-sqldb](../../includes/ssazure-sqldb.md)]|
343
343
|`'DISABLE_BATCH_MODE_ADAPTIVE_JOINS'`| Disables batch mode adaptive joins. For more information, see [Batch mode Adaptive Joins](../../relational-databases/performance/intelligent-query-processing-details.md#batch-mode-adaptive-joins).<br /><br />**Applies to**: [!INCLUDE [ssSQL17](../../includes/sssql17-md.md)] and later versions, and [!INCLUDE [ssazure-sqldb](../../includes/ssazure-sqldb.md)]|
344
344
|`'DISABLE_BATCH_MODE_MEMORY_GRANT_FEEDBACK'`| Disables batch mode memory grant feedback. For more information, see [Batch mode memory grant feedback](../../relational-databases/performance/intelligent-query-processing-memory-grant-feedback.md#batch-mode-memory-grant-feedback).<br /><br />**Applies to**: [!INCLUDE [ssSQL17](../../includes/sssql17-md.md)] and later versions, and [!INCLUDE [ssazure-sqldb](../../includes/ssazure-sqldb.md)]|
345
345
|`'DISABLE_DEFERRED_COMPILATION_TV'`| Disables table variable deferred compilation. For more information, see [Table variable deferred compilation](../../relational-databases/performance/intelligent-query-processing-details.md#table-variable-deferred-compilation).<br /><br />**Applies to**: [!INCLUDE [sql-server-2019](../../includes/sssql19-md.md)] and later versions, and [!INCLUDE [ssazure-sqldb](../../includes/ssazure-sqldb.md)]|
346
346
|`'DISABLE_INTERLEAVED_EXECUTION_TVF'`| Disables interleaved execution for multi-statement table-valued functions. For more information, see [Interleaved execution for multi-statement table-valued functions](../../relational-databases/performance/intelligent-query-processing-details.md#interleaved-execution-for-mstvfs).<br /><br />**Applies to**: [!INCLUDE [ssSQL17](../../includes/sssql17-md.md)] and later versions, and [!INCLUDE [ssazure-sqldb](../../includes/ssazure-sqldb.md)]|
347
-
|`'DISABLE_OPTIMIZED_NESTED_LOOP'`| Instructs the query processor not to use a sort operation (batch sort) for optimized nested loop joins when generating a query plan. This hint name is equivalent to [Trace flag](../database-console-commands/dbcc-traceon-trace-flags-transact-sql.md) 2340. This hint also applies to explicit sorts and batch sorts. |
348
-
|`'DISABLE_OPTIMIZER_ROWGOAL'` <aid="use_hint_rowgoal"></a> | Causes SQL Server to generate a plan that doesn't use row goal modifications with queries that contain these keywords:<br /><br />- `TOP`<br />- `OPTION (FAST N)`<br />- `IN`<br />- `EXISTS`<br /><br />This hint name is equivalent to [Trace flag](../database-console-commands/dbcc-traceon-trace-flags-transact-sql.md) 4138. |
349
-
|`'DISABLE_PARAMETER_SNIFFING'`| Instructs Query Optimizer to use average data distribution while compiling a query with one or more parameters. This instruction makes the query plan independent on the parameter value that was first used when the query was compiled. This hint name is equivalent to [Trace flag](../database-console-commands/dbcc-traceon-trace-flags-transact-sql.md) 4136 or [database scoped configuration](../statements/alter-database-scoped-configuration-transact-sql.md) setting `PARAMETER_SNIFFING = OFF`. |
347
+
|`'DISABLE_OPTIMIZED_NESTED_LOOP'`| Instructs the query processor not to use a sort operation (batch sort) for optimized nested loop joins when generating a query plan. This hint name is equivalent to [trace flag](../database-console-commands/dbcc-traceon-trace-flags-transact-sql.md) 2340. This hint also applies to explicit sorts and batch sorts. |
348
+
|`'DISABLE_OPTIMIZER_ROWGOAL'` <aid="use_hint_rowgoal"></a> | Causes SQL Server to generate a plan that doesn't use row goal modifications with queries that contain these keywords:<br /><br />- `TOP`<br />- `OPTION (FAST N)`<br />- `IN`<br />- `EXISTS`<br /><br />This hint name is equivalent to [trace flag](../database-console-commands/dbcc-traceon-trace-flags-transact-sql.md) 4138. |
349
+
|`'DISABLE_PARAMETER_SNIFFING'`| Instructs Query Optimizer to use average data distribution while compiling a query with one or more parameters. This instruction makes the query plan independent on the parameter value that was first used when the query was compiled. This hint name is equivalent to [trace flag](../database-console-commands/dbcc-traceon-trace-flags-transact-sql.md) 4136 or [database scoped configuration](../statements/alter-database-scoped-configuration-transact-sql.md) setting `PARAMETER_SNIFFING = OFF`. |
350
350
|`'DISABLE_ROW_MODE_MEMORY_GRANT_FEEDBACK'`| Disables row mode memory grant feedback. For more information, see [Row mode memory grant feedback](../../relational-databases/performance/intelligent-query-processing-memory-grant-feedback.md#row-mode-memory-grant-feedback).<br /><br />**Applies to**: [!INCLUDE [sql-server-2019](../../includes/sssql19-md.md)] and later versions, and [!INCLUDE [ssazure-sqldb](../../includes/ssazure-sqldb.md)]|
351
351
|`'DISABLE_TSQL_SCALAR_UDF_INLINING'`| Disables scalar UDF inlining. For more information, see [Scalar UDF inlining](../../relational-databases/user-defined-functions/scalar-udf-inlining.md).<br /><br />**Applies to**: [!INCLUDE [sql-server-2019](../../includes/sssql19-md.md)] and later versions, and [!INCLUDE [ssazure-sqldb](../../includes/ssazure-sqldb.md)]|
352
352
|`'DISALLOW_BATCH_MODE'`| Disables batch mode execution. For more information, see [Execution modes](../../relational-databases/query-processing-architecture-guide.md#execution-modes).<br /><br />**Applies to**: [!INCLUDE [sql-server-2019](../../includes/sssql19-md.md)] and later versions, and [!INCLUDE [ssazure-sqldb](../../includes/ssazure-sqldb.md)]|
353
-
|`'ENABLE_HIST_AMENDMENT_FOR_ASC_KEYS'`| Enables automatically generated quick statistics (histogram amendment) for any leading index column for which cardinality estimation is needed. The histogram used to estimate cardinality is adjusted at query compile time to account for actual maximum or minimum value of this column. This hint name is equivalent to [Trace flag](../database-console-commands/dbcc-traceon-trace-flags-transact-sql.md) 4139. |
354
-
|`'ENABLE_QUERY_OPTIMIZER_HOTFIXES'`| Enables Query Optimizer hotfixes (changes released in SQL Server Cumulative Updates and Service Packs). This hint name is equivalent to [Trace flag](../database-console-commands/dbcc-traceon-trace-flags-transact-sql.md) 4199 or [database scoped configuration](../statements/alter-database-scoped-configuration-transact-sql.md) setting `QUERY_OPTIMIZER_HOTFIXES = ON`. |
355
-
|`'FORCE_DEFAULT_CARDINALITY_ESTIMATION'`| Forces the Query Optimizer to use [Cardinality Estimation](../../relational-databases/performance/cardinality-estimation-sql-server.md) model that corresponds to the current database compatibility level. Use this hint to override [database scoped configuration](../statements/alter-database-scoped-configuration-transact-sql.md) setting `LEGACY_CARDINALITY_ESTIMATION = ON` or [Trace flag](../database-console-commands/dbcc-traceon-trace-flags-transact-sql.md) 9481. |
356
-
|`'FORCE_LEGACY_CARDINALITY_ESTIMATION'` <aid="use_hint_ce70"></a> | Forces the Query Optimizer to use [Cardinality Estimation](../../relational-databases/performance/cardinality-estimation-sql-server.md) model of [!INCLUDE [ssSQL11](../../includes/sssql11-md.md)] and earlier versions. This hint name is equivalent to [Trace flag](../database-console-commands/dbcc-traceon-trace-flags-transact-sql.md) 9481 or [database scoped configuration](../statements/alter-database-scoped-configuration-transact-sql.md) setting `LEGACY_CARDINALITY_ESTIMATION = ON`. |
353
+
|`'ENABLE_HIST_AMENDMENT_FOR_ASC_KEYS'`| Enables automatically generated quick statistics (histogram amendment) for any leading index column for which cardinality estimation is needed. The histogram used to estimate cardinality is adjusted at query compile time to account for actual maximum or minimum value of this column. This hint name is equivalent to [trace flag](../database-console-commands/dbcc-traceon-trace-flags-transact-sql.md) 4139. |
354
+
|`'ENABLE_QUERY_OPTIMIZER_HOTFIXES'`| Enables Query Optimizer hotfixes (changes released in SQL Server Cumulative Updates and Service Packs). This hint name is equivalent to [trace flag](../database-console-commands/dbcc-traceon-trace-flags-transact-sql.md) 4199 or [database scoped configuration](../statements/alter-database-scoped-configuration-transact-sql.md) setting `QUERY_OPTIMIZER_HOTFIXES = ON`. |
355
+
|`'FORCE_DEFAULT_CARDINALITY_ESTIMATION'`| Forces the Query Optimizer to use [Cardinality Estimation](../../relational-databases/performance/cardinality-estimation-sql-server.md) model that corresponds to the current database compatibility level. Use this hint to override [database scoped configuration](../statements/alter-database-scoped-configuration-transact-sql.md) setting `LEGACY_CARDINALITY_ESTIMATION = ON` or [trace flag](../database-console-commands/dbcc-traceon-trace-flags-transact-sql.md) 9481. |
356
+
|`'FORCE_LEGACY_CARDINALITY_ESTIMATION'` <aid="use_hint_ce70"></a> | Forces the Query Optimizer to use [Cardinality Estimation](../../relational-databases/performance/cardinality-estimation-sql-server.md) model of [!INCLUDE [ssSQL11](../../includes/sssql11-md.md)] and earlier versions. This hint name is equivalent to [trace flag](../database-console-commands/dbcc-traceon-trace-flags-transact-sql.md) 9481 or [database scoped configuration](../statements/alter-database-scoped-configuration-transact-sql.md) setting `LEGACY_CARDINALITY_ESTIMATION = ON`. |
357
357
|`'QUERY_OPTIMIZER_COMPATIBILITY_LEVEL_n'` <sup>1</sup> | Forces the Query Optimizer behavior at a query level. This behavior happens as if the query was compiled with database compatibility level *n*, where *n* is a supported database compatibility level. For a list of currently supported values for *n*, see [sys.dm_exec_valid_use_hints](../../relational-databases/system-dynamic-management-views/sys-dm-exec-valid-use-hints-transact-sql.md).<br /><br />**Applies to**: [!INCLUDE [ssSQL17](../../includes/sssql17-md.md)] CU 10 and later versions, and [!INCLUDE [ssazure-sqldb](../../includes/ssazure-sqldb.md)]|
358
358
|`'QUERY_PLAN_PROFILE'` <sup>2</sup> | Enables lightweight profiling for the query. When a query that contains this new hint finishes, a new extended event, `query_plan_profile`, is fired. This extended event exposes execution statistics and actual execution plan XML similar to the `query_post_execution_showplan` extended event but only for queries that contains the new hint.<br /><br />**Applies to**: [!INCLUDE [sssql16-md](../../includes/sssql16-md.md)] SP 2 CU 3, [!INCLUDE [ssSQL17](../../includes/sssql17-md.md)] CU 11, and later versions |
359
359
|`'DISABLE_RESULT_SET_CACHE'`| Disables result set caching (preview) for a specific run of a query, if result set cache is enabled for the currently connected item. This means it will neither generate new result set cache nor use existing result set cache (if any). This could be useful in debugging or A/B testing scenarios. For more information, see [Result set caching](/fabric/data-warehouse/result-set-caching).<br /><br />**Applies to**: [!INCLUDE [fabric](../../includes/fabric.md)]|
0 commit comments