Este tópico descreve como usar a página de estatísticas de bloqueio para identificar rapidamente sessões que causam bloqueios prolongados e visualizar seus detalhes.
Pré-requisitos
A instância deve usar disco em nuvem.
Este recurso não está disponível para instâncias do ApsaraDB RDS for SQL Server 2008 R2 com discos em nuvem.
O recurso está disponível apenas para instâncias do 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), Singapura ou Emirados Árabes Unidos (Dubai).
Informações básicas
No SQL Server, o sistema adquire um lock em um recurso quando uma sessão o modifica para manter a consistência dos dados. Isso impede que outras sessões simultâneas acessem ou modifiquem o mesmo recurso. Em condições normais, o lock dura pouco tempo e é liberado após a conclusão da modificação, permitindo o acesso da próxima sessão. No entanto, problemas como instruções SQL lentas podem manter um recurso bloqueado por um período prolongado e impactar severamente o desempenho.
Para resolver essa questão, o ApsaraDB RDS for SQL Server oferece uma página de estatísticas de bloqueio. Nela, você encontra rapidamente informações como o Server Process ID (SPID) da sessão bloqueadora, o horário do bloqueio e a instrução SQL responsável. Esses dados ajudam a identificar a causa raiz do problema.
Funcionamento
Uma sessão bloqueada por cerca de 2 segundos geralmente não causa grandes problemas. Contudo, se várias sessões forem bloqueadas repetidamente por mais de 2 segundos em um curto período, o impacto em todo o sistema pode ser significativo.
O sistema amostra os bloqueios por locks a cada 10 segundos. Em cada ponto de amostragem, caso uma sessão esteja executando uma instrução SQL há mais de 2 segundos e bloqueando outras sessões, o sistema captura e registra o evento na página de estatísticas de bloqueio.
Procedimento
Acesse a página Instances. Na barra de navegação superior, selecione a região onde reside a instância RDS. Em seguida, localize a instância desejada e clique em no ID correspondente.
No painel de navegação à esquerda, escolha Autonomy Services > Lock Optimization.
Clique em na aba Blocking para visualizar os detalhes de bloqueio da instância.
Descrição da página
-
Blocking Overview
Exibe a quantidade de eventos de bloqueio em um intervalo de tempo especificado.
Os intervalos disponíveis incluem Last 24 Hours, Last 7 Days, Last 14 Days e Last 30 Days.
-
Blocking Duration Trend
Apresenta um gráfico de tendências da duração dos bloqueios para o período selecionado.
Passe o mouse sobre um ponto no tempo para ver os detalhes do bloqueio, que incluem:
O momento em que o bloqueio ocorreu.
Processes_blocked: Quantidade de sessões bloqueadas.
-
Uncommited_tran: Número de transações não confirmadas.
NotaTransações não confirmadas não liberam locks.
O QueryHash (valor hash de uma instrução SQL específica) e o tempo de bloqueio correspondente.

-
Blocking Source Details
Mostra informações detalhadas sobre a origem do bloqueio, incluindo:
SPID: Identificador do processo de servidor da sessão bloqueadora.
QueryHash: Valor hash gerado a partir da instrução SQL. Instruções do mesmo tipo compartilham o mesmo QueryHash.
Wait Type: Motivo pelo qual a sessão em espera está bloqueada. Para mais informações sobre tipos de espera, consulte Wait Types.
Execution Duration (ms): Tempo de execução da sessão.
-
SQL: Instrução SQL que originou o bloqueio.
NotaPasse o mouse sobre a instrução SQL e clique em no ícone
exibido à direita para copiar o conteúdo. Time: Horário de ocorrência do bloqueio.
Database Name: Nome do banco de dados onde houve o bloqueio.
Clique em em qualquer lugar de uma linha para visualizar o Diagrama de Bloqueio correspondente na parte inferior da página.
-
Blocking Diagram
Ilustra o SPID bloqueador (vermelho), o SPID bloqueado (azul), o tipo de lock e a duração do bloqueio. Para saber mais sobre tipos de locks, veja Lock Types.

Ao passar o mouse sobre um SPID, você visualiza seus detalhes de bloqueio, compostos por:
SPID: ID do processo no servidor.
BlockedBySpid: SPID da sessão que está causando o bloqueio.
WaitType: Tipo de espera.
WaitTimeMs: Duração do bloqueio em milissegundos.
CMD: Tipo de comando SQL da sessão atual.
CPU: Tempo de CPU consumido, em milissegundos.
DBName: Nome do banco de dados.
ClientAppName: Nome da aplicação cliente.
HostName: Hostname do cliente.
LoginId: Nome de usuário.
PhysicalIO: E/S consumida pela sessão atual. Cada unidade de PhysicalIO equivale a 8 KB.
QueryHash: Hash gerado a partir da instrução SQL. Comandos do mesmo tipo possuem o mesmo QueryHash.
StartTime: Horário de início do lote atual. Um lote pode conter múltiplas instruções SQL e compartilhar recursos, como valores de variáveis.
Status: Estado atual da sessão.
SQL: Clique em em um SPID vermelho ou azul para exibir os detalhes de execução SQL abaixo do Blocking Diagram.
-
SQL Details
No Blocking Diagram, clique em em um SPID vermelho ou azul para mostrar os detalhes de execução SQL daquela sessão. Use o botão Click to Copy para copiar rapidamente a instrução e usá-la em análises ou solução de problemas.