Published on

November 20, 2022

Compreendendo a Localização dos Arquivos de Eventos Estendidos do SQL Server

Você já se perguntou onde o arquivo .xel é salvo quando você cria uma nova sessão de Evento Estendido e não especifica o caminho completo (apenas o nome do arquivo)? Neste artigo, exploraremos a localização dos arquivos de Eventos Estendidos do SQL Server e como encontrá-los.

Ao criar uma sessão de Evento Estendido, você pode ter percebido que só precisa fornecer o nome do arquivo sem especificar o caminho completo. Por exemplo:

CREATE EVENT SESSION [TestFileTarget] ON SERVER 
ADD EVENT sqlserver.sql_statement_completed
ADD TARGET package0.event_file
(
    SET filename=N'TestFileTarget',max_file_size=(2)
)
WITH (STARTUP_STATE = ON)

Mesmo ao gerar o script da sessão, o nome do arquivo é a única informação fornecida. Então, onde o arquivo é realmente salvo?

Para descobrir a localização do arquivo de Evento Estendido, precisamos iniciar a sessão e consultar a DMV sys.dm_xe_sessions. Aqui está o trecho de código T-SQL para recuperar o caminho do arquivo:

;WITH xeTargets
AS
(
    SELECT
        s.name
        , t.target_name
        , CAST(t.target_data AS xml) AS xmlData
    FROM
        sys.dm_xe_session_targets AS t
        JOIN sys.dm_xe_sessions AS s
            ON s.address = t.event_session_address
)
SELECT
    xt.name
    , xt.target_name
    , xNodes.xNode.value('@name', 'varchar(250)') AS filePath
    , xt.xmlData
FROM xeTargets AS xt
CROSS APPLY xt.xmlData.nodes('.//File') xNodes (xNode)

Ao executar essa consulta, você obterá o caminho do arquivo de Evento Estendido.

É importante observar que o caminho do arquivo pode variar dependendo da instância do SQL Server. No entanto, na maioria dos casos, o arquivo de Evento Estendido é salvo na mesma pasta do arquivo de log de erros.

Se você deseja alterar a localização do arquivo de log de erros, pode fazer isso modificando o parâmetro de inicialização do SQL Server. Aqui está um trecho da documentação:

O caminho do log de erros é um parâmetro de inicialização do SQL Server. Se você não fornecer essa opção, os parâmetros do registro existentes serão usados.

Para alterar o caminho do arquivo de log de erros, você pode usar o SQL Server Configuration Manager. Clique com o botão direito no serviço do SQL Server, selecione Propriedades e vá para a guia Parâmetros de Inicialização. Especifique o novo caminho da pasta para o arquivo de log de erros, certificando-se de incluir o nome do arquivo sem a extensão. Observe que a alteração do caminho do arquivo de log de erros requer a reinicialização do serviço do SQL Server.

Após alterar o caminho do arquivo de log de erros, você pode verificar a localização do arquivo de Evento Estendido executando a consulta T-SQL anterior. O arquivo de Evento Estendido agora deve ser salvo na nova pasta especificada para o arquivo de log de erros.

Vale mencionar que os arquivos antigos de log de erros e de Evento Estendido não são excluídos automaticamente quando você altera o caminho do arquivo de log de erros. Portanto, pode ser necessário excluir manualmente os arquivos antigos para liberar espaço em disco.

Por fim, se você não tiver o SQL Server instalado localmente, ainda poderá testar a localização do arquivo de Evento Estendido usando o Docker. Basta executar um contêiner Docker com a imagem do SQL Server e seguir as mesmas etapas mencionadas anteriormente para encontrar a localização do arquivo.

Compreender a localização dos arquivos de Eventos Estendidos do SQL Server é essencial para gerenciar e analisar dados de eventos. Ao saber onde esses arquivos são salvos, você pode acessar e analisar facilmente os eventos capturados.

Obrigado por ler!

Click to rate this post!
[Total: 0 Average: 0]

Let's work together

Send us a message or book free introductory meeting with us using button below.