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();
}