数据库管理员要经常留意数据库和数据库文件内的空闲空间。自动增长功能作为最后一种手段是很好的,但是主动管理数据库文件是一种更好的方法。如果在文件中有很多的空闲空间,那么这些信息也可以在需要时用来压缩文件。 (3):如果数据被删除了,则不会自动将空间释放,占用的空间也会一直保留在数据文件中 go sp_spaceused
/* database_name database_size unallocated space --------------------------------------------------------- db_Sunrise 1410.50 MB 376.93 MB
reserved data index_size unused ------------------ ------------------ ------------------ 986120 KB 740096 KB 236216 KB 9808 KB */ go sp_spaceused @updateusage = 'TRUE ' /* database_name database_size unallocated space --------------------------------------------------- db_Sunrise 1410.50 MB 377.05 MB reserved data index_size unused ------------------ ------------------ ------------------ 986056 KB 740096 KB 236024 KB 9936 KB */方法二: 这个命令会为你提供每个数据库中日志文件的输出结果。这个命令也会为你提供累计信息,因此如果你有多个日志文件,那么它会提供给你每个数据库所有日志文件的总空闲空间。 /* Database Name Log Size (MB) Log Space Used (%) Status ------------------------------------------------------ db_Sunrise 70.55469 96.74316 0 db_Kcgl 1030.992 99.3326 0
*/ 方法三:FILEPROPERTY 另一个选项是使用FILEPROPERTY函数的SpaceUsed属性,它将告诉我们使用了多少空间,然后我们可以基于当前的大小来计算可用空间 name AS FileName, size/128.0 AS CurrentSizeMB, size/128.0 - CAST(FILEPROPERTY(name, 'SpaceUsed') AS INT)/128.0 AS FreeSpaceMB FROM sys.database_files; /* DbName FileName CurrentSizeMB FreeSpaceMB -------------------------------------------------------- db_Sunrise db_Sunrise 976.375000 281.312500 db_Sunrise db_Sunrise_log 70.562500 2.289063 db_Sunrise db_Sunrise_1 363.562500 94.687500 */ (责任编辑:admin) |