• Power BI e DAX
  • DAX Studio con Power BI per capire e velocizzare il DAX

DAX Studio con Power BI per capire e velocizzare il DAX

Gavino Caputo 30 aprile 2026
Finestra DAX Studio con query DAX in esecuzione e risultati che mostrano ordini di rivenditori.

Indice

Quando una misura DAX restituisce un risultato inatteso o un report Power BI diventa lento, il problema spesso non si risolve guardando soltanto la formula. DAX Studio è l’ambiente esterno che permette di scrivere ed eseguire query, analizzare il modello semantico e capire che cosa accade davvero durante l’elaborazione. In questa guida mostro come usarlo con Power BI e Analysis Services, quali funzioni contano di più e quando conviene preferirlo agli strumenti integrati.

Uno strumento pratico per scrivere, controllare e ottimizzare il DAX

  • Collegamento diretto ai modelli aperti in Power BI Desktop, Excel e Analysis Services.
  • Query DAX con EVALUATE per analizzare tabelle, misure e risultati intermedi.
  • Server Timings e Query Plan per individuare le cause dei rallentamenti.
  • Funzioni utili come metadati, IntelliSense ed esportazione dei risultati.
  • Software gratuito e open source, ma destinato soprattutto a chi lavora già con modelli tabulari.

Che cos’è e a cosa serve davvero

DAX Studio è un client per lavorare con il linguaggio DAX su modelli tabulari. Si collega a Power BI Desktop, Power Pivot in Excel, SQL Server Analysis Services, Azure Analysis Services e ai modelli raggiungibili tramite endpoint XMLA. In pratica, offre un punto di osservazione più tecnico rispetto all’editor delle misure di Power BI.

La differenza più importante riguarda il tipo di lavoro che si può fare. In Power BI si crea una misura da usare nei grafici, mentre nell’editor esterno si può eseguire una query DAX completa, vedere i dati restituiti e studiare il tempo necessario per ottenere il risultato.

Una query DAX non è identica a una misura. Una misura calcola un valore in base al contesto del report; una query, invece, deve normalmente restituire una tabella. Per questo motivo si usa spesso la parola chiave EVALUATE, che indica al motore quale espressione tabellare deve essere eseguita.

EVALUATE
SUMMARIZECOLUMNS(
    'Calendario'[Anno],
    "Vendite", [Vendite totali],
    "Margine", [Margine]
)
ORDER BY
    'Calendario'[Anno]

Questo esempio restituisce una tabella con anno, vendite e margine. Il vantaggio non è soltanto visualizzare il risultato, ma isolare la logica dalla pagina del report e verificare se la misura si comporta correttamente in un determinato contesto.

Come collegarlo a un modello Power BI

Il collegamento più semplice avviene con un file Power BI Desktop già aperto. Il modello in memoria viene esposto da Power BI attraverso una porta locale e l’applicazione individua le istanze disponibili, mostrando il report a cui connettersi.

  1. Apri il file .pbix in Power BI Desktop.
  2. Avvia il programma dal menu External Tools, se l’integrazione è presente, oppure aprilo manualmente.
  3. Seleziona l’istanza locale di Power BI e il modello corretto.
  4. Controlla nell’area dei metadati che tabelle, colonne e misure siano visibili.
  5. Scrivi una query con EVALUATE e avviala con il comando di esecuzione.

Se il modello non compare, il primo controllo da fare è banale ma spesso decisivo: Power BI Desktop deve essere già aperto. Bisogna anche verificare di non aver avviato il report in modalità che impedisce il collegamento locale o di non avere più istanze aperte, perché in quel caso è facile scegliere il modello sbagliato.

Per Analysis Services il percorso è diverso. Si inserisce il nome del server o dell’endpoint, si seleziona il database e si usano le credenziali autorizzate. La connessione permette di interrogare il modello, ma non concede automaticamente diritti di amministrazione o di modifica.

Questo punto merita attenzione nelle aziende. L’utente deve avere i permessi di lettura sul modello e, se esporta dati o metadati, deve rispettare le policy interne. Lo strumento non aggira la sicurezza del dataset, ma rende molto semplice analizzare e salvare risultati che potrebbero contenere informazioni sensibili.

Interfaccia di DAX Studio con un query builder attivo, che mostra la selezione di colonne e filtri per il continente

Le funzioni che fanno la differenza nel lavoro quotidiano

Scrittura e verifica delle query

L’editor offre completamento del codice, navigazione tra gli oggetti del modello e formattazione delle espressioni. Per chi lavora con misure lunghe, la possibilità di vedere rapidamente nomi di tabelle, colonne e funzioni riduce gli errori di sintassi e rende più leggibile il codice.

Io trovo particolarmente utile usare l’editor per costruire una query a piccoli passi. Prima verifico una tabella filtrata, poi aggiungo una misura e infine inserisco le aggregazioni. In questo modo si capisce subito quale parte della logica introduce l’errore, invece di modificare una formula complessa alla cieca.

Metadati del modello

