sys.database_query_store_options (Transact-SQL)

適用於: SQL Server 2016 (13.x) 以上版本 Azure SQL DatabaseAzure SQL 受控執行個體Azure Synapse Analytics

傳回這個資料庫的 查詢存放區 選項。

資料行名稱 資料類型 描述
desired_state smallint 指出用戶明確設定 查詢存放區 所需的作業模式。

0 = OFF
1 = READ_ONLY
2 = READ_WRITE
4 = READ_CAPTURE_SECONDARY
desired_state_desc nvarchar(60) 所需作業模式的文字描述 查詢存放區:

OFF
READ_ONLY
READ_WRITE
READ_CAPTURE_SECONDARY
actual_state smallint 表示 查詢存放區的作業模式。 除了使用者所需的所需狀態清單之外,實際狀態可以是錯誤狀態。

0 = OFF
1 = READ_ONLY
2 = READ_WRITE
3 = ERROR
4 = READ_CAPTURE_SECONDARY
actual_state_desc nvarchar(60) 查詢存放區 實際作業模式的文字描述。

OFF
READ_ONLY
READ_WRITE
ERROR
READ_CAPTURE_SECONDARY

實際狀態與所需狀態不同的情況:
- 如果資料庫設定為唯讀模式,或如果 查詢存放區 大小超過其設定的配額,則即使您指定讀寫,查詢存放區 可能以唯讀模式運作。
- 在極端情況下,查詢存放區 可能會因為內部錯誤而進入錯誤狀態。 在 SQL Server 2017 (14.x) 和更新版本中,如果發生這種情況,查詢存放區 可以在受影響的資料庫中執行sp_query_store_consistency_check預存程式來復原。 如果執行 sp_query_store_consistency_check 無法運作,或者如果您使用 SQL Server 2016 (13.x),則需要執行 來清除數據 ALTER DATABASE [YourDatabaseName] SET QUERY_STORE CLEAR ALL;
readonly_reason int desired_state_desc當 是 READ_WRITEactual_state_descREAD_ONLY時,readonly_reason會傳回位對應,指出 查詢存放區 處於只讀模式的原因。

1 - 資料庫處於唯讀模式
2 - 資料庫處於單一使用者模式
4 - 資料庫處於緊急模式
8- 資料庫是次要複本(適用於可用性群組和 Azure SQL 資料庫 異地複寫)。 此值只能在次要複本上 readable 有效觀察
65536- 查詢存放區 達到 選項所max_storage_size_mb設定的大小限制。 如需此選項的詳細資訊,請參閱 ALTER DATABASE SET 選項
131072- 查詢存放區 中不同語句的數目達到內部記憶體限制。 請考慮移除您不需要的查詢或升級至較高的服務層級,以啟用將 查詢存放區 傳輸至讀寫模式。
262144 - 等待保存在磁碟上的記憶體內部專案大小達到內部記憶體限制。 查詢存放區 暫時處於只讀模式,直到記憶體內部專案保存在磁碟上為止。
524288 - 資料庫達到磁碟大小限制。 查詢存放區 是用戶資料庫的一部分,因此,如果資料庫沒有更多可用的空間,這表示 查詢存放區 無法再進一步成長。

若要將 查詢存放區 作業模式切換回讀寫,請參閱確認 查詢存放區 會持續收集查詢數據。
current_storage_size_mb bigint 磁碟上的 查詢存放區 大小以 MB 為單位。
flush_interval_seconds bigint 定期將 查詢存放區 數據排清到磁碟的期間,以秒為單位。 預設值為 900 (15 分鐘)。

使用 ALTER DATABASE <database> SET QUERY_STORE (DATA_FLUSH_INTERVAL_SECONDS = <interval>) 語句變更。
interval_length_minutes bigint 以分鐘為單位的統計數據匯總間隔。 不允許任意值。 使用下列其中一個值:1、、105、、3015、、 601440 分鐘。 預設值為 60 分鐘。
max_storage_size_mb bigint 查詢存放區 以 MB 為單位的磁碟大小上限。 默認值為 100 MB,最高為 SQL Server 2017 (14.x),SQL Server 2019 (15.x) 和更新版本中為 1 GB。

針對 SQL 資料庫 進階版 版本,預設值為 1 GB,而針對 SQL 資料庫 Basic 版本,預設值為 10 MB。

