Skip to content

Commit 4feb7a2

Browse files
committed
Add LinkedServerMonitor XE
1 parent bf5ab00 commit 4feb7a2

File tree

1 file changed

+135
-0
lines changed

1 file changed

+135
-0
lines changed
Lines changed: 135 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,135 @@
1+
/*
2+
https://jasonbrimhall.info/2021/01/02/powerful-monitoring-for-your-linked-servers-with-xevents/
3+
by Jason Brimhall 2021-01-02
4+
*/
5+
6+
/* Create the Event Session */
7+
IF EXISTS
8+
(
9+
SELECT *
10+
FROM sys.server_event_sessions
11+
WHERE name = 'LinkedServerMonitor'
12+
)
13+
DROP EVENT SESSION LinkedServerMonitor ON SERVER;
14+
GO
15+
16+
17+
CREATE EVENT SESSION [LinkedServerMonitor]
18+
ON SERVER
19+
ADD EVENT sqlserver.oledb_data_read
20+
(ACTION
21+
(
22+
package0.callstack
23+
, sqlserver.client_app_name
24+
, sqlserver.database_name
25+
, sqlserver.nt_username
26+
, sqlserver.query_hash
27+
, sqlserver.query_plan_hash
28+
, sqlserver.session_id
29+
, sqlserver.sql_text
30+
, sqlserver.client_hostname
31+
, sqlserver.tsql_stack
32+
, package0.event_sequence
33+
, sqlserver.context_info
34+
, sqlserver.client_connection_id
35+
, sqlserver.username
36+
, sqlserver.database_id
37+
)
38+
)
39+
, ADD EVENT sqlserver.oledb_query_interface
40+
(ACTION
41+
(
42+
package0.callstack
43+
, sqlserver.client_app_name
44+
, sqlserver.database_name
45+
, sqlserver.nt_username
46+
, sqlserver.query_hash
47+
, sqlserver.query_plan_hash
48+
, sqlserver.session_id
49+
, sqlserver.sql_text
50+
, sqlserver.client_hostname
51+
, sqlserver.tsql_stack
52+
, package0.event_sequence
53+
, sqlserver.context_info
54+
, sqlserver.client_connection_id
55+
, sqlserver.username
56+
, sqlserver.database_id
57+
)
58+
)
59+
, ADD EVENT sqlserver.oledb_error
60+
(ACTION
61+
(
62+
package0.callstack
63+
, sqlserver.client_app_name
64+
, sqlserver.database_name
65+
, sqlserver.nt_username
66+
, sqlserver.query_hash
67+
, sqlserver.query_plan_hash
68+
, sqlserver.session_id
69+
, sqlserver.sql_text
70+
, sqlserver.client_hostname
71+
, sqlserver.tsql_stack
72+
, package0.event_sequence
73+
, sqlserver.context_info
74+
, sqlserver.client_connection_id
75+
, sqlserver.username
76+
, sqlserver.database_id
77+
)
78+
)
79+
, ADD EVENT sqlserver.oledb_provider_information
80+
(ACTION
81+
(
82+
package0.callstack
83+
, sqlserver.client_app_name
84+
, sqlserver.database_name
85+
, sqlserver.nt_username
86+
, sqlserver.query_hash
87+
, sqlserver.query_plan_hash
88+
, sqlserver.session_id
89+
, sqlserver.sql_text
90+
, sqlserver.client_hostname
91+
, sqlserver.tsql_stack
92+
, package0.event_sequence
93+
, sqlserver.context_info
94+
, sqlserver.client_connection_id
95+
, sqlserver.username
96+
, sqlserver.database_id
97+
)
98+
)
99+
, ADD EVENT sqlserver.oledb_provider_initialized
100+
(ACTION
101+
(
102+
package0.callstack
103+
, sqlserver.client_app_name
104+
, sqlserver.database_name
105+
, sqlserver.nt_username
106+
, sqlserver.query_hash
107+
, sqlserver.query_plan_hash
108+
, sqlserver.session_id
109+
, sqlserver.sql_text
110+
, sqlserver.client_hostname
111+
, sqlserver.tsql_stack
112+
, package0.event_sequence
113+
, sqlserver.context_info
114+
, sqlserver.client_connection_id
115+
, sqlserver.username
116+
, sqlserver.database_id
117+
)
118+
)
119+
ADD TARGET package0.event_file
120+
(SET filename = N'C:\XE\LinkedServerMonitor', max_file_size = (256), max_rollover_files = (2))
121+
, ADD TARGET package0.histogram
122+
(SET filtering_event_name = N'sqlserver.oledb_data_read'
123+
, slots = (10000) --modify depending on your needs
124+
, source = N'sqlserver.tsql_stack')
125+
WITH
126+
(
127+
MAX_DISPATCH_LATENCY = 5 SECONDS
128+
, TRACK_CAUSALITY = ON
129+
, STARTUP_STATE = ON
130+
);
131+
GO
132+
133+
134+
ALTER EVENT SESSION LinkedServerMonitor ON SERVER STATE = START;
135+
GO

0 commit comments

Comments
 (0)