Last active
June 22, 2018 20:51
-
-
Save danesparza/72eee601130883094f280775b1a3c282 to your computer and use it in GitHub Desktop.
Finding high CPU queries in SQL server
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
select getdate() 'colltime', | |
c.session_id, | |
s.login_name, | |
@@SERVERNAME 'sqlnwname', | |
db_name(m.dbid) 'dbname', | |
s.status,m.blocked, | |
s.program_name, | |
s.host_name, | |
t.last_wait_type, | |
t.wait_resource, | |
last_request_start_time, | |
t.total_elapsed_time/1000 'elaptime', | |
m.physical_io, | |
t.cpu_time/1000 'cputime', | |
substring(st.text, (t.statement_start_offset/2) + 1, | |
((case statement_end_offset | |
when -1 | |
then datalength(st.text) | |
else | |
t.statement_end_offset | |
end | |
- t.statement_start_offset)/2) + 1) as statement_text, | |
st.text, | |
query_plan | |
-- into #eplan | |
FROM sys.dm_exec_connections c | |
INNER JOIN sys.dm_exec_sessions s | |
ON c.session_id = s.session_id | |
INNER JOIN sys.dm_exec_requests t | |
ON c.session_id = t.session_id | |
INNER JOIN master..sysprocesses m | |
ON c.session_id = m.spid | |
CROSS APPLY sys.dm_exec_sql_text(most_recent_sql_handle) AS st | |
CROSS APPLY sys.dm_exec_query_plan(plan_handle) AS qp | |
WHERE t.total_elapsed_time/1000 > 5 and m.lastwaittype != 'BROKER_RECEIVE_WAITFOR' |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
select * from sys.dm_os_wait_stats order by wait_time_ms desc |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
SELECT s.session_id | |
,r.STATUS | |
,r.blocking_session_id 'blocked by' | |
,r.wait_type | |
,wait_resource | |
,r.wait_time / (1000.0) 'Wait Time (in Sec)' | |
,r.cpu_time | |
,r.logical_reads | |
,r.reads | |
,r.writes | |
,r.total_elapsed_time / (1000.0) 'Elapsed Time (in Sec)' | |
,Substring(st.TEXT, (r.statement_start_offset / 2) + 1, ( | |
( | |
CASE r.statement_end_offset | |
WHEN - 1 | |
THEN Datalength(st.TEXT) | |
ELSE r.statement_end_offset | |
END - r.statement_start_offset | |
) / 2 | |
) + 1) AS statement_text | |
,Coalesce(Quotename(Db_name(st.dbid)) + N'.' + Quotename(Object_schema_name(st.objectid, st.dbid)) + N'.' + | |
Quotename(Object_name(st.objectid, st.dbid)), '') AS command_text | |
,r.command | |
,s.login_name | |
,s.host_name | |
,s.program_name | |
,s.host_process_id | |
,s.last_request_end_time | |
,s.login_time | |
,r.open_transaction_count | |
FROM sys.dm_exec_sessions AS s | |
INNER JOIN sys.dm_exec_requests AS r ON r.session_id = s.session_id | |
CROSS APPLY sys.dm_exec_sql_text(r.sql_handle) AS st | |
WHERE r.session_id != @@SPID | |
ORDER BY r.cpu_time DESC | |
,r.STATUS | |
,r.blocking_session_id | |
,s.session_id |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment