Condividi tramite


Procedure consigliate di ottimizzazione

Uno schema di tabella definisce i nomi e i tipi di datidi tutte le colonne della tabella. Lo schema della tabella può essere impostato durante la creazione della tabella o come parte del processo di inserimento dati modificando il mapping di inserimento applicabile. Il modo in cui viene definito uno schema di tabella può influire significativamente sulle prestazioni delle query. Lo schema ideale per i dati dipende da molti fattori, tra cui casi d'uso, modelli di accesso ai dati e dati specifici da archiviare. Questo articolo descrive le procedure consigliate per ottimizzare le prestazioni progettando schemi efficienti.

Tipo di dati

Per altre informazioni sui tipi di dati, vedere Tipi di dati scalari.

  • I campi comunemente usati devono essere colonne tipizzate, non di tipo dinamico.

  • La ricerca frequente o le proprietà JSON aggregate in una colonna dinamica devono essere convertite in una colonna regolare nella tabella con un tipo più specifico, ad esempiostringa, lungo o reale.

  • Le colonne di tipo sparse che non vengono comunemente usate per il filtro e l'aggregazione devono essere raccolte come contenitore di proprietà in una colonna dinamica usando la DropMappedFields trasformazione mapping.

  • Le colonne di data/ora devono essere digitate come dataora e non lunghe o altri tipi di dati.

  • Il tipo decimale fornisce precisione esatta, che lo rende più adatto ad applicazioni finanziarie e altre applicazioni che richiedono precisione esatta. Tuttavia, è molto più lento del tipo reale. Usare solo il tipo decimale quando necessario.

  • Tutte le colonne ID (identificazione) devono essere digitate come stringa, non numerica. Questo tipo renderà l'indicizzazione molto più efficace e può migliorare significativamente il tempo di ricerca. Abiliterà anche il partizionamento, poiché può essere definito solo nelle colonne stringa. Se i filtri di query usati in questa colonna sono solo equalizzatori, ad esempio se la colonna contiene guide è possibile usare il profilo di codifica Identifier. Per altre informazioni, vedere criterio di codifica.

Tabelle

  • Ottimizzare le tabelle strette, che sono preferibili rispetto alle tabelle larghe con centinaia di colonne.
  • Per evitare join costosi durante il tempo di query, denormalizzare i dati delle dimensioni arricchendoli durante l'inserimento. Se la tabella delle dimensioni utilizzata per l'arricchimento viene aggiornata e lo scenario richiede il valore più recente, utilizzare le materializza le visualizzazioni per mantenere solo il valore più recente.
  • Se sono presenti più di 20 colonne di tipo sparse, ovvero molti valori sono Null e queste colonne vengono usate raramente per le ricerche o l'aggregazione, raggruppare le colonne come contenitore di proprietà JSON in una colonna dinamica usando il DropMappedFields mapping di trasformazione.

Indicizzazione

I campi su cui non viene mai eseguita la ricerca possono disabilitare l'indicizzazione. Usare i criteri di codifica con il profilo BigObject per disabilitare l'indicizzazione in colonne di tipo stringa o dinamiche.