Search This Blog

Friday, February 25, 2011

Find Most Expensive Queries Using DMV

SELECT TOP 10 Substring(qt.TEXT, ( qs.statement_start_offset / 2 ) + 1, (
                            ( CASE qs.statement_end_offset
                            WHEN -1 THEN Datalength(qt.TEXT)
                            ELSE qs.statement_end_offset
                                                                            END
                              -
              qs.statement_start_offset ) / 2 ) + 1),
              qs.execution_count,
              qs.total_logical_reads,
              qs.last_logical_reads,
              qs.total_logical_writes,
              qs.last_logical_writes,
              qs.total_worker_time,
              qs.last_worker_time,
              qs.total_elapsed_time / 1000000 total_elapsed_time_in_s,
              qs.last_elapsed_time / 1000000  last_elapsed_time_in_s,
              qs.last_execution_time,
              qp.query_plan
FROM   sys.dm_exec_query_stats qs
       CROSS APPLY sys.Dm_exec_sql_text(qs.sql_handle) qt
       CROSS APPLY sys.Dm_exec_query_plan(qs.plan_handle) qp
ORDER  BY qs.total_logical_reads DESC 

No comments:

Post a Comment