我有一个包含超过6千万条记录的大表,我想添加2个新列用于数据迁移。桌子上有索引,其中一些很大。所以,通过我将2个新列添加到表中,我是否会冒着放慢数据库的风险,同时尝试添加它们并可能超时?或者它会起作用吗?
我知道如果我尝试重新排列列,SQL Server会要求我删除并重新创建表,所以我绝对不希望这样。这是每个人都受到挑战的事情吗?
答案 0 :(得分:1)
我们在较大的表上的列和索引更改时遇到了同样的问题。
我只想使用ALTER TABLE
添加列。列顺序虽然不错,但却无关紧要。
如果列为NULL,则时间合理。如果你想添加一个默认值并使它们为NOT NULL,那么这显然是更多的工作。但是,我会考虑添加为NOT NULL,然后设置为值,然后更改为NOT NULL以使其在不同时间执行3个步骤。我们这样做是为了减少我们需要的时间窗口,即使整个过程的时间更长