使用 ALTER DATABASE <database> SET QUERY_STORE (MAX_STORAGE_SIZE_MB = <size>) 語句變更。
stale_query_threshold_days bigint 查詢資訊保留在 查詢存放區 的天數。 預設值為 30。 設定為 0 以停用保留原則。
針對 SQL 資料庫 Basic 版本,預設值為 7 天。

使用 ALTER DATABASE <database> SET QUERY_STORE (CLEANUP_POLICY = (STALE_QUERY_THRESHOLD_DAYS = <value>)) 語句變更。
max_plans_per_query bigint 限制預存計劃的數目上限。 預設值為 200。 如果達到最大值,查詢存放區 會停止擷取該查詢的新計劃。 設定 可 0 移除所擷取計劃數目的限制。

使用 ALTER DATABASE<database> SET QUERY_STORE (MAX_PLANS_PER_QUERY = <n>) 語句變更。
query_capture_mode smallint 目前作用中的查詢擷取模式:

1 = ALL - 會擷取所有查詢。 這是 SQL Server 2016 (13.x) 和更新版本的預設組態值。

2 = AUTO - 根據執行計數和資源耗用量擷取相關的查詢。 這是 SQL 資料庫的預設組態值。

3 = NONE - 停止擷取新的查詢。 查詢存放區 會繼續收集已擷取之查詢的編譯和運行時間統計數據。 請謹慎使用此設定,因為您可能會錯過擷取重要查詢。

4 = CUSTOM - 允許使用 QUERY_CAPTURE_POLICY選項對查詢擷取原則進行更多控制。

適用於:SQL Server 2019 (15.x) 和更新版本。
query_capture_mode_desc nvarchar(60) 查詢存放區 實際擷取模式的文字描述:

ALL (SQL Server 2016 的預設值 (13.x) 和更新版本)

AUTO(預設為 SQL 資料庫)

NONE

CUSTOM
capture_policy_execution_count int 查詢擷取模式 CUSTOM 原則選項。 定義在評估週期內執行查詢的次數。 預設值為 30

適用於:SQL Server 2019 (15.x) 和更新版本。
capture_policy_total_compile_cpu_time_ms bigint 查詢擷取模式 CUSTOM 原則選項。 定義查詢在評估週期內使用的總耗用編譯 CPU 時間。 預設值為 1000。

適用於:SQL Server 2019 (15.x) 和更新版本。
capture_policy_total_execution_cpu_time_ms bigint 查詢擷取模式 CUSTOM 原則選項。 定義查詢在評估週期內使用的總耗用執行 CPU 時間。 預設值為 100

適用於:SQL Server 2019 (15.x) 和更新版本。
capture_policy_stale_threshold_hours int 查詢擷取模式 CUSTOM 原則選項。 定義評估間隔週期以判斷是否應該擷取查詢。 預設值為24小時。

適用於:SQL Server 2019 (15.x) 和更新版本。
size_based_cleanup_mode smallint 控制當總數據量接近大小上限時,是否自動啟動清除:

0 = OFF - 不會自動啟動大小型清除。
1 = AUTO - 當磁碟上的大小達到 90%max_storage_size_mb時,會自動啟動大小型清除。 這是預設組態值。

以大小為依據之清除會先移除成本最高和最舊的查詢。 當達到大約 80%max_storage_size_mb 時,就會停止。
size_based_cleanup_mode_desc nvarchar(60) 實際大小型清除模式的文字描述,查詢存放區:

OFF
AUTO (預設值)
wait_stats_capture_mode smallint 控制 查詢存放區 是否執行等候統計數據的擷取:

0 = OFF
1 = ON

適用於:SQL Server 2017 (14.x) 和更新版本。
wait_stats_capture_mode_desc nvarchar(60) 實際等候統計數據擷取模式的文字描述:

OFF
ON (預設值)

適用於:SQL Server 2017 (14.x) 和更新版本。
actual_state_additional_info nvarchar(4000) 目前未使用。

權限

需要 VIEW DATABASE STATE 權限。

備註

啟用actual_state_desc次要複本 查詢存放區 時,值READ_CAPTURE_SECONDARY是預期的狀態。 如需詳細資訊,請參閱次要複本查詢資料存放區