Compartilhar via


Reduzir um banco de dados

Este tópico descreve como reduzir um banco de dados usando o Object 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.

Antes de começar

Limitações e restrições

  • O banco de dados não pode ser menor que o tamanho mínimo do banco de dados. O tamanho mínimo é o tamanho especificado quando o banco de dados foi criado originalmente ou o último conjunto de tamanho explícito usando uma operação de alteração de tamanho de arquivo, como DBCC SHRINKFILE. Por exemplo, se um banco de dados foi criado originalmente com um tamanho de 10 MB e cresceu para 100 MB, o menor tamanho ao qual o banco de dados pode ser reduzido é de 10 MB, mesmo que todos os dados no banco de dados sejam excluídos.

  • Você não pode reduzir um banco de dados enquanto o banco de dados está em processo de backup. Por outro lado, você não pode fazer backup de um banco de dados enquanto uma operação de redução no banco de dados está em processo.

  • DBCC SHRINKDATABASE falhará quando encontrar um índice columnstore otimizado para memória xVelocity. O trabalho concluído antes de encontrar o índice columnstore será bem-sucedido, assim o banco de dados poderá ser menor. Para concluir DBCC SHRINKDATABASE, desabilite todos os índices columnstore antes de executar DBCC SHRINKDATABASE e recompile os índices columnstore.

Recomendações

  • Para exibir a quantidade atual de espaço livre (não alocado) no banco de dados. Para obter mais informações, consulte Exibir dados e informações de espaço de log para um banco de dados

  • Considere as seguintes informações ao planejar reduzir um banco de dados:

    • Uma operação de redução é mais eficaz após uma operação que cria muito espaço não utilizado, como uma operação de truncar tabela ou uma operação de exclusão de tabela.

    • A maioria dos bancos de dados exige algum espaço livre disponível para operações comuns rotineiras. Se você reduzir um banco de dados repetidamente e observar que o tamanho do banco de dados cresce novamente, isso indica que o espaço que foi reduzido é necessário para operações regulares. Nesses casos, reduzir repetidamente o banco de dados é uma operação desperdiçada.

    • Uma operação de redução não preserva o estado de fragmentação dos índices no banco de dados e geralmente aumenta a fragmentação em um grau. Esse é outro motivo para não reduzir repetidamente o banco de dados.

    • A menos que você tenha um requisito específico, não defina a opção AUTO_SHRINK banco de dados como ON.

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 banco 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 Banco de Dados.

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

    Espaço alocado atual
    Exibe o espaço total usado e não utilizado para o banco de dados selecionado.

    Espaço livre disponível
    Exibe a soma do espaço livre nos arquivos de log e de dados do banco de dados selecionado.

    Reorganizar arquivos antes de liberar espaço não utilizado
    Selecionar essa opção é equivalente à execução de DBCC SHRINKDATABASE especificando uma opção de porcentagem de destino. Limpar essa opção é equivalente à execução do comando DBCC SHRINKDATABASE com o parâmetro TRUNCATEONLY. Por padrão, essa opção não é selecionada quando a caixa de diálogo é aberta. Se essa opção estiver selecionada, o usuário deverá especificar uma opção de porcentagem de destino.

    Espaço livre máximo em arquivos após o encolhimento
    Insira o percentual máximo de espaço livre a ser deixado nos arquivos de banco de dados depois que o banco de dados tiver sido reduzido. Os valores permitidos estão entre 0 e 99.

  4. Clique em OK.

Usando Transact-SQL

Para reduzir um banco 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 SHRINKDATABASE para diminuir o tamanho dos dados e arquivos de log no UserDB banco de dados e para permitir um espaço livre percentual 10 no banco de dados.

DBCC SHRINKDATABASE (UserDB, 10);
GO

Acompanhamento: depois de reduzir um banco de dados

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.

Consulte Também

Reduzir um arquivo
sys.databases (Transact-SQL)
sys.database_files (Transact-SQL)
DBCC (Transact-SQL)
DBCC SHRINKFILE (Transact-SQL)
Arquivos e grupos de arquivos do banco de dados