就是在測量功能時,先以下命令清除sql server的緩衝
dbcc freeProcCache
在點擊某個按鈕,執行完後,再執行下面語句,就可以知道系統運行什麼Sql和多少次了,其主要慢語句是那些了;
SELECT
creation_time N
'
語句編譯時間
'
,last_execution_time N
'
上次執行時間
'
,total_physical_reads N
'
物理讀取總次數
'
,total_logical_reads
/
execution_count N
'
每次邏輯讀次數
'
,total_logical_reads N
'
邏輯讀取總次數
'
,total_logical_writes N
'
邏輯寫入總次數
'
,execution_count N
'
執行次數
'
,total_worker_time
/
1000
N
'
所用的CPU總時間ms
'
,total_elapsed_time
/
1000
N
'
總花費時間ms
'
,(total_elapsed_time
/
execution_count)
/
1000
N
'
平均時間ms
'
,
SUBSTRING
(st.
text
, (qs.statement_start_offset
/
2
)
+
1
,
((
CASE
statement_end_offset
WHEN
-
1
THEN
DATALENGTH
(st.
text
)
ELSE
qs.statement_end_offset
END
-
qs.statement_start_offset)
/
2
)
+
1
) N
'
執行語句
'
FROM
sys.dm_exec_query_stats
AS
qs
CROSS
APPLY sys.dm_exec_sql_text(qs.sql_handle) st
where
SUBSTRING
(st.
text
, (qs.statement_start_offset
/
2
)
+
1
,
((
CASE
statement_end_offset
WHEN
-
1
THEN
DATALENGTH
(st.
text
)
ELSE
qs.statement_end_offset
END
-
qs.statement_start_offset)
/
2
)
+
1
)
not
like
'
%fetch%
'
ORDER
BY
total_elapsed_time
/
execution_count
DESC
;