共用方式為


使用 SQL Server 擴充事件監視 Analysis Services

適用於: SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium

擴充事件(xEvents)是羽量級追蹤和效能監視系統,使用很少的系統資源,使其成為診斷生產與測試伺服器上問題的理想工具。 它也可以透過新的內建工具支援,在 SQL Server 2016 中高度擴充、可設定及使用。 在 SQL Server Management Studio (SSMS)中,在與 Analysis Services 實例的連線上,您可以設定、執行及監視即時追蹤,類似於使用 SQL Server Profiler。 新增更好的工具應該讓 xEvent 更合理地取代 SQL Server Profiler,並在診斷資料庫引擎和 Analysis Services 工作負載的問題時建立更對稱。

除了 SQL Server Management Studio,您也可以透過舊版的 XMLA 腳本,設定 SQL Server Analysis Services 擴充事件會話。

所有 Analysis Services 事件都可以擷取並鎖定至特定取用者,如 擴充事件中所定義。

使用 SSMS 設定 Analysis Services

針對表格式和多維度實例,SSMS 會顯示管理資料夾,其中包含使用者起始的 xEvent 會話。 您可以一次執行多個工作階段。 不過,在目前的實作中,SQL Server Analysis Services 擴充事件使用者介面不支援更新或重新執行現有的會話。

使用 SSMS 連線到 Power BI Premium 工作區時,不支援 管理 資料夾。

ssas_extended_events_ssms_start

選擇事件

如果您已經知道要擷取哪些事件,搜尋它們是將事件新增至追蹤的最簡單方式。 否則,下列事件通常用於監視作業:

  • CommandBeginCommandEnd

  • QueryBeginQueryEndQuerySubcubeVerbose (顯示傳送至伺服器的整個 MDX 或 DAX 查詢),再加上 ResourceUsage,以取得查詢所耗用之資源的統計數據,以及傳回多少個數據列。

  • ProgressReportBeginProgressReportEnd (用於處理作業)。

  • AuditLoginAuditLogout (擷取用戶端應用程式連線到 Analysis Services 的使用者身分識別)。

選擇資料記憶體

會話可以即時串流處理至 Management Studio 中的視窗,或保存至檔案,以便使用 Power Query 或 Excel 進行後續分析。

  • event_file 會將會話數據儲存在 .xel 檔案中。

  • event_stream 在 Management Studio 中啟用 Watch Live Data 選項。

  • 只要伺服器正在執行,ring_buffer 會將會話數據儲存在記憶體中。 在伺服器重新啟動時,會話數據會擲回

新增事件欄位

請務必將會話設定為包含事件欄位,以便您可以輕鬆地查看感興趣的資訊。

[設定] 是對話框最遠端的選項。

對話框的螢幕快照,其中已醒目提示方塊右側的 [設定] 選項。

在 [事件欄位] 索引標籤的 [事件欄位] 索引標籤上,選取 [TextData,讓此字段與事件相鄰,顯示傳回值,包括伺服器上執行的查詢。

設定所需事件和數據記憶體的會話之後,您可以按下腳本按鈕,將設定傳送至其中一個支援的目的地,包括檔案、SQL Server Management Studio 中的新查詢和剪貼簿。

重新整理會話

建立會話之後,請務必重新整理 Management Studio 中的 Sessions 資料夾,以查看您剛才建立的會話。 如果您已設定event_stream,則可以以滑鼠右鍵按兩下工作階段名稱,然後選擇 [監看即時資料],以即時監視伺服器活動。

要啟動的 XMLA 腳本

擴充事件追蹤是使用類似的 XMLA create 物件腳本命令來啟用,如下所示:

<Execute ...>  
   <Command>  
      <Batch ...>  
         <Create ...>  
            <ObjectDefinition>  
               <Trace>  
                  <ID>trace_id</ID>  
                  <Name>trace_name</Name>  
                  <ddl300_300:XEvent>  
                     <event_session ...>  
                        <event package="AS" name="AS_event">  
                           <action package="PACKAGE0" .../>  
                        </event>  
                        <target package="PACKAGE0" name="asynchronous_file_target">  
                           <parameter name="filename" value="data_filename.xel"/>  
                           <parameter name="metadatafile" value="metadata_filename.xem"/>  
                        </target>  
                     </event_session>  
                  </ddl300_300:XEvent>  
               </Trace>  
            </ObjectDefinition>  
         </Create>  
      </Batch>  
   </Command>  
   <Properties></Properties>  
</Execute>  

使用者定義下列元素的位置,視追蹤需求而定:

trace_id
定義此追蹤的唯一標識碼。

trace_name
指定給此追蹤的名稱;通常是人類可讀取的追蹤定義。 使用 trace_id 值做為名稱是常見的作法。

AS_event
要公開的 Analysis Services 事件。 如需事件名稱,請參閱 Analysis Services 追蹤事件

data_filename
包含事件數據的檔名。 此名稱會加上時間戳,以避免在追蹤一遍又一次傳送時覆寫數據。

metadata_filename
包含事件元數據的檔名。 此名稱會加上時間戳,以避免在追蹤一遍又一次傳送時覆寫數據。

要停止的 XMLA 腳本

若要停止擴充事件追蹤物件,您需要使用類似的 XMLA delete 物件腳本命令刪除該物件,如下所示:

<Execute xmlns="urn:schemas-microsoft-com:xml-analysis">  
   <Command>  
      <Batch ...>  
         <Delete ...>  
            <Object>  
               <TraceID>trace_id</TraceID>  
            </Object>  
         </Delete>  
      </Batch>  
   </Command>  
   <Properties></Properties>  
</Execute>  
  

使用者定義下列元素的位置,視追蹤需求而定:

trace_id
定義要刪除之追蹤的唯一標識碼。

另請參閱

SQL Server 擴充事件