日期:2014-05-17 浏览次数:20591 次
--查询 tempdb中那部分较大
Select
'Tempdb' as DB,
SUM (user_object_reserved_page_count)*8.0 / 1024 as '用户对象保留的大小',
SUM (internal_object_reserved_page_count)*8.0 / 1024 as '内部对象保留的大小',
SUM (version_store_reserved_page_count)*8.0 / 1024 as '版本存储保留的大小',
SUM (unallocated_extent_page_count)*8.0 / 1024 as '未分配的区中包含的大小',
SUM(mixed_extent_page_count)*8.0 / 1024 as '文件的已分配混合区中:已分配页和未分配大小' --包含IAM页
From sys.dm_db_file_space_usage
Where database_id = 2
--进一步定位是那些会话,消耗了大量的tempdb空间
select session_id,
DB_NAME(database_id) as dbname,
user_objects_alloc_page_count, --分配的用户对象的页数
user_objects_dealloc_page_count, --释放的用户对象的页数
internal_objects_alloc_page_count, --分配的内部对象的页数
internal_objects_dealloc_page_count --释放的内部对象的页数
from sys.dm_db_session_space_usage
order by user_objects_alloc_page_count +
internal_objects_alloc_page_count desc