Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save bartread/eb1a3d8c1c775f9678c5befa4d223ed5 to your computer and use it in GitHub Desktop.
Save bartread/eb1a3d8c1c775f9678c5befa4d223ed5 to your computer and use it in GitHub Desktop.
Interesting SQL Profiler events per second in columns
SELECT [TimeSlice] =
RIGHT(N'0' + CAST(DATEPART(hh, StartTime) AS NVARCHAR(2)), 2)
+ N':'
+ RIGHT(N'0' + CAST(DATEPART(n, StartTime) AS NVARCHAR(2)), 2)
+ N':'
+ RIGHT(N'0' + CAST(DATEPART(ss, StartTime) AS NVARCHAR(2)), 2)
, d.DatabaseName
, [AuditDBCCEventCount] = COUNT(CASE WHEN te.Name = 'Audit DBCC Event' THEN 1 ELSE NULL END)
, [ErrorLogCount] = COUNT(CASE WHEN te.Name = 'ErrorLog' THEN 1 ELSE NULL END)
, [LockTimeoutCount] = COUNT(CASE WHEN te.Name = 'Lock:Timeout' THEN 1 ELSE NULL END)
, [LockTimeoutGreaterThanZeroCount] = COUNT(CASE WHEN te.Name = 'Lock:Timeout (timeout > 0)' THEN 1 ELSE NULL END)
, [RpcCompletedCount] = COUNT(CASE WHEN te.Name = 'RPC:Completed' THEN 1 ELSE NULL END)
, [ScanStoppedCount] = COUNT(CASE WHEN te.Name = 'Scan:Stopped' THEN 1 ELSE NULL END)
, [SPCacheMissCount] = COUNT(CASE WHEN te.Name = 'SP:CacheMiss' THEN 1 ELSE NULL END)
, [SPCompletedCount] = COUNT(CASE WHEN te.Name = 'SP:Completed' THEN 1 ELSE NULL END)
, [SQLBatchCompletedCount] = COUNT(CASE WHEN te.Name = 'SQL:BatchCompleted' THEN 1 ELSE NULL END)
, [SQLStmtCompletedCount] = COUNT(CASE WHEN te.Name = 'SQL:StmtCompleted' THEN 1 ELSE NULL END)
, [RpcCompletedReads] = SUM(CASE WHEN te.Name = 'RPC:Completed' THEN [Reads] ELSE 0 END)
, [ScanStoppedReads] = SUM(CASE WHEN te.Name = 'Scan:Stopped' THEN [Reads] ELSE 0 END)
, [SPCompletedReads] = SUM(CASE WHEN te.Name = 'SP:Completed' THEN [Reads] ELSE 0 END)
, [SQLBatchCompletedReads] = SUM(CASE WHEN te.Name = 'SQL:BatchCompleted' THEN [Reads] ELSE 0 END)
, [SQLStmtCompletedReads] = SUM(CASE WHEN te.Name = 'SQL:StmtCompleted' THEN [Reads] ELSE 0 END)
, [RpcCompletedDurationMillis] = SUM(CASE WHEN te.Name = 'RPC:Completed' THEN [Duration] ELSE 0 END) / 1000
, [SPCompletedDurationMillis] = SUM(CASE WHEN te.Name = 'SP:Completed' THEN [Duration] ELSE 0 END) / 1000
, [SQLBatchCompletedDurationMillis] = SUM(CASE WHEN te.Name = 'SQL:BatchCompleted' THEN [Duration] ELSE 0 END) / 1000
, [SQLStmtCompletedDurationMillis] = SUM(CASE WHEN te.Name = 'SQL:StmtCompleted' THEN [Duration] ELSE 0 END) / 1000
, [CPU] = SUM(CPU)
, [ReadCount] = SUM(Reads)
, [WriteCount] = SUM(Writes)
FROM [YOUR_TRACE_SCHEMA_NAME].[YOUR_TRACE_TABLE_NAME] AS d -- N.B., Substitute your own values in here
INNER JOIN sys.trace_events AS te
ON te.trace_event_id = d.EventClass
--WHERE d.DatabaseName = 'YOUR_DATABASE_NAME' -- N.B., Substitute your own values in here
WHERE [d].[StartTime] >= '2017-01-10 09:48:00.000'
AND d.[StartTime] < '2017-01-10 09:56:00.000'
GROUP BY RIGHT(N'0' + CAST(DATEPART(hh, StartTime) AS NVARCHAR(2)), 2)
+ N':'
+ RIGHT(N'0' + CAST(DATEPART(n, StartTime) AS NVARCHAR(2)), 2)
+ N':'
+ RIGHT(N'0' + CAST(DATEPART(ss, StartTime) AS NVARCHAR(2)), 2)
, d.DatabaseName
ORDER BY [TimeSlice] ASC
, d.DatabaseName ASC
GO
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment