複雑なMクエリをいくつか作成し、いくつかの重大なパフォーマンスの問題に取り掛かりました。私はいつか私のコードをいつか整理する方法と関係があるのだろうかと思っています。私が持ってきたExcel Get&Transform(Power Query)Mコードのスタイルとパフォーマンス
問題は、次のとおりです。
1)電源クエリは常に、私は結果を待っていないよ場合でも、何かを計算し、複数のCPUコアをすべて使用しています。
2)タスクマネージャでは、PowerQuestスレッド(「Microsoft.mashup.Container.NetFX40.exe」)がほぼアイドル状態にあることがありますが、Excel.exeでは1コアの100%が数十分間使用されることがあります - 多くても、数十個以上のセルを含んでいないいくつかのパラメータテーブルで値を探しています。
3)いくつかの手順は、関係する操作が簡単ではあるが、計算に非常に時間がかかります。たとえば、Excelテーブルから取得した10個のテキスト値のリストがあります。このリストは、私がそれをプレビューするときの質問ステップの1つとして表示されます。次に、単一の値を削除したいので、次のステップ= List.RemoveItems(myList、{"val"})。前の手順でリストが正しく読み込まれていることがわかったとしても、30分後には計算されませんでした。
4)コードを変更した後、数分間UIが応答しなくなることがあります。左側のクエリを右クリックして高度なエディタに入り、右上の赤いXをクリックして変更を保存することができますが、残りのすべては応答しません。灰色ではなく、ただ反応しません。
とにかく、誰かが似たような問題を抱えているかどうか、誰かがPQの特に悪いパフォーマンスを引き起こす原因が分かっているかどうかを質問したかっただけです。
まだ簡単に個々のステップを検査することが可能でありながら、私は多くの場合、クエリの合計数を抑えるために、次のパターンのようなものを使用します:
let
ThisWB = Excel.CurrentWorkbook(),
CfgTbl = ThisWB{[Name="myCfgTbl"]}[Content],
x = aFn(CfgTbl),
y = bFn(CfgTbl),
output = [ThisWB=ThisWB, CfgTbl=CfgTbl, x=x, y=y]
in
output
は、すべての問題につながり、この可能性が高いですか?ちょうど私が新しいクエリ= Excel.CurrentWorkbook(){[Name = "myCfgTbl"]} [Content]を作成し、別のクエリからそれを参照して、私の結果はすぐに計算されました。理由は分かりません。
どのようなバージョンのPower Queryを使用していますか? CPUの問題の中には、バックグラウンド解析によるものがあります。これは、[オプション]ダイアログの[現在のワークブック|データロード|データプレビューをバックグラウンドでダウンロードできるようにする。 –