none
SQLServer:Locks - Timeouts/sec com valores grandes RRS feed

  • Pergunta

  • Pessoal, bom dia.

    Estamos monitorando uma base de dados e percebemos que o contador SQLServer:Locks está elevado. 

    SELECT *
    FROM sys.dm_os_performance_counters WHERE counter_name LIKE '%timeouts/sec%'

    Pelo que eu entendi o certo é que este valor fique perto do zero.

    Gostaria de saber qual query posso utilizar para esta verificando as consultas que estão mais bloqueando?


    Stephany Henrique de Almeida Batista - MCTS


    sexta-feira, 17 de janeiro de 2014 16:25

Respostas

  • Boa tarde Stephany

    O Fabricio Catae escreveu alguns posts sobre esse tema, se quiser dar uma olhada, sao bem práticos e explicativos:

    http://blogs.msdn.com/b/fcatae/archive/2010/04/28/efeitos-colaterais-do-with-nolock-parte-i.aspx

    http://blogs.msdn.com/b/fcatae/archive/2010/06/02/efeitos-colaterais-do-with-nolock-parte-ii.aspx

    http://blogs.msdn.com/b/fcatae/archive/2010/10/13/problemas-com-nolock-sql-server.aspx

    http://blogs.msdn.com/b/fcatae/archive/2010/10/11/update-with-nolock-como-funciona.aspx


    • Sugerido como Resposta Renato Siqueira quarta-feira, 12 de março de 2014 04:08
    terça-feira, 21 de janeiro de 2014 20:56

Todas as Respostas

  • Stephany,

    Este valor é raro ficar "perto de zero" por mau uso ou desconhecimento dos próprios desenvolvedores que não tem costume de utilizar os Hints em consultas.

    Para localizar os Locks em seu banco de dados mais facilmente, recomendo que você utilize o template TSQL_Locks do SQL Server Profiler. Veja no print abaixo:

    É importante consolidar os fundamentos do que é um hint e como ocorre o DeadLock para saber como minimizar. Veja este link com exemplo para verificar às consultas que geram LOCK em bancos de dados:

    http://msdn.microsoft.com/En-US/library/ms189857.aspx

     É importante utilizar os hints corretamente para cada necessidade de manipulação de dados, do seu dia à dia, o link abaixo mostra os hints e alguns exemplos:

    http://msdn.microsoft.com/en-us/library/ms187373(v=sql.105).aspx

    http://msdn.microsoft.com/en-us/library/ms177475(v=sql.105).aspx

    http://msdn.microsoft.com/en-us/library/ms178104(v=sql.105).aspx

    Se ajudou na sua solução, não esqueça de marcar como resposta !

    Abraços,

    Durval Ramos
    Microsoft Partner | MTA - SQL Server 2012
    ----------------------------------
    Se foi resolvido clique "Marcar como resposta" e se foi útil "Votar como Útil"
    sexta-feira, 17 de janeiro de 2014 16:59
  • Boa tarde.

    Obrigado pela dica.

    Consegui ver uma procedure que a todo momento bloqueia outras conexões. Mas o estranho é que essa procedure é uma consulta onde já utiliza o WITH NOLOCK. Está certo ela bloquear outras conexões?


    Stephany Henrique de Almeida Batista - MCTS

    sexta-feira, 17 de janeiro de 2014 20:25
  • Stephany,

    O NOLOCK não deve bloquear nenhuma outra conexão, provavelmente esta consulta pode estar relacionada no mesmo contexto de uma outra manipulação de dados (INSERT, UPDATE ou DELETE).

    Você poderia copiar esta procedure no tópico para que possamos ajudar a analisar ?

    Abraços,

    Durval Ramos
    Microsoft Partner | MTA - SQL Server 2012
    ----------------------------------
    Se foi resolvido clique "Marcar como resposta" e se foi útil "Votar como Útil"
    sexta-feira, 17 de janeiro de 2014 20:47
  • Boa tarde Stephany

    O Fabricio Catae escreveu alguns posts sobre esse tema, se quiser dar uma olhada, sao bem práticos e explicativos:

    http://blogs.msdn.com/b/fcatae/archive/2010/04/28/efeitos-colaterais-do-with-nolock-parte-i.aspx

    http://blogs.msdn.com/b/fcatae/archive/2010/06/02/efeitos-colaterais-do-with-nolock-parte-ii.aspx

    http://blogs.msdn.com/b/fcatae/archive/2010/10/13/problemas-com-nolock-sql-server.aspx

    http://blogs.msdn.com/b/fcatae/archive/2010/10/11/update-with-nolock-como-funciona.aspx


    • Sugerido como Resposta Renato Siqueira quarta-feira, 12 de março de 2014 04:08
    terça-feira, 21 de janeiro de 2014 20:56