-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathXE_CheckSessions.sql
More file actions
72 lines (62 loc) · 1.8 KB
/
XE_CheckSessions.sql
File metadata and controls
72 lines (62 loc) · 1.8 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
/* check session existence */
DECLARE @SessionName VARCHAR(64) = 'BackupThroughput';
SELECT sn.SessionName
, CASE WHEN ISNULL(es.name,'No') = 'No'
THEN 'NO'
ELSE 'YES'
END AS XESessionExists
, CASE WHEN ISNULL(xe.name,'No') = 'No'
THEN 'NO'
ELSE 'YES'
END AS XESessionRunning
FROM (SELECT @SessionName AS SessionName) sn
LEFT OUTER JOIN sys.server_event_sessions es
ON sn.SessionName = es.name
LEFT OUTER JOIN sys.dm_xe_sessions xe
ON es.name = xe.name
;
GO
/* V2 Session Check */
DECLARE @SessionName VARCHAR(128) = NULL --'sp_server_diagnostics session' --NULL for all
;
SELECT ISNULL(ses.name,xse.name) AS SessionName
, CASE
WHEN ISNULL(ses.name,'') = ''
THEN 'Private'
ELSE 'Public'
END AS SessionVisibility
, CASE
WHEN ISNULL(xse.name,'') = ''
THEN 'NO'
ELSE 'YES'
END AS SessionRunning
, CASE
WHEN ISNULL(xse.name,'') = ''
AND ISNULL(ses.name,'') = ''
THEN 'NO'
ELSE 'YES'
END AS IsDeployed
FROM sys.server_event_sessions ses
FULL OUTER JOIN sys.dm_xe_sessions xse
ON xse.name =ses.name
WHERE COALESCE(@SessionName, ses.name, xse.name) = ISNULL(ses.name, xse.name)
ORDER BY ses.event_session_id;
/* explore current sessions */
--see all available "server" sessions that are not hidden
SELECT *
FROM sys.server_event_sessions es;
GO
--hidden / "internal" sessions
SELECT *
FROM sys.dm_xe_sessions xe
WHERE session_source = 'internal';
--note hekaton session, server_diag session, and server security audits
/* ? Security Audits ? */
SELECT sas.event_session_address, xe.name as XEName, sa.name as AuditName,sas.audit_file_path,sas.status_desc
,xe.session_source
FROM sys.server_audits sa
INNER JOIN sys.dm_server_audit_status sas
ON sa.audit_id = sas.audit_id
INNER JOIN sys.dm_xe_sessions xe
ON xe.address = sas.event_session_address;
GO