MCDBA Brasil


  • Home
  • Sobre
  • Contato

Livros





Links Rápidos

SQL Server Builds (All Versions/Editions)


Download SQL Server 2017 (trial)


SQL Server 2017 Feature Pack


SQL Server 2016 Feature Pack


Cumulative Update SQL Server 2017 builds


Cumulative Update SQL Server 2016 builds


Cumulative Update SQL Server 2014 builds


Cumulative Update SQL Server 2012 builds


SQL Server 2005/2008 Samples Databases


Documentando o Servidor SQL Server


Analisando a Performance do Servidor-CheckList


Virtual PASS PT


Faça parte do maior virtual chapter do PASS com conteúdos técnicos em Português sobre SQL Server.

Todos os meses um evento Online para você! Acompanhe aqui os WebCasts já agendados

Sindicalize seu blog ou site ao VirtualPASSPT

SQL Server Blogs

SQL Server Query Processing Team


SQL Programmability & API Development Team


SQL Server Manageability Team


Latin America Support Team


Database + Disk + Performance


Microsoft SQL Server Support


SQL CLR Team


SQL Query Optimization Team


SQL 2005 Code Samples


SQL Server Express Team


SQL SMO Samples


SQL Storage Engine Team


SQL CAT Team


SQL Protocols Team


PSS SQL Server Engineers


Slava Oks on SQLOS


Ken Henderson’s blog


LUTI@Microsoft Blog


kimberly L. Trip’s blog


Fernando Garcia Blog

Artigos

Sherlock – Monitorando Problemas de Blocking

por Nilton Pinheiro janeiro 13, 2007 Nenhum comentário

Se você é um DBA e nunca passou pelo famoso problema de bloqueio de conexões, pode ter certeza de que ainda passará. Uma procedure muito utilizada durante a verificação e análise de bloqueio de conexões é uma procedure chamada sp_blocker_pss80.sql, a qual inclusive possui um artigo KB 271509 demonstrando sua utilização.

O problema da sp_blocker_pss80 é que ela gera um arquivo de saída, na maioria das vezes muito extenso e para os DBAs menos experientes, difícil de analisar.


É aí que entra a ferramenta Sherlock. Dado um arquivo de output, arquivo este gerado pela procedure sp_blocker_pss80, a ferramenta lhe apresenta os SPIDs bloqueados, o SPID que está causando o bloqueio e a instrução que ele está executando, os SPIDs que estão sendo bloqueados.



Como Usar a Ferramenta


A utilização da ferramenta é bastante simples, ao fazer o download e extrair os arquivos, notará a presentaça de 4 arquivos:


1. Sherlock.exe ==> o executável do utilitário
2. sherlock.ppt ==> uma apresentação em powerpoint abrangendo os seguintes tópicos:
 — What is locking?
 — What is blocking?
 — Built-in features in SQL Server to identify blocking.
 — Blocker script.
 — Analyzing blocking with findstr/grep.
 — Analyzing blocking with Sherlock.
 — Using Sherlock as a learning tool.
 — Sherlock limitations and upcoming features


3. sp_blocker_pss70.sql ==> script da procedure sp_blocker_pss para SQL Server 7.0
4. sp_blocker_pss80.sql ==> script da procedure sp_blocker_pss para SQL Server 2000


O primeiro passo é pegar o script da procedure de acordo com seu ambiente e criar a procedure sp_blocker_pssXX no banco de dados master. Para este exemplo estarei utilizando a sp_blocker_pss80.


Depois crie uma arquivo contendo o script abaixo e salve-o como blockscript.sql (Este nome é apenas uma sugestão). Este script executa a procedure sp_blocker_pss80 a cada 15 segundos.


WHILE 1=1
BEGIN
   EXEC master.dbo.sp_blocker_pss80
   WAITFOR DELAY ’00:00:15′
END
GO


Crie um outro arquivo contendo a linha de comando abaixo e salve-o como monitblock.bat. Esta .bat irá executar o utilitário osql.exe para se conectar ao servidor especificado e executar o script passado pelo arquivo blockscript.sql. Todo o resultado da execução deste script será armazenado no arquivo de log blocking_log.out.


