This article is from my book:
Tuning SQL Server (Second Edition)
Table of Contents | Sample Chapter
| Learn More
system database in SQL Server is one of the databases that are shipped with every SQL Server installation and it is used for specific tasks as a temporary storage. Examples of when tempdb is used are:
- Use of local/global temporary tables, stored procedures and variables.
- Use of cursors.
- When the SORT_IN_TEMPDB option is used during the creation or rebuild of indexes.
- Use of local/global stored procedures.
- When row versions are generated by different transactions.
TempDB is protected with the use of certain built-in restrictions in SQL Server. These are:
- You cannot drop it.
- You cannot back it up/restore it.
- You cannot change the database owner (it is always the dbo).
- You cannot create a database snapshot.
- You cannot drop the guest user.
- You cannot add filegroups.
- You cannot change the collation (default collation is server’s collation).
- You cannot take the database offline.
- You cannot set the database or primary filegroup to READ_ONLY.
- You cannot run DBCC CHECKALLOC and DBCC CHECKCATALOG.
- You cannot rename the database or its primary filegroup.
- You cannot remove the primary filegroup, data or log file.
- TempDB cannot participate in database mirroring.
- You cannot enable change data capture on TempDB.
TempDB is heavily used in a variety of SQL Server operations and contributes a lot to performance of database operations. To this end, you need to maintain the good health of TempDB in order to contribute towards a performant SQL Server instance. For example, you must ensure that there is an adequate amount of available free disk space as TempDB expands when used. Also, using multiple data files can help applying parallelism in TempDB database.
about SQL Server Performance Tuning in my latest eBook "Tuning SQL Server (second edition)"
What are your views on the subject? Have something to share? Feel free to leave your comment!
Labels: Beginners Corner, Books, SQL Server, SQL Server Performance