宜收藏:5款常用的数据分析工具,简单便捷!数据分析工具常见的有哪些?
930
2022-05-29
操作场景
华为云SQL Server提供存储过程,用于收缩数据库的数据文件和日志文件,以释放磁盘部分空间。
操作步骤
连接RDS for SQL Server实例,执行以下命令,进行数据库收缩。
EXEC [master].[dbo].[rds_shrink_database] @DBName = 'myDBName';
参数
myDBName: 要收缩的数据库名称。如果未指定,则默认对所有数据库进行收缩。
结果
A.结果集
返回多个结果集,每个结果对应指定数据库(或所有数据库)的每个文件的相关信息。结果集结构如下:
列名称
说明
DbId
当前收缩的文件的数据库标识号。
FileId
当前收缩的文件的文件标识号。
CurrentSize
文件当前占用的 8 KB 页数。
MinimumSize
文件最低可以占用的 8 KB 页数。 此数字对应于文件的大小下限或最初创建大小。
UsedPages
文件当前使用的 8 KB 页数。
EstimatedPages
数据库引擎估计文件能够收缩到的 8 KB 页数。
B. 消息
打印命令执行进度。
最佳实践
Ø 在执行会产生大量未用空间的操作(如重启)后,执行收缩操作最有效
Ø 大多数数据库都需要一些可用空间,以供常规日常操作使用。 如果反复收缩数据库,并且它的大小再次增长,那么常规操作可能需要收缩空间。 在这种情况下,反复收缩数据库是一种无谓的操作。
Ø 收缩操作不保留数据库中索引的碎片状态,通常还会在一定程度上增加碎片。 此类碎片是不要反复收缩数据库的另一个原因。
故障排除
l 文件未收缩
1. 如果在执行存储过程后文件大小未改变,请运行以下SQL,验证文件是否有足够的可用空间:
SELECT name, size/128.0 - CAST(FILEPROPERTY(name, 'SpaceUsed') AS int)/128.0 AS AvailableSpaceInMB FROM sys.database_files;
2. 如果要收缩的数据库文件大小不超过50MB,对该文件的收缩将不起作用。且会打印相关提示。如:
l 收缩操作受阻
基于行版本控制的隔离级别下运行的事务可能会阻止收缩操作。若要解决此问题,请执行下列任务之一:
² 终止阻止收缩操作的事务。
² 终止收缩操作。 如果收缩操作终止,所有已完成的工作都会保留。
² 不执行任何操作,并允许收缩操作等到阻塞事务完成。
示例
收缩指定数据库
以下示例将 dbtest2 数据库进行收缩。
EXEC [master].[dbo].[rds_shrink_database] @DBName = 'dbtest2';
执行结果如下:
收缩所有数据库
以下示例将收缩所有数据库。
EXEC [master].[dbo].[rds_shrink_database];
华为云数据库 sqlserver 数据库
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。