Quando olho a documentação para Accelerated Database Recovery e Read Committed Snapshot Isolation, parece que todas as desvantagens do Accelerated Database Recovery são compartilhadas pelo Read Committed Snapshot Isolation. Então, supondo que eu já tenha o Read Committed Snapshot Isolation habilitado, quais são as desvantagens do Accelerated Database Recovery?
Suspeito que não seja coincidência que tanto o Accelerated Database Recovery quanto o Read Committed Snapshot Isolation estejam habilitados por padrão no Azure. Suponha que seja o SQL Server 2019 ou o SQL Server 2022.
O oposto das vantagens 😂
Você não tem escolha, o Persistent Version Store (PVS) deve fazer parte da ativação do ADR, portanto, seu armazenamento de versão agora faz parte do banco de dados em vez de estar no tempdb .
Se você não tiver um armazenamento de versão grande, isso pode ser bom. Se você tiver um armazenamento de versão grande, o tamanho do seu banco de dados aumentará.
Como todos esses são itens que precisam ser salvos, isso pode afetar o registro e as tecnologias que consomem o registro, como replicação, CDC, grupos de disponibilidade, envio de registro, etc., o que pode causar problemas secundários.
Como o ADR usa PVS, as versões precisam ser limpas, assim como o tempdb , você não pode limpar versões que são necessárias. Isso pode fazer com que o limpador fique para trás, o PVS inche e, eventualmente, o limpador não consiga acompanhar bem ou cause outros problemas.
Houve melhorias no limpador ao longo do tempo, com o SQL Server 2022 fazendo um trabalho melhor do que o 2019. O Azure SQL DB é uma história diferente, pois geralmente contém os bits de código mais recentes (de alguma forma ou maneira), mas não é imune a esses problemas.
O ADR é bom para a maioria das cargas de trabalho; no entanto, já vi desempenho e resultados terríveis em cargas de trabalho com alto número de transações abortadas.
Isso acaba se manifestando como inchaço do PVS e tempos de recuperação não tão acelerados. Além disso, isso pode causar a necessidade de execuções manuais de limpeza do PVS, se ele ainda não estiver bloqueado. Isso também é verdade para consultas de longa execução em coisas como réplicas secundárias legíveis e AGs.
Observe que o ADR é necessário para o Bloqueio Otimizado , que atualmente está disponível apenas para o Banco de Dados SQL do Azure e o Fabric, mas pode ser esperado no SQL Server em algum momento.