none
SQL Profiler RRS feed

  • 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)
    quarta-feira, 18 de abril de 2012 13:35

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/gmasql


    Classifique as respostas. O seu feedback é imprescindível

    quarta-feira, 18 de abril de 2012 13:45

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/gmasql


    Classifique as respostas. O seu feedback é imprescindível

    quarta-feira, 18 de abril de 2012 13:45
  • 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]

    quarta-feira, 18 de abril de 2012 13:56
    Moderador
  • Muito obrigado Gustavo. Assim que eu conseguir acesso ao ambiente vou efetuar estas verificações.
    quinta-feira, 19 de abril de 2012 17:11