The Extended Events Object Model
The Extended Events engine is a collection of services and objects that enable and manage events and event processing inside of the SQL Server database engine. The Extended Events engine does not provide any of the events or the actions to take when events are fired. The information associated with the events and the objects associated with events lie in the object model shown in Figure 40.1.
The Extended Events objects exist inside of modules called Packages. At the top level, Extended Events organizes its components into nine separate packages, not all of which you can interact with directly. Following are the three packages you're most likely to deal with:
- The Package0 package provides base functionality used by the other packages.
- The sqlos package works with the SQLOS events.
- The sqlserver package works with the rest of SQL Server. In SQL Server 2012 there are actually two different sqlserver packages.
Each of these packages contains several objects. To see the full list of objects within packages, use the following DMV query:
SELECT PackageName = p.name, EventName = o.name, EventDescription = o.description FROM sys.dm_xe_objects o JOIN sys.dm_xe_packages p ON o.package_guid= p.guid ORDER BY p.name, o.object_type
An Event is an interesting point ...