【发布时间】:2012-05-17 10:27:07
【问题描述】:
向具有默认值和非空约束的表添加列时。 在数据库处于负载状态时,作为单个语句运行还是将其分解为多个步骤更好。
ALTER TABLE user ADD country VARCHAR2(4) DEFAULT 'GB' NOT NULL
对比
ALTER TABLE user ADD country VARCHAR2(2)
UPDATE user SET country = 'GB'
COMMIT
ALTER TABLE user MODIFY country DEFAULT 'GB' NOT NULL
【问题讨论】:
-
您的 USER 表中有多少行?
-
用户表中存在 10,000 行。
-
你能衡量性能吗?
-
Kiquenet,我不是数据库性能专家,但从以前的经验来看,由于 Oracle 内部缓存等原因,我发现在数据库中测量性能非常困难。
-
这个问题和NOT NULL有什么关系?即,为什么这与 DEFAULT 优化有关?
标签: oracle alter-table