压缩mssql数据库的简单方法分享(如何压缩mssql数据库)
对于SQL Server拥有者来说,数据库的维护是一项重要的工作,及时的压缩数据库的大小可以提高SQL Server的运行及其访问数据的速度。本文重点分页压缩及空白页压缩方法,帮助拥有者快速简单操作压缩SQL Server数据库。
首先,我们介绍示例:划分页面压缩,这是SQL Server最常用的压缩方法。它可以通过对数据表空间中的数据分页和碎片的数据重新编排,大大减少数据表的碎片,缩小数据表的大小。
具体步骤如下:
1、物理上磁盘空间不足时,可以使用以下SQL Server查询查看大小信息:
SELECT DB_Name(database_id) DB_Name, Name, size / 128.0 [Size in MB]
FROM sys.master_files
WHERE type_desc = ‘Rows’
ORDER BY 1, 2
2、建立以下脚本文件:
use XYZ
GO
–对每个表进行压缩
EXEC sp_msforeachtable @command1=”print ‘?’ DBCC SHRINKFILE (N’?’, 10)”
GO
3、启动脚本,大小将减少但不会压缩超过10Mb。
接下来是空白页压缩,也很常用。它能够减少表空间并恢复空间至数据文件的初始大小,但要求已经有一定程度的碎片。
具体步骤如下:
1、使用以下SQL查询以查看需要压缩的表:
SELECT a.name as TableName,
b.name as DataFileName,
c.name as LogFileName
FROM sys.tables a
LEFT JOIN sys.database_files b
ON a.object_id = b.object_id
LEFT JOIN sys.database_files c
ON b.data_space_id = c.data_space_id
WHERE c.name IS NOT NULL
ORDER BY a.name
2、在查询中运行以下语句:
USE XYZ
GO
–关闭表,以便将其分离到更小的大小
DBCC SHRINKFILE (N’XYZ_Log.ldf’, EMPTYFILE)
GO
3、当脚本完成后,检查结果,检查是否存在空白页,确保在新的一次压缩之前所有的表空间都已经清理完毕。
通过以上2种方法来操作,即可轻松节省SQL Server数据库的容量,提高运行效率。另外,还可以融合这2种方式,结合sp_msforeachtable针对每个表执行DBCC SHRINKFILE操作,更加简单方便。
通过以上压缩mssql数据库的简单方法,拥有者可以快速的使用SQL Server精确的查询语句查看数据库的大小,结合DBCC SHRINKFILE指令快速准确的操作压缩数据库,这无论是在数据库维护上还是在性能优化上,都能带来极大的帮助。