要尋找的類是的Microsoft.SqlServer.Managment.XEvent
。有了這個,你可以看到擴展的事件會話存在以及創建新的會話。
using (SqlConnection conn = new SqlConnection(connString)) {
XEStore store = new XEStore(new SqlStoreConnection(conn));
if (store.Sessions[sessionName] != null) {
Console.WriteLine("dropping existing session");
store.Sessions[sessionName].Drop();
}
Session s = store.CreateSession(sessionName);
s.MaxMemory = 4096;
s.MaxDispatchLatency = 30;
s.EventRetentionMode = Session.EventRetentionModeEnum.AllowMultipleEventLoss;
Event rpc = s.AddEvent("rpc_completed");
rpc.AddAction("username");
rpc.AddAction("database_name");
rpc.AddAction("sql_text");
rpc.PredicateExpression = @"sqlserver.username NOT LIKE '%testuser'";
s.Create();
s.Start();
//s.Stop();
//s.Drop();
}
'sys.dm_xe_sessions'應該返回活動的XEvent會話。 'sys.server_event_sessions'返回所有的XEvent會話,包括那些不活躍的會話。那是你在找什麼? (我不確定你是否在尋找C#或TSQL代碼。) – DMason