【发布时间】:2015-09-18 14:49:34
【问题描述】:
我正在尝试比较两个模式以确保它们同步。在一个模式中,我在 2 列上看到了唯一索引。除此之外,我看到一个使用唯一索引的唯一约束。
我是 Oracle 的新手,但我的一般理解和根据 this 的唯一约束只能确保没有重复,它不一定被索引。为了提高性能,应在 FK 列上添加索引以允许有效地执行约束。
在我的目标数据库中,我只有唯一索引 HD_FILL_DISPNSNG_FEE_VAL_AK1。
既然这个索引被标记为“UNIQUE”,这不是提供索引的唯一约束和性能优势吗?我看到很多关于该主题的帖子,例如引用的链接,但我无法将其应用于这种特殊情况。
问题:既然我有唯一索引,那么删除 UNIQUE CONSTRAINT 会有什么缺点吗?同样,使用不同于唯一索引的索引的唯一约束如何?
CREATE UNIQUE INDEX RXFINODS_O.HD_FILL_DISPNSNG_FEE_VAL_AK1 ON RXFINODS_O.HD_FILL_DISPNSNG_FEE_VAL
(CVRG_TY_CD, VAL_EFF_START_DT)
LOGGING
TABLESPACE RXFINODS_INDEX
PCTFREE 10
INITRANS 2
MAXTRANS 255
STORAGE (
INITIAL 64K
NEXT 1M
MAXSIZE UNLIMITED
MINEXTENTS 1
MAXEXTENTS UNLIMITED
PCTINCREASE 0
BUFFER_POOL DEFAULT
FLASH_CACHE DEFAULT
CELL_FLASH_CACHE DEFAULT
)
NOPARALLEL;
--
-- Non Foreign Key Constraints for Table HD_FILL_DISPNSNG_FEE_VAL
--
ALTER TABLE RXFINODS_O.HD_FILL_DISPNSNG_FEE_VAL ADD (
CONSTRAINT HD_FILL_DSPSNG_FEE_VAL_AK1
UNIQUE (CVRG_TY_CD, VAL_EFF_START_DT)
USING INDEX .HD_FILL_DISPNSNG_FEE_VAL_AK1
ENABLE VALIDATE);
【问题讨论】:
标签: oracle12c