Dica de hoje é sobre como acelerar seus backups com paralelismo, lembrando de monitorar e verificar se sua CPU estara sendo sobrecarregada a depender da quantidade de threads usadas no backup, neste exemplo estou usando 10 threads. Segue abaixo script que utilizo e prints mostrando a execução do paralelismo.
1- Script de backup:
DECLARE @CMD NVARCHAR(4000),
@BANCO NVARCHAR(2000),
@DESCRICAO NVARCHAR(200),
@DT VARCHAR(200),
@CAMINHO VARCHAR(400)
SELECT @BANCO = 'TopAcesso', -- BANCO
@DESCRICAO = 'Backup Full '+@BANCO, -- DESCRIÇÃO DO BACKUP
@DT = REPLACE(REPLACE(REPLACE(REPLACE((CONVERT(nvarchar(30), GETDATE(), 120)),' ','_'),':','.'),'.','_'),'-','_'), -- DATA E HORA DO BACKUP
@CAMINHO = 'E:\temp\' -- LOCAL DO BACKUP
set @cmd = '
BACKUP DATABASE ['+@BANCO+'] TO
DISK = N'+''''+@CAMINHO+@BANCO+'_FULL_'+CONVERT(varchar,@DT,112)+'_01.bak''
,DISK = N'+''''+@CAMINHO+@BANCO+'_FULL_'+CONVERT(varchar,@DT,112)+'_02.bak''
,DISK = N'+''''+@CAMINHO+@BANCO+'_FULL_'+CONVERT(varchar,@DT,112)+'_03.bak''
,DISK = N'+''''+@CAMINHO+@BANCO+'_FULL_'+CONVERT(varchar,@DT,112)+'_04.bak''
,DISK = N'+''''+@CAMINHO+@BANCO+'_FULL_'+CONVERT(varchar,@DT,112)+'_05.bak''
,DISK = N'+''''+@CAMINHO+@BANCO+'_FULL_'+CONVERT(varchar,@DT,112)+'_06.bak''
,DISK = N'+''''+@CAMINHO+@BANCO+'_FULL_'+CONVERT(varchar,@DT,112)+'_07.bak''
,DISK = N'+''''+@CAMINHO+@BANCO+'_FULL_'+CONVERT(varchar,@DT,112)+'_08.bak''
,DISK = N'+''''+@CAMINHO+@BANCO+'_FULL_'+CONVERT(varchar,@DT,112)+'_09.bak''
,DISK = N'+''''+@CAMINHO+@BANCO+'_FULL_'+CONVERT(varchar,@DT,112)+'_10.bak''
WITH NOFORMAT, NOINIT, NAME = N'+''''+@DESCRICAO+''''+', SKIP, NOREWIND, NOUNLOAD, COMPRESSION,CHECKSUM, STATS = 5'
EXEC (@cmd)
SQL2 – Comprovando que o backup esta realmente sendo feito usando paralelismo com 10 threads:
select spid,status,cmd from sys.sysprocesses where cmd='Backup database';
SQL3 – Formato e nome do backup: