笔记35-徐 收缩数据库或文件注意事项
笔记35-徐 收缩数据库或文件注意事项
1 --收缩数据库或文件注意事项 2 --另外数据文件里有空间,而不能压缩或者清空通常是因为数据文件里虽然有很多空的页面,但是这些页面分散在各个区里, 3 --使得整个文件没有很多空的区,由于 dbcc shrinkfile做的都是区一级的动作。 4 --他会把使用中的区前移,把没有使用中的区从文件中移除,但是,他不会把一个区里面的空页移除、合并区, 5 --也不会把页面里的空间移除、合并页面。 6 --所以,数据库中有很多只使用了一两个页面的区,dbcc shrinkfile的效果不明显 7 8 ------------------------------------------------------------------------------------------------------------- 9 --数据文件的问题:在上述我介绍的报表里找出数据量最多的表 10 --如果这个表有一个聚集索引,那么可以通过重建索引的方式把页面重排一次,没有聚集索引的话可以为他建立一个 11 --建立完索引之后,占用的区释放出来了,这时候使用,下面的代码是例子 12 USE GPOSDB 13 DBCC SHRINKFILE(1,40) 14 --如果不想重建索引,可以把表的数据先移走,然后清空表格,再把数据插回来 15 16 17 18 19 20 --日志文件的问题:备份事务日志来截断事务日志 21 22 23 --最后,数据文件收缩会给文件带来更多的碎片,所以不建议设置自动收缩或者经常手动收缩, 24 --除非SQL文件就快用尽磁盘空间,影响操作系统
在开启自动收缩选项的情况下,SQL Server定期会检查文件使用情况。如果空闲空间大于25%,SQL Server就会自动运行自动收缩数据库文件的动作。
(附上微软官方链接:https://docs.microsoft.com/zh-cn/sql/t-sql/statements/alter-database-transact-sql-set-options?view=sql-server-2017&viewFallbackFrom=sql-server-2014)
https://www.cnblogs.com/double-K/p/10621461.html
例如:数据迁移删除大量数据时,空闲空间大于25%时,会触发自动收缩功能。