Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se a:SQL Server
Banco de Dados SQL do Azure
Instância Gerenciada de SQL do Azure
Este artigo descreve como reduzir um arquivo de log ou de dados no SQL Server usando o SQL Server Management Studio ou Transact-SQL.
A redução de arquivos de dados recupera espaço com a movimentação de páginas de dados do final do arquivo para o espaço desocupado mais próximo à frente do arquivo. Quando espaço livre suficiente é criado no final do arquivo, as páginas de dados no final do arquivo podem ser desalocadas e retornadas para o sistema de arquivos.
Aviso
- Os dados movidos para reduzir um arquivo podem ser espalhados para qualquer local disponível no arquivo. Isso provoca uma fragmentação do índice e pode reduzir a velocidade do desempenho de consultas que pesquisam um intervalo do índice. Para eliminar a fragmentação, considere a recompilação dos índices no arquivo após a redução.
- As operações de redução não devem ser consideradas uma operação de manutenção regular. Arquivos de dados e de log que crescem devido a operações de negócios regulares e recorrentes não exigem operações de redução.
Limitações
- O arquivo de dados principal não pode ser menor que o arquivo principal no banco de dados
model.
Recomendações
Uma operação de redução é mais eficaz após uma operação que gera uma grande quantidade de espaço de armazenamento não utilizado, como uma instrução DELETE grande, uma operação TRUNCATE TABLE ou uma operação DROP TABLE.
A maioria dos bancos de dados exige algum espaço livre disponível para operações comuns rotineiras. Se você reduzir um arquivo de banco de dados repetidamente e perceber que ele aumentou novamente, isso indica a necessidade de espaço livre para as operações regulares. Nesses casos, reduzir repetidamente um banco de dados é uma operação inútil. Os eventos de crescimento automático necessários para aumentar o arquivo de banco de dados prejudicam o desempenho.
Os dados movidos para reduzir um arquivo podem ser espalhados para qualquer local disponível no arquivo. Isso provoca uma fragmentação do índice e pode reduzir a velocidade do desempenho de consultas que pesquisam um intervalo do índice. Para eliminar a fragmentação, considere recriar os índices do arquivo após reduzir seu tamanho.
A menos que você tenha um requisito específico, não defina a opção de banco de dados AUTO_SHRINK como ON.
Comentários
As operações de redução em andamento podem bloquear outras consultas no banco de dados e podem ser bloqueadas por consultas já em andamento. Introduzidas no SQL Server 2022 (16.x), as operações de redução de arquivo têm uma WAIT_AT_LOW_PRIORITY opção. Esse recurso é uma nova opção adicional para DBCC SHRINKDATABASE e DBCC SHRINKFILE. Se uma nova operação de redução no WAIT_AT_LOW_PRIORITY modo não conseguir obter os bloqueios necessários devido a uma consulta de longa execução já em andamento, a operação de redução acabará após um minuto e sairá silenciosamente, impedindo que outras consultas sejam bloqueadas.
WAIT_AT_LOW_PRIORITY aplica-se a arquivos de dados (.mdf &ndf). Ele não se aplica a arquivos de log de transações. Para obter mais informações, consulte DBCC SHRINKFILE (Transact-SQL).
Permissões
Exige associação à função de servidor fixa sysadmin ou à função de banco de dados fixa db_owner .
Usar o SSMS (SQL Server Management Studio) para reduzir um arquivo de dados ou log
No Pesquisador de Objetos, conecte-se a uma instância do Mecanismo de Banco de Dados do SQL Server e expanda-a.
Expanda Bancos de Dados e clique com o botão direito do mouse no banco de dados que deseja reduzir.
Aponte para Tarefas, depois para Reduzir e selecione Arquivos.
Banco de dados
Exibe o nome do banco de dados selecionado.Tipo de arquivo
Seleciona o tipo de arquivo para o arquivo. As escolhas disponíveis são arquivos de Dados e de Log . A seleção padrão é Dados. Selecionar um tipo diferente de grupo de arquivos altera as seleções nos demais campos de acordo com o tipo selecionado.Grupo de arquivos
Selecione um grupo de arquivos da lista de grupos de arquivos associado com o Tipo de arquivo selecionado acima. Selecionar um grupo de arquivos diferente altera as seleções nos outros campos de forma correspondente.Nome do arquivo
Selecione um arquivo da lista de arquivos disponíveis do grupo de arquivos e tipo de arquivos selecionados.Localidade
Exibe o caminho completo para o arquivo atualmente selecionado. O caminho não é editável, mas pode ser copiado para a área de transferência.Espaço alocado no momento
Para arquivos de dados, exibe o espaço alocado no momento. Para arquivos de log, exibe o espaço alocado atualmente, calculado com base na saída deDBCC SQLPERF(LOGSPACE).Espaço livre disponível
Para arquivos de dados, exibe o espaço livre disponível atual calculado com base na saída deDBCC SHOWFILESTATS(fileid). Para arquivos de log, exibe o espaço livre atualmente disponível calculado com base na saída deDBCC SQLPERF(LOGSPACE).Liberar espaço não utilizado
Faz com que qualquer espaço não utilizado nos arquivos seja liberado para o sistema operacional e reduz o arquivo para a última extensão alocada, reduzindo o tamanho do arquivo sem mover nenhum dado. Não é feita nenhuma tentativa para realocar linhas em páginas não alocadas.Reorganizar páginas antes de liberar espaço não utilizado
Equivale a executarDBCC SHRINKFILEespecificando o tamanho do arquivo de destino. Quando essa opção é selecionada, o usuário deve especificar um tamanho de arquivo de destino na caixa Reduzir arquivo a.Reduzir arquivo a
Especifica o tamanho do arquivo de destino para a operação de redução. O tamanho não pode ser menor do que o espaço alocado no momento nem mais do que a extensão total alocada para o arquivo. Digitar um valor abaixo do mínimo ou além do máximo fará com que ele reverta ao mínimo ou ao máximo assim que o foco for alterado ou quando você selecionar qualquer botão da barra de ferramentas.Esvaziar o arquivo migrando os dados para outros arquivos do mesmo grupo
Migra todos os dados do arquivo especificado. Essa opção permite que o arquivo seja removido usando aALTER DATABASEinstrução. Essa opção é equivalente a executarDBCC SHRINKFILEcom a opçãoEMPTYFILE. Não há suporte aEMPTYFILEno Banco de Dados SQL do Azure ou na Hiperescala do Banco de Dados SQL do Azure.Selecione o tipo e o nome do arquivo.
Opcionalmente, marque a caixa de seleção Liberar espaço não utilizado .
Selecionar essa opção faz com que qualquer espaço não usado no arquivo seja liberado para o sistema operacional e reduz o arquivo à última extensão alocada. Isso reduz o tamanho do arquivo sem mover quaisquer dados.
Opcionalmente, marque a caixa de seleção Reorganizar arquivos antes de liberar o espaço não utilizado . Se isso for selecionado, o valor Reduzir arquivo para deve ser especificado. Por padrão, a opção está desmarcada.
Selecionar essa opção faz com que qualquer espaço não usado no arquivo seja liberado para o sistema operacional e tenta realocar linhas a páginas não alocadas.
Opcionalmente, insira a porcentagem máxima de espaço livre a ser deixado no arquivo de banco de dados após o banco de dados ter sido reduzido. Os valores permitidos estão entre 0 e 99. Essa opção só está disponível quando Reorganizar arquivos antes de liberar o espaço não utilizado estiver habilitada.
Opcionalmente, marque a caixa de seleção Esvaziar arquivo migrando os dados para outros arquivos no mesmo grupo de arquivos .
Selecionar essa opção move todos os dados do arquivo especificado para outros arquivos no grupo de arquivos. O arquivo vazio pode, então, ser excluído. Essa opção é igual a executar
DBCC SHRINKFILEcom a opção EMPTYFILE.Selecione OK.
Usar Transact-SQL para reduzir um arquivo de dados ou log
Conecte-se ao Mecanismo de Banco de Dados.
Na barra Padrão, selecione Nova Consulta.
Copie e cole o exemplo a seguir na janela de consulta e selecione Executar. Este exemplo usa DBCC SHRINKFILE (Transact-SQL) para reduzir o tamanho de um arquivo de dados nomeado
DataFile1noUserDBbanco de dados para 7 MB.
USE UserDB;
GO
DBCC SHRINKFILE (DataFile1, 7);
GO
Conteúdo relacionado
- Considerações para as configurações de crescimento automático e redução automática no SQL Server
- Arquivos de banco de dados e grupos de arquivos
- sys.databases (Transact-SQL)
- sys.database_files (Transact-SQL)
- FILE_ID (Transact-SQL)
- DBCC SHRINKDATABASE (Transact-SQL)
- DBCC SHRINKFILE (Transact-SQL)
- Excluir arquivos de dados ou de log de um banco de dados
- Reduzir um banco de dados