SQL Server 查詢存儲,做查詢優(yōu)化的利器
介紹一個SQL Server 2016后新增的功能:查詢存儲。查詢存儲的工作原理類似于飛行數(shù)據(jù)記錄器或者黑匣子,不斷地收集與查詢和計劃相關(guān)的編譯和運行時信息,包括已執(zhí)行查詢的歷史記錄,查詢運行時執(zhí)行統(tǒng)計信息,針對執(zhí)行計劃的執(zhí)行計劃等。與查詢相關(guān)的數(shù)據(jù)將永久保存在內(nèi)部表中,并通過一組視圖向用戶顯示。通過這些信息,可以快速查找性能差異,識別由查詢計劃更改和故障排除引起的性能等等問題。
通過以下命令或者SSMS界面進行開啟
- ALTER DATABASE [DatabaseOne] SET QUERY_STORE = ON;

查詢存儲開啟前

查詢存儲開啟后

查詢存儲開啟后
官方對內(nèi)部對應(yīng)的一些表,詳細(xì)描述如下

查看說明
當(dāng)然,這種類似的節(jié)點信息收集的東西,其實并不適合查詢頻率過大的查詢,經(jīng)過非嚴(yán)謹(jǐn)測試,性能損耗大概在5%左右。
做過DB性能優(yōu)化的人應(yīng)該都知道,以前我們要么通過持續(xù)性的日志記錄分析,要么通過實時的監(jiān)控去找到對應(yīng)的性能瓶頸,包括CPU、內(nèi)存、IO等,查詢存儲其實就是在此基礎(chǔ)上更進一步,把我們關(guān)心的點都存儲起來,并且有更詳盡信息和標(biāo)準(zhǔn)分析報告,相當(dāng)省事。
具體可以查看官方文檔學(xué)習(xí)學(xué)習(xí)。