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

本文讨论支持专业人员用来排查 SQL Server Microsoft问题的工具组。

原始产品版本:SQL Server
原始 KB 数: 944837

简介

SQL Server 支持团队使用多个内部编写的工具来帮助处理典型的客户支持案例。 适用于 SQL Server 的重播标记语言(RML)实用工具是数据库开发人员和系统管理员可以使用的特定工具套件。

详细信息

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

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

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

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

版本历史记录

版本号 说明
09.04.0103 指示可从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)。
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 指示数据库实验助手工具随附的上一个 Web 发布包。 它支持所有已发布版本的 SQL Server。
9.04.0097 指示 SQL Nexus 站点提供支持所有已发布版本的 SQL Server 的当前版本。
9.04.0051 可从支持 SQL Server 2014、SQL Server 2012、SQL Server 2008 R2、SQL Server 2008、SQL Server 2005 和 SQL Server 2000 的 Microsoft下载中心获取以前的 Web 版本。
9.04.0004 以前的 Web 版本支持 SQL Server 2014、SQL Server 2012、SQL Server 2008 R2、SQL Server 2008、SQL Server 2005 和 SQL Server 2000。
9.01.0109 以前的 Web 版本支持 SQL Server 2008 R2、SQL Server 2008、SQL Server 2005 和 SQL Server 2000。
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 实用工具包含帮助文件。

适用于 SQL Server 的 RML 实用工具的优点

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

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

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

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

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

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

适用于 SQL Server 的 RML 实用工具的依赖项

重要

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

记者的依赖项

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

  • Microsoft.ReportViewer.Common.dll
  • Microsoft.ReportViewer.DataVisualization.dll
  • Microsoft.ReportViewer.ProcessingObjectModel.dll
  • Microsoft.ReportViewer.WinForms.dll
  1. 最新版本的 RML 实用工具在应用程序文件夹中包括这些 DLL。

  2. 如果不可用,可以使用以下 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"
    
  3. 必须下载并安装 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 驱动程序。 从版本 09.04.0103 开始,RML 实用工具套件不依赖于 SQL Server Native Client (SNAC)。 它可以在安装的系统上使用 Microsoft ODBC 或 OLEDB 驱动程序。

如果计划分析扩展事件文件(*.xel),请确保 系统上安装了 Visual C++ 2010 Redistributable

已知问题和修补程序

问题 解决方案
ReadTrace 遇到错误“无法连接到指定的服务器。 初始 HRESULT:在未安装 SQL Server 或仅安装 SQL Server 2022 的计算机上0x80040154” 修复了版本 09.04.0103。 解决方法是安装 SQL Server Native Client 或其他版本的 SQL Server。 未注册的 HRESULT 0x80040154 REGDB_E_CLASSNOTREG 类是头文件 winerror.h ,这意味着 COM 组件未注册,因为它可能未安装。 之所以发生这种情况,是因为 SQL Server 2022 未寄送 SQL Server Native Client。
ReadTrace 遇到“ERROR:事件运行时检查:事件序列209494时检测到缺少列 [sp_cache_remove cached_text] 修复了版本 09.04.0102。 解决方法是,可以将跟踪标志 (-T28 -T29) 添加到 ReadTrace 命令行。
记者遇到“无法加载文件或程序集”Reporter,Version=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 Redistributable

示例

以下示例演示如何使用某些 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 针对运行 SQL Server 的服务器提交查询,方法是同时运行 30 个连接,并在每个连接上运行查询 10 次。 对于所有命令行开关,请使用 Ostress.exe /?

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

第三方联系人免责声明

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