本文討論支持專業人員用來針對 SQL Server Microsoft進行疑難解答的工具群組。
原始產品版本:SQL Server
原始 KB 編號: 944837
什麼是 RML 公用程式?
RML 公用程式是一組診斷工具,可用來針對 SQL Server 中的效能問題進行疑難解答和協助。 您可以將它們視為類似協助醫療技術人員處理 X 光、MRI 和 CT 掃描結果的工具。 RML 公用程式可用來處理和可視化使用者所收集的效能診斷數據。 SQL Server 支援工程師通常會使用這些工具來處理診斷追蹤,同時針對效能問題進行疑難解答。 此外,資料庫開發人員和系統管理員經常會使用 RML 公用程式,從其測試和生產環境分析及改善其 SQL Server 查詢工作負載。 套件中有三個公用程式:ReadTrace、記者和 Ostress。
-
ReadTrace 會接受 使用者建立的擴充事件 追蹤或 SQL 追蹤 追蹤,以診斷 SQL Server 問題或分析工作負載效能。 ReadTrace 會將追蹤匯入使用者所指定 SQL Server 資料庫中的數據表。 將 ReadTrace 視為轉換工具:它會採用二進位
.XEL檔或.TRC檔案,並將其匯入數據表,以便透過 SQL 查詢更輕鬆地分析它們。 ReadTrace 也可以產生重新執行標記語言 (。可供 Ostress 用於工作負載重新執行的 RML) 檔案。 - 記者 是一種報表和視覺效果工具,可連線到 ReadTrace 所建立的用戶資料庫。 記者會針對資料庫執行 SQL 查詢,並顯示原始擴充事件或分析工具追蹤的離線 SSRS 報告摘要。 例如,報表可能會顯示哪些查詢在特定擷取的工作負載中執行的時間最長,而該工作負載使用最多 CPU,以及執行最多讀取的查詢。
-
Ostress 是壓力測試模擬工具。
Ostress.exe使用擴充事件或 SQL Profiler 診斷追蹤作為輸入。 它也可以接受使用者提供的查詢作為輸入。 Ostress 接著會針對用戶選擇的 SQL Server 實例重新執行這些追蹤或查詢。 目標是模擬壓力。 例如,如果您提供類似
select * from table1的 OStress 查詢,您可以指示它同時在 50 個連線上執行查詢 100 次。 除了個別查詢之外,Ostress 也可以使用 ReadTrace 產生的特殊 RML 檔案來執行重新執行。 - OStress 重新執行控制代理程式 (ORCA) 藉由從 RML 檔案重新執行工作負載,協助 Ostress 模擬壓力測試。 您不會直接與 ORCA 互動,但使用 Ostress。
如需每個工具和範例使用方式的完整描述,請參閱 SQL Server RML 公用程式中包含的 RML 說明檔。
注意
RML 公用事業已於 2025 年 10 月棄用。 本產品已不再開發,未來不會有增強或修復。
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 累積更新。
- 更新預存程式或函式。
- 更新或建立索引。
SQL Server RML 公用程式的優點
如果您想要在實際應用程式不切實際或不可能測試時模擬應用程式測試,適用於 SQL Server 的 RML 公用程式很有用。 在測試環境中,可能很難產生存在於生產環境中的相同用戶負載。 您可以使用適用於 SQL Server 的 RML 公用程式,在測試環境中重新執行生產工作負載,並評估任何變更的效能效果。 例如,您可以測試升級至 SQL Server 2008 或 SQL Server Service Pack 的應用程式。 此外,您可以使用適用於 SQL Server 的 RML 公用程式來分析和比較各種重新執行工作負載。 手動執行這類回歸分析很困難。
說明檔包含快速入門主題。 本主題包含一個簡短的練習,讓您熟悉每個 RML 工具。 若要開啟說明檔,請選取 [>
下載位置和版本歷程記錄
您可以在此表格中檢查 RML 公用程式的版本歷程記錄,並從這裡下載工具。
| 版本號碼 | 描述 |
|---|---|
| 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下載中心取得的舊版。 它支援所有發行的 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 下載中心取得的舊版。 它支援所有發行的 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下載中心取得的舊版。 |
| 9.04.0004 | 支援 SQL Server 2014、SQL Server 2012、SQL Server 2008 R2、SQL Server 2008、SQL Server 2005 和 SQL Server 2000 的舊版。 |
| 9.01.0109 | 支援 SQL Server 2008 R2、SQL Server 2008、SQL Server 2005 和 SQL Server 2000 的舊版。 |
| 9.00.0023 | 支援 SQL Server 2005 和 SQL Server 2000 的舊版。 |
| 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。
安裝 資料庫測試助理 之後,您會在
ReadTrace資料夾中找到 RML 工具 (OStress和C:\Program Files (x86)\Microsoft Corporation\Database Experimentation Assistant\Dependencies\X64\) 。
注意
Microsoft提供適用於 SQL Server 的 RML 公用程式。 Microsoft客戶支援服務 (CSS) 不提供套件的支援。 如果您有建議或想要回報錯誤,您可以使用說明檔中「問題與協助」一文中的電子郵件位址(RML Help.docx)。 說明檔隨附於適用於 SQL Server 的 RML 公用程式。
SQL Server RML 公用程式相依性
重要
作為 RML 工具套件一部分提供的應用程式,需要提供數個其他控制件。
記者的相依性
您必須確定報表查看器控制件可在與Reporter.exe相同的資料夾中或全域程式集緩存中取得。 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 的相依性 (選擇性)
在大部分情況下,不會使用 ReadTrace 來處理 CAB/ZIP/RAR 檔案的 Expander。 不過,如果您需要針對特定壓縮檔類型使用這項功能,請確定壓縮和解壓縮控件可在與 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 用戶端 (SNAC)。 它可以在安裝 ODBC 或 OLEDB 驅動程式的系統上使用 Microsoft。
如果您打算分析擴充事件檔案 (*.xel),請確定 系統上已安裝 Visual C++ 2010 可轉散發套件 。
已知問題與修正
| 問題 | 解決方案 |
|---|---|
| ReadTrace 發生「無法連線到指定的伺服器」錯誤。 初始 HRESULT:0x80040154“ 在未安裝 SQL Server 或只安裝 SQL Server 2022 或更新版本的計算機上 | 已修正 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 遇到「錯誤:事件運行時間檢查:在事件順序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 匯入一系列 Xevent 檔案,這些檔案是使用 PSSDIAG/SQLDiag.exe 或 SQL LogScout 等工具來收集的。
-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
使用 ReadTrace 和 Ostress 來產生和重新執行 RML 檔案
產生 。RML 檔案,請使用如下的命令:
ReadTrace -I"D:\RMLReplayTest\ReplayTrace.trc" -o"D:\RMLReplayTest\RML" -S. -dReadTraceTestDb
如需需要擷取哪些事件以建立重新執行追蹤的詳細資訊,請參閱 RML Help.docx。
若要使用 Ostress 重新執行 RML 檔案,請使用類似下列命令:
ostress.exe -S.\sql2022 -E -dAdventureWorks2022 -i"D:\RMLReplayTest\RML\SQL00069.rml" -o"D:\RMLReplayTest\RML\output"
您可以使用 重新執行所有 RML 檔案 *.RML。 例如: -i"D:\RMLReplayTest\RML\*.rml" 。
協力廠商連絡資訊免責聲明
Microsoft 提供協力廠商連絡資訊,以協助您尋找有關此主題的其他資訊。 此連絡資訊可能會變更而不另行通知。 Microsoft 不保證協力廠商連絡資訊的準確性。