Monitorar o Analysis Services com Eventos Estendidos do SQL Server

Aplica-se a: SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium

Eventos Estendidos (xEvents) é um sistema de monitoramento de desempenho e rastreamento leve que usa pouquíssimos recursos do sistema, tornando-o uma ferramenta ideal para diagnosticar problemas em servidores de produção e de teste. Ele também é altamente escalonável, configurável e, no SQL Server 2016, mais fácil de usar por meio do novo suporte interno à ferramenta. No SSMS (SQL Server Management Studio), em conexões com instâncias do Analysis Services, você pode configurar, executar e monitorar um rastreamento dinâmico, semelhante ao uso de SQL Server Profiler. A adição de ferramentas melhores deve tornar o xEvents uma substituição mais adequada para o SQL Server Profiler e criar mais simetria na forma de diagnosticar problemas relacionados ao mecanismo de banco de dados e às cargas de trabalho do Analysis Services.

Além de SQL Server Management Studio, você também pode configurar SQL Server Analysis Services sessões de Evento Estendido da maneira antiga, por meio de scripts XMLA, como era compatível com versões anteriores.

Todos os eventos do Analysis Services podem ser captados e destinados a usuários específicos, conforme definido em Eventos Estendidos.

Usar o SSMS para configurar o Analysis Services

Para instâncias tabulares e multidimensionais, o SSMS exibe uma pasta Gerenciamento que contém sessões xEvent iniciadas pelo usuário. Você pode executar várias sessões simultaneamente. No entanto, na implementação atual, a interface do usuário SQL Server Analysis Services Eventos Estendidos não dá suporte à atualização ou repetição de uma sessão existente.

Não há suporte para a pasta Gerenciamento ao usar o SSMS para se conectar a um workspace do Power BI Premium.

ssas_extended_events_ssms_start

Escolher eventos

Caso já saiba os eventos que pretende captar, pesquisá-los é a melhor maneira de adicioná-los para o rastreamento. Caso contrário, os eventos a seguir são usados normalmente para operações de monitoramento:

  • CommandBegin e CommandEnd.

  • QueryBegin, QueryEnde QuerySubcubeVerbose (mostra toda a consulta MDX ou DAX enviada ao servidor), além de ResourceUsage para estatísticas sobre os recursos consumidos pela consulta e sobre a quantidade de linhas retornadas.

  • ProgressReportBegin e ProgressReportEnd (para operações de processamento).

  • AuditLogin e AuditLogout (capta a identidade do usuário sob a qual um aplicativo cliente se conecta ao Analysis Services).

Escolher armazenamento de dados

A sessão pode ser transmitida dinamicamente em uma janela no Management Studio ou ser persistente em um arquivo para análise posterior usando Power Query ou o Excel.

  • event_file armazena os dados da sessão em um arquivo .xel.

  • event_stream habilita a opção Observar dados dinâmicos no Management Studio.

  • ring_buffer armazena os dados da sessão na memória, desde que o servidor esteja em execução. Em uma reinicialização do servidor, os dados da sessão são descartados

Adicionar campos de evento

Não deixe de configurar a sessão para incluir os Campos do Evento de modo que você possa ver facilmente as informações de interesse.

Configurar é uma opção do lado mais distante da caixa de diálogo.

Captura de tela da caixa de diálogo com a opção configurar realçada no lado direito da caixa.

Na configuração, na guia Campos do Evento, escolha TextData para que esse campo seja exibido ao lado do evento, mostrando valores de retorno e incluindo consultas em execução no servidor.

Depois de configurar uma sessão para os eventos desejados e o armazenamento de dados, você pode clicar no botão de script para enviar sua configuração para um dos destinos com suporte, incluindo um arquivo, uma nova consulta no SQL Server Management Studio e a área de transferência.

Atualizar sessões

Quando criar a sessão, não deixe de atualizar a pasta Sessões no Management Studio para ver a sessão que acabou de criar. Caso configure um event_stream, você pode clicar com o botão direito do mouse no nome da sessão e escolher a opção Observar dados dinâmicos para monitorar as atividades do servidor em tempo real.

Script XMLA a ser iniciado

O rastreamento de Eventos Estendidos é habilitado usando um comando de script de objeto de criação XMLA, conforme mostrado abaixo:

<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>  

Onde os seguintes elementos serão definidos pelo usuário, dependendo das necessidades do rastreamento:

trace_id
Define o identificador exclusivo para este rastreamento.

trace_name
O nome especificado para este rastreamento; normalmente uma definição legível do rastreamento. O uso do valor trace_id como o nome é uma prática comum.

AS_event
O evento do Analysis Services a ser exposto. Consulte Eventos de rastreamento do Analysis Services para os nomes dos eventos.

data_filename
O nome do arquivo que contém dados dos eventos. Este nome terá um carimbo de data/hora como sufixo para evitar a substituição de dados se o rastreamento for enviado repetidas vezes.

metadata_filename
O nome do arquivo que contém metadados dos eventos. Este nome terá um carimbo de data/hora como sufixo para evitar a substituição de dados se o rastreamento for enviado repetidas vezes.

Script XMLA para parar

Para interromper o objeto de rastreamento de Eventos Estendidos, exclua esse objeto usando um comando de script de objeto de exclusão XMLA, conforme mostrado abaixo:

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

Onde os seguintes elementos serão definidos pelo usuário, dependendo das necessidades do rastreamento:

trace_id
Define o identificador exclusivo para o rastreamento a ser excluído.

Confira também

SQL Server eventos estendidos