ALTER DATABASE SCOPED CONFIGURATION (Transact-SQL)ALTER DATABASE SCOPED CONFIGURATION (Transact-SQL)

適用対象: はいSQL Server 2016 and later はいAzure SQL Database はいAzure Synapse Analytics (SQL DW) いいえParallel Data Warehouse APPLIES TO: YesSQL Server 2016 and later YesAzure SQL Database YesAzure Synapse Analytics (SQL DW) NoParallel Data Warehouse

このコマンドを使うと、複数のデータベース構成設定を個別のデータベース レベルで設定できます。This command enables several database configuration settings at the individual database level.

引数セクションの各設定の適用対象行で示されているように、次の設定は Azure SQL データベースAzure SQL DatabaseSQL ServerSQL Server でサポートされています。Following settings are supported in Azure SQL データベースAzure SQL Database and in SQL ServerSQL Server as indicated by the APPLIES TO line for each setting in the Arguments section:

  • プロシージャ キャッシュをクリアします。Clear procedure cache.
  • プライマリ データベースに対して、MAXDOP パラメーターを特定のデータベースに最適な内容に基づいて任意の値 (1、2、...) に設定し、(クエリ レポートなどに) 使用されるすべてのセカンダリ データベースに対して別の値 (0 など) を設定します。Set the MAXDOP parameter to an arbitrary value (1,2, ...) for the primary database based on what works best for that particular database and set a different value (such as 0) for all secondary database used (such as for reporting queries).
  • データベースに依存しないクエリ オプティマイザーのカーディナリティ推定モデルを互換性レベルに設定します。Set the query optimizer cardinality estimation model independent of the database to compatibility level.
  • データベース レベルでパラメーター スニッフィングを有効または無効にします。Enable or disable parameter sniffing at the database level.
  • データベース レベルでのクエリ最適化の修正プログラムを有効または無効にします。Enable or disable query optimization hotfixes at the database level.
  • データベース レベルで ID キャッシュを有効または無効にします。Enable or disable the identity cache at the database level.
  • バッチが初めてコンパイルされるとき、コンパイルしたプラン スタブのキャッシュ保存を有効または無効にします。Enable or disable a compiled plan stub to be stored in cache when a batch is compiled for the first time.
  • ネイティブ コンパイル T-SQL モジュールの実行統計コレクションを有効または無効にします。Enable or disable collection of execution statistics for natively compiled T-SQL modules.
  • ONLINE = 構文に対応している DDL ステートメントの既定のオプションでオンラインの有効/無効を変更します。Enable or disable online by default options for DDL statements that support the ONLINE = syntax.
  • RESUMABLE = 構文に対応している DDL ステートメントの既定のオプションで再開可能の有効/無効を変更します。Enable or disable resumable by default options for DDL statements that support the RESUMABLE = syntax.
  • インテリジェントなクエリ処理の機能を有効または無効にします。Enable or disable Intelligent query processing features.
  • 高速プラン強制を有効または無効にします。Enable or disable accelerated plan forcing.
  • グローバル一時テーブルの自動削除機能を有効または無効にします。Enable or disable the auto-drop functionality of global temporary tables.
  • 軽量クエリ プロファイリング インフラストラクチャを有効または無効にします。Enable or disable the lightweight query profiling infrastructure.
  • 新しい String or binary data would be truncated のエラー メッセージを有効または無効にします。Enable or disable the new String or binary data would be truncated error message.
  • sys.dm_exec_query_plan_stats の最後の実際の実行プランのコレクションを有効または無効にします。Enable or disable collection of last actual execution plan in sys.dm_exec_query_plan_stats.
  • 再開可能なインデックス操作を一時停止してから、SQL Server エンジンによって自動的に中止されるまでの一時停止される時間を分単位で指定します。Specify the number of minutes that a paused resumable index operation is paused before it is automatically aborted by the SQL Server engine.
  • 統計の非同期更新で優先度が低いロックの待機を有効または無効にしますEnable or disable waiting for locks at low priority for asynchronous statistics update

この設定は、Azure Synapse Analytics (旧称 SQL DW) でのみ使用できます。This setting is only available in Azure Synapse Analytics (Formerly SQL DW).

  • ユーザー データベースの互換性レベルを設定するSet the compatibility level of a user database

リンク アイコン Transact-SQL 構文表記規則link icon Transact-SQL Syntax Conventions

構文Syntax

-- Syntax for SQL Server and Azure SQL Database

ALTER DATABASE SCOPED CONFIGURATION
{
    { [ FOR SECONDARY] SET <set_options>}
}
| CLEAR PROCEDURE_CACHE [plan_handle]
| SET < set_options >
[;]

< set_options > ::=
{
    MAXDOP = { <value> | PRIMARY}
    | LEGACY_CARDINALITY_ESTIMATION = { ON | OFF | PRIMARY}
    | PARAMETER_SNIFFING = { ON | OFF | PRIMARY}
    | QUERY_OPTIMIZER_HOTFIXES = { ON | OFF | PRIMARY}
    | IDENTITY_CACHE = { ON | OFF }
    | INTERLEAVED_EXECUTION_TVF = { ON | OFF }
    | BATCH_MODE_MEMORY_GRANT_FEEDBACK = { ON | OFF }
    | BATCH_MODE_ADAPTIVE_JOINS = { ON | OFF }
    | TSQL_SCALAR_UDF_INLINING = { ON | OFF }
    | ELEVATE_ONLINE = { OFF | WHEN_SUPPORTED | FAIL_UNSUPPORTED }
    | ELEVATE_RESUMABLE = { OFF | WHEN_SUPPORTED | FAIL_UNSUPPORTED }
    | OPTIMIZE_FOR_AD_HOC_WORKLOADS = { ON | OFF }
    | XTP_PROCEDURE_EXECUTION_STATISTICS = { ON | OFF }
    | XTP_QUERY_EXECUTION_STATISTICS = { ON | OFF }
    | ROW_MODE_MEMORY_GRANT_FEEDBACK = { ON | OFF }
    | BATCH_MODE_ON_ROWSTORE = { ON | OFF }
    | DEFERRED_COMPILATION_TV = { ON | OFF }
    | ACCELERATED_PLAN_FORCING = { ON | OFF }
    | GLOBAL_TEMPORARY_TABLE_AUTO_DROP = { ON | OFF }
    | LIGHTWEIGHT_QUERY_PROFILING = { ON | OFF }
    | VERBOSE_TRUNCATION_WARNINGS = { ON | OFF }
    | LAST_QUERY_PLAN_STATS = { ON | OFF }
    | PAUSED_RESUMABLE_INDEX_ABORT_DURATION_MINUTES = <time>
    | ISOLATE_SECURITY_POLICY_CARDINALITY  = { ON | OFF }
    | ASYNC_STATS_UPDATE_WAIT_AT_LOW_PRIORITY = { ON | OFF }
}

重要

SQL Server 2019 (15.x)SQL Server 2019 (15.x) 以降。Azure SQL データベースAzure SQL Database では、一部のオプション名が変更されています。Starting with SQL Server 2019 (15.x)SQL Server 2019 (15.x) and in Azure SQL データベースAzure SQL Database, some option names have changed:

  • DISABLE_INTERLEAVED_EXECUTION_TVFINTERLEAVED_EXECUTION_TVF に変更しましたDISABLE_INTERLEAVED_EXECUTION_TVF changed to INTERLEAVED_EXECUTION_TVF
  • DISABLE_BATCH_MODE_MEMORY_GRANT_FEEDBACKBATCH_MODE_MEMORY_GRANT_FEEDBACK に変更しましたDISABLE_BATCH_MODE_MEMORY_GRANT_FEEDBACK changed to BATCH_MODE_MEMORY_GRANT_FEEDBACK
  • DISABLE_BATCH_MODE_ADAPTIVE_JOINSBATCH_MODE_ADAPTIVE_JOINS に変更しましたDISABLE_BATCH_MODE_ADAPTIVE_JOINS changed to BATCH_MODE_ADAPTIVE_JOINS
-- Syntax for Azure Synapse Analytics (Formerly SQL DW)

ALTER DATABASE SCOPED CONFIGURATION
{
    SET <set_options>
}
[;]

< set_options > ::=
{
    DW_COMPATIBILITY_LEVEL = { AUTO | 10 | 20 } 
}

引数Arguments

セカンダリの場合FOR SECONDARY

セカンダリ データベースの設定を指定します (すべてのセカンダリ データベースに同じ値を与える必要があります)。Specifies the settings for secondary databases (all secondary databases must have the identical values).

CLEAR PROCEDURE_CACHE [plan_handle]CLEAR PROCEDURE_CACHE [plan_handle]

データベースのプロシージャ (プラン) キャッシュがクリアされ、プライマリとセカンダリの両方で実行することができます。Clears the procedure (plan) cache for the database, and can be executed both on the primary and the secondaries.

プラン キャッシュから 1 つのクエリ プランをクリアするクエリ プラン ハンドルを指定します。Specify a query plan handle to clear a single query plan from the plan cache.

適用対象:クエリ プラン ハンドルの指定は、Azure SQL Database と SQL Server 2019 以降で利用できます。APPLIES TO: Specifying a query plan handle is available in Azure SQL Database and SQL Server 2019 or higher.

MAXDOP = {<value> | PRIMARY } <value>MAXDOP = {<value> | PRIMARY } <value>

ステートメントで使用される並列処理の最大限度 (MAXDOP) 設定の既定値を指定します。Specifies the default max degree of parallelism (MAXDOP) setting that should be used for statements. 0 が初期設定値であり、サーバー構成が代わりに使用されることを示します。0 is the default value and indicates that the server configuration will be used instead. データベース スコープの MAXDOP は、サーバー レベルで設定されている並列処理の最大限度を p_configure によってオーバーライドします (0 に設定されていない限り)。The MAXDOP at the database scope overrides (unless it is set to 0) the max degree of parallelism set at the server level by sp_configure. 別の設定を必要とする特定のクエリを調整する目的で、クエリ ヒントでは引き続き、データベース スコープの MAXDOP をオーバーライドできます。Query hints can still override the database scoped MAXDOP in order to tune specific queries that need different setting. これらすべての設定の上限は、ワークロード グループに設定されている MAXDOP によって決定されます。All these settings are limited by the MAXDOP set for the Workload Group.

MAXDOP オプションを使用すると、並列プラン実行で使用するプロセッサの数を制限できます。You can use the MAXDOP option to limit the number of processors to use in parallel plan execution. SQL ServerSQL Server では、クエリ、インデックス データ定義言語 (DDL) の操作、並列挿入、オンライン列変更、並行統計コレクション、静的およびキーセット ドリブン カーソルの作成の場合に並列実行プランが検討されます。considers parallel execution plans for queries, index data definition language (DDL) operations, parallel insert, online alter column, parallel stats collection, and static and keyset-driven cursor population.

注意

並列処理の最大限度 (MAXDOP) の制限はタスクごとに設定されます。The max degree of parallelism (MAXDOP) limit is set per task. この設定は、要求ごとまたはクエリ制限ごとではありません。It is not a per request or per query limit. つまり、並列クエリ実行中に、1 つの要求で、スケジューラに割り当てられてた複数のタスクを生成することができます。This means that during a parallel query execution, a single request can spawn multiple tasks which are assigned to a scheduler. 詳細については、「スレッドおよびタスクのアーキテクチャ ガイド」を参照してください。For more information, see the Thread and Task Architecture Guide.

インスタンス レベルでこのオプションを設定する方法については、「max degree of parallelism サーバー構成オプションの構成」を参照してください。To set this option at the instance level, see Configure the max degree of parallelism Server Configuration Option.

注意

Azure SQL データベースAzure SQL Database では、サーバーレベルの並列処理の最大限度構成は常に 0 に設定されます。In Azure SQL データベースAzure SQL Database, the server-level max degree of parallelism configuration is always set to 0. MAXDOP は、現在の記事で説明されているように、データベースごとに構成できます。MAXDOP can be configured for each database as described in the current article. MAXDOP の最適な構成に関する推奨事項については、「その他のリソース」を参照してください。For recommendations on configuring MAXDOP optimally, see the Additional Resources section.

ヒント

これをクエリ レベルで行うには、MAXDOP クエリ ヒントを使用します。To accomplish this at the query level, use the MAXDOP query hint.
これをサーバー レベルで行うには、並列処理の最大限度 (MAXDOP) サーバー構成オプションを使用します。To accomplish this at the server level, use the max degree of parallelism (MAXDOP) server configuration option.
これをワークロード レベルで行うには、MAX_DOP Resource Governor ワークロード グループ構成オプションを使用します。To accomplish this at the workload level, use the MAX_DOP Resource Governor workload group configuration option.

PRIMARYPRIMARY

データベースがプライマリにあるとき、セカンダリに対してのみ設定できます。構成はプライマリに設定されている構成になることを示します。Can only be set for the secondaries, while the database in on the primary, and indicates that the configuration will be the one set for the primary. プライマリの構成が変更されると、セカンダリの値も適宜変更されます。セカンダリの値を明示的に設定する必要はありません。If the configuration for the primary changes, the value on the secondaries will change accordingly without the need to set the secondaries value explicitly. PRIMARY はセカンダリの初期設定です。PRIMARY is the default setting for the secondaries.

LEGACY_CARDINALITY_ESTIMATION = { ON | OFF | PRIMARY }LEGACY_CARDINALITY_ESTIMATION = { ON | OFF | PRIMARY }

データベースの互換性レベルに関係なく、クエリ オプティマイザーのカーディナリティ推定モデルを SQL Server 2012 以前のバージョンに設定できます。Enables you to set the query optimizer cardinality estimation model to the SQL Server 2012 and earlier version independent of the compatibility level of the database. 既定値は OFF であり、クエリ オプティマイザーのカーディナリティ推定モデルがデータベースの互換性レベルに基づいて設定されます。The default is OFF, which sets the query optimizer cardinality estimation model based on the compatibility level of the database. LEGACY_CARDINALITY_ESTIMATION を ON に設定することは、トレース フラグ 9481 を有効にすることと同じです。Setting LEGACY_CARDINALITY_ESTIMATION to ON is equivalent to enabling Trace Flag 9481.

ヒント

これをクエリ レベルで行うには、QUERYTRACEON クエリ ヒントを追加してください。To accomplish this at the query level, add the QUERYTRACEON query hint. SQL Server 2016 (13.x)SQL Server 2016 (13.x) SP1 以降、クエリ レベルでこれを行うには、トレース フラグの代わりに、USE HINT クエリ ヒントを追加してください。Starting with SQL Server 2016 (13.x)SQL Server 2016 (13.x) SP1, to accomplish this at the query level, add the USE HINT query hint instead of using the trace flag.

PRIMARYPRIMARY

データベースがプライマリにあるとき、この値はセカンダリでのみ有効になります。すべてのセカンダリのクエリ オプティマイザーのカーディナリティ推定モデル設定がプライマリに設定されている値になることを示します。This value is only valid on secondaries while the database in on the primary, and specifies that the query optimizer cardinality estimation model setting on all secondaries will be the value set for the primary. クエリ オプティマイザーのカーディナリティ推定モデルの構成がプライマリで変更された場合、セカンダリの値も適宜変更されます。If the configuration on the primary for the query optimizer cardinality estimation model changes, the value on the secondaries will change accordingly. PRIMARY はセカンダリの初期設定です。PRIMARY is the default setting for the secondaries.

PARAMETER_SNIFFING = { ON | OFF | PRIMARY}PARAMETER_SNIFFING = { ON | OFF | PRIMARY}

パラメーター スニッフィングを有効にするか無効にします。Enables or disables parameter sniffing. 既定値は ON です。The default is ON. PARAMETER_SNIFFING を OFF に設定することは、トレース フラグ 4136 を有効にすることと同じです。Setting PARAMETER_SNIFFING to OFF is equivalent to enabling Trace Flag 4136.

ヒント

クエリ レベルでこれを行う方法については、「OPTIMIZE FOR UNKNOWN クエリ ヒント」を参照してください。To accomplish this at the query level, see the OPTIMIZE FOR UNKNOWN query hint. SQL Server 2016 (13.x)SQL Server 2016 (13.x) SP1 以降、クエリ レベルでこれを行うには、USE HINT クエリ ヒントも利用できます。Starting with SQL Server 2016 (13.x)SQL Server 2016 (13.x) SP1, to accomplish this at the query level, the USE HINT query hint is also available.

PRIMARYPRIMARY

データベースがプライマリにあるとき、この値はセカンダリでのみ有効になります。すべてのセカンダリでこの設定の値がプライマリに設定されている値になることを示します。This value is only valid on secondaries while the database in on the primary, and specifies that the value for this setting on all secondaries will be the value set for the primary. パラメーター スニッフィングの使用に関するプライマリの構成が変更されると、セカンダリの値も適宜変更されます。セカンダリの値を明示的に設定する必要はありません。If the configuration on the primary for using parameter sniffing changes, the value on the secondaries will change accordingly without the need to set the secondaries value explicitly. PRIMARY はセカンダリの既定の設定です。PRIMARY is the default setting for the secondaries.

