事件文件目标是将完整缓冲区写入磁盘的目标。
下表描述了用于配置事件文件目标的可用选项。
| 选项 | 允许的值 | DESCRIPTION |
|---|---|---|
| 文件名 | 任何最多 260 个字符的字符串。 此值是必需的。 | 文件位置和文件名。 可以使用任何文件扩展名。 |
| 最大文件大小 | 任何 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 位整数。 此值是可选的。 | 在文件系统中保留的最大文件数。 默认值为 5。 |
| 增加 | 任何 32 位整数。 此值是可选的。 | 文件的增量增长,以兆字节(MB)为单位。 如果未指定,则增量的默认值是会话缓冲区大小的两倍。 |
首次创建事件文件目标时,指定的文件名将追加 _0_ 和长整数值。 整数值计算为 1601 年 1 月 1 日与创建文件的日期和时间之间的毫秒数。 后续滚动日志文件也使用此格式。 从检查长整数的值,可以确定最新的文件。 以下示例演示如何在将文件名选项指定为 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)
另请参阅
SQL Server 扩展事件目标
sys.fn_xe_file_target_read_file(Transact-SQL)
CREATE EVENT SESSION (Transact-SQL)
ALTER EVENT SESSION (Transact-SQL)