Remarque
L’accès à cette page requiert une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page requiert une autorisation. Vous pouvez essayer de modifier des répertoires.
Remarque
Avant de lire cet article, consultez Vue d’ensemble de l’évaluation des requêtes et du pliage des requêtes dans Power Query pour mieux comprendre le fonctionnement du pliage dans Power Query.
Les indicateurs de pliage des requêtes vous aident à comprendre quelles étapes font l’objet d’un pliage de requête et lesquelles n’en font pas. Une étape se plie lorsque Power Query traduit ses transformations en une requête de source de données et les exécute à la source de données.
Lorsque vous utilisez des indicateurs de repliement de requête, il apparaît clairement lorsque vous apportez une modification qui empêche le repliement. Cette fonctionnalité vous aide à résoudre les problèmes, à éviter les problèmes de performances et à mieux comprendre vos requêtes. Dans la plupart des cas, les étapes plient ou ne se plient pas. Mais il existe de nombreux cas où le résultat n’est pas évident. La section Indicateurs de diagnostic d’étape couvre ces cas (Peut plier, opaque et inconnu).
Remarque
La fonctionnalité d’indicateurs de repli de requête est disponible uniquement pour Power Query Online.
Interpréter les diagnostics de repli des requêtes
Dans Power Query Online, l’indicateur de repliement de requête situé à côté d’une étape indique si la requête, dans son ensemble, fait l’objet d’un repliement à ce stade. L’état de diagnostic n’est pas séquentiel. Si un indicateur indique que la requête ne plie pas, suivie d’un indicateur qui le montre, la requête jusqu’à ce point se plie.
Cette interprétation fonctionne même avec une requête simple sur une source SQL. Par exemple, connectez-vous à la table Production.Product dans l’exemple de base de données AdventureWorks, puis chargez les données. Le chargement de cet exemple via le navigateur Power Query fournit la requête suivante :
let
Source = Sql.Database("ServerName", "AdventureWorks"),
Navigation = Source{[Schema = "Production", Item = "Product"]}[Data]
in
Navigation
Si vous examinez la façon dont ce code s’affiche dans les indicateurs de repli de requête, vous notez que la première étape est inconclusive. Mais la deuxième étape se replie, ce qui signifie que la requête jusqu’à ce point est repliée.
Dans cet exemple, les étapes initiales ne peuvent pas être confirmées à plier (sont inconclusives), mais l’étape finale générée lorsque vous chargez initialement des données se plie. La façon dont les premières étapes (Source et parfois d’autres étapes de navigation ) sont gérées dépend du connecteur. Avec SQL, par exemple, l’étape est gérée en tant que valeur de table de catalogue, qui ne se plie pas. Toutefois, dès que vous sélectionnez des données pour ce connecteur, elle se plie.
À l’inverse, cette indication peut également signifier que votre requête se plie jusqu’à un certain point, puis cesse de se plier. Un indicateur d’absence de pliage ne signifie pas que rien ne se plie. Au lieu de cela, cela signifie que tout ne se plie pas. En règle générale, tous les éléments jusqu’au dernier indicateur de pliage se plient, avec plus d’opérations qui se produisent après.
En modifiant l’exemple précédent, vous pouvez donner une transformation qui ne se plie jamais : mettre en majuscule chaque mot.
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"
Dans les indicateurs de fusion de requête, vous avez les mêmes indicateurs que précédemment, sauf que l'étape finale ne fusionne pas. Tout ce qui se passe jusqu’à cette dernière étape est effectué sur la source de données, tandis que l’étape finale est effectuée localement.
Indicateurs de diagnostic d’étape
Les indicateurs de pliage des requêtes utilisent un plan de requête sous-jacent et nécessitent qu’il signale des informations sur la requête. Actuellement, le plan de requête prend uniquement en charge les tables, de sorte que certains cas (listes, enregistrements, primitives) ne sont pas pris en compte quant à leur état de pliement. De même, les tables constantes rapportent qu'elles sont opaques.
| Indicateur | Icône | Descriptif |
|---|---|---|
| Pliage |
|
L’indicateur de repli vous indique que la source de données évalue la requête jusqu’à cette étape. |
| Pas de pliage |
|
L’indicateur de non-pliage vous indique qu’une partie de la requête jusqu’à cette étape est évaluée en dehors de la source de données. Vous pouvez le comparer avec le dernier indicateur de pliage, s’il en existe un, pour voir si vous pouvez réorganiser votre requête pour qu’elle soit plus performante. |
| Pourrait plier |
|
Les indicateurs de possible pliage sont rares. Ils signifient qu’une requête « pourrait » échouer. Ils indiquent que le fait de plier ou de ne pas plier est déterminé au moment de l'exécution, lors de l'extraction des résultats de la requête, et que le plan de la requête est dynamique. Ces indicateurs apparaissent probablement uniquement avec des connexions ODBC ou OData. |
| opaque |
|
Les indicateurs opaques vous indiquent que le plan de requête résultant est inconclusif pour une raison quelconque. Il indique généralement qu’il existe une table « constante » vraie, ou que l’outil d’indicateurs et de plan de requête ne prend pas en charge cette transformation ou ce connecteur. |
| Inconnu |
|
Les indicateurs inconnus représentent une absence d’un plan de requête, soit en raison d’une erreur ou d’une tentative d’exécution de l’évaluation du plan de requête sur une autre table qu’une table (par exemple, un enregistrement, une liste ou une primitive). |
Analyser les indicateurs de pliage des requêtes
Pour analyser les indicateurs de pliage des requêtes, connectez-vous à la table Production.Product dans AdventureWorks (SQL). La charge initiale montre l’étape Source comme étant inconclusive et l’étape de navigation comme pliage, comme illustré dans l’image suivante.
Lorsque vous ajoutez d’autres étapes qui plient, vous étendez la ligne verte à droite. Cette extension se produit parce que cette étape se plie également.
Lorsque vous ajoutez une étape qui ne se plie pas, vous voyez un indicateur différent. Par exemple, mettre en majuscule chaque mot ne se plie jamais. L’indicateur change, montrant qu’à partir de cette étape, il a cessé de plier. Comme mentionné précédemment, les étapes précédentes continuent de se plier.
Lorsque vous ajoutez d’autres étapes en aval qui dépendent de Capitaliser chaque mot, elles continuent à ne pas se plier.
Toutefois, si vous supprimez la colonne à laquelle vous avez appliqué la mise en majuscule, le plan de requête optimisé peut se plier à nouveau. Dans ce résultat rare, l’étape finale se plie même si une étape antérieure ne se plie pas, comme illustré dans l’image suivante. Ce résultat illustre la façon dont le pliage dépend à la fois de l’ordre des étapes et des transformations qui s’appliquent.