SQL Server中SQL語句的執行效率檢視方法
阿新 • • 發佈:2021-11-23
之前在練習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