この記事では、アプリケーション内のレポート、ダッシュボード、タイルのレンダリングを高速化するための推奨事項を示します。
注
読み込み時間は、主に、ビジュアル、データのサイズ、クエリとメジャーの複雑さを含む、レポートとデータ自体に関連する要素に依存することに注意してください。 詳細については、 Power BI 最適化ガイドを参照してください。
ツールと SDK パッケージを更新する
ツールとSDKパッケージを最新の状態に保ちましょう。
- 最新バージョンの Power BI Desktop を使用します。
- 最新バージョンの Power BI クライアント SDK をインストールします。 新しい拡張機能は継続的にリリースされるため、随時フォローアップしてください。
- Tabular Editorの最新バージョンを使用します。
埋め込みを初期化する
プリロード
エンド ユーザーのパフォーマンスを向上させるには、 powerbi.preload() を使用します。 このメソッド powerbi.preload() 、JavaScript、css ファイル、およびその他の 項目をダウンロードします。これは後でレポートを埋め込むために使用されます。
レポートをすぐに埋め込まない場合は、 powerbi.preload() を呼び出します。 たとえば、埋め込まれた Power BI コンテンツがホーム ページに表示されない場合は、 powerbi.preload() を使用して、コンテンツの埋め込みに使用される項目をダウンロードしてキャッシュします。
iFrame の初期設定
注
iFrame をブートストラップするには、Power BI クライアント SDK バージョン 2.9 が必要です。
powerbi.bootstrap(element, config) を使用すると、必要なすべてのパラメーターを使用できるようになる前に埋め込みを開始できます。 ブートストラップ API は、iFrame を準備して初期化します。
ブートストラップ API を使用する場合でも、同じ HTML 要素で powerbi.embed(element, config) を呼び出す必要があります。
たとえば、この機能のユース ケースの 1 つは、埋め込み用の iFrame ブートストラップとバックエンド呼び出しを並列で実行することです。
ヒント
可能な場合は ブートストラップ API を使用して、エンド ユーザーに表示される前に iFrame を生成します。
レポートやその他の Power BI 項目を埋め込む場合は、埋め込みコンテナーが DOM の一部であり、表示 CSS 属性が none に設定されていないことを確認してください。これは予期しない動作を引き起こす可能性があるためです。 埋め込みコンテナーを非表示にする場合は、visibility CSS 属性の使用を検討してください。
埋め込みパラメーター
powerbi.embed(element, config) メソッドは、要素と構成パラメーターを受け取ります。 config パラメーターには、パフォーマンスに影響を与えるフィールドが含まれています。
埋め込み URL
埋め込み URL は自分で生成しないでください。 代わりに、 レポートの取得、 ダッシュボードの取得、または タイルの取得 API を呼び出して、埋め込み URL を取得してください。 URL の config パラメーターは、パフォーマンスの向上に使用されます。
Permissions
レポートを編集モードで埋め込む予定がない場合は、[ 表示 ] 権限を指定します。 この方法では、編集モードでのみ使用されるコンポーネントの初期化に時間はかかりません。
フィルター、ブックマーク、スライサー
通常、レポートビジュアルはキャッシュされたデータと共に保存されます。 レポートでは、クエリの実行中にキャッシュされたデータが表示されます。 フィルター、ブックマーク、またはスライサーが指定されている場合、キャッシュされたデータは使用されず、ビジュアルはビジュアル クエリが終了した後にのみレンダリングされます。
同じフィルター、ブックマーク、スライサーを使用してレポートを埋め込む場合は、既に適用されているフィルター、ブックマーク、スライサーを使用してレポートを保存します。 この方法でレポートを保存すると、フィルター、ブックマーク、スライサーを含むキャッシュされたデータを使用して表示されるため、パフォーマンスが向上します。
レポート間の切り替え
複数のレポートを同じ領域に埋め込む場合は、レポートごとに新しい iFrame を 生成しないでください。 代わりに、同じ iFrame に新しいレポートを埋め込んで、前のレポートを上書きします。 新しいレポートを埋め込むには、別の構成で powerbi.embed(element, config) を使用します。
注
顧客向けの埋め込みを使用してレポートを埋め込む ("アプリ所有データ" シナリオとも呼ばれます) には、すべてのレポートとセマンティック モデルに対するアクセス許可を持つ埋め込みトークンを使用する必要があります。 詳細については、 トークン生成 API を参照してください。
複数のビジュアル
同じレポートから複数のビジュアルを埋め込む場合は、各ビジュアルに新しい iFrame を 生成しないでください。 1 つの iFrame を使用して、指定したビジュアルでレポートを表示します。
複数のビジュアルを 1 つの iFrame に埋め込む場合は、次の点を考慮してください。
Power BI では、iFrame を使用してレポートを埋め込みます。 ビジュアル間にコンテンツを追加したい場合があります (たとえば、レポートに含まれていないテキストやグラフィックスなど)。 その場合は、異なるビジュアルをレンダリングするために別の iFrame が必要になる場合があります。 パフォーマンスを最大限に高めるには、可能な限り少ない iFrame を使用するようにビジュアルを配置してみてください。 iFrame の数を減らすには、 カスタム レイアウト機能の使用を検討してください。
異なるレポートまたは異なるセマンティック モデルのビジュアルがある場合は、セマンティック モデルを結合し、同じ iFrame にすべてのビジュアルを含めることができるように新しいレポートを作成することを検討してください。
もう 1 つの方法は、連続しない領域や複数のセマンティック モデルのデータがある場合は、 ダッシュボード を作成してビジュアルをピン留めすることです。 これにより、次のことができます。
- 個々の タイル を連続しない iFrame に埋め込みます。 ダッシュボード タイルはレポートよりも軽く、読み込みが速くなります。
- ダッシュボード全体を 1 つの iFrame に埋め込みます。 これにより、新しいレポートを作成することなく、異なるレポートやセマンティック モデルのビジュアルを 1 つの iFrame に含めることができます。
ただし、ダッシュボード タイルは対話型ではなく、ビジュアルと同じ頻度で 更新 されない点に注意してください。
クエリ キャッシュ
Power BI Premium 容量または Power BI Embedded 容量を持つ組織は、クエリ キャッシュを利用して、セマンティック モデルに関連付けられているレポートを高速化できます。
Power BI でのクエリ キャッシュの詳細について説明します。
パフォーマンスを測定する
パフォーマンス イベント
埋め込みパフォーマンスを測定するには、次の 2 つのイベントを使用します。
- 読み込まれたイベント: レポートが初期化されるまでの時間 (読み込みが完了すると Power BI ロゴが消えます)。
- レンダリング イベント: 実際のデータを使用してレポートが完全にレンダリングされるまでの時間。 レンダリングされたイベントは、レポートが再レンダリングされるたびに発生します (フィルターを適用した後など)。 レポートを測定するには、最初に発生したイベントに対して計算を行ってください。
キャッシュされたデータは使用可能な場合にレンダリングされますが、他のイベントは生成されません。
イベント処理の詳細を確認します。
パフォーマンス アナライザー
レポート要素のパフォーマンスを調べるには、Power BI Desktop で Performance Analyzer を使用できます。 パフォーマンス アナライザーを使用すると、各レポート要素のパフォーマンスを測定するログを表示および記録できます。
注
埋め込みレポートのパフォーマンスと powerbi.com のパフォーマンスを比較することを忘れないでください。 これは、パフォーマンスの問題の原因を理解するのに役立つ場合があります