diff --git a/Projects/Backup&Optim/Backup.sql b/Projects/Backup&Optim/Backup.sql new file mode 100644 index 0000000..6962e7e --- /dev/null +++ b/Projects/Backup&Optim/Backup.sql @@ -0,0 +1,2 @@ +sp_BackupDatabase 'GIM', 'C:\DbBackup\', 'F' +GO diff --git a/Projects/Backup&Optim/Crea_sp_Backup.sql b/Projects/Backup&Optim/Crea_sp_Backup.sql new file mode 100644 index 0000000..5469019 --- /dev/null +++ b/Projects/Backup&Optim/Crea_sp_Backup.sql @@ -0,0 +1,40 @@ +USE [master] +GO +/****** Object: StoredProcedure [dbo].[sp_BackupDatabase] Script Date: 03/11/2009 17:05:39 ******/ +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO +-- ============================================= +-- Author: Marco Salvi +-- Create date: 10/03/2009 +-- Description: Stored procedure per backup database +-- Parametro1: databaseName +-- Parametro2: backupType F=full, D=differential, L=log +-- ============================================= +CREATE PROCEDURE [dbo].[sp_BackupDatabase] + @databaseName sysname, @directory varchar(500), @backupType CHAR(1) +AS +BEGIN + SET NOCOUNT ON; + + DECLARE @sqlCommand NVARCHAR(1000) + DECLARE @dateTime NVARCHAR(20) + + SELECT @dateTime = REPLACE(CONVERT(VARCHAR, GETDATE(),111),'/','') + + REPLACE(CONVERT(VARCHAR, GETDATE(),108),':','') + + IF @backupType = 'F' + SET @sqlCommand = 'BACKUP DATABASE ' + @databaseName + + ' TO DISK = '''+@directory + @databaseName + '_Full_' + @dateTime + '.BAK''' + + IF @backupType = 'D' + SET @sqlCommand = 'BACKUP DATABASE ' + @databaseName + + ' TO DISK = ''C:\DbBackup\' + @databaseName + '_Diff_' + @dateTime + '.BAK'' WITH DIFFERENTIAL' + + IF @backupType = 'L' + SET @sqlCommand = 'BACKUP LOG ' + @databaseName + + ' TO DISK = ''C:\DbBackup\' + @databaseName + '_Log_' + @dateTime + '.TRN''' + + EXECUTE sp_executesql @sqlCommand +END \ No newline at end of file diff --git a/Projects/Backup&Optim/Crea_sp_IndiciAndShrink.sql b/Projects/Backup&Optim/Crea_sp_IndiciAndShrink.sql new file mode 100644 index 0000000..64c3269 --- /dev/null +++ b/Projects/Backup&Optim/Crea_sp_IndiciAndShrink.sql @@ -0,0 +1,57 @@ +USE [master] +GO +/****** Object: StoredProcedure [dbo].[sp_indiciAndShrink] Script Date: 03/11/2009 17:06:47 ******/ +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO +-- ============================================= +-- Author: Marco Salvi +-- Create date: 11/03/2009 +-- Description: Stored procedure per ricostruire gli indici e fare lo shrink su un db +-- ============================================= +CREATE PROCEDURE [dbo].[sp_indiciAndShrink] +( + @databaseName sysname +) +AS +BEGIN + + exec('USE ' + @databaseName) + + -- elimino eventuale tab temporanea preesistente + IF (SELECT COUNT(*) FROM TEMPDB..SYSOBJECTS WHERE NAME = '##TMP_nomiTabelle') > 0 + BEGIN + DROP TABLE ##TMP_nomiTabelle + END + + -- enumero le tab del db in una tab temporanea + SELECT IDENT = IDENTITY (INT,1,1), name + INTO ##TMP_nomiTabelle + FROM sys.Tables + + -- eseguo reindicizzazione + DECLARE @VAR1 INT + SET @VAR1 = 1 + WHILE @VAR1 < = ( SELECT COUNT(*) FROM ##TMP_nomiTabelle) + BEGIN + + DECLARE @OBJECTNAME VARCHAR(256) + + -- carico il nome della tab i-esima + SELECT @OBJECTNAME = name + FROM ##TMP_nomiTabelle + WHERE [IDENT] = @VAR1 + + -- rebuild indice + DBCC DBREINDEX(@OBJECTNAME) + + -- incremento + SET @VAR1 = @VAR1 + 1 + + END + + --shrink del db + DBCC SHRINKDATABASE (@databaseName) + +END \ No newline at end of file diff --git a/Projects/Backup&Optim/indiciAndShrink.sql b/Projects/Backup&Optim/indiciAndShrink.sql new file mode 100644 index 0000000..59614f1 --- /dev/null +++ b/Projects/Backup&Optim/indiciAndShrink.sql @@ -0,0 +1,5 @@ +USE GIM +GO + +sp_indiciAndShrink 'GIM' +GO diff --git a/Projects/Backup&Optim/steamware.bat b/Projects/Backup&Optim/steamware.bat new file mode 100644 index 0000000..2a9e454 --- /dev/null +++ b/Projects/Backup&Optim/steamware.bat @@ -0,0 +1,12 @@ +rem elimino vecchio backup +cd C:\DbBackup\ +del GIM_full.BAK + +echo 'eliminato backup vecchio' + +rem eseguo nuovo backup +sqlcmd -S localhost -E -i C:\Backup.sql +echo 'creato nuovo backup' + +rem ottimizzo gli indici +sqlcmd -S localhost -E -i C:\indiciAndShrink.sql \ No newline at end of file