Ed *_*per 6 sql-server sql-server-2008-r2 wait-types
我们在其中一台服务器上运行后台任务,该任务轮询sys.dm_exec_requests
长时间运行的查询,并在找到它们时收集诊断信息,包括等待类型。
我在SQLTRACE_FILE_BUFFER
等待中看到了许多查询。这在我看过的任何地方都没有记录 - 我想知道是否有人有关于这种等待类型的更多信息?
顾名思义,将跟踪数据写入磁盘存在延迟;我们在实例上运行了一个服务器端跟踪,该跟踪会写入文件以进行审计和性能监控。
SAN 管理员告诉我我们有可用的 IOPS,所以我认为这不是一个简单的 I/O 问题。我还应该检查什么?
更新
我们禁用了服务器端跟踪并继续看到相同的问题;最新的想法是SQLTRACE_FILE_BUFFER
等待是内存压力的症状(在将跟踪缓冲区写入磁盘时使用了不同的记录等待类型 - SQLTRACE_BUFFER_FLUSH
- 没有出现)。
更新 2
禁用默认跟踪将删除等待。我们仍在调查性能问题的根本原因。
我不相信它在任何地方都有记录(即使在Bob Ward 的 Wait Type Repository - 在任何情况下都是有用的资源),我怀疑你对根本原因是完全正确的。
如果这种等待类型似乎给您带来了严重的性能问题(并且您已经将等待作为原因而不是症状,通过观察临时禁用跟踪时缓解的压力),可能最好的办法是调查跟踪并确保:
对于您的跟踪可能正在收集的大多数内容,最好将您的跟踪转换为使用Extended Events。并不是所有的东西都比 trace 更轻量级,但大部分都是。Microsoft 的 EE 团队发表了关于如何执行此操作的博客,但如果您计划迁移到 SQL Server 2012,您将需要观看Jonathan Kehayias 的博客。