Partilhar via


Reduzir um arquivo

Este tópico descreve como reduzir um arquivo de dados ou log no SQL Server 2014 usando o SQL Server Management Studio ou o 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.

Nesse Tópico

Antes de começar

Limitações e restrições

  • O arquivo de dados primário não pode ser menor que o tamanho do arquivo primário no banco de dados modelo.

Recomendações

  • 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 reconstrução dos índices do arquivo após a redução.

Segurança

Permissões

Exige associação à função de servidor fixa sysadmin ou à função de banco de dados fixa db_owner .

Como usar o SQL Server Management Studio.

Para reduzir um arquivo de log ou de dados

  1. No Pesquisador de Objetos, conecte-se a uma instância do Mecanismo de Banco de Dados do SQL Server e expanda essa instância.

  2. Expanda bancos de dados e clique com o botão direito do mouse no banco de dados que você deseja reduzir.

  3. Aponte para Tarefas, aponte para Reduzir e clique em Arquivos.

    Banco de dados
    Exibe o nome do banco de dados selecionado.

    tipo de arquivo
    Selecione o tipo de arquivo para o arquivo. As opções disponíveis são arquivos de dados e de log . A seleção padrão é Dados. Selecionar um tipo de grupo de arquivos diferente altera as seleções nos outros campos adequadamente.

    Grupo de arquivos
    Selecione um grupo de arquivos na lista de grupos de arquivos associados ao tipo de arquivo selecionado acima. Selecionar um grupo de arquivos diferente altera as seleções nos outros campos adequadamente.

    Nome do arquivo
    Selecione um arquivo na lista de arquivos disponíveis do grupo de arquivos e do tipo de arquivo selecionados.

    Localidade
    Exibe o caminho completo para o arquivo selecionado no momento. 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 atual. Para arquivos de log, exibe o espaço alocado atual computado da saída de DBCC SQLPERF(LOGSPACE).

    Espaço livre disponível
    Para arquivos de dados, exibe o espaço livre disponível atual computado na saída de DBCC SHOWFILESTATS(fileid). Para arquivos de log, exibe o espaço livre disponível atual computado na saída de DBCC SQLPERF(LOGSPACE).

    Liberar espaço não utilizado
    Faça com que qualquer espaço não utilizado nos arquivos seja liberado para o sistema operacional e reduza o arquivo para a última extensão alocada, reduzindo o tamanho do arquivo sem mover nenhum dado. Nenhuma tentativa é feita para realocar linhas para páginas não alocadas.

    Reorganizar páginas antes de liberar espaço não utilizado
    Equivalente à execução de DBCC SHRINKFILE especificando 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 .

    Reduzir o arquivo para
    Especifica o tamanho do arquivo de destino para a operação de redução. O tamanho não pode ser menor que o espaço alocado atual ou mais do que as extensões totais alocadas ao arquivo. Inserir um valor além do mínimo ou o máximo será revertido para o mínimo ou o máximo depois que o foco for alterado ou quando qualquer um dos botões na barra de ferramentas for clicado.

    Esvaziar o arquivo migrando os dados para outros arquivos no mesmo grupo de arquivos
    Migre todos os dados do arquivo especificado. Essa opção permite que o arquivo seja removido usando a instrução ALTER DATABASE. Essa opção é equivalente à execução de DBCC SHRINKFILE com a opção EMPTYFILE.

  4. Selecione o tipo de arquivo e o nome do arquivo.

  5. 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 utilizado no arquivo seja liberado para o sistema operacional e reduz o arquivo para a última extensão alocada. Isso reduz o tamanho do arquivo sem mover dados.

  6. Opcionalmente, selecione a caixa de seleção Reorganizar arquivos antes de liberar espaço não utilizado. Se isso for selecionado, o valor de Reduzir arquivo para deve ser especificado. Por padrão, a opção é desmarcada.

    Selecionar essa opção faz com que qualquer espaço não utilizado no arquivo seja liberado para o sistema operacional e tenta realocar linhas para páginas não alocadas.

  7. Opcionalmente, insira o percentual máximo de espaço livre a ser deixado no arquivo de banco de dados após a redução do banco de dados. Os valores permitidos estão entre 0 e 99. Essa opção só estará disponível quando a reorganização de arquivos antes de liberar espaço não utilizado estiver habilitada.

  8. Opcionalmente, selecione o arquivo Vazio migrando os dados para outros arquivos na mesma caixa de seleção do grupo de arquivos .

    Selecionar essa opção move todos os dados do arquivo especificado para outros arquivos no grupo de arquivos. Em seguida, o arquivo vazio pode ser excluído. Essa opção é a mesma que executar DBCC SHRINKFILE com a opção EMPTYFILE.

  9. Clique em OK.

Usando Transact-SQL

Para reduzir um arquivo de log ou de dados

  1. Conecte-se ao Mecanismo de Banco de Dados.

  2. Na barra Padrão, clique em Nova Consulta.

  3. Copie e cole o exemplo a seguir na janela de consulta e clique em Executar. Este exemplo usa DBCC SHRINKFILE para reduzir o tamanho de um arquivo de dados nomeado DataFile1 no UserDB banco de dados para 7 MB.

USE UserDB;
GO
DBCC SHRINKFILE (DataFile1, 7);
GO

Consulte Também

DBCC SHRINKDATABASE (Transact-SQL)
Reduzir um banco de dados
Excluir dados ou arquivos de log de um banco de dados
sys.databases (Transact-SQL)
sys.database_files (Transact-SQL)