数据库收缩时间长

数据库收缩时间长,第1张

一个事务才压缩32个数据页,一个数据页8KB,100G,要开启多少次事务?

一般在线系统,最好夜深人静的时候干。

或是断开所有连接,备份,清空日志后收缩,逐个文件压缩,这下你知道为啥要建立数据库文件组了吧!

select fileid,name,filename from sysfiles

DBCC SHRINKDATABASE(1)

我个人看可能是你硬件配置过低导致,或是磁盘已经有问题了,或是有资源争夺的可能。

100G数据文件,32核心,32G内存,16块300G硬盘,我压缩一次也就30分钟。

估计跟你的磁盘空间有关系。

收缩数据库

数据库中的每个文件都可以通过删除未使用的页的方法来减小。尽管数据库引擎会有效地重新使用空间,但某个文件多次出现无需原来大小的情况后,收缩文件就变得很有必要了。数据和事务日志文件都可以减小(收缩)。可以成组或单独地手动收缩数据库文件,也可以设置数据库,使其按照指定的间隔自动收缩。

文件始终从末尾开始收缩。例如,如果有个 5 GB 的文件,并且在 DBCC SHRINKFILE 语句中将 target_size 指定为 4 GB,则数据库引擎将从文件的最后一个 1 GB 开始释放尽可能多的空间。如果文件中被释放的部分包含使用过的页,则数据库引擎先将这些页重新放置到文件的保留部分。只能将数据库收缩到没有剩余的可用空间为止。例如,如果某个 5 GB 的数据库有 4 GB 的数据,并且在 DBCC SHRINKFILE 语句中将 target_size 指定为 3 GB,则只能释放 1 GB。

自动数据库收缩

将 AUTO_SHRINK 数据库选项设置为 ON 后,数据库引擎将自动收缩具有可用空间的数据库。此选项可以使用 ALTER DATABASE 语句来进行设置。默认情况下,此选项设置为 OFF。数据库引擎会定期检查每个数据库的空间使用情况。如果某个数据库的 AUTO_SHRINK 选项设置为 ON,则数据库引擎将减少数据库中文件的大小。该活动在后台进行,并且不影响数据库内的用户活动。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6808927.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-28
下一篇 2023-03-28

发表评论

登录后才能评论

评论列表(0条)

保存