iT邦幫忙

DAY 31
3

Oracle and MS SQL系列 第 32

[SQL SERVER]找出sql statement所對應的執行計畫

sql tuning往往都需要找出sql statement執行計畫
在SSMS2008中加強圖形輸出(SQ2005以XML呈現)
這樣將使DBA更清楚了解相關資訊(圖形化才是王道阿~XD)。
這裡簡單測試,我將利用三個DMV來取得相關資料。

sys.dm_exec_cached_plans、sys.dm_exec_query_plan和sys.dm_exec_sql_text

declare @mysql as varchar(max)
set @mysql='select * from dbo.DatabaseLog'
select quep.query_plan,sqlp.text, cacp.* FROM ((sys.dm_exec_cached_plans cacp
CROSS APPLY sys.dm_exec_query_plan(cacp.plan_handle) quep)
CROSS APPLY sys.dm_exec_sql_text(cacp.plan_handle) sqlp)
where sqlp.text=@mysql

點擊XML超連結後,將以圖形化呈現執行計畫

如果你比較習慣XML,當然也是可以的。

當然我們也可以找出前50複雜程度高的執行計畫,查看是否還有tuning空間。

view plaincopy to clipboardprint?
select top 50 quep.query_plan,sqlp.text, cacp.* FROM ((sys.dm_exec_cached_plans cacp
CROSS APPLY sys.dm_exec_query_plan(cacp.plan_handle) quep)
CROSS APPLY sys.dm_exec_sql_text(cacp.plan_handle) sqlp) order by 6 desc


上一篇
[Day 30]MS SQL vs Oracle
下一篇
[SQL SERVER]善用parallel#簡介
系列文
Oracle and MS SQL34

尚未有邦友留言

立即登入留言