QUERY_OPTIMIZER_HOTFIXES = { ON | OFF | PRIMARY }QUERY_OPTIMIZER_HOTFIXES = { ON | OFF | PRIMARY }

データベースの互換性レベルに関係なく、クエリ最適化修正プログラムを有効または無効にします。Enables or disables query optimization hotfixes regardless of the compatibility level of the database. 既定値は OFF です。特定のバージョンで利用できる最高の互換性レベルが導入された後に公開されたクエリ最適化修正プログラムが無効になります (RTM 後)。The default is OFF, which disables query optimization hotfixes that were released after the highest available compatibility level was introduced for a specific version (post-RTM). これを ON に設定することは、トレース フラグ 4199 を有効にすることと同じです。Setting this to ON is equivalent to enabling Trace Flag 4199.

適用対象:SQL ServerSQL Server (開始値 SQL Server 2016 (13.x)SQL Server 2016 (13.x)) および Azure SQL データベースAzure SQL DatabaseAPPLIES TO: SQL ServerSQL Server (Starting with SQL Server 2016 (13.x)SQL Server 2016 (13.x)) and Azure SQL データベースAzure SQL Database

ヒント

これをクエリ レベルで行うには、QUERYTRACEON クエリ ヒントを追加してください。To accomplish this at the query level, add the QUERYTRACEON query hint. SQL Server 2016 (13.x)SQL Server 2016 (13.x) SP1 以降、クエリ レベルでこれを行うには、トレース フラグの代わりに、USE HINT クエリ ヒントを追加してください。Starting with SQL Server 2016 (13.x)SQL Server 2016 (13.x) SP1, to accomplish this at the query level, add the USE HINT query hint instead of using the trace flag.

PRIMARYPRIMARY

データベースがプライマリにあるとき、この値はセカンダリでのみ有効になります。すべてのセカンダリでこの設定の値がプライマリに設定されている値になることを示します。This value is only valid on secondaries while the database in on the primary, and specifies that the value for this setting on all secondaries is the value set for the primary. プライマリの構成が変更されると、セカンダリの値も適宜変更されます。セカンダリの値を明示的に設定する必要はありません。If the configuration for the primary changes, the value on the secondaries changes accordingly without the need to set the secondaries value explicitly. PRIMARY はセカンダリの既定の設定です。PRIMARY is the default setting for the secondaries.

IDENTITY_CACHE = { ON | OFF }IDENTITY_CACHE = { ON | OFF }

適用対象:SQL ServerSQL Server (開始値 SQL Server 2017 (14.x)SQL Server 2017 (14.x)) および Azure SQL データベースAzure SQL DatabaseAPPLIES TO: SQL ServerSQL Server (Starting with SQL Server 2017 (14.x)SQL Server 2017 (14.x)) and Azure SQL データベースAzure SQL Database

データベース レベルで ID キャッシュを有効または無効にします。Enables or disables identity cache at the database level. 既定値は ON です。The default is ON. ID キャッシュは、ID 列が含まれるテーブルでの INSERT パフォーマンスを改善するために使用されます。Identity caching is used to improve INSERT performance on tables with identity columns. サーバーが突然再起動したか、セカンダリ サーバーにフェールオーバーしたときに ID 列の値に隔たりができることを回避するには、IDENTITY_CACHE オプションを無効にします。To avoid gaps in the values of an identity column in cases where the server restarts unexpectedly or fails over to a secondary server, disable the IDENTITY_CACHE option. このオプションは、サーバー レベルのみならずデータベース レベルで設定可能という点を除き、既存のトレース フラグ 272 と似ています。This option is similar to the existing Trace Flag 272, except that it can be set at the database level rather than only at the server level.

注意

このオプションはプライマリにのみ設定できます。This option can only be set for the PRIMARY. 詳細については、「ID 列」を参照してください。For more information, see identity columns.

INTERLEAVED_EXECUTION_TVF = { ON | OFF }INTERLEAVED_EXECUTION_TVF = { ON | OFF }

適用対象:SQL ServerSQL Server (開始値 SQL Server 2017 (14.x)SQL Server 2017 (14.x)) および Azure SQL データベースAzure SQL DatabaseAPPLIES TO: SQL ServerSQL Server (Starting with SQL Server 2017 (14.x)SQL Server 2017 (14.x)) and Azure SQL データベースAzure SQL Database

複数ステートメントのテーブル値関数のインターリーブ実行は、データベースの互換性レベル 140 以上を維持しながら、データベースまたはステートメント範囲で有効または無効にできます。Allows you to enable or disable Interleaved execution for multi-statement table-valued functions at the database or statement scope while still maintaining database compatibility level 140 and higher. インターリーブ実行は、Azure SQL データベースAzure SQL Database のアダプティブ クエリ処理の一部の機能です。Interleaved execution is a feature that is part of Adaptive query processing in Azure SQL データベースAzure SQL Database. 詳細については、インテリジェントなクエリ処理に関する記事をご覧ください。For more information, please refer to Intelligent query processing.

注意

データベース互換性レベルが 130 以下である場合は、このデータベース スコープの構成に影響がありません。For database compatibility level 130 or lower, this database scoped configuration has no effect.

SQL Server 2017 (14.x) のみでの、オプション INTERLEAVED_EXECUTION_TVF には DISABLE_INTERLEAVED_EXECUTION_TVF の古い名前があります。In SQL Server 2017 (14.x) only, the option INTERLEAVED_EXECUTION_TVF had the older name of DISABLE_INTERLEAVED_EXECUTION_TVF.

BATCH_MODE_MEMORY_GRANT_FEEDBACK = { ON | OFF}BATCH_MODE_MEMORY_GRANT_FEEDBACK = { ON | OFF}

適用対象:SQL ServerSQL Server (開始値 SQL Server 2017 (14.x)SQL Server 2017 (14.x)) および Azure SQL データベースAzure SQL DatabaseAPPLIES TO: SQL ServerSQL Server (Starting with SQL Server 2017 (14.x)SQL Server 2017 (14.x)) and Azure SQL データベースAzure SQL Database

バッチ モード メモリ許可フィードバックは、データベースの互換性レベル 140 以上を維持しながら、データベース範囲で有効または無効にできます。Allows you to enable or disable batch mode memory grant feedback at the database scope while still maintaining database compatibility level 140 and higher. バッチ モード メモリ許可フィードバックは、SQL Server 2017 (14.x)SQL Server 2017 (14.x) で導入されたインテリジェントなクエリ処理の一部の機能です。Batch mode memory grant feedback a feature that is part of Intelligent query processing introduced in SQL Server 2017 (14.x)SQL Server 2017 (14.x).

注意

データベース互換性レベルが 130 以下である場合は、このデータベース スコープの構成に影響がありません。For database compatibility level 130 or lower, this database scoped configuration has no effect.

BATCH_MODE_ADAPTIVE_JOINS = { ON | OFF}BATCH_MODE_ADAPTIVE_JOINS = { ON | OFF}

適用対象:SQL ServerSQL Server (開始値 SQL Server 2017 (14.x)SQL Server 2017 (14.x)) および Azure SQL データベースAzure SQL DatabaseAPPLIES TO: SQL ServerSQL Server (Starting with SQL Server 2017 (14.x)SQL Server 2017 (14.x)) and Azure SQL データベースAzure SQL Database

バッチ モードの適応結合は、データベースの互換性レベル 140 以上を維持しながら、データベース範囲で有効または無効にできます。Allows you to enable or disable batch mode adaptive joins at the database scope while still maintaining database compatibility level 140 and higher. バッチ モードの適応結合は、SQL Server 2017 (14.x)SQL Server 2017 (14.x) で導入されたインテリジェントなクエリ処理の一部の機能です。Batch mode adaptive joins is a feature that is part of Intelligent query processing introduced in SQL Server 2017 (14.x)SQL Server 2017 (14.x).

注意

データベース互換性レベルが 130 以下である場合は、このデータベース スコープの構成に影響がありません。For database compatibility level 130 or lower, this database scoped configuration has no effect.

TSQL_SCALAR_UDF_INLINING = { ON | OFF }TSQL_SCALAR_UDF_INLINING = { ON | OFF }

適用対象:SQL ServerSQL Server (SQL Server 2019 (15.x)SQL Server 2019 (15.x) 以降) と Azure SQL データベースAzure SQL Database (機能はパブリック プレビュー段階)APPLIES TO: SQL ServerSQL Server (Starting with SQL Server 2019 (15.x)SQL Server 2019 (15.x)) and Azure SQL データベースAzure SQL Database (feature is in public preview)

