■■查看设备的空闲空间,是采用sp_spaceused还是sp_helpdb?

syabse 中,查看设备的空闲空间,是采用sp_spaceused还是sp_helpdb?采用这两个命令得到的结果不一致?


1> use DIRWAYSDB
2> go
1> sp_spaceused
2> go
database_name                  database_size
------------------------------ -------------
DIRWAYSDB                      6132.0 MB     
reserved        data            index_size      unused         
--------------- --------------- --------------- ---------------
851120 KB       54048 KB        764464 KB       32608 KB        
(return status = 0)


1> sp_helpdb DIRWAYSDB
2> go
name                     db_size       owner                    dbid   created      
         status                                                                                                
------------------------ ------------- ------------------------ ------ --------------
         ------------------------------------------------------------------------------------------------------
DIRWAYSDB                    6132.0 MB sa                            4 Sep 16, 2010  
         select into/bulkcopy/pllsort, trunc log on chkpt                                                      

(1 row affected)
device_fragments               size          usage                created             free kbytes                    
------------------------------ ------------- -------------------- ------------------- ------------------------------
dir1                           2044.0 MB     data only            Sep 17 2010 12:34AM          1343632               
dir2                           2044.0 MB     data only            Sep 17 2010 12:34AM          1971264               
dirlog                         2044.0 MB     log only             Sep 17 2010 12:34AM not applicable                 
                                                               
--------------------------------------------------------------
log only free kbytes = 2084864

作者: mango10000   发布时间: 2011-03-14

通过sp_helpdb 看到数据段占用2044+2044= 4088M空间,剩余空间(free kbytes)是1343632+1971264=3314896k=3237m
那么数据段占用了4088-3237=851m

通过sp_helpdb算出来的数据段占用的空间是接近用sp_spaceused得到的结果的。
sp_spaceused 显示reserved为851120k=831m


这2者的误差为:851-831=20m

如果你想了解清楚为什么有20m的误差,那么建议你详细研究一下sp_helpdb & sp_spaceused这2个存储过程的语法。
毕竟计算的算法不同,得到的计算结果也不同了。

作者: andkylee   发布时间: 2011-03-14