创建写至无格式事件 (UE) 表的事件监视器
如果事件监视数据收集的性能特别重要,那么您可选择让事件监视器将其输出写至无格式事件 (UE) 表。写至 UE 表的大部分数据作为直接插入二进制数据写入,这可以提高收集数据时的 I/O 速度。
对于事件监视器,UE 表优胜于常规表的另一点是,您通常不必在事件监视器创建时考虑不同选项,例如,要使用的缓冲区大小、是阻止还是取消阻止事件监视器或者必须收集的数据类型(逻辑组)。但是,因为大部分所收集数据为二进制格式,所以必须对 UE 表执行后处理以便能检查事件数据。
注: 与 UE 表相关的可用功能如下所示:
- 可使用过程 EVMON_UPGRADE_TABLES 来升级事件监视器在之前发行版中生成的 UE 表。此功能使您能更轻松地保留先前记录的事件监视数据。
- 可将输出写至 UE 表的所有事件监视器也可将输出写至常规表。
- 可使用过程 EVMON_FORMAT_UE_TO_TABLES 的选项 PRUNE_UE_TABLE 从 UE 表中剪除不必要的数据。
开始之前
- 您需要 SQLADM 或 DBADM 权限才能创建写至 UE 表的事件监视器。
- 对无格式事件表使用已优化以提高性能的表空间。创建该表空间时,请记住以下准则:
- 指定尽可能大的页大小 (PAGESIZE),最大 32KB。较大的页大小可确保包含该事件数据的 BLOB 可直接写入表行。如果因为页大小太小而不允许直接插入 BLOB,那么事件监视器的性能可能会下降。数据库管理器会尝试在无格式事件表中直接插入 BLOB 列 event_data,但这并非始终有可能实现。要检查无格式事件表中的行是否直接插入型的行,请使用 ADMIN_IS_INLINED 函数。如果这些行不是直接插入型的行,请使用 ADMIN_EST_INLINE_LENGTH 函数来确定这些行所需的空间量。
- 指定 NO FILE CACHING SYSTEM 选项。
- 在分区数据库环境中,考虑用于存放表空间的分区。如果目标无格式事件表的表空间在某个数据库分区中不存在,那么该目标无格式事件表的数据将加以忽略。此行为允许用户创建只在特定数据库分区中存在的表空间,从而选择要监视的部分数据库分区。
关于此任务
- 工作单元
- 程序包高速缓存
- 锁定
注: 尽管名称不一样,但无格式事件表仍为关系表。锁定事件监视器生成的 UE 表与锁定事件监视器生成的常规表之间的主要差别在于 UE 表中的大部分数据以二进制格式写至
EVENT_DATA 列。有关 UE 表的结构的更多信息,请参阅无格式事件表的列定义。
过程
要创建写至 UE 表的事件监视器,请执行以下操作: