Todos os produtos
Search
Central de documentação

Database Autonomy Service:Deadlocks

Última atualização: Jun 27, 2026

O Database Autonomy Service (DAS) oferece o recurso Lock Optimization para o ApsaraDB RDS for SQL Server. Use esse recurso para visualizar deadlocks e seus detalhes na instância de banco de dados.

Pré-requisitos

  • Instâncias do ApsaraDB RDS for SQL Server 2008 R2 com discos em nuvem não oferecem suporte a este recurso.

  • A instância deve estar em uma das 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 e Emirados Árabes Unidos (Dubai).

Informações básicas

Ao modificar um recurso, a transação aplica um bloqueio para impedir alterações por outras transações e garantir a consistência dos dados.

Deadlocks geralmente ocorrem quando várias transações competem pelos mesmos recursos. Por exemplo, a Transação A bloqueia o Recurso A e tenta modificar o Recurso B, enquanto a Transação B bloqueia o Recurso B e tenta modificar o Recurso A. Essa dependência circular gera um deadlock, pois cada transação aguarda a liberação do bloqueio pela outra. O sistema encerra automaticamente a sessão com menor custo de reversão (sessão vítima) e causa a falha da tarefa correspondente. A figura a seguir ilustra esse cenário.

死锁

Tipos de deadlock

A página Deadlock exibe estatísticas dos seguintes cinco tipos de deadlock:

  • KeyDeadlock

  • ObjectDeadlock

  • RIDDeadlock

  • PageDeadlock

  • CompileDeadlock

Modos de bloqueio

Ao acessar um recurso, a transação utiliza diferentes modos de bloqueio (LockMode) conforme o tipo de acesso. Os modos incluem:

  • Bloqueio compartilhado (S): Permite a leitura do recurso, mas impede modificações enquanto o bloqueio estiver ativo.

  • Bloqueio de atualização (U): Impede que outras transações adquiram um bloqueio exclusivo sobre um recurso e sinaliza a intenção de modificá-lo. Esse bloqueio evita deadlocks que podem ocorrer quando várias sessões tentam ler, bloquear e atualizar o mesmo recurso.

  • Bloqueio exclusivo (X): Impede o acesso de outras transações ao recurso.

Procedimento

  1. Faça login no console do DAS.

  2. No painel de navegação à esquerda, clique em Intelligent O&M Center > Instance Monitoring.

  3. Localize a instância desejada e clique em ID da instância para abrir a página de detalhes.

  4. No painel de navegação à esquerda, clique em Lock Optimization > DeadLock.

  5. Na página DeadLock, verifique os detalhes do deadlock.

Visão geral da página

  • A seção Deadlock Count Overview apresenta estatísticas para intervalos de tempo predefinidos, incluindo Last 24 Hours, Last 7 Days, Last 14 Days e Last Month.

  • Deadlock Trend死锁变化趋势

    Este gráfico mostra os tipos de deadlocks ocorridos em um determinado período. Execute as seguintes operações:

    • Selecione um Start time e um End time e clique em Search para exibir informações de deadlock no intervalo especificado.

      Nota

      O intervalo de tempo não pode ultrapassar 30 dias.

    • Clique em Last 24 Hours, Last 7 Days ou Last Month para consultar rapidamente as informações de deadlock do período selecionado.

    • Passe o mouse sobre um ponto no gráfico de tendências para visualizar os tipos e a quantidade de deadlocks ocorridos naquele momento.

    • Clique em ícone 图标 no canto superior direito do gráfico de tendências para alterar o estilo de exibição ou baixe o gráfico.

  • Deadlock Details

    Clique em ícone 加号 à esquerda de um registro para expandi-lo e visualizar os detalhes das sessões interdependentes. Os detalhes incluem as seguintes informações:

    • LastTranStarted: Horário de início da transação.

    • SPID: ID da sessão que iniciou a transação.

    • IsVictim: Indica se a sessão foi a vítima do deadlock.

      Nota

      O SQL Server resolve deadlocks por meio de uma thread interna de detecção periódica. Após detectar um deadlock, o SQL Server encerra a sessão com menor custo de reversão entre as envolvidas. Por exemplo, como uma instrução SELECT geralmente custa menos que uma UPDATE, o SQL Server prioriza o encerramento da sessão que executa a instrução SELECT.

    • LogUsed: Tamanho do log gerado pela sessão. Unidade: bytes.

    • LockMode: Modo de bloqueio. Para mais informações, consulte Modos de bloqueio.

    • WaitResourceDesc: Descrição do recurso aguardado pela transação atual.

    • ObjectOwned: Objeto bloqueado por esta sessão.

    • ObjectRequested: Objeto que a sessão tenta bloquear.

    • WaitResource: Recurso aguardado pela transação.

    • HostName: Nome do host do cliente que iniciou a transação.

    • LoginName: Nome da conta usada na transação.

    • Status: Status atual da transação.

    • ClientApp: Nome do aplicativo cliente usado na transação.

    • SQLText: Detalhes da instrução SQL.

      Nota

      Clique em instrução SQL para abri-la em uma nova janela. Clique em Click to Copy para copiar a instrução e usá-la em troubleshooting ou análises.

    Clique em qualquer linha para exibir o diagrama de deadlock correspondente abaixo.

  • Deadlock Diagram死锁关系图

    Este diagrama mostra a relação entre as sessões envolvidas no deadlock e fornece detalhes sobre os recursos bloqueados. Clique em Download para baixe um arquivo XDL. Esse arquivo contém todos os detalhes do deadlock atual e pode ser aberto com o cliente SQL Server Management Studio (SSMS).