Este tópico descreve como usar a página de estatísticas de bloqueio de travas para identificar rapidamente as sessões que causam bloqueios prolongados e visualizar seus detalhes.
Pré-requisitos
A instância deve usar um disco em nuvem.
Este recurso não está disponível para instâncias ApsaraDB RDS for SQL Server 2008 R2 que usam discos em nuvem.
Este recurso está disponível apenas para instâncias ApsaraDB RDS for SQL Server nas seguintes regiões: China (Hangzhou), China (Shanghai), China (Qingdao), China (Beijing), China (Zhangjiakou), China (Hohhot), China (Ulanqab), China (Shenzhen), China (Heyuan), China (Guangzhou), China (Chengdu), China (Hong Kong), Singapore, ou UAE (Dubai).
Informações de fundo
No SQL Server, para manter a consistência dos dados, o sistema adquire uma trava em um recurso quando uma sessão o modifica. Isso impede que outras sessões concorrentes acessem ou modifiquem o mesmo recurso. Em condições normais, a trava é mantida por um curto período e liberada após a conclusão da modificação, permitindo que a próxima sessão acesse o recurso. No entanto, problemas como uma instrução SQL lenta podem fazer com que um recurso seja travado por um período prolongado, o que impacta severamente o desempenho.
Para abordar esse problema, o ApsaraDB RDS for SQL Server oferece uma página de estatísticas de bloqueio de travas. Nessa página, você pode rapidamente encontrar informações como o ID do Processo do Servidor (SPID) da sessão bloqueadora, o horário em que ocorreu o bloqueio e a instrução SQL que causou o bloqueio. Essas informações ajudam a identificar a causa raiz do problema.
Como funciona
Uma sessão bloqueada por cerca de 2 segundos geralmente não causa grandes problemas. No entanto, se várias sessões forem bloqueadas repetidamente por mais de 2 segundos em um curto período, isso pode afetar significativamente o sistema inteiro.
O sistema realiza amostragens de bloqueio de travas a cada 10 segundos. Em cada ponto de amostragem, se uma sessão estiver executando uma instrução SQL por mais de 2 segundos e estiver bloqueando outras sessões, o sistema captura e registra essa informação na página de estatísticas de bloqueio de travas.
Procedimento
Acesse a Instances página. Na barra de navegação superior, selecione a região onde a instância RDS está localizada. Em seguida, encontre a instância RDS e clique no ID da instância.
No painel de navegação à esquerda, escolha Autonomy Services > Lock Optimization.
Clique na aba Blocking para visualizar os detalhes de bloqueio da instância.
Descrição da página
-
Visão geral do bloqueio
Mostra o número de eventos de bloqueio dentro de um intervalo de tempo especificado.
Os intervalos de tempo incluem Últimas 24 Horas, Últimos 7 Dias, Últimos 14 Dias e Últimos 30 Dias.
-
Tendência da duração do bloqueio
Mostra um gráfico de tendência da duração do bloqueio para o período selecionado.
Passe o mouse sobre um ponto no tempo para visualizar os detalhes do bloqueio, que incluem:
O horário em que ocorreu o bloqueio.
Processes_blocked: O número de sessões bloqueadas.
-
Uncommited_tran: O número de transações não confirmadas.
NotaTransações não confirmadas não liberam travas.
O QueryHash (um valor hash de uma instrução SQL específica) e o tempo de bloqueio correspondente.

-
Detalhes da origem do bloqueio
Exibe informações detalhadas sobre a origem do bloqueio. Os detalhes incluem:
SPID: O SPID da sessão bloqueadora.
QueryHash: Um valor hash gerado a partir da instrução SQL. Instruções SQL do mesmo tipo compartilham o mesmo QueryHash.
Wait Type: O motivo pelo qual a sessão em espera está bloqueada. Para obter mais informações sobre tipos de espera, consulte Tipos de Espera.
Execution Duration (ms): A duração em que a sessão está em execução.
-
SQL: A instrução SQL que causou o bloqueio.
NotaPasse o mouse sobre a instrução SQL e clique no ícone
que aparece à direita para copiar a instrução SQL. Time: O horário em que ocorreu o bloqueio.
Database Name: O nome do banco de dados onde ocorreu o bloqueio.
Clique em qualquer lugar de uma linha para visualizar o Diagrama de Bloqueio correspondente na parte inferior da página.
-
Diagrama de Bloqueio
Mostra o SPID bloqueador (vermelho), o SPID bloqueado (azul), o tipo de trava e a duração do bloqueio. Para obter mais informações sobre tipos de trava, consulte Tipos de Trava.

Passe o mouse sobre um SPID para visualizar os detalhes do bloqueio, que incluem:
SPID: O ID do processo do servidor.
BlockedBySpid: O SPID da sessão bloqueadora.
WaitType: O tipo de espera.
WaitTimeMs: A duração do bloqueio, em milissegundos.
CMD: O tipo de comando SQL para a sessão atual.
CPU: O tempo de CPU, em milissegundos.
DBName: O nome do banco de dados.
ClientAppName: O nome da aplicação cliente.
HostName: O nome do host do cliente.
LoginId: O nome de usuário.
PhysicalIO: O I/O consumido pela sessão atual. 1 PhysicalIO equivale a 8 KB.
QueryHash: Um valor hash gerado a partir da instrução SQL. Instruções SQL do mesmo tipo compartilham o mesmo QueryHash.
StartTime: O horário de início do lote atual. Um lote pode conter várias instruções SQL e compartilhar recursos, como valores de variáveis.
Status: O status da sessão atual.
SQL: Clique em um SPID vermelho ou azul para exibir os detalhes da execução SQL abaixo do Diagrama de Bloqueio.
-
Detalhes do SQL
No Diagrama de Bloqueio, clique em um SPID vermelho ou azul para exibir os detalhes da execução SQL para aquela sessão. Clique em Click to Copy para copiar rapidamente a instrução SQL para análise ou solução de problemas.