none
DELETE de tabelas gigantes no banco de dados RRS feed

  • 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

    quarta-feira, 1 de fevereiro de 2023 13:28

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.
    quinta-feira, 2 de fevereiro de 2023 18:32
  • 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

    sexta-feira, 3 de fevereiro de 2023 04:25
  • 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]

    sexta-feira, 3 de fevereiro de 2023 22:14