1. 程式人生 > 其它 >SQL Server中SQL語句的執行效率檢視方法

SQL Server中SQL語句的執行效率檢視方法

之前在練習SQL查詢的時候,對於同一個需求可以通過不同的sql語句得到想要的資料。所以想知道不同的sql語句的查詢效率,就有了下面的內容。

例如:-- 16、查詢出只選修了2門課程的全部學生的學號和姓名

select sid,sname from student where sid in
(select sid from sc group by sid having count(*) =2)

select 學號=sid,姓名=sname from student st where 
(select count(*) from (select distinct cid from sc where sid=st.sid) as temp) =2

在SQL Server中可以通過SQL語句來查詢執行過的語句的執行效率,程式碼如下:

select top 1000 
st.text as '執行的sql語句',
qs.execution_count as '執行的次數',
qs.total_elapsed_time as '耗時',
qs.total_logical_reads as '邏輯讀取次數',
qs.total_logical_writes as '邏輯寫入次數',
qs.total_physical_reads as '物理讀取次數',
qs.creation_time as '執行時間',
qs.creation_time as '語句編譯時間'
from sys.dm_exec_query_stats qs CROSS APPLY
sys.dm_exec_sql_text(qs.sql_handle) st
order by qs.creation_time desc

查詢結果:

附:如果執行的sql語句過多,不方便找到要檢查的SQL語句。可以在SQL Server中清理一下快取。
清理快取的語句:dbcc freeProcCache