繁体   English   中英

如果我收缩它,数据库(SQL Server 2005)的性能是否会降低?

[英]Does performance of a database (SQL Server 2005) decrease if I shrink it?

如果我收缩它,数据库(SQL Server 2005)的性能是否会降低?

应用缩小时mdf和ldf文件究竟发生了什么(Internals ???)

缩小数据库时,它将消耗资源来缩小数据库。 遇到问题的地方是数据库需要再次增长,并且假设您已经设置了自动增长,它将消耗更多资源来自动增长。 恒定的自动收缩(或作为维护计划的一部分收缩)将导致物理磁盘碎片。

如果启用了自动增长并将其设置为默认值1MB,则常量自动增长将消耗大量资源。

最佳做法是将数据库的大小调整为合适的大小,预期的初始大小加上一段时间(月,年,您认为合适的任何时期)的预期增长。 您不应使用自动收缩或使用收缩作为维护程序的一部分。

您还应将自动增长设置为MB(不是数据库的百分比,因为自动增长时需要首先计算%,然后增长数据库)。 您还应该将自动增长设置为合理的数量,以确保它不会每10分钟增长一次,并尝试每天增加1或2个增长。

您还应该考虑为SQL Server设置即时初始化。

祝好运,

马特

了解缩小数据库时,重要的是要重新排列页面。 数据文件末尾的页面将移动到文件开头的开放空间,而不考虑碎片。

聚簇索引确定表中数据的物理顺序。 因此,假设您刚刚创建了一个聚簇索引,它会在物理上重新排序该表中的数据。 那么,当你执行一个收缩命令时,在创建聚簇索引期间刚刚整齐排序的数据现在可能会出现故障,这将影响SQL有效使用它的能力。

因此,无论何时进行缩减操作,都有可能影响所有后续查询的性能。 但是,如果在收缩后重新执行聚簇索引/主键,则有助于对收缩操作期间可能引入的大部分碎片进行碎片整理。 如果性能至关重要,但您也不得不经常收缩,那么在理想的世界中,您需要在每次收缩操作后重新执行索引。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM