没有所谓的捷径
一切都是时间最平凡的累积

sqlserver数据库收缩大小

站长整理辛苦,觉得有用评论点个赞吧,若转载请注明出处。如果文章内容失效,请反馈给本站,谢谢!

精确空间占用,并按总预留空间从大到小排序:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

SELECT
t.object_id,
OBJECT_NAME(t.object_id) ObjectName,
sum(u.used_pages) * 8 Used_Space_kb,
u.type_desc,
max(p.rows) RowsCount
FROM
sys.allocation_units u
JOIN sys.partitions p on u.container_id = p.hobt_id
JOIN sys.tables t on p.object_id = t.object_id
GROUP BY
t.object_id,
OBJECT_NAME(t.object_id),
u.type_desc
ORDER BY
Used_Space_kb desc;

立即执行这个诊断查询.查询详细占用
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

USE 数据库名;;
GO

— 查看当前数据库空间详情
EXEC sp_spaceused;
GO

— 查看数据文件内部使用情况
DBCC SHOWFILESTATS;
GO

~~~~~~~~~~~~~~~~~~~~~~~~

找出空间被谁占用了

如果想精确知道 97.75MB 被哪些表和索引占用,执行以下查询:

USE [数据库名];
GO

— 按表和索引统计实际占用空间
SELECT
OBJECT_NAME(s.object_id) AS TableName,
i.name AS IndexName,
i.type_desc AS IndexType,
SUM(s.used_page_count) * 8 / 1024.0 AS UsedSpaceMB,
SUM(s.reserved_page_count) * 8 / 1024.0 AS ReservedSpaceMB
FROM sys.dm_db_partition_stats s
JOIN sys.indexes i ON s.object_id = i.object_id AND s.index_id = i.index_id
WHERE s.object_id > 100 — 排除系统表
GROUP BY s.object_id, i.name, i.type_desc
ORDER BY SUM(s.used_page_count) DESC;
GO

~~~~~~~~~~~

重建索引并收缩
~~~~~~~~~~~~~~~~~~~~~~~~~~

— ===== 一键清理方案 =====

USE [数据库名];
GO

— 第1步:查看清理前的空间

EXEC sp_spaceused;
DBCC SHOWFILESTATS;
GO

— 第2步:清理 Query Store 数据

ALTER DATABASE [数据库名] SET QUERY_STORE CLEAR;
GO

— 第3步:收缩数据文件(回收未使用空间)

DBCC SHRINKFILE (N’数据库名_Data’, 40); — 目标40MB
GO

— 第4步:重建索引(消除碎片)

EXEC sp_msforeachtable ‘ALTER INDEX ALL ON ? REBUILD’;
GO

— 第5步:查看清理后的空间

EXEC sp_spaceused;
DBCC SHOWFILESTATS;
GO

— 第6步:重新配置 Query Store(防止再次膨胀)

ALTER DATABASE [数据库名]
SET QUERY_STORE (MAX_STORAGE_SIZE_MB = 50);
GO
» 站长码字辛苦,有用点个赞吧,也可以打个
» 若转载请保留本文转自:豫章小站 » 《sqlserver数据库收缩大小》
» 本文链接地址:https://blog.mydns.vip/4962.html
» 如果喜欢可以: 点此订阅本站 有需要帮助,可以联系小站
赞(0) 打赏
声明:本站发布的内容(图片、视频和文字)以原创、转载和分享网络内容为主,若涉及侵权请及时告知,将会在第一时间删除,联系邮箱:contact@mydns.vip。文章观点不代表本站立场。本站原创内容未经允许不得转载,或转载时需注明出处:豫章小站 » sqlserver数据库收缩大小
分享到: 更多 (0)

评论 抢沙发


  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

智慧源于勤奋,伟大出自平凡

没有所谓的捷径,一切都是时间最平凡的累积,今天所做的努力都是在为明天积蓄力量

联系我们赞助我们

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