Indicatori di riduzione della query

Gli indicatori di riduzione delle query consentono di comprendere i passaggi che si piegano o non si piegano.

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 verificano passaggi piegati o non piegati. 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).

Nota

La funzionalità indicatori di riduzione delle query è disponibile solo per Power Query Online.

Interpretazione della diagnostica di riduzione delle query

Quando si esamina l'indicatore di riduzione della query accanto a un passaggio, la cosa più importante da comprendere è che lo stato di diagnostica 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 si dispone di un indicatore che indica che la query non viene piegata seguita da un indicatore che lo mostra, significa che la query fino a quel punto viene 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 si esamina il modo in cui questo codice viene visualizzato negli indicatori di riduzione delle query, si noti che il primo passaggio è inconcludente. Tuttavia, il secondo passaggio si riduce, il che significa che la query fino a quel punto viene piegata.

Screenshot dei passaggi di origine e spostamento nel riquadro Indicatore di riduzione.

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, viene gestito come valore di tabella del catalogo, che non si riduce. Tuttavia, non appena si selezionano i dati per tale connettore, viene piegato.

Al contrario, questa indicazione può anche indicare che la query si riduce fino a un punto e quindi arresta la riduzione. A differenza del caso in cui si dispone di un indicatore di riduzione per il passaggio che mostra che tutto si piega, quando si dispone di un indicatore non piegabile non significa che tutto non si piega. Significa invece che "non tutto" si piega. In genere, tutto fino all'ultimo indicatore di riduzione si piega, con più operazioni che si verificano dopo.

Modificando l'esempio precedente, è possibile assegnare una trasformazione che non si piega mai, ovvero 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, dello spostamento e della maiuscola di ogni passaggio di parola nel riquadro Indicatore di riduzione.

Indicatori di diagnostica dei passaggi

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 segnalano come opache.

Indicatore Icon Descrizione
Pieghevole L'indicatore di riduzione indica che la query fino a questo passaggio viene valutata dall'origine dati.
Non piegatura L'indicatore di non riduzione indica che alcune parti della query fino a questo passaggio vengono valutate 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 riduzione potrebbero non essere comuni. Significano che una query "potrebbe" piegarsi. 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" vera o che la trasformazione o il connettore non è supportato dagli indicatori e dallo strumento del piano di query.
Unknown 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 di passaggio iniziale per il caricamento della tabella Product.

Aggiungendo altri passaggi che si piegano estende la linea verde sul lato destro. Questa estensione si verifica perché questo passaggio si riduce anche.

Screenshot che mostra come l'aggiunta di un passaggio di rimozione della colonna alla query precedente estende la linea dell'indicatore di riduzione verde.

L'aggiunta di un passaggio che non riduce visualizza un indicatore diverso. Ad esempio, in maiuscolo ogni parola non viene mai piegata. 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'operazione maiuscola ogni passaggio di Word interrompe la riduzione.

L'aggiunta di altri passaggi downstream che dipendono dall'uso di maiuscole e minuscole per ogni passaggio continua a non piegarsi.

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

Tuttavia, se si rimuove la colonna a cui è stata applicata la combinazione di maiuscole e minuscole in modo che il piano di query ottimizzato possa essere piegato ancora una volta, si ottiene 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 mostra come la rimozione della colonna problematica consente la riduzione delle operazioni senza rimuovere il passaggio.