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
330
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
1.1k
Microsoft Ignite 2024 最新情報!Microsoft 365 Agents SDK 概要 / Microsoft Ignite 2024 latest news Microsoft 365 Agents SDK overview
karamem0
0
490
徹底解説!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
180
いまだから「検索」を語ろう! SharePoint FAST Search から Microsoft Search セマンティックインデックスまで / Let's talk about search now
karamem0
3
1.7k
徹底解説!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
Flaky Testへの現実解をGoのプロポーザルから考える | Go Conference 2025
upamune
1
390
FastAPIの魔法をgRPC/Connect RPCへ
monotaro
PRO
1
660
Goに育てられ開発者向けセキュリティ事業を立ち上げた僕が今向き合う、AI × セキュリティの最前線 / Go Conference 2025
flatt_security
0
320
VCC 2025 Write-up
bata_24
0
150
C# 14 / .NET 10 の新機能 (RC 1 時点)
nenonaninu
1
1.4k
Pure Goで体験するWasmの未来
askua
1
170
AI Agentと MCP Serverで実現する iOSアプリの 自動テスト作成の効率化
spiderplus_cb
0
410
Windows で省エネ
murachiakira
0
150
定期的な価値提供だけじゃない、スクラムが導くチームの共創化 / 20251004 Naoki Takahashi
shift_evolve
PRO
3
220
AIが書いたコードをAIが検証する!自律的なモバイルアプリ開発の実現
henteko
1
290
Tomorrow graphlib, Let us use everybody
hayaosuzuki
0
160
KAGのLT会 #8 - 東京リージョンでGAしたAmazon Q in QuickSightを使って、報告用の資料を作ってみた
0air
0
190
Featured
See All Featured
Learning to Love Humans: Emotional Interface Design
aarron
274
40k
Building a Modern Day E-commerce SEO Strategy
aleyda
43
7.7k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
610
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
33
2.4k
Designing for humans not robots
tammielis
254
25k
Writing Fast Ruby
sferik
629
62k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
114
20k
Designing for Performance
lara
610
69k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.2k
Building Adaptive Systems
keathley
43
2.8k
Facilitating Awesome Meetings
lara
56
6.6k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
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
ご清聴ありがとうございました