查詢數據庫的大小:
EXEC sp_spaceused
為了保證查詢結果的實時性,推薦使用 @updateusage 參數來確保統計數據是最新的:
EXEC sp_spaceused @updateusage = N'TRUE';
具體查詢某個表的大小:
EXEC sp_spaceused 't_table'
分析查詢數據庫中所有表占用的內存大小:
declare @table_spaceused table (
name nvarchar(100) ,
rows int ,reserved nvarchar(100) ,
data nvarchar(100) ,index_size nvarchar(100) ,
unused nvarchar(100) )
insert into @table_spaceused (name,rows,reserved,data,index_size,unused ) exec sp_MSforeachtable @command1='exec sp_spaceused ''?'''
select * from @table_spaceused
字段含義:
- name:表名
- rows:行數
- reserved:數據庫為該表分配的空間
- data:數據實際使用的空間,reserved肯定>=data
- index_size:索引使用的空間
- unused:為數據庫中的對象保留但尚未使用的空間總量,大致等於reserved - data - index_size的值
然后根據表中的業務選擇性刪除無用的數據,truncate table 表名來清空表中無用的數據。
最后一步,使用數據庫自帶的收縮功能,來進行收縮數據庫中mdf文件的大小。
右鍵數據庫—–>任務——->收縮———->數據庫(或者文件)。
我本地之前數據庫30多個g的文件,后面壓縮成了1個多g文件。