Perché la query viene eseguita più volte?

Durante l'aggiornamento in Power Query, c'è molto da fare dietro le quinte per tentare di offrire un'esperienza utente fluida e per eseguire le query in modo efficiente e sicuro. Tuttavia, in alcuni casi è possibile notare che più richieste di origine dati vengono attivate da Power Query quando i dati vengono aggiornati. A volte queste richieste sono normali, ma altre volte possono essere impedite.

Quando si verificano più richieste

Le sezioni seguenti descrivono alcune istanze quando Power Query può inviare più richieste a un'origine dati.

progettazione di Connessione or

Connessione ors possono effettuare più chiamate a un'origine dati per vari motivi, tra cui metadati, memorizzazione nella cache dei risultati, paginazione e così via. Questo comportamento è normale ed è progettato per funzionare in questo modo.

Più query che fanno riferimento a una singola origine dati

Se più query eseguono il pull da tale origine dati, possono verificarsi più richieste alla stessa origine dati. Queste richieste possono verificarsi anche in un caso in cui una sola query fa riferimento all'origine dati. Se la query fa riferimento a una o più altre query, ogni query, insieme a tutte le query da cui dipende, viene valutata in modo indipendente.

In un ambiente desktop viene eseguito un singolo aggiornamento di tutte le tabelle nel modello di dati usando una singola cache condivisa. La memorizzazione nella cache può ridurre la probabilità che più richieste vengano inviate alla stessa origine dati, poiché una query può trarre vantaggio dalla stessa richiesta già eseguita e memorizzata nella cache per una query diversa. Anche in questo caso, tuttavia, è possibile ottenere più richieste perché l'origine dati non viene memorizzata nella cache (ad esempio, file CSV locali), la richiesta all'origine dati è diversa da una richiesta già memorizzata nella cache a causa di operazioni downstream (che possono modificare la riduzione), la cache è troppo piccola (che è relativamente improbabile) o perché le query vengono eseguite approssimativamente contemporaneamente.

In un ambiente cloud ogni query viene aggiornata usando una cache separata, quindi una query non può trarre vantaggio dalla stessa richiesta già memorizzata nella cache per una query diversa.

Pieghevole

A volte il livello di riduzione di Power Query può generare più richieste a un'origine dati, in base alle operazioni eseguite a valle. In questi casi, è possibile evitare più richieste usando Table.Buffer. Altre informazioni: Memorizzare nel buffer la tabella

Caricamento nel modello di Power BI Desktop

In Power BI Desktop Analysis Services (AS) aggiorna i dati usando due valutazioni: una per recuperare lo schema, che AS esegue richiedendo zero righe, e una per recuperare i dati. Se il calcolo dello schema di riga zero richiede il recupero dei dati, possono verificarsi richieste di origine dati duplicate.

Analisi della privacy dei dati

La privacy dei dati esegue le proprie valutazioni di ogni query per determinare se le query sono sicure da eseguire insieme. Questa valutazione può talvolta causare più richieste a un'origine dati. Un segno telltale che una determinata richiesta proviene dall'analisi della privacy dei dati è che avrà una condizione "TOP 1000" (anche se non tutte le origini dati supportano tale condizione). In generale, la disabilitazione della privacy dei dati, presupponendo che sia accettabile, eliminerebbe "TOP 1000" o altre richieste relative alla privacy dei dati durante l'aggiornamento. Altre informazioni: Disabilitare il firewall per la privacy dei dati

Download dei dati in background (noto anche come "analisi in background")

Analogamente alle valutazioni eseguite per la privacy dei dati, per impostazione predefinita l'editor di Power Query scaricherà un'anteprima delle prime 1000 righe di ogni passaggio della query. Il download di queste righe consente di garantire che l'anteprima dei dati sia pronta per la visualizzazione non appena viene selezionato un passaggio, ma può anche causare richieste di origine dati duplicate. Altre informazioni: Disabilitare l'analisi in background

Attività in background dell'editor di Power Query varie

Diverse attività in background dell'editor di Power Query possono anche attivare richieste di origine dati aggiuntive( ad esempio, analisi della riduzione delle query, profilatura delle colonne, aggiornamento automatico dell'anteprima di 1000 righe attivata da Power Query dopo il caricamento dei risultati in Excel e così via).

Isolamento di più query

È possibile isolare le istanze di più query disattivando parti specifiche del processo di query per isolare la provenienza delle richieste duplicate. Ad esempio, se si inizia:

  • Nell'editor di Power Query
  • Con il firewall disabilitato
  • Con l'analisi in background disabilitata
  • Con la profilatura delle colonne e qualsiasi altra attività in background disabilitata
  • [Facoltativo] Fare un Table.Buffer

In questo esempio si avrà solo una singola valutazione M che si verifica quando si aggiorna l'anteprima dell'editor di Power Query. Se le richieste duplicate si verificano a questo punto, sono in qualche modo intrinseche nel modo in cui viene creata la query. In caso contrario, e se si abilitano le impostazioni sopra una alla volta, è possibile osservare a quale punto si verificano le richieste duplicate.

Le sezioni seguenti descrivono questi passaggi in modo più dettagliato.

Configurare l'editor di Power Query

Non è necessario riconnettersi o ricreare la query, è sufficiente aprire la query da testare nell'editor di Power Query. Se non si vuole creare confusione con la query esistente, è possibile duplicare la query nell'editor.

Disabilitare il firewall per la privacy dei dati

Il passaggio successivo consiste nel disabilitare il firewall per la privacy dei dati. Questo passaggio presuppone che non ci si preoccupi della perdita di dati tra le origini, quindi la disabilitazione del firewall per la privacy dei dati può essere eseguita usando le impostazioni del livello di privacy sempre ignorate descritte nell'opzioneImposta combinazione rapida in Excel o usando l'impostazione Ignora i livelli di privacy e potenzialmente migliorare le prestazioni descritte in Livelli di privacy di Power BI Desktop in Power BI Desktop.

Assicurarsi di annullare questo passaggio prima di riprendere il test normale.

Disabilitare l'analisi in background

Il passaggio successivo consiste nel disabilitare l'analisi in background. L'analisi in background è controllata dall'impostazione Consenti il download dei dati nell'impostazione in background descritta in Disabilitare l'aggiornamento in background di Power Query per Power BI. È anche possibile disabilitare questa opzione in Excel.

Immagine che mostra le opzioni di query in Excel con l'analisi in background disabilitata.

Memorizzare nel buffer la tabella

Facoltativamente, è anche possibile usare Table.Buffer per forzare la lettura di tutti i dati, che imita ciò che accade durante un caricamento. Per usare Table.Buffer nell'editor di Power Query:

  1. Nella barra della formula dell'editor di Power Query selezionare il pulsante fx per aggiungere un nuovo passaggio.

    Immagine con la posizione del pulsante fx evidenziata.

  2. Nella barra della formula racchiudere il nome del passaggio precedente con Table.Buffer(<il nome del passaggio precedente viene qui>). Ad esempio, se il passaggio precedente è stato denominato Source, la barra della formula visualizzerà = Source. Modificare il passaggio nella barra della formula per dire = Table.Buffer(Source).

Altre informazioni: Table.Buffer

Eseguire il test

Per eseguire il test, eseguire un aggiornamento nell'editor di Power Query.

Immagine con la posizione del pulsante di aggiornamento evidenziata.