osql -Usa -P<senhadosa> -S<servidor> -iD:/temp/blockscript.sql -oD:/temp/blocking_log.out -n


Obs: Altere <senhadosa> pela senha do seu usuário sa e <servidor> pelo nome do seu servidor SQL Server.


Para iniciar o processo de coleta de dados, abra um prompt do DOS e execute o arquivo .bat monitblock.bat. Quando quiser parar a coleta, basta teclar Ctrl+C.



Analisando os Dados Coletados


Para analisar os dados coletados, execute a ferramenta Sherlock e siga os passos abaixo:


1. Clique sobre o botão Open e informe o caminho até o arquivo de log blocking_log.out (Neste caso, D:/temp).
2. Clique em Yes para o Sherlock identificar o arquivo de log automaticamente.
3. Clique sobre o botão Analyze. Se houver algum blocking a ferramenta irá detectar e maiores detalhes serão apresetados.


Neste exemplo podemos ver que foi 4 ocorrências de blocking e que em uma delas o SPID 56 está bloqueando o SPID 60 que está bloqueando o SPID 59. Em Last Query, temos a instrução que está sendo executada pela conexão 56 e que está causando o bloqueio das demais conexões.



Como podemos observar, o SPID 56 está executando uma transação (Open Transaction=1) e com isso, as demais conexões só irão prosseguir com seu processamento após esta transação terminar ou ser cancelada.


Para fazer o donwload da ferramenta, clique sobre o link Sherlock Download (versão 1.3)


Veja também Analisando a Performance do Servidor – CheckList

Avaliação:
Compartilhe:
  • Anterior Como acessar o SQL Server no Active Server Pages (ASP)19 anos atrás
  • Próximo Demo sobre o SQL Server 2005 Express19 anos atrás

Deixe uma resposta Cancelar resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

MVP Reconnect Award

Categorias

  • Artigos (359)
  • Dica da Semana (95)
  • Documentação (54)
  • Downloads (113)
  • MSDE 2000 (3)
  • Sem categoria (1)
  • Tutoriais (9)

Posts recentes

  • #FechouBrasil #PartiuPortugal
  • Brigando com o erro “The cached MSI file is missing”
  • MCDBABRASIL está de volta
  • Documentando o Servidor SQL Server
  • Brigando com os Erros 17182, 17826 e 17120

SQL Server AlwaysOn Video Series

Video1: Introdução ao SQLServer2012 AlwaysOn


Video2: Introdução ao SQLServer2012 AlwaysOn Availability Group


Video3: Introdução ao SQLServer2012 AlwaysOn AVG-Demo


Video4: Introdução ao SQLServer2012 AlwaysOn Listener


Video5: Introdução ao SQLServer2012 AlwaysOn Readable Secondaries


Video6: Introdução ao SQLServer2012 AlwaysOn Readable Secondaries-Demo


Video7: Introdução ao SQLServer2012 AlwaysOn Failover Clustering


Serie SQL Server Failover Clustering End-to-End

Parte 1: Configuração da Rede e Ambiente


Parte 2: Configurando o Windows 2008 R2 Domain Controler e DNS


Parte 3: Preparando os nós para o Failover Cluster


Parte 4: Configurando um Failover Cluster de 2 nós


Parte 5: Configurando as LUNs no iSCSI Software Target (Parte 1)


Parte 6: Configurando as LUNs no iSCSI Software Target (Parte 2)


Parte 7: Apresentando as LUNs para os nós do Failover Cluster


Parte 8: Configurando os discos no Failover Cluster


Parte 9: Instalando a primeira instância virtual do SQL Server 2008


Parte 10: Instalando a segunda instância virtual do SQL Server 2008


Parte 11: Instalando e Configurando o MSDTC no Failover Cluster


Parte 12: Configurando Mount Points no Cluster e SQL Server 2008


Vídeo Extra: Removendo uma Instância do SQL Server 2008 R2 em Cluster


Alta Disponibilidade no SQL Server 2008 R2: Failover Clustering Overview


Alta Disponibilidade no SQL Server 2008 R2: Failover Clustering na Prática

Menu

  • Home
  • Sobre
  • Contato

Mais

  • RSS Feeds
2026 MCDBA Brasil.