Estou trabalhando com um arquivo de dados primário de 2,3 TB e atualmente tenho cerca de 1 TB de espaço não utilizado. Recentemente, realizei compactação em nível de linha na maior tabela do banco de dados, o que reduziu o tamanho da tabela de 0,9 TB para 0,4 TB. No entanto, após essa compactação, o tamanho do arquivo cresceu e, embora o espaço usado pela tabela tenha diminuído, o espaço geral não utilizado no arquivo não diminuiu de acordo.
Meu problema é como recuperar esse espaço não utilizado, considerando que este é um banco de dados baseado em relatórios sem modelagem, o que significa que não há chaves primárias ou índices agrupados.
Meu teste inicial foi executar dbcc shrinkfile(<file_name>, TRUNCATEONLY), mas nenhum espaço não alocado foi encontrado no final da página. A próxima coisa que eu tentaria seria voltar para a tabela massiva e criar um índice de cluster com a esperança de mover o espaço não alocado da operação de compactação para o final do arquivo, mas não há espaço não alocado naquela tabela. Além disso, há apenas cerca de 7 GB de espaço não alocado nas tabelas.
Isto é o que eu descobri depois de verificar o uso de espaço do arquivo: Tamanho do arquivo (GB): 2.287 Espaço usado (GB): 1.311 Espaço não alocado (GB): 976. Aqui estão os resultados da execução de exec sp_spaceused: Tamanho do banco de dados: 2.372.346,56 MB Espaço não alocado: 999.150,95 MB Reservado: 1.375.788.088 KB Dados: 1.162.793.432 KB Tamanho do índice: 204.355.584 KB Não utilizado: 8.639.072 KB.
Não sou administrador de banco de dados, então não tenho ideia do que poderia fazer. Alguém tem alguma sugestão?