Funkcje indeksu specyficzne dla dostawcy programu Entity Framework Core SQL Server
Ta strona zawiera szczegółowe informacje o opcjach konfiguracji indeksu specyficznych dla dostawcy programu SQL Server.
Klastrowanie
Indeksy klastrowane sortują i przechowują wiersze danych w tabeli lub widoku na podstawie ich wartości klucza. Utworzenie odpowiedniego indeksu klastrowanego dla tabeli może znacznie poprawić szybkość zapytań, ponieważ dane zostały już określone w optymalnej kolejności. Może istnieć tylko jeden indeks klastrowany na tabelę, ponieważ wiersze danych mogą być przechowywane tylko w jednej kolejności. Aby uzyskać więcej informacji, zobacz dokumentację programu SQL Server dotyczącą indeksów klastrowanych i nieklarowanych.
Domyślnie kolumna klucza podstawowego tabeli jest niejawnie wspierana przez indeks klastrowany, a wszystkie inne indeksy nie są klastrowane.
Indeks lub klucz można skonfigurować w następujący sposób:
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<Blog>().HasIndex(b => b.PublishedOn).IsClustered();
}
Uwaga
Program SQL Server obsługuje tylko jeden indeks klastrowany na tabelę, a klucz podstawowy jest domyślnie klastrowany. Jeśli chcesz mieć indeks klastrowany w kolumnie innej niż klucz, musisz jawnie ustawić klucz nieklasterowany.
Współczynnik wypełnienia
Opcja wypełnienia indeksu jest dostępna na potrzeby dostrajania magazynu danych indeksu i wydajności. Aby uzyskać więcej informacji, zobacz dokumentację programu SQL Server dotyczącą współczynnika wypełnienia.
Współczynnik wypełnienia indeksu można skonfigurować w następujący sposób:
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<Blog>().HasIndex(b => b.PublishedOn).HasFillFactor(10);
}
Tworzenie online
Opcja ONLINE umożliwia równoczesny dostęp użytkowników do bazowej tabeli lub danych indeksu klastrowanego oraz wszystkich skojarzonych indeksów nieklastrowanych podczas tworzenia indeksu, dzięki czemu użytkownicy mogą nadal aktualizować i wykonywać zapytania dotyczące danych bazowych. Podczas wykonywania operacji języka definicji danych (DDL) w trybie offline, takich jak kompilowanie lub ponowne kompilowanie klastrowanego indeksu; te operacje przechowują wyłączne blokady danych bazowych i skojarzonych indeksów. Aby uzyskać więcej informacji, zobacz dokumentację programu SQL Server dotyczącą opcji indeksu ONLINE.
Indeks można skonfigurować przy użyciu opcji ONLINE w następujący sposób:
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<Blog>().HasIndex(b => b.PublishedOn).IsCreatedOnline();
}