Có ba DMV bạn có thể sử dụng để theo dõi việc sử dụng tempdb:
Hai cái đầu tiên sẽ cho phép bạn theo dõi phân bổ ở cấp truy vấn & phiên. Phần thứ ba theo dõi phân bổ trên toàn bộ phiên bản lưu trữ, người dùng và các đối tượng nội bộ.
Truy vấn ví dụ sau sẽ cung cấp cho bạn phân bổ mỗi phiên:
SELECT
sys.dm_exec_sessions.session_id AS [SESSION ID]
,DB_NAME(database_id) AS [DATABASE Name]
,HOST_NAME AS [System Name]
,program_name AS [Program Name]
,login_name AS [USER Name]
,status
,cpu_time AS [CPU TIME (in milisec)]
,total_scheduled_time AS [Total Scheduled TIME (in milisec)]
,total_elapsed_time AS [Elapsed TIME (in milisec)]
,(memory_usage * 8) AS [Memory USAGE (in KB)]
,(user_objects_alloc_page_count * 8) AS [SPACE Allocated FOR USER Objects (in KB)]
,(user_objects_dealloc_page_count * 8) AS [SPACE Deallocated FOR USER Objects (in KB)]
,(internal_objects_alloc_page_count * 8) AS [SPACE Allocated FOR Internal Objects (in KB)]
,(internal_objects_dealloc_page_count * 8) AS [SPACE Deallocated FOR Internal Objects (in KB)]
,CASE is_user_process
WHEN 1 THEN 'user session'
WHEN 0 THEN 'system session'
END AS [SESSION Type], row_count AS [ROW COUNT]
FROM
sys.dm_db_session_space_usage
INNER join
sys.dm_exec_sessions
ON sys.dm_db_session_space_usage.session_id = sys.dm_exec_sessions.session_id
Nếu bạn muốn theo dõi việc sử dụng trong một khoảng thời gian, hãy xem xét việc thu thập dữ liệu với sp_whoisactive , như được trình bày bởi Kendra Little .