摘要
此改进对 SQLIOSim 实用工具进行了以下增强,并修复了可能由 I/O 处理引起的数据完整性问题。 有关 SQLIOSim 实用工具的更多信息,请参阅 SQLIOSim 实用工具简介。
增强的日志记录
- 添加新的环缓冲区以跟踪错误,以避免由于滚动而替换历史记录环缓冲区中的错误。
- 添加包含“时钟周期计数”和/或“日期和时间”的各种输出,使调试问题更加容易。
- 将输出和卷信息添加到
fsutil错误文件中,以便将文件偏移量映射到物理磁盘上的偏移量并更轻松地筛选 I/O 子系统跟踪。 - 将协调世界时 (UTC) 和本地时间的输出相加。
- 将页头的输出细分为错误文件,如 PageId、Checksum 和 Timestamp。
- 显示环缓冲区的
FILE HISTORY页面列表,以便更轻松地找到环缓冲区条目。 - 在 Sqliosim.log.xml 或 ErrorLog.xslt 视图中显示时间戳、日期时间、逻辑 CPU 和其他列。
- 增加环形缓冲区的大小并降低翻转频率。
- 为常见输出(如 PageId、Checksum 和 Timestamp)提供十六进制和十进制输出。
- 汇报 Sqliosim.log.xml 的布局,以便在文本编辑器中更轻松地读取 XML 文件。
- 可以在使用 Internet Explorer (IE) 模式的 Microsoft Edge 中正确查看经过验证的 Sqliosim.log.xml 和 ErrorLog.xslt 。
页眉时间戳
在写入操作期间将 GetTickCount64 值存储在页头中。 刻度计数对于跟踪页面写入时间和筛选 I/O 子系统跟踪非常有用。
BNR (字节未读取)
I/O 问题导致返回读取操作,就像读取操作成功一样,但实际缓冲区没有更新或读取。 SQLIOSim 实用工具接收到成功的读取,但验证检查失败。
现在,SQLIOSim 实用工具在发出读取之前使用 BNR 模式标记读取缓冲区。 当读取操作成功返回但未能执行实际读取时,验证将继续失败。 但是,读取的字节显示 .指示 I/O 子系统问题的 BNR 模式。
写入-重试
如果 I/O 子系统遇到在直连存储 (DAS) 安装) 中更常见的重置 (,则写操作请求可能无法正确完成。 SQLIOSim 实用工具不保证写入重试功能。 在某些情况下,SQLIOSim 实用工具会尝试读取和验证写入失败的数据。
SQLIOSim 实用工具已得到增强,可以记录写入失败,然后执行写入重试操作。
增强的锁定
VirtualProtect) 活动 (内部锁定机制和页面保护经过优化和增强,以确保 SQLIOSim 实用工具报告的问题不是由 SQLIOSim 实用工具中的逻辑缺陷引起的。
重读
修复了在读取) 重试失败的 LDX (日志模拟时导致读取重试失败的问题。
增强型输出的示例
增强输出的第一个示例包括以下增强功能:
- UTC 时间
- 十六进制和十进制
- 时间戳/刻度计数
- BNR
- 页眉扩展
增强输出的第二个示例包括以下增强功能:
- 环形缓冲区
- UTC 时间
- 页面范围细分
增强输出的第三个示例包括以下增强功能:
- 刻度计数列
- 逻辑 CPU 列
更多信息
此改进包含在 SQL Server 的以下累积更新中:
关于 SQL Server 的累积更新
SQL Server 的每个新累积更新都包含先前内部版本中的所有修补程序和安全修补程序。 我们建议您安装 SQL Server 的最新版本:
参考资料
了解 Microsoft 用于描述软件更新的术语。