[SSAS] SQL Server Analysis Services トレース採取方法

 

SQL Server Developer Support

藤丸陽子

はじめに

Analysis Services トレースファイルを採取することで、Analysis Services に対して発行されたクエリや処理状況が確認できます。

また、エラーが発生した際の処理状況を確認することで、原因や対処を見つけやすくなります。

そこで、今回は Analysis Services のトレース ファイルを採取する方法をご案内したいと思います。

Analysis Services 2005 以降、Analysis Services 2012 まですべて同じ方法で採取可能ですので是非ご活用下さい。

   

 

手順概要

Analysis Services サーバトレースの使用は、大きく分けて以下の 3 つの作業に分けられます。

 

- 作業 1-1. スクリプト準備

- 作業 1-2. スクリプト実行

- 作業 1-3. スクリプト停止

 

 

作業手順

 

作業 1-1. スクリプト生成

 

以下の手順で、XMLA スクリプトを準備します。

 

(1)  StartDetailedProfilerTrace.xmla を作成します。

 

詳細のイベントを採取するよう設定した、StartDetailedProfilerTrace.xmla は https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-43-18-ASTrace/4186.ASTrace.zip からダウンロードできます。

ダウンロード後、任意のテキストエディタもしくは SQL Server Management から紫の箇所を環境に併せて、適宜変更します。 次の設定は AS_ProfilerTrace として、ログファイルの最大サイズを 255 MB で、ロールオーバーの上、D:\AS_ProfilerTrace.trc トレースを生成します。また、Analysis Services サービスの再起動時も、自動的にトレースが再実行する例となっています。

 

<Batch xmlns="https://schemas.microsoft.com/analysisservices/2003/engine" xmlns:soap="https://schemas.xmlsoap.org/soap/envelope/">    <Create xmlns="https://schemas.microsoft.com/analysisservices/2003/engine">      <ObjectDefinition>        <Trace>          <ID>AS_ProfilerTrace</ID> <Name>AS_ProfilerTrace</Name>          <!-- !!! -->          <!-- !!! -->          <!-- Change the Location of the .trc file to a drive with plenty of space -->          <LogFileName>D:\AS_ProfilerTrace.trc</LogFileName>          <!-- !!! -->          <!-- !!! -->          <!-- !!! -->          <LogFileAppend>1</LogFileAppend>          <LogFileSize>255</LogFileSize> <LogFileRollover>1</LogFileRollover>          <AutoRestart>1</AutoRestart>          <Events>            <Event>              <!-- Command Begin -->              <EventID>15</EventID>              <Columns>                <ColumnID>28</ColumnID>                <ColumnID>32</ColumnID>                <ColumnID>36</ColumnID>                <ColumnID>40</ColumnID>                <ColumnID>44</ColumnID>                <ColumnID>1</ColumnID>                <ColumnID>25</ColumnID>                <ColumnID>33</ColumnID>                <ColumnID>37</ColumnID>                <ColumnID>41</ColumnID>                <ColumnID>45</ColumnID>                <ColumnID>2</ColumnID>                <ColumnID>42</ColumnID>                <ColumnID>3</ColumnID>              </Columns>            </Event>            

~【以下略】~                      

  

 

補足

------

StartDetailedProfilerTrace.xmla を環境に併せて変更する箇所は次の通りです。

下記をそれぞれご利用に 合わせ変更し、保存します。

 

LogFileName

~~~~~~~~~~~

Log ファイルを保存するファイルのフルパスを指定下さい。 なお、指定する際、ファイルの拡張子は .trc と指定します。

例) <LogFileName>D:\AS_ProfilerTrace.trc</LogFileName>

*1 指定するイベントとサーバ で実行される処理量、監視期間によって大量のデータがファイルに出力される可能性があります。

 

LogFileSize

~~~~~~~~~

Log ファイルの最大値を MB 単位にて指定できます。

Log ファイルのサイズが指定したサイズに到達すると Log ファイルはロールオーバします。

例) <LogFileSize>100</LogFileSize>

 

LogFileRollover

~~~~~~~~~~~~

1 を指定した場合はログファイル をロールオーバする指定になります。

例) <LogFileRollover>1</LogFileRollover>

ロールオーバーとは、ファイルサイズが 255 MB に達すると、ファイルの上書きをせず新しくファイルを生成し、そのファイルにログを書き込む動作を意味します。新しく作成したファイル名は、例えば AS_ProfilerTrace1.trc、AS_ProfilerTrace2.trc、AS_ProfilerTrace3.trc などファイル名の末尾に番号がついた名前となります。

AutoRestart

~~~~~~~~~~~

1 を指定した場合は SSAS が再起動した際にもトレースが再実行されます。

例) <AutoRestart>1</AutoRestart>

トレースファイルは、十分余裕のあ るディスクに対して保存ください。

 

 

作業 1-2. スクリプト実行

 

以下の手順でスクリプトを実行しま す。

(1) SQL Server Management Studio を起動し、Analysis Services に接続します。

(2) [ファイル]-[開く]-[ファイル] を選択します。

(3) 作業 1-1 で作成した StartDetailedProfilerTrace.xmla を選択します。

(4) XMLA クエリを実行 します。

 

 

作業 1-3. スクリプト停止

 

(1)  StopProfilerTrace.xmla をサイト https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-43-18-ASTrace/4186.ASTrace.zip

よりダウンロードします。

  

TraceID に指定する値は、トレース StartDetailedProfilerTrace.xmla に指定した <Trace><ID> の値となります。

 

  

<Batch xmlns="https://schemas.microsoft.com/analysisservices/2003/engine" xmlns:soap="https://schemas.xmlsoap.org/soap/envelope/"> <Delete xmlns="https://schemas.microsoft.com/analysisservices/2003/engine" xmlns:soap="https://schemas.xmlsoap.org/soap/envelope/"> <Object> <TraceID>AS_ProfilerTrace</TraceID> </Object> </Delete> </Batch>

 

 

(2)  SQL Server Management Studio を起動し、Analysis Services に接続します。

(3) [ファイル]-[開く]-[ファイル] を選択します。

(4)  StopProfilerTrace.xmla を開きます。

(5) XMLA クエリを実行 し、Analysis Services トレースを停止します。

(6) 生成された .trc ファイルを採取します。

.trc ファイルは、 トレースを開始した、StartDetailedProfilerTrace.xmla  内の <LogFileName> に指定したパスに存在します。

 

採取した .trc ファイルは SQL Server プロファイラツールより確認ができます。

 

Analysis Services トレースファイルを取得することで、エラーが発生した際の処理状況が確認できますので是非ご活用下さい。