データベースの互換性レベル 150 以上を維持しながら、データベース範囲で T-SQL スカラー UDF のインライン化を有効または無効にできます。Allows you to enable or disable T-SQL Scalar UDF inlining at the database scope while still maintaining database compatibility level 150 and higher. T-SQL スカラー UDF のインライン化は、インテリジェント クエリの処理機能ファミリの一部です。T-SQL Scalar UDF inlining is part of the Intelligent query processing feature family.

注意

データベース互換性レベルが 140 以下である場合は、このデータベース スコープの構成に影響がありません。For database compatibility level 140 or lower, this database scoped configuration has no effect.

ELEVATE_ONLINE = { OFF | WHEN_SUPPORTED | FAIL_UNSUPPORTED }ELEVATE_ONLINE = { OFF | WHEN_SUPPORTED | FAIL_UNSUPPORTED }

適用対象: Azure SQL データベースAzure SQL Database (機能はパブリック プレビュー段階)APPLIES TO: Azure SQL データベースAzure SQL Database (feature is in public preview)

サポートされている操作からオンラインにエンジンを自動的に昇格させるオプションを選択できます。Allows you to select options to cause the engine to automatically elevate supported operations to online. 既定は OFF であり、ステートメントで指定されない限り、操作はオンラインに昇格されません。The default is OFF, which means operations will not be elevated to online unless specified in the statement. sys.database_scoped_configurations は ELEVATE_ONLINE の現在の値を反映します。sys.database_scoped_configurations reflects the current value of ELEVATE_ONLINE. これらのオプションは、オンラインでサポートされている操作にのみ適用されます。These options will only apply to operations that are supported for online.

FAIL_UNSUPPORTEDFAIL_UNSUPPORTED

この値のとき、サポートされているすべての DDL 操作が ONLINE に昇格されます。This value elevates all supported DDL operations to ONLINE. オンライン実行に対応していない操作は失敗し、警告が出ます。Operations that do not support online execution will fail and throw a warning.

WHEN_SUPPORTEDWHEN_SUPPORTED

この値のとき、ONLINE 対応の操作が昇格されます。This value elevates operations that support ONLINE. オンライン対応ではない操作はオフラインで実行されます。Operations that do not support online will be run offline.

注意

ONLINE オプションが指定されたステートメントを送信することで、既定の設定をオーバーライドできます。You can override the default setting by submitting a statement with the ONLINE option specified.

ELEVATE_RESUMABLE= { OFF | WHEN_SUPPORTED | FAIL_UNSUPPORTED }ELEVATE_RESUMABLE= { OFF | WHEN_SUPPORTED | FAIL_UNSUPPORTED }

適用対象:SQL ServerSQL Server (SQL Server 2019 (15.x)SQL Server 2019 (15.x) 以降) と Azure SQL データベースAzure SQL Database (機能はパブリック プレビュー段階)APPLIES TO: SQL ServerSQL Server (Starting with SQL Server 2019 (15.x)SQL Server 2019 (15.x)) and Azure SQL データベースAzure SQL Database (feature is in public preview)

サポートされている操作から再開可能にエンジンを自動的に昇格させるオプションを選択できます。Allows you to select options to cause the engine to automatically elevate supported operations to resumable. 既定は OFF であり、ステートメントで指定されない限り、操作は再開可能に昇格されません。The default is OFF, which means operations are not be elevated to resumable unless specified in the statement. sys.database_scoped_configurations は ELEVATE_RESUMABLE の現在の値を反映します。sys.database_scoped_configurations reflects the current value of ELEVATE_RESUMABLE. これらのオプションは、再開可能実行でサポートされている操作にのみ適用されます。These options only apply to operations that are supported for resumable.

FAIL_UNSUPPORTEDFAIL_UNSUPPORTED

この値のとき、サポートされているすべての DDL 操作が RESUMABLE に昇格されます。This value elevates all supported DDL operations to RESUMABLE. 再開可能実行に対応していない操作は失敗し、警告が出ます。Operations that do not support resumable execution fail and throw a warning.

WHEN_SUPPORTEDWHEN_SUPPORTED

この値のとき、RESUMABLE 対応の操作が昇格されます。This value elevates operations that support RESUMABLE. 再開可能対応ではない操作は再開不可能として実行されます。Operations that do not support resumable are run non-resumably.

注意

RESUMABLE オプションが指定されたステートメントを送信することで、既定の設定をオーバーライドできます。You can override the default setting by submitting a statement with the RESUMABLE option specified.

OPTIMIZE_FOR_AD_HOC_WORKLOADS = { ON | OFF }OPTIMIZE_FOR_AD_HOC_WORKLOADS = { ON | OFF }

適用対象: Azure SQL データベースAzure SQL DatabaseAPPLIES TO: Azure SQL データベースAzure SQL Database

バッチが初めてコンパイルされるとき、コンパイルしたプラン スタブのキャッシュ保存を有効または無効にします。Enables or disables a compiled plan stub to be stored in cache when a batch is compiled for the first time. 既定値は OFF です。The default is OFF. あるデータベースに対してデータベース スコープ構成 OPTIMIZE_FOR_AD_HOC_WORKLOADS を有効にすると、バッチを初めてコンパイルしたとき、コンパイル済みのプラン スタブがキャッシュに保存されます。Once the database scoped configuration OPTIMIZE_FOR_AD_HOC_WORKLOADS is enabled for a database, a compiled plan stub will be stored in cache when a batch is compiled for the first time. プラン スタブのメモリ領域は、完全なコンパイル済みプランのサイズに比べて小さくなります。Plan stubs have a smaller memory footprint compared to the size of the full compiled plan. バッチが再度コンパイルまたは実行されると、コンパイル済みプラン スタブは削除され、完全なコンパイル済みプランと置換されます。If a batch is compiled or executed again, the compiled plan stub will be removed and replaced with a full compiled plan.

XTP_PROCEDURE_EXECUTION_STATISTICS = { ON | OFF }XTP_PROCEDURE_EXECUTION_STATISTICS = { ON | OFF }

適用対象: Azure SQL データベースAzure SQL DatabaseAPPLIES TO: Azure SQL データベースAzure SQL Database

現在のデータベース内のすべてのネイティブ コンパイル T-SQL モジュールに対し、モジュール レベルで実行統計コレクションを有効また無効にします。Enables or disables collection of execution statistics at the module-level for natively compiled T-SQL modules in the current database. 既定値は OFF です。The default is OFF. 実行統計は sys.dm_exec_procedure_stats に反映されます。The execution statistics are reflected in sys.dm_exec_procedure_stats.

このオプションが ON の場合、または統計コレクションが sp_xtp_control_proc_exec_stats によって有効化されている場合は、ネイティブ コンパイル T-SQL モジュールのモジュール レベルの実行統計が収集されます。Module-level execution statistics for natively compiled T-SQL modules are collected if either this option is ON, or if statistics collection is enabled through sp_xtp_control_proc_exec_stats.

XTP_QUERY_EXECUTION_STATISTICS = { ON | OFF }XTP_QUERY_EXECUTION_STATISTICS = { ON | OFF }

適用対象: Azure SQL データベースAzure SQL DatabaseAPPLIES TO: Azure SQL データベースAzure SQL Database

現在のデータベース内のすべてのネイティブ コンパイル T-SQL モジュールに対し、ステートメント レベルで実行統計コレクションを有効また無効にします。Enables or disables collection of execution statistics at the statement-level for natively compiled T-SQL modules in the current database. 既定値は OFF です。The default is OFF. 実行統計は、sys.dm_exec_query_stats およびクエリ ストアに反映されます。The execution statistics are reflected in sys.dm_exec_query_stats and in Query Store.

このオプションが ON の場合、または統計コレクションが sp_xtp_control_query_exec_stats によって有効化されている場合は、ネイティブ コンパイル T-SQL モジュールのステートメント レベルの実行統計が収集されます。Statement-level execution statistics for natively compiled T-SQL modules are collected if either this option is ON, or if statistics collection is enabled through sp_xtp_control_query_exec_stats.

ネイティブ コンパイル Transact-SQLTransact-SQL モジュールのパフォーマンスの監視の詳細については、「ネイティブ コンパイル ストアド プロシージャのパフォーマンスの監視」を参照してください。For more information about performance monitoring of natively compiled Transact-SQLTransact-SQL modules see Monitoring Performance of Natively Compiled Stored Procedures.

ROW_MODE_MEMORY_GRANT_FEEDBACK = { ON | OFF}ROW_MODE_MEMORY_GRANT_FEEDBACK = { ON | OFF}

適用対象:SQL ServerSQL Server (SQL Server 2019 (15.x)SQL Server 2019 (15.x) 以降) と Azure SQL データベースAzure SQL Database (機能はパブリック プレビュー段階)APPLIES TO: SQL ServerSQL Server (Starting with SQL Server 2019 (15.x)SQL Server 2019 (15.x)) and Azure SQL データベースAzure SQL Database (feature is in public preview)

行モード メモリ許可フィードバックは、データベースの互換性レベル 150 以上を維持しながら、データベース範囲で有効または無効にできます。Allows you to enable or disable row mode memory grant feedback at the database scope while still maintaining database compatibility level 150 and higher. 行モード メモリ許可フィードバックは、SQL Server 2017 (14.x)SQL Server 2017 (14.x) で導入されたインテリジェントなクエリ処理の一部の機能です (行モードは SQL Server 2019 (15.x)SQL Server 2019 (15.x)Azure SQL データベースAzure SQL Database でサポートされています)。Row mode memory grant feedback a feature that is part of Intelligent query processing introduced in SQL Server 2017 (14.x)SQL Server 2017 (14.x) (row mode is supported in SQL Server 2019 (15.x)SQL Server 2019 (15.x) and Azure SQL データベースAzure SQL Database).

注意

データベース互換性レベルが 140 以下である場合は、このデータベース スコープの構成に影響がありません。For database compatibility level 140 or lower, this database scoped configuration has no effect.

BATCH_MODE_ON_ROWSTORE = { ON | OFF}BATCH_MODE_ON_ROWSTORE = { ON | OFF}

適用対象:SQL ServerSQL Server (SQL Server 2019 (15.x)SQL Server 2019 (15.x) 以降) と Azure SQL データベースAzure SQL Database (機能はパブリック プレビュー段階)APPLIES TO: SQL ServerSQL Server (Starting with SQL Server 2019 (15.x)SQL Server 2019 (15.x)) and Azure SQL データベースAzure SQL Database (feature is in public preview)

行ストアのバッチ モードは、データベースの互換性レベル 150 以上を維持しながら、データベース範囲で有効または無効にできます。Allows you to enable or disable batch mode on rowstore at the database scope while still maintaining database compatibility level 150 and higher. 行ストアのバッチ モードは、インテリジェント クエリの処理機能ファミリの一部の機能です。Batch mode on rowstore is a feature that is part of Intelligent query processing feature family.

注意

データベース互換性レベルが 140 以下である場合は、このデータベース スコープの構成に影響がありません。For database compatibility level 140 or lower, this database scoped configuration has no effect.

DEFERRED_COMPILATION_TV = { ON | OFF}DEFERRED_COMPILATION_TV = { ON | OFF}

適用対象:SQL ServerSQL Server (SQL Server 2019 (15.x)SQL Server 2019 (15.x) 以降) と Azure SQL データベースAzure SQL Database (機能はパブリック プレビュー段階)APPLIES TO: SQL ServerSQL Server (Starting with SQL Server 2019 (15.x)SQL Server 2019 (15.x)) and Azure SQL データベースAzure SQL Database (feature is in public preview)

テーブル変数の遅延コンパイルは、データベースの互換性レベル 150 以上を維持しながら、データベース範囲で有効または無効にできます。Allows you to enable or disable table variable deferred compilation at the database scope while still maintaining database compatibility level 150 and higher. テーブル変数の遅延コンパイルは、インテリジェント クエリの処理機能ファミリの一部の機能です。Table variable deferred compilation is a feature that is part of Intelligent query processing feature family.

注意

データベース互換性レベルが 140 以下である場合は、このデータベース スコープの構成に影響がありません。For database compatibility level 140 or lower, this database scoped configuration has no effect.

ACCELERATED_PLAN_FORCING = { ON | OFF }ACCELERATED_PLAN_FORCING = { ON | OFF }

適用対象:SQL ServerSQL Server (SQL Server 2019 (15.x)SQL Server 2019 (15.x) 以降)Applies to: SQL ServerSQL Server (Starting with SQL Server 2019 (15.x)SQL Server 2019 (15.x))

クエリ ストアのプラン強制自動チューニングUSE PLAN クエリ ヒントなど、あらゆる形式のプラン強制に適用される、クエリ プラン強制のために最適化されたメカニズムを有効にします。Enables an optimized mechanism for query plan forcing, applicable to all forms of plan forcing, such as Query Store Force Plan, Automatic Tuning, or the USE PLAN query hint. 既定値は ON です。The default is ON.

注意

高速プラン強制を無効にしないことをお勧めします。It is not recommended to disable accelerated plan forcing.

GLOBAL_TEMPORARY_TABLE_AUTO_DROP = { ON | OFF }GLOBAL_TEMPORARY_TABLE_AUTO_DROP = { ON | OFF }

適用対象: Azure SQL データベースAzure SQL Database (機能はパブリック プレビュー段階)APPLIES TO: Azure SQL データベースAzure SQL Database (feature is in public preview)

グローバル一時テーブルの自動削除機能を設定できます。Allows setting the auto-drop functionality for global temporary tables. 既定値は ON で、グローバル一時テーブルはどのセッションでも使用中でないときに自動的に削除されることを意味します。The default is ON, which means that the global temporary tables are automatically dropped when not in use by any session. OFF に設定すると、グローバル一時テーブルは、DROP TABLE ステートメントを使用して明示的に削除する必要があります。または、サーバーの再起動時に自動的に削除されます。When set to OFF, global temporary tables need to be explicitly dropped using a DROP TABLE statement or will be automatically dropped on server restart.

  • Azure SQL データベースAzure SQL Database 単一データベースおよびエラスティック プールでは、このオプションを SQL Database サーバーの個々のユーザー データベース内で設定できます。With Azure SQL データベースAzure SQL Database single databases and elastic pools, this option can be set in the individual user databases of the SQL Database server.
  • SQL ServerSQL Server および Azure SQL データベースAzure SQL Database マネージド インスタンス上では、このオプションは TempDB 内で設定され、個々のユーザー データベースの設定に影響を与えません。In SQL ServerSQL Server and Azure SQL データベースAzure SQL Database managed instance, this option is set in TempDB and the setting of the individual user databases has no effect.

LIGHTWEIGHT_QUERY_PROFILING = { ON | OFF}LIGHTWEIGHT_QUERY_PROFILING = { ON | OFF}

適用対象:SQL ServerSQL Server (開始値 SQL Server 2019 (15.x)SQL Server 2019 (15.x)) および Azure SQL データベースAzure SQL DatabaseAPPLIES TO: SQL ServerSQL Server (Starting with SQL Server 2019 (15.x)SQL Server 2019 (15.x)) and Azure SQL データベースAzure SQL Database

軽量クエリ プロファイリング インフラストラクチャを有効または無効にできます。Allows you to enable or disable the lightweight query profiling infrastructure. 軽量クエリ プロファイリング インフラストラクチャ (LWP) は、標準のプロファイリング メカニズムよりも効率的にクエリのパフォーマンス データを提供するもので、既定で有効になっています。The lightweight query profiling infrastructure (LWP) provides query performance data more efficiently than standard profiling mechanisms and is enabled by default.

VERBOSE_TRUNCATION_WARNINGS = { ON | OFF}VERBOSE_TRUNCATION_WARNINGS = { ON | OFF}

適用対象:SQL ServerSQL Server (開始値 SQL Server 2019 (15.x)SQL Server 2019 (15.x)) および Azure SQL データベースAzure SQL DatabaseAPPLIES TO: SQL ServerSQL Server (Starting with SQL Server 2019 (15.x)SQL Server 2019 (15.x)) and Azure SQL データベースAzure SQL Database

新しい String or binary data would be truncated のエラー メッセージの有効と無効が切り替えられるようになります。Allows you to enable or disable the new String or binary data would be truncated error message. SQL Server 2019 (15.x)SQL Server 2019 (15.x) では、次のシナリオに対してより具体的な新しいエラー メッセージ (2628) が導入されています。introduces a new, more specific error message (2628) for this scenario:

String or binary data would be truncated in table '%.*ls', column '%.*ls'. Truncated value: '%.*ls'.

データベース互換性レベルが 150 の状態で ON に設定すると、切り捨てエラーにより、詳しいコンテキストを提供し、トラブルシューティングのプロセスを簡略化する新しいエラー メッセージ 2628 が発生します。When set to ON under database compatibility level 150, truncation errors raise the new error message 2628 to provide more context and simplify the troubleshooting process.

データベース互換性レベルが 150 の状態で OFF に設定すると、切り捨てエラーにより前のエラー メッセージ 8152 が発生します。When set to OFF under database compatibility level 150, truncation errors raise the previous error message 8152.

