Compartir por


Características de índice específicas del proveedor Entity Framework Core de SQL Server

En esta página se detallan las opciones de configuración de índice específicas del proveedor de SQL Server.

Clustering

Los índices clúster ordenan y almacenan las filas de datos de la tabla o vista de acuerdo con los valores de sus claves. La creación del índice agrupado correcto para la tabla puede mejorar significativamente la velocidad de las consultas, ya que los datos ya están dispuestos en el orden óptimo. Solo puede haber un índice clúster por tabla, porque las filas de datos solo pueden almacenarse en un solo orden. Para obtener más información, consulte la documentación de SQL Server sobre índices agrupados y no agrupados.

De forma predeterminada, la columna de clave principal de una tabla está respaldada implícitamente por un índice agrupado y todos los demás índices no están agrupados.

Puede configurar un índice o una clave para que se clustere de la siguiente manera:

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

Nota:

SQL Server solo admite un índice agrupado por tabla y la clave principal está agrupada de forma predeterminada. Si desea tener un índice agrupado en una columna que no sea clave, debe convertir explícitamente su clave en no agrupada.

Factor de relleno

La opción de factor de relleno de índice se proporciona para ajustar el almacenamiento y el rendimiento de los datos del índice. Para obtener más información, consulte la documentación de SQL Server sobre el factor de relleno.

Puede configurar el factor de relleno de un índice de la siguiente manera:

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

Creación en línea

La opción ONLINE permite el acceso simultáneo del usuario a la tabla subyacente o a los datos de índice agrupados y a los índices no clúster asociados durante la creación del índice, de modo que los usuarios puedan seguir actualizando y consultando los datos subyacentes. Al realizar operaciones de lenguaje de definición de datos (DDL) sin conexión, como compilar o volver a generar un índice agrupado; estas operaciones contienen bloqueos exclusivos en los datos subyacentes y los índices asociados. Para obtener más información, consulte la documentación de SQL Server en la opción de índice ONLINE.

Puede configurar un índice con la opción ONLINE de la siguiente manera:

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