Restore Database from Database with Different Name
Are you looking to do something like a re-name swap?  Something like this:


Load DB2
Rename DB1 to DB_temp
Rename DB2 to DB1
Rename DB_temp to DB2


Then you re-load DB2 again the next time?

If so you can simply alter the name of the DB rather than deal with the time a restore takes (the file names will remain the same but that really doesn't matter in this case.)

ALTER DATABASE CurrentDBName MODIFY NAME = NewDBName;


Now on the other hand if you actually want to keep DB2 in place and just restore over DB1 it would look something like this:

RESTORE DB1 FROM DISK = 'DB2 backup file' WITH REPLACE


There are several methods you can use to improve your speed.  Probably the easiest is to stripe your backup.

BACKUP DATABASE DB2 TO DISK = 'loc1', DISK = 'Loc2', DISK = 'Loc3' WITH FORMAT
RESTORE DB1 FROM DISK = 'loc1', DISK = 'Loc2', DISK = 'Loc3' WITH REPLACE


Warning, you will need to have all of the files you stripe to in order to do your restore.  If you lose one the whole backup is useless.