Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Base de dados SQL no Microsoft Fabric
Lê os arquivos XEL do log de eventos criados pelo destino Eventos estendidos event_file . Cada linha no conjunto de resultados representa um evento. Os dados do evento são retornados no formato XML.
Os arquivos XEL também podem ser lidos pelo SQL Server Management Studio. Para obter um passo a passo, consulte Guia de início rápido: eventos estendidos.
Transact-SQL convenções de sintaxe
Sintaxe
sys.fn_xe_file_target_read_file ( path , mdpath , initial_file_name , initial_offset )
Arguments
caminho
O caminho para os arquivos a serem lidos. path é nvarchar(260) sem padrão.
Quando usado com arquivos no sistema de arquivos local, o caminho deve incluir o nome de um arquivo de log de sessão de eventos. O nome do arquivo pode conter
*como um curinga para ler dados de vários arquivos.Quando usado com blobs em um contêiner de Armazenamento do Azure, o caminho é uma URL HTTP construída pela concatenação de duas partes:
O caminho para um contêiner de armazenamento do Armazenamento do Azure, seguido por uma barra (
/).Um prefixo comum para os nomes de blobs no contêiner que devem ser lidos. Para ler um único blob, use o nome completo do blob.
Por exemplo, usar
https://<storage-account-name>.blob.core.windows.net/container-name>/xe_sessioncomo caminho recupera dados de todos os blobs com nomes começando comxe_session, e independentemente do restante do nome do blob incluindo a extensão. Não é possível especificar caracteres curinga.
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 é 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 , pois NULL.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.
O nome do arquivo deve ser um valor retornado no conjunto de resultados de uma sys.fn_xe_file_target_read_file chamada de função com o mesmo caminho.
initial_offset
Usado para especificar o último deslocamento lido anteriormente. Ignora todos os eventos até o deslocamento (inclusive). A enumeração de eventos começa após o deslocamento especificado.
initial_offset é bigint. Se NULL for especificado como o argumento, o arquivo inteiro será lido.
Observação
initial_file_name e initial_offset são argumentos emparelhados. Se você especificar um valor para qualquer argumento, deverá especificar um valor para o outro argumento.
Tabela retornada
| Nome da coluna | Tipo de dados | Description |
|---|---|---|
module_guid |
uniqueidentifier | O GUID do módulo de evento. Não anulável. |
package_guid |
uniqueidentifier | O GUID do pacote de eventos. Não anulável. |
object_name |
Nvarchar(256) | O nome do evento. Não anulável. |
event_data |
nvarchar(max) | O conteúdo do evento, em formato XML. Não anulável. |
file_name |
Nvarchar(260) | O nome do arquivo que contém o evento. Não anulável. |
file_offset |
bigint | O deslocamento do bloco no arquivo que contém o evento. Não anulável. |
timestamp_utc |
datetime2(7) | A data e hora (fuso horário UTC) do evento. Não anulável. Aplica-se a: SQL Server 2017 (14.x) e versões posteriores, Banco de Dados SQL do Azure e Instância Gerenciada SQL do Azure. |
Observações
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 por humanos, 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) oferecem 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 SQL do Azure ou no Banco de Dados SQL do Azure, os event_file arquivos criados pelo destino são sempre armazenados como blobs em um contêiner de Armazenamento do Azure.
Você pode usar sys.fn_xe_file_target_read_file para ler dados desses blobs se existir uma credencial que permita acesso ao contêiner de Armazenamento do Azure. Para obter uma explicação passo a passo, consulte Criar uma sessão de evento com um destino event_file no Armazenamento do Azure.
Se você especificar um caminho do 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.
Permissions
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.
Examples
A. Recuperar dados de arquivos no sistema de arquivos local
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 .xel arquivo e .xem . Neste exemplo, os destinos de arquivo e os metaarquivos 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 system_health interna. A sessão system_health é uma sessão de Eventos Estendidos incluída por padrão no SQL Server. Para obter mais informações, consulte 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());
B. Recuperar dados de blobs em um contêiner de Armazenamento do Azure
Leia dados de todos os blobs no contêiner com nomes começando com xe_session_.
SELECT *
FROM sys.fn_xe_file_target_read_file(
'https://<storage-account-name>.blob.core.windows.net/<container-name>/xe_session_',
NULL,
NULL,
NULL
);
Leia os dados do xe_session_0_133614763336380000.xel blob.
SELECT *
FROM sys.fn_xe_file_target_read_file(
'https://<storage-account-name>.blob.core.windows.net/<container-name>/xe_session_0_133614763336380000.xel',
NULL,
NULL,
NULL
);
Leia os dados do xe_session_0_133614763336380000.xel blob começando com o deslocamento 33280.
SELECT *
FROM sys.fn_xe_file_target_read_file(
'https://<storage-account-name>.blob.core.windows.net/<container-name>/xe_session_',
NULL,
'https://<storage-account-name>.blob.core.windows.net/<container-name>/xe_session_0_133614763336380000.xel',
33280
);
Conteúdo relacionado
- Exibições de gerenciamento dinâmico de eventos estendidos
- Exibições estendidas do catálogo de eventos (Transact-SQL)
- Visão geral de eventos estendidos
- Metas para eventos estendidos
- Exibir dados de eventos no SQL Server Management Studio
- Converter um script de rastreamento SQL existente em uma sessão de eventos estendida
- Usar a sessão system_health