在 SQL Server 中,在已有超过 100 万条记录的表上设置默认值的数据库成本是多少?

0 sql-server default-value sql-server-2012

注意:我不是 dba。:)

我有一个客户端需要设置列的默认值的数据库表。此表中有 150 万条以上的记录,并且此列已填充到所有现有记录中(他们现在手动执行此操作)。他们希望在其用户创建的所有新记录上自动设置此列。

在工作时间内设置此列的默认值是否会导致停机或任何重大延迟问题?

Mar*_*ith 5

为了应用此更改,该过程将需要获取一个SCH-M锁,并且一旦获得它应该是非常即时的(仅元数据更改。)

唯一的风险是,如果您有一个长时间运行的事务正在使用该表,而该ALTER TABLE语句正在等待获取锁被饿死。

因此,您最终可能会阻塞生产查询一段时间,直到授予锁定并进行更改。