Diretrizes de design de índice exclusivo

Um índice exclusivo garante que a chave de índice não contém nenhum valor duplicado, e então, cada linha na tabela é exclusiva de algum modo. Especificar um índice exclusivo só faz sentido quando a exclusividade for uma característica dos próprios dados. Por exemplo, se você quer ter certeza que os valores da coluna NationalIDNumber na tabela HumanResources.Employee são exclusivos, se a chave primária é EmployeeID, crie uma restrição UNIQUE na coluna NationalIDNumber. Se o usuário tentar digitar o mesmo valor naquela coluna para mais de um empregado, será exibida uma mensagem de erro e o valor duplicado não é inserido.

Com índices exclusivos de multicolunas, o índice garante que cada combinação de valores na chave de índice é exclusivo. Por exemplo, se um índice exclusivo for criado em uma combinação de colunas de LastName, FirstNamee MiddleName, duas linhas na tabela não poderão ter a mesma combinação de valores que essas colunas.

Ambos os índices clusterizado e não-clusterizado podem ser exclusivos. Contanto que os dados na coluna sejam exclusivos, você pode criar um índice clusterizado exclusivo e não-clusterizado na mesma tabela.

Os benefícios dos índices exclusivos incluem o seguinte:

  • A integridade de dados das colunas definidas é garantida.

  • São fornecidas informações úteis adicionais ao otimizador de consultas.

Criar uma restrição PRIMARY KEY ou UNIQUE automaticamente gera um índice exclusivo nas colunas especificadas. Não há nenhuma diferença significativa entre criar uma restrição UNIQUE e criar um índice exclusivo independente de uma restrição. A validação de dados ocorre da mesma maneira e o otimizador de consultas não diferencia entre um índice exclusivo criado por uma restrição ou manualmente. Entretanto, você deverá criar uma restrição UNIQUE ou PRIMARY KEY na coluna quando o objetivo for a integridade de dados. Fazendo isso o objetivo do índice será claro.

Considerações

  • Um índice exclusivo, uma restrição UNIQUE ou uma restrição PRIMARY KEY não poderão ser criados, se existirem valores de chave duplicados nos dados.

  • Se os dados forem exclusivos e você quiser impor exclusividade, criar um índice exclusivo em vez de um índice não exclusivo, na mesma combinação de colunas, fornecerá informações adicionais para otimizador de consultas que poderá produzir planos de execução mais eficientes. Criar um índice exclusivo (preferivelmente criando uma restrição UNIQUE) é recomendável nesse caso.

  • Um índice não-clusterizado exclusivo pode conter colunas não-chave incluídas. Para obter mais informações, consulte Índice com colunas incluídas.

Opções de índice

Há várias opções de índice que podem ser especificadas quando se cria um índice exclusivo. Recomenda-se dar atenção especial às seguintes opções:

  • IGNORE_DUP_KEY

  • ONLINE

Para obter mais informações, consulte Configurando opções de índice.