適用対象: Sql Server 2016 (13.x) 以降のバージョン
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
SQL データベース
このコマンドを使用して、個々のデータベース レベルで複数の データベース 構成設定を有効にします。
Important
SQL Database エンジンの異なるバージョンとプラットフォームでは、さまざまな DATABASE SCOPED CONFIGURATION オプションがサポートされています。 この記事では、すべてのオプションDATABASE SCOPED CONFIGURATIONについて説明します。 該当するバージョンが記載されています。 使っているサービスバージョンで利用可能な構文を使うことを確認してください。
次の設定は、[引数] セクションの各設定の [適用先] 行で示されているように、Azure SQL Database、Microsoft Fabric の SQL データベース、Azure SQL Managed Instance、および SQL Server でサポートされています。
- プロシージャ キャッシュをクリアします。
- MAXDOP パラメーターを、その特定のワークロードに最適な内容に基づいてプライマリ データベースの推奨値 (1、2、...) に設定し、レポート クエリで使用されるセカンダリ レプリカ データベースに別の値を設定します。 MAXDOP の選択に関するガイダンスについては、「サーバーの構成: 並列処理の最大限度」を参照してください。
- データベースに依存しないクエリ オプティマイザーのカーディナリティ推定モデルを互換性レベルに設定します。
- データベース レベルでパラメーター スニッフィングを有効または無効にします。
- データベース レベルでのクエリ最適化の修正プログラムを有効または無効にします。
- データベース レベルで ID キャッシュを有効または無効にします。
- バッチが初めてコンパイルされるとき、コンパイルしたプラン スタブのキャッシュ保存を有効または無効にします。
- ネイティブ コンパイル Transact-SQL モジュールの実行統計コレクションを有効または無効にします。
-
ONLINE =構文に対応している DDL ステートメントの既定のオプションでオンラインの有効/無効を変更します。 -
RESUMABLE =構文に対応している DDL ステートメントの既定のオプションで再開可能の有効/無効を変更します。 - SQL データベースの機能でインテリジェント なクエリ処理を有効または無効にします。
- 高速プラン強制を有効または無効にします。
- グローバル一時テーブルの自動ドロップ機能を有効または無効にします。
- 軽量クエリ プロファイリング インフラストラクチャを有効または無効にします。
- 新しい
String or binary data would be truncatedのエラー メッセージを有効または無効にします。 - sys.dm_exec_query_plan_stats の最後の実際の実行プランのコレクションを有効または無効にします。
- 一時停止された再開可能なインデックス操作が、データベースエンジンによって自動的に中止されるまでの時間を指定します。
- 統計の非同期更新で低優先度のロックの待機を有効または無効にします。
- Azure Blob Storage への台帳ダイジェストのアップロードを有効または無効にします。
- デフォルトの 全文インデックス バージョン(
1または2)を設定してください。 - Azure Synapse Analytics で、ユーザー データベースの互換性レベルを設定します。
Syntax
SQL Server、Azure SQL Database、Microsoft Fabric の SQL データベース、および Azure SQL Managed Instance の構文:
ALTER DATABASE SCOPED CONFIGURATION
{
{ [ FOR SECONDARY ] SET <set_options> }
}
| CLEAR PROCEDURE_CACHE [plan_handle]
| SET < set_options >
[;]
< set_options > ::=
{
ACCELERATED_PLAN_FORCING = { ON | OFF }
| ALLOW_STALE_VECTOR_INDEX = { ON | OFF }
| ASYNC_STATS_UPDATE_WAIT_AT_LOW_PRIORITY = { ON | OFF }
| BATCH_MODE_ADAPTIVE_JOINS = { ON | OFF }
| BATCH_MODE_MEMORY_GRANT_FEEDBACK = { ON | OFF }
| BATCH_MODE_ON_ROWSTORE = { ON | OFF }
| CE_FEEDBACK = { ON | OFF }
| DEFERRED_COMPILATION_TV = { ON | OFF }
| DOP_FEEDBACK = { ON | OFF }
| ELEVATE_ONLINE = { OFF | WHEN_SUPPORTED | FAIL_UNSUPPORTED }
| ELEVATE_RESUMABLE = { OFF | WHEN_SUPPORTED | FAIL_UNSUPPORTED }
| EXEC_QUERY_STATS_FOR_SCALAR_FUNCTIONS = { ON | OFF }
| FORCE_SHOWPLAN_RUNTIME_PARAMETER_COLLECTION = { ON | OFF }
| FULLTEXT_INDEX_VERSION = <version>
| IDENTITY_CACHE = { ON | OFF }
| INTERLEAVED_EXECUTION_TVF = { ON | OFF }
| ISOLATE_SECURITY_POLICY_CARDINALITY = { ON | OFF }
| GLOBAL_TEMPORARY_TABLE_AUTO_DROP = { ON | OFF }
| LAST_QUERY_PLAN_STATS = { ON | OFF }
| LEDGER_DIGEST_STORAGE_ENDPOINT = { <endpoint URL string> | OFF }
| LEGACY_CARDINALITY_ESTIMATION = { ON | OFF | PRIMARY }
| LIGHTWEIGHT_QUERY_PROFILING = { ON | OFF }
| MAXDOP = { <value> | PRIMARY }
| MEMORY_GRANT_FEEDBACK_PERCENTILE_GRANT = { ON | OFF }
| MEMORY_GRANT_FEEDBACK_PERSISTENCE = { ON | OFF }
| OPTIMIZE_FOR_AD_HOC_WORKLOADS = { ON | OFF }
| OPTIMIZED_PLAN_FORCING = { ON | OFF }
| OPTIMIZED_SP_EXECUTESQL = { ON | OFF }
| OPTIONAL_PARAMETER_OPTIMIZATION = { ON | OFF }
| PARAMETER_SENSITIVE_PLAN_OPTIMIZATION = { ON | OFF }
| PARAMETER_SNIFFING = { ON | OFF | PRIMARY }
| PAUSED_RESUMABLE_INDEX_ABORT_DURATION_MINUTES = <time>
| PREVIEW_FEATURES = { ON | OFF }
| QUERY_OPTIMIZER_HOTFIXES = { ON | OFF | PRIMARY }
| ROW_MODE_MEMORY_GRANT_FEEDBACK = { ON | OFF }
| TSQL_SCALAR_UDF_INLINING = { ON | OFF }
| VERBOSE_TRUNCATION_WARNINGS = { ON | OFF }
| XTP_PROCEDURE_EXECUTION_STATISTICS = { ON | OFF }
| XTP_QUERY_EXECUTION_STATISTICS = { ON | OFF }
}
Azure Synapse Analytics の構文:
ALTER DATABASE SCOPED CONFIGURATION
{
SET <set_options>
}
[;]
< set_options > ::=
{
DW_COMPATIBILITY_LEVEL = { AUTO | 10 | 20 | 30 | 40 | 50 | 9000 }
}
Arguments
セカンダリの場合
セカンダリ データベースの設定を指定します。 すべてのセカンダリ データベースに同じ値が必要です。
CLEAR PROCEDURE_CACHE [ plan_handle ]
データベースのプロシージャ (プラン) キャッシュをクリアします。 このコマンドは、プライマリとセカンダリの両方で実行できます。
プラン キャッシュから 1 つのクエリ プランをクリアするには、クエリ プラン ハンドルを指定します。
適用対象:クエリプランハンドルの指定はSQL Server 2019(15.x)以降のバージョン、Azure SQL Database、Azure SQL Managed Instanceで利用可能です。
SET オプション
ACCELERATED_PLAN_FORCING = { ON |OFF }
に適用: SQL Server 2019 (15.x) 以降のバージョン、Azure SQL Database、および Azure SQL Managed Instance
クエリ ストアのプラン強制、自動チューニング、USE PLAN クエリ ヒントなど、あらゆる形式のプラン強制に適用される、クエリ プラン強制のために最適化されたメカニズムを有効にします。 既定値は ONです。
Note
高速プランの強制を無効にすることはお勧めしません。
ALLOW_STALE_VECTOR_INDEX = { ON |停止}
適用対象: Microsoft Fabric の Azure SQL Database と SQL データベース
現在、Azure SQL DatabaseおよびMicrosoft FabricのSQLデータベースでは、ベクターインデックスによりテーブルは読み取り専用になります。 テーブルを書き込み可能にするには、 ALLOW_STALE_VECTOR_INDEX データベースのスコープ設定を使いましょう。
ALTER DATABASE SCOPED CONFIGURATION
SET ALLOW_STALE_VECTOR_INDEX = ON;
GO
SELECT *
FROM sys.database_scoped_configurations
WHERE [name] = 'ALLOW_STALE_VECTOR_INDEX';
ALLOW_STALE_VECTOR_INDEX = ONすると、テーブルに新しいデータを挿入または更新しても、ベクター インデックスは更新されません。 ベクターインデックスをリフレッシュするには、削除して再作成する必要があります。
Note
ALLOW_STALE_VECTOR_INDEXデータベーススコープ設定オプションは、SQL Server 2025(17.x)では現在利用できません。
ASYNC_STATS_UPDATE_WAIT_AT_LOW_PRIORITY = { ON |OFF }
適用対象: SQL Server 2022 (16.x) 以降のバージョン、Azure SQL Database、および Azure SQL Managed Instance
非同期統計更新を有効にした場合、この構成を有効にすると、バックグラウンド要求更新統計は、優先順位の低いキューで Sch-M ロックされるまで待機します。 この待機により、コンカレンシーの高いシナリオで他のセッションがブロックされるのを回避できます。 詳細については、「AUTO_UPDATE_STATISTICS_ASYNC」を参照してください。 既定値は OFFです。
BATCH_MODE_ADAPTIVE_JOINS = { ON |OFF }
に適用: SQL Server 2019 (15.x) 以降のバージョン、Azure SQL Database、および Azure SQL Managed Instance
データベース互換性レベル 140 以上を維持しながら、データベース スコープでバッチ モードアダプティブ結合を有効または無効にします。 既定値は ONです。 バッチ モードの適応結合は、SQL Server 2017 (14.x) で導入されたインテリジェントなクエリ処理の一部の機能です。
データベース互換性レベル 130 以前のバージョンの場合、このデータベース スコープ構成は無効です。
BATCH_MODE_MEMORY_GRANT_FEEDBACK = { ON |OFF }
に適用: SQL Server 2019 (15.x) 以降のバージョン、Azure SQL Database、および Azure SQL Managed Instance
データベース互換性レベル 140 以上を維持しながら、データベース スコープでバッチ モードメモリ許可フィードバックを有効または無効にします。 既定値は ONです。 バッチ モード メモリ許可フィードバックは、SQL Server 2017 (14.x) で導入されたものであり、インテリジェントなクエリ処理機能スイートの一部です。 詳細については、「メモリ許可フィードバック」を参照してください。
データベース互換性レベル 130 以前のバージョンの場合、このデータベース スコープ構成は無効です。
BATCH_MODE_ON_ROWSTORE = { ON |OFF }
に適用: SQL Server 2019 (15.x) 以降のバージョン、Azure SQL Database、および Azure SQL Managed Instance
データベース互換性レベル 150 以上を維持しながら、データベース スコープの行ストアでバッチ モードを有効または無効にします。 既定値は ONです。 行ストアのバッチ モードは、インテリジェント クエリの処理機能ファミリの一部の機能です。
データベース互換性レベル 140 以前のバージョンの場合、このデータベース スコープ構成は無効です。
CE_FEEDBACK = { ON |OFF }
適用対象: SQL Server 2022 (16.x) 以降のバージョン、Azure SQL Database、および Azure SQL Managed Instance
CE フィードバックは、既定の CE (CE120 以上) を使用する場合に、正しくない CE モデルの想定に起因する回帰の問題に対処します。 CE フィードバックでは、さまざまなモデルの前提条件を選択的に使用できます。 クエリ ストアが有効で、READ_WRITE モードである必要があります。 詳細については、「カーディナリティ推定 (CE) フィードバック」を参照してください。 既定値は、データベース互換性レベル 160 以降で ON されます。
DEFERRED_COMPILATION_TV = { ON |OFF }
に適用: SQL Server 2019 (15.x) 以降のバージョン、Azure SQL Database、および Azure SQL Managed Instance
データベース互換性レベル 150 以上を維持しながら、データベース スコープでテーブル変数遅延コンパイルを有効または無効にします。 既定値は ONです。 テーブル変数遅延コンパイルは、 インテリジェント クエリ処理 機能ファミリの一部である機能です。
データベース互換性レベル 140 以前のバージョンの場合、このデータベース スコープ構成は無効です。
DOP_FEEDBACK = { ON |OFF }
適用対象: SQL Server 2022 (16.x) 以降のバージョン、Azure SQL Database、Microsoft Fabric の SQL データベース、SQL Server 2025 または Always-up-to-date更新ポリシーを使用した Azure SQL Managed Instance
経過時間と待機に基づいて、繰り返されるクエリの並列処理の非効率性が特定されます。 並列処理の使用が非効率的な場合、DOP フィードバックは、構成されている DOP からクエリの次の実行のために DOP を下げ、それが役立つかどうかを確認します。 クエリ ストアが有効で、READ_WRITE モードである必要があります。 詳細については、「 並列処理の次数 (DOP) フィードバック」を参照してください。 既定値は OFFです。
ELEVATE_ONLINE = { OFF |WHEN_SUPPORTED |FAIL_UNSUPPORTED }
に適用: SQL Server 2019 (15.x) 以降のバージョン、Azure SQL Database、および Azure SQL Managed Instance
サポートされている操作からオンラインにエンジンを自動的に昇格させるオプションを選択できます。
このオプションは、WITH (ONLINE = <syntax>) 対応の DDL ステートメントにのみ適用されます。 XML インデックスは影響を受けません。
既定値は OFF です。つまり、ステートメントで指定しない限り、操作はオンラインに昇格されません。
sys.database_scoped_configurations は、ELEVATE_ONLINEの現在の値を反映します。 これらのオプションは、オンラインでサポートされている操作にのみ適用されます。 ONLINE オプションが指定されたステートメントを送信することで、既定の設定をオーバーライドできます。
FAIL_UNSUPPORTED
この値のとき、サポートされているすべての DDL 操作が ONLINE に昇格されます。 オンライン実行をサポートしていない操作は失敗し、エラーがスローされます。
テーブルへの列の追加は、一般的なケースではオンライン操作です。 null 非許容列を 追加場合など、一部のシナリオでは、列をオンラインで追加できません。 このような場合、 FAIL_UNSUPPORTED が設定されている場合、操作は失敗します。
WHEN_SUPPORTED
この値のとき、ONLINE 対応の操作が昇格されます。 オンラインでサポートされていない操作はオフラインで実行されます。
詳細については、「 オンライン インデックス操作のガイドライン」を参照してください。
ELEVATE_RESUMABLE = { OFF |WHEN_SUPPORTED |FAIL_UNSUPPORTED }
に適用: SQL Server 2019 (15.x) 以降のバージョン、Azure SQL Database、および Azure SQL Managed Instance
サポートされている操作から再開可能にエンジンを自動的に昇格させるオプションを選択できます。
このオプションは、WITH (RESUMABLE = <syntax>) 対応の DDL ステートメントにのみ適用されます。 XML インデックスは影響を受けません。
既定値は OFF です。つまり、ステートメントで指定しない限り、操作は再開できません。
sys.database_scoped_configurations は、ELEVATE_RESUMABLEの現在の値を反映します。 これらのオプションは、再開可能実行でサポートされている操作にのみ適用されます。 RESUMABLE オプションが指定されたステートメントを送信することで、既定の設定をオーバーライドできます。
FAIL_UNSUPPORTED
この値により、サポートされているすべての DDL 操作が RESUMABLEに昇格されます。 再開可能な実行をサポートしていない操作は失敗し、エラーがスローされます。
WHEN_SUPPORTED
この値により、 RESUMABLEをサポートする操作が昇格されます。 再開をサポートしていない操作は、実行できません。
詳細については、「 オンライン インデックス操作のガイドライン」を参照してください。
EXEC_QUERY_STATS_FOR_SCALAR_FUNCTIONS = { ON |OFF }
適用対象: SQL Server 2022 (16.x) 以降のバージョン、Azure SQL Database、および Azure SQL Managed Instance
スカラー ユーザー定義関数 (UDF) の実行統計を sys.dm_exec_function_stats システム ビューに表示するかどうかを制御します。 スカラー UDF が多い一部の集中型ワークロードでは、関数の実行統計を収集すると、顕著なパフォーマンス オーバーヘッドが発生する可能性があります。 このオーバーヘッドを回避するには、 EXEC_QUERY_STATS_FOR_SCALAR_FUNCTIONS データベース スコープの構成を OFFに設定します。 既定値は ONです。
FORCE_SHOWPLAN_RUNTIME_PARAMETER_COLLECTION = { ON |OFF }
適用対象: SQL Server 2022 (16.x) 以降のバージョン、Azure SQL Database、および Azure SQL Managed Instance
軽量クエリ実行統計プロファイルまたは sys.dm_exec_query_statistics_xml DMV を使用して実行時間の長いクエリのトラブルシューティングを行うと、 FORCE_SHOWPLAN_RUNTIME_PARAMETER_COLLECTION 、SQL Server によって、 ParameterRuntimeValueを含む Showplan XML フラグメントが生成されます。
Important
運用環境では、 FORCE_SHOWPLAN_RUNTIME_PARAMETER_COLLECTION データベース スコープ構成オプションを継続的に有効にしないでください。 時間制限付きのトラブルシューティングの目的でのみ有効にします。 このデータベース スコープ構成オプションでは、 DMV または軽量クエリ実行統計プロファイル インフラストラクチャが有効かどうかに関係なく、SQL Server によってランタイム パラメーター情報を含む Showplan XML フラグメントが作成されるため、CPU とメモリのオーバーヘッドが大幅に増加します。
FULLTEXT_INDEX_VERSION
適用対象:SQL Server 2025(17.x)以降のバージョン、Azure SQL Database、Azure SQL Managed Instance
インデックスの作成や再構築時に使用できる全文インデックスバージョンを設定します。 この構成は、新しいインデックスに対して CREATE FULLTEXT INDEX ステートメントを発行するか、カタログ内のすべてのインデックスを再構築する ALTER FULLTEXT CATALOG ... REBUILD ステートメントを発行する場合にのみ有効です。
SQL Server 2025(17.x)以降の利用可能なバージョンは以下の通りです:
| バージョン | Comments |
|---|---|
1 |
SQL Server 2022(16.x)以前のバージョンのレガシー全文フィルターおよびワードブレーカーコンポーネントを使用した新規および再構築されたインデックスを、将来の集団やクエリのために指定します。 これらのコンポーネントはSQL Server 2025(17.x)以降のバージョンには含まれていないため、古いインスタンスから手動でコピーする必要があります。 |
2 (既定値) |
SQL Server 2025(17.x)に含まれる全文フィルターおよびワードブレーカーコンポーネントを使用する新規および再構築されたインデックスを、将来の集団やクエリのために指定します。 |
FULLTEXT_INDEX_VERSION構成では、次のシステム ストアド プロシージャ、ビュー、関数でレポートおよび使用するフルテキスト コンポーネントも制御します。
- sp_help_fulltext_system_components
- sys.fulltext_languages
- sys.fulltext_document_types
- sys.dm_fts_parser
IDENTITY_CACHE = { ON |OFF }
適用対象: SQL Server 2017 (14.x) 以降のバージョン、Azure SQL Database、および Azure SQL Managed Instance
データベース レベルで ID キャッシュを有効または無効にします。 既定値は ONです。 ID キャッシュにより、ID 列を持つテーブルの INSERT パフォーマンスが向上します。 サーバーが予期せず再起動したとき、またはセカンダリ サーバーにフェールオーバーしたときに ID 列の値にギャップが生じないようにするには、 IDENTITY_CACHE オプションを無効にします。 このオプションは、既存の トレース フラグ 272 に似ていますが、データベース レベルで設定されます。
このオプションは、プライマリ レプリカに対してのみ設定できます。 詳細については、「ID 列」を参照してください。
INTERLEAVED_EXECUTION_TVF = { ON |OFF }
に適用: SQL Server 2019 (15.x) 以降のバージョン、Azure SQL Database、および Azure SQL Managed Instance
データベース互換性レベル 140 以上を維持しながら、データベースまたはステートメント スコープで複数ステートメントのテーブル値関数のインターリーブ実行を有効または無効にします。 既定値は ONです。 インターリーブ実行は、Azure SQL Database でのアダプティブ クエリ処理の一部である機能です。 詳細については、「 インテリジェントなクエリ処理」を参照してください。
データベース互換性レベル 130 以前のバージョンの場合、このデータベース スコープ構成は無効です。
SQL Server 2017 (14.x) でのみ、 INTERLEAVED_EXECUTION_TVF オプションの名前は DISABLE_INTERLEAVED_EXECUTION_TVF。
ISOLATE_SECURITY_POLICY_CARDINALITY = { ON |OFF}
に適用: SQL Server 2019 (15.x) 以降のバージョン、Azure SQL Database、および Azure SQL Managed Instance
行 レベルのセキュリティ (RLS)述語が、全体のユーザークエリの実行計画の基数性に影響を与えるかどうかを制御できます。 既定値は OFFです。
ISOLATE_SECURITY_POLICY_CARDINALITYがONの場合、RLS述語は実行計画の基数に影響を与えません。 たとえば、100 万行を含むテーブルがあり、RLS 述語で、クエリを発行する特定のユーザーに対して結果を 10 行に制限する場合について考えてみましょう。 このデータベース スコープ構成を OFF に設定すると、この述語のカーディナリティ推定は 10 になります。 このデータベース スコープ構成が ON の場合、クエリの最適化では 100 万行が見積もられます。 ほとんどのワークロードではデフォルト値を使うことが推奨されています。
GLOBAL_TEMPORARY_TABLE_AUTO_DROP = { ON |OFF }
に適用: SQL Server 2019 (15.x) 以降のバージョン、Azure SQL Database、および Azure SQL Managed Instance
グローバル一時テーブルの自動ドロップ機能を設定します。 既定値は ONです。つまり、グローバル一時テーブルは、セッションまたはタスクで使用されていない場合に自動的に削除されます。
OFFに設定すると、DROP TABLE ステートメントを使用してグローバル一時テーブルを明示的に削除するか、サービスの再起動時に自動的に削除されます。
- Azure SQL Database の単一データベースとエラスティック プールで、個々のユーザー データベースでこのオプションを設定します。
- SQL Server と Azure SQL Managed Instance で、
tempdbでこのオプションを設定します。 個々のユーザー データベースの設定は無効です。
LAST_QUERY_PLAN_STATS = { ON |OFF }
に適用: SQL Server 2019 (15.x) 以降のバージョン、Azure SQL Database、および Azure SQL Managed Instance
sys.dm_exec_query_plan_stats の最後の実際の実行プラン (実際の実行プランに相当) のコレクションを有効または無効にすることができます。 既定値は OFFです。
LEDGER_DIGEST_STORAGE_ENDPOINT = { <エンドポイント URL 文字列> |OFF }
対象:SQL Server 2022(16.x)以降のバージョン、Azure SQL Database
Azure Blob Storage への台帳ダイジェストのアップロードを有効または無効にします。 台帳ダイジェストのアップロードを有効にするには、Azure Blob ストレージ アカウントのエンドポイントの台帳を指定します。 台帳ダイジェストのアップロードを無効にするには、オプション値を OFFに設定します。 既定値は OFFです。
LEGACY_CARDINALITY_ESTIMATION = { ON |OFF |PRIMARY }
データベースの互換性レベルに関係なく、クエリ オプティマイザーのカーディナリティ推定モデルを SQL Server 2012 以前のバージョンに設定できます。 既定値は OFFで、データベースの互換性レベルに基づいてクエリ オプティマイザーのカーディナリティ推定モデルを設定します。
LEGACY_CARDINALITY_ESTIMATIONを ON に設定することは、トレース フラグ 9481 を有効にすることと同じです。
- このオプションをクエリ レベルで設定するには、
QUERYTRACEONquery ヒントを追加します。 - このオプションを SQL Server 2016 (13.x) Service Pack 1 以降のバージョンのクエリ レベルで設定するには、トレース フラグを使用する代わりに USE HINTクエリ ヒント を追加します。
PRIMARY
この値は、データベースがプライマリにある間はセカンダリでのみ有効であり、すべてのセカンダリのクエリ オプティマイザーカーディナリティ推定モデル設定がプライマリに設定されている値であることを指定します。 クエリ オプティマイザーのカーディナリティ推定モデルのプライマリの構成が変更されると、セカンダリの値もそれに応じて変化します。 PRIMARY はセカンダリの初期設定です。
詳細については、「 カーディナリティ推定 (SQL Server)」を参照してください。
LIGHTWEIGHT_QUERY_PROFILING = { ON |OFF }
に適用: SQL Server 2019 (15.x) 以降のバージョン、Azure SQL Database、および Azure SQL Managed Instance
軽量クエリ プロファイリング インフラストラクチャを有効または無効にできます。 軽量クエリ プロファイリング インフラストラクチャ (LWP) は、標準のプロファイリング メカニズムよりも効率的にクエリのパフォーマンス データを提供するもので、既定で有効になっています。 既定値は ONです。
MAXDOP = {<value> |PRIMARY }
<価値>
ステートメントで使用される並列処理の最大限度 (MAXDOP) 設定の既定値を指定します。 0 は既定値であり、代わりにサーバー構成が使用されることを示します。 データベーススコープのMAXDOPは、サーバーレベルで設定された max degree of parallelism を(0に設定していない限り) sp_configure上書きします。 別の設定を必要とする特定のクエリを調整する目的で、クエリ ヒントでは引き続き、データベース スコープの MAXDOP をオーバーライドできます。 これらすべての設定は 、ワークロードグループのMAXDOPセットによって制限されています。
MAXDOP オプションを使用して、並列プラン実行で使用するプロセッサの数を制限します。 SQL Server は、クエリ、インデックス データ定義言語 (DDL) の操作、並列挿入、オンライン列変更、並行統計コレクション、静的およびキーセット ドリブン カーソルの作成の場合に並列実行プランを検討します。
並列処理の最大限度 (MAXDOP) の制限はタスクごとに設定されます。 この設定は、要求ごとまたはクエリ制限ごとではありません。 これは、並列クエリ実行中に単一のリクエストが複数のタスクを生成し、ス ケジューラに割り当てられることを意味します。 詳細については、「スレッドとタスクのアーキテクチャ ガイド」を参照してください。
このオプションをインスタンスレベルで設定するには、「 Server configuration: max degree of parallelism」を参照してください。
Azure SQL データベース では、新しいシングル データベースとエラスティック プール データベースのデータベース スコープ構成 MAXDOP が既定で 8 に設定されています。 Azure SQL Database で MAXDOP を最適に構成する方法の詳細と推奨事項については、「Azure SQL Database での MAXDOP の構成」を参照してください。
- このオプションをクエリ レベルで設定するには、
MAXDOPquery ヒントを使用します。 - このオプションをサーバー レベルで設定するには、max degree of parallelism (MAXDOP)サーバー構成オプションを使用します。
- このオプションをワークロード レベルで設定するには、
MAX_DOPResource Governor ワークロード グループ構成オプションを使用します。
PRIMARY
セカンダリに対してのみ設定でき、データベースはプライマリ上にあり、構成がプライマリ用に設定されていることを示します。 プライマリの構成が変更されると、セカンダリの値も適宜変更されます。セカンダリの値を明示的に設定する必要はありません。 PRIMARY はセカンダリの初期設定です。
詳細については、「 並列処理の次数」を参照してください。
MEMORY_GRANT_FEEDBACK_PERCENTILE_GRANT = { ON |OFF }
適用対象: SQL Server 2022 (16.x) 以降のバージョン、および Azure SQL Database
データベースで開始されるすべてのクエリ実行に対して、メモリ許可フィードバックパーセンタイル機能を有効または無効にします。 既定値は ONです。 詳細については、「 パーセンタイルと永続化モードのメモリ許可フィードバック」を参照してください。
データベース互換性レベル 140 以前のバージョンの場合、このデータベース スコープ構成は無効です。
MEMORY_GRANT_FEEDBACK_PERSISTENCE = { ON |OFF }
適用対象: SQL Server 2022 (16.x) 以降のバージョン、Azure SQL Database、および Azure SQL Managed Instance
データベースで開始されるすべてのクエリ実行のメモリ許可フィードバック永続化を有効または無効にします。 既定値は ONです。 詳細については、「 パーセンタイルと永続化モードのメモリ許可フィードバック」を参照してください。
データベース互換性レベル 140 以前のバージョンの場合、このデータベース スコープ構成は無効です。
OPTIMIZE_FOR_AD_HOC_WORKLOADS = { ON |OFF }
に適用: SQL Server 2019 (15.x) 以降のバージョン、Azure SQL Database、および Azure SQL Managed Instance
バッチが初めてコンパイルされるときに、コンパイル済みのプラン スタブをキャッシュに格納することを有効または無効にします。 既定値は OFFです。 データベースに対してデータベース スコープ構成 OPTIMIZE_FOR_AD_HOC_WORKLOADS を有効にすると、バッチが初めてコンパイルされるときに、コンパイル済みのプラン スタブがキャッシュに格納されます。 プラン スタブの使用メモリは、完全なコンパイル済みプランよりも少なくなります。 バッチが再度コンパイルまたは実行された場合、データベース エンジンはコンパイル済みのプラン スタブを削除し、完全なコンパイル済みプランに置き換えます。
OPTIMIZED_PLAN_FORCING = { ON |OFF }
対象:SQL Server 2022(16.x)以降のバージョン、Azure SQL Database
プラン強制を最適化すると、強制クエリを繰り返すためのコンパイル オーバーヘッドが減ります。 既定値は ONです。 クエリ実行プランが生成されると、最適化再生スクリプトとして再利用するために特定のコンパイル手順が格納されます。 最適化再生スクリプトは、圧縮されたプラン表示 XML の一部としてクエリ ストアの非表示 OptimizationReplay 属性に保管されます。 詳細については、「 クエリ ストアでのプランの強制の最適化」を参照してください。
OPTIMIZED_SP_EXECUTESQL = { ON |OFF }
対象:SQL Server 2025(17.x)、Azure SQL Database、Microsoft FabricのSQL Database
バッチのコンパイル時に sp_executesql のコンパイルシリアル化動作を有効または無効にします。 既定値は OFFです。
sp_executesqlを用いるバッチでコンパイルプロセスをシリアライズできるようにすることで、コンパイルストームの影響を軽減できます。 コンパイル ストームは、多数のクエリが同時にコンパイルされ、パフォーマンスの問題やリソースの競合が発生する状況です。
OPTIMIZED_SP_EXECUTESQLがONされると、sp_executesqlの最初の実行によってコンパイルされ、コンパイルされたプランがプラン キャッシュに挿入されます。 他のセッションでは、コンパイル ロックの待機が中止され、プランが使用可能になったら再利用されます。 この動作により、 sp_executesql は、コンパイルの観点からストアド プロシージャやトリガーなどのオブジェクトのように動作します。
OPTIONAL_PARAMETER_OPTIMIZATION = { ON |OFF }
対象:SQL Server 2025(17.x)、Azure SQL Database、Microsoft FabricのSQL Database
オプションパラメータプラン最適化(OPPO)機能を有効または無効にします。 既定値は、データベース互換性レベル 170 以降 ON です。
有効にすると、アダプティブ プランの最適化により、省略可能なパラメーターを含むクエリに対して複数の実行プランが生成されます。 これらのプランでは、通常、次の形式で述語が使用されます。
@p IS NULL AND @p1 IS NOT NULL@p IS NULL OR @p1 IS NOT NULL
この機能では、パラメーターが NULLかどうかに基づいて実行時により最適なプランを選択できます。これにより、このようなクエリ パターンのパフォーマンスが既定で最適でないクエリのパフォーマンスが向上します。
PARAMETER_SENSITIVE_PLAN_OPTIMIZATION = { ON |OFF }
適用対象: SQL Server 2022 (16.x) 以降のバージョン、Azure SQL Database、および Azure SQL Managed Instance
パラメーターの秘密度プラン (PSP) の最適化は、パラメーター化されたクエリに対して 1 つのキャッシュされたプランが、考えられるすべての受信パラメーター値に最適ではないシナリオに対処します。 この状況は、一様でないデータ分散で発生します。 既定値は、データベース互換性レベル 160 以降 ON です。 詳細については、「パラメーターに依存するプランの最適化」を参照してください。
PARAMETER_SNIFFING = { ON |OFF |PRIMARY }
パラメーター スニッフィングを有効にするか無効にします。 既定値は ONです。
PARAMETER_SNIFFINGを OFF に設定することは、トレース フラグ 4136 を有効にすることと同じです。
- クエリ レベルでこれを実現するには、
OPTIMIZE FOR UNKNOWNクエリ ヒントのを参照してください。 - SQL Server 2016 (13.x) SP1 以降のバージョンでは、クエリ レベルでこれを実現するために、
USE HINTクエリ ヒント も使用できます。
PRIMARY
この値は、データベースがプライマリにある間はセカンダリでのみ有効です。 すべてのセカンダリでこの設定の値がプライマリに設定されている値であることを指定します。 パラメーター スニッフィングを使用するためのプライマリの構成 変更された場合、セカンダリの値はそれに応じて変更され、セカンダリ値を明示的に設定する必要はありません。 PRIMARY はセカンダリの既定の設定です。
PARAMETER_SNIFFINGの詳細については、「パラメーターのにおいをかぐ」を参照してください。
PAUSED_RESUMABLE_INDEX_ABORT_DURATION_MINUTES
適用対象: SQL Server 2022 (16.x) 以降のバージョン、Azure SQL Database、および Azure SQL Managed Instance
PAUSED_RESUMABLE_INDEX_ABORT_DURATION_MINUTES オプションは、再開可能なインデックスがデータベース エンジンによって自動的に中止されるまでの時間 (分) を決定します。
- 既定値は 1 日 (1,440 分) に設定されます。
- 最小期間は 1 分に設定されます。
- 最大期間は 71,582 分です。
-
0に設定すると、一時停止した操作が自動的に中止されることはありません。
このオプションの現在の値は、sys.database_scoped_configurations に表示されます。
PREVIEW_FEATURES = { ON |OFF }
適用対象: SQL Server 2025 (17.x)、Azure SQL Database、Microsoft Fabric の SQL データベース
注意事項
プレビュー機能は、運用環境には推奨されません。
プレビュー機能の使用を許可します。 詳細については、 SQL Server のプレビュー機能を確認してください。
既定値は OFFです。
このオプションの使用方法の例については、「 SQL Server でのプレビュー機能の使用」を参照してください。
QUERY_OPTIMIZER_HOTFIXES = { ON |OFF |PRIMARY }
対象:SQL Server 2016(13.x)以降のバージョン、Azure SQL Database、Azure SQL Managed Instance
データベースの互換性レベルに関係なく、クエリ最適化修正プログラムを有効または無効にします。 既定値は OFF です。これは、特定のバージョン (RTM 後) で使用可能な最高の互換性レベルの後にリリースされたクエリ最適化修正プログラムを無効にします。
QUERY_OPTIMIZER_HOTFIXESを ON に設定することは、トレース フラグ 4199 を有効にすることと同じです。
- このオプションをクエリ レベルで設定するには、
QUERYTRACEONquery ヒントを追加します。 - Service Pack 1 以降のバージョンの SQL Server 2016 (13.x) のクエリ レベルでこの機能を有効にするには、トレース フラグを使用する代わりに USE HINT クエリ ヒント を追加します。
QUERYTRACEON ヒントを使用して、SQL Server 7.0 から SQL Server 2012 (11.x) バージョンまたはクエリ オプティマイザー修正プログラムの既定のクエリ オプティマイザーを有効にすると、クエリ ヒントとデータベース スコープ構成設定の間に OR 条件が作成されます。 いずれかのオプションが有効になっている場合は、データベース スコープの構成が適用されます。
PRIMARY
この値は、データベースがプライマリにある間はセカンダリでのみ有効です。 すべてのセカンダリでこの設定の値がプライマリに設定されている値であることを指定します。 プライマリの構成が変更されると、セカンダリの値も適宜変更されます。セカンダリの値を明示的に設定する必要はありません。 PRIMARY はセカンダリの既定の設定です。
QUERY_OPTIMIZER_HOTFIXESの詳細については、「SQL Server クエリ オプティマイザーの修正プログラム トレース フラグ 4199 サービス モデル」を参照してください。
ROW_MODE_MEMORY_GRANT_FEEDBACK = { ON |OFF }
に適用: SQL Server 2019 (15.x) 以降のバージョン、Azure SQL Database、および Azure SQL Managed Instance
データベース互換性レベル 150 以上を維持しながら、データベース スコープで行モードメモリ許可フィードバックを有効または無効にします。 既定値は ONです。 行モード メモリ許可フィードバックは、SQL Server 2017 (14.x) で導入された インテリジェント クエリ処理 の一部である機能です。 行モードは、SQL Server 2019 (15.x) および Azure SQL Database でサポートされます。 メモリ許可フィードバックの詳細については、「メモリ許可フィードバック」を参照してください。
データベース互換性レベル 140 以前のバージョンの場合、このデータベース スコープ構成は無効です。
TSQL_SCALAR_UDF_INLINING = { ON |OFF }
対象:SQL Server 2019(15.x)以降のバージョン、およびAzure SQL Database(プレビュー機能)
データベース互換性レベル 150 以上を維持しながら、データベース スコープで T-SQL スカラー UDF インライン化を有効または無効にします。 既定値は ONです。 T-SQL スカラー UDF のインライン化は、インテリジェント クエリの処理機能ファミリの一部です。
Note
データベース互換性レベル 140 以前のバージョンの場合、このデータベース スコープ構成は無効です。
VERBOSE_TRUNCATION_WARNINGS = { ON |OFF }
に適用: SQL Server 2019 (15.x) 以降のバージョン、Azure SQL Database、および Azure SQL Managed Instance
新しい String or binary data would be truncated のエラー メッセージを有効または無効にします。 既定値は ONです。 SQL Server 2019 (15.x) では、このシナリオに対してより具体的なエラー メッセージ (2628) が導入されました。
String or binary data would be truncated in table '%.*ls', column '%.*ls'. Truncated value: '%.*ls'.
データベース互換性レベル 150 で ON に設定すると、切り捨てエラーによって新しいエラー メッセージ 2628 が発生し、より多くのコンテキストが提供され、トラブルシューティング プロセスが簡略化されます。
データベース互換性レベル 150 で OFF に設定すると、切り捨てエラーによって前のエラー メッセージ 8152 が発生します。
データベース互換性レベル 140 以前のバージョンの場合、エラー メッセージ 2628 は、 トレース フラグ 460 を有効にする必要があるオプトイン エラー メッセージのままであり、このデータベース スコープ構成には影響しません。
XTP_PROCEDURE_EXECUTION_STATISTICS = { ON |OFF }
適用対象: Azure SQL Database と Azure SQL Managed Instance
現在のデータベース内のすべてのネイティブ コンパイル T-SQL モジュールに対し、モジュール レベルで実行統計コレクションを有効また無効にします。 既定値は OFFです。 実行統計は sys.dm_exec_procedure_stats に反映されます。
このオプションが ON の場合、または統計コレクションが sp_xtp_control_proc_exec_stats によって有効化されている場合は、ネイティブ コンパイル T-SQL モジュールのモジュール レベルの実行統計が収集されます。
XTP_QUERY_EXECUTION_STATISTICS = { ON |OFF }
適用対象: Azure SQL Database と Azure SQL Managed Instance
現在のデータベース内のすべてのネイティブ コンパイル T-SQL モジュールに対し、ステートメント レベルで実行統計コレクションを有効また無効にします。 既定値は OFFです。 実行統計は、sys.dm_exec_query_stats およびクエリ ストアに反映されます。
ネイティブ コンパイル T-SQL モジュールのステートメント レベルの実行統計は、このオプションが ONされている場合、または sp_xtp_control_query_exec_statsを使用して統計収集が有効になっている場合に収集されます。
ネイティブ コンパイル Transact-SQL モジュールのパフォーマンス監視の詳細については、「 ネイティブ コンパイル ストアド プロシージャのパフォーマンスの監視を参照してください。
DW_COMPATIBILITY_LEVEL = { AUTO | 10 | 20 | 30 | 40 | 50 | 9000 }
適用対象:Azure Synapse Analyticsのみ
指定したバージョンのデータベース エンジンと互換性があるように、Transact-SQL およびクエリ処理の動作を設定します。 設定すると、そのデータベースでクエリが実行されるときに、互換性のある機能のみが使用されます。 互換性レベルごとに、さまざまなクエリ処理の機能強化がサポートされています。 各レベルは、前のレベルの機能を吸収しています。 データベースの互換性レベルは、最初の作成時に既定で AUTO に設定され、これが推奨される設定です。 互換性レベルは、データベースの一時停止/再開、バックアップ/復元操作の後でも保持されます。 既定値は AUTOです。
| 互換性レベル | Comments |
|---|---|
AUTO |
Default. Synapse Analytics エンジンは、その値を自動的に更新します。 これは、sys.database_scoped_configurationsの 0 によって表 されます。 現在、AUTO は互換性レベルの 30 機能にマップされています。 |
10 |
互換性レベルのサポートを導入する前に、Transact-SQL とクエリ エンジンの動作を実行します。 |
20 |
1 番目の互換性レベル。ゲート Transact-SQL とクエリ エンジンの動作が含まれます。 システム ストアド プロシージャ sp_describe_undeclared_parameters は、このレベルでサポートされています。 |
30 |
新しいクエリ エンジンの動作が含まれます。 |
40 |
新しいクエリ エンジンの動作が含まれます。 |
50 |
このレベルでは多列分布がサポートされています。 詳細については、 CREATE TABLE、 CREATE TABLE AS SELECT、CREATE MATERIALIZED VIEW AS SELECT を参照してください。 |
9000 |
プレビューの互換性レベル。 機能固有のドキュメントでは、このレベルで制御されるプレビュー機能が示されています。 このレベルには、最も高い非9000 レベルの能力も含まれます。 |
Permissions
データベースに対する ALTER ANY DATABASE SCOPED CONFIGURATION が必要です。 データベースに対する CONTROL 権限を持つユーザーは、このアクセス許可を付与できます。
Remarks
セカンダリ データベースにはプライマリとは異なるスコープ構成を設定できますが、すべてのセカンダリ データベースで同じ構成が使用されます。 個々のセカンダリに対して異なる設定を構成することはできません。
このステートメントを実行すると、現在のデータベースのプロシージャ キャッシュが消去されます。つまり、すべてのクエリを再コンパイルする必要があります。
3 部構成の名前クエリでは、クエリの現在のデータベース接続の設定が優先されます。ただし、別のデータベース コンテキストでコンパイルされ、存在するデータベースのオプションを使用する SQL モジュール (プロシージャ、関数、トリガーなど) を除きます。 同様に、統計を非同期的に更新する場合、統計が存在するデータベースの ASYNC_STATS_UPDATE_WAIT_AT_LOW_PRIORITY の設定が適用されます。
ALTER_DATABASE_SCOPED_CONFIGURATION イベントは、DDL トリガーの起動に使用できる DDL イベントとして追加されます。
ALTER_DATABASE_EVENTS トリガー グループの子です。
データベースを復元またはアタッチすると、データベース スコープの構成設定が引き継がれ、データベースに残ります。
SQL Server 2019 (15.x) 以降、Azure SQL Database と Azure SQL Managed Instance では、いくつかのオプション名が変更されました。
-
DISABLE_INTERLEAVED_EXECUTION_TVFをINTERLEAVED_EXECUTION_TVFに変更しました -
DISABLE_BATCH_MODE_MEMORY_GRANT_FEEDBACKをBATCH_MODE_MEMORY_GRANT_FEEDBACKに変更しました -
DISABLE_BATCH_MODE_ADAPTIVE_JOINSをBATCH_MODE_ADAPTIVE_JOINSに変更しました
データベース スコープ構成オプションの状態を確認する
データベースで構成が有効 (1) または無効 (0) かどうかを確認するには、 sys.database_scoped_configurationsクエリを実行します。 たとえば、 LEGACY_CARDINALITY_ESTIMATIONの値を確認するには、次のようなクエリを使用します。
USE <user_database>;
SELECT
name,
value,
value_for_secondary
FROM sys.database_scoped_configurations
WHERE name = 'LEGACY_CARDINALITY_ESTIMATION';
Limitations
MAXDOP
詳細な設定はグローバル設定をオーバーライドでき、リソース ガバナーは他のすべての MAXDOP 設定を上限にすることができます。 次のロジックは、 MAXDOP 設定に適用されます。
クエリ ヒントは
sp_configureとデータベース スコープ構成の両方をオーバーライドします。 ワークロード グループにリソース グループ MAXDOP が設定されている場合:クエリヒントがゼロ(0)に設定されている場合、リソースガバナー設定によって上書きされます。
クエリヒントがゼロ(0)でなければ、リソースガバナー設定で上限が設定されます。
データベースのスコープ設定(ゼロでない限り)は
sp_configure設定を上書きし、クエリヒントがなければリソースガバナー設定で上限があります。リソースガバナーの設定は
sp_configure設定を上書きします。
ジオレプリケート・ディザスターリカバリー(DR)
読み取り可能なセカンダリ データベース (Always On 可用性グループ、Azure SQL Database、Azure SQL Managed Instance geo レプリケート データベース) では、データベースの状態を確認することでセカンダリ値が使用されます。 フェイルオーバー時に再コンパイルは行われず、技術的には新しいプライマリはセカンダリ設定を使ってクエリを行っていますが、プライマリとセカンダリの設定はワークロードが異なる場合にのみ変わります。 そのため、キャッシュされたクエリでは最適な設定が使用されますが、新しいクエリでは適切な新しい設定が選択されます。
DacFx
ALTER DATABASE SCOPED CONFIGURATION機能はSQL Server 2016(13.x)以降のバージョン、Azure SQL Database、Azure SQL Managed Instanceで利用可能です。 データベーススキーマに影響を与えるため、スキーマのエクスポート(データの有無にかかわらず)はSQL Server 2014(12.x)以前のバージョンにはインポートできません。 たとえば、この機能を使用する SQL Database または SQL Server 2016 (13.x) データベースから DACPAC または BACPAC へのエクスポートを下位サーバーにインポートすることはできません。
Metadata
sys.database_scoped_configurationsシステムビューは、データベース内のスコープ設定に関する情報を提供します。 データベーススコープ設定オプションは sys.database_scoped_configurations のみ表示され、サーバー全体のデフォルト設定へのオーバーライドです。
sys.configurationsのシステムビューではサーバー全体の設定のみが表示されます。
Examples
これらの例では、ALTER DATABASE SCOPED CONFIGURATIONの使用方法を示します。
A. アクセス許可を付与する
この例では、ユーザー JoeにALTER DATABASE SCOPED CONFIGURATIONを実行するために必要なアクセス許可を付与します。
GRANT ALTER ANY DATABASE SCOPED CONFIGURATION TO [Joe];
B. MAXDOP の設定
この例では、geo レプリケーション シナリオでプライマリ データベースに MAXDOP = 1 を、セカンダリ データベースに MAXDOP = 4 を設定します。
ALTER DATABASE SCOPED CONFIGURATION
SET MAXDOP = 1;
ALTER DATABASE SCOPED CONFIGURATION
FOR SECONDARY
SET MAXDOP = 4;
この例では、二次データベースのMAXDOPを、ジオレプリケーションのシナリオにおけるプライマリデータベースと同じように設定しています。
ALTER DATABASE SCOPED CONFIGURATION
FOR SECONDARY
SET MAXDOP = PRIMARY;
C. LEGACY_CARDINALITY_ESTIMATIONの設定
次の使用例は、geo レプリケーション シナリオでセカンダリ データベースの LEGACY_CARDINALITY_ESTIMATION を ON に設定します。
ALTER DATABASE SCOPED CONFIGURATION
FOR SECONDARY
SET LEGACY_CARDINALITY_ESTIMATION = ON;
この例は、ジオレプリケーションのシナリオにおけるプライマリデータベース上にあるセカンダリデータベースのため、セカンダリデータベースの対象として LEGACY_CARDINALITY_ESTIMATION を設定します。
ALTER DATABASE SCOPED CONFIGURATION
FOR SECONDARY
SET LEGACY_CARDINALITY_ESTIMATION = PRIMARY;
D. PARAMETER_SNIFFINGの設定
次の例では、geo レプリケーション シナリオでプライマリ データベースの PARAMETER_SNIFFING を OFF に設定します。
ALTER DATABASE SCOPED CONFIGURATION
SET PARAMETER_SNIFFING = OFF;
次の例では、geo レプリケーション シナリオでセカンダリ データベースのOFFにPARAMETER_SNIFFINGを設定します。
ALTER DATABASE SCOPED CONFIGURATION
FOR SECONDARY
SET PARAMETER_SNIFFING = OFF;
次の例では、geo レプリケーション シナリオのプライマリ データベースと一致するようにセカンダリ データベースの PARAMETER_SNIFFING を設定します。
ALTER DATABASE SCOPED CONFIGURATION
FOR SECONDARY
SET PARAMETER_SNIFFING = PRIMARY;
E. QUERY_OPTIMIZER_HOTFIXESの設定
geo レプリケーション シナリオでプライマリ データベースの QUERY_OPTIMIZER_HOTFIXES に ON を設定します。
ALTER DATABASE SCOPED CONFIGURATION
SET QUERY_OPTIMIZER_HOTFIXES = ON;
F. プロシージャ キャッシュをクリアする
次の例では、プロシージャ キャッシュをクリアします。 プロシージャ キャッシュは、プライマリ データベースに対してのみクリアできます。
ALTER DATABASE SCOPED CONFIGURATION
CLEAR PROCEDURE_CACHE;
G. IDENTITY_CACHEの設定
適用対象: SQL Server 2017 (14.x) 以降のバージョン、Azure SQL Database、および Azure SQL Managed Instance
次の例では、ID キャッシュを無効にします。
ALTER DATABASE SCOPED CONFIGURATION
SET IDENTITY_CACHE = OFF;
H. OPTIMIZE_FOR_AD_HOC_WORKLOADSの設定
に適用: SQL Server 2019 (15.x) 以降のバージョン、Azure SQL Database、および Azure SQL Managed Instance
この例では、バッチが初めてコンパイルされるときに、コンパイル済みのプラン スタブをキャッシュに格納できます。
ALTER DATABASE SCOPED CONFIGURATION
SET OPTIMIZE_FOR_AD_HOC_WORKLOADS = ON;
I. ELEVATE_ONLINEの設定
に適用: SQL Server 2019 (15.x) 以降のバージョン、Azure SQL Database、および Azure SQL Managed Instance
次の使用例は、ELEVATE_ONLINE を FAIL_UNSUPPORTEDに設定します。
ALTER DATABASE SCOPED CONFIGURATION
SET ELEVATE_ONLINE = FAIL_UNSUPPORTED;
J. ELEVATE_RESUMABLEの設定
に適用: SQL Server 2019 (15.x) 以降のバージョン、Azure SQL Database、および Azure SQL Managed Instance
次の使用例は、ELEVATE_RESUMABLE を WHEN_SUPPORTEDに設定します。
ALTER DATABASE SCOPED CONFIGURATION
SET ELEVATE_RESUMABLE = WHEN_SUPPORTED;
K. プラン キャッシュからクエリ プランを削除する
に適用: SQL Server 2019 (15.x) 以降のバージョン、Azure SQL Database、および Azure SQL Managed Instance
次の例では、プロシージャ キャッシュから特定のプランをクリアします。
ALTER DATABASE SCOPED CONFIGURATION
CLEAR PROCEDURE_CACHE 0x06000500F443610F003B7CD12C02000001000000000000000000000000000000000000000000000000000000;
L. 一時停止される期間を設定する
適用対象: Azure SQL Database と Azure SQL Managed Instance
この例では、再開可能なインデックスの一時停止される期間を 60 分に設定します。
ALTER DATABASE SCOPED CONFIGURATION
SET PAUSED_RESUMABLE_INDEX_ABORT_DURATION_MINUTES = 60;
M. 台帳ダイジェストのアップロードを有効または無効にする
適用対象: SQL Server 2022 (16.x) 以降のバージョン
この例では、Azure ストレージ アカウントへの台帳ダイジェストのアップロードを有効にします。
ALTER DATABASE SCOPED CONFIGURATION
SET LEDGER_DIGEST_STORAGE_ENDPOINT = 'https://mystorage.blob.core.windows.net';
この例では、台帳ダイジェストのアップロードを無効にします。
ALTER DATABASE SCOPED CONFIGURATION
SET LEDGER_DIGEST_STORAGE_ENDPOINT = OFF;
N. プレビュー機能を有効にする
プレビューで機能を使用できるようにする。
ALTER DATABASE SCOPED CONFIGURATION
SET PREVIEW_FEATURES = ON;
SELECT *
FROM sys.database_scoped_configurations
WHERE [name] = 'PREVIEW_FEATURES';
O. ベクター インデックスが古くなるのを許可する
Azure SQL Database と Fabric SQL データベースの現在のプレビュー状態では、ベクター インデックスによってテーブルが読み取り専用になります。 テーブルを書き込み可能にするには、次のデータベース スコープ構成を有効にします。
ALTER DATABASE SCOPED CONFIGURATION
SET ALLOW_STALE_VECTOR_INDEX = ON;
SELECT *
FROM sys.database_scoped_configurations
WHERE [name] = 'ALLOW_STALE_VECTOR_INDEX';
ALLOW_STALE_VECTOR_INDEX = ONすると、テーブルに新しいデータを挿入または更新しても、ベクター インデックスは更新されません。 ベクターインデックスをリフレッシュするには、削除して再作成する必要があります。
この設定オプションは現在SQL Server 2025(17.x)では利用できません。
関連コンテンツ
- sys.database_scoped_configurations
- sys.configurations
- データベースとファイルのカタログ ビュー (Transact-SQL)
- サーバー構成オプション
- オルターインデックス(Transact-SQL)
- インデックス作成 (Transact-SQL)
- SQL Server の "max degree of parallelism" 構成オプションの推奨事項とガイドライン
- オンライン インデックス操作のしくみ
- オンラインでのインデックス操作の実行
- SQL データベースでのインテリジェントなクエリ処理
- メモリ許可フィードバック
- カーディナリティ推定 (CE) のフィードバック
- 並列処理度数 (DOP) のフィードバック