La vista dei metadati mostra la struttura del modello, comprese tabelle, colonne, misure, relazioni e altre proprietà disponibili. È una funzione preziosa quando si eredita un file Power BI creato da altri o quando il modello contiene molte entità con nomi simili.

Prima di scrivere una query, conviene controllare il nome effettivo della misura e la direzione delle relazioni. Molti problemi attribuiti al DAX nascono da un modello ambiguo, una relazione inattiva o una tabella calendario incompleta.

Server Timings e Query Plan

Quando una query è lenta, il tempo totale da solo non basta. Server Timings separa le attività principali del motore, mentre Query Plan aiuta a capire come il Formula Engine e lo Storage Engine stanno elaborando l’espressione.

Se il Formula Engine esegue troppo lavoro riga per riga, può essere un segnale di iterazioni costose o di una formula difficile da ottimizzare. Se invece il carico è concentrato nello Storage Engine, bisogna esaminare scansioni, filtri, cardinalità e struttura delle colonne. Non esiste una soglia universale, ma una query che passa da pochi decimi di secondo a diversi secondi merita quasi sempre un controllo.

Esportazione e analisi fuori dal report

I risultati possono essere esportati in formati come CSV e, in determinati scenari, Parquet o SQL Server. È utile per confrontare periodi, verificare aggregazioni e consegnare un campione di dati a chi deve validare il modello.

Non userei però l’esportazione come soluzione per trasferire grandi volumi senza criterio. Per dataset estesi, l’operazione può essere lenta, consumare memoria e creare copie difficili da governare. L’uso migliore è mirato e diagnostico, non la sostituzione di una pipeline dati.

Un flusso di lavoro efficace con Power BI e DAX

Il modo più produttivo di usare questo ambiente è collegarlo a una domanda precisa. Ad esempio, non partirei da “voglio ottimizzare il report”, ma da un problema misurabile come “questa visualizzazione impiega 8 secondi quando filtro l’anno corrente”.

  1. Individua la visualizzazione lenta usando Performance Analyzer in Power BI.
  2. Copia la query generata dal visual e aprila nell’editor esterno.
  3. Eseguila senza modifiche per stabilire una baseline.
  4. Controlla Server Timings e Query Plan.
  5. Modifica una sola parte della misura o della query.
  6. Ripeti il test con lo stesso filtro e confronta i tempi.

La regola della modifica singola è più importante di quanto sembri. Se si cambiano contemporaneamente misura, relazioni e filtri, non si sa quale intervento abbia prodotto il miglioramento. Io registro sempre il tempo iniziale, il tempo finale e il caso di test, perché una sensazione di maggiore velocità non è una misurazione.

Un esempio di analisi

Supponiamo di voler calcolare il fatturato degli ultimi dodici mesi. Una prima query può restituire il risultato per mese:

EVALUATE
SUMMARIZECOLUMNS(
    'Calendario'[Anno],
    'Calendario'[Numero mese],
    'Calendario'[Nome mese],
    "Fatturato", [Fatturato]
)
ORDER BY
    'Calendario'[Anno],
    'Calendario'[Numero mese]

Se il risultato mostra mesi mancanti o valori ripetuti, il problema potrebbe riguardare il calendario o la relazione con la tabella dei fatti. Se invece i valori sono corretti ma l’esecuzione è lenta, l’attenzione va spostata su filtri complessi, colonne ad alta cardinalità e iteratori come SUMX o FILTER usati su tabelle molto grandi.

La query serve quindi come laboratorio. Non modifica automaticamente la misura nel report e non corregge il modello al posto dello sviluppatore. La sua forza consiste nel rendere visibile il comportamento del motore prima di applicare una modifica definitiva.

Quando conviene usarlo e quando no

Non tutti i problemi richiedono uno strumento esterno. Per una misura semplice, l’editor di Power BI e la visualizzazione dei dati possono essere sufficienti. Il valore aggiunto cresce quando bisogna fare debug, benchmarking, documentazione o analisi delle prestazioni.

Strumento Uso principale Limite pratico
Power BI Desktop Creazione del modello, delle misure e delle visualizzazioni Analisi delle prestazioni meno dettagliata
Editor DAX integrato Scrittura di query direttamente nel modello Meno funzioni specializzate per il profiling
Client esterno Query, metadati, tempi, piano di esecuzione ed esportazione Non sostituisce la progettazione del modello
SSMS Amministrazione e interrogazione di Analysis Services Più orientato alla gestione enterprise

Per chi sta imparando DAX, consiglio di non saltare subito alla diagnostica avanzata. Prima bisogna comprendere contesto di filtro, contesto di riga, relazioni e CALCULATE. L’editor esterno aiuta a imparare, ma non sostituisce le basi del linguaggio.

Al contrario, per un analista che deve spiegare perché una dashboard è lenta, il programma diventa quasi indispensabile. Senza il piano e i tempi del server si rischia di ottimizzare dettagli estetici mentre il vero collo di bottiglia è una misura iterativa o un modello mal strutturato.

Errori frequenti che fanno perdere tempo

Confondere una misura con una query

