压缩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指令快速准确的操作压缩数据库,这无论是在数据库维护上还是在性能优化上,都能带来极大的帮助。


数据运维技术 » 压缩mssql数据库的简单方法分享(如何压缩mssql数据库)