Eu tenho um pequeno xEvent que está enviando os resultados como .xel para um event_file em G:\XEvents e quero explorar os dados com SSMS. Andei procurando uma solução e encontrei vários posts sobre a leitura do XML criado por ring buffers. Mas não consigo fazê-lo funcionar no meu event_file.
Eu li o post de Jes Schultz Borland Como consultar o XML de destino de eventos estendidos , mas não está funcionando para mim. Não fiz nada significativo com XML e, quando abro o event_file com o word, não parece XML.
Posso exibi-lo usando o SSMS; > Instância > Gerenciamento > Eventos estendidos > Sessões > [MeuEvento] > Pacote > Exibir dados de destino, mas não consigo consultá-los.
Você está trabalhando sob uma falsa suposição, event_files não armazena os dados como XML, é isso que ring_buffer faz.
Existem algumas opções, mas para mim a mais simples é colocar os dados em um banco de dados SQL.
Depois de exibir os dados no SSMS: Instância > Gerenciamento > Eventos estendidos > Sessões > [MeuEvento] > Pacote > Exibir dados de destino
Use o novo item de menu da barra de ferramentas 'eventos estendidos' e exporte para uma tabela no banco de dados SQL.
O banco de dados precisa existir quando você exporta, mas a tabela não. Eu usei um banco de dados chamado xEvent em uma instância de teste/sandbox.
Na barra de ferramentas: Eventos estendidos > Exportar para > Tabela.. > (Conecte-se a 'instância de teste/sandbox' > Banco de dados existente > (Digite qualquer nome que desejar)
Use SQL padrão para consultar.
Referência Visualização avançada de dados de destino de eventos estendidos no SQL Server
Você não acessa esse arquivo diretamente. Em vez disso, você usa a função fn_xe_file_target_read_file(9 para permitir que o SQL Server acesse o arquivo. Essa função retorna uma linha por mesmo com os dados (campos, se desejar) empacotados como XML. Para destruir esse XML, você usa o built-in suporte xquery no SQL Server. Veja um exemplo: