sys.database_query_store_options (Transact-SQL)
適用於: SQL Server 2016 (13.x) 以上版本 Azure SQL DatabaseAzure SQL 受控執行個體Azure Synapse Analytics
傳回此資料庫的查詢存放區選項。
適用于:SQL Server (SQL Server 2016 (13.x) 和更新版本)、SQL Database。
資料行名稱 | 資料類型 | 描述 |
---|---|---|
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 = 錯誤 4 = READ_CAPTURE_SECONDARY |
actual_state_desc | nvarchar(60) | 查詢存放區實際作業模式的文字描述。 OFF READ_ONLY READ_WRITE 錯誤 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_WRITE且 actual_state_desc READ_ONLY時, readonly_reason 會傳回位對應,指出查詢存放區處於唯讀模式的原因。 1 - 資料庫處於唯讀模式 2 - 資料庫處於單一使用者模式 4 - 資料庫處於緊急模式 8 - 資料庫是次要複本(適用于可用性群組和 Azure SQL Database 異地複寫)。 此值只能在可 讀取的次要複本上 有效觀察 65536 - 查詢存放區已達到 選項所 MAX_STORAGE_SIZE_MB 設定的大小限制。 如需此選項的詳細資訊,請參閱 ALTER DATABASE SET 選項(Transact-SQL)。 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、5、10、15、30、60 和 1440 分鐘。 預設值為 60 分鐘。 |
max_storage_size_mb | bigint | 查詢存放區磁片大小上限,以 MB 為單位。 預設值為 100 MB,最高為 SQL Server 2017 (14.x),從 SQL Server 2019 (15.x) 開始為 1 GB 。 針對 SQL Database Premium 版本,預設值為 1 GB,而針對 SQL Database Basic 版本,預設值為 10 MB。 使用 ALTER DATABASE <database> SET QUERY_STORE (MAX_STORAGE_SIZE_MB = <size>) 語句變更。 |
stale_query_threshold_days | bigint | 查詢資訊保留在查詢存放區中的天數。 預設值為 30 。 設定為 0 以停用保留原則。 對於 SQL Database 基本版,預設值為 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 的預設組態值 (SQL Server 2016 (13.x) 和更新版本。 2 = AUTO - 根據執行計數和資源耗用量擷取相關的查詢。 這是 SQL Database 的預設組態值。 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 Database 的預設值) NONE CUSTOM |
capture_policy_execution_count | int | 查詢擷取模式自訂原則選項。 定義在評估週期內執行查詢的次數。 預設值是 30。 適用於:SQL Server 2019 (15.x) 和更新版本。 |
capture_policy_total_compile_cpu_time_ms | bigint | 查詢擷取模式自訂原則選項。 定義查詢在評估週期內使用的總耗用編譯 CPU 時間。 預設值為 1000。 適用於:SQL Server 2019 (15.x) 和更新版本。 |
capture_policy_total_execution_cpu_time_ms | bigint | 查詢擷取模式自訂原則選項。 定義查詢在評估週期內使用的總耗用執行 CPU 時間。 預設值為 100。 適用於:SQL Server 2019 (15.x) 和更新版本。 |
capture_policy_stale_threshold_hours | int | 查詢擷取模式自訂原則選項。 定義評估間隔週期以判斷是否應該擷取查詢。 預設值為 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(8000) | 目前未使用。 |
權限
需要 VIEW DATABASE STATE
權限。
備註
actual_state_desc
啟用次要複本的查詢存放區時,READ_CAPTURE_SECONDARY值是預期狀態。 如需詳細資訊,請參閱次要複本查詢資料存放區。
下一步
- sys.query_context_settings (Transact-SQL)
- sys.query_store_plan (Transact-SQL)
- sys.query_store_query (Transact-SQL)
- sys.query_store_query_text (Transact-SQL)
- sys.query_store_runtime_stats (Transact-SQL)
- sys.query_store_wait_stats (Transact-SQL)
- sys.query_store_runtime_stats_interval (Transact-SQL)
- 使用查詢存放區監視效能
- 目錄檢視 (Transact-SQL)
- sys.fn_stmt_sql_handle_from_sql_stmt (Transact-SQL)
- 查詢存放區預存程序 (Transact-SQL)
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應