重播标记语言 (RML) 实用工具SQL Server

本文介绍支持专业人员用来对 Microsoft SQL Server进行故障排除的一组工具。

原始产品版本:SQL Server
原始 KB 编号: 944837

简介

SQL Server支持团队使用多个内部编写的工具来帮助处理典型的客户支持案例。 replay Markup Language (RML) Utilities for SQL Server 是数据库开发人员和系统管理员可以使用的特定工具套件。

更多信息

可以使用 RML 实用工具SQL Server来执行以下任务:

  • 确定哪个应用程序、数据库、SQL Server登录名或查询使用最大资源。
  • 确定捕获批处理的跟踪时,是否更改了批处理的执行计划。 此外,可以使用 RML 实用工具SQL Server来确定SQL Server如何运行这些计划。
  • 确定哪些查询运行缓慢。

捕获SQL Server实例的跟踪后,可以使用 RML Utilities for SQL Server 针对另一个 SQL Server 实例重播跟踪文件。 如果在重播期间还捕获跟踪,则可以使用 RML 实用工具SQL Server将新的跟踪文件与原始跟踪文件进行比较。 可以使用此方法测试SQL Server在应用更改后的行为方式。 例如,可以使用此方法测试执行以下任务后SQL Server的行为方式:

  • 安装 SQL Server Service Pack
  • 安装SQL Server修补程序
  • 更新存储过程或函数
  • 更新索引或创建索引

版本历史记录

版本号 说明
09.04.0102 指示 Microsoft 下载中心提供的当前 Web 版本。 它支持SQL Server (SQL Server 2022、SQL Server 2019、SQL Server 2017、SQL Server 2016、SQL Server 2014、SQL Server 2012、SQL Server 2008 R2 和SQL Server 2008) 。
9.04.0100 Microsoft 下载中心提供的上一个 Web 版本。 它支持SQL Server (SQL Server 2019、SQL Server 2017、SQL Server 2016、SQL Server 2014、SQL Server 2012、SQL Server 2008 R2 SQL Server 2008 的所有已发布版本,SQL Server 2005 和 SQL Server 2000) 。
9.04.0098 指示数据库实验助手工具附带的当前发布包。 它支持所有已发布版本的 SQL Server。
9.04.0097 指示 SQL Nexus 站点中支持所有已发布版本的SQL Server的当前版本。
9.04.0051 Microsoft 下载中心提供的上一个 Web 版本,支持 SQL Server 2014、SQL Server 2012、SQL Server 2008 R2、SQL Server 2008、SQL Server 2005 和 SQL Server 2000。
9.04.0004 以前支持 SQL Server 2014、SQL Server 2012、SQL Server 2008 R2、SQL Server 2008、SQL Server 2005 和 SQL Server 2000 的 Web 版本。
9.01.0109 以前支持 SQL Server 2008 R2、SQL Server 2008、SQL Server 2005 和 SQL Server 2000 的 Web 版本。
9.00.0023 以前支持 SQL Server 2005 和 SQL Server 2000 的 Web 版本。
8.10.0010 支持 SQL Server 2000 和 SQL Server 7.0 的初始 Web 版本。

SQL Server的 RML 实用工具的当前版本取代了任何早期版本。 安装当前版本之前,必须卸载适用于 SQL Server 的任何早期版本的 RML 实用工具。 该工具套件的当前版本包含重要的软件更新、改进的功能 (处理 .trc.xel 文件) 和报表,以及性能和可伸缩性改进。

获取用于SQL Server的 RML 实用工具

  • 可从 Microsoft 下载中心下载适用于SQL Server的 RML 实用工具。

  • 安装数据库实验助手后,你将在 文件夹中找到 RML 工具 (ReadTraceOStress) C:\Program Files (x86)\Microsoft Corporation\Database Experimentation Assistant\Dependencies\X64\

注意

Microsoft 按原样为SQL Server提供 RML 实用工具。 Microsoft 客户支持服务 (CSS) 不提供套件支持或更新。 如果你有建议或想要报告 bug,可以使用帮助文件中“问题和帮助”主题中的电子邮件地址 (RML Help.pdf) 。 用于SQL Server的 RML 实用工具附带了帮助文件。

RML 实用工具SQL Server的优势

如果想要模拟应用程序测试不切实际或无法使用实际应用程序进行测试时,适用于SQL Server的 RML 实用工具非常有用。 在测试环境中,可能很难生成生产环境中存在的相同用户负载。 可以使用 RML 实用工具SQL Server在测试环境中重播生产工作负荷,并评估任何更改的性能影响。 例如,可以测试升级到 SQL Server 2008 或SQL Server Service Pack 的应用程序。 此外,可以使用用于SQL Server的 RML 实用工具来分析和比较各种重播工作负载。 否则,这种回归分析将是一个困难的过程,你必须手动执行。

帮助文件包含快速入门主题。 本主题包含一个简短的练习,可让你熟悉每个 RML 工具。 若要打开帮助文件,请选择“开始”,指向“所有程序”,指向“用于SQL Server的 RML 实用工具”,指向“帮助”,然后选择“RML 帮助”。

用于SQL Server的 RML 实用工具中的工具

用于SQL Server的 RML 实用工具包含以下工具:

  • ReadTrace
  • 记者
  • OStress
  • OStress 重播控制代理 (ORCA)

有关每个工具和示例用法的完整说明,请参阅 RML 实用工具中用于SQL Server的 RML 帮助文件。

SQL Server RML 实用工具的依赖项

重要

作为 RML 工具套件的一部分提供的应用程序需要提供多个附加控件。

