При создании индекса по столбцу, который будет УНИКАЛЬНЫМ (но не первичным ключом таблицы), сервер SQL позволяет мне выбрать несколько вариантов:
1) Я могу выбрать для него ограничение или индекс.
Я предполагаю, что это означает, что если я установлю это как ограничение, он не будет использовать его при запросах, только при записи. Однако единственный эффективный способ, с помощью которого SQL Server может применить это ограничение, - это создать индекс. Какая польза от этой опции?
2) Кроме того, если я установлю его как «индекс», он позволит мне указать, что он должен игнорировать дубликаты ключей.
Это самое загадочное для меня ...
Я снова думаю, что это означает противоположность ограничения. Это, вероятно, означает «использовать его при запросах, но даже не проверять при написании».
Но тогда зачем мне устанавливать его как УНИКАЛЬНОЕ?
Я предполагаю, что есть некоторые оптимизации, которые может выполнять SQL Server, но я хотел бы понять это лучше.
Кто-нибудь знает, что именно SQL Server делает с этими параметрами?
Какой вариант использования для установки индекса как уникального, но игнорировать дубликаты ключей?
ПРИМЕЧАНИЕ. Это для SQL Server 2000
.
<ч />
РЕДАКТИРОВАТЬ: В соответствии с тем, что вы сказали, однако ... Если я создам ограничение, будет ли оно использоваться для ускорения запросов, которые фильтруют, используя поля в ограничении?
Спасибо!