1. 收缩所移动的每个数据页都会被写入事务日志
假设你有个数据库(含数据和索引)占用了50G空间, 你想收缩成40G. 而收缩过程 就是要把那40G的东西移到数据文件的开始. 同时, 为这个收缩, 事务日志需要40G 的空间, 就象自动增长了那些空间(如果你之前没预留那么多空间的话). 然后, 你的日志备份大小就会是40G加上”正常部分的”日志. 如果你的数据库恢复模式设成简单的话,不会有这个现象, 因为在收缩过程中的CHECKPOINT会把日志截断的.
(此条适用于收缩数据文件)
2. 收缩后, 当用户加入数据时, 数据文件又会自动增长.
增加数据库的空间是个很”昂贵的”操作, 因为数据文件增长很费时间, 并且因为需要很多的资源而影响数据库的性能. 同时, 一些操作会被阻塞直到增长的操作结束.
(此条适用于收缩数据和日志文件)
SQL Server 2005及以后的版本:
SQL Server 2005加入了一个新特征: 即时初始化(instant file initialization), 就是说建数据文件和增长数据文件会很快, 因为Windows不再把所有数据库文件都写上零了. 不过, 即时初始化只适用于数据文件, 而不适用于日志文件. 同时, 对数据文件的初始化需要SQL SERVER服务帐号具有WINDOWS的SE_MANAGE_VOLUME_NAME的权限 (这一权限可以用WINDOWS的Perform Volume Maintenance Tasks的安全策略来设定). 在缺省条件下, 这个权限只限于系统管理员.
3. 在某些情况下, 自动增长不能”赶上”SQL SERVER对空间的需求.
这会产生两个错误信息: 1) 如果数据文件空间满了, 则产生错误1105; 2) 如果日志文件满了, 则产生错误9002.
(此条适用于收缩数据和日志文件)
4. 移动数据页会使你的数据库产生碎片
假设你先重建索引(这个要求数据库有空间), 然后又收缩数据库. 实际上, 收缩会把你之前重建的索引又改回去了, 使你的数据库产生碎片. (如果你先收缩, 然后重建索引, 结果就是你的数据库文件会增大.)
(此条适用于收缩数据文件)
5. 频繁地收缩和增长数据库文件会使底层的文件系统产生碎片, 从而影响数据库性能.
(此条适用于收缩数据和日志文件)
tempdb收缩文件和收缩数据库的区别 收缩数据库有什么作用
转载文章标签 tempdb收缩文件和收缩数据库的区别 数据库 sql server initialization windows 文章分类 机器学习 人工智能
-
有趣的css - 背景收缩动画按钮
借助 css transition 属性绘制出一个背景收缩交互的一个按钮。
css ux/ui 交互设计 动效设计 动画按钮 -
收缩 tempdb 数据库
收缩 tempdb 数据库
其他 tempdb -
收缩数据库
SQL数据库的收缩并不能很大程度上减小数据库大小,其主要作用是收缩日志大小,应当定期进行此操作以免数据库日志过大
职场 数据库 sqlserver 休闲 收缩