MS SQL

SQL Server Parallel Query

darkturtle26 2019. 2. 10. 09:20

SQL Server Parallel Query

Parallel Query 관련 링크 :

-- Parallel Top 10 Query
SELECT TOP 10
db_name(p.dbid) as db_name_info
, p.query_plan, qs.plan_handle
, q.text, qs.sql_handle, qs.creation_time, qs.last_execution_time
, qs.execution_count
, ( ROUND(qs.total_worker_time/1000,1) / qs.execution_count ) as Worker_time_P_Exec_ms
, ROUND(qs.last_elapsed_time/1000,1) AS Last_elapsed_time_in_ms
, ROUND(qs.total_worker_time/1000,1) AS Total_Worker_time_ms
, ROUND(qs.total_logical_reads/qs.execution_count,1) as Logical_Read_P_Exec
, qs.last_dop, qs.min_dop, qs.max_dop
, cp.plan_handle
FROM
sys.dm_exec_cached_plans cp
CROSS apply sys.dm_exec_query_plan(cp.plan_handle) p
CROSS apply sys.dm_exec_sql_text(cp.plan_handle) AS q
JOIN sys.dm_exec_query_stats qs
ON qs.plan_handle = cp.plan_handle
WHERE cp.cacheobjtype = 'Compiled Plan'
AND p.query_plan.value('declare namespace p="http://schemas.microsoft.com/sqlserver/2004/07/showplan";max(//p:RelOp/@Parallel)', 'float') > 0
order by max_elapsed_time desc
OPTION (MAXDOP 1) ;