データベース互換性レベルが 140 以下の場合、エラー メッセージ 2628 はオプトインのエラー メッセージとして残ります。このエラー メッセージではトレース フラグ 460 を有効にする必要があり、このデータベース スコープ構成に影響がありません。For database compatibility level 140 or lower, error message 2628 remains an opt-in error message that requires trace flag 460 to be enabled, and this database scoped configuration has no effect.

LAST_QUERY_PLAN_STATS = { ON | OFF}LAST_QUERY_PLAN_STATS = { ON | OFF}

適用対象:SQL ServerSQL Server (SQL Server 2019 (15.x)SQL Server 2019 (15.x) 以降) (機能はパブリック プレビュー段階)APPLIES TO: SQL ServerSQL Server (Starting with SQL Server 2019 (15.x)SQL Server 2019 (15.x)) (feature is in public preview)

sys.dm_exec_query_plan_stats の最後の実際の実行プラン (実際の実行プランに相当) のコレクションを有効または無効にすることができます。Allows you to enable or disable collection of the last query plan statistics (equivalent to an actual execution plan) in sys.dm_exec_query_plan_stats.

PAUSED_RESUMABLE_INDEX_ABORT_DURATION_MINUTESPAUSED_RESUMABLE_INDEX_ABORT_DURATION_MINUTES

適用対象:Azure SQL Database のみAPPLIES TO: Azure SQL Database only

PAUSED_RESUMABLE_INDEX_ABORT_DURATION_MINUTES オプションでは、エンジンによって自動的に中止される前に、再開可能なインデックスが一時停止される期間 (分単位) を決定します。The PAUSED_RESUMABLE_INDEX_ABORT_DURATION_MINUTES option determines how long (in minutes) the resumable index is being paused before being automatically aborted by the engine.

  • 既定値は、1 日 (1440 分) に設定されています。The default value is set to 1 day (1440 minutes)
  • 最小期間は 1 分に設定されています。The minimum duration is set to 1 minute
  • 最大期間は 71582 分です。The maximum duration is 71582 minutes
  • 0 に設定すると、一時停止された操作が自動的に中止されることはありませんWhen set to 0, a paused operation will never automatically abort

このオプションの現在の値は、sys.database_scoped_configurations に表示されます。The current value for this option is displayed in sys.database_scoped_configurations.

ISOLATE_SECURITY_POLICY_CARDINALITY = { ON | OFF}ISOLATE_SECURITY_POLICY_CARDINALITY = { ON | OFF}

適用対象:SQL ServerSQL Server (開始値 SQL Server 2019 (15.x)SQL Server 2019 (15.x)) および Azure SQL データベースAzure SQL DatabaseAPPLIES TO: SQL ServerSQL Server (Starting with SQL Server 2019 (15.x)SQL Server 2019 (15.x)) and Azure SQL データベースAzure SQL Database

行レベル セキュリティ (RLS) 述語がユーザー クエリ全体の実行プランのカーディナリティに影響するかどうかを制御できます。Allows you to control whether a Row-Level Security (RLS) predicate affects the cardinality of the execution plan of the overall user query. ISOLATE_SECURITY_POLICY_CARDINALITY が ON の場合、RLS 述語は、実行プランのカーディナリティに影響しません。When ISOLATE_SECURITY_POLICY_CARDINALITY is ON, an RLS predicate does not affect the cardinality of an execution plan. たとえば、100 万行を含むテーブルがあり、RLS 述語で、クエリを発行する特定のユーザーに対して結果を 10 行に制限する場合について考えてみましょう。For example, consider a table containing 1 million rows and an RLS predicate that restricts the result to 10 rows for a specific user issuing the query. このデータベース スコープ構成が OFF に設定されている場合、この述語の推定カーディナリティは 10 になります。With this database scoped configuration set to OFF, the cardinality estimate of this predicate will be 10. このデータベース スコープ構成が ON の場合、クエリ最適化により 100 万行と推定されます。When this database scoped configuration is ON, query optimization will estimate 1 million rows. ほとんどのワークロードでは、既定値を使用することをお勧めします。It is recommended to use the default value for most workloads.

DW_COMPATIBILITY_LEVEL = {AUTO | 10 | 20 }DW_COMPATIBILITY_LEVEL = {AUTO | 10 | 20 }

適用対象:Azure Synapse Analytics (旧称 SQL DW) のみAPPLIES TO: Azure Synapse Analytics only (Formerly SQL DW)

指定したバージョンのデータベース エンジンと互換性があるように、Transact-SQL およびクエリ処理の動作を設定します。Sets Transact-SQL and query processing behaviors to be compatible with the specified version of the database engine. 設定が完了すると、そのデータベースでクエリが実行されるときに、互換性のある機能だけが実行されます。Once it's set, when a query is executed on that database, only the compatible features will be exercised. データベースの互換性レベルは、最初の作成時に既定で AUTO に設定されます。A database's compatibility level is set to AUTO by default when it's first created. 互換性レベルは、データベースの一時停止/再開、バックアップ/復元操作の後でも保持されます。The compatibility level is preserved even after database pause/resume, backup/restore operations.

互換性レベルCompatibility Level 説明Comments
AUTOAUTO 既定値。Default. この値は、Synapse Analytics エンジンによって自動的に更新されます。Its value is automatically updated by the Synapse Analytics engine. 現在の値は 20 です。The current value is 20.
"10"10 互換性レベルのサポートを導入する前に、Transact-SQL とクエリ処理の動作を実行します。Exercises the Transact-SQL and query processing behaviors before the introduction of compatibility level support.
2020 1 番目の互換性レベル。ゲート Transact-SQL とクエリ処理の動作が含まれます。1st compatibility level that includes gated Transact-SQL and query processing behaviors.

ASYNC_STATS_UPDATE_WAIT_AT_LOW_PRIORITY = { ON | OFF}ASYNC_STATS_UPDATE_WAIT_AT_LOW_PRIORITY = { ON | OFF}

適用対象:Azure SQL Database のみ (機能はパブリック プレビュー段階です)APPLIES TO: Azure SQL Database only (feature is in public preview)

統計の非同期更新が有効になっている場合、この構成を有効にすると、高同時実行のシナリオで他のセッションのブロックを防ぐために、統計を更新するバックグラウンド要求が優先度の低いキューの Sch-M ロックを待機するようになります。If asynchronous statistics update is enabled, enabling this configuration will cause the background request updating statistics to wait for a Sch-M lock on a low priority queue, to avoid blocking other sessions in high concurrency scenarios. 詳細については、「AUTO_UPDATE_STATISTICS_ASYNC」を参照してください。For more information, see AUTO_UPDATE_STATISTICS_ASYNC.

PermissionsPermissions

データベースに対する ALTER ANY DATABASE SCOPED CONFIGURATION が必要です。Requires ALTER ANY DATABASE SCOPED CONFIGURATION on the database. この権限は、データベース上で CONTROL 権限を持つユーザーが付与できます。This permission can be granted by a user with CONTROL permission on a database.

全般的な解説General Remarks

セカンダリ データベースにはプライマリとは異なるスコープ構成を設定できますが、すべてのセカンダリ データベースで同じ構成が使用されます。While you can configure secondary databases to have different scoped configuration settings from their primary, all secondary databases use the same configuration. 個々のセカンダリに異なる設定を構成することはできません。Different settings cannot be configured for individual secondaries.

このステートメントを実行すると、現在のデータベースのプロシージャ キャッシュが消去されます。つまり、すべてのクエリを再コンパイルする必要があります。Executing this statement clears the procedure cache in the current database, which means that all queries have to recompile.

3 部構成の名前のクエリの場合、現在のデータベース コンテキストでコンパイルされる SQL モジュール (プロシージャ、関数、トリガーなど) ではなく、クエリに対する別のデータベース接続の設定が適用されます。そのため、そのような設定が置かれているデータベースのオプションが使用されます。For 3-part name queries, the settings for the current database connection for the query are honored, other than for SQL modules (such as procedures, functions, and triggers) that are compiled in another database context and therefore use the options of the database in which they reside. 同様に、統計を非同期的に更新する場合は、統計が存在するデータベースの ASYNC_STATS_UPDATE_WAIT_AT_LOW_PRIORITY の設定が使用されます。Similarly, when updating statistics asynchronously, the setting of ASYNC_STATS_UPDATE_WAIT_AT_LOW_PRIORITY for the database where statistics reside is honored.

