Chapter 9. tempdb Usage and Performance

tempdb is a system database that is shared across all user and system sessions. It stores user-created and internal temporary objects and data, and is used by many processes. High tempdb performance and throughput are essential for good server performance.

I will start this chapter with an overview of tempdb consumers and usage patterns and share several best practices related to the use of temporary objects. Next, I will show how to diagnose and address common tempdb issues. Finally, I’ll provide you with several tempdb configuration tips.

Temporary Objects: Usage and Best Practices

tempdb performance tuning is a complex topic. I usually like to start with an overview of usage patterns. After all, tempdb is just another database, and reducing its load usually improves its throughput. There are some internal optimizations in tempdb behavior, which I will discuss in this chapter. But for all practical purposes, you can consider tempdb to be similar to other user databases.

The tempdb database stores temporary objects created by users, internal record sets generated during query executions, the version store, and a few other objects. You can look at how much space different object types are using by running the code in Listing 9-1.

Listing 9-1. tempdb space usage
 SELECT CONVERT(DECIMAL(12,3), SUM(user_object_reserved_page_count) / 128. ) AS [User Objects (MB)] ,CONVERT(DECIMAL(12,3), SUM(internal_object_reserved_page_count) / 128. ) AS ...

Get SQL Server Advanced Troubleshooting and Performance Tuning now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.