go backsqlschool blogs list

How to find CPU expensive queries

by Antonios Chatzipavlis

Πριν από πολλά χρόνια είχα γράψει ένα σχετικό post με μια stored procedure. Με τα χρόνια αυτό άλλαζε καθώς οι ανάγκες και οι δυνατότητες άλλαζαν. Απλά σήμερα έτυχε να το χρησιμοποιήσω πάλι και λέω δε το μοιράζομαι με τον κόσμο όλο και κάποιος θα το χρειαστεί.

Δουλεύει σε SQL Server 2008, 2008R2, 2012, 2014

Όλοι οι χρόνοι είναι σε microseconds

SELECT TOP 50 
          qs.creation_time
        , qs.execution_count
        , qs.total_worker_time as total_cpu_time
        , qs.max_worker_time as max_cpu_time
        , qs.total_elapsed_time
        , qs.max_elapsed_time
        , qs.total_logical_reads
        , qs.max_logical_reads
        , qs.total_physical_reads
        , qs.max_physical_reads
        , t.[text]
        , qp.query_plan
        , t.dbid
        , t.objectid
        , t.encrypted
        , qs.plan_handle
        , qs.plan_generation_num
FROM sys.dm_exec_query_stats qs 
CROSS APPLY sys.dm_exec_sql_text(plan_handle) AS t
CROSS APPLY sys.dm_exec_query_plan(plan_handle) AS qp
ORDER BY qs.total_worker_time DESC


Enjoy :)

/*antonch*/

Ημερομηνία: 12 February 2014 15:05
Share it:

Αφήστε το σχόλιο σας - Leave your comment

Τα σχόλια έχουν κλείσει.
Επιτρέπονται μόνο τα σχόλια από τα μέλη του SqlSchool.gr.


newsletter subscription

Εάν επιθυμείτε να λαμβάνετε ενημέρωση από εμάς, δώστε μας το e-mail σας.
PASS chapter logo
Official Professional Association for SQL Server (PASS) chapter for Greece
Join to PASS