我有一个表格,其中包含两个字段,我希望在数据库中使它们唯一。例如:
create table Subscriber (
ID int not null,
DataSetId int not null,
Email nvarchar(100) not null,
...
)
ID列是主键,DataSetId和Email都被索引。
我想要做的是防止相同的Email和DataSetId组合出现在表中,换句话说,对于给定的DataSetId,Email值必须是唯一的。
我尝试在这些列上创建了一个唯一索引。
CREATE UNIQUE NONCLUSTERED INDEX IX_Subscriber_Email
ON Subscriber (DataSetId, Email)
但我发现这对搜索时间有相当大的影响(例如在搜索电子邮件地址时-表中有150万行)。
是否有更有效的方法来实现此类约束?