sp_whoisactive ツールは、
Adam Machanic によって作成された診断ツールで、いくつかの異なる SQL 動的管理ビュー(DMV)からの情報を関連付けます。 したがって、
sp_who や
sp_who2 などの古いツールよりも豊富で詳細な一連の情報を表示できます。 非常に強力であるため、その機能について詳しく説明することは、この記事の範囲を超えています。
sp_whoisactive ツールは SQL ストアド プロシージャであり、実行すると、現在の SQL アクティビティに関する情報を返します。 実行時にプロシージャにパラメータを渡すことにより、結果とその表示を制御できます。
この記事では、
sp_whoisactive を取得して使用する方法について説明します。 このツールは、ePO データベースの問題をトラブル シューティングするときによく使用される情報を収集します。
sp_whoisactive のインストール
注: sp_whoisactive ツールは
Github でホストされ、
GPLv3 でライセンスされています。 インストールするには:
- https://github.com/amachanic/sp_whoisactive/releases からソース コードの ZIP ファイルをダウンロードします。
- ZIP ファイルを一時的な場所に解凍します。
- who_is_active.sql スクリプト ファイルを SQL Management Studio で開きます。
- 使用可能なデータベース のドロップ ボックスで ePO データベースが選択されていることを確認してください。
注: ePO 5.10.x を使用している場合は、個別のイベント データベースではなく、メインの ePO データベースを選択してください。
- 実行 をクリックします。
これで、
sp_whoisactive ストアド プロシージャが ePO データベースにインストールされました。
sp_whoisactive の使用
情報を収集するには、Microsoft SQL Management Studio のクエリ ウィンドウから
sp_whoisactive を実行します。
exec sp_WhoIsActive
上記のコマンドは、デフォルトの設定を使用して手順を実行します。 これらの設定は、現在のアクティビティの概要を提供します。
結果を変更するには、クエリの実行時にパラメーターを渡してデフォルト設定を上書きします。
注: サポートされているすべてのパラメーターの詳細については、この記事の範囲を超えています。 ただし、ほとんどの場合、次のパラメータが最も役立ちます。
EXEC sp_WhoIsActive
@get_plans = 1,
@get_outer_command = 1,
@get_transaction_info = 1
上記の例では、Management Studio ウィンドウに結果が表示されます。
デフォルトでは、
sp_whoisactive は
sql_text などの一部の結果を XML 形式にフォーマットし、対話型にします。 特定の結果をクリックすると、詳細が表示された新しいクエリウィンドウが開きます。 ただし、XML 形式では、結果をファイルに保存すると、結果が読みにくくなります。 テクニカル サポートがファイルを要求した場合、結果をファイルに保存する必要があります。
結果をファイルに保存するには、次の操作を行ってフォーマットを削除し、読みやすくします。
EXEC sp_WhoIsActive
@get_plans = 1,
@get_outer_command = 1,
@get_transaction_info = 1,
@format_output = 0
クエリを実行する前に、クエリ ウィンドウの任意の場所を右クリックし、[結果] / [結果をファイルへ出力] を選択します。 クエリーを実行すると、ファイルを保存する場所を入力するように指示されます。 保存が完了したら、クエリ ウィンドウを右クリックし、[結果] / [結果のグリッド] を選択します。 このアクションにより、環境がデフォルト設定に戻ります。