Dav*_*tts 3 sql-server extended-events sql-server-2014
我创建了一个扩展事件会话来捕获登录和注销信息。会话设置为将事件存储到文件中。我知道使用事件文件(而不是环形缓冲区)的优点之一是事件历史记录将在重新启动时保持不变。但是,当 SQL Server 重新启动并且历史记录丢失时,似乎会创建一个新的事件文件。这是预期的吗?如果是这样,使用文件而不是环形缓冲区的优势是什么?
根据您的问题(以及有关您设置max_rollover_files
为 1 的其他评论:
但是,当 SQL Server 重新启动并且历史记录丢失时,似乎会创建一个新的事件文件。这是预期的吗?
是的 - 这是预期的。 当您重新启动 SQL Server 时,所有当前运行的扩展事件都将终止。当您重新启动 SQL Server 时,一个新的扩展事件会话开始并替换您现有的目标文件,因为您表示您只需要 1 个文件。如果要在服务器重新启动时保留存储在目标文件中的扩展事件数据,则必须将 增加到max_rollover_files
大于 1 的值。
sys.fn_xe_file_target_read_file (path, mdpath, initial_file_name, initial_offset)
如果为initial_file_name指定,则可以读取 mdpath引用的路径中的所有扩展事件文件,因此维护多个文件应该不成问题。null
关于环形缓冲区的使用,看看为什么 Jonathan Kehayias(世界著名的 SQL Server 扩展事件专家)讨厌环形缓冲区。
归档时间: |
|
查看次数: |
614 次 |
最近记录: |