Eu tenho essa consulta para encontrar a duração dos backups feitos que desejo executar em servidores registrados no CMS em toda a empresa.
O problema, porém, é como encontrar apenas a duração MIN
e MAX
por banco de dados em vez do tempo de execução de todos os backups.
Eu brinquei muito com MIN
e MAX
, mas ainda não encontrei a combinação correta.
Estou indo sobre isso da maneira errada?
DECLARE @dbname sysname
SET @dbname = NULL
SELECT database_name AS [Database]
, backup_start_date AS [Backup Started]
, backup_finish_date AS [Backup Finished]
, backup_size AS [Backup Size]
, compressed_backup_size AS [Compressed Backup Size]
, CAST((CAST(DATEDIFF(s, backup_start_date, backup_finish_date) AS int))/3600 AS varchar) + ' hours, '
+ CAST((CAST(DATEDIFF(s, backup_start_date, backup_finish_date) AS int))/60 AS varchar)+ ' minutes, '
+ CAST((CAST(DATEDIFF(s, backup_start_date, backup_finish_date) AS int))%60 AS varchar)+ ' seconds' AS [Total Time]
FROM msdb.dbo.backupset
WHERE [type]!='L'
AND database_name IN (SELECT name FROM master.dbo.sysdatabases)
GROUP BY database_name
,backup_start_date
,backup_finish_date
,backup_size
,compressed_backup_size;
Código originado daqui .
Use a
ROW_NUMBER()
agregação para obter as linhas mínima e máxima e mostre apenas essas linhas: