SharePoint の誤解を暴く: Power App が遅い理由
By Mirko Peters ·
ブログへようこそ。Microsoft Power Platform でローコードの業務アプリケーションを作ったことがあるなら、バックエンドとして SharePoint リストから始めた可能性は高いでしょう。
Automatically translated with AI from the original post. Read the English original
ブログへようこそ。Microsoft Power Platform でローコードの業務アプリケーションを作ったことがあるなら、バックエンドとして SharePoint リストから始めた可能性は高いでしょう。SharePoint サイト内のボタンをクリックするだけで、数秒後には機能する Power App が画面に現れます。まさに魔法のようです。しかし、利用者が増えてデータが数千行を超え、上司からアプリの動作が重いと指摘されるようになると、その魔法はすぐに悪夢に変わります。
この投稿では、「SharePoint の嘘」と呼ぶものを暴いていきます。SharePoint リストは、エンタープライズ向けの堅牢なデータベースとしても使えるという、広く見られる誤解のことです。この設計判断がどのように深刻なパフォーマンス低下、隠れたコスト、委任の制限、ガバナンス上の問題につながるのかを検討します。さらに重要なのは、デジタルソリューションを将来にわたって維持するために、どのように、そしていつ SharePoint から Microsoft Dataverse へ移行すべきかを議論することです。このジレンマをより深く知りたい方は、関連するポッドキャストエピソード When to Move Power Apps from SharePoint to Dataverse もぜひご覧ください。
SharePoint に関する誤解
よくある思い込み
多くの組織は、SharePoint があれば簡単にアプリを作れるという錯覚に陥ります。SharePoint リストは表計算ソフトに似た見慣れたインターフェイスを備えているため、業務ユーザーやシチズン デベロッパーは、従来の SQL データベースと同じように無制限に拡張できると考えがちです。使いやすいインターフェイスのおかげで、チームメンバーは高度なコンピューター サイエンスの知識がなくても、カスタム列を素早く追加し、基本的なメタデータを管理し、ワークフローの自動化を構築できます。
| 利点 | 説明 |
|---|---|
| 使いやすいインターフェイス | SharePoint のデータを扱うための構造化された方法を提供し、データ管理を強化します。 |
| ワークフローの自動化 | Power Apps から SharePoint 上のアクションをトリガーできるようにし、業務プロセスを効率化します。 |
| ユーザー エクスペリエンスの向上 | データとアプリケーションへの単一のアクセス ポイントを提供し、生産性を高めて学習コストを下げます。 |
SharePoint の制限の実態
残念ながら、SharePoint の基盤アーキテクチャはドキュメントのコラボレーションとチーム内のコミュニケーション向けに設計されており、頻繁なトランザクション データの処理向けではありません。開発者が SharePoint をリレーショナル データベースのように扱おうとすると、厳格な技術的な上限に直面します。たとえば、Power Apps が SharePoint に対して行えるリクエストは、ユーザーごとに 1 分あたり最大 600 件までで、同時呼び出しもユーザーごとに 30 件に厳しく制限されています。これらの上限を超えると、スロットリング、アプリのクラッシュ、そして利用者の大きなストレスが発生します。
ユーザー エクスペリエンスの課題
開発時のストレス
SharePoint リストの上にアプリを構築していると、まるで自分のツールと戦っているように感じることがよくあります。開発者は、予期しない委任の警告、遅い Patch 関数、欠落したレコードへの対応に日々追われています。この期待と現実のギャップは、ローコード開発への信頼を損ないます。業務上の価値を生む機能を作る代わりに、開発者は単純なフォームがタイムアウトしないようにするための回避策の実装に、時間の 80 パーセントを費やしています。
エンドユーザーへの影響
開発者がバックエンドで苦労すると、そのしわ寄せはエンドユーザーに及びます。ギャラリー ビューの読み込みに 15 秒もかかるアプリは、スピードが求められる環境で迅速な回答を必要とする従業員からすぐに見捨てられてしまいます。読み込みの遅さ、不安定なフィルタリング、欠落したレコードは、ユーザーの信頼を損ないます。従業員が社内アプリを信用しなくなると、採用率は急落し、デジタル トランスフォーメーションの取り組みは停滞します。
SharePoint の隠れたコスト

