sys.fn_xe_file_target_read_file (Transact-SQL)
Aplica-se a: SQL Server Banco de Dados SQL do Azure Instância Gerenciada de SQL do Azure
Lê arquivos criados pelo destino de arquivo assíncrono de Eventos Estendidos. É retornado um evento, em formato XML, por linha.
O destino de Eventos Estendidos event_file
armazena os dados recebidos em um formato binário que não é legível por humanos. Leia o .xel
conteúdo do arquivo com a sys.fn_xe_file_target_read_file
função. Esses arquivos também podem ser lidos no Management Studio. Para obter um passo a passo, consulte Guia de início rápido: eventos estendidos.
Convenções de sintaxe de Transact-SQL
Sintaxe
sys.fn_xe_file_target_read_file ( path , mdpath , initial_file_name , initial_offset )
Argumentos
caminho
O caminho para os arquivos a serem lidos. path pode conter curingas e incluir o nome de um arquivo. path é nvarchar(260) sem padrão. No contexto do Banco de Dados SQL do Azure, esse valor é uma URL HTTP para um arquivo no Armazenamento do Azure.
mdpath
O caminho para o arquivo de metadados que corresponde ao arquivo ou arquivos especificados pelo argumento path . mdpath é nvarchar(260) sem padrão.
No SQL Server 2012 (11.x) e versões posteriores, você não precisa desse parâmetro. Ele foi mantido para compatibilidade com versões anteriores, para arquivos de log gerados em versões anteriores do SQL Server. No SQL Server 2016 (13.x) e versões posteriores, esse parâmetro pode ser fornecido como NULL
, pois .xem
os arquivos não são mais usados.
initial_file_name
O primeiro arquivo a ser lido do caminho. initial_file_name é nvarchar(260) sem padrão. Se NULL
for especificado como o argumento, todos os arquivos encontrados no caminho serão lidos.
Observação
initial_file_name e initial_offset são argumentos emparelhados. Se você especificar um valor para qualquer um dos argumentos, deverá especificar um valor para o outro argumento.
initial_offset
Usado para especificar o último deslocamento lido anteriormente e o ignora todos os eventos até o deslocamento (inclusive). A enumeração de evento é iniciada após o deslocamento especificado. initial_offset é bigint. Se NULL
for especificado como o argumento, todo o arquivo será lido.
Tabela retornada
Nome da coluna | Tipo de dados | Descrição |
---|---|---|
module_guid |
uniqueidentifier | O módulo de evento GUID. Não permite valor nulo. |
package_guid |
uniqueidentifier | O pacote de evento GUID. Não permite valor nulo. |
object_name |
nvarchar(256) | O nome do evento. Não permite valor nulo. |
event_data |
nvarchar(max) | Os conteúdos de evento no formato XML. Não permite valor nulo. |
file_name |
nvarchar(260) | O nome do arquivo que contém o evento. Não permite valor nulo. |
file_offset |
bigint | O deslocamento do bloco no arquivo que contém o evento. Não permite valor nulo. |
timestamp_utc |
Datetime2 (7) | A data e a hora (fuso horário UTC) do evento. Não permite valor nulo. Aplica-se a: SQL Server 2017 (14.x) e versões posteriores e Banco de Dados SQL do Azure. |
Comentários
A leitura de grandes conjuntos de resultados executando sys.fn_xe_file_target_read_file
no Management Studio pode resultar em um erro. Use o modo Resultados para Arquivo (no SQL Server Management Studio, Ctrl+Shift+F) para exportar grandes conjuntos de resultados para um arquivo legível, para ler o arquivo com outra ferramenta.
O SQL Server 2008 (10.0.x) e o SQL Server 2008 R2 (10.50.x) aceitam resultados de rastreamento gerados nos formatos XEL e XEM. Os Eventos Estendidos do SQL Server 2012 (11.x) dão suporte apenas a resultados de rastreamento no formato XEL. Recomendamos que você use o Management Studio para ler os resultados do rastreamento no formato XEL.
SQL do Azure
Na Instância Gerenciada de SQL do Azure ou no Banco de Dados SQL do Azure, armazene .xel
arquivos no Armazenamento de Blobs do Azure. Você pode usar sys.fn_xe_file_target_read_file
para ler em sessões de evento estendidas que você mesmo cria e armazena em Armazenamento de Blobs do Azure. Por exemplo, passo a passo, examine Criar uma sessão de evento com um destino event_file no Armazenamento do Azure.
Se você especificar um curinga e/ou um caminho para um sistema de arquivos local, receberá uma mensagem de erro semelhante a:
Msg 40538, Level 16, State 3, Line 15
A valid URL beginning with 'https://' is required as value for any filepath specified.
Permissões
No SQL Server 2019 (15.x) e versões anteriores, requer VIEW SERVER STATE
permissão no servidor.
No SQL Server 2022 (16.x) e versões posteriores, requer VIEW SERVER PERFORMANCE STATE
permissão no servidor.
Exemplos
R. Recuperar dados de destinos de arquivo
Para o SQL Server 2014 (12.x) e versões anteriores, o exemplo a seguir obtém todas as linhas de todos os arquivos, incluindo o arquivo e .xem
..xel
Neste exemplo, os destinos de arquivo e os metarquivos estão localizados na pasta de rastreamento na C:\traces\
pasta.
SELECT *
FROM sys.fn_xe_file_target_read_file('C:\traces\*.xel', 'C:\traces\metafile.xem', NULL, NULL);
No SQL Server 2016 (13.x) e versões posteriores, o exemplo a seguir recupera eventos dentro de todos os .xel
arquivos na pasta padrão. O local padrão está \MSSQL\Log
dentro da pasta de instalação da instância.
SELECT *
FROM sys.fn_xe_file_target_read_file('*.xel', NULL, NULL, NULL);
No SQL Server 2017 (14.x) e versões posteriores, o exemplo a seguir recupera apenas dados do último dia, da sessão interna system_health. A sessão system_health é uma sessão de eventos estendidos, incluída, por padrão, com o SQL Server. Para obter mais informações, veja Usar a sessão system_health.
SELECT *
FROM sys.fn_xe_file_target_read_file('system_health*.xel', NULL, NULL, NULL)
WHERE CAST(timestamp_utc AS DATETIME2(7)) > DATEADD(DAY, -1, GETUTCDATE());
Conteúdo relacionado
- Exibições de gerenciamento dinâmico de eventos estendidos
- Exibições do catálogo de eventos estendidos (Transact-SQL)
- Visão geral de eventos estendidos
- Destinos de Eventos Estendidos
- Exibir dados de eventos no SQL Server Management Studio
- Converter um script existente de Rastreamento do SQL em uma sessão de Eventos Estendidos
- Usar a sessão system_health