Power Apps Dataverseのデータを一括更新する方法 Patch vs UpdateIf vs ForAll

前回SharePointのデータの一括更新の方法と、その性能比較をしてみたので、今回はDataverseでの比較。

スポンサーリンク

やってみたこと

今回はアイテムが500個あるDataverseに対し、文字列型の列「str」に値を一括設定してみた。
※設定[データ行の制限]は500のままなので、委任ができるUpdateIf以外の更新対象は先頭500件
比較したのは以下の3つの関数。

  • Patch
  • UpdateIf
  • ForAll

結論:Dataverseの一括更新もPatchが速い

UpdateIf

まずUpdateIf。式はこんな感じ。

UpdateIf(Sample500, true, {str:"a"} )

500件の更新に約50秒ほどかかる。SharePointの更新よりは早いけど、やはりそれなりに遅い。

Patch

続いてPatch。式はこんな感じ。

ClearCollect(target, Sample500);     // 全データをPower Apps側に持ってきて
UpdateIf(target, true, {str:"b"} );  // UpdateIfでPower Apps側のデータを一括更新
Patch(Sample500,target);             // Patchで一気に適用

結果はこちら。500件の更新が約15秒くらい。

ForAll

最後はForAll。式はこんな感じ。

With({records:Sample500},
    ForAll(records As record,
        Patch(Sample500 , record, {str:"d"});
    )
);

結果はこちらで、500件の更新が約1分くらい。

ということで結論は「Dataverseの一括更新も、SharePointの一括更新も、Patch関数を使用するのが一番速い」。

あとは、同じ操作でもSharePointよりDataverseの方が処理速度が速い。

関連記事

タイトルとURLをコピーしました