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