Una misura come [Vendite totali] non è una query completa. Per eseguirla serve inserirla in un’espressione tabellare, ad esempio dentro SUMMARIZECOLUMNS. Questo è il motivo per cui una formula valida nel riquadro delle misure può generare un errore quando viene copiata nell’editor.

Testare con filtri diversi

Confrontare una query senza filtri con una visualizzazione filtrata sull’anno corrente produce risultati poco affidabili. Il volume dei dati, il contesto e la cache possono cambiare completamente i tempi. I test devono usare lo stesso modello, gli stessi filtri e condizioni comparabili.

Ottimizzare il DAX prima del modello

Una formula elegante non può compensare una tabella dei fatti sovradimensionata o relazioni progettate male. Prima di riscrivere una misura, controllerei il modello, il tipo di archiviazione, la presenza di colonne inutili e la granularità dei dati.

Leggi anche: Esempi di Power BI e DAX per decisioni aziendali migliori

Ignorare la cache

Una seconda esecuzione può risultare più rapida perché alcuni dati sono già disponibili in memoria. Per questo è utile cancellare la cache quando possibile o ripetere il test più volte, annotando il comportamento. Una singola misurazione può essere indicativa, ma non sempre è sufficiente per decidere.

Un altro errore comune consiste nel cercare una “formula magica”. In DAX l’ottimizzazione dipende dal modello e dal contesto. Una soluzione efficace su un dataset può peggiorare le prestazioni su un altro, soprattutto quando cambiano cardinalità e distribuzione dei dati.

Come inserirlo nel proprio metodo di lavoro

Per iniziare non servono procedure elaborate. Aprirei un modello di prova, eseguirei una query semplice con una misura già nota e confronterei il risultato con una tabella del report. In meno di 30 minuti si può capire il ciclo fondamentale: connessione, query, risultato e misurazione.

In un progetto reale, salverei le query importanti in file organizzati per modello o per problema. Aggiungere una breve nota con data, filtro applicato e tempo di esecuzione trasforma il debugging occasionale in una piccola forma di documentazione tecnica ripetibile.

Per i team è utile anche definire una soglia interna, ad esempio controllare ogni visualizzazione che supera 2 o 3 secondi in condizioni normali. Non è una norma universale, ma un criterio operativo aiuta a decidere quando investire tempo nell’ottimizzazione e quando il costo non è giustificato.

La soluzione migliore resta spesso ibrida. Power BI serve per modellare e comunicare i dati, l’editor integrato è comodo per le query rapide, mentre il client esterno offre la profondità necessaria per capire perché una misura funziona o rallenta.

Il passo più utile dopo la prima query

Una volta verificato che il risultato è corretto, il passo successivo non dovrebbe essere scrivere query sempre più complesse. Conviene scegliere una misura reale del proprio report, registrare il tempo di esecuzione e osservare come cambia dopo una modifica controllata.

Questo approccio insegna una lezione che considero centrale nel lavoro con Power BI: il DAX non vive separato dal modello. Tabelle, relazioni, filtri e volume dei dati influenzano la formula quanto la sintassi. Usato con questa consapevolezza, lo strumento diventa un laboratorio concreto per costruire report più affidabili, leggibili e veloci.

Domande frequenti

Apri prima il file .pbix in Power BI Desktop, poi avvia DAX Studio dal menu External Tools oppure manualmente. Seleziona l’istanza locale e il modello corretto, quindi verifica che tabelle, colonne e misure siano visibili nei metadati.

Una misura restituisce un valore in base al contesto del report, mentre una query deve normalmente restituire una tabella. Per questo si usa spesso EVALUATE, insieme a funzioni come SUMMARIZECOLUMNS, per analizzare misure, filtri e risultati intermedi.

Individua la visualizzazione con Performance Analyzer, copia la query generata ed eseguila in DAX Studio per stabilire una baseline. Poi controlla Server Timings e Query Plan, modifica una sola parte della misura o della query e ripeti il test con gli stessi filtri.

Per una misura semplice possono bastare Power BI Desktop e l’editor integrato. DAX Studio è particolarmente utile per debug, benchmarking, analisi dei metadati, documentazione e profiling delle prestazioni, ma non sostituisce la progettazione del modello.

Valuta l'articolo

Valutazione: 0.00 Numero di voti: 0

Tag

metadati
dax studio
query dax
server timings
query plan
Autor Gavino Caputo
Gavino Caputo
Mi chiamo Gavino Caputo e da 14 anni mi occupo con passione di analisi dati, Business Intelligence e Data Science. Ho iniziato questo percorso perché sono sempre stato affascinato dalla possibilità di trasformare grandi volumi di informazioni in conoscenza utile e fruibile. Sul sito mondobi.it, il mio obiettivo è quello di rendere accessibili concetti complessi, condividendo la mia esperienza per aiutare a comprendere meglio il mondo dei dati, le sue applicazioni e le tendenze emergenti. Cerco di fornire contenuti accurati e aggiornati, spiegando i temi in modo chiaro e strutturato, basandomi su un confronto costante tra le diverse fonti e metodologie che incontro nel mio lavoro quotidiano.

Condividi post

Scrivi un commento