重新執行適用於 SQL Server 的 RML) 公用程式 (標記語言

本文討論支持專業人員用來針對 Microsoft SQL Server 進行疑難解答的一組工具。

原始產品版本: SQL S
原始 KB 編號: 944837

簡介

SQL Server 支援小組使用數個內部撰寫的工具來協助處理一般客戶支援案例。 SQL Server 的 RML) 公用程式重新執行標記語言 (是資料庫開發人員和系統管理員可以使用的一個特定工具套件。

其他相關資訊

您可以使用適用於 SQL Server 的 RML 公用程式來執行下列工作:

  • 判斷哪個應用程式、資料庫、SQL Server 登入或查詢使用最大資源。
  • 當您擷取批次的追蹤時,判斷批次的執行計劃是否變更。 此外,您可以使用適用於 SQL Server 的 RML 公用程式來判斷 SQL Server 如何執行這些計劃。
  • 判斷哪些查詢執行速度緩慢。

擷取 SQL Server 實例的追蹤之後,您可以使用 RML Utilities for SQL Server,針對另一個 SQL Server 實例重新執行追蹤檔案。 如果您在重新執行期間也擷取追蹤,您可以使用 RML Utilities for SQL Server 來比較新的追蹤檔案與原始追蹤檔案。 您可以使用這項技術來測試 SQL Server 在套用變更之後的行為。 例如,您可以使用這項技術來測試 SQL Server 在執行下列工作之後的行為:

  • 安裝 SQL Server Service Pack
  • 安裝 SQL Server Hotfix
  • 更新預存程式或函式
  • 更新索引或建立索引

版本歷程記錄

版本號碼 描述
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 Server 的 SQL Nexus 網站取得。
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 這是先前的 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 這是先前支援 2005 和 SQL Server 2000 SQL Server Web 版本。
8.10.0010 這是支援 SQL Server 2000 和 SQL Server 7.0 的初始 Web 版本。

適用於 SQL Server 的目前 RML 公用程式版本會取代任何舊版。 您必須先卸載適用於 SQL Server的任何舊版 RML 公用程式,才能安裝目前的版本。 目前版本的工具套件包含重要的軟體更新、改善的功能 (處理 .trc.xel 檔案) 和報表,以及效能和延展性改善。

取得適用於 SQL Server 的 RML 公用程式

  • 適用於 SQL Server 的 RML 公用程式可從 Microsoft 下載中心下載

  • 安裝 資料庫測試助理 之後,您會在資料夾中找到 RML 工具 (ReadTraceOStress) C:\Program Files (x86)\Microsoft Corporation\Database Experimentation Assistant\Dependencies\X64\

注意事項

Microsoft 會提供 RML 公用程式來 SQL Server 原樣。 Microsoft 客戶支援服務 (CSS) 不提供套件的支援或更新。 如果您有建議或想要回報錯誤,您可以使用說明檔中的「問題與協助」主題中的電子郵件地址, (RML Help.pdf) 。 說明檔案隨附於 RML Utilities for SQL Server。

適用於 SQL Server 的 RML 公用程式優點

如果您想要在不切實際或無法使用實際應用程式進行測試時模擬應用程式測試,適用於 SQL Server 的 RML 公用程式會很有用。 在測試環境中,可能很難產生與實際執行環境中相同的用戶負載。 您可以使用適用於 SQL Server 的 RML 公用程式,在測試環境中重新執行生產工作負載,並評估任何變更的效能效果。 例如,您可以測試升級至 SQL Server 2008 或 SQL Server Service Pack 的應用程式。 此外,您可以使用適用於 SQL Server 的 RML 公用程式來分析及比較各種重新執行工作負載。 否則,這種回歸分析會是您必須手動執行的困難程式。

說明檔包含快速入門主題。 本主題包含一個簡短的練習,可讓您熟悉每個 RML 工具。 若要開啟說明檔案,請選取 [開始]、指向 [所有程式]、指向 [RML Utilities for SQL Server]、指向 [說明],然後選取 [RML 說明]

適用於 SQL Server 的 RML 公用程式中的工具

適用於 SQL Server 的 RML 公用程式包含下列工具:

  • ReadTrace
  • 記者
  • OStress
  • OStress Replay Control Agent (ORCA)

如需每個工具和範例使用方式的完整描述,請參閱 RML Utilities for SQL Server 中包含的 RML 說明檔。

適用於 SQL Server 的 RML 公用程式相依性

重要事項

作為 RML 工具套件一部分提供的應用程式需要提供數個額外的控制件。

報表的相依性

  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 的相依性

請確定壓縮和解壓縮控制件位於與 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 命令行。
報告遇到「無法載入檔案或元件 』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 可轉散發套件

範例

下列範例說明如何使用一些 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 不保證第三方聯繫人信息的正確性。