Entity Framework - Índice
Um índice é uma estrutura de dados em disco baseada em tabelas e visualizações. Os índices tornam a recuperação de dados mais rápida e eficiente, na maioria dos casos. No entanto, sobrecarregar uma tabela ou exibição com índices pode afetar desagradavelmente o desempenho de outras operações, como inserções ou atualizações.
A indexação é o novo recurso na estrutura de entidade onde você pode melhorar o desempenho de seu aplicativo Code First reduzindo o tempo necessário para consultar dados do banco de dados.
Você pode adicionar índices ao seu banco de dados usando o Index atributo e substitui o padrão Unique e Clustered configurações para obter o índice mais adequado ao seu cenário.
Vamos dar uma olhada no código a seguir, no qual o atributo Index é adicionado na classe Course para CourseID.
public partial class Course {
public Course() {
this.Enrollments = new HashSet<Enrollment>();
}
[Index]
public int CourseID { get; set; }
public string Title { get; set; }
public int Credits { get; set; }
public byte[] VersionNo { get; set; }
public virtual ICollection<Enrollment> Enrollments { get; set; }
}
A chave criada acima não é exclusiva, não é agrupada. Existem sobrecargas disponíveis para substituir esses padrões -
Para tornar um índice um índice de cluster, você precisa especificar IsClustered = true
Da mesma forma, você também pode tornar um índice um índice exclusivo especificando IsUnique = true
Vamos dar uma olhada no código C # a seguir, em que um índice é agrupado e exclusivo.
public partial class Course {
public Course() {
this.Enrollments = new HashSet<Enrollment>();
}
[Index(IsClustered = true, IsUnique = true)]
public int CourseID { get; set; }
public string Title { get; set; }
public int Credits { get; set; }
public byte[] VersionNo { get; set; }
public virtual ICollection<Enrollment> Enrollments { get; set; }
}
O atributo de índice pode ser usado para criar um índice exclusivo no banco de dados. No entanto, isso não significa que EF será capaz de raciocinar sobre a exclusividade da coluna ao lidar com relacionamentos, etc. Esse recurso é geralmente referido como suporte para “restrições exclusivas”.