Showing posts with label Shrink. Show all posts
Showing posts with label Shrink. Show all posts

Shrink all SQL Server Databases

A quick way to ensure all the databases on your dev pc/server are all set to simple backup and log files are shrunk to avoid wasting disk space.

You can easily add databases to the list you don't want affected.

declare @ssql nvarchar(4000)
set @ssql= '
        if ''?'' not in (''tempdb'',''master'',''model'',''msdb'')
        begin
                  use [?]
                  Alter database [?] SET Recovery simple
        end'

exec sp_msforeachdb @ssql
set @ssql= '
        if ''?'' not in (''tempdb'',''master'',''model'',''msdb'')
        begin    
                  use [?] 
                  Declare @LogFileLogicalName sysname
                  select @LogFileLogicalName=Name from sys.database_files where Type=1
                  --print @LogFileLogicalName

                  DBCC Shrinkfile(@LogFileLogicalName,1)
        end'
exec sp_msforeachdb @ssql

How to check the progress when Shrinking Database SQL Server

Compacting a large databases in SQL Server can take what feels like forever. If you're like me self doubt is sure to set in as there is no way to tell that the command is progressing in SSMS!
However you can use the system views in SQL Server to see how its going using the following query:

SELECT percent_complete, start_time, status, command, estimated_completion_time, cpu_time, total_elapsed_time
FROM sys.dm_exec_requests

Works on SQL Server 2005+

Source: http://blogs.msdn.com/psssql/archive/2008/03/28/how-it-works-sql-server-2005-dbcc-shrink-may-take-longer-than-sql-server-2000.aspx