sqlserver啟用Query Store
?Query Store?是SQL Server 2016及更高版本中引入的一個功能,用于跟蹤數(shù)據(jù)庫中的查詢執(zhí)行情況,幫助開發(fā)和數(shù)據(jù)庫管理員(DBA)分析和優(yōu)化數(shù)據(jù)庫性能。Query Store主要包含三個部分:計劃存儲、運行時統(tǒng)計信息存儲和等待統(tǒng)計信息存儲。
功能和用途
- ?跟蹤執(zhí)行計劃?:Query Store保存每個查詢的多個執(zhí)行計劃,幫助識別無效計劃并強制使用更好的計劃。
- ?性能監(jiān)控?:通過分析執(zhí)行統(tǒng)計信息和等待統(tǒng)計信息,可以識別資源占用高的查詢,優(yōu)化性能。
- ?歷史記錄審核?:保存查詢計劃的歷史記錄,便于審計和問題追蹤。
- ?故障排除?:幫助DBA確定在給定時間窗口內(nèi)查詢執(zhí)行的次數(shù),從而對性能問題進行故障排除。
- ?A/B測試?:在升級到新版SQL Server期間,保持性能穩(wěn)定,進行A/B測試。
使用場景
- ?找出并解決使用計劃選擇回歸的查詢?:識別由于執(zhí)行計劃更改導(dǎo)致的性能回歸。
- ?確定和優(yōu)化排名靠前的資源占用查詢?:幫助優(yōu)化高資源占用的查詢。
- ?在升級到新版SQL Server期間保持性能穩(wěn)定?:通過歷史數(shù)據(jù)對比,確保升級后的性能穩(wěn)定性。
- ?識別并改進臨時工作負載?:分析臨時工作負載的模式和性能瓶頸。
配置和管理
- ?啟用Query Store?:可以通過SQL Server Management Studio (SSMS) 或T-SQL命令啟用。例如,使用T-SQL命令啟用Query Store:
ALTER DATABASE [DEMO_1] SET QUERY_STORE = ON; - ?配置Query Store?:可以通過T-SQL命令設(shè)置各種參數(shù),如清理策略、存儲大小等。例如:
ALTER DATABASE [DEMO_1] SET QUERY_STORE (OPERATION_MODE = READ_ONLY, CLEANUP_POLICY = (STALE_QUERY_THRESHOLD_DAYS = 367), MAX_STORAGE_SIZE_MB = 100); - ?查看Query Store數(shù)據(jù)?:可以通過系統(tǒng)視圖和函數(shù)查詢存儲的數(shù)據(jù),例如:
SELECT query_text_id, query_sql_text, plan_id, execution_count, total_worker_time, last_worker_time FROM sys.query_store_query WHERE database_id = DB_ID() AND object_id = OBJECT_ID(N'YourStoredProcedureName');
通過這些功能和配置,Query Store為數(shù)據(jù)庫性能優(yōu)化提供了強大的工具,幫助識別和解決性能問題。
浙公網(wǎng)安備 33010602011771號