Una delle best practice che dovresti seguire quando hai a che fare con la gestione dei dati in Salesforce è quella di non avere più di 10.000 record di proprietà di un singolo utente, con Lookup su un singolo record o relativi allo stesso Account. Questa best practice è nota come come Data Skew .

Le tipologie di Data Skew in Salesforce includono:

  • Account Data Skew
  • Lookup Data Skew
  • Ownership Data Skew

In questa guida analizzeremo le diverse tipologie di Data Skew in Salesforce e come evitare che si verifichino.

 

Account Data Skew

Iniziamo con l’Account Data Skew. L’oggetto Account è speciale, nel senso che ha relazioni univoche con altri oggetti come Contatti e Opportunità.

Ogni volta che viene aggiornato un record “figlio” correlato, come un’ Opportunità, viene applicato un blocco temporaneo o un “blocco” sul record principale. Ciò garantisce l’integrità dei dati e consente a Salesforce di eseguire altri aggiornamenti in background, come l’esecuzione di regole di convalida (Validation Rules) ed altre automazioni implementate. In circostanze normali, non te ne accorgeresti nemmeno, ma se stai aggiornando un numero elevato di record con lo stesso genitore (Parent), questo blocco temporaneo può causare il fallimento degli aggiornamenti.

Successivamente, immaginiamo di avere un modello di condivisione (Modello di Sharing) in cui l’accesso ai contatti è privato e di disporre di una serie di regole di condivisione (Sharing Rules) per garantire che gli utenti di vendita vedano solo i contatti di cui hanno bisogno. Se hai un numero elevato di Contatti (> 10.000) relativi allo stesso Account e modifichi le regole di condivisione, ciò forza un ricalcolo che potrebbe causare problemi di prestazioni per i tuoi utenti.

Lookup Data Skew

La Lookup Data Skew è simile all’ Account Data Skew, per cui è causata da molti record “figlio” (Child) che puntano allo stesso record “padre” (Parent).

Per contestualizzare, pensiamo ad una società che ha obiettivi di vendita su diverse regioni ed ha creato un oggetto personalizzato per tracciarli. Hanno l’automazione in esecuzione in background per correlare automaticamente ogni opportunità all’obiettivo di vendita corretto ed hanno piani ambiziosi per crescere nel prossimo futuro.

Cosa accadrebbe se iniziassero ad avere più di 10.000 record che puntano allo stesso record dell’obiettivo di vendita?

Inizierebbero a sperimentare alcuni dei “segnali” del Data Skew, in cui i record sarebbero stati temporaneamente “bloccati” durante ogni aggiornamento e, di conseguenza, le prestazioni del sistema potrebbero essere compromesse o le operazioni di aggiornamento di grandi dimensioni potrebbero non riuscire.

Ownership Data Skew

Infine, ma non meno importante, vediamo la tipologia di Data Skew che riguarda la proprietà dei dati (Ownership).

In Salesforce puoi impostare una gerarchia di ruoli (Role Hierarchy) per riflettere quella della tua organizzazione e condividere i record con i manager oppure assicurarti che i Case siano visibili solo al team del servizio clienti.

Se avessi un team di assistenza clienti super efficiente che risolvesse i Case rapidamente, nel tempo, a sua volta, possederebbe un gran numero di record.

Se dovessi modificare la gerarchia dei ruoli, Salesforce dovrebbe ricalcolare chi ha accesso a ciascun record. Anche questo potrebbe causare problemi quando si ha a che fare con un numero elevato di record.

Ridurre l’impatto del Data Skew

E’ possibile eseguire alcuni semplici passaggi per ridurre l’impatto sulle prestazioni:

  • Evita che i record siano di proprietà di utenti generici di “sistema”. Se necessario, non assegnare a questi utenti un ruolo o assegnare loro un ruolo in cima alla gerarchia.
  • Utilizzare la logica “round robin” per distribuire i record tra diversi record di holding, se i record di holding sono assolutamente necessari.
  • Rimuovere regolarmente i vecchi record dal sistema per ridurre il numero di record conservati.
  • Considera un modello di condivisione (Sharing) aperto che utilizzi le impostazioni predefinite di Lettura/Scrittura pubblica per ridurre l’impatto del ricalcolo delle regole di condivisione.
  • Limita il più possibile le automazioni e rimuovi il codice non necessario per cercare di migliorare il tempo impiegato per il salvataggio di un record.
  • Se stai utilizzando un oggetto personalizzato per memorizzare gli obiettivi di vendita, come nell’ esempio precedente, considera invece di utilizzare una Picklist, per ridurre il numero di record e relazioni nel sistema.
Share:

administrator

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *