Power Automate si applica a ogni azione nei flussi di lavoro
Scopri l
In questo tutorial, tratteremo la differenza su come funziona l'indicizzazione dei dati in un database relazionale rispetto a Vertipaq.
I database relazionali memorizzano i dati riga per riga. D'altra parte, Vertipaq lo fa colonna per colonna.
Vediamo in che modo questi due modi di archiviare e indicizzare i dati potrebbero influire sul processo di sviluppo dei report, in particolare durante l'esecuzione delle query.
Sommario
Indicizzazione dei dati per riga
Memorizzare i dati riga per riga è il modo tradizionale di memorizzare i dati. Tuttavia, questo processo richiede più tempo, il che influirà sulle prestazioni della tua query.
Diciamo di avere una tabella che contiene il Brand, il Colore, il Sesso, la Quantità e il Prezzo Netto.
Se memorizziamo tutto in questa tabella in un database, allora memorizzerà i dati riga per riga. Ecco perché la tradizionale struttura di archiviazione dei dati è anche chiamata archivio di righe.
Innanzitutto, nella stessa riga, memorizzerà le intestazioni di colonna trovate nella prima riga: marca, colore, sesso, quantità e prezzo netto. Quindi passa alla riga successiva per memorizzare i primi elementi sotto ogni colonna: A. Datum, Azure, uno spazio vuoto, 1 e 103.2. Questo continua riga per riga.
Quindi, come faremo a calcolare la della quantità usando questo metodo di indicizzazione dei dati?
Innanzitutto, inizia con la prima riga, che contiene le intestazioni di colonna. Quindi, passa alla riga successiva e salta attraverso gli altri pezzi di dati finché non arriva alla prima quantità che vede, che è 1. Quindi salta da una riga all'altra, scorrendo tutti i dati contenuti in ogni riga e raccogliendo tutti i le quantità si trovano.
Una volta che ha messo da parte tutte le quantità di ogni riga, è l'unico momento in cui il calcolo è completato.
Probabilmente puoi immaginare quanto sia noioso il processo se stai preparando un report LuckyTemplates che utilizza una connessione DirectQuery a un'origine dati SQL. In questo caso, i servizi di analisi convertono il codice DAX nel linguaggio SQL, quindi iniziano a esaminare la struttura dei dati riga per riga.
Indicizzazione dei dati per colonna
Per evitare il lungo processo coinvolto, hai la possibilità di archiviare i dati colonna per colonna tramite Vertipaq quando scegli la modalità di importazione.
Quando si utilizza l'archivio colonne anziché l'archivio righe, il marchio, il colore, il sesso, la quantità e il prezzo netto verranno archiviati ciascuno in strutture di dati diverse.
Supponiamo di voler ottenere la SOMMA dei valori nella colonna Quantità. Non sarà necessario passare attraverso Brand, Colore e altri dati al di fuori della colonna Quantità. In un'unica scansione, legge l'intera colonna Quantità dall'alto verso il basso e riassume tutti i valori.
Per questo motivo, le query verranno eseguite più rapidamente rispetto all'esecuzione da sinistra a destra.
Confronto del tempo di esecuzione in query semplici
Per vedere davvero l'enorme differenza tra l'archivio di righe e l'archivio di colonne, eseguiamo alcune query di prova sia in SQL che in Vertipaq. Il tempo di esecuzione dovrebbe dirci quanto è veloce un processo rispetto all'altro.
Iniziamo con una semplice query in SQL. Calcoleremo la SOMMA della colonna Quantità nella tabella Vendite.
Come puoi vedere, il tempo totale di esecuzione è di 2,2 secondi.
Passiamo ora a DAX Studio e usiamo la funzione EVALUATE per eseguire la stessa query. Dobbiamo attivare i tempi del server e attendere il completamento della traccia.
Dobbiamo anche assicurarci che l'opzione "Svuota cache, quindi esegui" sia selezionata quando eseguiamo la query.
Una volta eseguita la query, vedrai che sono necessari solo 3 millisecondi per completare la stessa query che abbiamo eseguito in SQL in precedenza.
Il set di risultati deve corrispondere anche per SQL e DAX Studio. Se li mettiamo uno accanto all'altro, puoi vedere che stiamo restituendo lo stesso valore.
Puoi provare a eseguire la query più volte per vedere quanto è coerente il tempo di esecuzione.
Confronto del tempo di esecuzione in query più complicate
Questa volta, confrontiamo il tempo di esecuzione quando eseguiamo query più complicate.
Supponiamo di voler identificare la SOMMA delle Quantità Vendite per ogni marca. Per fare questo, possiamo usare sopra i della marca di ogni prodotto. Nel contesto basso, creeremo anche una nuova tabella chiamata Total Quantity dove andremo a per la SOMMA della Sales Quantity.
Se eseguiamo questo codice, puoi vedere che il tempo di esecuzione totale è di 7 millisecondi.
In background, questo codice sta effettivamente eseguendo due query. Il primo prende la colonna Brand dalla tabella Products, quindi esegue un OUTER JOIN sulle colonne Product Key sia dalla colonna Sales che dalla colonna Products.
La seconda query recupera semplicemente la colonna Brand dalla tabella Products.
Se vado alla schermata dei risultati, puoi vedere che la misura della quantità totale è stata suddivisa in base a ciascun marchio.
Ora andiamo al server SQL e scriviamo la stessa query.
Spingeremo la tabella DaxStudio Sales alla riga successiva, facendo riferimento alla tabella Sales AS S. Poi, eseguiremo anche un LEFT JOIN nella tabella DaxStudio Products referenziata AS P, con S.Product Key uguale a P.Chiave prodotto. Useremo anche P.Brand con la SUM della quantità e la quantità totale nell'istruzione SELECT . Infine, useremo per P.brand.
Una volta eseguito questo codice, otterremo una tabella che contiene la quantità totale segregata per ogni marchio, che è la stessa cosa che avevamo precedentemente in Vertipaq.
Per quanto riguarda il tempo di esecuzione totale, rimane molto più lento a 2,5 secondi.
DAX per LuckyTemplates: Ottimizzazione tramite motori di formule in DAX Studio
Tecniche e lezioni sull'ottimizzazione delle query DAX
Prestazioni delle query e configurazione di DAX Studio
Conclusione
È evidente quanto sia veloce l'archivio di colonne tramite Vertipaq rispetto all'archivio di righe in un database SQL. Ciò dimostra l'importanza di conoscere veramente il modo in cui funziona l'indicizzazione dei dati attraverso diverse piattaforme.
All'inizio può sembrare un piccolo sacrificio se scegli ancora di andare per i 2,5 secondi in cui l'archivio di righe esegue la tua query rispetto ai 7 millisecondi. Ma eseguiamo tutti diverse query quando creiamo i nostri report e tutti questi tempi di esecuzione si sommeranno, con un impatto sulla produttività e sull'esperienza utente a lungo termine.
Scopri l
Tecniche di modellazione dei dati per organizzare meglio le misure DAX per un flusso di lavoro più efficiente.
Scopri come utilizzare la funzione di filtro in Power Apps e come incorporarla nelle formule esistenti all
Come commentare più righe in Python: una guida semplice e veloce
Acquisisci familiarità con i connettori Power Automate per la manipolazione di numeri, testo e date/ore.
Ora, è molto facile studiare il budget rispetto all
Imparerai come salvare e caricare oggetti da un file .rds in R. Questo articolo tratta anche come importare oggetti da R a LuckyTemplates.
Scopri tutto su Power Query e il linguaggio M per la trasformazione e la preparazione dei dati nel desktop di LuckyTemplates.
Cos'è il sé in Python: esempi del mondo reale
In questa esercitazione sul linguaggio di codifica DAX, scopri come usare la funzione GENERATE e come modificare dinamicamente il titolo di una misura.