Existe uma maneira de descobrir quantas vezes o gatilho é chamado em uma sessão específica? Nosso aplicativo ETL está inserindo registros como cada linha em vez de instrução (ou seja) Se 100 registros devem ser inseridos, acho que o ETL emite 100 instruções de inserção em vez de inserir em um único lote. Portanto, o gatilho também é chamado 100 vezes. Eu só quero confirmar que o gatilho é chamado 100 vezes.
Eu tenho uma ideia de alterar o gatilho para ter contador e armazená-lo em uma tabela para encontrar o número de chamadas de gatilho.
Existe uma maneira nativa de encontrar isso?
Você pode configurar um rastreamento de evento estendido e capturar o tipo de evento 'sp_statement_completed'. Filtre o rastreamento por object_type='trigger'. Você também pode passar o nome do seu gatilho para restringir ainda mais. A definição a seguir lhe dará um ponto de partida. Ajuste o nome do arquivo, localização, tamanho e max_file_size com base em sua necessidade.
A solução seria criar uma tabela de registro e alterar o código do gatilho - adicionar uma linha que inseriria 1 linha na tabela de registro cada vez que o gatilho fosse chamado
Você pode ter colunas na tabela de log -
Adicione o código abaixo ao gatilho
E então você pode consultar sua tabela de log e ver com que frequência o gatilho é executado
Você pode até adicionar colunas e código ao gatilho para registrar quantos registros são inseridos pelo processo ETL por 1 execução
Pode haver impacto no desempenho da adição de log, mas somente se seu gatilho for chamado com muita frequência (dezenas ou centenas de chamadas por segundo)
Além disso, talvez seja necessário conceder permissões de processo ETL (login que executa tarefas ETL) para inserir em sua tabela de log