venerdì 8 gennaio 2010

Attività di pulitura di un DataBase

Ecco un comodo script per pulire un database:

USE [NomeDatabase]
--
-- Attività Controlla integrità database
--
DBCC CHECKDB WITH NO_INFOMSGS
GO


--
-- Attività Elimina contenuto cronologia
--
declare @dt datetime select @dt = CAST(FLOOR(CAST(getdate() AS FLOAT))AS DATETIME)
exec msdb.dbo.sp_delete_backuphistory @dt
GO
declare @dt datetime select @dt = CAST(FLOOR(CAST(getdate() AS FLOAT))AS DATETIME)
EXEC msdb.dbo.sp_purge_jobhistory @oldest_date=@dt
GO
declare @dt datetime select @dt = CAST(FLOOR(CAST(getdate() AS FLOAT))AS DATETIME)
EXECUTE msdb..sp_maintplan_delete_log null,null,@dt

--
-- Attività Ricostruisci indice
--
USE NomeDatabase

DECLARE @tabella varchar(255)

DECLARE cursore_tabella CURSOR FOR
SELECT table_name FROM information_schema.tables
WHERE table_type = 'base table'

OPEN cursore_tabella

FETCH NEXT FROM cursore_tabella INTO @tabella
WHILE @@FETCH_STATUS = 0
BEGIN
DBCC DBREINDEX(@tabella,' ',90)
FETCH NEXT FROM cursore_tabella INTO @tabella
END

CLOSE cursore_tabella

DEALLOCATE cursore_tabella



--
-- Attività Compatta database
--
DBCC SHRINKDATABASE(N'NomeDatabase', 10, TRUNCATEONLY)
GO

Nessun commento: