Usuário com melhor resposta
SQL Profiler 2014 não está filtrando campo Duration

Pergunta
-
Estou tentando fazer um trace de uma aplicação seguindo a orientação do fabricante. Ele solicitou que eu fizesse o trace no SQL Profiler utilizando os seguintes parâmetros:
Performance
- Performance Statistics.
- SQL:FullTextQuery.
- Showplan ALL.
- Showplan XML.
Store Procedures
- SP:Completed,
- SP:StmtCompleted
- SP:Starting
- SP: StmtStarting
TLSQL
- SQL:BatchCompleted
- SQL:BatchStarting
- SQL:StmtCompleted
- SQL:StmtStartin
Nesses eventos selecionei todas as colunas e nos filtros marquei apenas o banco onde executo o processo e duração acima de 5000 milisegundos.
O problema é que na tela de trace as colunas "duration" e "endtime" ficam amarelas e não apresentam dados, apesar de eu selecionar na tela de eventos. Dessa forma ele acaba gravando todos os comandos e o trace fica com cera de 30gb.
Gostaria de saber se estou fazendo algo errado e como filtrar apenas comandos com duração maior ou igual à 5 segundos.
Grato desde já pela atenção
Fernando Miranda
Respostas
-
Bom dia Fernando,
E se você utilizar o código abaixo, que trabalha com duração também e em SQL Profiler
SELECT TOP ( 10 ) p.name AS [SP Name] , qs.total_elapsed_time / qs.execution_count AS [avg_elapsed_time] , qs.total_elapsed_time , qs.execution_count , ISNULL(qs.execution_count / DATEDIFF(Second, qs.cached_time, GETDATE()), 0) AS [Calls/Second] , qs.total_worker_time / qs.execution_count AS [AvgWorkerTime] , qs.total_worker_time AS [TotalWorkerTime] , qs.cached_time FROM sys.procedures AS p WITH ( NOLOCK ) INNER JOIN sys.dm_exec_procedure_stats AS qs WITH ( NOLOCK ) ON p.[object_id] = qs.[object_id] WHERE qs.database_id = DB_ID() AND qs.total_elapsed_time > 25000000 ORDER BY avg_elapsed_time DESC OPTION ( RECOMPILE );
Att., Roberto Alves
Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.- Sugerido como Resposta Junior Galvão - MVPMVP sexta-feira, 30 de junho de 2017 17:40
- Marcado como Resposta Filipe B CastroModerator sexta-feira, 30 de junho de 2017 19:34
Todas as Respostas
-
Boa tarde, FernandoMirandaSP.
Tudo bem com você?
Obrigado por usar o Fórum MSDN.Você disse que selecionou as colunas etc com duração acima de 5000 milisegundos. Depois disse que precisa filtrar com 5 segundos. Mas você conseguiu ou não? Está dando alguma mensagem de erro?
Atencisamente,
Filipe B de Castro
Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita
MSDN Community Support
Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.
-
Oi Felipe obrigado pelo apoio.
Eu seleciono o campo duration em todos os eventos, mas quando o profiler está colhendo os dados não exibe nada nas colunas "duration" e "endtime" por isso ele não filtra os comandos e o trace fica em torno de 30GB. Não sei o motivo de a coluna duration não trazer o tempo de duração. E essa coluna fica com a cor amarela enquanto as outras estão na cor branca.
Fiz upload de um print da tela:
https://imgur.com/a/puwhI -
Bom dia Fernando,
E se você utilizar o código abaixo, que trabalha com duração também e em SQL Profiler
SELECT TOP ( 10 ) p.name AS [SP Name] , qs.total_elapsed_time / qs.execution_count AS [avg_elapsed_time] , qs.total_elapsed_time , qs.execution_count , ISNULL(qs.execution_count / DATEDIFF(Second, qs.cached_time, GETDATE()), 0) AS [Calls/Second] , qs.total_worker_time / qs.execution_count AS [AvgWorkerTime] , qs.total_worker_time AS [TotalWorkerTime] , qs.cached_time FROM sys.procedures AS p WITH ( NOLOCK ) INNER JOIN sys.dm_exec_procedure_stats AS qs WITH ( NOLOCK ) ON p.[object_id] = qs.[object_id] WHERE qs.database_id = DB_ID() AND qs.total_elapsed_time > 25000000 ORDER BY avg_elapsed_time DESC OPTION ( RECOMPILE );
Att., Roberto Alves
Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.- Sugerido como Resposta Junior Galvão - MVPMVP sexta-feira, 30 de junho de 2017 17:40
- Marcado como Resposta Filipe B CastroModerator sexta-feira, 30 de junho de 2017 19:34