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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM