【问题标题】:When to shrink: after reducing the size of one column or after reducing the size of all columns?何时缩小:减小一列的大小后还是减小所有列的大小?
【发布时间】:2013-04-05 00:40:24
【问题描述】:

我们有一个巨大的数据库(300GB),其中大部分空间被一张大表占用。该表有许多列被定义为浮点数,每列占用 8 个字节。但是最近我们意识到只需要 4 个字节,我们必须更改每列的大小,因此我们必须为每一列(大约 6 列)运行类似这样的查询:

alter table [HugeTable] alter column [Col] float(1)

我的问题是:在减少列大小后,我们应该如何以及何时回收空间?对于我们何时有两种可能性的问题:在每个更改表之后(缺点:它需要更长的时间)或在所有列都减少之后。对于我们的想法是如何的问题:数据库收缩,聚集索引重建。 DBCC CLEANTABLE 在我们的案例中也有用吗?据我了解,它仅对可变列类型有用。

谢谢!

编辑:最后我们决定不使用这种方法。相反,我们正在创建一个具有新结构的表并逐渐移动数据。

【问题讨论】:

    标签: sql database shrink


    【解决方案1】:

    我会调整所有列的大小,然后在数据库上运行维护。每列调整大小后无需执行此操作。

    【讨论】:

    • 你会建议什么样的维护?
    • 收缩数据库、重建索引、检查一致性等。您可能在每周(?)维护工作中拥有的所有东西......
    • 不幸的是,由于数据库大小,我们无法定期运行它们:( 一致性检查持续 13 小时 (!!!)。所以我们真的需要尽可能快地保持它。会重建索引就足够了吗?我知道不完全推荐收缩
    猜你喜欢
    • 2011-11-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-14
    • 2018-05-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多