Quero encontrar o espaço total usado e restante para cada banco de dados no Azure SQL MI.
Para isso, a partir de um exemplo, quando clico com o botão direito em um banco de dados e seleciono propriedades, vejo o seguinte exemplo de saída, onde o tamanho total deve ser de aproximadamente 365 GB:
data_size log_size total_size
TEST_DB 355.69042968750 1.31347656250 357.00390625000
Quando executo o script a seguir, obtenha o tamanho de todas as tabelas no banco de dados, a soma das tabelas está em torno de ~ 500 MB, onde não tenho ideia de para onde vão os 364,5 GB restantes.
Além disso, quando executo o seguinte script da solução ( https://dba.stackexchange.com/a/339009/289736 ) novamente, vejo tamanhos de dados muito menores do que o tamanho dos dados, que é em torno de ~ 765 MB:
Eu me perco na maneira correta de obter o tamanho de um banco de dados, pois abordagens diferentes mostram tamanhos diferentes. Se houver uma enorme lacuna entre o tamanho alocado e o tamanho usado, de onde será gerada a lacuna?
Lembre-se de que os arquivos de dados e log do banco de dados são uma espécie de contêineres com espaço em disco pré-alocado, e se o seu arquivo de dados tiver 365 GB e os dados dentro dele tiverem 730 MB, isso significa que o arquivo de dados está mais de 99% vazio.
Para esta consulta específica, use meu procedimento armazenado ServerSpaceUsage .
Para saber detalhes sobre um banco de dados específico (como o seu de 365 GB) e tabelas dentro dele, use meu DatabaseSpaceUsage
Instale DatabaseSpaceUsage no banco de dados em questão e execute sem nenhum parâmetro, alternativamente instale no banco de dados mestre e execute
exec DatabaseSpaceUsage 'TEST_DB'