sql server 收缩数据库 需要多长时间

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql server 收缩数据库 需要多长时间相关的知识,希望对你有一定的参考价值。

参考技术A 根据数据库的大小,如果数据库很小,那么收缩时间超快,否则的话,收缩超慢,也可能失败! 参考技术B 1、用收缩文件的方式最好,如果收缩日志文件,先做一次日志备份,最好的方法是先做完备再做日志。
2、如果收缩数据文件,建议先100M每次地收缩,过3、5次之后,再加到500M一次,再过3、5次再升到1G一次,后面就不要再加了,收缩很费资源,不要一次行收缩和在繁忙时收缩。没有官方文档支持,但是按照个人经历,好像sqlserver有一个适应期,要先从小规模收缩几次,才“适应”,然后再慢慢加,另外不要收缩到很小,因为一旦有新数据或者数据改动,又会涨起来,到时候压力更大。
参考技术C 这个有很多因素,比如收缩的时候你的数据库是否被访问等等,收缩数据文件是单线程的操作,所以CPU再好也没用,一般收缩的话都少量多次这样操作。。。 参考技术D 1、用收缩文件的方式最好,如果收缩日志文件,先做一次日志备份,最好的方法是先做完备再做日志。
2、如果收缩数据文件,建议先100M每次地收缩,过3、5次之后,再加到500M一次,再过3、5次再升到1G一次,后面就不要再加了,收缩很费资源,不要一次行收缩和在繁忙时收缩。没有官方文档支持,但是按照个人经历,好像sqlserver有一个适应期,要先从小规模收缩几次,才“适应”,然后再慢慢加,另外不要收缩到很小,因为一旦有新数据或者数据改动,又会涨起来,到时候压力更大。
3、文件的增长规模,按照120G程度,建议每次增长500M,不要用百分比了

若你的数据库不能停机也不好搞啊。
收缩数据库都需要将数据库转换成 简单恢复模式。
第5个回答  2018-02-11 和数据量大小有关系

收缩SQL SERVER数据库

如果数据库设计的尺寸过大,即使删除了数据库中大量数据,这时数据库依旧会占用大量磁盘资源。因此,需要根据用户实际需求,对数据库进行收缩。

收缩的3种方式:

1、AUTO_SHRINK

基本格式:

ALTER DATABASE database_name SET AUTO_SHRINK ON 

将该选项设为ON后,数据库引擎会自动收缩具有可用空间的数据库。

2、DBCC SHRINKDATABASE

基本格式:

DBCC SHRINKDATABASE(‘database_name‘,target_percent)

该方式要求手动收缩数据库大小,比自动化收缩数据库更灵活,可对整个数据库进行收缩。

3、DBCC SHRINKFILE

基本格式:

DBCC SHRINKFILE (‘file_name‘,target_percent)

该命令可以收缩指定的数据库文件,可将文件收缩至小于其初始创建的大小,并且重新设置当前的大小为其初始创建的大小。值得注意的是,该收缩语句只能将数据库收缩为 自数据库创建之初以来指定过的最小的初始文件大小,如果你的数据库第一次创建的时候初始大小是1024MB,并且之后都没有人为调动过初始大小,那么抱歉你的数据最小也就只能收缩到1024MB,尽管可能其中有1023MB都没有被实际用到。。。

注意:建议不要过频繁地使用“自动收缩”特性,最好禁用自动收缩,改为手工收缩或者是调度操作,每隔一段时间收缩一次。

以上是关于sql server 收缩数据库 需要多长时间的主要内容,如果未能解决你的问题,请参考以下文章

收缩SQL SERVER数据库

sql 2012收缩日志需要停镜像吗

sql server数据库日志怎么清理

怎样在SQL Server 2000中收缩数据库

sql server 中收缩数据库有意义吗

SQL Server数据库的收缩一直在执行