Inquiridor
DELETE de tabelas gigantes no banco de dados

Pergunta
-
Pessoal bom dia,
Estou com uma dúvida, tenho efetuado a limpeza de dados antigos da minha base de dados, mas percebo que o espaço continua sendo ocupado no DADOS, exemplo existe uma tabela no banco de mais de 1TB, quando faço a exclusão de dados mais antigos queria saber se o sql se reorganiza e volta usar aquele espaço na partição primaria, ou apenas exclui as linhas mas o espaço ainda fica como usado, caso positivo como faço para limpar esse espaço ???
Desde ja agradeço
Todas as Respostas
-
Olá Dr. Khan,
Obrigado por levantar sua investigação nos fóruns do MSDN.
De acordo com a pergunta, consegui localizar este documento que pode te ajudar.
Se você tiver informações adicionais que possam nos ajudar para procurar por mais informações, poderia adicioná-las para acelerar o tempo de resposta e ter uma melhor certeza sobre o que você precisa.
Fico no aguardo.
Pablo Garcia
____________________________
Por favor, lembre-se de marcar "PROPOR COMO RESPOSTA" para respostas que resolveram seu problema, é uma maneira comum de reconhecer aqueles que ajudaram e torna mais fácil para outros visitantes encontrarem a solução mais tarde. -
Olá!
O espaço continua alocado após a exclusão. Isso acontece porque seria necessário uma realocação de dados frequente, o que afetaria, dependendo da quantidade de dados, drasticamente a performance do banco de dados, e até mesmo causaria indisponibilidade.Para "limpar" esse espaço, você pode forçar a realocação de maneira pontual utilizando o "DBCC SHRINKDATABASE (meuBD, TRUNCATEONLY);", reduzindo o arquivo de dados e de log do banco de dados.
Somente a título de curiosidade, e digo isso porque o passo a seguir não é indicado como uma boa prática, existe a opção de "Shrink automático", nas configurações do banco de dados:
Documentação de apoio: https://learn.microsoft.com/pt-br/sql/t-sql/database-console-commands/dbcc-shrinkdatabase-transact-sql?view=sql-server-ver16
-
Olá!
O espaço continua alocado após a exclusão. Isso acontece porque seria necessário uma realocação de dados frequente, o que afetaria, dependendo da quantidade de dados, drasticamente a performance do banco de dados, e até mesmo causaria indisponibilidade.Para "limpar" esse espaço, você pode forçar a realocação de maneira pontual utilizando o "DBCC SHRINKDATABASE (meuBD, TRUNCATEONLY);", reduzindo o arquivo de dados e de log do banco de dados.
Somente a título de curiosidade, e digo isso porque o passo a seguir não é indicado como uma boa prática, existe a opção de "Shrink automático", nas configurações do banco de dados:
Documentação de apoio: https://learn.microsoft.com/pt-br/sql/t-sql/database-console-commands/dbcc-shrinkdatabase-transact-sql?view=sql-server-ver16
Elder,
Muito bem abordada a sua resposta e sugestão.
Pedro Antonio Galvão Junior [MSc. | MVP | MCC | MSTC | MIE | MTAC | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados Relacional | Data Warehouse | Data Mining | Professor Universitário | @JuniorGalvaoMVP | http://pedrogalvaojunior.com.br]