2009-07-12 44 views

回答

10

缩小数据库时,会消耗资源来缩小数据库。遇到问题的时候,数据库需要再次增长,并且假设您设置了自动增长,它将消耗更多资源以实现自动增长。持续自动缩小(或缩小为维护计划的一部分)将导致物理磁盘碎片。

如果启用自动增长,它被设置为1MB默认的常数,汽车的增长会消耗大量的资源。

这是大小最佳实践你的数据库的大小适宜,预计初始大小加上预期增长在一段(一个月,一年,不管期间您认为合适的)。您不应该使用自动收缩或使用收缩作为维护程序的一部分。

您还应该设置你的自动增长到MB(不是数据库%当汽车越来越多,它需要先计算%,再增长的数据库)。您还应该将汽车的增长率设定为合理的数量,以确保它不会每隔10分钟增长一次,试着每天瞄准一两次增长。

你也应该看看设置即时初始化您的SQL Server。

祝你好运,

马特

+3

+1很好的回答这个问题。我想说一个月或一年的增长。此外,数据文件中的可用空间应该是1.2最大的表8,以便进行索引维护等)...但是索引维护当然可以为您确定理想的数据文件大小。 – gbn 2009-07-12 13:45:13

0

是的,它可能会影响性能一点。当数据库运行时,它不关心磁盘空间的使用情况,更多关于高效的数据检索/持久性。

1

明白,当你收缩数据库时,页面将会重新安排是很重要的。数据文件末尾的页面移动到文件开头的开放空间,不考虑碎片。

聚簇索引决定表中数据的物理顺序。因此,想象你刚刚创建了一个聚集索引,它将物理地重新排序该表中的数据。那么,当你执行一个缩减命令时,刚刚在创建聚集索引期间整齐排列的数据现在可能会失序,这将影响SQL有效使用它的能力。

所以,你做一个收缩操作任何时候,你必须对所有后续查询影响性能的潜力。但是,如果在收缩后重新执行聚簇索引/主键,则可以帮助对收缩操作期间可能引入的大部分碎片进行碎片整理。如果性能至关重要,但你也不得不经常收缩,那么在理想的情况下,每次收缩操作后你都会想重新做你的索引。

相关问题