2013-06-18 61 views
2

我正在使用Oracle数据库,我有一个客户记录表,并且希望将唯一键约束放在多个varchar2列上。像多个列的唯一约束具有性能问题 - Oracle

CUST_ID (Number)

CUST_Name(varchar2), 

Cust_N.I.C_NO(varchar2)将唯一的密钥。

当通过表格6i插入新记录时,如果出现ORA-00001错误,用户将被通知它是一个DUPLICATED记录。

当本表中的记录超过50000或更多时,请告知我是否会有任何数据库性能问题。

如果这不是避免插入重复记录的好习惯,那么请建议其他方法。

关于。

+0

你列出了三列,并说他们“会做出一个唯一的关键”。你的意思是三个独特的钥匙?因为他们似乎是一个复合键的奇怪候选人。 – APC

+0

这绝对是避免插入重复记录的最佳方法。 –

回答

7

通过索引强制执行唯一约束。所以在执行过程中还会有额外的读取。但是,与解决数据库中重复键所产生的性能影响相比,约束的性能影响是最小的。更不用说这种数据损坏的业务影响了。

此外,50000行是玩具大小的桌子。严重的是,你将无法测量有和没有约束的插入的差异。

+0

非常感谢APC。非常感激 – user1115284