Exportar (0) Imprimir
Expandir Tudo

Limites de recursos do Banco de dados SQL do Azure

Atualizado: fevereiro de 2015

O Banco de dados SQL do Azure monitora o uso dos recursos compartilhados (log de transações, E/S e assim por diante) para manter os bancos de dados dentro dos limites do conjunto de recursos. Esse limite ou limite de recurso é chamado de limite de recurso e, quando o uso de recursos pelos clientes exceder esses limites, no nível de locatário ou do nó de auditoria, o Banco de dados SQL do Azure responde gerenciando o uso de recursos, que resulta em perdas da conexão ou negações da solicitação.

A tabela a seguir fornece um resumo dos limites para cada recurso além do qual o Banco de dados SQL do Azure nega a solicitação ou encerra as conexões com o recurso afetado, e um código de erro será retornado.

ImportantImportante
Muitas vezes o mesmo código de erro é retornado para várias condições de restrição para um recurso. Estas condições são identificadas como estados na mensagem de erro. Por exemplo, as seguintes mensagens de erro são exibidas para o recurso Comprimento do log de transação, cada um com o mesmo código de erro/mensagem, mas valores de Estado diferentes com base em condições de restrição diferentes:

Msg 40552, Level 17, State 1, Line 1
The session has been terminated because of excessive transaction log space usage.
Try modifying fewer rows in a single transaction.

-----------------------------------------------------------

Msg 40552, Level 17, State 2, Line 1
The session has been terminated because of excessive transaction log space usage.
Try modifying fewer rows in a single transaction.

A tabela abaixo e a descrição depois disso contêm os limites e a descrição para cada estado nesses códigos de erro. Clique no nome do recurso na tabela para pular para a respectiva descrição mais adiante neste tópico.

 

Recurso Limite Código de erro retornado

Tamanho do banco de dados

Depende da cota do banco de dados (MAXSIZE)

40544

Duração da transação

Estado 1: 24 horas

Estado 2: 20 segundos se uma transação bloquear um recurso exigido por uma tarefa do sistema subjacente

40549

Contagem do bloqueio da transação

1 milhão de bloqueios por transação

40550

Tempdb

Estado 1: 5 GB de espaço em tempdb

Estado 2: 2 GB por transação em tempdb

Estado 3: 20% do espaço total de log em tempdb

40551

Comprimento do log de transações

Estado 1: 2 GB por transação

Estado 2: 20% do espaço total de log

40552

Uso da Memória

Concessão de memória de 16 MB por mais de 20 segundos

40553

 

Mecanismo de perda de conexão/negação de solicitação Código de erro retornado Limite Tipo de solicitações negadas Recomendação

Quando o espaço do banco de dados distribuído para o banco de dados de usuário estiver cheio, o usuário obterá um erro de banco de dados cheio.

40544: O banco de dados atingiu sua cota de tamanho. Particione ou exclua dados, remova índices ou consulte a documentação para conhecer as possíveis resoluções. 

Depende da cota do banco de dados (MAXSIZE)

DML não selecionado (inserção, atualização, mesclagem que insere ou atualiza).

Use as instruções DELETE/DROP para remover os dados do banco de dados até que o tamanho do banco de dados esteja no limite.

Retornar ao início

 

Mecanismo de perda de conexão/negação de solicitação Código de erro retornado Limite Tipo de solicitações negadas Recomendação

A solicitação de transações bloqueia em recursos como linhas, páginas ou tabelas, nos quais a transação é dependente e libera os bloqueios quando não têm uma dependência dos recursos bloqueados. Suas solicitações podem ser negadas devido a alguma destas duas condições:

  • Estado 1: se uma transação estiver sendo executada por mais de 24 horas, ela será encerrada.

  • Estado 2: se uma transação bloquear um recurso exigido por uma tarefa do sistema subjacente por mais de 20 segundos, ela será encerrada.

40549: sessão encerrada porque você tem uma transação longa. Tente encurtar sua transação.

Estado 1: 24 horas

Estado 2: 20 segundos se uma transação bloquear um recurso exigido por uma tarefa do sistema subjacente

Qualquer transação que tenha sido executada por mais de 24 horas ou qualquer instrução DDL ou DML que possua um bloqueio, que leva ao bloqueio de uma tarefa do sistema.

As operações no Banco de dados SQL não devem ser bloqueadas na entrada de usuário ou ter outras dependências que levem a transações de longa execução.

Retornar ao início

 

Mecanismo de perda de conexão/negação de solicitação Código de erro retornado Limite Tipo de solicitações negadas Recomendação

As sessões que consomem mais de um milhão de bloqueios são encerradas.

40550: a sessão foi encerrada porque adquiriu bloqueios demais. Tente ler ou modificar menos linhas em uma única transação. 

1 milhão de bloqueios por transação

Algumas instruções DML ou DDL.

Os DMVs a seguir podem ser usados para monitorar transações:

  • sys.dm_tran_active_transactions

  • sys.dm_tran_database_transactions

  • sys.dm_tran_locks

  • sys.dm_tran_session_transactions

Dependendo do tipo de aplicativo, pode ser possível usar dicas de bloqueio de uma granulação mais espessa, como PAGLOCK ou TABLOCK, para reduzir o número de bloqueios realizados em determinada instrução/transação. Observe que isso pode comprometer a simultaneidade do aplicativo.

Retornar ao início

 

Mecanismo de perda de conexão/negação de solicitação Código de erro retornado Limite Tipo de solicitações negadas Recomendação

Suas solicitações no tempdb podem ser negadas devido a alguma destas três condições:

  • Estado 1: quando uma sessão usa mais de 5 GB de espaço no tempdb, a sessão é encerrada.

  • Estado 2: as transações no tempdb com logs além do tamanho de 2 GB são truncadas. Operações de exemplo que podem consumir o espaço de log em tempdb: inserir, atualizar, excluir, mesclar, criar índice.

  • Estado 3: as transações não confirmadas no tempdb podem bloquear o truncamento dos arquivos de log. Para evitar isso, a distância do LSN (número de sequência de log) mais antigo de transações ativas para a parte final do log (LSN atual) no tempdb não pode exceder 20% do tamanho do arquivo de log. Quando violada, a transação incorreta no tempdb é encerrada e revertida de modo que o log possa ser truncado.

40551: a sessão foi encerrada devido ao uso excessivo de tempdb. Tente modificar sua consulta para reduzir o uso do espaço da tabela temporária.

Estado 1: 5 GB de espaço em tempdb

Estado 2: 2 GB por transação em tempdb

Estado 3: 20% do espaço total de log em tempdb

Algumas instruções DML ou DDL no tempdb.

Modifique as consultas para reduzir o uso do espaço de tabela temporária, descarte os objetos temporários depois que não são mais necessários, trunque as tabelas ou remova tabelas não usadas.

Reduza o tamanho dos dados na sua transação no tempdb reduzindo o número de linhas ou dividindo a operação em várias transações.

Retornar ao início

 

Mecanismo de perda de conexão/negação de solicitação Código de erro retornado Limite Tipo de solicitações negadas Recomendação

Suas solicitações podem ser negadas devido a alguma destas duas condições:

  • Estado 1: o Banco de Dados SQL suporta transações que geram logs de até 2 GB. As transações com logs além desse limite serão truncadas. Operações de exemplo que podem consumir o espaço de log neste volume: inserir, atualizar, excluir, mesclar, criar índice.

  • Estado 2: as transações não confirmadas podem bloquear o truncamento dos arquivos de log. Para evitar isso, a distância do LSN (número de sequência de log) mais antigo de transações ativas para a parte final do log (LSN atual) não pode exceder 20% do tamanho do arquivo de log. Quando violada, a transação incorreta é encerrada e revertida de modo que o log possa ser truncado.

40552: a sessão foi encerrada devido ao uso excessivo de espaço no log de transações. Tente modificar menos linhas em uma única transação.

Estado 1: 2 GB por transação

Estado 2: 20% do espaço total de log

Algumas instruções DML ou DDL.

Para operações de linha, reduza o tamanho dos dados na sua transação, por exemplo, reduzindo o número de linhas ou dividindo a operação em várias transações.

Para operações de tabela/índice que exigem uma única transação, verifique se a fórmula a seguir está em conformidade com: número de linhas afetadas na tabela * (tamanho médio do campo que está sendo atualizado em bytes + 80) < 2 GB(No caso da recriação de índices, o tamanho médio do campo que está sendo atualizado deve ser substituído pelo tamanho médio do índice).

Retornar ao início

 

Mecanismo de perda de conexão/negação de solicitação Código de erro retornado Limite Tipo de solicitações negadas Recomendação

Quando há sessões aguardando concessões de memória por 20 segundos ou mais, as sessões que consomem mais de 16 MB de concessão de memória por mais de 20 segundos serão encerradas em ordem decrescente de tempo que o recurso foi mantido, de modo que a sessão mais antiga seja encerrada primeiro. A conclusão das sessões para assim que a memória necessária se tornar disponível.

40553: a sessão foi encerrada devido ao uso excessivo de memória. Tente modificar sua consulta para processar menos linhas.

Mais de 16 MB de concessão de memória por mais de 20 segundos.

Consultas que consomem concessões de memória, que incluem consultas que usam classificações e junções de hash.

Execute a consulta que ajusta-se em consultas que exigem classificações e/ou junções de hash.

Retornar ao início

Consulte também

Mostrar:
© 2015 Microsoft