パフォーマンスに関するその他の考慮事項

4 つの重要なパフォーマンス原則に加えて、通常は外部要因によるパフォーマンス不良の原因として、他にもいくつかの可能性があります。

クライアント ブラウザー、デバイス、場所の違いを考慮する

キャンバス アプリは、さまざまなネットワーク条件下で、さまざまなデバイス、ブラウザー、場所から使用できます。 Power Apps クライアントを実行する場合、必ず最新の更新されたサポートされているブラウザーを使用してください。 大規模なデータを読み込む際に、iOS や Android などの異なるプラットフォームでは、アプリのパフォーマンスが異なる場合があります。 この変化は、プラットフォームごとにネットワーク要求の制限が異なるために発生します。 たとえば、同時に許可されるネットワーク リクエストの数は、プラットフォームによって異なります。 これらの違いは、大規模なデータセットのデータの読み込み時間に大きな影響を与える可能性があります。

オンプレミスのデータ ゲートウェイと環境の地理的な場所の違いを考慮する

ユーザーはグローバルにキャンバス アプリにアクセスできます。 ただし、ほとんどのユーザーの近くにデータ ソースを配置することをお勧めします。 たとえば、アプリがオンプレミス データ ゲートウェイにアクセスする場合、そのアプリを最も頻繁に利用するユーザーの近くにゲートウェイを配置するのが最善です。

サーバー側の一般的な問題

パフォーマンスの低下は、データの取得元サーバーの問題が原因である可能性があります。 これは、さまざまな理由で発生します。 監視ツールを使用して、データ呼び出しのタイミングを測定することで、特定の問題を評価できます。

データソースで考えられるボトルネック

データ ソースには、ボトルネックの原因として考えられるものがたくさんあります。 通常、データ ソース内のいくつかのテーブルが、多くのクエリのアクティビティの中心となります。 次の場合、クエリが遅くなる可能性があります。

  • データ ソースが見つからないか、インデックスが正しくありません。
  • クエリはサーバー上の極めて大量のデータを結合しています。
  • クエリには、StartsWith のようなインデックスを使用する代わりに、たとえば In 演算子を使用するテーブル SCAN が必要です。
  • データ ソースをホストしているバックエンド マシンのリソースが不足している。
  • バックエンド SQL インスタンスに、ブロッキング、デッドロック、またはリソース競合がある。
  • オンプレミス データ ゲートウェイが健全でない。
  • オンプレミス データ ゲートウェイはスケールアウトすることをお勧めします。

これらの問題が発生した場合、アプリのパフォーマンス低下を避けるため、バック エンド データ ソースを調整してください。

特定のデータ ソース

Azure SQL Database

ビジネス要件に適した階層を選択することが重要です。 詳細については、Azure SQL Database のドキュメントを参照してください。 下位ティアにはいくつかの制限や制約があります。 パフォーマンスの観点から、CPU、I/O スループット、待機時間は重要です。 そのため、定期的に SQL データベースのパフォーマンスを確認し、リソース使用量がしきい値を超えていないかどうかを確認することをお勧めします。 たとえば、オンプレミスの SQL Server は通常、CPU 使用率のしきい値を約 75% に設定します。

SharePoint

SharePoint コネクタを使用すると、SharePoint リストのデータを使用してアプリを作成できます。 ここでは、SharePoint の一般的なパフォーマンスの問題と解決策をいくつか示します。

動的なルックアップ列を多用しない: SharePoint は、ユーザー、グループ、計算などの動的なルックアップを含む、さまざまなデータ型をサポートしています。 リストに定義されている動的な列が多すぎる場合は、キャンバス アプリを実行しているクライアントにデータを返す前に、SharePoint 内でこれらの動的な列を操作するのに時間がかかります。 これを回避するには、SharePoint の動的な検索列を過度に使用しないでください。 たとえば、静的な列を使って、メールのエイリアスや人の名前などを管理します。

画像の列と添付ファイルを慎重に使用する: 画像のサイズや添付ファイルのサイズによっては、クライアントが取得する際のレスポンスが低下する場合があります。 リストを確認して、必要な列のみが定義されていることを確認してください。 リスト内の列の数は、データ要求のパフォーマンスに影響します。 これは、一致したレコード、または定義されたデータ行の制限までのレコードは、アプリがそれらの列をすべて使用していない場合であっても、リストに定義されたすべての列を含む状態で取得され、クライアントに送信されるためです。

大規模なリストの分割を考慮する: 数十万のレコードを含む大規模なリストがある場合は、リストをパーティション分割するか、カテゴリや日付と時刻などのパラメーターに基づいて複数のリストに分割することを検討してください。 たとえば、データを年単位や月単位でさまざまなリストに保存できます。 このような場合、ユーザーが時間帯を選択して、その範囲内のデータを取得できるよう設計することができます。

Dataverse

Microsoft Dataverse をデータ ソースとして使用する場合、データ要求は、Azure API Management を経由せずに、環境インスタンスに直接送信されます。 他のデータ ソースよりも高速になる傾向があります。 詳細については、Microsoft Dataverse への接続時のデータ コール フローを参照してください。

カスタム テーブル構成を確認する: Dataverse でカスタム テーブルが使用される場合、キャンバス アプリでレコードを表示するには、追加のセキュリティ設定が必要になる場合があります。 詳細については、Dataverse のセキュリティ概要、環境内のリソースに対するユーザー セキュリティの設定、セキュリティ ロールと権限を参照してください。

Excel

Excel コネクタにより、キャンバス アプリは Excel ファイル内のテーブルに接続できます。 ただし、このコネクタには他のデータ ソースと比べて制限があります。 たとえば、委任可能な関数が限られているため、キャンバス アプリがテーブルからデータを読み込める量を、アプリで構成された データ行の制限 までに制限します。これは既定では 500 で、10,000 まで増やすことができます。 設定された上限を超えて読み込むには、別のデータ テーブル内のデータを他のデータ ソースのようにパーティション分割します。 委任の詳細については、「委任の 概要」を参照してください。

新しい Excel コネクタを使用する: 新しい Excel コネクタ - Excel Business Onlineを必ず使用してください。 これにより、マルチユーザー アクセスが可能になり、競合の問題がより適切に処理されます。

Excel の大規模なデータ リストから必要な列だけを使用する: 多数のデータ テーブルを含む Excel ファイルや、複数の列に膨大な量のデータを含むデータ テーブルがある Excel ファイルでは、アプリの動作が遅くなる場合があります。 この問題の影響を受けないようにするには、Excel ファイルのデータ テーブルに必要な列だけを定義してください。

データベースとしての Excel の制限に注意してください。 Excel はリレーショナル データベース システムではありません: アプリからの変更は、ユーザーが Excel ファイルのデータを直接変更するのと同じ方法で Excel が管理します。 アプリの読み込み数は多いが、更新操作が少ない場合は、高いパフォーマンスを発揮する可能性があります。 ただし、アプリが大量のトランザクションを必要とする場合、アプリのパフォーマンスに悪影響を与える可能性があります。 トランザクション数に特定のしきい値はありません。 また、操作されるデータによっても異なります。 また、ネットワークのオーバーヘッドやユーザーのデバイスなど、その他のいくつかの側面もアプリのパフォーマンスに影響を与えます。

地理的な場所の違いを確認する: データの地理的な場所と顧客の所在地までの距離がパフォーマンスの問題になる可能性があります。 この問題は、モバイル クライアントの帯域幅が制限されている場合に大きくなる場合があります。

Preload appを有効にしてパフォーマンスを向上させる

オプションで、アプリを事前に読み込み、パフォーマンスを向上させることができます。

  1. Power Apps にサインインします。

  2. 左側のナビゲーション ウィンドウで、アプリ を選択します。

  3. アプリを選択し、コマンドバーで 設定 を選択します。

  4. アプリ設定 ペインで、アプリをプリロードしてパフォーマンスを向上をはいに切り替えます。 その後、アプリがプリロードされます。

  5. Teams に埋め込まれているアプリの変更を有効にするには、Teams からアプリを削除して、再度 Teams に追加します。

    注

    これにより、コンパイルされたアプリ資産は認証されていないエンドポイントからアクセスできるようになり、認証前に読み込むことができるようになります。 ただし、ユーザーは、認証と承認が完了した後でのみ、アプリを使用してコネクタ経由でデータにアクセスできます。 この動作により、アプリがデータソースから取得したデータを、認証されていないユーザーが利用できないようになります。 コンパイルされたアプリ資産には、アプリコントロール (PCF コントロールなど) で作成されたテキスト、メディア資産 (画像など)、アプリ名、アプリが存在する環境 URL などを含む JavaScript ファイルの集合が含まれます。

    一般的に、アプリは接続を介してデータ ソースからメディアと情報を取得するべきです。 接続からではなく、メディアと情報をアプリに追加する必要があり、機密性が高いと見なされる場合は、この設定を無効にすることをお勧めします。 この設定を無効にすると、ユーザーがアプリにアクセスするまでの待ち時間が長くなることに注意してください。