Aracılığıyla paylaş


Entity Framework Core SQL Server sağlayıcısına özgü dizin özellikleri

Bu sayfada, SQL Server sağlayıcısına özgü dizin yapılandırma seçenekleri ayrıntılı olarak açıklanıyor.

Kümeleme

Kümelenmiş dizinler, veri satırlarını anahtar değerlerine göre tablo veya görünümde sıralar ve depolar. Tablonuz için doğru kümelenmiş dizini oluşturmak, veriler zaten en uygun sırada düzenlendiğinden sorgularınızın hızını önemli ölçüde artırabilir. Veri satırları tek bir sırada depolanabildiği için tablo başına yalnızca bir kümelenmiş dizin olabilir. Daha fazla bilgi için kümelenmiş ve kümelenmemiş dizinler hakkında SQL Server belgelerine bakın.

Varsayılan olarak, tablonun birincil anahtar sütunu kümelenmiş dizin tarafından örtük olarak desteklenir ve diğer tüm dizinler kümelenmemiştir.

Bir dizini veya anahtarı kümelenecek şekilde aşağıdaki gibi yapılandırabilirsiniz:

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

Dekont

SQL Server tablo başına yalnızca bir kümelenmiş dizini destekler ve birincil anahtar varsayılan olarak kümelenmiştir. Anahtar olmayan bir sütunda kümelenmiş dizin olmasını istiyorsanız anahtarınızı açıkça kümelenmemiş yapmalısınız.

Dolgu faktörü

Dizin doldurma faktörü seçeneği, dizin veri depolaması ve performansında ince ayar yapmak için sağlanır. Daha fazla bilgi için doldurma faktörüyle ilgili SQL Server belgelerine bakın.

Bir dizinin doldurma faktörünü aşağıdaki gibi yapılandırabilirsiniz:

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

Çevrimiçi oluşturma

ÇEVRİmİÇİ seçeneği, kullanıcıların temel alınan verileri güncelleştirmeye ve sorgulamaya devam edebilmesi için, dizin oluşturma sırasında temel alınan tabloya veya kümelenmiş dizin verilerine ve ilişkili kümelenmemiş dizinlere eşzamanlı erişim sağlar. Kümelenmiş dizin oluşturma veya yeniden derleme gibi çevrimdışı veri tanımı dili (DDL) işlemleri gerçekleştirdiğinizde; bu işlemler, temel alınan veriler ve ilişkili dizinler üzerinde özel kilitler tutar. Daha fazla bilgi için ÇEVRİmİÇİ dizin seçeneğindeki SQL Server belgelerine bakın.

Çevrimiçi seçeneğiyle aşağıdaki gibi bir dizin yapılandırabilirsiniz:

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