Reduzir um banco de dadosShrink a Database

APLICA-SE A: simSQL Server simBanco de Dados SQL do Azure SQL nãoAzure Synapse Analytics (SQL DW) nãoData Warehouse Paralelo APPLIES TO: yesSQL Server yesAzure SQL Database noAzure Synapse Analytics (SQL DW) noParallel Data Warehouse

Este tópico descreve como reduzir um banco de dados usando o Pesquisador de Objetos no SQL Server 2019 (15.x)SQL Server 2019 (15.x) usando o SQL Server Management StudioSQL Server Management Studio ou o Transact-SQLTransact-SQL.This topic describes how to shrink a database by using Object in SQL Server 2019 (15.x)SQL Server 2019 (15.x) by using SQL Server Management StudioSQL Server Management Studio or Transact-SQLTransact-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.Shrinking data files recovers space by moving pages of data from the end of the file to unoccupied space closer to the front of the file. 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.When enough free space is created at the end of the file, data pages at end of the file can be deallocated and returned to the file system.

Neste tópicoIn This Topic

Antes de começarBefore You Begin

Limitações e restriçõesLimitations and Restrictions

  • O banco de dados não pode se tornar menor que o tamanho mínimo do banco de dados.The database cannot be made smaller than the minimum size of the database. O tamanho mínimo é aquele especificado na criação inicial do banco de dados ou o último tamanho explicitamente configurado por meio de uma operação de alteração de tamanho de arquivo, como DBCC SHRINKFILE.The minimum size is the size specified when the database was originally created, or the last explicit size set by using a file-size-changing operation, such as DBCC SHRINKFILE. Por exemplo, se um banco de dados foi criado originalmente com um tamanho de 10 MB e atingir 100 MB, a menor redução desse banco de dados será de 10 MB, mesmo se todos os dados do banco de dados forem excluídos.For example, if a database was originally created with a size of 10 MB and grew to 100 MB, the smallest size the database could be reduced to is 10 MB, even if all the data in the database has been deleted.

  • Não é possível reduzir um banco de dados enquanto ele estiver sendo armazenado em backup.You cannot shrink a database while the database is being backed up. Da mesma forma, não é possível fazer backup de um banco de dados enquanto houver uma operação de redução em processamento.Conversely, you cannot backup a database while a shrink operation on the database is in process.

  • DBCC SHRINKDATABASE falhará quando encontrar um índices columnstore xVelocity de memória otimizada.DBCC SHRINKDATABASE will fail when it encounters an xVelocity memory optimized columnstore index. O trabalho concluído antes de encontrar o índice de columnstore será bem-sucedido, de modo que o banco de dados talvez seja menor.Work completed before encountering the columnstore index will succeed so the database might be smaller. Para concluir DBCC SHRINKDATABASE, desabilite todos os índices de columnstore antes de executar DBCC SHRINKDATABASE e recrie os índices de columnstore.To complete DBCC SHRINKDATABASE, disable all columnstore indexes before executing DBCC SHRINKDATABASE, and then rebuild the columnstore indexes.

RecomendaçõesRecommendations

  • Para visualizar a quantidade atual de espaço livre (não alocado) no banco de dados.To view the current amount of free (unallocated) space in the database. Para obter mais informações, consulte Exibir dados e informações de espaço de log para um banco de dadosFor more information, see Display Data and Log Space Information for a Database

  • Considere as seguintes informações ao planejar reduzir um banco de dados:Consider the following information when you plan to shrink a database:

    • Uma operação de redução é mais eficiente depois de uma operação que cria muito espaço não utilizado, como operações que truncam ou excluem uma tabela.A shrink operation is most effective after an operation that creates lots of unused space, such as a truncate table or a drop table operation.

    • A maioria dos bancos de dados exige algum espaço livre disponível para operações comuns rotineiras.Most databases require some free space to be available for regular day-to-day operations. Se você reduzir um banco de dados repetidamente e perceber que ele aumentou novamente, isso indica que o espaço reduzido é necessário para as operações rotineiras.If you shrink a database repeatedly and notice that the database size grows again, this indicates that the space that was shrunk is required for regular operations. Nesse caso, reduzir repetidamente um banco de dados é uma operação inútil.In these cases, repeatedly shrinking the database is a wasted operation.

    • Uma operação de redução não preserva o estado de fragmentação de índices do banco de dados e, geralmente, aumenta o nível de fragmentação.A shrink operation does not preserve the fragmentation state of indexes in the database, and generally increases fragmentation to a degree. Essa é outra razão para não reduzir o banco de dados repetidamente.This is another reason not to repeatedly shrink the database.

    • A menos que você tenha um requisito específico, não defina a opção de banco de dados AUTO_SHRINK como ON.Unless you have a specific requirement, do not set the AUTO_SHRINK database option to ON.

