次の方法で共有


SQL Server のリプレイ マークアップ言語 (RML) ユーティリティ

この記事では、Microsoft SQL Server のトラブルシューティングにサポート担当者が使用するツールのグループについて説明します。

元の製品バージョン: SQL Server
元の KB 番号: 944837

RML ユーティリティとは

RML ユーティリティは、SQL Server のパフォーマンスの問題をトラブルシューティングして支援するための一連の診断ツールです。 それらは、医療技術者がX線、MRI、CTスキャンの結果を処理するのに役立つツールと似ていると考えることができます。 RML ユーティリティは、ユーザーによって収集されたパフォーマンス診断データを処理および視覚化するために使用されます。 これらのツールは、パフォーマンスの問題のトラブルシューティング中に診断トレースを処理するために SQL Server サポート エンジニアによって一般的に使用されます。 また、RML ユーティリティは、テスト環境と運用環境から SQL Server クエリ ワークロードを分析および改善するために、データベース開発者や管理者によって頻繁に使用されます。 スイートには、ReadTrace、Reporter、Ostress の 3 つのユーティリティがあります。

  • ReadTraceExtended Event トレースまたは SQL トレース SQL Server の問題の診断またはワークロードパフォーマンスの分析にユーザーが作成するトレースを取り込みます。 ReadTrace は、ユーザーによって指定された SQL Server データベース内のテーブルにトレースをインポートします。 ReadTrace は変換ツールと考えてください。バイナリ .XEL または .TRC ファイルを受け取り、テーブルにインポートして、SQL クエリを使用してより簡単に分析できるようにします。 ReadTrace では、再生マークアップ言語 (.ワークロードの再生に Ostress で使用できる RML) ファイル。
  • Reporter は、ReadTrace によって作成されるユーザー データベースに接続するレポートおよび視覚化ツールです。 Reporter は、データベースに対して SQL クエリを実行し、元の拡張イベントまたはプロファイラー トレースのオフライン SSRS レポートの概要を表示します。 たとえば、レポートには、キャプチャされた特定のワークロードで最も長く実行されたクエリ、最も多くの CPU を使用したクエリ、および最も多くの読み取りを実行したクエリが表示される場合があります。
  • Ostress はストレス テスト シミュレーション ツールです。 Ostress.exe は、拡張イベントまたは SQL Profiler 診断トレースを入力として使用します。 また、ユーザーが指定したクエリを入力として受け入れることもできます。 その後、Ostress は、ユーザーが選択した SQL Server インスタンスに対してこれらのトレースまたはクエリを再生します。 目標は、ストレスをシミュレートすることです。 たとえば、 select * from table1のようなクエリを OStress に指定した場合、50 の接続でクエリを 100 回同時に実行するように指示できます。 個々のクエリに加えて、Ostress は ReadTrace によって生成される特別な RML ファイルを使用して再生を実行できます。
  • OStress Replay Control Agent (ORCA) は、Ostress が RML ファイルからワークロードを再生することによってストレス テストをシミュレートするのを支援します。 ORCA と直接やり取りするのではなく、Ostress を使用します。

すべてのツールとサンプルの使用方法の詳細については、SQL Server の RML ユーティリティに含まれている RML ヘルプ ファイルを参照してください。

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 ツールについて理解を深める簡単な演習が含まれています。 ヘルプ ファイルを開くには、 Start>すべてのプログラム>RML Utilities for SQL Server>Help>RML Help を選択します。

ダウンロード場所とバージョン履歴

この表の RML Utilities のバージョン履歴を確認し、ここからツールをダウンロードできます。

バージョン番号 説明
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 Database Experimentation Assistant ツールに含まれている以前の Web リリース パッケージを示します。 リリースされたすべてのバージョンの SQL Server がサポートされます。
9.04.0097 リリースされたすべてのバージョンの SQL Server をサポートする SQL Nexus サイトから入手できる以前のリリース。
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 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 Utilities の以前のバージョンをアンインストールする必要があります。 ツール スイートの現在のバージョンには、重要なソフトウェア更新プログラム、改善された機能 (プロセス .trc および .xel ファイル) とレポート、およびパフォーマンスとスケーラビリティの向上が含まれています。

SQL Server の RML ユーティリティを取得する

Note

Microsoft では、SQL Server 用の RML ユーティリティをそのまま提供しています。 Microsoft カスタマー サポート サービス (CSS) では、スイートのサポートは提供されていません。 提案がある場合、またはバグを報告する場合は、ヘルプ ファイル (RML Help.docx) の「問題と支援」の記事の電子メール アドレスを使用できます。 ヘルプ ファイルは、SQL Server の RML ユーティリティに含まれています。

SQL Server の RML ユーティリティの依存関係

重要

RML ツール スイートの一部として提供されるアプリケーションでは、他のいくつかのコントロールを使用できるようにする必要があります。

Reporter の依存関係

レポート ビューアー コントロールが、 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. ReadTrace レポート内のリンクを正常に動作させるには、ReporterViewer 修正プログラムをダウンロードしてインストールする必要があります。 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 は、ベンダーの各ソフトウェア パッケージから取得できます。

ReadTrace と Ostress の依存関係

ReadTrace と Ostress は、 SQL Server Native Client の一部として提供される ODBC ドライバーと OLEDB ドライバーを使用します。 バージョン 09.04.0103 以降では RML Utilities スイートは SQL Server Native Client (SNAC) のみに依存しません。 インストールされているシステムで Microsoft ODBC または OLEDB ドライバーを使用できます。

拡張イベント ファイル (*.xel) を分析する場合は、 Visual C++ 2010 再頒布可能パッケージ がシステムにインストールされていることを確認します。

既知の問題と修正

問題 解決策
ReadTrace でエラー "指定されたサーバーに接続できません。 SQL Server がインストールされていないか、SQL Server 2022 のみがインストールされているマシンでの初期 HRESULT: 0x80040154" バージョン 09.04.0103 で修正されました。 回避策として、SQL Server Native Client または別のバージョンの SQL Server をインストールできます。 HRESULT 0x80040154 REGDB_E_CLASSNOTREG クラスが登録されていないのは、ヘッダー ファイル winerror.h COM コンポーネントが登録されていないことを意味します。これは、COM コンポーネントがインストールされていない可能性があるためです。 これは、SQL Server 2022 が SQL Server Native Client を出荷していないために発生します。
ReadTrace で"ERROR: Event runtime check: Detected missing column [cached_text] in event [sp_cache_remove] at event sequence 209494" が検出されました バージョン 09.04.0102 で修正されました。 回避策として、ReadTrace コマンド ラインにトレース フラグ (-T28 -T29) を追加できます。
Reporter は、"ファイルまたはアセンブリ 'Reporter, Version=9.4.10000.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' またはその依存関係の 1 つを読み込めませんでした。 厳密な名前の検証に失敗しました。 (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' またはその依存関係の 1 つを読み込めませんでした。 指定されたモジュールが見つかりませんでした"。 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

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")。

サードパーティのお問い合わせ窓口に関する免責事項

サードパーティのお問い合わせ窓口に関する情報は、ユーザーの便宜のために提供されているものであり、 この連絡先情報は、予告なしに変更される可能性があります。 マイクロソフトは、掲載されている情報に対して、いかなる責任も負わないものとします。

その他のリソース

オンプレミスとハイブリッドの SQL Server シナリオのトラブルシューティングと診断ツール