For more information, see Rebuild an index.A parallel to shrinkflation is currency debasement. To eliminate the fragmentation, consider rebuilding the indexes on the file after shrinking. This causes index fragmentation and can slow the performance of queries that search a range of the index. This example uses DBCC SHRINKDATABASE to decrease the size of the data and log files in the UserDB database, and to allow for 10 percent free space in the database.ĭata that is moved to shrink a file can be scattered to any available location in the file. Permissible values are between 0 and 99.Ĭopy and paste the following example into the query window and select Execute. Maximum free space in files after shrinkingĮnter the maximum percentage of free space to be left in the database files after the database has been shrunk. If this option is selected, the user must specify a target percent option. By default, this option is not selected when the dialog is opened. Clearing this option is equivalent to executing DBCC SHRINKDATABASE with TRUNCATEONLY option. Selecting this option is equivalent to executing DBCC SHRINKDATABASE specifying a target percent option. Reorganize files before releasing unused space Point to Tasks, point to Shrink, and then select Database.ĭisplays the name of the selected database.ĭisplays the total used and unused space for the selected database.ĭisplays the sum of free space in the log and data files of the selected database. In Object Explorer, connect to an instance of the SQL Server Database Engine, and then expand that instance.Įxpand Databases, and then right-click the database that you want to shrink. Use SQL Server Management Studio Shrink a database For more information, see DBCC SHRINKDATABASE. If a new shrink operation in WAIT_AT_LOW_PRIORITY mode cannot obtain the necessary locks due to a long-running query already in progress, the shrink operation will eventually time out after one minute and silently exit, preventing other queries from being blocked. This feature is a new additional option for DBCC SHRINKDATABASE and DBCC SHRINKFILE. Introduced in SQL Server 2022 (16.x), shrink database operations have a WAIT_AT_LOW_PRIORITY option. Shrink operations in progress can block other queries on the database, and can be blocked by queries already in progress. Requires membership in the sysadmin fixed server role or the db_owner fixed database role. Unless you have a specific requirement, do not set the AUTO_SHRINK database option to ON. This is another reason not to repeatedly shrink the database. Autogrow events necessary to grow the database file(s) hinder performance.Ī shrink operation does not preserve the fragmentation state of indexes in the database, and generally increases fragmentation to a degree. In these cases, repeatedly shrinking the database is a wasted operation. If you shrink a database repeatedly and notice that the database size grows again, this indicates that the free space is required for regular operations. Most databases require some free space to be available for regular day-to-day operations. For more information, see Display Data and Log Space Information for a DatabaseĬonsider the following information when you plan to shrink a database:Ī shrink operation is most effective after an operation that creates a large amount of unused storage space, such as a large DELETE statement, truncate table, or a drop table operation. To view the current amount of free (unallocated) space in the database. Conversely, you cannot backup a database while a shrink operation on the database is in process. You cannot shrink a database while the database is being backed up. 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. 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. The database cannot be made smaller than the minimum size of the database. 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. 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. This article describes how to shrink a database in SQL Server by using Object Explorer in SQL Server Management Studio or Transact-SQL. Applies to: SQL Server Azure SQL Database Azure SQL Managed Instance
0 Comments
Leave a Reply. |