web-dev-qa-db-ja.com

DMVクエリからSQL Serverテーブルに結果を取得する

今日、私は解決するように求められた問題のトラブルシューティングを開始し、初めてSSASデータベースでクエリを実行することに気付きました。非常に便利な結果セット(だれがどのアプリケーション/キューブにどのくらいの期間接続していたか)を取得しましたが、私の人生では、そのクエリからデータベーステーブルに結果を取得して追跡する方法を理解できませんデータ。どんな助けでも大歓迎です、そしてあなたが提供できるどんな援助でも前もって感謝します。

これが私が実行しているクエリです:

Select connection_id , connection_user_name ,  
connection_impersonated_user_name , connection_Host_name ,   
connection_Host_application , connection_start_time , 
connection_elapsed_time_ms , connection_last_command_start_time , 
connection_last_command_end_time , connection_last_command_elapsed_time_ms , 
connection_idle_time_ms , connection_bytes_sent , connection_bytes_received , 
connection_data_bytes_received FROM $system.discover_connections 

これにより、現在見たい情報がすべて返されます。

2
Woodford C.

SSASには、テーブルなどはありません。それはすべて多次元のものです。必要なことは、データベースエンジンインスタンスのテーブルに結果を取得することです。

これを行う1つの方法を次に示します。

  1. SSASへのリンクサーバーを作成する 管理SQL Serverデータベースエンジンインスタンス上。 (注:2つのインスタンスが同じボックスにない場合は、 SSASドライバをインストール する必要があります。)
  2. リンクサーバーを介してSSAS DMVを定期的にクエリし、結果をリレーショナルテーブルにダンプするジョブをSQLエージェントで作成します。
2
Jon Seigel

DMVSを介して接続、セッション、およびその他のオブジェクトを追跡する場合、セッションまたは接続の合計バイト数などのデータは無効になると見なされます。

たとえば、間隔が60秒の定期的なSQLジョブの場合、接続が確立され、この接続がデータを取得するいくつかのセッションを作成し、セッションと接続が60秒のウィンドウ時間内に期限切れまたはクローズされた場合、ジョブはデータをキャプチャできず、その後、結果が正しくない場合があります。

DMVSは、実行中のサーバーのRAM=に保存されるデータであり、再起動またはクローズされるまで保持されます。また、DMVSは、履歴ログデータではなく、システムのスナップショットと見なす必要があります。

リソース消費とデータ転送は、DMVSでキャプチャしたテーブルから表示された結果よりも大きくなります。

0
Stavros Koureas