SQLServer行版本信息吃数据库tempdb空间

来源:这里教程网 时间:2026-03-02 12:11:45 作者:

SELECT SUM(unallocated_extent_page_count) AS [free pages],  (SUM(unallocated_extent_page_count)*1.0/128) AS [free space in MB] FROM sys.dm_db_file_space_usage; 确定版本存储区使用的空间量 下面的查询将返回 tempdb 中版本存储区使用的总页数和总空间量 (MB)。 SELECT SUM(version_store_reserved_page_count) AS [version store pages used], (SUM(version_store_reserved_page_count)*1.0/128) AS [version store space in MB] FROM sys.dm_db_file_space_usage; 确定运行时间最长的事务 如果版本存储区使用了 tempdb 中的大量空间,则必须确定运行时间最长的事务。使用下面的查询可按顺序(事务的最长运行时间)列出活动事务。 SELECT transaction_id FROM sys.dm_tran_active_snapshot_database_transactions  ORDER BY elapsed_time_seconds DESC; 与联机索引操作无关的长时间运行的事务需要很大的版本存储区。此版本存储区保存自事务启动以来生成的所有版本。联机索引生成事务可能需要较长时间才能完成,但是使用了专用于联机索引操作的单独的版本存储区。因此,这些操作不会防止删除其他事务的版本。有关详细信息,请参阅行版本控制资源的使用情况。 确定内部对象使用的空间量 下面的查询将返回 tempdb 中内部对象使用的总页数和总空间量 (MB)。 SELECT SUM(internal_object_reserved_page_count) AS [internal object pages used], (SUM(internal_object_reserved_page_count)*1.0/128) AS [internal object space in MB] FROM sys.dm_db_file_space_usage; 确定用户对象使用的空间量 下面的查询将返回 tempdb 中用户对象使用的总页数和总空间量。 SELECT SUM(user_object_reserved_page_count) AS [user object pages used], (SUM(user_object_reserved_page_count)*1.0/128) AS [user object space in MB] FROM sys.dm_db_file_space_usage;

相关推荐