2012-07-02 08:31:00
TempDB is an instance-wide Temporary workspace that SQL Server uses for various operations. Tempdb is created from Model Database whenever the SQLSERVER service is started/restarted. TempDB has simple recover model. It is a rule of thumb that you should never keep tempdb in the same location where your user database is stored. It is always recommended that tempDB should be located in a high-performing disk subsystem (preferably RAID 10 or RAID 0). It is also to be configured with enough size for better performance, so that system does not need to do the space allocation dynamically. You can also create multiple TempDB data files to minimize IAM and SGAM and thereby improve the performance.
Very common operations which consume tempdb are appended below:
- Store explicitly created Temp tables, Table variables, Stored procedures, cursors etc.
- Stores Private and Global variables used throughout the instance.
- Worktables associated with
ORDER BY,GROUP BY,CURSOR. - Many System administration activities like DBCC commands use
TempDB. - If you have chosen Snapshot Isolation Level then it uses
TempDB. - If your Report Server Uses Caching, then
tempdbis used extensively. - If your have used
SORT_IN_TEMPDBoption while rebuilding indexes.
To relocate TempDB Follow these steps:
- Alter the file path by following this command.
ALTER database tempdb MODIFY FILE (NAME = tempdev, FILENAME= 'E:\Sqldata\tempdb.mdf') GO ALTER database tempdb MODIFY FILE (NAME= templog, FILENAME= 'E:\Sqldata\templog.ldf') GO
- Restart the service and run
sp_helpfile tempdbto confirm the above action.
Sources
How to shrink the tempdb database in SQL Server - Microsoft
KB328551 - Concurrency enhancements for the tempdb database - Microsoft