How to: Find Database Restore History

The following query will help you to track back when the database was restore and which backed up file was used to restore for the particular database.

USE msdb;
GO
SELECT
    DBRestored = destination_database_name,
    SourceDB = b.database_name,
    SourceFile = physical_name,
    BackupDate = backup_start_date,
    RestoreDate = restore_date
FROM RestoreHistory h
INNER JOIN BackupSet b
 ON h.backup_set_id = b.backup_set_id
INNER JOIN BackupFile f
 ON f.backup_set_id = b.backup_set_id
ORDER BY RestoreDate
GO

How to: Check Estimate Completion Time for Backup/Restore Process

The following script will be helpful when you wish to check the estimate completion time for the backup/restore process running at the background of SQL Server.

SELECT 
	command
	, s.text
	, start_time
	, percent_complete
	, CAST(((DATEDIFF(s,start_time,GetDate()))/3600) as varchar) + ' hour(s), '
		+ CAST((DATEDIFF(s,start_time,GetDate())%3600)/60 as varchar) + 'min, '
		+ CAST((DATEDIFF(s,start_time,GetDate())%60) as varchar) + ' sec' as running_time
	, CAST((estimated_completion_time/3600000) as varchar) + ' hour(s), '
		+ CAST((estimated_completion_time %3600000)/60000 as varchar) + 'min, '
		+ CAST((estimated_completion_time %60000)/1000 as varchar) + ' sec' as est_time_to_go
	, dateadd(second,estimated_completion_time/1000, getdate()) as est_completion_time
FROM 
	sys.dm_exec_requests r
	CROSS APPLY sys.dm_exec_sql_text(r.sql_handle) s
WHERE 
	r.command in ('RESTORE DATABASE', 'BACKUP DATABASE', 'RESTORE LOG', 'BACKUP LOG')