У меня есть таблица, которая содержит, например, два поля, которые я хочу сделать уникальными в базе данных. Например:
create table Subscriber (
ID int not null,
DataSetId int not null,
Email nvarchar(100) not null,
...
)
Идентификационный столбец является первичным ключом, и индексируются как DataSetId, так и Email.
То, что я хочу сделать, - это предотвратить появление одной и той же комбинации электронной почты и DataSetId в таблице, или, говоря иначе, значение электронной почты должно быть уникальным для данного DataSetId.
Я попытался создать уникальный индекс в столбцах
CREATE UNIQUE NONCLUSTERED INDEX IX_Subscriber_Email
ON Subscriber (DataSetId, Email)
но я обнаружил, что это оказало значительное влияние на время поиска (например, при поиске адреса электронной почты - в таблице содержится 1,5 миллиона строк).
Существует ли более эффективный способ достижения такого ограничения?