Sometimes our tempdb gets full and fills the disk. Hence it cant expand and due to its a lots of our operation either stucks or starting failing.
At this time we immediately need to find which process is taking so much space in tempdb and which type of operation by that process is taking space to troubleshoot the issue ASAP
Lets see how we can get this details
sys.dm_db_task_space_usage
SELECT TOP 5 *
FROM sys.dm_db_task_space_usage
ORDER BY ( user_objects_alloc_page_count + internal_objects_alloc_page_count ) DESC
Returns information for the pages allocated and deallocated by the running task
Here we can see that session 164 is taking highest space and its taking most of space due to internal objects.So either worktables or sorting operation are reason for it. Immediately we can stop this process and optimize it to reduce load on tempdb
From BOL
user_object_reserved_page_count
User-defined tables and indexes
System tables and indexes
Global temporary tables and indexes
Local temporary tables and indexes
Table variables
Tables returned in the table-valued functions
Internal Objects
Work tables for cursor or spool operations and temporary large object (LOB) storage
Work files for operations such as a hash join
Sort runs
Version_store_reserved_page_count
It shows pages used for version store in database.
user_object_reserved_page_count
User-defined tables and indexes
System tables and indexes
Global temporary tables and indexes
Local temporary tables and indexes
Table variables
Tables returned in the table-valued functions
Internal Objects
Work tables for cursor or spool operations and temporary large object (LOB) storage
Work files for operations such as a hash join
Sort runs
Version_store_reserved_page_count
It shows pages used for version store in database.
There are some other system tables also which can give us additional information
sys.dm_db_file_space_usage
USE tempdb
SELECT *
FROM sys.dm_db_file_space_usage(nolock)
Here it gives space used by different objects in database file
We have to look at user_object_reserved_page_count ,version_store_reserved_page_count,internal_object_reserved_page_count
By looking at this value we can get idea what is taking space in tempdb
Here for above results the space is taken mostly by internal objectsSo its done by either work tables for the query or sort operations.
No comments:
Post a Comment