Archivo de la etiqueta: SQL

Shrink todas las bases de datos de un servidor de una manera rapida en SQL Server

SqlServer1En mis maquinas virtuales de desarrollo de SharePoint 2010, muchas veces me encuentro con que, el tamaño de las bases de datos SQL Server de SharePoint se ha disparado y me estoy quedando sin espacio.

Para reducir el tamaño de las bases de datos, normalmente lo que suelo hacer es un shrink (procedimiento almacenado para reducir el tamaño de los archivos de datos y de registro de la base de datos especificada).

Aunque he leído varios posts en los que no se aconseja eliminar esta información en entornos SharePoint, aquí os dejo un articulo interesante de Microsoft sobre el mantenimiento de bases de datos SharePoint 2010: Database maintenance for SharePoint 2010 Products, donde comentan el correcto uso de este comando.

Volviendo a la cuestión que nos atañe… Para poder liberar de una forma cómoda y sencilla, espacio de todas la bases de datos de una instancia de SQL server, has de ejecutar esta sentencia SQL:

declare @db varchar(255)
declare cur cursor for
select name from sys.databases where is_read_only=0 and state=0
  and name not in ('master','model','tempdb','msdb')
open cur
fetch cur into @db
while @@fetch_status=0
begin
  exec SP_dboption @db,'trunc. log on chkpt.','true' 
  DBCC shrinkdatabase (@db)
  fetch next from c into @db
end
close cur
deallocate cur

 

Este script lo que hace es lo siguiente: obtener una lista de todas las bases de datos (exceptuando las del sistema: master, model, tempdb y msdb), posteriormente establece la base de datos en ReadOnly y luego reducir el tamaño del archivo.

El resultado es el siguiente, donde te informa el tamaño inicial y el resultante:

shrink