Bienvenido al primero de una serie de publicaciones de blog sobre Extended Events en SQL Server. En esta publicación, discutiremos cómo acceder y utilizar la metadata asociada con Extended Events.
Extended Events es una característica poderosa en SQL Server que te permite capturar y analizar eventos que ocurren dentro del motor de la base de datos. Al trabajar con Extended Events, es importante entender la metadata asociada con los eventos y sesiones.
Una forma de acceder a la metadata es a través del uso de vistas de catálogo. Las vistas de catálogo proporcionan información sobre los diversos componentes de Extended Events, como sesiones de eventos, eventos, acciones, campos y destinos.
Para comenzar, echemos un vistazo a una consulta simple que revelará las vistas de catálogo disponibles:
SELECT SCHEMA_NAME(o.schema_id) AS SchemaName, o.name
FROM sys.all_objects o
WHERE o.is_ms_shipped = 1
AND o.type = 'V'
AND o.name LIKE '%server_event_ses%';
Al ejecutar esta consulta, verás una lista de vistas de catálogo que siguen un patrón de nombres común, como “server_event_sessions%”. Estas vistas de catálogo contienen la metadata asociada con las sesiones de eventos.
Entre las vistas de catálogo devueltas por la consulta, encontrarás:
sys.server_event_sessions: Lista todas las sesiones de eventos editables y desplegadas.sys.server_event_session_actions: Proporciona una lista de acciones para cada evento en una sesión de eventos.sys.server_event_session_events: Lista cada evento en una sesión de eventos.sys.server_event_session_fields: Contiene columnas personalizables establecidas en eventos y destinos.sys.server_event_session_targets: Lista los destinos de eventos para una sesión de eventos.
Combinar estas vistas de catálogo puede proporcionar información valiosa para consultar datos de la sesión o incluso reconstruir la sesión de eventos si es necesario.
Por ejemplo, si deseas determinar dónde se almacenan los datos de una sesión de eventos, puedes utilizar la vista de catálogo sys.server_event_session_fields. Esta vista contiene las rutas de archivo necesarias para consultar los datos de la sesión si la sesión se ha desplegado en un destino de archivo.
Para recuperar esta información, puedes ejecutar la siguiente consulta:
SELECT ses.name AS SessionName, esf.value AS SessionFileLocation
FROM sys.server_event_session_fields esf
INNER JOIN sys.server_event_sessions ses
ON ses.event_session_id = esf.event_session_id
WHERE esf.name = 'filename';
Trabajar con la metadata de Extended Events puede ser desafiante a veces debido al modelo de atributo de entidad valor utilizado para almacenar la metadata. Sin embargo, al familiarizarte con las vistas de catálogo y experimentar con ellas, puedes obtener una mejor comprensión de cómo trabajar con la metadata de manera efectiva.
Mantente atento a más publicaciones en esta serie, donde profundizaremos en Extended Events y exploraremos conceptos y técnicas adicionales.