キューブの生産性は非常に頻繁に低下するため、キューブは頻繁に監視する必要があります(クエリ構築中の速度低下、処理時間の増分)。減少の理由を見つけるには、システムを監視する必要があります。このために、SQLServerプロファイラーを使用します。ただし、Microsoftは、このSQLトレースツールを後続のバージョンで除外することを計画しています。このツールの主な欠点はリソース集約度であり、システムの生産性が大幅に低下する可能性があるため、本番サーバーで慎重に実行する必要があります。
したがって、Extended Eventsは、サーバーシステムの一般的なイベント処理システムです。このシステムは、SQLServerからのデータの相関をサポートします。これによりSQLServerの状態イベントを取得できます。
システムアーキテクチャを以下に示します。
実際、イベント、ターゲット、アクション、タイプ、述語、およびマップを含むパッケージがあります。イベント、ターゲット、アクションを含むセッションはサーバー上で実行されます。ヘルプには明示的な説明が含まれているため、アーキテクチャについては詳しく説明しません。
それでは、SSASに戻りましょう。すべてをより鮮明にするために、問題分析に使用するいくつかのシナリオを考えてみましょう。
最初のシナリオ:キューブ処理分析(多次元キューブ)
データ量は非常に少ないですが、処理中にキューブが非常に長い時間更新されている場合がよくあります。理由を見つけるには、どのクエリまたはどの処理場所が速度低下の原因であるかを理解する必要があります。もちろん、本番環境で処理を実行して何が起こっているかを確認することはできますが、ユーザーがそれを高く評価するかどうかはわかりません。ここで、拡張イベントが役立ちます。セッションを実行して、ファイルへの保存を構成しましょう。
SSMSを開いてSSASに接続してから、管理に切り替えましょう。
それでは、新しいセッションを作成しましょう:
- [全般]タブで、セッションの名前を指定し、テンプレートを読み込みます。
- イベント タブには、問題の分析に役立つイベントが表示されます。このタブには、プロファイラーの古い友達がすべて表示されます。処理分析のために次のイベントを選択しましょう: CommandBegin 、 CommandEnd、 プログラム essReportBegin およびProgressReportEnd、ResourseUsage。
CommandBegin 、 CommandEnd 処理中のコマンド実行の開始と終了が表示されます。
プログラム essReportBegin およびProgressReportEn 各イベントの長さに関する拡張情報を提供し、読み取られたデータ、SQLクエリの実行、長さなどを表示します。
ResourseUsage クエリ、アクションの実行に費やされたリソースの数を示します。
イベントを選択すると、各イベントの構成に切り替えて、表示する必要のあるイベントと非表示にする必要のあるイベントを指定できます(たとえば、プロセスIDを非表示にすることができます)。
- データストレージ タブ。ここでは、イベントをリアルタイムモードで表示するか、ファイルに書き込むかを指定できます。
- event_file –さらに分析するためにイベントをファイルに保存します。最大ファイルサイズと宛先パスを指定します。ファイルサイズが指定したサイズを超えると、新しいファイルが作成されます。また、作成する必要のあるファイルの数(最大数のファイル)を指定できます。
- event_stream –リアルタイムモードでイベントを表示できるようにします。
- ring_buffer –サーバーが実行されている限り、セッションデータをメモリに保存する必要があることを指定します。リロードの場合、データは削除されます。
- 高度な タブを使用すると、特定のセッションのリソース(メモリ、プロセッサ)を構成できます。
最後に、[ OK]をクリックします セッションを取得します。キューブ処理を実行して、イベントによる処理を見てみましょう。ライブデータモードに切り替えます。
次のスクリーンショットの上部に、インスタンスで現在発生しているイベントを確認できます。イベントの詳細は下部に表示されます。イベントの詳細の任意の値は、上部の個別の列として追加できます。イベントの詳細の選択した値を右クリックして、テーブルに表示します。
その結果、次のビューが表示されます。
したがって、拡張イベントを使用すると、リアルタイムモードで処理を分析できます。各オブジェクトの処理にどれだけの時間が費やされ、その上でいくつのリソースが使用されているかを理解できます。これは、結論を出し、弱点を見つけるのに役立ちます。さらに、システムに過負荷をかけたり、生産性を低下させたりすることはありません。
XMLAを介してセッションを作成することもできます。スクリプトはGitHubで取得できます。
セッションの停止と削除は、SSMSとXMLAの両方を介して可能です。
- SSMS経由(ただし、2016年にエラーが発生し、インターフェイスを介してセッションを削除できませんでした)。
- XMLAスクリプト–ここからダウンロードできます。
これは、SSASの拡張イベントに関する記事の最初の部分です。第2部では、キューブでのクエリ生産性分析、トレースファイルの操作、およびPowerBIを介したファイルの分析のシナリオを検討します。
次のブログ投稿もご覧になることをお勧めします:
- Pinal Dave — SQL SERVER –SQLプロファイラーと拡張イベント
- Chris Web —プロファイラー、拡張イベントおよび分析サービス。記事の著者は、プロファイラーは本番サーバーではほとんど使用されていないと述べていますが、サーバーの負荷に関する問題を確認しています。
- Brent Ozar —SQLServer拡張イベント