Delen via


Indexfuncties die specifiek zijn voor de Entity Framework Core SQL Server-provider

Op deze pagina vindt u informatie over de configuratieopties voor indexen die specifiek zijn voor de SQL Server-provider.

Clustering

Geclusterde indexen sorteren en opslaan de gegevensrijen in de tabel of weergave op basis van hun sleutelwaarden. Het maken van de juiste geclusterde index voor uw tabel kan de snelheid van uw query's aanzienlijk verbeteren, omdat gegevens al in de optimale volgorde zijn ingedeeld. Er kan slechts één geclusterde index per tabel zijn, omdat de gegevensrijen zelf in slechts één volgorde kunnen worden opgeslagen. Zie de SQL Server-documentatie over geclusterde en niet-geclusterde indexen voor meer informatie.

De primaire sleutelkolom van een tabel wordt standaard impliciet ondersteund door een geclusterde index, en alle andere indexen zijn niet-geclusterd.

U kunt een index of sleutel configureren om geclusterd te zijn als volgt:

protected override void OnModelCreating(ModelBuilder modelBuilder)
{
    modelBuilder.Entity<Blog>().HasIndex(b => b.PublishedOn).IsClustered();
}

Opmerking

SQL Server ondersteunt slechts één geclusterde index per tabel en de primaire sleutel is standaard geclusterd. Als u een geclusterde index in een kolom zonder sleutel wilt hebben, moet u uw sleutel expliciet niet-geclusterd maken.

Vulfactor

De optie voor indexvullingsfactor is beschikbaar voor het verfijnen van de opslag en prestaties van indexgegevens. Zie de SQL Server-documentatie over fill factor voor meer informatie.

U kunt de vulfactor van een index als volgt configureren:

protected override void OnModelCreating(ModelBuilder modelBuilder)
{
    modelBuilder.Entity<Blog>().HasIndex(b => b.PublishedOn).HasFillFactor(10);
}

Online maken

Met de optie ONLINE hebben gebruikers gelijktijdig toegang tot de onderliggende tabel- of geclusterde indexgegevens en eventuele gekoppelde niet-geclusterde indexen tijdens het maken van de index, zodat gebruikers de onderliggende gegevens kunnen blijven bijwerken en er query's op kunnen uitvoeren. Wanneer u DDL-bewerkingen (Data Definition Language) offline uitvoert, zoals het bouwen of herbouwen van een geclusterde index; deze bewerkingen bevatten exclusieve vergrendelingen voor de onderliggende gegevens en bijbehorende indexen. Zie de SQL Server-documentatie over de optie ONLINE-index voor meer informatie.

U kunt als volgt een index configureren met de optie ONLINE:

protected override void OnModelCreating(ModelBuilder modelBuilder)
{
    modelBuilder.Entity<Blog>().HasIndex(b => b.PublishedOn).IsCreatedOnline();
}