Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Questa pagina illustra in dettaglio le opzioni di configurazione dell'indice specifiche del provider SQL Server.
Clustering
Gli indici cluster ordinano e memorizzano le righe di dati della tabella o vista in base ai valori di chiave. La creazione dell'indice cluster corretto per la tabella può migliorare significativamente la velocità delle query, perché i dati sono già disposti nell'ordine ottimale. Per ogni tabella è disponibile un solo indice cluster, poiché alle righe di dati è possibile applicare un solo tipo di ordinamento. Per altre informazioni, vedere la documentazione di SQL Server sugli indici cluster e non cluster.
Per impostazione predefinita, la colonna chiave primaria di una tabella è supportata in modo implicito da un indice clusterizzato e tutti gli altri indici sono non clusterizzati.
È possibile configurare un indice o una chiave da raggruppare come segue:
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<Blog>().HasIndex(b => b.PublishedOn).IsClustered();
}
Annotazioni
SQL Server supporta solo un indice cluster per tabella e la chiave primaria è per impostazione predefinita in cluster. Se desideri avere un indice clusterizzato su una colonna non chiave, devi rendere la tua chiave non clusterizzata esplicitamente.
Fattore di riempimento
L'opzione index fill-factor è disponibile per ottimizzare l'archiviazione e le prestazioni dei dati degli indici. Per altre informazioni, vedere la documentazione di SQL Server sul fattore di riempimento.
È possibile configurare il fattore di riempimento di un indice nel modo seguente:
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<Blog>().HasIndex(b => b.PublishedOn).HasFillFactor(10);
}
Creazione online
L'opzione ONLINE consente all'utente simultaneo di accedere alla tabella sottostante o ai dati dell'indice cluster e agli indici non cluster associati durante la creazione dell'indice, in modo che gli utenti possano continuare ad aggiornare ed eseguire query sui dati sottostanti. Quando si eseguono operazioni DDL (Data Definition Language) offline, ad esempio la compilazione o la ricompilazione di un indice cluster; queste operazioni contengono blocchi esclusivi sui dati sottostanti e sugli indici associati. Per altre informazioni, vedere la documentazione di SQL Server sull'opzione indice ONLINE.
È possibile configurare un indice con l'opzione ONLINE come indicato di seguito:
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<Blog>().HasIndex(b => b.PublishedOn).IsCreatedOnline();
}