解決方法:
方法 1、sp_spaceused
方法 2、dbcc sqlperf
方法 3、dbcc showfilestats
方法 4、dbcc showcontig
方法 5、sys.dm_db_partiton_stats
--------------------------------------------------------------------------------------------------------------------------------------------------------------
方法 1、
execute sp_spaceused; 不帶參數時返回當前數據庫空間的整體使用情況。
execute sp_spaceused @objname='dbo.Nums';返回指定對象的空間使用信息
小心:sp_spaceused 返回的結果是來自系統的統計信息的,但是統計信息的如果還沒有更新的話,這樣會使得sp_spaceused返回的結果不准確。
正因如此 sp_spaceused 還加了一個參數 @updateusage;
所以 sp_spaceused 的完整格式是 sp_spaceused @objname='objname',@updateusage='updateusage';記得加第二個參數的時候會影響
SQL server 的性能。最好空閑時才這樣做。
方法 2、
dbcc sqlperf 它只是針對日志文件(返回當前SQL server 實例的所有數據庫的日志信息)
dbcc sqlperf(logspace);
方法 3、
dbcc showfilestats 返回數據庫中各個數據文件的空間使用情況(不包函日志文件)
dbcc showfilestats;
方法 4、
dbcc showcontig 返回對象以區(extent)為度量的空間使用信息
dbcc showcontig('dbo.Nums);
方法 5、 sys.dm_db_partition_stats ,為對象的每個分區(不是extent,如‘表分區’中指的分區)返回一行
小結:
也可以把返回的信息寫入自定義表中,方便以后估計未來一段時間內。空間的使用情況。