Impasses do SQL 2005: execução de rastreamentos e exame de logs

Impasses do SQL 2005: execução de rastreamentos e exame de logs

Temos um aplicativo comercial de terceiros que acreditamos estar causando conflitos em nossa máquina SQL Server 2005 (64 bits). Saindo de um treinamento de 1 dia e meio com o fornecedor de software na semana passada para nos ajudar a administrar melhor o software, agora estou fazendo algumas pesquisas sobre como usar melhor o SQL Server Profiler e os modelos de rastreamento da melhor forma possível.

Meu lema pessoal é "se você é um fornecedor de software que está criando um aplicativo que exige que você seja capaz de se conectar remotamente ao servidor do cliente, então você está fazendo isso errado". Infelizmente, não temos muita escolha agora.

Quanto mais conheço esses caras (fornecedores de software), menos fico impressionado com eles - e mais trabalho "nos bastidores" quero fazer sozinho. Por exemplo, há meses temos tido problemas com a lentidão do servidor para um rastreamento - mas a partir de agora, não vejo absolutamente nenhum arquivo de rastreamento ou arquivo de modelo de rastreamento no sistema.

Vamos às minhas perguntas...

  1. A execução de um arquivo de rastreamento afeta visivelmente o desempenho do servidor? Meu palpite é que a resposta será “depende”. Se for esse o caso, aqui estão os "eventos" que selecionei no novo modelo de rastreamento que acabei de criar:

    • Gráfico de impasse
    • Bloqueio: Impasse
    • Bloqueio: Cadeia de Deadlock
    • RPC:Concluído
    • SP:StmtConcluído
    • SQL:BatchCompletado
    • SQL:BatchStarting
  2. Um rastreamento teria que ser executado antes que o impasse realmente ocorresse ou eu seria capaz de executá-lo no momento em que notássemos uma diminuição substancial no desempenho?

  3. Estou lendo dicas e técnicas para revisar os logs SQL agora, pois não prestamos muita atenção a isso. Quando entro no SQL Server Management Studio, entro em Gerenciamento e Logs do SQL Server, não consigo encontrar nada lá que diga "deadlock"/"deadlocked" etc... Então, talvez nada esteja sendo bloqueado. Alguém poderia confirmar para mim se os Deadlocks aparecerão ou não nos logs SQL e, em caso afirmativo, o que posso usar em meus critérios de pesquisa para encontrar as entradas?

Responder1

A execução de um rastreamento em um SQL Server afetará o SQL Server. A regra básica é que tudo o que você faz no servidor consome recursos. Você pode causar problemas de desempenho ao executar um rastreamento ou SQL Profiler no SQL Server? Sim, você pode, se não tiver nenhuma filtragem instalada.

Se você estiver tendo problemas de deadlock, ativeSinalizadores de rastreamento 1204 e 1222que enviará as informações sobre o impasse para o log de erros. Não os deixe ligados o tempo todo, pois eles afetarão o desempenho. As informações enviadas para o log de erros contarão tudo sobre as instruções que fizeram parte do impasse.

Responder2

No que diz respeito à execução de logs de diagnóstico comoVestígio, ele usa menos recursos do queanalisadormas, como sempre, a resposta depende das especificações do seu servidor e também de quanto está acontecendo ao mesmo tempo durante a produção normal. Como você está usando apenas o SQL 2005, presumo que o hardware seja um pouco demorado, o que significa que você deve ter cuidado ao executá-lo em uma caixa de produção. O que não é realmente recomendado ao tentar solucionar um problema semi-cegamente ou mesmo em uma caixa totalmente nova.

Para o número 2, se você estiver tentando capturar algo, IMO, você deve executar o diagnóstico e, em seguida, executar o que causa o impasse (supondo que você o tenha reduzido a um motivo ou tipo específico de evento com o aplicativo, ou apenas o aplicativo em geral)

Infelizmente, não posso ajudar muito com o número 3.

informação relacionada