次の方法で共有


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

Direct Lake モードの Power BI セマンティック モデルは、DirectQuery モードにフォールバックする必要がない限り、OneLake から直接 Delta テーブル 読み取ります。 一般的なフォールバックの理由としては、DAX クエリの処理に必要な列の読み込みを妨げる可能性があるメモリ負荷が挙げられます。また、データ ソースの特定の機能では、Warehouse や Lakehouse の SQL ビューなど、Direct Lake モードがサポートされていない場合があります。 一般に、Direct Lake モードは、DirectQuery モードへのフォールバックが必要でない限り、最適な DAX クエリ パフォーマンスを提供します。 DirectQuery モードへのフォールバックは DAX クエリのパフォーマンスに影響を与える可能性があるため、Direct Lake セマンティック モデルのクエリ処理を分析して、フォールバックが発生したかどうかを特定し、その頻度を特定することが重要です。

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

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

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

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

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

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

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

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

    Performance Analyzer で記録を開始するコマンドのスクリーンショット。

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

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

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

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 Profiler の [サーバーへの接続] ダイアログのスクリーンショット。

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

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

  5. トレースプロパティ >イベントの選択で、「すべてのイベントを表示」チェックボックス をオンにします。

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

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

    出来事 説明
    DirectQuery_Begin
    DirectQuery_End
    DirectQuery Begin/End イベントがトレースに表示される場合、セマンティック モデルが DirectQuery モードに戻っている可能性があります。 ただし、エンジンは常に DirectQuery モードを使用してクエリ以外の処理に関連するチェックを行うため、EngineEdition クエリと場合によっては、Object-Level セキュリティ (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 のクエリ処理イベントのスクリーンショット。