• TempDB will use whatever space it needs for the workload. If you have procedures that create temp tables, populate them, manipulate them, return them and the drop them, the work is done in tempdb. Table variables and cursors are also processed there, as well as any worktables created during query execution.

    It grows to have whatever it needs, but it doesn't shrink itself. So, if you have a large TempDB, this means that it grew to that point because it needed the space. If the temporary objects are dropped, the space is available but not yielded back to the operating system. Normally, this is done by shrinking the database, but TempDB is not a normal database. I've tried a couple approaches to shrink a bloated TempDB before and they didn't work. The solution is to restart the SQL Server service and TempDB will shrink back to its original size...only to start growing again.