事件文件目标

事件文件目标是可将完整的缓冲区写入磁盘的目标。

下表描述了配置事件文件目标时可用的选项。

选项

允许的值

说明

filename

任何不超过 260 个字符的字符串。 此值为必需值。

文件位置和文件名。

可以使用任何文件扩展名。

max_file_size

任何 64 位的整数。 此值为可选值。

文件的最大大小 (MB)。 如果未指定 max_file_size,则文件将增长到磁盘变满为止。 默认文件大小为 1GB。

max_file_size 必须大于会话缓冲区的当前大小。 否则,文件目标将无法初始化,并报告 max_file_size 无效。 若要查看缓冲区的当前大小,请查询 sys.dm_xe_sessions 动态管理视图中的 buffer_size 列。

如果默认文件大小小于会话缓冲区大小,则建议将 max_file_size 设置为 sys.server_event_sessions 目录视图的 max_memory 列中所指定的值。

如果将 max_file_size 的大小设置为大于会话缓冲区的大小,则它可能会向下舍入到最近的会话缓冲区大小的倍数。 这样所产生的目标文件的大小可能小于指定值 max_file_size。 例如,如果缓冲区大小为 100MB 并且 max_file_size 设置为 150MB,则会将生成文件的大小舍入到 100MB,因为剩余的 50MB 空间中无法放下第二个缓冲区。

如果默认文件大小小于会话缓冲区大小,则建议将 max_file_size 设置为 sys.server_event_sessions 目录视图的 max_memory 列中指定的值。

max_rollover_files

任何 32 位的整数。 此值为可选值。

文件系统中可保留的最多文件数。

increment

任何 32 位的整数。 此值为可选值。

文件的增量 (MB)。 如果未指定,则增量的默认值为会话缓冲区大小的两倍。

第一次创建事件文件目标时,会在指定的文件名后面附加 _0_ 以及一个长整型值。 该整型值被计算为 1600 年 1 月 1 日与文件的创建时间之间的毫秒数。 后续的回滚文件也将使用此格式。 通过检查该长整型值,可以确定最新的文件。 下面的示例演示了在将 filename 选项指定为 C:\OutputFiles\MyOutput.xel 的方案中如何命名文件:

  • 创建的第一个文件 - C:\OutputFiles\MyOutput_0_128500310259380000.xel

  • 第一个滚动更新文件 - C:\OutputFiles\MyOutput_0_128505831770890000.xel

  • 第二个滚动更新文件 - C:\OutputFiles\MyOutput_0_132410772966237000.xel

将目标添加到会话

若要将事件文件目标添加到扩展事件会话,在创建或更改事件会话时,应包括下面的语句,并将 file_name 替换为所需的文件名和路径:

ADD TARGET package0.event_file(
   SET filename='file_name.xel')

查看目标输出

若要查看文件目标的输出,您必须使用 sys.fn_xe_file_target_read_file 功能。 建议您将数据转换为 XML。 您可以使用下面的语法,并将 file_name 替换为在添加目标时指定的文件名和路径:

SELECT *, CAST(event_data AS XML) AS 'event_data_XML'
FROM sys.fn_xe_file_target_read_file('file_name*.xel', NULL, NULL, NULL)

请参阅

参考

sys.fn_xe_file_target_read_file (Transact-SQL)

CREATE EVENT SESSION (Transact-SQL)

ALTER EVENT SESSION (Transact-SQL)

概念

SQL Server 扩展事件目标