I continue blogging on extended events. Today, I will discuss about the top level containers (Package) that gives access to one or more smaller items inside of extended Events
Extended Event Packages Definition
In the Extended Events Engine, Packages are registered inside the modules and contain the information about what Extended Events objects the module contains. You can think of packages as containers for metadata information. Packages are the top level containers of metadata for the other objects that exist inside of Extended Events.
Packages do not define a functional boundary of usage in Extended Events. It means that you can take objects from one package and use them with objects from another package as a part of defining your event session. A package can contain any or all of the following objects;
- Events
- Targets
- Actions
- Types
- Predicates
- Maps
If you run the DMV sys.dm_xe_packages , it will show you how to view information about the packages that have been loaded into the Extended Events engine.
SELECT dxp.name AS packagename ,REVERSE(LEFT(REVERSE(olm.name),CHARINDEX('\',REVERSE(olm.name))-1)) AS dllname ,dxp.description AS packageDesc ,[olm].[name] AS [module] ,dxp.module_guid ,dxp.capabilities_desc FROM sys.dm_xe_packages dxp INNER JOIN sys.dm_os_loaded_modules olm ON dxp.module_address = olm.base_address WHERE ([dxp].[capabilities] IS NULL OR [dxp].[capabilities] & 1 = 0) ORDER BY [dxp].[name] ;
Here is the output of the above query
Happy reading!