Reporter 的依赖项

  1. 必须确保报表查看器控件在 与Reporter.exe 相同的文件夹中或全局程序集缓存 (GAC) 中可用。 Reporter.exe 所需的 DLL 包括:

    • Microsoft.ReportViewer.Common.dll
    • Microsoft.ReportViewer.DataVisualization.dll
    • Microsoft.ReportViewer.ProcessingObjectModel.dll
    • Microsoft.ReportViewer.WinForms.dll

    可以使用以下 PowerShell 脚本下载这些 DLL:

    Register-PackageSource -Name MyNuGet -Location https://www.nuget.org/api/v2 -ProviderName NuGet
    Get-PackageSource
    
    Find-Package Microsoft.ReportViewer.Common -AllVersions
    Install-Package Microsoft.ReportViewer.Common -RequiredVersion 10.0.40219.1
    
    Copy-Item -Path "C:\Program Files\PackageManagement\NuGet\Packages\Microsoft.ReportViewer.Common.10.0.40219.1\lib\Microsoft.ReportViewer.Common.dll" -Destination "C:\Program Files\Microsoft Corporation\RMLUtils"
    Copy-Item -Path "C:\Program Files\PackageManagement\NuGet\Packages\Microsoft.ReportViewer.Common.10.0.40219.1\lib\Microsoft.ReportViewer.DataVisualization.dll" -Destination "C:\Program Files\Microsoft Corporation\RMLUtils"
    Copy-Item -Path "C:\Program Files\PackageManagement\NuGet\Packages\Microsoft.ReportViewer.Common.10.0.40219.1\lib\Microsoft.ReportViewer.ProcessingObjectModel.dll" -Destination "C:\Program Files\Microsoft Corporation\RMLUtils"
    
    Find-Package Microsoft.ReportViewer.WinForms -AllVersions
    Install-Package Microsoft.ReportViewer.WinForms -RequiredVersion 10.0.40219.1
    
    Copy-Item -Path "C:\Program Files\PackageManagement\NuGet\Packages\Microsoft.ReportViewer.WinForms.10.0.40219.1\lib\Microsoft.ReportViewer.WinForms.dll" -Destination "C:\Program Files\Microsoft Corporation\RMLUtils"
    
  2. 必须下载并安装 ReporterViewer 修补程序,才能使 ReadTrace 报表中的链接正常工作。 若要下载 ReporterViewer 修补程序,请转到 Microsoft Visual Studio 2010 Service Pack 1 报表查看器 (KB2549864)

扩展器依赖项

确保压缩和解压缩控件在 Expander.exe 或 GAC 中可用。 Expander.exe 所需的 DLL 如下所示:

  • BRICOLSOFTZipx64.dll
  • UnRar64.dll
  • XceedZipX64.dll

可以从供应商的相应软件包获取这些 DLL:

ReadTrace 和 Ostress 的依赖项

ReadTrace 和 Ostress 使用作为SQL Server Native Client一部分提供的 ODBC 和 OLEDB 驱动程序。 如果计划 (*.xel) 分析扩展事件文件,请确保系统上已安装 Visual C++ 2010 可再发行组件

已知问题和修复

问题 解决方案
ReadTrace 遇到“错误:事件运行时检查:在事件序列209494的事件 [sp_cache_remove] 中检测到缺少列 [cached_text] ” 在版本 09.04.0102 中修复。 解决方法是将跟踪标志 (-T28 -T29) 添加到 ReadTrace 命令行。
记者遇到“无法加载文件或程序集'报告者,版本=9.4.10000.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35'或其依赖项之一。 强名称验证失败。 (HRESULT 的异常:0x8013141A) ” 在版本 09.04.0102 中修复。 解决方法是,可以创建以下注册表项来替代强名称验证: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\StrongName\Verification\Reporter,31BF3856AD364E35
ReadTrace 失败并出现错误“无法连接到指定的服务器。 初始 HRESULT: 0x80040154”。 Ostress 失败并出现错误“尝试建立连接失败。 SSL 安全错误。”。 请参阅安装SQL Server Native Client的说明。
遇到 ReadTrace“未经处理的异常:System.IO.FileNotFoundException:无法加载文件或程序集”Microsoft.SqlServer.XEvent.Linq.dll“或其依赖项之一的异常。 找不到指定的模块”。 安装 Visual C++ 2010 可再发行组件

示例

以下示例演示如何使用某些 RML 工具。

使用 ReadTrace.exe 在数据库中导入 Xevent 数据

使用 ReadTrace.exe 导入通过使用 PSSDIAG/SQLDiag.exeSQL LogScout 等工具收集的一系列 Xevent 文件。 -I如果存在多个文件,请使用 参数指向及时收集的第一个 .xel 文件。 对于所有命令行开关,请使用 ReadTrace.exe /?

ReadTrace.exe -Iserver_instance_20220211T1319480819_xevent_LogScout_target_0_132890707717540000.xel -oc:\temp\output -f -dPerfAnalysisDb -S.

使用 Ostress.exe 对查询进行压力测试

使用 OStress 通过同时运行 30 个连接并在每个连接上运行 10 次查询,针对运行 SQL Server 的服务器提交查询。 对于所有命令行开关,请使用 Ostress.exe /?

ostress.exe -E -dmaster -Q"select name from sys.databases" -n30 -r10

第三方联系人免责声明

Microsoft 提供第三方联系信息,帮助你查找有关本主题的其他信息。 该联系信息如有更改,恕不另行通知。 Microsoft 不保证第三方联系信息的准确性。