go backsqlschool blogs list

Πώς θα βρω τα queries που κάνουν υψηλή χρήση της CPU;

by Antonios Chatzipavlis

Λοιπόν μιας και απέκτησα και εδω ένα blog είπα να κάνω σεφτέ με κάτι που λίγο ή πολύ  όσοι ασχολούμαστε με SQL Server αντιμετωπίζουμε.

Πως θα βρω τα queries που κάνουν υψηλή χρήση της CPU;

H απάντηση στο ερώτημα αυτό είναι η παρακάτω custom stored procedure η οποία δουλεύει σε SQL Server 2005 & 2008

 

create procedure spFindQueriesThatUseHighCPU 
as 
    Set NOCOUNT ON 

    SELECT TOP 100 
            (a.total_worker_time/a.execution_count) as [Avg_CPU_Time], -- the time is in ms 
            Convert(Varchar,Last_Execution_Time) as 'Last_execution_Time', 
            Total_Physical_Reads, 
            SUBSTRING(b.text,a.statement_start_offset/2, 
            (case 
                when a.statement_end_offset = -1 then len(convert(nvarchar(max), b.text)) * 2 
                else 
                a.statement_end_offset end - a.statement_start_offset)/2) as Query_Text, 
            dbname=Upper(db_name(b.dbid)), 
            b.objectid as 'Object_ID' 
    FROM sys.dm_exec_query_stats a 
        cross apply sys.dm_exec_sql_text(a.sql_handle) as b 
    ORDER BY [Avg_CPU_Time] DESC 
go
Ημερομηνία: 28 June 2009 18:45
Αξιολόγηση:
Tags:
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