ALTER_DATABASE_SCOPED_CONFIGURATION イベントは、DDL トリガーの始動に使用できる DDL イベントとして追加されます。ALTER_DATABASE_EVENTS トリガー グループの子です。The ALTER_DATABASE_SCOPED_CONFIGURATION event is added as a DDL event that can be used to fire a DDL trigger, and is a child of the ALTER_DATABASE_EVENTS trigger group.

データベース スコープ構成設定がデータベースに継承されるので、特定のデータベースが復元またはアタッチされたときに、既存の構成設定が残ります。Database scoped configuration settings will be carried over with the database, which means that when a given database is restored or attached, the existing configuration settings remain.

SQL Server 2019 (15.x)SQL Server 2019 (15.x) 以降。Azure SQL データベースAzure SQL Database では、一部のオプション名が変更されています。Starting with SQL Server 2019 (15.x)SQL Server 2019 (15.x) and in Azure SQL データベースAzure SQL Database, some option names have changed:

  • DISABLE_INTERLEAVED_EXECUTION_TVFINTERLEAVED_EXECUTION_TVF に変更しましたDISABLE_INTERLEAVED_EXECUTION_TVF changed to INTERLEAVED_EXECUTION_TVF
  • DISABLE_BATCH_MODE_MEMORY_GRANT_FEEDBACKBATCH_MODE_MEMORY_GRANT_FEEDBACK に変更しましたDISABLE_BATCH_MODE_MEMORY_GRANT_FEEDBACK changed to BATCH_MODE_MEMORY_GRANT_FEEDBACK
  • DISABLE_BATCH_MODE_ADAPTIVE_JOINSBATCH_MODE_ADAPTIVE_JOINS に変更しましたDISABLE_BATCH_MODE_ADAPTIVE_JOINS changed to BATCH_MODE_ADAPTIVE_JOINS

制限事項と制約事項Limitations and Restrictions

MAXDOPMAXDOP

