Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Microsoft 365 PowerQuery Hyper lent

GADENSEB

XLDnaute Impliqué
Bonjour le forum,

Je ne comprends pas. j'ai un power query hyper sur un fichier que j'utilise depuis des années
La database (contenue dans un onglet du fichier) fait 30 000 lignes et 27 colonnes.

C'est hyper lent à l'étape "connexion à la source de données"
ça met 5 minutes.
Je n'ai pas fait de gros changements dans le code.

Je ne pas mettre le fichier dans le forum car il contient des datas perso.

Je cherche juste des pistes de réflexion ;-)

Bonne Journée
Seb
 

GADENSEB

XLDnaute Impliqué
le code PQ de la source de données est :

Code:
let
    // Combiner les tables source et sélectionner les colonnes nécessaires
    Source = Table.Combine({TAB_COMPTES, TAB_CONVERSION}),
    ColonnesFiltrées = Table.SelectColumns(Source, {
        "DATE", "LIBELLE BANQUE", "BUDGET REEL", "DEBITCREDIT", "CODE",
        "DEBIT", "CREDIT", "N°", "ANNEE", "SEMAINE", "POSTE", "COMMERCE"
    }),
    
    // Modifier les types dès l'importation des colonnes filtrées
    TypesModifiés = Table.TransformColumnTypes(ColonnesFiltrées, {
        {"DATE", type date},
        {"LIBELLE BANQUE", type text},
        {"BUDGET REEL", type text},
        {"DEBITCREDIT", Currency.Type},
        {"CODE", type text},
        {"DEBIT", Currency.Type},
        {"CREDIT", Currency.Type},
        {"N°", type text},
        {"ANNEE", type text},
        {"SEMAINE", type text},
        {"POSTE", type text},
        {"COMMERCE", type text}
    }),

    // Remplacer les valeurs nulles par des valeurs par défaut
    ValeurRemplacée = Table.ReplaceValue(TypesModifiés, null, "", Replacer.ReplaceValue, {
        "LIBELLE BANQUE", "N°", "CODE", "ANNEE", "SEMAINE", "POSTE", "COMMERCE"
    }),
    ValeurRemplacée2 = Table.ReplaceValue(ValeurRemplacée, null, 0, Replacer.ReplaceValue, {"DEBIT", "CREDIT", "DEBITCREDIT"}),
    
    // Ajouter des colonnes personnalisées
    ColonneComparBudget = Table.AddColumn(ValeurRemplacée2, "COMPAR BUDGET", each [DEBITCREDIT]),
    ColonneDateFinSemaine = Table.AddColumn(ColonneComparBudget, "DATE FIN DE SEMAINE", each Date.EndOfWeek([DATE])),

    // Fusionner avec la table TAB_COMMERCES
    FusionCOMMERCES = Table.NestedJoin(ColonneDateFinSemaine, {"COMMERCE"}, TAB_COMMERCES, {"LIBELLE"}, "COMMERCES", JoinKind.LeftOuter),
    COMMERCESDéveloppé = Table.ExpandTableColumn(FusionCOMMERCES, "COMMERCES", {"CATEGORIE", "VALIDATION CCE"}, {"CCES.CATEGORIE", "VALIDATION CCE"}),

    // Fusionner avec la table Tab_ParametresPostes
    FusionParametresPostes = Table.NestedJoin(COMMERCESDéveloppé, {"POSTE"}, Tab_ParametresPostes, {"NOM COMPLET"}, "Tab_ParametresPostes", JoinKind.LeftOuter),
    ParametresPostesDéveloppé = Table.ExpandTableColumn(FusionParametresPostes, "Tab_ParametresPostes", {"CLASSIFICATION"}, {"CLASSIFICATION"}),

    // Ajouter une colonne de clé unique
    ColonneClef = Table.AddColumn(ParametresPostesDéveloppé, "Clef", each Date.ToText([DATE]) & "-" & Number.ToText(Number.Abs([DEBITCREDIT])))
in
    ColonneClef
 

merinos

XLDnaute Accro
Salut @GADENSEB ,

j'ai aussi ce genre de problème...

Jamais regardé la place en memoire...

Mais, quand je copie sur le disque local (et pas dans "mes documents" qui est aussi en sharepoint) alors cela va beaucoups plus vite.

Comme mon fichier reste partagé, je suis obligé de le laisser sur sharepoint (grrrr), alors à l'ouverture je commence par un refresh de tous les query avant même de travailler .

Merinos
 

alexga78

XLDnaute Occasionnel
Bonjour @GADENSEB, le forum,
Un fichier exemple sans données personnelles serait utile pour optimiser la requête.

En général lorsque le nombre de lignes est important je préfère travailler avec des listes/Record plutôt que des tables et éviter les tablesnestedjoin, filtrer le plus tôt possible et faire les étapes gourmandes à la fin.
 

GADENSEB

XLDnaute Impliqué
bonjour,
Je vais essayer de fournir un fichier "Vierge" d'infos perso.
Je pense avoir trouvé l'erreur l'option "Activer l'actualisation en arrière plan est désactivée et grisée... sur toutes les requêtes dont la principale qui sert de base de travail à tout.


Comment dégriser cette option ???


bonne aprem
Seb
 
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…