Usuário com melhor resposta
SQL Profiler

Pergunta
-
Em um ambiente em produção, o profiler capturou uma série de casos onde um select demorou um tempo excessivo ("duration" em torno de 15 segundos), mas o tempo de CPU é mínimo (alguns milisegundos) e o número de leituras também muito baixo. O que pode ocasionar isso ? A princípio imaginei locks nas tabelas envolvidas, mas este não é o caso (foi utilizado nolock em todas as tabelas). Alguma idéia ?
Abraços,
Varmí's
- Movido Gustavo Maia Aguiar quarta-feira, 18 de abril de 2012 13:45 (De:SQL Server - Desenvolvimento Geral)
Respostas
-
Bom Dia,
Esse é o diagnóstico muito típico de bloqueios. O NOLOCK não evita que eles aconteçam em 100% dos casos. Se você está experimentando esse cenário, seria bom dar uma olhada na sys.dm_os_wait_stats e na sys.dm_os_waiting_tasks para verificar se realmente não estão ocorrendo bloqueios. Essas dmvs também podem auxiliar na identificação de que tipo de esperas você pode estar encontrando
[ ]s,
Gustavo Maia Aguiar
Blog: http://gustavomaiaaguiar.wordpress.com
Vídeos:http://www.youtube.com/user/gmasqlClassifique as respostas. O seu feedback é imprescindível
- Marcado como Resposta Junior Galvão - MVPMVP, Moderator quarta-feira, 18 de abril de 2012 13:56
Todas as Respostas
-
Bom Dia,
Esse é o diagnóstico muito típico de bloqueios. O NOLOCK não evita que eles aconteçam em 100% dos casos. Se você está experimentando esse cenário, seria bom dar uma olhada na sys.dm_os_wait_stats e na sys.dm_os_waiting_tasks para verificar se realmente não estão ocorrendo bloqueios. Essas dmvs também podem auxiliar na identificação de que tipo de esperas você pode estar encontrando
[ ]s,
Gustavo Maia Aguiar
Blog: http://gustavomaiaaguiar.wordpress.com
Vídeos:http://www.youtube.com/user/gmasqlClassifique as respostas. O seu feedback é imprescindível
- Marcado como Resposta Junior Galvão - MVPMVP, Moderator quarta-feira, 18 de abril de 2012 13:56
-
Vamis,
Provavelmente os bloqueios não estão ocorrendo na tables que você declarou com o NoLock em suas querys, mas devem exisitir outras transações em seu ambiente que podem esta gerando bloqueios de Dados, Tables e até mesmo de um banco de dados.
Utilizando as DMVs indicadas pelo Gustavo você vai identificar estes objetos.
Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]
-