事件类型至逻辑数据组的映射
对于文件和管道事件监视器,事件监视器输出由一个有序的逻辑数据分组序列组成。 不管事件监视器类型如何,输出记录总是包含相同的起始逻辑数据组。 它们为逻辑数据组设置了框架,这些逻辑数据组的存在与否取决于事件监视器记录的事件类型。
对于文件和管道事件监视器,可能会对任何连接生成事件记录,并且事件记录可能会因此以混合顺序出现在流中。 这意味着您可能会收到连接 1 的事务事件,紧接着是连接 2 的连接事件。 但是,属于单个连接或单个事件的记录将按其逻辑顺序显示。 例如,语句记录(语句结尾)总是在事务记录(UOW 结尾)之前,如果有。 同样,死锁事件总是在死锁中涉及的每个连接的死锁连接事件记录之前。 应用程序标识或应用程序句柄(agent_id)可用来将记录与连接相匹配。
通常会对与数据库的每个连接写入连接头事件。 对于 deadlocks with details
事件监视器,仅当发生死锁时才会写入这些事件监视器。 在这种情况下,将仅对死锁参与者(而不是与数据库的所有连接)写入连接头事件。
逻辑数据分组将按以下四个不同级别排序:监视器、序言、内容和结尾。 下面详细描述每个级别,包括对应的事件类型和逻辑数据组。
监视器
将对所有事件监视器生成监视器级别的信息。 它包含事件监视器元数据。
事件类型 | 逻辑数据组 | 可用信息 |
---|---|---|
监视器级别 | event_log_stream_header | 标识事件监视器的版本级别和字节顺序。 应用程序可使用此头来确定是否能够处理 evmon 输出流。 |
序言
在激活事件监视器时将生成序言信息。
事件类型 | 逻辑数据组 | 可用信息 |
---|---|---|
日志头 | event_log_header | 跟踪的特征,如服务器类型和内存布局。 |
数据库头 | event_db_header | 数据库名称、路径和激活时间。 |
事件监视器启动 | event_start | 启动或重新启动监视器的时间。 |
连接头 | event_connheader | 每个当前事件对应一个连接头,包括连接时间和应用程序名称。 仅对连接、语句、事务和死锁事件监视器生成事件连接头。 带有详细信息的死锁事件监视器仅在发生死锁时生成连接头。 |
内容
特定于事件监视器的指定事件类型的信息出现在内容部分。
事件类型 | 逻辑数据组 | 可用信息 |
---|---|---|
语句事件 | 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 语句来监视与锁定相关的事件,例如锁定超时、锁定等待和死锁。
结尾
结尾信息将在数据库释放时(最后一个应用程序断开连接后)生成:
事件类型 | 逻辑数据组 | 可用信息 |
---|---|---|
数据库事件 | event_db | 数据库管理器级别数据。 |
缓冲池事件 | event_bufferpool | 缓冲池级别数据。 |
表空间事件 | event_tablespace | 表空间级别数据。 |
表事件 | event_table | 表级别数据。 |