apro questa discussione perché è da un pò che lavoro ad un progetto che gestisce più di un dataset al suo interno.
Parliamo di un .pbix dentro al quale sono collegato tramite DirectQuery in Analysis Service a 9 dataset aziendali e a 3 file che risiedono nel mio OneDrive (tramite path web).
Dall'inizio del progetto sapevo fosse una cosa abbastanza ostica per molti punti di vista...ma ho provato ugualmente.
E' stato il mio primo progetto in PowerBI Desktop e quindi ho incontrato un pò di ostacoli che pian piano ho superato.
Quello che però non riesco a bypassare è la LENTEZZA nel ricalcolo.
Non parlo solo delle query DAX per il calcolo di misure o colonne calcolate (che probabilmente potrebbero anche essere migliorate, ma questo è un altro argomento
![Cool 8-)](./images/smilies/icon_cool.gif)
Esempi: voglio rinominare una misura? Attendere...20 secondi! - voglio cambiare il formato ad un dato? - Attendere...boh 15 secondi! - voglio ,cambiare cartella ad una misura? - Attendere...10 secondi! - per non parlare di quando creo una misura o la modifico...a volte passa anche un minuto!
Insomma avete capito.
Per non parlare poi dei tempi di calcolo per negli elementi grafici.
Alcuni se non vengono snelliti da uno o due filtri non si caricano nemmeno.
Ho letto tanto sull'argomento "performance" ed ho provato a seguire tutti i consigli che ho trovato.
Per esempio:
1. Layout: evito di far visualizzare il Layout con tutte le tabelle per non rallentare il sistema. Vero è che almeno 9 layout (anche divisi) mi servono da reminder delle varie relazioni.
2. Cartelle Dimension in eccesso: ho eliminato tutte le cartelle con dimensioni che non mi servivano, lasciando sollo quelle dei fatti.
3. Ho migliorato via via le query DAX (ripeto su questo lavoro constantemente)
4. Uso un'unica tabella temporale creata all'interno del file.
...di sicuro dimentico qualcosa.
Secondo voi, la lentezza può dipendere dal fatto che all'interno del dataset ci sono troppe misure (anche se non tutte vengono utilizzate nei vari report)?
A proposito quando se ne crea una nuova, tutte le altre collegate vengono ricalcolate anche se non sono usate in nessun report?
La lentezza può dipendere dal fatto che ci siano troppi fogli (20, ciascuno con mediamente 3-4 elementi grafici) all'interno del file?
La lentezza può dipendere da quanti utenti sono collegati al servizio PowerBI aziendale in un determinato momento e/o dalla velocità di navigazione e/o dall'aggiornamento dei vari dataset (alcuni si aggiornano più volte al giorno)...
Secondo me può essere tutto, ma probabilmente il problema più impattante è la mole di dati a cui è collegato il file.
Per questo ho fatto un'analisi del # di righe di ciascuna tabella dei fatti.
Il dataset più piccolo ha circa 143 mln di righe, quello più esteso ne conta 800 mln (in continua espansione).
Di questi dataset come vi dicevo ne ho collegati 9
![Crazy :crazy:](./images/smilies/icon_crazy.gif)
Ovviamente non tutti i record di queste tabelle servono ai miei scopi (forse il 15-20% del totale basterebbe), tant'è che ho numerosi filtri esterni applicati in "tutte le pagine" che snelliscono un bel pò (molti di questi filtri si rifanno ovviamente a tabelle dimensioni).
Tuttavia mi sorge un dubbio: tali filtri vengono applicati prima o dopo il ricalcolo di una qualsivoglia misura?
Perché se vengono applicati dopo, è chiaro che i tempi di calcolo sono biblici...anche perché ho un umilissimo HP aziendale
![Geek :geek:](./images/smilies/icon_e_geek.gif)
In un altro progetto che ho portato avanti nel quale ho collegato solo 1 dataset (quello con 800 mln di righe), ma ho creato tutte le misure su una tabella calcolata collegata al dataset sfruttando Recupera Dati - Analysis Services.
Dopo aver inserito il server ed il database ho scritto la query della tabella calcolata come segue:
Codice: Seleziona tutto
EVALUATE
CALCULATETABLE(
ADDCOLUMNS(
SUMMARIZE(
Tabella dei Fatti,
Campi necessari
),
Colonne calcolate aggiuntive
),
Filtri
)
Voi come la pensate?
Grazie mille!
Alberto.