分析情報を理解する (プレビュー)
[このトピックはプレリリース ドキュメントであり、変更されることがあります。]
パフォーマンス分析情報は、分析情報を次のカテゴリに分類します。
- パフォーマンス全体
- クライアント環境
- 使用パターン
- ページ パフォーマンス
- カスタマイズ
- 構成
- ネットワーク アプリのパフォーマンスは様々な要因で影響を受けるため、パフォーマンスの分析情報ではエリアを分類して、パフォーマンスのオーバーヘッドがどの程度発生するかを確認します。
パフォーマンス全体
この分析情報は、アプリの全体的なパフォーマンスを分析情報 ID: Perf.Summary.Overview の下にエグゼクティブ サマリーとして要約します。
この分析情報では、重大度に基づいてアプリの全体的なパフォーマンスを確認できます。
- クリティカル: パフォーマンスの低下を示します。
- 警告: パフォーマンスを向上できる可能性があることを示します。
- 情報: 良好なパフォーマンスを示します。
改善方法
アプリを最適化する際には、クライアント、ネットワーク、カスタマイズの各カテゴリーに加え、プラグイン、savedQeury、設定などの詳細な分析情報を見ることができます。 それらの分析情報を確認することで、いくつかの実用的な項目を導き出すことができます。
クライアント環境
ユーザーが端末上で Power Apps アプリを体験する際、ブラウザの種類、ブラウザのバージョン、ハードウェアの仕様など、いくつかの要因がパフォーマンスに影響する可能性があります。 このセクションでは、クライアントの環境を確認する分析情報を確認することができます。
ブラウザーの種類
分析情報 ID: Perf.Environment.Client.Browser.Type
モチベーション
Web ブラウザの種類によっては、アプリのパフォーマンスに影響を与える可能性があります。 サポートされていないブラウザや最新ではないブラウザを使用すると、パフォーマンスが低下する可能性があります。 この分析情報では、さまざまなブラウザ、特に推奨されていないブラウザのパフォーマンスへの影響を示します。 例えば、Power Apps では Internet Explorer のサポートは非推奨になりました。
改善方法
Internet Explorer などの古いブラウザを使っているユーザーがいる場合は、クロム ベースの最新ブラウザに切り替えてください。 ユーザーは、Microsoft Edge や Google Chrome などの最新のブラウザを実行することをお勧めします。
注意
NPAPI を利用したレガシー アプリケーションの中には、Internet Explorer でしか動作しないものがあります。
ブラウザーのバージョン
分析情報 ID: Perf.Environment.Client.Browser.Version
モチベーション
この分析情報は、古いバージョンのブラウザーからアプリを使用しているユーザー数を確認します。 Internet Explorer のような推奨されていないブラウザではなく、最新のブラウザーを使用している場合でも、古いバージョンのブラウザーはパフォーマンスが低下します。
改善方法
ユーザーは、、定期的にブラウザを最新版に更新する必要があります。 企業の顧客は、グループ ポリシーを適用することで、特定のバージョンを使用することができます。 Unified Service Desk (USD) もコンピューターの既定のブラウザー設定を使用するため、既定のブラウザーの種類とバージョンを確認する必要もあります。
最小のシステム要件
分析情報 ID: Perf.Environment.Device.MimimumRequirements
モチベーション
この分析情報は、ユーザーの環境が最小システム要件を満たしているかどうかを確認します。 web アプリケーションの要件を確認して、アプリケーションの種類に応じた最小のシステム要件を確認することができます。
一般的に、レンダリング、スクリプト、コンテンツのダウンロードなどの活動は、クライアント側で行われます。 このような活動には、最小システム要件を満たすことが必要です。
改善方法
ユーザーは、Power Apps の最小システム要件を満たすか、それを上回る性能ののハードウェアを使用する必要があります。
HTTP プロトコル
分析情報 ID: Perf.Environment.Client.Browser.HttpProtocol
モチベーション
Power Apps プラットフォームは HTTP/2 に対応しています。 ただし、Power Apps への XMLHttpRequest(XHR) リクエストに HTTP/1.1 プロトコルを使用している場合は、HTTP/1.1 プロトコルでのリクエストが同時に制限されるため、パフォーマンスが低下する可能性があります。
改善方法
この分析情報により、HTTP/1.1 プロトコルを使用しているユーザーが判明した場合は、そのユーザーのクライアントが HTTP/2 プロトコルに対応することを強く推奨します。
VPN ネットワーク、プロキシサーバー、デバイスのインターネットオプション設定など、いくつかの構成とネットワーク インフラ ストラクチャが HTTP/2 プロトコルをブロックする可能性があります。
どのようなプロトコルが使われているかは、ブラウザに付属の開発ツールで確認することができます。 下の図では、HTTP/2 でネットワークの呼び出しが発生しています。
ネットワーク プロトコルのトレースが HTTP/1.1 を示している場合、以下の原因が考えられます:
- インターネット設定: コントロールパネルの Windows インターネット オプションの詳細タブの HTTP2 を使用すると TLS 1.2 を使用する オプションが有効になっていません。
- VPN とプロキシ: Windows インターネット オプションでは、HTTP2 と TLS1.2 を使用するように設定されていますが、VPN やプロキシが最近のプロトコルをサポートしていない場合、ブラウザがフォールバックする場合があります。
使用パターン
このカテゴリは、ページの読み込みの種類を分析します。 ウォーム ページロードでは、キャッシュや既存の DOM オブジェクトを利用してページをレンダリングし、コールド ページの読み込みでは、必要に応じてリソースをダウンロードしてページを最新の状態ににレンダリングします。 ユーザーはページ読み込みの種類を区別しませんが、この洞察情報では、クライアント上で発生するページ読み込みの種類に応じて分析し、推奨事項を提供します。
ページ読みの種類
分析情報 ID: Perf.Performance.PageLoadType
モチベーション
ウォーム ページの読み込みは、コールド ページ読み込みに比べて、必要なリソースがローカルキャッシュから読み込まれるため、高速です。
注意
ユーザーがブラウザの新規タブや新しいタブからフォームを開いた場合、コールドページ読み込みとみなされます。 ユーザーがブラウザのアクティブ タブ内でアプリ内の他のフォームを開いた場合、それはウォーム ページ読み込みとみなされます。
改善方法
ページの読み込みを高速化するには、新しいタブやブラウザのウィンドウを開くのを最小限にします。 新しいタブやブラウザのウィンドウを開くのではなく、1 つのタブの中で活動するようにしてください。 また、ブラウザを InPrivate モードまたは、シークレットモードで実行しないことをお勧めします。
ページ パフォーマンス
ファースト パーティのモデル駆動型アプリの多くは、ページ タイプとしては、ダッシュボード、ビュー (EntityList)、フォームで構成されています。 既定では、ユーザーはダッシュボードを読み込みますが、アプリの開発者と管理者はこれを変更できます。 ダッシュボードに多くのグラフやタイルが含まれている場合、ダッシュボードの読み込みが遅くなる可能性があります。 同様に、EntityList やフォームがカスタマイズされて多くのカラムが追加され、多くのレコードが表示されるようになると、ページの読み込みが遅くなる原因となります。 ページ読み込みのパフォーマンスにはさまざまな根本原因があるため、ページやテーブルごとのパフォーマンスをチェックすることは有益です。
このセクションでは、ページのパフォーマンスに関連するいくつかの分析情報を見ることができます。
ダッシュボードの遅延
分析情報 ID: Perf.ModelDriven.Page.Dashboard.SlowSQLQuery
モチベーション
SQL クエリが遅かったり、ダッシュボードでチャートやタイルを多用すると、ダッシュボードのパフォーマンスが低下します。 この分析情報では、SQL クエリの遅延の影響を受けるダッシュボードを示しています。 この分析情報が記録されると、詳細ペインには、分析情報に含まれる各ダッシュボードのダッシュボード ID が表示されます。
改善方法
ダッシュボード ID を使ってダッシュボードの名前を調べる方法を紹介します。 続いて、再設計を検討するダッシュボードを決定できます。
https://contoso.crm.dynamics.com などのモデル駆動型アプリにアクセスします。
次の例の URL (https://contoso.dynamics.com/api/data/v9.1/systemforms[DashboardId]/name) を変更し、api / data / v9.1 / systemforms([DashboardId])/name をアプリの URL 追加します。
以下のような OData リクエストが送信されます。 エージェント ダッシュボード以下に表示されているのは、与えられたダッシュボード ID のユーザー フレンドリーな名前です。
{"@odata.context":https://contoso.crm.dynamics.com/api/data/v9.1/$metadata#systemforms(2ff4a8cf-378b-e811-a964-000d3a30dc0a)/name,"value":"Contoso - Agent Dashboard"}
外線通話が遅い同期プラグイン
分析情報ID: Perf.Sandbox.Performance.Plug-ins.ExternalCall
プラグインやカスタム ワークフローのアクティビティは、HTTP や HTTPS のプロトコルで Web サービス (外部エンドポイント)にアクセスできます。 これらの外部サービスのパフォーマンスが遅い場合、プラグイン自体がタイムアウトしたり、動作が遅くなったりします。
モチベーション
この分析情報では、外部エンドポイントのパフォーマンスを確認し、遅い外部コールの影響を受けるアプリのプラグインを検出します。
改善方法
詳細については、外部 Web サービスにアクセスする (Microsoft Dataverse) - Power Apps | Microsoft Docs を参照してください。
カスタマイズ
開発者は、モデル駆動型アプリで以下のような様々なカスタマイズを行うことができます:
- カスタム JavaScript 関数を取り込んで、クライアントでイベントを有効にします。
- カスタム ロジックの実行に使用されるプラグインをビルドしてデプロイします。
- カスタム テーブルとデータを定義して保存します。
- フォームやビューなど、カスタム テーブルと標準テーブルの両方に依存するコンポーネントを定義することができます。
パフォーマンスの観点から、これらのカスタマイズがベストプラクティスや推奨事項に従っていない状況では、アプリの応答が悪くなる可能性があります。 開発者は、開発段階でソリューション チェッカーを実行して、カスタマイズ内容を検証することができます。
また、以下の分析情報では、カスタマイズしたランタイムのユーザーデータから分析結果を得ることができます。
XML HTTP Request (XHR) 呼び出しタイプ
分析情報 ID: Perf.ModelDriven.Customization.Client.Script.XMLHttpRequestType
XMLHttpRequest の同期呼び出しは、特にネットワークが遅い場合や、複数の呼び出しが必要な場合に、エンドユーザーに深刻なパフォーマンス問題を引き起こす可能性があります。 ブラウザがフリーズし、クリック、スクロール、ページの操作ができずに、エンドユーザーからの苦情が発生してしまいます。
この分析情報は、同期メソッドがあるかどうかを明らかにし、関連するパフォーマンスを示します。
モチベーション
XHR の同期呼び出しは、ブラウザが同期呼び出しの完了を待たなければならないため、ブラウザがより多くの作業を行うことを妨げ、ページの表示速度が低下したり、完全にフリーズしたりする場合ばあります。
改善方法
分析情報のデータ セクションで紹介されている上位のメソッドを、同期型から非同期型に変更することをお勧めします。 詳細情報: 同期リクエストから移行することで、モデル駆動型アプリをターボチャージする
廃止になったコントロール
分析情報 ID: Perf.Customization.Controls.Deprecated
Flip Switch、Calendar Control (V1)、Linear Slider、Radial Knob、Arc Knob、LinearGauge などのモデル駆動型アプリ用の古いコントロール。Web サイトプレビューコントロールとともに、MultiSelectPicklistControl (V1)、フリップラベルは非推奨になりました。 これらのコントロールの一部は、より最新のウェブやモバイルを意識した新しいコントロールに置き換えることができます。 詳細情報: 新しいモデル駆動型アプリのコントロール、古いコントロールの廃止
モチベーション
古いコントロールを使用すると、パフォーマンス、信頼性、アクセシビリティの問題が発生する可能性があります。 さらに、これらの非推奨コントロールの制限事項の一部は、新しいコントロールで解決されています。 たとえば、トグル コントロールとカレンダー コントロール (V2)は Microsoft Fluent UIを使用します。
改善方法
- フリップ ラベルとフリップ スイッチの代わりにトグル コントロールを使用します。
- Calendar Control (V1) の代わりに Calendar Control (V2) を使用します。
- 他の非推奨のコントロールを評価して、それらが既存のフォーム内でまだ有用であるかどうかを判断します。
非推奨のバージョンと新しいコントロールの間には、デザイン上の大きな変更がほとんどないことに注意してください。
非推奨のコントロールについての詳細は、モデル駆動型アプリで非推奨を制御するにアクセスしてください。
サンドボックスのパフォーマンス - 主要なプラグイン
分析情報ID: Perf.Sandbox.Performance.Plug-ins.Dominant
この分析情報は、主要なプラグイン、つまり最も使用されているプラグインを特定する際に役立ちます。 また、主に使用されているプラグインの中に、プラグインの実行時間が 100 ミリ秒を超えて、95 パーセンタイルで遅いものがあるかどうかも表示されます。 この分析情報では、最大 3 つの主要なプラグインが一覧表示されます。
モチベーション
低速で動作するプラグインは、パフォーマンスに影響を与えます。 これらのプラグインを調査する必要があります。
改善方法
パフォーマンスの遅いプラグインを調査します。プラグインとワークフロー開発に関するベストプラクティスを確認してください。
プラグインの動作が遅いことをさらに調査するために、開発環境やテスト環境でプラグインのトレースログの設定をすべてにして、どこで遅延が発生しているのかを確認することができます。 ただし、本番環境に移行する前に、必ず設定を無効にしてください。 詳細: トレースとログ
パフォーマンスの遅いプラグインを調査します。プラグインが遅い理由のいくつかをここで説明します:
- 関連する SQL クエリの実行が遅いため、プラグインの実行時間が長くなる。
- プラグインの単一責任原則に従い、重要な取引の境界を持つトランザクションは行わないでください。
- プラグインが外部呼び出しを行っている可能性がありますが、その際に時間がかかります。
- プラグインのロジックがマルチスレッド環境に最適化されていない。 コードを確認します。
プラグインの動作が遅いことをさらに調査するために、開発環境やテスト環境でプラグインのトレースログの設定をすべてにして、どこで遅延が発生しているのかを確認することができます。 ただし、本番環境に移行する前に、必ず設定を無効にしてください。 詳細: トレースとログ
先頭にワイルドカードを持つ保存されたクエリ
分析情報 ID: Perf.ModelDriven.Customization.SavedQuery.LeadingWildCard
先頭のワイルドカードとは、検索文字列の先頭にワイルドカード (%) を使用した like または like のことです。 不適切に記述された要求の例は次のとおりです:
<fetch version="1.0" output-format="xml-platform" mapping="logical">
<entity name="account">
<attribute name="accountid" />
<attribute name="accountnumber" />
<filter type="and">
<condition attribute="accountnumber" operator="like" value="%124" />
</filter>
</entity>
</fetch>
モチベーション
保存されたクエリの先頭のワイルドカード文字(%)により、クエリがタイムアウトしたり、実行が遅くなったりする可能性があります。 この分析情報は、先頭のワイルドカードを使用して保存が遅いクエリを示しています。
改善方法
先頭部にワイルドカードは使用しないでください。 検索キーでは、これらは SQL Server の 「contains」 に変換され、インデックス シークの利点は生かされませんが、スキャンは実行されます。 先頭のワイルドカードを使用する必要がある場合は、他の条件を含めて検索範囲を制限刷る必要があります。 なお、検索文字列の最後に末尾のワイルドカード (%) を使用できます。
構成
プラグイン トレース ログの設定
分析情報 ID: Perf.Sandbox.Configuration.PluginTraceSettings
開発者はプラグインのトレースログを介して、プラグインをデバッグできます。 Dataverse の管理者は、プラグインおよびカスタム ワークフローのアクティビティのトレースを オフ、例外、すべて のいずれかに設定できます。
モチベーション
プラグインのトレースログは、プラグインのデバッグや調整を行う際にのみ、すべてに設定します。 大量のトレースログは、SQL Server の I/O のオーバーヘッドを引き起こす可能性があります。 また、プラグインのトレースログを削除すると、SQL Server でブロックや待機が発生する可能性があります。
改善方法
本番環境では、この設定がすべてで、プラグインが生成するログの量が多い場合は、「例外」に変更することを検討してください。
設定を変更するには、設定 > 管理 > システム設定 > カスタマイズタブに移動します。詳細情報: ログとトレース
ネットワーク
ネットワーク パフォーマンス
ネットワークの遅延とスループットは、エンドユーザーのエクスペリエンスに影響を与える重要な要素です。 レイテンシーが高く、スループットが低いユーザーは、統一インターフェイスへのアクセス時にパフォーマンスが低下する可能性が高くなります。 この分析情報では、パフォーマンスの低いネットワークを利用しているユーザーの数と、そのパフォーマンスがどのようなものであったかを知ることができます。
モチベーション
ネットワークの構成が不十分だと、アプリのパフォーマンスに影響します。
改善方法
ネットワーク上に多くのユーザーがいて、パフォーマンスが低い場合は、よりパフォーマンスの高いネットワークに切り替えることをお勧めします。