| 閱文時長 | | 0.23分鐘 | 字數統計 | | 420.8字符 |
| 主要內容 | | 1、引言&背景 2、自定義時間變數求差法 3、MSSQL內置方法 4、MSSQL選項開啟時間統計 5、宣告與參考資料 | ||
| 『MSSQL·查詢T-SQL陳述句執行時間的三種方法』 | |||
| 撰寫人 | | SCscHero | 撰寫時間 | | 2021/5/22 AM12:30 |
| 文章型別 | | 系列 | 完成度 | | 已完成 |
| 座右銘 | 每一個偉大的事業,都有一個微不足道的開始, | ||
一、引言&背景 完成度:100%
a) 應對問題
- 如何統計T-SQL陳述句的執行時間?
- 統計T-SQL陳述句的執行時間有哪幾種方法?
- 統計T-SQL陳述句的執行時間的幾種方法有哪些優缺點?
b) 應用場景
- 需要統計T-SQL、存盤程序、視圖、函式等執行時間的場景,
- DB性能調優,對比不同的方式執行時間,
c) 解決原理&方法
- 自定義時間變數求差法,
- MSSQL內置統計資訊選項,
- 默認開啟時間統計資訊,
二、自定義時間變數求差法 完成度:100%
實作方式如下,
DECLARE @VarDatetime DATETIME
SET @VarDatetime=GETDATE()
/*此處寫入需要查詢執行時長的陳述句*/
SELECT [陳述句執行花費時間(毫秒)]=DATEDIFF(MS,@VarDatetime,GETDATE())
【TIPS】此種方法的執行時間相比MSSQL內置統計時間略長,有一種說法是跟呼叫了聚合函式有關,
三、MSSQL內置方法 完成度:100%
a) 語法簡介
SET STATISTICS PROFILE ON:顯示分析、編譯和執行查詢所需的時間(以毫秒為單位),
SET STATISTICS IO ON:報告與陳述句內參考的每個表的掃描數、邏輯讀取數(在高速快取中訪問的頁數)和物理讀取數(訪問磁盤的次數)有關的資訊,
SET STATISTICS TIME ON:顯示每個查詢執行后的結果集,代表查詢執行的組態檔,
b) 示例Demo
SET STATISTICS TIME ON
SET STATISTICS IO ON
SET STATISTICS PROFILE ON
GO
/*此處寫入需要查詢執行時長的陳述句*/
GO
SET STATISTICS PROFILE OFF
SET STATISTICS TIME OFF
SET STATISTICS IO OFF
c) 可獲取資訊
此種資料統計方法,可從訊息中查看CPU時間和總時間,并可獲得掃描計數、邏輯讀取、物理讀取、預讀次數、邏輯讀取、物理讀取、lob預讀等資訊,可從結果集中,獲取IO執行時間和CPU執行時間,
d) 資料深度分析
占用時間:當前這一步的總時間,如果占用時間比CPU時間大很多,那開銷主要用于IO上,
----來自《sqlserver 查看腳本執行時間》
邏輯讀取次數:從資料快取讀取的頁數,數字越小,性能越好,在性能調優中這個數字非常重要,因為它不會隨著執行又執行而改變,除非資料或查詢陳述句有變動,在進行性能調優時,這個可以作為性能提升的重要參考,
物理讀取次數:從磁盤讀取的頁數,這個會隨著執行又執行而改變,大多數情況下,連續第2次的執行時,它的物理讀取值為0(因為會加載到記憶體中去),
四、MSSQL選項開啟時間統計 完成度:100%
工具->選項->查詢執行->高級,如下圖所示:
----來自《SQLServer 查看SQL陳述句的執行時間》
五、宣告與參考資料 完成度:100%
SQLServer 查看SQL陳述句的執行時間
sqlserver 查看腳本執行時間
原創博文,未經許可請勿轉載,
如有幫助,歡迎點贊、收藏、關注,如有問題,請評論留言!如需與博主聯系的,直接博客私信SCscHero即可,
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/286096.html
標籤:SQL Server
上一篇:SQL 陳述句決議

----來自《SQLServer 查看SQL陳述句的執行時間》