Trace Skipped Records - SQL Server Profiler

Fala pessoal, no post de hoje vou tratar sobre 'Skipped Records', um comportamento específico do SQL profiler que pode causar alguma confusão no entendimento, mas é bem simples.


Se você não passou por isso ainda, calma! Com certeza em algum momento vai acontecer. Quando executamos um rastreamento pelo profiler, costumamos ver todos os comandos executados de acordo com o tipo de evento e filtros selecionados. Porém, em alguns casos específicos você pode se deparar com linhas em branco, conforme a imagem.


Elas são identificadas apenas como 'Trace skipped records'. Isso acontece quando o comando que será executado no banco de dados é extremamente grande na coluna TextData, imagine um comando de insert concatenando um bloco de 1,5 mil inserts, essa string contém mais de 3 mil caracteres por exemplo. Por conta do tamanho do campo a ferramenta necessitaria consumir uma boa quantia de memória para carregar esse valor em tela, para evitar esse desgaste que na verdade é desnecessário, o profiler opta por "pular" essa linha e a deixa em branco. Mas fique tranquilo, ela esta sendo executada no banco de dados normalmente, apenas não esta aparecendo no seu rastreamento.


Existem algumas formas de conseguir ver o que esta sendo executado nessas linhas, você pode usar Xtend events ou pelo próprio profiler mesmo, basta salvar o monitoramento em um arquivo e habilitar a opção 'Server processes trace data'.

Ao abrir o arquivo gerado todas as linhas serão exibidas por completo sendo possível identificar o comando que anteriormente não foi exibido em tempo real pelo profiler.




Agora é só analisar a query conforme a sua necessidade! Simples não é mesmo?


Nos acompanhe em nossas redes sociais!

Youtube(vídeos novos todas as quartas): https://www.youtube.com/channel/UChFeqc-m7HZNdkoP0CshMGQ

Face & Instagram(conteúdo diário): dba on boarding

Até a próxima, tchau!

#CG_Administration

68 visualizações0 comentário