Sdílet prostřednictvím


Funkce indexu specifické pro zprostředkovatele SQL Serveru Entity Framework Core

Tato stránka podrobně popisuje možnosti konfigurace indexu, které jsou specifické pro poskytovatele SQL Serveru.

Clustering

Clusterované indexy seřadí a uloží řádky dat v tabulce nebo zobrazení na základě jejich klíčových hodnot. Vytvoření správného clusterovaného indexu pro vaši tabulku může výrazně zlepšit rychlost dotazů, protože data jsou již rozložena v optimálním pořadí. Pro každou tabulku může existovat pouze jeden clusterovaný index, protože řádky dat samotné mohou být uloženy pouze v jednom pořadí. Další informace najdete v dokumentaci k SQL Serveru v clusterovaných a ne clusterovaných indexech.

Ve výchozím nastavení je sloupec primárního klíče tabulky implicitně zálohovaný clusterovaným indexem a všechny ostatní indexy nejsou clusterované.

Index nebo klíč můžete nakonfigurovat tak, aby se clusteroval takto:

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

Poznámka

SQL Server podporuje pouze jeden clusterovaný index na tabulku a primární klíč je ve výchozím nastavení clusterovaný. Pokud chcete mít clusterovaný index ve sloupci bez klíče, musíte klíč explicitně nastavit jako neskupený.

Vyplnit faktor

Možnost vyplnění indexu je k dispozici pro vyladění úložiště a výkonu dat indexu. Další informace najdete v dokumentaci k SQL Serveru o faktoru vyplnění.

Faktor vyplnění indexu můžete nakonfigurovat následujícím způsobem:

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

Online vytvoření

Možnost ONLINE umožňuje souběžným uživatelům přístup k podkladovým tabulkovým nebo clusterovaným indexům a všem přidruženým neclusterovaným indexům během vytváření indexu, aby uživatelé mohli pokračovat v aktualizaci a dotazování podkladových dat. Při offline provádění operací jazyka DDL (Data Definition Language), jako je sestavení nebo opětovné sestavení clusterovaného indexu; tyto operace uchovávají exkluzivní zámky na podkladových datech a přidružených indexech. Další informace najdete v dokumentaci k SQL Serveru s možností indexu ONLINE.

Index můžete nakonfigurovat pomocí možnosti ONLINE následujícím způsobem:

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