Freigeben über


Index-Features für den Entity Framework Core SQL Server-Anbieter

Auf dieser Seite werden die Für den SQL Server-Anbieter spezifischen Indexkonfigurationsoptionen beschrieben.

Clusterbildung

Gruppierte Indizes sortieren und speichern die Datenzeilen in der Tabelle oder Ansicht basierend auf ihren Schlüsselwerten. Das Erstellen des richtigen gruppierten Indexes für Ihre Tabelle kann die Geschwindigkeit Ihrer Abfragen erheblich verbessern, da die Daten bereits in der optimalen Reihenfolge angeordnet sind. Pro Tabelle kann nur ein gruppierter Index vorhanden sein, da die Datenzeilen nur in einer Reihenfolge gespeichert werden können. Weitere Informationen finden Sie in der SQL Server-Dokumentation zu gruppierten und nicht gruppierten Indizes.

Standardmäßig wird die Primärschlüsselspalte einer Tabelle implizit durch einen gruppierten Index gesichert, und alle anderen Indizes sind nicht gruppiert.

Sie können einen Index oder schlüssel so konfigurieren, dass er wie folgt gruppiert wird:

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

Hinweis

SQL Server unterstützt nur einen gruppierten Index pro Tabelle, und der Primärschlüssel ist standardmäßig gruppiert. Wenn Sie einen gruppierten Index für eine Nichtschlüsselspalte verwenden möchten, müssen Sie Ihren Schlüssel explizit als nicht gruppiert festlegen.

Füllfaktor

Die Indexfüllfaktoroption wird für die Feinabstimmung von Indexdatenspeicher und -leistung bereitgestellt. Weitere Informationen finden Sie in der SQL Server-Dokumentation zum Füllfaktor.

Sie können den Füllfaktor eines Indexes wie folgt konfigurieren:

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

Onlineerstellung

Die ONLINE-Option ermöglicht gleichzeitigen Benutzerzugriff auf die zugrunde liegenden Tabellen- oder gruppierten Indexdaten und alle zugeordneten nicht gruppierten Indizes während der Indexerstellung, sodass Benutzer die zugrunde liegenden Daten weiterhin aktualisieren und abfragen können. Wenn Sie DDL-Vorgänge (Data Definition Language) offline ausführen, z. B. erstellen oder einen gruppierten Index neu erstellen; Diese Vorgänge enthalten exklusive Sperren für die zugrunde liegenden Daten und zugeordneten Indizes. Weitere Informationen finden Sie in der SQL Server-Dokumentation zur ONLINE-Indexoption.

Sie können einen Index mit der ONLINE-Option wie folgt konfigurieren:

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