Bagikan melalui


Fitur indeks khusus untuk penyedia Entity Framework Core SQL Server

Halaman ini merinci opsi konfigurasi indeks yang khusus untuk penyedia SQL Server.

Pengklusteran

Indeks berkluster mengurutkan dan menyimpan baris data dalam tabel atau tampilan berdasarkan nilai kuncinya. Membuat indeks berkluster yang tepat untuk tabel Anda dapat secara signifikan meningkatkan kecepatan kueri Anda, karena data sudah ditata dalam urutan optimal. Hanya ada satu indeks berkluster per tabel, karena baris data itu sendiri hanya dapat disimpan dalam satu urutan. Untuk informasi selengkapnya, lihat dokumentasi SQL Server tentang indeks terkluster dan non-kluster.

Secara default, kolom kunci utama tabel didukung secara implisit oleh indeks berkluster, dan semua indeks lainnya tidak berkluster.

Anda dapat mengonfigurasi indeks atau kunci yang akan diklusterkan sebagai berikut:

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

Catatan

SQL Server hanya mendukung satu indeks berkluster per tabel, dan kunci utama secara default berkluster. Jika Anda ingin memiliki indeks berkluster pada kolom non-kunci, Anda harus secara eksplisit membuat kunci Anda tidak berkluster.

Faktor pengisian

Opsi faktor pengisian indeks disediakan untuk menyempurnakan penyimpanan dan performa data indeks. Untuk informasi selengkapnya, lihat dokumentasi SQL Server tentang faktor pengisian.

Anda dapat mengonfigurasi faktor pengisian indeks sebagai berikut:

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

Pembuatan online

Opsi ONLINE memungkinkan akses pengguna bersamaan ke tabel yang mendasar atau data indeks terkluster dan indeks non-kluster terkait selama pembuatan indeks, sehingga pengguna dapat terus memperbarui dan mengkueri data yang mendasar. Saat Anda melakukan operasi bahasa definisi data (DDL) secara offline, seperti membangun atau membangun kembali indeks berkluster; operasi ini menyimpan kunci eksklusif pada data yang mendasar dan indeks terkait. Untuk informasi selengkapnya, lihat dokumentasi SQL Server pada opsi indeks ONLINE.

Anda dapat mengonfigurasi indeks dengan opsi ONLINE sebagai berikut:

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