自动增长、收缩和数据库性能

IT *_*her 4 sql-server shrink sql-server-2008-r2

我已经问过一些关于自动增长和收缩的问题。但我对此有一些疑问。

  1. 我有一个每月增长约 300 MB 的数据库。那么最好将 Autogrowth 设置为 300 MB 吗?现在设置了 10 MB。

  2. 我有很多小型数据库,它们确实有大约 50 MB 的数据。但它的物理大小约为 900 MB。(所以 850 是可用空间)。我没有缩小这个数据库。好像我在添加数据时再次缩小它会发生自动增长。但是向这个数据库添加数据是很少见的。所以我认为未来一年它不会增长超过 200MB。

    那么我应该缩小数据库吗?如果我保持原样?这会导致任何性能问题吗?或者在数据库中有更多的可用空间(超过 90%)会导致任何问题?我认为大多数人认为大的物理尺寸会导致性能问题。那么这是真的还是假的?

  3. SQL Server 2008 R2 Express 数据库大小限制为 10 GB。那么它是 mdf 和 ldf 文件的物理大小吗?因为如果我应该在任何时候缩小数据库,我需要考虑这一点。

Aar*_*and 6

  1. 是的,选择一个自动增长规模以确保您在业务周期中最小化或消除增长事件的数量是理想的。我敢说,如果每月 300 MB 是可预测的,您还应该 - 除了设置更合理的自动增长设置之外 - 现在将文件增长 4 或 8 GB,以允许一两年的增长而无需担心中断性增长事件(即使是即时文件初始化,数据文件增长仍会导致事务在完成时等待)。如果您知道每月将增长约 300 MB,为什么要推迟所有这些增长事件?在此期间,您打算如何处理这个空间?按月出租?

  2. 您可能可以将该特定数据库缩小到 200 MB。请务必使用DBCC SHRINKFILE或来执行此操作ALTER DATABASE MODIFY FILE,而不是DBCC SHRINKDATABASE

  3. Express 限制仅适用于数据文件。您可以拥有 9.99 GB 的数据文件和 600 GB 的日志文件,SQL Server 不会抱怨。嗯,它会以其他方式,但不是由于超出任何任意文件大小限制。也就是说,您应该确保进行简单恢复或以合理的速度备份您的日志。日志文件永远不应该不受控制地增长 - 如果您担心 Express 实例上的日志文件,则说明有问题。请参阅以下帖子以进行大量讨论: