ALTER DATABASE SCOPED CONFIGURATION (Transact-SQL)

適用於:SQL Server 2016 (13.x) 及以後版本 Azure SQL Database AzureSQL Managed InstanceAzure Synapse AnalyticsSQL database in Microsoft Fabric

使用此指令在 個別資料庫 層級啟用多項資料庫設定。

Note

許多 ALTER DATABASE 操作會使受影響資料庫的計畫快取失效,包括資料庫選項、排序、相容性等級、資料庫範圍設定及檔案群組屬性的變更。 在操作清除計畫快取後,後續的查詢執行需要重新編譯,這可能會影響系統效能。

Important

不同版本與平台的 SQL 資料庫引擎支援不同 DATABASE SCOPED CONFIGURATION 選項。 本文說明 所有DATABASE SCOPED CONFIGURATION 選項。 已指出適用的版本。 請確保你使用的是你所使用的服務版本中可用的語法。

以下設定在 Azure SQL 資料庫、Microsoft Fabric 中的 SQL 資料庫、Azure SQL 管理實例,以及 SQL Server 中,根據參數區塊中每個設定的「套用」欄位所示,都支援以下設定:

  • 清除程序快取。
  • 根據最適合該特定工作負載的情況,將 MAXDOP 參數設定為主資料庫的建議值 (1,2, ...),併為報告查詢所使用的次要複本資料庫設定不同的值。 如需選擇 MAXDOP 的指引,請檢閱 伺服器組態:平行處理原則的最大程度。
  • 將與資料庫無關的查詢最佳化工具基數估計模型設定為相容性層級。
  • 在資料庫層級啟用或停用參數探測。
  • 在資料庫層級啟用或停用查詢最佳化。
  • 在資料庫層級啟用或停用識別快取。
  • 允許或不允許在第一次編譯批次時,將已編譯的計劃虛設常式儲存在快取中。
  • 啟用或停用原生編譯 Transact-SQL 模組的執行統計資料收集。
  • 為支援 ONLINE = 語法的 DDL 陳述式啟用或停用預設為線上的選項。
  • 為支援 RESUMABLE = 語法的 DDL 陳述式啟用或停用預設為可繼續的選項。
  • 啟用或停用 SQL 資料庫中的智慧查詢處理 功能。
  • 啟用或停用加速強制執行計劃。
  • 啟用或停用全域臨時表的自動刪除功能。
  • 啟用或停用輕量型查詢分析基礎結構。
  • 啟用或停用新的 String or binary data would be truncated 錯誤訊息。
  • 啟用或停用 sys.dm_exec_query_plan_stats 中最後一個實際執行計畫的集合。
  • 指定暫停可恢復索引操作暫停的分鐘數,然後資料庫引擎會自動中止。
  • 啟用或停用非同步統計資料更新的低優先順序等候鎖定。
  • 啟用或停用將總帳摘要上傳至 Azure Blob 儲存體的作業。
  • 設定預設 的全文索引 版本(1 或 2)。
  • 在 Azure Synapse Analytics 中,會設定使用者資料庫的相容性等級。

Transact-SQL 語法慣例

Syntax

SQL Server、Azure SQL Database、Microsoft Fabric 中的 SQL 資料庫及 Azure SQL 受控執行個體 的語法:

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_BUILTIN_TVF_IN_ALL_COMPAT_LEVELS = { 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 }
    | READABLE_SECONDARY_TEMPORARY_STATS_AUTO_CREATE = { ON | OFF | PRIMARY }
    | READABLE_SECONDARY_TEMPORARY_STATS_AUTO_UPDATE = { 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

中學

指定次級資料庫的設定。 所有次級資料庫的數值必須相同。

清PROCEDURE_CACHE [plan_handle]

清除資料庫的程序(計畫)快取。 你可以在主節點和次節點上執行這個指令。

要清除計畫快取中的單一查詢計畫,請指定一個查詢計畫的句柄。

適用於:SQL Server 2019(15.x)及更新版本、Azure SQL 資料庫及 Azure SQL 受控執行個體 可指定查詢計畫句柄。

SET 選項

ACCELERATED_PLAN_FORCING = { ON |OFF }

適用於:SQL Server 2019 (15.x) 和更新版本、Azure SQL Database 和 Azure SQL 受控實例

針對強制執行查詢計劃啟用最佳化機制,適用於所有形式的強制執行計劃,例如查詢存放區強制執行計劃、自動調整或使用計劃查詢提示。 預設值為 ON。

Note

不建議停用加速計劃強制。

ALLOW_BUILTIN_TVF_IN_ALL_COMPAT_LEVELS = { ON |關掉 }

適用於:Azure SQL 資料庫及 Microsoft Fabric 中的 SQL 資料庫

ALLOW_BUILTIN_TVF_IN_ALL_COMPAT_LEVELS資料庫範圍的配置目前還在預覽階段。

啟用後,無論資料庫相容性等級如何,都能使用以下內建的表值函式(TVF):

停用後,內建的 TVF 只會從特定相容等級開始被識別,這在每個功能的文件文章中有說明。

ALLOW_STALE_VECTOR_INDEX = { ON |關掉 }

適用於:Azure SQL 資料庫及 Microsoft Fabric 中的 SQL 資料庫

目前在 Azure SQL 資料庫和 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

SQL Server 2025(17.x)目前無法提供 ALLOW_STALE_VECTOR_INDEX 資料庫範圍設定選項。

ASYNC_STATS_UPDATE_WAIT_AT_LOW_PRIORITY = { ON |OFF }

適用於:SQL Server 2022 (16.x) 和更新版本、Azure SQL Database 和 Azure SQL 受控實例

如果你啟用非同步統計更新,啟用此設定會使背景請求更新統計資料等待低優先權佇列的 Sch-M 鎖定。 這種等待避免了在高並發情境下阻塞其他會話。 如需詳細資訊,請參閱 AUTO_UPDATE_STATISTICS_ASYNC。 預設值為 OFF。

BATCH_MODE_ADAPTIVE_JOINS = { ON |OFF }

適用於:SQL Server 2019 (15.x) 和更新版本、Azure SQL Database 和 Azure SQL 受控實例

在資料庫範圍內啟用或停用批次模式自適應加入,同時維持資料庫相容性等級 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 受控實例

在資料庫範圍內啟用或停用批次模式記憶體授權回饋,同時維持資料庫相容性等級 140 及以上。 預設值為 ON。 批次模式記憶體授與意見反應於 SQL Server 2017 (14.x) 首度推出,是智慧查詢處理套件的其中一項功能。 如需詳細資訊,請參閱記憶體授與意見反應。

對於資料庫相容性等級 130 或以下版本,此資料庫範圍設定不具影響。

BATCH_MODE_ON_ROWSTORE = { ON |OFF }

適用於:SQL Server 2019 (15.x) 和更新版本、Azure SQL Database 和 Azure SQL 受控實例

在資料庫範圍內啟用或停用 rowstore 的批次模式,同時維持資料庫相容性等級 150 及以上。 預設值為 ON。 資料列存放區上的批次模式是智慧查詢處理功能系列的其中一項功能。

對於資料庫相容性等級 140 或以下版本,此資料庫範圍設定不具影響。

CE_FEEDBACK = { ON |OFF }

適用於:SQL Server 2022 (16.x) 和更新版本、Azure SQL Database 和 Azure SQL 受控實例

CE 回饋針對使用預設 CE(CE120 或以上)時,因錯誤 CE 模型假設所產生的迴歸問題。 持續教育回饋可選擇性地使用不同的模型假設。 需要啟用查詢存放區,且處於 READ_WRITE 模式。 如需詳細資訊,請參閱基數估計 (CE) 意見反應。 在資料庫相容性層級 160 和更新版本中,預設值為 ON。

DEFERRED_COMPILATION_TV = { ON |OFF }

適用於:SQL Server 2019 (15.x) 和更新版本、Azure SQL Database 和 Azure SQL 受控實例

在資料庫範圍內啟用或停用資料表變數延遲編譯,同時維持資料庫相容性等級 150 或以上。 預設值為 ON。 資料表變數延遲編譯是 智慧查詢處理 功能家族中的一項功能。

對於資料庫相容性等級 140 或以下版本,此資料庫範圍設定不具影響。

DOP_FEEDBACK = { ON |OFF }

適用於:SQL Server 2022(16.x)及更新版本、Azure SQL 資料庫、Microsoft Fabric 中的 SQL 資料庫、帶有 SQL Server 2025 或 Always-up-to-date更新政策的 Azure SQL 管理實例

根據已耗用及等候的時間,識別重複查詢平行處理原則效率低落的問題。 如果平行度使用效率不高,DOP 回饋會降低下一次查詢執行時的 DOP,從已設定的 DOP 中降低,並驗證是否有效。 需要啟用查詢存放區,且處於 READ_WRITE 模式。 如需詳細資訊,請參閱 平行處理原則程度 (DOP) 意見反應。 預設值為 OFF。

ELEVATE_ONLINE = { OFF |WHEN_SUPPORTED |FAIL_UNSUPPORTED }

適用於:SQL Server 2019 (15.x) 和更新版本、Azure SQL Database 和 Azure SQL 受控實例

可讓您選取選項,讓引擎自動將支援的作業提升至線上。

此選項僅適用於支援 WITH (ONLINE = <syntax>) 的 DDL 陳述式。 XML 索引不會受到影響。

預設值是 OFF,這表示除非語句中特別指定,否則操作不會被提升為線上。 sys.database_scoped_configurations 反映 ELEVATE_ONLINE的目前值。 這些選項僅適用於在線支援的作業。 您可以在指定 ONLINE 選項的情形下提交陳述式,進而覆寫預設設定。

FAIL_UNSUPPORTED

此值會將所有支援的 DLL 作業提升至 ONLINE。 不支援在線執行的作業失敗,並擲回錯誤。

一般情況下,在資料表中加入資料行是線上作業。 在某些情況下,例如,新增不可為 Null 的數據行時,就無法在線新增數據行。 在這些情況下,若 FAIL_UNSUPPORTED 設定為 ,該操作即告失敗。

WHEN_SUPPORTED

此值會提升支援 ONLINE 的作業。 不支援在線的作業會脫機執行。

欲了解更多資訊,請參閱 線上索引操作指引。

ELEVATE_RESUMABLE = { 關 |WHEN_SUPPORTED |FAIL_UNSUPPORTED }

適用於:SQL Server 2019 (15.x) 和更新版本、Azure SQL Database 和 Azure SQL 受控實例

可讓您選取選項,讓引擎自動將支援的作業提升至可繼續。

此選項僅適用於支援 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 受控實例

控制純量使用者定義函數(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 受控實例

當你用輕量級查詢執行統計分析或 sys.dm_exec_query_statistics_xml DMV 來排解長時間執行的查詢時, FORCE_SHOWPLAN_RUNTIME_PARAMETER_COLLECTION SQL Server 會產生包含 ParameterRuntimeValue.

Important

不要在生產環境中持續啟用 FORCE_SHOWPLAN_RUNTIME_PARAMETER_COLLECTION 資料庫範圍設定選項。 只在有限時間的故障排除時啟用。 此資料庫範圍的設定選項會增加額外且可能顯著的 CPU 與記憶體負擔,因為 SQL Server 會建立帶有執行時參數資訊的 Showplan XML 片段,無論 sys.dm_exec_query_statistics_xml 是否啟用 DMV 或輕量級查詢執行統計設定檔基礎設施。

FULLTEXT_INDEX_VERSION

適用於:SQL Server 2025(17.x)及更新版本、Azure SQL 資料庫,以及 Azure SQL 管理實例

設定 全文索引版本 ,用於建立或重建索引。 此配置僅在您發出 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 配置同時控制以下系統儲存程序、檢視與函式報告及使用的全文元件:

IDENTITY_CACHE = { ON |OFF }

適用於:SQL Server 2017 (14.x) 和更新版本、Azure SQL Database 和 Azure SQL 受控實例

在資料庫層級啟用或停用識別快取。 預設值為 ON。 身份快取提升 INSERT 了在有身份欄位的資料表上的效能。 為避免當伺服器意外重啟或故障切換到次要伺服器時,身份欄位的值出現空缺,請停用該 IDENTITY_CACHE 選項。 此選項類似現有 的追蹤旗標 272,但設定在資料庫層級。

你可以只為主要副本設定這個選項。 如需詳細資訊,請參閱識別資料行。

INTERLEAVED_EXECUTION_TVF = { ON |OFF }

適用於:SQL Server 2019 (15.x) 和更新版本、Azure SQL Database 和 Azure SQL 受控實例

啟用或停用多語句資料表值函式的交錯執行,同時維持資料庫相容性等級 140 或以上。 預設值為 ON。 交錯執行是 Azure SQL 資料庫中自適應查詢處理的一部分功能。 欲了解更多資訊,請參閱 智慧查詢處理。

對於資料庫相容性等級 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 受控實例

允許你控制 列級安全 (RLS)謂詞是否會影響整體使用者查詢執行計畫的基數。 預設值為 OFF。 當 ISOLATE_SECURITY_POLICY_CARDINALITY 開啟時,RLS 謂詞不會影響執行計畫的基數。 例如,假設某資料表包含 1 百萬個資料列以及一個 RLS 述詞,此述詞會針對發出查詢的特定使用者將結果限制為 10 個資料列。 將此資料庫範圍設定設為 OFF 時,此述詞的基數估計值為 10。 當此資料庫範圍設定為 ON 時,查詢優化估計 1 百萬個數據列。 建議大多數工作負載使用預設值。

GLOBAL_TEMPORARY_TABLE_AUTO_DROP = { ON |OFF }

適用於:SQL Server 2019 (15.x) 和更新版本、Azure SQL Database 和 Azure SQL 受控實例

設定 全域暫存資料表的自動丟棄功能。 默認值為 ON,這表示當任何會話或工作未使用時,會自動卸除全域臨時表。 當設定為 OFF時,你只能透過敘 DROP TABLE 述明確丟棄全域暫存資料表,否則它們會在服務重新啟動時自動丟棄。

  • 在 Azure SQL 資料庫的單一資料庫與彈性池中,請在個別使用者資料庫中設定此選項。
  • 在 SQL Server 和 Azure SQL 受控執行個體 中,請在 中設定此選項。tempdb 個別使用者資料庫中的設定沒有任何作用。

LAST_QUERY_PLAN_STATS = { ON |OFF }

適用於:SQL Server 2019 (15.x) 和更新版本、Azure SQL Database 和 Azure SQL 受控實例

可讓您啟用或停用 sys.dm_exec_query_plan_stats 中最後一個查詢計劃統計資料 (相當於實際執行計畫) 的集合。 預設值為 OFF。

LEDGER_DIGEST_STORAGE_ENDPOINT = { <端點 URL 字串> |OFF }

適用於:SQL Server 2022(16.x)及更新版本,Azure SQL 資料庫

啟用或停用將總帳摘要上傳至 Azure Blob 儲存體的功能。 若要啟用總帳摘要上傳功能,請指定 Azure Blob 儲存體帳戶的端點。 若要停用上傳總帳摘要,請將選項值設定為 OFF。 預設值為 OFF。

LEGACY_CARDINALITY_ESTIMATION = { ON |OFF |PRIMARY }

可讓您將查詢最佳化工具基數估計模型設定為 SQL Server 2012 和更舊版本,而不根據資料庫的相容性層級。 默認值為 OFF,這會根據資料庫的相容性層級來設定查詢優化器基數估計模型。 設定為LEGACY_CARDINALITY_ESTIMATION相當ON於啟用追蹤旗標 9481。

  • 若要在查詢層級設定此選項,請加入 QUERYTRACEON查詢提示。
  • 若要在 SQL Server 2016(13.x)及 Service Pack 1 及更新版本中,在查詢層級設定此選項,請新增 USE HINT查詢提示 ,而非使用 trace 標誌。

PRIMARY

此值只有在主要資料庫位於 主要資料庫時才有效,並指定所有次要資料庫的查詢優化器基數估計模型設定是針對主要複本設定的值。 如果查詢優化器基數估計模型的主要設定變更,次要複本上的值會隨之變更。 PRIMARY 是次要端的預設設定。

更多資訊請參閱基數估計(SQL Server)。

LIGHTWEIGHT_QUERY_PROFILING = { ON |OFF }

適用於:SQL Server 2019 (15.x) 和更新版本、Azure SQL Database 和 Azure SQL 受控實例

可讓您啟用或停用輕量型查詢分析基礎結構。 輕量型查詢分析基礎結構 (LWP) 提供比標準分析機制更具效率的查詢效能資料,預設會予以啟用。 預設值為 ON。

MAXDOP = {<value> |PRIMARY }

<價值>

指定應該用於陳述式的預設平行處理原則最大程度 (MAXDOP) 設定。 0 是預設值,表示會改用伺服器組態。 資料庫範圍的 MAXDOP 會覆寫(除非設為 0) max degree of parallelism 伺服器層 sp_configure級的 。 查詢提示仍然可以覆寫資料庫範圍的 MAXDOP 來調整需要不同設定的特定查詢。 所有這些設定都受限於 工作負載群組的 MAXDOP 設定。

使用 MAXDOP 選項限制平行計畫執行時可使用的處理器數量。 SQL Server 會針對查詢、索引資料定義語言 (DDL) 作業、平行插入、線上改變資料行、平行統計資料收集,以及靜態和索引鍵集驅動資料指標填入,考慮進行平行執行計劃。

平行處理原則最大程度 (MAXDOP) 限制的設定會根據工作。 這不是每個 要求 或每個查詢限制。 這表示在平行查詢執行過程中,單一請求可以產生多個任務,這些任務會被指派給 排程器。 如需詳細資訊,請參閱 線程和工作架構指南。

若要在實例層級設定此選項,請參見 伺服器配置:最大平行度度。

在 Azure SQL Database 中,新的單一和彈性集區資料庫的 MAXDOP 資料庫範圍設定預設為 8。 如需在 Azure SQL Database 中以最佳方式設定 MAXDOP 的詳細資訊和建議,請參閱 在 Azure SQL Database 上設定 MAXDOP。

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 受控實例

啟用或停用所有從資料庫開始的查詢執行的記憶體授予回饋持久性。 預設值為 ON。 欲了解更多資訊,請參閱 百分位與持久模式記憶體回饋。

對於資料庫相容性等級 140 或以下版本,此資料庫範圍設定不具影響。

OPTIMIZE_FOR_AD_HOC_WORKLOADS = { ON |OFF }

適用於:SQL Server 2019 (15.x) 和更新版本、Azure SQL Database 和 Azure SQL 受控實例

在批次首次編譯時,啟用或停用將編譯後的計畫存根存入快取。 預設值為 OFF。 啟用資料庫範圍設定 OPTIMIZE_FOR_AD_HOC_WORKLOADS 後,當批次第一次編譯時,資料庫會將已編譯的計畫存根到快取中。 圖紙存根使用的記憶體比完整編譯圖紙少。 若批次被編譯或執行,資料庫引擎會移除已編譯的計畫存根,並以完整編譯後的計畫取代。

OPTIMIZED_PLAN_FORCING = { ON |OFF }

適用於:SQL Server 2022(16.x)及更新版本,Azure SQL 資料庫

強制執行最佳化計畫可減少重複強制查詢作業所額外產生的編譯負荷。 預設值為 ON。 在產生查詢執行計畫後,會儲存特定的編譯步驟,作為優化重播腳本重用。 最佳化重新執行指令碼會以隱藏 屬性的形式,儲存於OptimizationReplay的壓縮執行程序表 XML 之中。 如需詳細資訊,請參閱使用查詢存放區強制進行最佳化計畫 (機器翻譯)。

OPTIMIZED_SP_EXECUTESQL = { ON |OFF }

適用於:SQL Server 2025 (17.x)、Azure SQL 資料庫,以及 Microsoft Fabric 中的 SQL 資料庫

啟用或停用編譯批次時 sp_executesql 的編譯串行化行為。 預設值為 OFF。 允許使用 的 sp_executesql 批次序列化編譯過程,可以減少編譯風暴的影響。 編譯風暴是指大量查詢同時被編譯,導致效能問題與資源爭用的情況。

當 OPTIMIZED_SP_EXECUTESQL 為 ON時,首次執行 會 sp_executesql 編譯並將已編譯的計畫插入計畫快取。 其他會話會中止等候編譯鎖定,並在計劃可供使用後重複使用。 這種行為在編譯的角度下 sp_executesql ,類似於儲存程序和觸發器等物件。

OPTIONAL_PARAMETER_OPTIMIZATION = { ON |關掉 }

適用於:SQL Server 2025 (17.x)、Azure SQL 資料庫,以及 Microsoft Fabric 中的 SQL 資料庫

啟用或停用 可選參數計畫優化(OPPO) 功能。 預設值是從 ON 資料庫相容性層級 170 開始。

啟用時,調適型計劃優化會針對包含選擇性參數的查詢產生多個執行計劃。 這些計畫通常使用以下形式的謂詞:

  • @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 受控實例

參數敏感度計劃 (PSP) 優化可解決參數化查詢的單一快取計劃不適合所有可能的傳入參數值的情況。 這種情況發生在資料分布不均勻時。 預設值是從資料庫相容性層級 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 受控實例

該 PAUSED_RESUMABLE_INDEX_ABORT_DURATION_MINUTES 選項決定可恢復索引暫停的時間(以分鐘計),然後資料庫引擎會自動中止索引。

  • 預設值設為一天(1,440 分鐘)。
  • 最短持續時間設定為1分鐘。
  • 最長時長為71,582分鐘。
  • 當設定為 0時,暫停操作絕不會自動中止。

此選項目前的值會顯示於 sys.database_scoped_configurations。

PREVIEW_FEATURES = { 開 |關閉 }

適用於:SQL Server 2025 (17.x)、Azure SQL 資料庫、Microsoft Fabric 中的 SQL 資料庫

謹慎

不建議將預覽功能用於生產環境。

允許使用預覽功能。 若要深入瞭解,請檢閱 SQL Server 中的預覽功能。

預設值為 OFF。

如需如何使用此選項的範例,請參閱在 SQL Server 中使用預覽功能。

QUERY_OPTIMIZER_HOTFIXES = { ON |OFF |PRIMARY }

適用於:SQL Server 2016(13.x)及以後版本、Azure SQL 資料庫,以及 Azure SQL 管理實例

啟用或停用查詢最佳化 Hotfix,而不管資料庫的相容性層級為何。 預設為 OFF,會停用在特定版本最高相容性等級(RTM 之後)後釋出的查詢優化熱修正。 設定 QUERY_OPTIMIZER_HOTFIXES 為 等 ON 同於啟用 追蹤旗標 4199。

  • 若要在查詢層級設定此選項,請加入 QUERYTRACEON查詢提示。
  • 若要在 SQL Server 2016(13.x)及 Service Pack 1 及更新版本中啟用此功能,請新增 USE HINT 查詢提示 ,取代追蹤標誌。

當你使用 hint QUERYTRACEON 啟用 SQL Server 7.0 到 SQL Server 2012(11.x)版本的預設查詢優化器或 Query Optimizer 熱修正時,會在查詢提示與資料庫範圍設定之間建立一個 OR 條件。 若啟用任一選項,則適用資料庫範圍設定。

PRIMARY

這個值僅在資料庫在主節點時,對次要節點有效。 它規定所有次要裝置的值與主電源設定的值相同。 如果主要端的組態發生變更,次要端上的值將會相應地變更,而無須明確地設定次要端值。 [PRIMARY] 是次要端的預設設定。

欲了解更多相關 QUERY_OPTIMIZER_HOTFIXES資訊,請參閱 SQL Server 查詢優化器熱修正標記 4199 服務模型。

READABLE_SECONDARY_TEMPORARY_STATS_AUTO_CREATE = { ON |關掉 |小學 }

適用於:SQL Server 2025(17.x)及更新版本、Azure SQL Database、Azure SQL 受控執行個體AUTD 及 Azure SQL 受控執行個體2025

啟用或停用自動建立可讀次級資料庫副本及資料庫快照的 暫存統計資料 。

預設值為 ON。

READABLE_SECONDARY_TEMPORARY_STATS_AUTO_UPDATE = { ON |關掉 |小學 }

適用於:SQL Server 2025(17.x)及更新版本、Azure SQL Database、Azure SQL 受控執行個體AUTD 及 Azure SQL 受控執行個體2025

啟用或停用資料庫可讀次要副本及資料庫快照的 臨時統計自動 更新。

預設值為 ON。

ROW_MODE_MEMORY_GRANT_FEEDBACK = { ON |OFF }

適用於:SQL Server 2019 (15.x) 和更新版本、Azure SQL Database 和 Azure SQL 受控實例

啟用或停用列模式記憶體可在資料庫範圍內提供回饋,同時維持資料庫相容性等級 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 資料庫(功能為預覽階段)

在資料庫範圍內啟用或停用 T-SQL 標量 UDF 內嵌,同時保持資料庫相容性等級 150 或以上。 預設值為 ON。 T-SQL 純量 UDF 內嵌是智慧查詢處理功能系列的一部分。

Note

對於資料庫相容性等級 140 或以下版本,此資料庫範圍設定不具影響。

VERBOSE_TRUNCATION_WARNINGS = { ON |OFF }

適用於:SQL Server 2019 (15.x) 和更新版本、Azure SQL Database 和 Azure SQL 受控實例

啟用或停用新的 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 受控執行個體

在目前的資料庫上啟用或停用原生編譯 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 受控執行個體

在目前的資料庫上啟用或停用原生編譯 T-SQL 模組的陳述式層級執行統計資料收集。 預設值為 OFF。 執行統計資料會反映在 sys.dm_exec_query_stats 和查詢存放區。

如果此選項為 ON,或透過 sp_xtp_control_query_exec_stats啟用統計數據收集,則會收集原生編譯 T-SQL 模組的語句層級執行統計數據。

如需原生編譯 Transact-SQL 模組效能監視的詳細資訊,請參閱 監視原生編譯預存程式的效能。

DW_COMPATIBILITY_LEVEL = { 自動 | 10 | 20 | 30 | 40 | 50 | 9000 }

適用於:僅 Azure Synapse Analytics

將 Transact-SQL 及查詢處理行為,設定為相容於資料庫引擎的指定版本。 一旦設定好,當查詢在該資料庫執行時,它只會使用相容的功能。 每個相容性層級支援不同的查詢處理增強功能, 每個層級會吸收前一層級的功能。 首次建立時,資料庫的相容性層級會預設為 AUTO,這是建議使用的設定。 資料庫即使在暫停/繼續、備份/還原作業之後,也會保留該相容性層級。 預設值為 AUTO。

相容性等級 Comments
AUTO Default. Synapse Analytics 引擎會自動更新其數值。 它以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

雖然您可以設定讓次要資料庫擁有與其主要資料庫不同的範圍組態設定,但所有次要資料庫都會使用相同的組態。 你無法為個別次要裝置設定不同設定。

執行此陳述式會清除目前資料庫中的程序快取,這意謂著所有查詢都必須重新編譯。

對於三段式名稱查詢,查詢目前資料庫連線的設定會被保留,唯獨 SQL 模組(如程序、函式和觸發器)會在其他資料庫情境編譯,因此會使用其所在資料庫的選項。 同樣地,以異步方式更新統計數據時,會接受統計數據所在的資料庫設定 ASYNC_STATS_UPDATE_WAIT_AT_LOW_PRIORITY 。

該 ALTER_DATABASE_SCOPED_CONFIGURATION 事件會作為 DDL 事件加入,可用來觸發 DDL 觸發器。 它是觸發群體的產 ALTER_DATABASE_EVENTS 物。

當你還原或附加資料庫時,資料庫範圍的設定會被帶入並保留在資料庫中。

從 Azure SQL Database 和 Azure SQL 受控實例中的 SQL Server 2019 (15.x)開始,某些選項名稱已變更:

  • 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 資料庫及 Azure SQL 管理實例地理複製資料庫)會透過檢查資料庫狀態來使用次要值。 雖然重編譯不會在故障轉移時發生,且技術上新主節點的查詢是使用次要設定,但主要和次要設定只有在工作負載不同時才會改變。 因此,快取查詢會使用最佳設定,而新查詢則會選擇適合它們的新設定。

DacFx

此功能 ALTER DATABASE SCOPED CONFIGURATION 可在 SQL Server 2016(13.x)及更新版本、Azure SQL 資料庫及 Azure SQL 管理實例中取得。 因為會影響資料庫結構,結構的匯出(無論有沒有資料)無法匯入 SQL Server 2014(12.x)及更早版本。 例如,從使用 SQL 資料庫或 SQL Server 2016(13.x)資料庫匯出到 DACPAC 或 BACPAC 的資料庫,若使用此功能,則無法匯入底層伺服器。

Metadata

sys.database_scoped_configurations系統檢視提供資料庫中範圍設定的資訊。 資料庫範圍的設定選項只會在伺服器整體預設設定的覆寫中出現 sys.database_scoped_configurations 。 sys.configurations 系統檢視只顯示伺服器範圍的設定。

Examples

這些範例示範如何使用 ALTER DATABASE SCOPED CONFIGURATION。

A. 授與權限

此範例授予使用者ALTER DATABASE SCOPED CONFIGURATION執行所需的Joe權限。

GRANT ALTER ANY DATABASE SCOPED CONFIGURATION TO [Joe];

B. 設定 MAXDOP

此範例會在異地複寫案例中,針對主要資料庫設定 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

本範例會將 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

以下範例設定 PARAMETER_SNIFFING 為 OFF 地理複製場景中的主要資料庫。

ALTER DATABASE SCOPED CONFIGURATION
SET PARAMETER_SNIFFING = OFF;

以下範例設定 PARAMETER_SNIFFING 為 OFF 地理複製情境下的次級資料庫。

ALTER DATABASE SCOPED CONFIGURATION
FOR SECONDARY
SET PARAMETER_SNIFFING = OFF;

以下範例 PARAMETER_SNIFFING 設定一個次級資料庫,使其在地理複製情境下與主要資料庫相匹配。

ALTER DATABASE SCOPED CONFIGURATION
FOR SECONDARY
SET PARAMETER_SNIFFING = PRIMARY;

E. 設定QUERY_OPTIMIZER_HOTFIXES

將 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 受控實例

以下範例禁用身份快取。

ALTER DATABASE SCOPED CONFIGURATION
SET IDENTITY_CACHE = OFF;

H. 設定OPTIMIZE_FOR_AD_HOC_WORKLOADS

適用於:SQL Server 2019 (15.x) 和更新版本、Azure SQL Database 和 Azure SQL 受控實例

此範例允許在批次首次編譯時,將編譯後的計畫存根儲存在快取中。

ALTER DATABASE SCOPED CONFIGURATION
SET OPTIMIZE_FOR_AD_HOC_WORKLOADS = ON;

I. 設定ELEVATE_ONLINE

適用於:SQL Server 2019 (15.x) 和更新版本、Azure SQL Database 和 Azure SQL 受控實例

本範例會將 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 受控實例

本範例會將 ELEVATE_RESUMABLE 設定為 WHEN_SUPPORTED。

ALTER DATABASE SCOPED CONFIGURATION
SET ELEVATE_RESUMABLE = WHEN_SUPPORTED;

K. 從計畫快取清除查詢計劃

適用於:SQL Server 2019 (15.x) 和更新版本、Azure SQL Database 和 Azure SQL 受控實例

此範例會從程式快取清除特定計劃:

ALTER DATABASE SCOPED CONFIGURATION
CLEAR PROCEDURE_CACHE 0x06000500F443610F003B7CD12C02000001000000000000000000000000000000000000000000000000000000;

L. 設定暫停的持續時間

適用於:Azure SQL Database 與 Azure SQL 受控執行個體

此範例會將可繼續索引的暫停持續時間設定為 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 資料庫與 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)中尚未提供。