Pattern di mappa termica

Questa pagina mostra esempi di pattern che potresti vedere in una mappa termica di Key Visualizer. Questi pattern possono aiutarti a risolvere problemi specifici di prestazioni.

Alcuni problemi esposti in Key Visualizer riguardano la definizione di chiave primaria. Poiché una chiave primaria è immutabile, è meglio scoprire questi problemi durante la fase di progettazione o proof of concept.

Altri problemi potrebbero riguardare l'allocazione dei nodi della tua istanza. Potrebbe essere necessario eseguire il provisioning di capacità aggiuntiva, complessivamente o possibilmente in determinate ore del giorno. Per modificare il numero di nodi associati all'istanza, consulta Modifica del numero di nodi.

Prima di leggere questa pagina, dovresti conoscere la panoramica di Key Visualizer.

Letture e scritture distribuite in modo uniforme

Esempio di mappa termica che mostra aree calde e fredde distribuite uniformemente

Se una mappa termica mostra una combinazione granulare di colori scuri e chiari, le operazioni di lettura e scrittura vengono distribuite uniformemente in tutto il database. Questa mappa termica rappresenta un pattern di utilizzo efficace per Spanner, quindi non è richiesta alcuna azione da parte tua.

La tua mappa termica potrebbe non essere distribuita uniformemente come questa, ma illustrare comunque uno schema e un carico di lavoro integri. In una configurazione con risorse corrette è previsto un certo numero di hotspot.

Aumento monotonico dei tasti

Esempio di mappa termica che mostra una banda calda diagonale (che cade da sinistra a destra)

Una mappa termica con una singola linea diagonale luminosa o un triangolo con una parte superiore piatta può indicare un database che utilizza tasti sequenziali. Le chiavi sequenziali sono un anti-pattern in Spanner; consulta la pagina Best practice per la progettazione di schemi per scoprire perché le chiavi sequenziali causano hotspot.

Intervalli di chiavi attive permanenti

Esempio di mappa termica che mostra più bande orizzontali calde

Se una mappa termica mostra bande orizzontali di colori brillanti, separate da colori scuri, indica che determinati intervalli di righe vengono costantemente accessibili maggiormente nel tempo.

Per risolvere questo problema, valuta la possibilità di modificare la progettazione dello schema o l'applicazione in modo che i dati in una riga molto utilizzata o troppo grande siano distribuiti su più righe.

Tabella attiva singola

Esempio di mappa termica che mostra una singola banda orizzontale calda

Se una mappa termica mostra una banda di colori vivaci in una singola tabella, indica un elevato accesso alla tabella nel tempo.

Questo schema di per sé non è necessariamente problematico. Se noti questo pattern insieme a problemi di prestazioni, è probabile che tu stia esaurendo la capacità di calcolo. Alcuni aspetti da considerare:

  • La tua applicazione potrebbe richiedere una scansione completa della tabella, che verrà visualizzata in Key Visualizer come una banda luminosa dell'intera tabella. Considera invece una query più restrittiva o esegui una query sull'indice per ridurre il numero di righe analizzate.

  • Aumenta il numero di nodi per questa istanza.

Letture e scritture ricorrenti nel tempo

Esempio di mappa termica che mostra le bande calde diagonali (aumentando da sinistra a destra)

Una mappa termica che mostra più linee luminose diagonali (in aumento o in calo) di solito indica letture o scritture sequenziali sulle righe in un breve periodo di tempo.

Se le righe corrispondono a un'attività di lettura, come l'esportazione di una tabella, non è richiesta alcuna azione. Se riscontri problemi di prestazioni durante queste letture, ti consigliamo di aumentare il numero di nodi per l'istanza durante questi periodi di tempo. Puoi diminuire il numero di nodi tra un punto e l'altro.

Se le righe corrispondono all'attività di scrittura e riscontri problemi di prestazioni, ti consigliamo di modificare il carico di lavoro in una scrittura casuale anziché in una scrittura sequenziale.

Aumento improvviso del traffico

Esempio di mappa termica che mostra due bande orizzontali calde che iniziano a metà della mappa termica

Una mappa termica che mostra bande orizzontali luminose che appaiono in parte nella mappa termica indica un cambiamento improvviso nel modello di utilizzo di un database. Può trattarsi di una query non autorizzata o di un picco imprevisto di attività per determinate righe.

Precisazioni

In alcuni scenari Key Visualizer potrebbe non presentare un quadro completo delle prestazioni e dell'utilizzo delle risorse.

Scenario Dati mostrati dalla mappa termica
Una tabella di dati di grandi dimensioni e alcune tabelle piccole Key Visualizer seleziona più intervalli di righe nelle tabelle di grandi dimensioni rispetto alle tabelle più piccole. Di conseguenza, una tabella di piccole dimensioni potrebbe essere visualizzata solo come un singolo intervallo di righe all'interno della mappa termica. Ci sarà un intervallo di righe che rappresenta ogni tabella purché il numero di tabelle sia inferiore a 1000. Quando una chiave o un piccolo gruppo di chiavi sono attivi in una piccola tabella, l'utente può sapere solo che la tabella è attiva, ma non oltre.
Molte tabelle / indici
Ad esempio, un database con centinaia o più di mille tabelle, indipendentemente dalle dimensioni.
Key Visualizer seleziona al massimo 1000 intervalli di righe. Quando sono presenti molte tabelle e molti indici, alcuni potrebbero avere solo zero o un punto dati nella mappa termica. Di conseguenza, gli hotspot potrebbero mancare perché la relativa tabella è stata ignorata o sottocampionata.
Tasti che cambiano rapidamente I rapidi cambiamenti nello spazio delle chiavi daranno luogo a modifiche frequenti negli intervalli di righe. Quando un intervallo di righe precedente deve essere suddiviso, a causa di chiavi appena inserite, o più intervalli di righe sono stati uniti a causa di chiavi eliminate, le metriche vengono approssimate (ad es. divise/combinate). L'approssimazione composta dei valori delle metriche probabilmente li renderà meno precisi. Inoltre, c'è un ritardo nell'aggiornamento degli intervalli di righe dopo le modifiche allo spazio delle chiavi, il che può comportare una perdita di granularità fino all'aggiornamento degli intervalli di righe.

Passaggi successivi