我们在一个有几百万行的 Oracle 数据库中有一些表。当我们更改其中一个表以添加新列时,我们指定一个默认值。这运行起来非常慢,因为 Oracle 必须使用默认值更新所有现有行。解决方案是确保该列被定义为 NOT NULL,因为这样 Oracle(仅限最近的版本)将不会使用默认值更新所有现有行 - 随后在这些列之一中出现空值会告诉 Oracle 它需要一个默认值并且它将即时提供默认值。
我的问题是关于 SQL Server:它在添加列并提供默认值时是否表现出类似的行为?如果没有,是否有任何最佳实践可以有效地添加具有默认值的新列,并且将列定义为 NOT NULL 是否有任何优势?