sys.database_query_store_options (Transact-SQL)
適用於:SQL Server 2016 (13.x) 和更新版本的
Azure SQL 資料庫
Azure 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_WRITE 且 actual_state_desc 為 READ_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 、、10 5 、、30 15 、、 60 和 1440 分鐘。 預設值為 60 分鐘。 |
max_storage_size_mb |
bigint | 查詢存放區 的磁碟大小上限,以 MB 為單位。 默認值為 100 MB,最高為 SQL Server 2017 (14.x),SQL Server 2019 (15.x) 和更新版本中為 1 GB。 針對 SQL 資料庫 Premium 版本,預設值為 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
是預期的狀態。 如需詳細資訊,請參閱次要複本查詢資料存放區。
相關內容
- 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)