SQL Server 2016:通過Query Store定位回歸缺陷

jopen 9年前發布 | 7K 次閱讀 SQL Server 2016


對于多數開發者來說,一旦出現性能方面的回歸缺陷,通常可以追溯到某個特殊的事件,例如用戶的大量涌入或代碼的變更。而對數據庫開發者來說,事情 就沒有那么簡單了。隨著索引的重建與統計數據的更新,SQL Server或許會決定“重寫”你的代碼,重新生成執行計劃。如果找不到正確的備份以及與生產環境同等級別的硬件,想了解執行計劃中的變更基本上是不可能 的,至少目前來說是這樣。

而在SQL Server 2016中,微軟將通過一個名為 Query Store 的特性對執行計劃的歷史變動進行保存。一旦啟用了Query Store,它就會將每個查詢中的信息進行日志記錄,包括:

  • 執行次數
  • 執行時間
  • 內存占用
  • 邏輯讀取
  • 邏輯寫入
  • 物理讀取
  • 執行計劃變更次數

為了減少對服務器的壓力,這些信息是按照固定的時間窗口進行聚合的。如果你需要更詳細的數據,應轉而使用擴展事件(Extended Events)特性。

要查看這些信息,最簡單的方式是直接打開回歸查詢(Regressed Queries)視圖。

SQL Server 2016:通過Query Store定位回歸缺陷

在這個工具中,你可以根據任意一種記錄的指標查看回歸缺陷。當你找到回歸缺陷之后,可以選擇強制SQL Server使用之前的執行計劃。

對Query Store進行微調

由于對這些指標的跟蹤可能會帶來很大的開銷,因此SQL Server允許你對Query Store進行微調。可調整的因子包括聚合時間窗口的長度(單位為分鐘)、Query Store的最大體積(單位為MB),以及可保存的執行計劃的最大數量。你還可以讓Query Store只記錄滿足特定條件的查詢。

通過編程方式進行訪問

與大多數SQL Server特性一樣,在回歸查詢工具中所能看到的全部信息都能夠通過使用一系列管理視圖進行直接訪問。

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!