use <SEUBANCO>
DBCC CHECKDB;
Socorro os bancos tomaram tody e ficaram big.
Esta tendo problemas com os banquinhos.
Então venha para o lado bom da força este peque script quebra um bom galho, principalmente se mesclar ele com aquele script que gera script.
DBCC SHRINKFILE(<SEUBANCO>, 5);
DBCC SHRINKDATABASE (<SEUBANCO>, TRUNCATEONLY);
DBCC CHECKALLOC
DBCC DROPCLEANBUFFERS
DBCC FREEPROCCACHE
DBCC UPDATEUSAGE (0);
========== Nao resisti toma de bandeja ===================
use master
DECLARE @nome_banco varchar(50)
DECLARE @nome_banco_apoio varchar(50)
DECLARE @arquivo_shrinkfile varchar(50)
SET @nome_banco_apoio =' '
DECLARE lista CURSOR SCROLL FOR
select db_name(database_id) as nome_banco,name as arquivo_shrinkfile from sys.master_files where db_name(database_id) <> 'master' AND db_name(database_id) <> 'model' AND db_name(database_id) <> 'msdb' AND db_name(database_id) <> 'tempdb' order by nome_banco
OPEN lista
-- Primeiro registro
FETCH FIRST FROM lista INTO @nome_banco,@arquivo_shrinkfile
WHILE @@FETCH_STATUS = 0
BEGIN
IF @nome_banco <> @nome_banco_apoio
BEGIN
PRINT 'use '+ @nome_banco
PRINT 'DBCC CHECKDB;'
-- JEITO PARA SHRINKFILE NO BANCO DE DADOS
PRINT 'DBCC SHRINKDATABASE ( '+ @nome_banco + ' , TRUNCATEONLY);'
PRINT 'DBCC CHECKALLOC'
PRINT 'DBCC DROPCLEANBUFFERS '
PRINT 'DBCC FREEPROCCACHE '
PRINT 'DBCC UPDATEUSAGE (0);'
-- JEITO PARA SHRINKFILE ARQUIVO DE DADOS
PRINT 'DBCC SHRINKFILE('+ @arquivo_shrinkfile + ', 0, TRUNCATEONLY);'
SET @nome_banco_apoio=@nome_banco
END
ELSE
-- JEITO PARA SHRINKFILE NO ARQUIVO DE LOG
BEGIN
PRINT 'DBCC SHRINKFILE('+ @arquivo_shrinkfile + ', 0, TRUNCATEONLY);'
END
-- Próximo registro
FETCH NEXT FROM lista INTO @nome_banco,@arquivo_shrinkfile
END
CLOSE lista
DEALLOCATE lista