Oracle DB,为多个列创建唯一约束以进行插入,性能如何

时间:2017-03-18 14:34:05

标签: database oracle performance

朋友,

对DB的新手来说,我需要一些帮助/信息。  我们的项目中有一个表“record_table”,其中的值是使用C ++代码插入的。

这个表有多列,其中三列代表例如。 “serialNo,type,sub_type”C ++代码为这些列的组合插入重复值(这些列不是该表的唯一或主要列)。但是3列的组合应该是唯一的。

现在我们要确保不应插入此组合的重复项。我正在考虑为这些列添加唯一约束,以便在插入具有这些重复值的新记录时,它将不允许。

我认为这应该可行,但我怀疑它是否会达到性能,C ++二进制文件每天运行并且它会插入大约200万条记录。将创建独特的约束命中性能。(意味着运行时间会减慢,或者因为表有数百万条记录会创建唯一约束,因为它必须对这些列进行哈希等等)

如果可以,请建议。

1 个答案:

答案 0 :(得分:5)

通过索引强制执行唯一约束。您无论如何都需要该索引,以便再次查询数据,因此维护它的开销无关紧要。

真正的问题是,如果您不执行约束,处理重复记录会对性能产生什么影响?一般而言,与修复数据损坏相比,执行约束的性能影响微不足道。