ライセンスとサブスクリプションの費用
SharePoint は多くの標準的な Microsoft 365 ライセンス パッケージに含まれているため、一見すると「無料」に見えます。しかし、そこには隠れた費用があります。アプリの規模が拡大し、高度なセキュリティ、外部共有、コンプライアンス機能が必要になると、SharePoint の機能的な不足を補うために、上位のライセンス プランを購入したり、高額なサードパーティ製アドオンを導入したりする必要が生じることが多くあります。
- 基本プランの制限: 標準の Microsoft 365 プランでは、きめ細かなデータベースのセキュリティやパフォーマンス調整のオプションが不足していることが多く、アーキテクチャの見直しが必要になります。
- アドオン: データ同期の要件に対応するため、追加のゲートウェイやツールを購入する必要が生じることがよくあります。
保守とサポートのコスト
過負荷状態の SharePoint 環境を維持する管理負担は、決して軽く見てはいけません。IT 部門は、同期エラーのトラブルシューティング、ビューのしきい値の最適化、壊れたアプリ接続の修正に、高額な開発者の工数を割く必要があります。
- IT スタッフの時間: 高度なスキルを持つエンジニアが、戦略的なデジタルトランスフォーメーションに取り組む代わりに、リストのビューしきい値エラーのトラブルシューティングに貴重な時間を費やしています。
- 技術的負債: SharePoint のデータモデルに施された場当たり的な対処は時間とともに蓄積し、アプリポートフォリオを脆弱な技術的負債へと変えてしまいます。
Power Apps における委任の問題
データの委任の制限
Power Apps 開発で最も厄介な落とし穴の一つが、委任の概念です。既定では、Power Apps がサーバー側に委任できるデータクエリは 500 件までです(手動で最大 2,000 件まで拡張できます)。SharePoint リストに 10,000 件のアイテムがあるのに委任できない数式を書くと、Power Apps は最初の一部のレコードだけをローカルデバイスにダウンロードし、フィルター条件をローカルで実行しようとします。その結果、データの取得が不完全になり、レポートが歪み、アプリのロジックが正しく動作しなくなります。
ヒント: Power Apps Studio の委任に関する警告は必ず確認してください。この警告を無視すると、パフォーマンスの問題やアプリ内の不正確なデータにつながる可能性があります。
パフォーマンスのボトルネック
委任の失敗によって大量のデータをクライアント側で処理しようとすると、パフォーマンスは急激に低下します。複雑なフィルタリング、選択肢列をまたぐ並べ替え、大きなテーブルに対する反復関数の使用などの操作は、大きなネットワーク負荷を生み出し、ユーザーのブラウザやモバイルデバイスをフリーズさせてしまいます。
| パフォーマンスのボトルネック | 説明 |
|---|---|
| Collect / ClearCollect によるフィルタリング | 大量のデータセットに対して不適切に使用すると、クライアント側でのデータ取得が発生します。 |
| CountRows(一部のコネクタ) | データセットが委任の上限を超えると、ローカルで行を数えることになり、合計値が不正確になります。 |
| 大きなテーブルに対する ForAll | クライアント側での反復処理はパフォーマンスのボトルネックとなり、処理が途中までしか実行されない原因になります。 |
SharePoint のスケーラビリティの課題

