vic*_*csz 1 oracle indexing constraints
我正在做一个数据迁移项目,其中一些表只会加载一次。即一个表将只使用一个 Select From Insert Into 来完全加载。
我想通过使用主键和约束来确保数据完整性。
使用 Oracle,当我创建主键或约束时,Oracle 会自动为我创建相应的索引。
是否可以禁用索引的创建?请注意,我仍然希望根据需要验证约束......以便在 Oracle 实际上需要进行验证的情况下,它将创建索引(根据需要)......或进行全表扫描.
我想禁用或推迟此索引创建的原因是我注意到创建的大多数索引(用于约束)实际上并没有被使用。为此,我为所有索引打开使用情况监控,运行数据迁移过程,然后验证 v$object_usage。
Oracle 使用唯一索引来强制执行主键约束。除非在禁用状态下创建主键,否则无法在未创建相应索引的情况下创建主键,在这种情况下,除非启用主键,否则不会强制执行主键。
编辑:
如果在主键中使用的列上已经存在 Oracle 可以使用的索引,那么 Oracle 将使用该索引来强制执行约束,无论是否唯一。如果 Oracle 必须创建索引,它将是唯一的,除非约束是可延迟的,在这种情况下它将是非唯一的。感谢香农和亚当的评论。
归档时间: |
|
查看次数: |
1421 次 |
最近记录: |