将列添加到一个巨大的 table

Add column to a huge table

我有一个 table 大约有 130 亿条记录。 table 的大小约为 800 GB。我想向 table 添加一个 tinyint 类型的列,但是 运行 添加列命令需要很多时间。另一种选择是使用附加列创建另一个 table 并使用 BCP(数据导出和导入)将数据从源 table 复制到新的 table 或直接将数据复制到新的 table.

有没有更好的方法来实现这个?

我对这种大小的 table 的偏好是创建一个新的 table,然后将记录分批放入其中(BCP、批量插入、SSIS,无论您喜欢什么)。这可能需要更长的时间,但它可以防止您的日志爆裂。您还可以先处理最相关的数据(比如最近 30 天),换出 table,然后批处理剩余的历史记录,以便您可以立即利用新行……如果您的应用程序排队采用该策略。