Por que o Banco de Dados do Azure tem melhor desempenho com transações
Decidimos usar uma microorganização em um banco de dados do Azure. Como nossa empresa precisa apenas de "inserções" e "seleciona", decidimos suprimir todos os códigos gerenciados por código.SqlTransaction
(sem problemas de simultaneidade nos dados).
Em seguida, percebemos que nossa instância do Banco de Dados do Azure respondeu muito lentamente. O "rpc concluído"ocorreu em atrasos centenas de vezes o tempo necessário para executar uma instrução sql simples.
Em seguida, comparamos nosso código com o EF6 e vimos que o servidor respondeu muito rapidamente. Como o EF6 implementa uma transação interna, decidimos restaurar oSqlTransaction
(ReadCommited) no micro-orm e percebemos que estava tudo bem.
O Banco de Dados do Azure requer um explícitoSqlTransaction
(gerenciado pelo código)? Como é queSqlTransaction
influenciar o desempenho do banco de dados do Azure? Por que foi implementado dessa maneira?
Edição: Vou postar algumas informações mais precisas sobre a maneira como coletamos rastros. Parece que nossos logs de eventos do Azure às vezes se expressam em nanossegundos, às vezes em milissegundos. Parece tão estranho.