SegurançaSecurity

PermissõesPermissions

Exige associação à função de servidor fixa sysadmin ou à função de banco de dados fixa db_owner .Requires membership in the sysadmin fixed server role or the db_owner fixed database role.

Usando o SQL Server Management StudioUsing SQL Server Management Studio

Para reduzir um banco de dadosTo shrink a database

  1. No Pesquisador de Objetos, conecte-se a uma instância do Mecanismo de Banco de Dados do SQL ServerSQL Server Database Enginee expanda-a.In Object Explorer, connect to an instance of the Mecanismo de Banco de Dados do SQL ServerSQL Server Database Engine, and then expand that instance.

  2. Expanda Bancos de Dadose clique com o botão direito do mouse no banco de dados que deseja reduzir.Expand Databases, and then right-click the database that you want to shrink.

  3. Aponte para Tarefas, depois Reduzire clique em Banco de dados.Point to Tasks, point to Shrink, and then click Database.

    Backup de banco de dadosDatabase
    Exibe o nome do banco de dados selecionado.Displays the name of the selected database.

    Espaço alocado atualCurrent allocated space
    Exibe o espaço total utilizado e não utilizado para o banco de dados selecionado.Displays the total used and unused space for the selected database.

    Espaço livre disponívelAvailable free space
    Exibe a soma de espaço livre no log e nos arquivos de dados do banco de dados selecionado.Displays the sum of free space in the log and data files of the selected database.

    Reorganizar arquivos antes de liberar espaço não utilizadoReorganize files before releasing unused space
    Selecionar essa opção é equivalente a executar DBCC SHRINKDATABASE especificando uma opção de porcentagem de destino.Selecting this option is equivalent to executing DBCC SHRINKDATABASE specifying a target percent option. Desmarcar esta opção é o mesmo que executar DBCC SHRINKDATABASE com a opção TRUNCATEONLY.Clearing this option is equivalent to executing DBCC SHRINKDATABASE with TRUNCATEONLY option. Por padrão, essa opção não é selecionada quando a caixa de diálogo está aberta.By default, this option is not selected when the dialog is opened. Se esta opção for selecionada, o usuário deverá especificar uma opção de porcentagem de destino.If this option is selected, the user must specify a target percent option.

    Máximo espaço livre em arquivos após a reduçãoMaximum free space in files after shrinking
    Digite a porcentagem máxima de espaço livre a ser deixado nos arquivos de banco de dados após a redução do banco de dados.Enter the maximum percentage of free space to be left in the database files after the database has been shrunk. Os valores permitidos estão entre 0 e 99.Permissible values are between 0 and 99.

  4. Clique em OK.Click OK.

Usando o Transact-SQLUsing Transact-SQL

Para reduzir um banco de dadosTo shrink a database

  1. Conecte-se ao Mecanismo de Banco de DadosDatabase Engine.Connect to the Mecanismo de Banco de DadosDatabase Engine.

  2. Na barra Padrão, clique em Nova Consulta.From the Standard bar, click New Query.

  3. Copie e cole o exemplo a seguir na janela de consulta e clique em Executar.Copy and paste the following example into the query window and click Execute. Este exemplo usa DBCC SHRINKDATABASE para reduzir o tamanho dos arquivos de dados e de log no banco de dados UserDB e liberar 10 por cento de espaço livre no banco de dados.This example uses DBCC SHRINKDATABASE to decreases the size of the data and log files in the UserDB database and to allow for 10 percent free space in the database.

DBCC SHRINKDATABASE (UserDB, 10);
GO

Acompanhamento: depois de reduzir um banco de dadosFollow Up: After you shrink a database

Os dados movidos para reduzir um arquivo podem ser espalhados para qualquer local disponível no arquivo.Data that is moved to shrink a file can be scattered to any available location in the file. Isso provoca uma fragmentação do índice e pode reduzir a velocidade do desempenho de consultas que pesquisam um intervalo do índice.This causes index fragmentation and can slow the performance of queries that search a range of the index. Para eliminar a fragmentação, considere a recompilação dos índices no arquivo após a redução.To eliminate the fragmentation, consider rebuilding the indexes on the file after shrinking.

Consulte TambémSee Also

Reduzir um arquivo Shrink a File
sys.databases (Transact-SQL) sys.databases (Transact-SQL)
sys.database_files (Transact-SQL) sys.database_files (Transact-SQL)
DBCC (Transact-SQL) DBCC (Transact-SQL)
DBCC SHRINKFILE (Transact-SQL) DBCC SHRINKFILE (Transact-SQL)
Arquivos e grupos de arquivos do banco de dadosDatabase Files and Filegroups