Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Power Automate のパフォーマンス改善レシピ / Power Automate P...
Search
Takashi Shinohara
July 26, 2025
Technology
0
320
Power Automate のパフォーマンス改善レシピ / Power Automate Performance Improvement Recipes
Takashi Shinohara
July 26, 2025
Tweet
Share
More Decks by Takashi Shinohara
See All by Takashi Shinohara
どっちの API SHOW?SharePoint 開発における SharePoint REST API Microsoft Graph API の違い / Which API show? Differences between Microsoft Graph API and SharePoint REST API
karamem0
0
1k
Microsoft Ignite 2024 最新情報!Microsoft 365 Agents SDK 概要 / Microsoft Ignite 2024 latest news Microsoft 365 Agents SDK overview
karamem0
0
480
徹底解説!Microsoft 365 Copilot の拡張機能 / Complete guide to Microsoft 365 Copilot extensions
karamem0
1
4.1k
Microsoft Search の Graph コネクタ ハンズオン / Handson for Graph Connector of Microsoft Search
karamem0
0
170
いまだから「検索」を語ろう! SharePoint FAST Search から Microsoft Search セマンティックインデックスまで / Let's talk about search now
karamem0
3
1.6k
徹底解説!Power Platform 導入の成功事例から見る DX 推進のコツ / Tips for DX promotion from Power Platform case studies
karamem0
0
5.3k
どうする Power Pages?Web 開発者からみる Power Pages / How to deal with Power Pages
karamem0
0
1.4k
Fluent UI を理解する / Understanding Fluent UI
karamem0
0
1.1k
Microsoft Teams の 会議アプリ開発のはじめかた / How to start Microsoft Teams app development
karamem0
0
3.8k
Other Decks in Technology
See All in Technology
Aurora DSQLはサーバーレスアーキテクチャの常識を変えるのか
iwatatomoya
1
1.2k
エンジニアがデザインまで担うための AI駆動UIデザイン/フロントエンド開発実践
kitami
2
140
slog.Handlerのよくある実装ミス
sakiengineer
4
500
エンジニアリングマネージャーの成長の道筋とキャリア / Developers Summit 2025 KANSAI
daiksy
3
1.3k
フルカイテン株式会社 エンジニア向け採用資料
fullkaiten
0
8.8k
なぜテストマネージャの視点が 必要なのか? 〜 一歩先へ進むために 〜
moritamasami
0
240
AIがコード書きすぎ問題にはAIで立ち向かえ
jyoshise
4
1.2k
未経験者・初心者に贈る!40分でわかるAndroidアプリ開発の今と大事なポイント
operando
6
830
Rustから学ぶ 非同期処理の仕組み
skanehira
1
160
TS-S205_昨年対比2倍以上の機能追加を実現するデータ基盤プロジェクトでのAI活用について
kaz3284
1
230
Firestore → Spanner 移行 を成功させた段階的移行プロセス
athug
1
510
EncryptedSharedPreferences が deprecated になっちゃった!どうしよう! / Oh no! EncryptedSharedPreferences has been deprecated! What should I do?
yanzm
0
520
Featured
See All Featured
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
For a Future-Friendly Web
brad_frost
180
9.9k
Optimising Largest Contentful Paint
csswizardry
37
3.4k
Product Roadmaps are Hard
iamctodd
PRO
54
11k
The Invisible Side of Design
smashingmag
301
51k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
358
30k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
46
7.6k
The Art of Programming - Codeland 2020
erikaheidi
56
13k
Building an army of robots
kneath
306
46k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
GraphQLとの向き合い方2022年版
quramy
49
14k
Speed Design
sergeychernyshev
32
1.1k
Transcript
Power Automate のパフォーマンス改善レシピ 2025/7/26 LogicFlow-ja Online Re: -User Day- 篠原
敬志 (@karamem0)
自己紹介 篠原 敬志 (Takashi Shinohara) アバナード株式会社 グループ マネージャー, アジャイル コーチ
Microsoft MVP for M365 (2018-2026) Microsoft Top Partner Engineer Award (2023) JPM365DEV 運営
本日のお題 Power Automate でフローの実行に時間がかかるということありませんか? ボトルネックとなる原因と対応方法を学びましょう!
免責事項 今回の実験結果は検証環境で実施したものです すべての環境においての動作を保証するものではありません
1 回の実行に何時間もかかる いつまでたっても終わらない これじゃあ業務で使いものにならない
それ、ループのせいでは?
それぞれに適用する (Apply to each) アクション 配列のそれぞれの要素に対して 処理を実行する
Do until アクション 一定の条件を満たすまで繰り返 し処理を実行する
ループ アクション どちらのアクションも同じくらい実行が遅い ループ内のアクションが単純なアクションでも遅い
ベンチマーク 内容 実行時間 それぞれに適用するアクションで 300 回アクションを実行するフロー 約 40 秒 Do
until アクションで 300 回アクションを実行するフロー 約 45 秒 ループを使用せずに 300 回アクションするフロー 約 10 秒 ※ループ内で配列変数に追加アクションを実行した結果です
パフォーマンス対策 並列処理の有効化 ループを使用しない (選択アクション) Pieter's method
並列処理の有効化 フローを並列処理させることで実 行時間を改善する
並列処理の改善結果 40 秒 通常のループ処理 20 秒 並列化したループ処理 (10 並列で実施) 約
50 % 改善
並列処理の特徴 (1) 実行順序は保証されない
並列処理の特徴 (2) 外部サービスを利用するアクションでは一時的に大量アクセスがあると HTTP 429 エラーになる HTTP 429 エラーは再試行ポリシーによって自動的にリトライするがそれが原因で遅くなることも Power
Automate で要求エラーが多すぎます https://learn.microsoft.com/ja-jp/troubleshoot/power-platform/ai-builder/power- automate/too-many-requests-error-in-power-automate Power Automate プロジェクトにおけるリスクの軽減とエラー処理の計画 https://learn.microsoft.com/ja-jp/power-automate/guidance/planning/reducing-risk
選択アクション ループの代わりに選択アクション を使用する
選択アクションの改善結果 40 秒 通常のループ処理 0.2 秒 選択アクション 約 99.5 %
改善
選択アクションの特徴 データ加工するときに最大効果を発揮する XPath を使用すると柔軟なデータ加工を実現できる 配列の要素ごとにアクションを呼ぶことはできないので用途は限定的
Pieter's method (1) 配列変数に追加アクションの代 わりに作成アクションを使用する
Pieter's method (2) ループ外では outputs() で結果 を配列で得られる
Pieter's method の改善結果 40 秒 通常のループ処理 5 秒 Pieter's method
(10 並列で実施) 約 87.5 % 改善
Pieter's method の特徴 ループ内で作成 (Compose) アクションを使用するとループ外からは配列として取得できる 並列処理を有効にしても実行順序が保証される (ただし仕様として明示されているわけではない) Compose actions
inside apply to each steps in Power Automate https://sharepains.com/2019/07/09/compose-apply-to-each-power-automate/
Pieter's method の実行順序 並列実行でも実行順序が正し くなる
ループの回数を減らすための方法 OData クエリを活用する バッチ要求を活用する
OData クエリ ループ内で 1 件ずつデータを取得するのではなく一括でデータを取得する • $filter: 特定のデータのみ取得する (例: $filter=ID
eq 1 or ID eq 3 or …) • $select: データ量を減らす • $expand: 関連するリソースを取得する
バッチ要求 SharePoint REST API や Microsoft Graph API ではバッチ要求を使うことで複数の要求をまと めて送ることができる
REST API によりバッチ要求を発行する | Microsoft Learn https://learn.microsoft.com/ja-jp/sharepoint/dev/sp-add-ins/make-batch-requests- with-the-rest-apis Microsoft Graph SDK を使用して要求をバッチ処理する https://learn.microsoft.com/ja-jp/graph/sdks/batch-requests
DEMO
まとめ Power Automate のループは遅いので極力使わない 並列実行は副作用があるため利用には十分注意する データ加工は選択アクションを使用する どうしてもループするときは Pieter's method を使用する
OData クエリやバッチ要求を活用する
参考リンク Apply to each のパフォーマンス改善 (配列加工の場合) – MoreBeerMorePower https://mofumofupower.hatenablog.com/entry/2020/08/12/093000 SharePoint
リストにアイテムを一括登録する ($batchの活用) - MoreBeerMorePower https://mofumofupower.hatenablog.com/entry/sharepoint_batching
ご清聴ありがとうございました