Partilhar via


Acessando informações de diagnóstico no log de eventos estendido

Aplica-se a:SQL ServerBanco de Dados SQL do AzureInstância Gerenciada SQL do Azure do Azure Synapse AnalyticsAnalytics Platform System (PDW)

Baixar driver OLE DB

A partir do SQL Server 2012 (11.x), o Driver OLE DB para SQL Server e o rastreamento de acesso a dados (Data Access Tracing) foram atualizados para facilitar a obtenção de informações de diagnóstico sobre falhas de conexão do buffer do anel de conectividade e informações de desempenho do aplicativo do log de eventos estendido.

Para obter informações sobre como ler o log de eventos estendido, consulte Exibir dados da sessão do evento.

Observação

Este recurso destina-se apenas para fins de solução de problemas e diagnóstico e pode não ser adequado para fins de auditoria ou segurança.

Comentários

Para operações de conexão, o driver OLE DB para SQL Server enviará uma ID de conexão de cliente. Se a conexão falhar, você poderá acessar o buffer de anel de conectividade (Solução de problemas de conectividade no SQL Server 2008 com o de buffer de anel de conectividade e localizar o campo ClientConnectionID e obter informações de diagnóstico sobre a falha de conexão. Os IDs de conexão do cliente são registrados no buffer de anel somente se ocorrer um erro. (Se uma conexão falhar antes de enviar o pacote de pré-login, um ID de conexão do cliente não será gerado.) O ID de conexão do cliente é um GUID de 16 bytes. Você também pode encontrar o ID de conexão do cliente no destino de saída de eventos estendidos, se a ação client_connection_id for adicionada a eventos em uma sessão de eventos estendida. Você pode habilitar o rastreamento de acesso a dados e executar novamente o comando connection e observar o campo ClientConnectionID no rastreamento de acesso a dados para uma operação com falha, se precisar de mais assistência de diagnóstico.

O driver OLE DB para SQL Server também envia uma ID de atividade específica do thread. O ID de atividade é capturado nas sessões de eventos estendidos se as sessões forem iniciadas com a opção TRACK_CAUSALITY ativada. Para problemas de desempenho com uma conexão ativa, você pode obter o ID de atividade do rastreamento de acesso a dados do cliente (campoActivityID) e, em seguida, localizar o ID de atividade na saída de eventos estendidos. O ID de atividade nos eventos estendidos é um GUID de 16 bytes (não o mesmo que o GUID para o ID de conexão do cliente) anexado com um número de sequência de quatro bytes. O número de sequência representa a ordem de uma solicitação dentro de um thread e indica a ordem relativa das instruções batch e RPC para o thread. O ActivityID é opcionalmente enviado para instruções de lote SQL e solicitações RPC quando o rastreamento de acesso a dados está ativado e o 18º bit na palavra de configuração de rastreamento de acesso a dados está ativado.

A seguir está um exemplo que usa Transact-SQL para iniciar uma sessão de eventos estendida que será armazenada em um buffer de anel e registrará o ID de atividade enviado de um cliente em RPC e operações em lote.

create event session MySession on server   
add event connectivity_ring_buffer_recorded,   
add event sql_statement_starting (action (client_connection_id)),   
add event sql_statement_completed (action (client_connection_id)),   
add event rpc_starting (action (client_connection_id)),   
add event rpc_completed (action (client_connection_id))  
add target ring_buffer with (track_causality=on)  
  

Ficheiro de Controlo

O conteúdo do driver OLE DB para arquivo de controle do SQL Server (ctrl.guid) é:

{8B98D3F2-3CC6-0B9C-6651-9649CCE5C752}  0x630ff  0   MSDADIAG.ETW
{EE7FB59C-D3E8-9684-AEAC-B214EFD91B31}  0x630ff  0   MSOLEDBSQL.1  

Arquivo MOF

O conteúdo do driver OLE DB para o arquivo mof do SQL Server é:

#pragma classflags("forceupdate")  
#pragma namespace ("\\\\.\\Root\\WMI")  
  
/////////////////////////////////////////////////////////////////////////////  
//  
//  MSDADIAG.ETW  
  
[  
 dynamic: ToInstance,  
 Description("MSDADIAG.ETW"),  
 Guid("{8B98D3F2-3CC6-0B9C-6651-9649CCE5C752}"),  
 locale("MS\\0x409")  
]  
class Bid2Etw_MSDADIAG_ETW : EventTrace  
{  
};  
  
[  
 dynamic: ToInstance,  
 Description("MSDADIAG.ETW"),  
 Guid("{8B98D3F3-3CC6-0B9C-6651-9649CCE5C752}"),  
 DisplayName("msdadiag"),  
 locale("MS\\0x409")  
]  
class Bid2Etw_MSDADIAG_ETW_Trace : Bid2Etw_MSDADIAG_ETW  
{  
};  
  
[  
 dynamic: ToInstance,  
 Description("MSDADIAG.ETW formatted output (A)"),  
 EventType(17),  
 EventTypeName("TextA"),  
 locale("MS\\0x409")  
]  
class Bid2Etw_MSDADIAG_ETW_Trace_TextA : Bid2Etw_MSDADIAG_ETW_Trace  
{  
    [  
     WmiDataId(1),  
     Description("Module ID"),  
     read  
    ]  
    uint32 ModID;  
  
    [  
     WmiDataId(2),  
     Description("Text StringA"),  
     extension("RString"),  
     read  
    ]  
    object msgStr;  
};  
  
[  
 dynamic: ToInstance,  
 Description("MSDADIAG.ETW formatted output (W)"),  
 EventType(18),  
 EventTypeName("TextW"),  
 locale("MS\\0x409")  
]  
class Bid2Etw_MSDADIAG_ETW_Trace_TextW : Bid2Etw_MSDADIAG_ETW_Trace  
{  
    [  
     WmiDataId(1),  
     Description("Module ID"),  
     read  
    ]  
    uint32 ModID;  
  
    [  
     WmiDataId(2),  
     Description("Text StringW"),  
     extension("RWString"),  
     read  
    ]  
    object msgStr;  
};  
  
/////////////////////////////////////////////////////////////////////////////  
//  
//  MSOLEDBSQL.1  
  
[  
 dynamic: ToInstance,  
 Description("MSOLEDBSQL.1"),  
 Guid("{EE7FB59C-D3E8-9684-AEAC-B214EFD91B31}"),  
 locale("MS\\0x409")  
]  
class Bid2Etw_MSOLEDBSQL_1 : EventTrace  
{  
};  
  
[  
 dynamic: ToInstance,  
 Description("MSOLEDBSQL.1"),  
 Guid("{EE7FB59D-D3E8-9684-AEAC-B214EFD91B31}"),  
 DisplayName("MSOLEDBSQL.1"),  
 locale("MS\\0x409")  
]  
class Bid2Etw_MSOLEDBSQL_1_Trace : Bid2Etw_MSOLEDBSQL_1  
{  
};  
  
[  
 dynamic: ToInstance,  
 Description("MSOLEDBSQL.1 formatted output (A)"),  
 EventType(17),  
 EventTypeName("TextA"),  
 locale("MS\\0x409")  
]  
class Bid2Etw_MSOLEDBSQL_1_Trace_TextA : Bid2Etw_MSOLEDBSQL_1_Trace  
{  
    [  
     WmiDataId(1),  
     Description("Module ID"),  
     read  
    ]  
    uint32 ModID;  
  
    [  
     WmiDataId(2),  
     Description("Text StringA"),  
     extension("RString"),  
     read  
    ]  
    object msgStr;  
};  
  
[  
 dynamic: ToInstance,  
 Description("MSOLEDBSQL.1 formatted output (W)"),  
 EventType(18),  
 EventTypeName("TextW"),  
 locale("MS\\0x409")  
]  
class Bid2Etw_MSOLEDBSQL_1_Trace_TextW : Bid2Etw_MSOLEDBSQL_1_Trace  
{  
    [  
     WmiDataId(1),  
     Description("Module ID"),  
     read  
    ]  
    uint32 ModID;  
  
    [  
     WmiDataId(2),  
     Description("Text StringW"),  
     extension("RWString"),  
     read  
    ]  
    object msgStr;  
};  

Ver também

Tratamento de erros