sqlserver數據庫中的mdf文件太大,表空間分析和表空間釋放


查詢數據庫的大小:

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文件。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM