2013年4月22日 星期一

SQL Server查詢Tempdb使用的Process以及空間耗用


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
  ,last_request_start_time
  ,cpu_time / 1000 AS [CPU TIME (sec)]
  ,total_scheduled_time / 1000 AS [Total Scheduled TIME (sec)]
  ,total_elapsed_time / 1000 AS   [Elapsed TIME (sec)]
  ,(memory_usage * 8 / 1024)      AS [Memory USAGE (MB)]
  ,(user_objects_alloc_page_count * 8 / 1024) AS [SPACE Allocated FOR USER Objects (MB)]
  ,(user_objects_dealloc_page_count * 8 / 1024) AS [SPACE Deallocated FOR USER Objects (MB)]
  ,(internal_objects_alloc_page_count * 8 / 1024) AS [SPACE Allocated FOR Internal Objects (MB)]
  ,(internal_objects_dealloc_page_count * 8 / 1024) AS [SPACE Deallocated FOR Internal Objects (MB)]
  ,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
--order by 6 desc