Condividi tramite


Indicatori di aggregazione della query

Annotazioni

Prima di leggere questo articolo, è consigliabile leggere Panoramica della valutazione delle query e riduzione delle query in Power Query per comprendere meglio il funzionamento della riduzione in Power Query.

Gli indicatori di rimodulazione delle query aiutano a comprendere i passaggi che si rimodulano o non si rimodulano.

Con gli indicatori di riduzione delle query, diventa ovvio quando si apporta una modifica che interrompe la riduzione. Questa funzionalità consente di risolvere più facilmente i problemi rapidamente, evitare problemi di prestazioni al primo posto e ottenere informazioni più dettagliate sulle query. Nella maggior parte dei casi, si trovano gradini che si piegano o non si piegano. Tuttavia, esistono molti casi in cui il risultato non è così ovvio e questi casi sono descritti negli indicatori di diagnostica dei passaggi (Dinamici, Opachi e Sconosciuti).

Annotazioni

La funzionalità degli indicatori di folding delle query è disponibile solo in Power Query Online.

Interpretazione della diagnostica di riduzione delle query

Quando si esamina l'indicatore di folding della query accanto a un passaggio, la cosa più importante da comprendere è che lo stato diagnostico non è sequenziale. In altre parole, l'indicatore per tale passaggio descrive se la query nel suo complesso, fino a quel punto, si piega o meno. Se hai un indicatore che mostra che la query non viene piegata, seguito da un indicatore che mostra che viene piegata, significa che la tua query fino a quel punto viene effettivamente piegata.

Questa interpretazione funziona anche con una semplice query su un'origine SQL. Ad esempio, usando il database di esempio AdventureWorks, connettersi alla tabella Production.Product e caricare i dati. Il caricamento di questo esempio tramite lo strumento di navigazione di Power Query fornisce la query seguente:

let
  Source = Sql.Database("ServerName", "AdventureWorks"),
  Navigation = Source{[Schema = "Production", Item = "Product"]}[Data]
in
  Navigation

Se esamini il modo in cui questo codice viene visualizzato negli indicatori di piegatura delle query, potete notare che il primo passaggio è inconcludente. Tuttavia, il secondo passaggio si piega, il che significa che la richiesta fino a quel punto viene piegata.

Screenshot dei passaggi della sorgente e di navigazione nel pannello Indicatore di piegatura.

In questo esempio i passaggi iniziali non possono essere confermati per la riduzione (è inconcludente), ma il passaggio finale generato quando si caricano i dati viene inizialmente ridotto. La modalità di gestione dei primi passaggi (origine e talvolta altri passaggi di spostamento) dipende dal connettore. Con SQL, ad esempio, il passaggio viene gestito come valore di tabella del catalogo, che non viene piegato. Tuttavia, non appena si selezionano i dati per tale connettore, viene piegato.

Al contrario, questa indicazione può anche significare che la query si ripiega fino a un certo punto e quindi smette di ripiegarsi. A differenza del caso in cui si dispone di un indicatore di piegatura per il passaggio che mostra che tutto si piega, quando si ha un indicatore che non è di piegatura ciò non significa che niente si piega. Significa invece che "non tutto" si piega. In genere, tutto fino all'ultimo indicatore di piegatura si piega, seguito da ulteriori operazioni.

Modificando l'esempio precedente, è possibile assegnare una trasformazione che non si piega mai—Trasforma in maiuscola ogni parola.

let
  Source = Sql.Database("ServerName", "AdventureWorks"),
  Navigation = Source{[Schema = "Production", Item = "Product"]}[Data],
  #"Capitalized each word" = Table.TransformColumns(Navigation, {{"Name", each Text.Proper(_), type text}})
in
  #"Capitalized each word"

Negli indicatori di riduzione della query sono presenti gli stessi indicatori di quelli precedenti, ad eccezione del passaggio finale che non si riduce. Tutti gli elementi fino a questo passaggio finale vengono eseguiti nell'origine dati, mentre il passaggio finale viene eseguito in locale.

Screenshot dell'origine, della navigazione e della maiuscola di ogni parola nel riquadro Indicatore di piegatura.

Indicatori di diagnostica delle fasi

Gli indicatori di riduzione delle query usano un piano di query sottostante e richiedono che sia in grado di ottenere informazioni sulla query per segnalarla. Attualmente, il piano di query supporta solo le tabelle, quindi alcuni casi (elenchi, record, primitive) non segnalano come riduzione o meno. Analogamente, le tabelle costanti vengono riportate come opache.

Indicatore Icona Descrizione
Ripiegamento L'indicatore di folding indica che la fonte di dati valuta la query fino a questo punto.
Non piegatura L'indicatore di mancata piegatura segnala che una parte della query fino a questo punto viene valutata all'esterno dell'origine dati. È possibile confrontarlo con l'ultimo indicatore di riduzione, se presente, per verificare se è possibile riorganizzare la query in modo che sia più efficiente.
Potrebbe piegarsi Gli indicatori di piegatura potrebbero non essere comuni. Significano che una query "potrebbe" collassare. Indicano che la riduzione o meno viene determinata in fase di esecuzione, quando si estraggono i risultati dalla query e che il piano di query è dinamico. Questi indicatori sono probabilmente visualizzati solo con connessioni ODBC o OData.
opaco Gli indicatori opachi indicano che il piano di query risultante è inconclusivo per qualche motivo. In genere indica che è presente una tabella "costante" effettiva o che gli indicatori e lo strumento piano di query non supportano tale trasformazione o connettore.
Sconosciuto Gli indicatori sconosciuti rappresentano un'assenza di un piano di query, a causa di un errore o di un tentativo di eseguire la valutazione del piano di query su un elemento diverso da una tabella , ad esempio un record, un elenco o una primitiva.

Analisi di esempio

Per un'analisi di esempio, iniziare connettendosi alla tabella Production.Product in Adventure Works (SQL). Il caricamento iniziale, simile all'esempio iniziale, è simile all'immagine seguente.

Screenshot degli indicatori del passaggio iniziale per il caricamento della tabella prodotto.

Aggiungendo altri passaggi che si piegano estende la linea verde sul lato destro. Questa estensione avviene poiché anche questo passaggio si piega.

Screenshot che mostra come l'aggiunta di un passaggio per rimuovere una colonna alla query precedente estende la linea dell'indicatore di piegatura verde.

Aggiungere un passaggio che non si piega visualizza un indicatore diverso. Ad esempio, Capitalizza ogni parola non si piega mai. L'indicatore cambia, mostrando che a partire da questo passaggio, ha smesso di piegarsi. Come accennato in precedenza, i passaggi precedenti continuano a piegarsi.

Screenshot che mostra come l'aggiunta di un'opzione

L'aggiunta di ulteriori passaggi successivi che dipendono da Capitalizza ogni passo continua a non risultare efficace.

Screenshot che mostra come il compattamento non si verificherà dopo l'aggiunta di altri passaggi.

Tuttavia, se si rimuove la colonna a cui hai applicato la capitalizzazione, il piano di query ottimizzato può essere ottimizzato nuovamente, ottenendo un risultato simile all'immagine seguente. Tuttavia, qualcosa di simile a questo è insolito. Questa immagine illustra come non è solo l'ordine dei passaggi, ma anche le trasformazioni effettive che si applicano.

Screenshot che illustra come la rimozione della colonna problematica consenta il ripiegamento senza rimuovere il passaggio.