Jump to content
  • entries
    292
  • comments
    368
  • views
    59874

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


antonch

570 views

 Share

Λοιπόν μιας και απέκτησα και εδω ένα 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

 Share

1 Comment


Recommended Comments

Guest
Add a comment...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...