Shrinking a massive database file
Firstly this needs to pre-mentioned that only shrink files if its actually needed, as you'll cause a lot of index fragmentation which you'll need to clear up afterwards.

With that said, if you're worried about the time it takes to run the entire shrinkfile then you can do it in stages (takes longer overall but technically can be stopped and resumed with a lot more ease), personally I use this to drop it in 2GB stages (also useful on high transactional dbs to reduce contention for the operation to shrink in smaller chunks I've found)

DECLARE @value int = 2048
DECLARE @target int = 1536
SET @value = (@value *1024)-2048

WHILE @value &gt;= (@target*1024)
BEGIN
    DBCC SHRINKFILE(filename ,@value)
    SET @value = @value - 2048
END


Replace

@value with the current size of your file in MB and the 

@target with what size you want to shrink down to and 

filename with the name of the file you wish to be shrinking