SQL Server监控脚本:实时跟踪数据库和表空间增益

需积分: 50 25 下载量 192 浏览量 更新于2024-09-09 1 收藏 2KB TXT 举报
该SQL Server脚本旨在监控数据库每日的增长情况,包括表空间的增长量。脚本分为两部分,主要关注表的行数、存储空间占用情况以及表空间信息。 首先,脚本创建了一个名为[t_rpt_table_spaceinfo]的表,用于存储每天的记录,包含以下字段: 1. schema_name:存储数据表的架构名称,类型为sysname,不能为空。 2. table_name:存储表名,同样为sysname类型,不能为空。 3. record_date:记录日期,date类型,不能为空。 4. record_time:记录时间,time类型,格式为7位,不能为空。 5. rows_count:记录表中的行数,bigint类型,可为NULL。 6. reserved:保留字节数,bigint类型。 7. data_size:数据大小,bigint类型。 8. index_size:索引大小,bigint类型。 9. unused:未使用的空间,bigint类型。 10. PK_t_rpt_table_spaceinfo:主键,按升序排列(schema_name, table_name, record_date, record_time)。 第二部分是关键部分,通过使用T-SQL SET NOCOUNT ON来禁用SQL统计信息的输出,提高性能。接着定义了一个名为#tablespaceinfo的临时表,用于存储每个表的详细空间使用信息,包括表名(nameinfo),行数(rowsinfo)以及四个关于存储空间的字段(reserved, datainfo, index_size, unused)。 然后,脚本创建了一个名为Info_cursor的游标,遍历所有用户表(type='U'),对于每个表,它执行sp_spaceused存储过程获取表的具体空间使用情况,并将这些信息插入到#tablespaceinfo中。最后,将这些表空间信息与基础表名和行数合并后,插入到[t_rpt_table_spaceinfo]表中,记录日期、时间和表名以及行数。 这个脚本提供了一个实用且简单的方法,可以帮助数据库管理员快速了解数据库和表空间的每日变化,对于日常维护和性能优化具有较高的参考价值。通过定期运行此脚本,可以监控数据库的增长趋势,及时发现并解决潜在的空间管理问题。