Eu criei um pool elástico SQL, mas não tenho mais armazenamento:
Eu corro DBCC SHRINKDATABASE (N'db1')
em cada banco de dados para reivindicar espaço seguindo este guia: Reduza o tamanho do banco de dados SQL do Azure , mas parece que não ganhei nenhum espaço.
Devo usar DBCC SHRINKFILE (log, 0)
?
Estou considerando o encolhimento automático, mas se a lógica por trás for a mesma do SHRINKDATABASE, não há sentido em colocá-lo no lugar.
Então, como reivindicar espaço não utilizado no SQL Elastic Pool?
Por enquanto encontrei esta solução:
É mais rápido graças a
TRUNCATEONLY
e faz merda:Também estou testando esta resposta de Davide De Pretto e vou comparar as duas opções.
Verifique o tamanho do log de transações - a redução depende do seu modelo de recuperação, que lida com o log de transações de maneira diferente.
Para o modelo de recuperação SIMPLES, apenas uma redução deve ser suficiente:
Para o modo de recuperação COMPLETA, você pode alternar temporariamente para simples e fazer o seguinte:
ALTER DATABASE dbname SET RECOVERY SIMPLE DBCC SHRINKDATABASE(dbname) ALTER DATABASE dbname SET RECOVERY FULL
Ou tente liberar/descartar o log de transação: