Blog · 12 settembre 2026
La tua dashboard è lenta, e il problema non è la dashboard
Quando un report impiega quattro minuti ad aprirsi, l'istinto è dare la colpa allo strumento di BI. Quasi sempre il costo è stato pagato a monte, molto prima che qualcuno premesse aggiorna.
3 min di lettura
Qualcuno chiede perché la dashboard delle vendite impiega quattro minuti a caricarsi. Lo strumento di BI è la parte visibile, quindi è lo strumento di BI a prendersi la colpa. Si discute di una licenza più veloce. A volte la si compra perfino.
Serve di rado, perché quei quattro minuti non sono stati spesi a disegnare grafici. Sono stati spesi a fare lavoro che sarebbe dovuto avvenire ore prima, e che viene rifatto a ogni singolo aggiornamento.
Che cosa sta facendo, di solito, una dashboard lenta
Apri la query dietro un report lento e di solito troverai gli stessi schemi. Unisce cinque tabelle sorgente al momento della lettura. Converte colonne di testo in date perché nessuno ha sistemato i tipi a monte. Filtra su un'espressione calcolata, quindi nessun indice può aiutare. Deduplica le righe, il che significa che la sorgente ha duplicati mai risolti. E rifà tutto questo per ogni utente, ogni mattina, alla stessa ora.
Niente di tutto ciò è un problema di visualizzazione. È un problema di preparazione dei dati spinto sempre più a valle, finché è diventato visibile.
Sposta il lavoro, non ripeterlo
L'approccio a livelli che si chiama Bronze, Silver e Gold non ha niente di affascinante, ed è proprio qui che si guadagna il posto. Bronze è ciò che è arrivato, conservato così com'è arrivato. Silver sono quei dati puliti, tipizzati e deduplicati una volta sola. Gold è la forma di cui la domanda ha davvero bisogno: una tabella dei fatti con le sue dimensioni, già aggregata al livello di dettaglio che le persone chiedono.
Il punto non sono i nomi. Il punto è che ogni operazione costosa avviene una volta, secondo una pianificazione, invece che una volta per ogni utente a ogni aggiornamento. Un report che legge una tabella Gold non fa quasi nessun lavoro: filtra, aggrega, disegna.
Se un calcolo è uguale per tutti gli utenti, non dovrebbe essere eseguito una volta per utente.
La questione incrementale
La seconda cosa che rende lenti i report è rielaborare lo storico. Una pipeline che ogni notte ricostruisce tre anni di ordini per aggiungere quelli di ieri diventerà più lenta ogni notte, per sempre, per come è costruita.
Il caricamento incrementale risolve il problema, ed è soprattutto questione di saper rispondere a due domande: che cosa è nuovo dall'ultima volta, e che cosa significa eseguire tutto due volte. La prima richiede un watermark: una colonna updated-at affidabile, un change feed, una sequenza. La seconda richiede che il caricamento sia idempotente, un tema abbastanza ampio da meritare un articolo a sé.
Che cosa controllare davvero
- Quanto impiega da sola la query più lenta dietro il report, fuori dallo strumento di BI?
- Legge una tabella preparata, o unisce sorgenti grezze al momento della lettura?
- Il job notturno rielabora tutto, o solo ciò che è cambiato?
- I tipi vengono sistemati una volta a monte, o convertiti in ogni query che tocca la colonna?
- Quante persone avviano lo stesso aggiornamento costoso negli stessi dieci minuti?
Se le risposte indicano a monte, e di solito è così, nessuna impostazione della dashboard ti salverà. La buona notizia è che la correzione dura nel tempo. Il lavoro spostato in una pipeline resta spostato.
- Data engineering
- BI
- Architettura
Lo vorresti per la tua attività?
Dicci cosa richiede troppo tempo o cosa vorresti migliorare.