事件类型至逻辑数据组的映射

对于文件和管道事件监视器,事件监视器输出由一个有序的逻辑数据分组序列组成。 不管事件监视器类型如何,输出记录总是包含相同的起始逻辑数据组。 它们为逻辑数据组设置了框架,这些逻辑数据组的存在与否取决于事件监视器记录的事件类型。

对于文件和管道事件监视器,可能会对任何连接生成事件记录,并且事件记录可能会因此以混合顺序出现在流中。 这意味着您可能会收到连接 1 的事务事件,紧接着是连接 2 的连接事件。 但是,属于单个连接或单个事件的记录将按其逻辑顺序显示。 例如,语句记录(语句结尾)总是在事务记录(UOW 结尾)之前,如果有。 同样,死锁事件总是在死锁中涉及的每个连接的死锁连接事件记录之前。 应用程序标识应用程序句柄(agent_id)可用来将记录与连接相匹配。

通常会对与数据库的每个连接写入连接头事件。 对于 deadlocks with details 事件监视器,仅当发生死锁时才会写入这些事件监视器。 在这种情况下,将仅对死锁参与者(而不是与数据库的所有连接)写入连接头事件。

逻辑数据分组将按以下四个不同级别排序:监视器、序言、内容和结尾。 下面详细描述每个级别,包括对应的事件类型和逻辑数据组。

监视器

将对所有事件监视器生成监视器级别的信息。 它包含事件监视器元数据。
表 1. 事件监视器数据流:监视器部分
事件类型 逻辑数据组 可用信息
监视器级别 event_log_stream_header 标识事件监视器的版本级别和字节顺序。 应用程序可使用此头来确定是否能够处理 evmon 输出流。

序言

在激活事件监视器时将生成序言信息。
表 2. 事件监视器数据流:序言部分
事件类型 逻辑数据组 可用信息
日志头 event_log_header 跟踪的特征,如服务器类型和内存布局。
数据库头 event_db_header 数据库名称、路径和激活时间。
事件监视器启动 event_start 启动或重新启动监视器的时间。
连接头 event_connheader 每个当前事件对应一个连接头,包括连接时间和应用程序名称。 仅对连接、语句、事务和死锁事件监视器生成事件连接头。 带有详细信息的死锁事件监视器仅在发生死锁时生成连接头。

内容

特定于事件监视器的指定事件类型的信息出现在内容部分。

表 3. 事件监视器数据流:内容部分
事件类型 逻辑数据组 可用信息
语句事件 event_stmt 语句级别数据,包括动态语句的文本。 语句事件监视器不记录访存。
子节事件 event_subsection 子节级别数据。
事务事件1 event_xact 事务级别数据。
连接事件 event_conn 连接级别数据。
死锁事件 event_deadlock 死锁级别数据。
死锁的连接事件 event_dlconn 死锁涉及的每个连接对应一个死锁的连接事件,包括涉及的应用程序和处于争用状态的锁定。
带有详细信息的死锁的连接事件 event_detailed_dlconn,lock 死锁涉及的每个连接对应一个带有详细信息的死锁的连接事件,包括涉及的应用程序、处于争用状态的锁定、当前语句信息和应用程序争用挂起的其他锁定。
溢出 event_overflow 丢失的记录的个数 - 在写程序不能与(非分块)事件监视器保持一致时生成。
带有详细信息的死锁的历史纪录2 event_stmt_history 列示死锁涉及的任何工作单元中执行的语句列表。
带有详细信息的死锁的历史记录值2 event_data_value event_stmt_history 列表中的语句的参数标记。
活动 event_activity 系统上已完成执行的或在完成前捕获的活动列表。
event_activitystmt 活动类型为语句时,有关活动正在执行的语句的信息。
event_activityvals 用作每个 SQL 语句活动的输入变量的数据值。 这些数据值不包括 LOB 数据、长数据或结构化类型数据。
统计信息 event_scstats 从在系统中每个服务类、工作类或工作负载内执行的活动计算出来的统计信息,以及从阈值队列计算出来的统计信息。
event_wcstats
event_wlstats
event_qstats
event_histogrambin
阈值违例 event_thresholdviolations 标识阈值违例及违例时间的信息。
1
建议不要使用此选项。 建议不要再使用此选项,并且在将来的发行版中可能会将其移除。 请使用 CREATE EVENT MONITOR FOR UNIT OF WORK 语句来监视事务事件。
2
建议不要使用此选项。 建议不要再使用此选项,并且在将来的发行版中可能会将其移除。 请使用 CREATE EVENT MONITOR FOR LOCKING 语句来监视与锁定相关的事件,例如锁定超时、锁定等待和死锁。

结尾

结尾信息将在数据库释放时(最后一个应用程序断开连接后)生成:

表 4. 事件监视器数据流:结尾部分
事件类型 逻辑数据组 可用信息
数据库事件 event_db 数据库管理器级别数据。
缓冲池事件 event_bufferpool 缓冲池级别数据。
表空间事件 event_tablespace 表空间级别数据。
表事件 event_table 表级别数据。