none
Lock Requests/Sec RRS feed

  • Pergunta

  • Ola pessoal,

    Estamos monitorando um Servidor Sql Server 2008R2, colocamos varios contadores um deles o Lock Requests/Sec, que esta com um valor de 463.110,54, este valor referente a base de dados da aplicação que usamos.

    Essa base de dados atende 45 clientes, e tem o tamanho de 30 GB de base.

    Gostaria de confirmar pelo que andei pesquisando, que este valor é alto e que existe algum problema na programação do banco.

    Obrigada

    quarta-feira, 12 de março de 2014 19:09

Respostas

  • Durval

    Apenas esqueci de mencionar que este valor é ligado ao tempdb, neste caso existe alguma alteração na sua resposta?

    Patricia,

    No caso do tempdb todos os bancos de dados e parte dos recursos utilizados pela instância SQL utilizam o tempdb alocando e liberando recursos constantemente.

    A medição do Lock Request/sec é referente à instância SQL. No link abaixo do Fórum americano, à indicação recomendada na resposta é de no máximo 1000/seg, independentemente do banco de dados. 

    http://social.msdn.microsoft.com/Forums/sqlserver/en-US/73c5beb7-c499-4551-902d-c351e4f0e88d/list-of-perfmon-counters-for-sql-server?forum=sqlgetstarted

    Veja abaixo um comparativo no perfmon:

    Com exibição de Tempo de Processamento e Deadlocks:

    Veja que o pico durante minha execução em pouco mais de 1 minuto foi 315.

    Seria interessante você realizar à medição em uma amostra dos acessos em períodos diferentes ou que tenham maior volume de tráfego de dados para que você possa ter certeza do que está ocorrendo. Por exemplo, um processo de carga de dados periódica pode aumentar esta medição.

    Lembre-se este problema é referente à quantidade de acessos aos mesmos dados simultâneamente, então utilizar os hints corretamente vai abaixar à quantidade de concorrência e consequentemente os Lock's.

    Não esqueça de marcar como resposta todos os posts que ajudaram na sua solução !

    Abraços,

    Durval Ramos
    Microsoft Partner | MTA | MCSA - SQL Server 2012
    ----------------------------------
    Se foi resolvido clique "Marcar como resposta" e se foi útil "Votar como Útil"
    quinta-feira, 13 de março de 2014 12:43
  • Durval,

    Um detalhe importante que também tem que ser analisado é a possível ocorrência de processamentos temporários em sessões de usuário ou bancos de dados de usuários que podem estar forçando o TEMPDB a trabalhar com locks requests.


    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]

    • Marcado como Resposta Patricia_Araujo sexta-feira, 21 de março de 2014 13:07
    sexta-feira, 14 de março de 2014 18:17
    Moderador

Todas as Respostas

  • Patricia,

    Realmente este valor está muito alto, o que pode acabar gerando lentidão para vários usuários e podendo ocorrer deadlock's.

    Recomendo que você oriente sua equipe de desenvolvedores para utilizar os hints adequados para cada tipo de operação e comando SQL, como indicado no link abaixo:

    http://technet.microsoft.com/en-us/library/ms181714.aspx

    http://technet.microsoft.com/en-us/library/ms187373.aspx

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

    Abraços,

    Durval Ramos
    Microsoft Partner | MTA | MCSA - SQL Server 2012
    ----------------------------------
    Se foi resolvido clique "Marcar como resposta" e se foi útil "Votar como Útil"

    quarta-feira, 12 de março de 2014 20:03
  • Durval

    Apenas esqueci de mencionar que este valor é ligado ao tempdb, neste caso existe alguma alteração na sua resposta?

    quarta-feira, 12 de março de 2014 21:05
  • Durval

    Apenas esqueci de mencionar que este valor é ligado ao tempdb, neste caso existe alguma alteração na sua resposta?

    Patricia,

    No caso do tempdb todos os bancos de dados e parte dos recursos utilizados pela instância SQL utilizam o tempdb alocando e liberando recursos constantemente.

    A medição do Lock Request/sec é referente à instância SQL. No link abaixo do Fórum americano, à indicação recomendada na resposta é de no máximo 1000/seg, independentemente do banco de dados. 

    http://social.msdn.microsoft.com/Forums/sqlserver/en-US/73c5beb7-c499-4551-902d-c351e4f0e88d/list-of-perfmon-counters-for-sql-server?forum=sqlgetstarted

    Veja abaixo um comparativo no perfmon:

    Com exibição de Tempo de Processamento e Deadlocks:

    Veja que o pico durante minha execução em pouco mais de 1 minuto foi 315.

    Seria interessante você realizar à medição em uma amostra dos acessos em períodos diferentes ou que tenham maior volume de tráfego de dados para que você possa ter certeza do que está ocorrendo. Por exemplo, um processo de carga de dados periódica pode aumentar esta medição.

    Lembre-se este problema é referente à quantidade de acessos aos mesmos dados simultâneamente, então utilizar os hints corretamente vai abaixar à quantidade de concorrência e consequentemente os Lock's.

    Não esqueça de marcar como resposta todos os posts que ajudaram na sua solução !

    Abraços,

    Durval Ramos
    Microsoft Partner | MTA | MCSA - SQL Server 2012
    ----------------------------------
    Se foi resolvido clique "Marcar como resposta" e se foi útil "Votar como Útil"
    quinta-feira, 13 de março de 2014 12:43
  • Durval,

    Um detalhe importante que também tem que ser analisado é a possível ocorrência de processamentos temporários em sessões de usuário ou bancos de dados de usuários que podem estar forçando o TEMPDB a trabalhar com locks requests.


    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]

    • Marcado como Resposta Patricia_Araujo sexta-feira, 21 de março de 2014 13:07
    sexta-feira, 14 de março de 2014 18:17
    Moderador