Observamos recentemente uma grave degradação de desempenho em um banco de dados SQL Azure em execução no nível de desempenho Standard3 - a utilização da CPU passou de dez por cento para cinquenta por cento para quase cem por cento em apenas uma hora. Portanto, alteramos o nível de desempenho para Premium2 e a utilização da CPU caiu imediatamente para cerca de oito por cento.
O Standard3 oferece 100 DTUs e o Premium2 oferece 250 DTUs. O que significa que oito por cento de P2 são apenas vinte DTUs, o que está muito longe de usar todas as 100 DTUs no Standard3.
Essas DTUs são diferentes? Caso contrário, como é possível essa queda repentina de utilização ao mudar de um nível de desempenho de 100 DTUs para um nível de desempenho de 250 DTUs?
O desempenho dos bancos de dados do Azure é expresso em termos de DTUS, o que significa o número de transações que podem ser concluídas por segundo. Além disso, também limita a quantidade máxima de memória, cpu, IO que seu banco de dados obterá. Consulte a tabela abaixo para obter mais detalhes e preste atenção à seção de solicitações de sessão.
Espero que a imagem acima esclareça as diferenças entre diferentes camadas de banco de dados. Mais abaixo está o que a Documentação do Azure tem a dizer quando usar diferentes camadas de banco de dados.
Sempre que você quiser estimar o desempenho do banco de dados do Azure, verifique abaixo o DMVS, que fornece mais detalhes sobre o uso de DTU expresso em termos de IO, log, memória, CPU.
--Este DMV contém dados de apenas uma hora, mas capturados a cada 15 segundos
--Este DMV contém dados por 14 dias com intervalo de captura de 5 minutos
Sempre que você vê uma métrica DTU consistentemente em 90%, é um indicador de gargalo e pode ser solucionado da mesma maneira, solucionamos problemas em nossos servidores locais.
Digamos, por exemplo, que você esteja vendo a CPU consistentemente em 90% por um período de tempo a partir dos dados capturados pelo DMV, você pode começar coletando consultas que estão causando alta CPU, veja se elas podem ser ajustadas para consumir menos CPU. seus esforços de ajuste estão esgotados, então você pode precisar atualizar definitivamente para um nível superior
Referências: https://azure.microsoft.com/en-in/documentation/articles/sql-database-performance-guidance/#monitoring-resource-use-with-sysresourcestats
Fiquei igualmente confuso ao olhar para os preços desses dois níveis. 100 DTUs no padrão custam $ 150/mês e 125 DTUs no Premium custam $ 465/mês, imaginei que algo mais deveria explicar essa disparidade. Acho que esta linha de https://learn.microsoft.com/en-us/azure/sql-database/sql-database-service-tiers-dtu#choosing-a-service-tier-in-the-dtu-based -modelo de compra deve explicar a diferença:
Parece que uma DTU Premium vale 19x mais do que uma DTU Standard
Desta vez, o motivo foi o SQL Azure mudando de ideia sobre qual índice usar para uma consulta executada com frequência. Às vezes, o SQL Azure decide que alterar um índice usado talvez seja uma boa ideia (com base nas métricas coletadas). No momento em que o problema foi observado, faltava validação a esse mecanismo - uma vez que a consulta era alternada para outro índice, o mecanismo de banco de dados não validava, havia uma melhoria real. Não faço ideia se isso mudou desde aquela época. A maneira de contornar essa situação é usando
WITH INDEX
dica.A melhoria de desempenho que observamos não foi devido à alteração do nível de desempenho por si só, apenas quando Standard mudou para Premium, presumivelmente houve uma alteração de hardware e, portanto, as estatísticas do banco de dados foram limpas e o mecanismo de banco de dados reconsiderou os planos de consulta mais uma vez e, portanto, quando mudamos para Premium o motor foi redefinido para o plano antigo, é por isso que obtivemos a melhoria de desempenho dessa vez.
Se você estiver procurando a nova comparação baseada em SQL vCore do Azure , esses artigos de sites de terceiros e sites oficiais da Microsoft devem fornecer mais informações.