重播 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 工具(
ReadTrace
和OStress
)。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
最新版本的 RML 实用工具在应用程序文件夹中包括这些 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"
必须下载并安装 ReporterViewer 修补程序,以允许 ReadTrace 报表中的链接正常工作。 若要下载 ReporterViewer 修补程序,请转到 Microsoft Visual Studio 2010 Service Pack 1 报表查看器(KB2549864)。
扩展器依赖项
请确保压缩和解压缩控件在与 Expander.exe 或 GAC 相同的文件夹中可用。 Expander.exe要求的 DLL 如下所示:
- BRICOLSOFTZipx64.dll
- UnRar64.dll
- XceedZipX64.dll
可以从供应商的相应软件包获取这些 DLL:
https://www.rarlab.com/rar_add.htm - 查找 适用于 Windows 软件开发人员的UnRAR.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.exe 或 SQL 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 不保证第三方联系信息的准确性。