データ量の制限
SharePoint リストには、悪名高いリスト ビューのしきい値(5,000 件)が設定されています。リストに項目をこれより多く保存すること自体は技術的に可能ですが、5,000 件を超えると、インデックス列以外を読み取るクエリは失敗するか、極端に遅くなります。在庫、サポートチケット、顧客対応を管理する業務アプリであれば、5,000 行に到達するのは数か月のうちに起こります。
| 説明 | 上限 |
|---|---|
| 操作できるアイテムの最大数 | 5,000 |
拡張に伴う課題
事業が拡大すると、データベースは 1 対多や多対多の関係などの複雑な関係に対応する必要があります。SharePoint では、負荷がかかると壊れてしまう複雑な複数参照列の回避策を使わない限り、リレーショナルな整合性をネイティブに維持できません。将来にわたって業務アプリを支えるには、最初から適切なデータアーキテクチャを選ぶことが不可欠です。
| 機能 | SharePoint | Dataverse |
|---|---|---|
| リストの最大項目数 | 3,000 万件 | 3,000 万件 |
| パフォーマンスの低下 | 10 万件を超えると発生 | 数百万件のレコードを効率的に処理 |
| 主な用途 | ドキュメント管理と単純なリスト | 構造化されたリレーショナルデータ |
| API 要求の上限 | 1 分あたり 600 要求 | 5 分あたり 6,000 要求 |
SharePoint のガバナンスの欠如
コンプライアンスとセキュリティのリスク
Power Apps に接続された SharePoint リスト内のデータを保護するのは、非常に難しいことで知られています。SharePoint のセキュリティはチームサイトやフォルダーの共有を前提に設計されているため、ユーザーにアプリへのアクセスを許可するには、多くの場合、リスト全体に対する読み取りまたは書き込みの基礎的なアクセス許可を与える必要があります。このように列レベルと行レベルのセキュリティが欠けているため、組織は深刻なデータ漏えいや、GDPR や HIPAA などの枠組みにおけるコンプライアンス違反のリスクにさらされます。
データに対する管理の欠如
集中的なデータガバナンスがなければ、部門をまたぐ複数の市民開発者がサイロ化されたリストを作成し、データを重複させ、食い違う「正しい情報」を生み出すことになります。IT セキュリティチームにとって、データの整合性を保つことは終わりのないモグラ叩きのようになってしまいます。
Dataverse への移行
Dataverse の利点
企業内のPower AppsをMicrosoft Dataverseに移行すると、この記事で取り上げた課題のほとんどが解決します。Dataverseは、Power Platform向けに最適化された、クラウド規模で動作する安全なリレーショナルデータベース基盤として、一から構築されています。ネイティブのロールベースのセキュリティ、自動バックアップ、高速なサーバー側のクエリ処理、そして数百万行规模まで無理なく拡張できる堅牢なリレーショナルデータ構造を備えています。
移行時の検討事項
SharePointからDataverseへの移行には、計画が必要です。既存のSharePointリストを棚卸しし、リレーションシップを整理したうえで、ルックアップ列をDataverseの適切なリレーショナルフィールドとして作り直し、Power Appsのデータソースを更新する必要があります。ただし、パフォーマンス、セキュリティ、保守性における長期的なメリットは、移行の労力を何倍も上回ります。
最後にまとめます。SharePointは万能だという思い込みは、組織のアプリケーションのパフォーマンスとデータの整合性を大きく損なう恐れがあります。SharePointはドキュメントのコラボレーションには優れていますが、Power Appsのための高性能なリレーショナルデータベースとして設計されたものではありません。委任の上限、パフォーマンスのボトルネック、セキュリティ上のギャップを理解することで、アーキテクチャを見直すかどうかについて、根拠を持って判断できます。
ローコード・ソリューションを次の段階へ進める準備ができているなら、真のリレーショナルな拡張性とエンタープライズ級のガバナンスを備えたDataverseのようなプラットフォームを採用する時期です。このテーマについて詳しく知りたい方は、ポッドキャストのエピソードWhen to Move Power Apps from SharePoint to Dataverseをぜひお聴きください。
よくある質問
Power AppsでSharePointを使う場合の主な制限は何ですか?
SharePointは大量のデータや複雑なクエリを扱うのが苦手です。この制限により、アプリのパフォーマンスが低下したり、データの取得が不完全になったりする場合があります。
DataverseはPower Appsのパフォーマンスをどのように向上させますか?
Dataverseは真のリレーショナルなデータ保存を提供し、より高速なクエリ処理と大量データの扱いの改善を可能にします。この構造により、アプリ全体のパフォーマンスが向上します。
Power Appsの委任警告とは何ですか?
委任警告は、クエリが必要なデータをすべて取得できない可能性があることを示します。この警告を無視すると、データの欠落やパフォーマンスの問題につながる恐れがあります。
Dataverseへの移行を検討すべき理由は何ですか?
Dataverseへ移行すると、拡張性、パフォーマンス、データガバナンスが向上します。複雑なデータリレーションシップをサポートするため、事業の成長に合わせて拡大する組織に適しています。
Dataverseへの移行をスムーズに進めるにはどうすればよいですか?
スムーズな移行のためには、現在のSharePoint環境を評価し、リレーションシップを整理したうえで、移行後のデータの正確性をテストしてください。早い段階から関係者を巻き込むことも重要です。
SharePointを使い続けることで生じる隠れたコストは何ですか?
隠れたコストには、予期しないライセンス料、保守費用、トレーニング費用などがあります。組織が成長しデータのニーズが変化するにつれて、これらのコストが積み重なっていく可能性があります。
Power Appsのユーザー エクスペリエンスはどのように改善できますか?
ユーザー エクスペリエンスを高めるには、アプリ設計で委任を優先し、効率的なクエリ手法を使い、問題に対処できるよう定期的にアプリのパフォーマンスを監視してください。
SharePointで実装すべきセキュリティ対策は何ですか?
ロールベースのアクセス制御を実装し、定期的にアクセス許可の見直しを行ってください。機密データを保護し、コンプライアンスを確保するために、データ損失防止(DLP)ポリシーを策定してください。