VENDAS: 1-800-867-1389

Gerenciamento de recursos do Banco de dados SQL do Azure

Atualizado: fevereiro de 2015

Este tópico descreve como o Banco de dados SQL do Azure controla os recursos dedicados aos bancos de dados para atingir uma previsibilidade de desempenho máximo. A quantidade de recursos disponíveis para cada banco de dados depende do nível de desempenho atribuído ao banco de dados. Use as informações neste tópico para entender os mecanismos usados para controlar os recursos. Esta informação é útil ao desenvolver seu aplicativo para um desempenho ótimo. O tópico inclui algumas práticas recomendadas para problemas encontrados em cada categoria.

O Banco de dados SQL do Azure usa três mecanismos diferentes para controlar os recursos:

  • Governança de recursos

    CPU, Memória, gravações de Log, e consultas de IOPS estão sujeitas à governança de recursos. Este mecanismo recentemente introduzido, em contraste com a imposição de limites máximos e limitações, não impede nem termina a execução de consultas, mas enfileira as consultas e concede recursos às consultas enfileiradas assim que se tornarem disponíveis.

  • Aplicação de limites

    Os limites máximos são aplicados para a quantidade de conexões que possam ser abertas em um banco de dados, bem como em uma execução paralela de consultas (threads de trabalho).

  • Limitação

    A limitação acontece na situação onde uma máquina que hospeda bancos de dados atinge uma quantidade crítica de carga, o que leva a uma interrupção potencial do sistema. A limitação é o mecanismo de último recurso do sistema para se proteger de sobrecargas e é raramente encontrado.

Um dos objetivos de design das camadas de serviço Basic, Standard e Premium, é que o Banco de dados SQL do Azure se comporte como se o banco de dados estivesse sendo executado na sua própria máquina, completamente isolado de outros bancos de dados. A governança de recursos emula este comportamento durante a execução de consultas. Se a utilização de recursos agregados atingir o máximo de recursos disponíveis do CPU, Memória, Gravações de Log e Solicitações de IOPS atribuídos ao banco de dados, a governança de recursos enfileirará solicitudes em execução e atribuirá recursos para as solicitações enfileiradas assim que elas se liberarem.

Assim como na máquina dedicada, a utilização de todos os recursos disponíveis resultará em uma execução maior de consultas atualmente em execução, o que pode resultar em tempos limite do cliente. Os aplicativos com lógica de repetição agressiva e aplicativos que executarem consultas em bancos de dados com uma frequência alta podem encontrar erros ao tentar executar novas consultas devido à indisponibilidade de threads de trabalho.

Recomendações: Monitorar a utilização do recurso bem como os tempos médios de resposta de consultas ao se aproximar à máxima utilização de um banco de dados. Ao encontrar consultas de execução longa, você geralmente tem três opções:

  1. Reduz a quantidade de solicitações de entrada ao banco de dados para prevenir o tempo limite e a acumulação de threads de trabalho

  2. Atribui um nível de desempenho maior ao banco de dados.

  3. Otimiza solicitações para reduzir a utilização do recurso de cada consulta. Para mais informações, consulte a seção Ajuste/Dicas de Consulta no artigo Orientação sobre o Desempenho do Banco de Dados SQL do Azure.

O Banco de dados SQL do Azure emprega governança de recursos definindo um limite máximo de threads de trabalho simultâneos (solicitações) e sessões simultâneas para cada banco de dados. O mecanismo de governança de recursos varia dependendo se o banco de dados de destino for um banco de dados Web/Business Edition ou um banco de dados Premium. Para obter mais informações, consulte Governança de recursos do Banco de dados SQL do Azure.

O número de conexões a um banco de dados SQL bem com o número de solicitações que pode ser processado em paralelo é restrito. O banco de dados SQL permite que o número de conexões ao banco de dados seja maior que um número de solicitações simultâneas para dar suporte ao pooling da conexão.

Embora a quantidade de conexões que estiver disponível possa facilmente ser controlada pelo aplicativo, a quantidade de solicitações em paralelo é com frequência mais difícil de estimar e controlar. Especialmente durante cargas de picos quando o aplicativo envia muitas solicitações ou o banco de dados não pode atingir seus limites de recurso e começa a acumular threads de trabalho devido a consultas de execução mais longa, o erro <NÚMERO> pode ser encontrado.

Recomendações: Quando os threads de trabalho estiverem se esgotando, você geralmente tem três opções:

  1. Reduz a quantidade de solicitações de entrada ao banco de dados para prevenir a acumulação de threads de trabalho

  2. Atribuir um nível de alto desempenho ao banco de dados que permitirá um maior número de solicitações simultâneas. Para obter mais informações, consulte Camadas de serviço e níveis de desempenho do Banco de Dados SQL do Azure.

  3. Otimiza solicitações para reduzir a utilização do recurso de cada consulta. Para mais informações, consulte a seção Ajuste/Dicas de Consulta no artigo Orientação sobre o Desempenho do Banco de Dados SQL do Azure.

A seguinte tabela lista os limites do recurso além do qual o Banco de dados SQL do Azure nega as solicitudes ou termina as conexões do recurso afetado, e é retornado um código de erro

 

Recurso Limite Código de erro retornado

Database Size

Depende da cota do banco de dados (MAXSIZE)

40544

Transaction Duration

Estado 1: 24 horas

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

40549

Transaction Lock Count

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

Transaction Log Length

Estado 1: 2 GB por transação

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

40552

Memory Usage

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

40553

Para obter detalhes sobre cada código de erro, consulte Limites de recursos do Banco de dados SQL do Azure.

A severidade da limitação se enquadra em um dos dois estágios a seguir:

  • Limitação suave: este é o primeiro estágio quando os recursos do computador, como o log de transações, a E/S e o armazenamento, excedem os limites predefinidos de segurança. O Banco de dados SQL seleciona um subconjunto dos bancos de dados que consomem a maioria dos recursos, e limita suas atividades. Nem todos os bancos de dados no computador passam por limitação, apenas aqueles que usam a maioria dos recursos. O uso abaixo do limite predefinido indica que há recursos suficientes para todos os bancos de dados no servidor.

  • Limitação rígida: este é o segundo estágio e o final, quando um computador é afetado criticamente devido à sobrecarga. Com a limitação de hardware, nenhuma nova conexão é permitida para os bancos de dados hospedados no computador até que os recursos sejam liberados. O Banco de dados SQL retorna mensagens de erro para novas tentativas de conexão indicando que o recurso foi excedido.

Para obter mais informações sobre o mecanismo de limitação do mecanismo, o código de erro correspondente que é retornado e as recomendações sobre como endereçá-lo, consulte. Limitação do banco de dados SQL do Azure

Consulte também

Isso foi útil para você?
(1500 caracteres restantes)
Agradecemos os seus comentários
Mostrar:
© 2015 Microsoft