缩小数据库的性能优势

Mad*_*dan 0 sql-server

我有一个 1.5 TB 的数据库,之前只有 200 GB 的可用空间。由于性能问题,企业决定将 1 个月的数据保留政策减少到 1 周。由于这 3 周的数据被删除,现在它有 700 GB 的可用空间空间。

不再需要因数据删除而增加的 500 GB 可用空间,并且没有机会再次增长数据以占用这 500 GB 空间。

我计划收缩数据库(使用收缩文件命令)并运行索引优化过程来重建索引,如果碎片大于 30%。释放的空间不会被其他系统使用,但是可以在不久的将来有效地用于日志文件和临时数据库的增长。

除了空间释放之外,通过减小数据库的大小是否对性能有任何好处?

以前与缩小(在堆栈交换中)相关的问题没有正确回答我的查询。

预先感谢您的友好回复!!!

Geo*_*ios 6

如果您按照您所说的方式维护索引,则不会有性能优势。

性能实际上会因缩小而变得更糟,并且您的下一个索引重建工作可能比平时有更多的工作要做。

人们认为缩小数据库可以提高性能的最常见原因是引擎必须为查询读取更少的页面,但是通过缩小您实际上并没有释放任何页面,您只是在数据库,导致碎片化和性能下降。您确实会减少数据库的总页数,但不会减少保存数据的已用页数。

另一点是收缩该数据库可能需要很长时间,因为收缩过程是一个单线程过程。它也可能在收缩期间导致性能问题,并可能导致阻塞。

查看何时可以缩小数据库 DBA SE 问题

我强烈建议不要缩小。

您的一种选择可能是将数据传输到同一数据库的一个新的空副本中,然后删除旧的 - 这可能更快更整洁。