Share via


Direct Lake セマンティック モデルのクエリ処理を分析する

Direct Lake モードの Power BI セマンティック モデルでは、DirectQuery モードにフォールバックする必要がない限り、OneLake から Delta テーブルを直接読み取ります。 フォールバックが発生する一般的な理由としては、DAX クエリの処理に必須である列の読み込みを妨げる可能性のあるメモリ不足や、データ ソースの特定の機能 (ウェアハウスとレイクハウスの SQL ビューなど) で Direct Lake モードがサポートされていない可能性のあることが挙げられます。 一般に、DirectQuery モードにフォールバックする必要がない限り、Direct Lake モードを使用すると最適な DAX クエリ パフォーマンスが得られます。 DirectQuery モードへのフォールバックが発生すると DAX クエリのパフォーマンスに影響を与える可能性があるため、Direct Lake セマンティック モデルのクエリ処理を分析して、フォールバックの発生の有無と頻度を特定することが重要となります。

パフォーマンス アナライザーを使用して分析する

パフォーマンス アナライザーを使用すると、ビジュアルがデータ ソースに対してクエリを実行する方法と、結果のレンダリングにかかる時間をすばやく簡単に確認できます。

  1. Power BI Desktop を起動します。 スタートアップ画面で、[新規]>[レポート] を選択します。

  2. リボンで [データの取得] を選択し、[Power BI セマンティック モデル] を選択します。

  3. [One Lake データ ハブ] ページで、接続する Direct Lake セマンティック モデルを選択したら、[接続] を選択します。

  4. レポート キャンバスにカード ビジュアルを配置し、基本的なレポートを作成するデータ列を選択して、[表示] メニューで [パフォーマンス アナライザー] を選択します。

    パフォーマンス アナライザー ペインのスクリーンショット。

  5. [パフォーマンス アナライザー] ペインで、[記録の開始] を選択します。

    パフォーマンス アナライザーで記録を開始するコマンドのスクリーンショット。

  6. [パフォーマンス アナライザー] ペインで、[ビジュアルの更新] を選択して、カード ビジュアルを展開します。 カード ビジュアルでは DirectQuery 処理は発生しません。これは、セマンティック モデルが、ビジュアルの DAX クエリを Direct Lake モードで処理できたことを示します。

    セマンティック モデルが DirectQuery モードにフォールバックしてビジュアルの DAX クエリを処理する場合は、次の図に示すように、[DirectQuery] パフォーマンス メトリックが表示されます。

    DirectQuery のパフォーマンス メトリックのスクリーンショット。

SQL Server Profiler を使用して分析する

SQL Server Profiler は、クエリ イベントをトレースすることで、クエリのパフォーマンスに関する詳細を提供できます。 SQL Server Management Studio (SSMS) と共にインストールされます。 開始する前に、SSMS の最新バージョンがインストールされていることを確認してください。

  1. [Windows] メニューから SQL Server Profiler を起動します。

  2. SQL Server Profiler で、[ファイル]>[新しいトレース] の順に選択します。

  3. [サーバーへの接続]>[サーバーの種類] の順に移動し、[Analysis Services] を選択して、[サーバー名] にワークスペースの URL を入力し、認証方法を選択して、ワークスペースにサインインするユーザー名を入力します。

    SQL Server プロファイラーの [サーバーへの接続] ダイアログのスクリーンショット。

  4. オプションを選択します。 [データベースへの接続] で、セマンティック モデルの名前を入力し、[接続] を選択します。 Microsoft Entra ID にサインインします。

    [データベースへの接続] フィールドで指定されたデータベース名のスクリーンショット。

  5. [トレース プロパティ]>[イベントの選択] の順に移動し、[すべてのイベントを表示する] チェック ボックスをオンにします。

    [イベントの選択] - [すべてのイベントを表示する] チェックボックスのスクリーンショット。

  6. [クエリ処理] までスクロールし、次のイベントのチェック ボックスをオンにします。

    イベント 説明
    DirectQuery_Begin
    DirectQuery_End
    DirectQuery の開始/終了イベントがトレースに表示される場合、セマンティック モデルが DirectQuery モードに戻っている可能性があります。 ただし、エンジンは常にこれらの非クエリ処理関連のチェックに DirectQuery モードを使用するため、EngineEdition クエリに加え、場合によってはオブジェクト レベル セキュリティ (OLS) を確認するクエリが存在してもフォールバックを表さないことに注意してください。
    VertiPaq_SE_Query_Begin
    VertiPaq_SE_Query_Cache_Match
    VertiPaq_SE_Query_Cache_Miss
    VertiPaq_SE_Query_End
    Direct Lake モードの VertiPaq ストレージ エンジン (SE) イベントは、インポート モードの場合と同じです。

    次のようになります。

    SQL Server Profiler で選択されたクエリ処理イベントを示すスクリーンショット。

  7. [実行] を選択します。 Power BI Desktop で、新しいレポートを作成するか、既存のレポートを操作してクエリ イベントを生成します。 クエリ処理イベントの SQL Server Profiler トレース レポートを確認します。

    次の画像は、DAX クエリのクエリ処理イベントの例を示しています。 このトレースでは、VertiPaq ストレージ エンジン (SE) イベントは、クエリが Direct Lake モードで処理されたことを示します。 SQL Server Profiler でクエリ処理イベントのスクリーンショット。