詳細設定はグローバル設定をオーバーライドします。その Resource Governor が他のすべての MAXDOP 設定の上限となります。The granular settings can override the global ones and that resource governor can cap all other MAXDOP settings. MAXDOP 設定のロジックは次のようになります。The logic for MAXDOP setting is the following:

  • クエリ ヒントは sp_configure とデータベース スコープ構成の両方をオーバーライドします。Query hint overrides both the sp_configure and the database scoped configuration. ワークロード グループにリソース グループ MAXDOP が設定されている場合:If the resource group MAXDOP is set for the workload group:

    • クエリ ヒントが 0 に設定されている場合、Resource Governor 設定でオーバーライドされます。If the query hint is set to zero (0), it is overridden by the resource governor setting.

    • クエリ ヒントが 0 ではない場合、Resource Governor 設定が上限となります。If the query hint is not zero (0), it is capped by the resource governor setting.

  • データベース スコープ構成 (0 ではない限り) は、クエリ ヒントがある場合を除き、sp_configure 設定をオーバーライドし、Resource Governor 設定が上限となります。The database scoped configuration (unless it's zero) overrides the sp_configure setting unless there is a query hint and is capped by the resource governor setting.

  • sp_configure 設定は、Resource Governor 設定でオーバーライドされます。The sp_configure setting is overridden by the resource governor setting.

QUERY_OPTIMIZER_HOTFIXESQUERY_OPTIMIZER_HOTFIXES

QUERYTRACEON ヒントを使用して SQL Server 7.0 から SQL Server 2012 (11.x)SQL Server 2012 (11.x) バージョンの既定のクエリ オプティマイザーまたはクエリ オプティマイザー修正プログラムを有効にするとき、クエリ ヒントとデータベース スコープ構成設定の OR 条件になります。つまり、いずれかが有効になっている場合、データベース スコープ構成が適用されます。When QUERYTRACEON hint is used to enable the default query optimizer of SQL Server 7.0 through SQL Server 2012 (11.x)SQL Server 2012 (11.x) versions or query optimizer hotfixes, it would be an OR condition between the query hint and the database scoped configuration setting, meaning if either is enabled, the database scoped configurations apply.

Geo DRGeo DR

読み取り可能なセカンダリ データベース (Always On 可用性グループや Azure SQL データベースAzure SQL Database の geo レプリケートされたデータベース) では、データベースの状態を確認することでセカンダリ値が使用されます。Readable secondary databases (Always On Availability Groups and Azure SQL データベースAzure SQL Database geo-replicated databases), use the secondary value by checking the state of the database. フェールオーバーで再コンパイルが行われず、技術的に、セカンダリ設定を使用しているクエリが新しいプライマリに与えられる場合でも、プライマリとセカンダリの間の設定はワークロードが異なるときにのみ変わるというのがその考えです。そのため、キャッシュされたクエリでは最適設定が使用されるが、新しいクエリはそれに適した新しい設定を選択します。Even though recompile does not occur on failover and technically the new primary has queries that are using the secondary settings, the idea is that the setting between primary and secondary only vary when the workload is different and therefore the cached queries are using the optimal settings, whereas new queries pick the new settings that are appropriate for them.

DacFxDacFx

ALTER DATABASE SCOPED CONFIGURATIONAzure SQL データベースAzure SQL DatabaseSQL ServerSQL Server (SQL Server 2016 (13.x)SQL Server 2016 (13.x) 以降) の新しい機能であり、データベース スキーマに影響を与えます。スキーマのエクスポートは (データがあってもなくても)、SQL Server 2012 (11.x)SQL Server 2012 (11.x)SQL Server 2014 (12.x)SQL Server 2014 (12.x) など、以前のバージョンの SQL ServerSQL Server にはインポートできません。Since ALTER DATABASE SCOPED CONFIGURATION is a new feature in Azure SQL データベースAzure SQL Database and SQL ServerSQL Server (starting with SQL Server 2016 (13.x)SQL Server 2016 (13.x)) that affects the database schema, exports of the schema (with or without data) are not able to be imported into an older version of SQL ServerSQL Server, such as SQL Server 2012 (11.x)SQL Server 2012 (11.x) or SQL Server 2014 (12.x)SQL Server 2014 (12.x). たとえば、SQL DatabaseSQL Database または SQL Server 2016 (13.x)SQL Server 2016 (13.x) データベースから DACPAC または BACPAC にエクスポートしたものは、下位レベルのサーバーにインポートできません。For example, an export to a DACPAC or a BACPAC from an SQL DatabaseSQL Database or SQL Server 2016 (13.x)SQL Server 2016 (13.x) database that used this new feature would not be able to be imported into a down-level server.

ELEVATE_ONLINEELEVATE_ONLINE

このオプションは、WITH (ONLINE = <syntax>) 対応の DDL ステートメントにのみ適用されます。This option only applies to DDL statements that support the WITH (ONLINE = <syntax>). XML インデックスは影響を受けません。XML indexes are not affected.

ELEVATE_RESUMABLEELEVATE_RESUMABLE

このオプションは、WITH (RESUMABLE = <syntax>) 対応の DDL ステートメントにのみ適用されます。This option only applies to DDL statements that support the WITH (RESUMABLE = <syntax>). XML インデックスは影響を受けません。XML indexes are not affected.

MetadataMetadata

sys.database_scoped_configurations (Transact-SQL) システム ビューには、データベース内のスコープ構成に関する情報が表示されます。The sys.database_scoped_configurations (Transact-SQL) system view provides information about scoped configurations within a database. データベース スコープ構成オプションはサーバー全体の初期設定にオーバーライドするため、sys.database_scoped_configurations にのみ表示されます。Database-scoped configuration options only show up in sys.database_scoped_configurations as they are overrides to server-wide default settings. sys.configurations (Transact-SQL) システム ビューは、サーバー全体の設定にのみ表示されます。The sys.configurations (Transact-SQL) system view only shows server-wide settings.

Examples

以下は ALTER DATABASE SCOPED CONFIGURATION の使用例ですThese examples demonstrate the use of ALTER DATABASE SCOPED CONFIGURATION

A.A. アクセス許可の付与Grant Permission

この例では、ALTER DATABASE SCOPED CONFIGURATION の実行に必要な権限をユーザー Joe に与えています。This example grant permission required to execute ALTER DATABASE SCOPED CONFIGURATION to user Joe.

GRANT ALTER ANY DATABASE SCOPED CONFIGURATION to [Joe] ;

B.B. MAXDOP の設定Set MAXDOP

この例では、geo レプリケーション シナリオでプライマリ データベースに MAXDOP = 1 を、セカンダリ データベースに MAXDOP = 4 を設定します。This example sets MAXDOP = 1 for a primary database and MAXDOP = 4 for a secondary database in a geo-replication scenario.

ALTER DATABASE SCOPED CONFIGURATION SET MAXDOP = 1 ;
ALTER DATABASE SCOPED CONFIGURATION FOR SECONDARY SET MAXDOP = 4 ;

この例では、geo レプリケーション シナリオで、セカンダリ データベースの MAXDOP をそのプライマリ データベースと同じ値に設定します。This example sets MAXDOP for a secondary database to be the same as it is set for its primary database in a geo-replication scenario.

ALTER DATABASE SCOPED CONFIGURATION FOR SECONDARY SET MAXDOP = PRIMARY ;

C.C. LEGACY_CARDINALITY_ESTIMATION の設定Set LEGACY_CARDINALITY_ESTIMATION

この例では、geo レプリケーション シナリオで、セカンダリ データベースの LEGACY_CARDINALITY_ESTIMATION を ON に設定します。This example sets LEGACY_CARDINALITY_ESTIMATION to ON for a secondary database in a geo-replication scenario.

ALTER DATABASE SCOPED CONFIGURATION FOR SECONDARY SET LEGACY_CARDINALITY_ESTIMATION = ON ;

この例では、geo レプリケーション シナリオで、セカンダリ データベースの LEGACY_CARDINALITY_ESTIMATION をそのプライマリ データベースと同じ値に設定します。This example sets LEGACY_CARDINALITY_ESTIMATION for a secondary database as it is for its primary database in a geo-replication scenario.

ALTER DATABASE SCOPED CONFIGURATION FOR SECONDARY SET LEGACY_CARDINALITY_ESTIMATION = PRIMARY ;

D.D. PARAMETER_SNIFFING の設定Set PARAMETER_SNIFFING

この例では、geo レプリケーション シナリオで、プライマリ データベースの PARAMETER_SNIFFING を OFF に設定します。This example sets PARAMETER_SNIFFING to OFF for a primary database in a geo-replication scenario.

ALTER DATABASE SCOPED CONFIGURATION SET PARAMETER_SNIFFING = OFF ;

この例では、geo レプリケーション シナリオで、セカンダリ データベースの PARAMETER_SNIFFING を OFF に設定します。This example sets PARAMETER_SNIFFING to OFF for a secondary database in a geo-replication scenario.

ALTER DATABASE SCOPED CONFIGURATION FOR SECONDARY SET PARAMETER_SNIFFING = OFF ;

この例では、geo レプリケーション シナリオで、セカンダリ データベースの PARAMETER_SNIFFING をプライマリ データベースと同じ値に設定します。This example sets PARAMETER_SNIFFING for secondary database as it is on primary database in a geo-replication scenario.

ALTER DATABASE SCOPED CONFIGURATION FOR SECONDARY SET PARAMETER_SNIFFING = PRIMARY ;

E.E. QUERY_OPTIMIZER_HOTFIXES の設定Set QUERY_OPTIMIZER_HOTFIXES

geo レプリケーション シナリオで、プライマリ データベースの QUERY_OPTIMIZER_HOTFIXES を ON に設定します。Set QUERY_OPTIMIZER_HOTFIXES to ON for a primary database in a geo-replication scenario.

ALTER DATABASE SCOPED CONFIGURATION SET QUERY_OPTIMIZER_HOTFIXES = ON ;

F.F. プロシージャ キャッシュの消去Clear Procedure Cache

この例では、プロシージャ キャッシュを消去します (プライマリ データベースのみ可能)。This example clears the procedure cache (possible only for a primary database).

ALTER DATABASE SCOPED CONFIGURATION CLEAR PROCEDURE_CACHE;

G.G. IDENTITY_CACHE の設定Set IDENTITY_CACHE

適用対象:SQL ServerSQL Server (SQL Server 2017 (14.x)SQL Server 2017 (14.x) 以降) と Azure SQL データベースAzure SQL Database (機能はパブリック プレビュー段階)APPLIES TO: SQL ServerSQL Server (Starting with SQL Server 2017 (14.x)SQL Server 2017 (14.x)) and Azure SQL データベースAzure SQL Database (feature is in public preview)

この例では、ID キャッシュを無効にします。This example disables the identity cache.

ALTER DATABASE SCOPED CONFIGURATION SET IDENTITY_CACHE = OFF ;

H.H. OPTIMIZE_FOR_AD_HOC_WORKLOADS の設定Set OPTIMIZE_FOR_AD_HOC_WORKLOADS

適用対象: Azure SQL データベースAzure SQL DatabaseAPPLIES TO: Azure SQL データベースAzure SQL Database

この例では、バッチが初めてコンパイルされるとき、コンパイルしたプラン スタブのキャッシュ保存を有効にします。This example enables a compiled plan stub to be stored in cache when a batch is compiled for the first time.

ALTER DATABASE SCOPED CONFIGURATION SET OPTIMIZE_FOR_AD_HOC_WORKLOADS = ON;

I.I. ELEVATE_ONLINE を設定するSet ELEVATE_ONLINE

適用対象: Azure SQL データベースAzure SQL Database (機能はパブリック プレビュー段階)APPLIES TO: Azure SQL データベースAzure SQL Database (feature is in public preview)

この例では、ELEVATE_ONLINE が FAIL_UNSUPPORTED に設定されます。This example sets ELEVATE_ONLINE to FAIL_UNSUPPORTED.

ALTER DATABASE SCOPED CONFIGURATION SET ELEVATE_ONLINE = FAIL_UNSUPPORTED ;

J.J. ELEVATE_RESUMABLE を設定するSet ELEVATE_RESUMABLE

適用対象: Azure SQL データベースAzure SQL DatabaseSQL Server 2019 (15.x)SQL Server 2019 (15.x) (機能はパブリック プレビュー段階)APPLIES TO: Azure SQL データベースAzure SQL Database and SQL Server 2019 (15.x)SQL Server 2019 (15.x) (feature is in public preview)

この例では、ELEVATE_RESUMABLE が WHEN_SUPPORTED に設定されます。This example sets ELEVATE_RESUMABLE to WHEN_SUPPORTED.

ALTER DATABASE SCOPED CONFIGURATION SET ELEVATE_RESUMABLE = WHEN_SUPPORTED ;

K.K. プラン キャッシュからクエリ プランを削除するClear a query plan from the plan cache

適用対象:SQL ServerSQL Server (開始値 SQL Server 2017 (14.x)SQL Server 2017 (14.x)) および Azure SQL データベースAzure SQL DatabaseAPPLIES TO: SQL ServerSQL Server (Starting with SQL Server 2017 (14.x)SQL Server 2017 (14.x)) and Azure SQL データベースAzure SQL Database

この例では、プロシージャ キャッシュから特定のプランを削除します。This example clears a specific plan from the procedure cache

ALTER DATABASE SCOPED CONFIGURATION CLEAR PROCEDURE_CACHE 0x06000500F443610F003B7CD12C02000001000000000000000000000000000000000000000000000000000000;

L.L. 一時停止される期間を設定するSet paused duration

適用対象:Azure SQL Database のみAPPLIES TO: Azure SQL Database only

この例では、再開可能なインデックスの一時停止される期間を 60 分に設定します。This example sets the resumable index paused duration to 60 minutes.

ALTER DATABASE SCOPED CONFIGURATION
SET PAUSED_RESUMABLE_INDEX_ABORT_DURATION_MINUTES = 60

その他のリソースAdditional Resources

MAXDOP リソースMAXDOP Resources

LEGACY_CARDINALITY_ESTIMATION リソースLEGACY_CARDINALITY_ESTIMATION Resources

PARAMETER_SNIFFING リソースPARAMETER_SNIFFING Resources

QUERY_OPTIMIZER_HOTFIXES リソースQUERY_OPTIMIZER_HOTFIXES Resources

ELEVATE_ONLINE リソースELEVATE_ONLINE Resources

オンライン インデックス操作のガイドラインGuidelines for Online Index Operations

ELEVATE_RESUMABLE リソースELEVATE_RESUMABLE Resources

オンライン インデックス操作のガイドラインGuidelines for Online Index Operations

詳細情報More information

sys.database_scoped_configurations sys.database_scoped_configurations
SQL Server の "並列処理の最大限度" 構成オプションの推奨事項とガイドライン Recommendations and guidelines for the "max degree of parallelism" configuration option in SQL Server
sys.configurations sys.configurations
データベースとファイルのカタログ ビュー Databases and Files Catalog Views
サーバー構成オプション Server Configuration Options
オンライン インデックス操作の動作原理 How Online Index Operations Work
オンラインでのインデックス操作の実行 Perform Index Operations Online
ALTER INDEX (Transact-SQL) ALTER INDEX (Transact-SQL)
CREATE INDEX (Transact-SQL)CREATE INDEX (Transact-SQL)