LuckyTemplates の DAX クエリ – 論理的および物理的なクエリ プラン

LuckyTemplates の DAX クエリ – 論理的および物理的なクエリ プラン

このチュートリアルでは、LuckyTemplates の 2 つの DAX クエリ プランについて説明します。

クエリ プランは、貴重なデータを生成する際の DAX のパフォーマンスに影響します。また、レポートをより説得力のあるものにするDAX コードの最適化にも役立ちます。

これらは、数式エンジンによって生成される 2 つのクエリ プランです。

  • 論理クエリプラン
  • 物理クエリプラン

すべての DAX クエリは、これら 2 つのイベントをトリガーします。

目次

LuckyTemplates の論理クエリ プラン

これは DAX クエリ フローです。この部分では、3 番目のステップである論理クエリ プラン ツリーの単純化に焦点を当てます。

LuckyTemplates の DAX クエリ – 論理的および物理的なクエリ プラン

このクエリは、DAX クエリに似ています。DAX クエリを実行すると、論理クエリ プランの実行内容とほぼ一致します。

説明のために、サンプル クエリを次に示します。

LuckyTemplates の DAX クエリ – 論理的および物理的なクエリ プラン

これを実行すると、29,138 という結果が得られます。

LuckyTemplates の DAX クエリ – 論理的および物理的なクエリ プラン

DAX Studio でクエリを実行し、[クエリ プラン イベント] タブをオンにすると、クエリ プランが表示されます。2 つのタイプのうち、論理クエリ プランが最初に表示されます。

LuckyTemplates の DAX クエリ – 論理的および物理的なクエリ プラン

インデントされた各行は、相互に構築されたサブタスクです。最初の行は、DAX の最終結果です。他の行は、FactSales の Quantity 列を合計してスキャンします。

コロンの前の最初の単語は演算子と呼ばれます。

LuckyTemplates の DAX クエリ – 論理的および物理的なクエリ プラン

コロンの後の単語は、演算子の種類と呼ばれます。

LuckyTemplates の DAX クエリ – 論理的および物理的なクエリ プラン

演算子の種類には次の 2 種類があります。

  • RelLogOp
  • スカログオプ

RelLogOp はテーブル出力です。DAX は VertiPaq を使用して列をスキャンし、テーブルを作成します。一方、ScaLogOpはスカラー出力です。これは集計された数値であることを意味します。クエリ プランの 2 番目と最後の行を見ると、FactSales の数量を合計して数量を取得していることがわかります。

論理クエリ プランは、FactSales テーブルからの数量の合計を含む Total Quantity という 1 行のテーブルを作成します。

クエリ プランは単純な DAX クエリを使用するため、デコードが容易です。DAX が複雑になるほど、デコードは難しくなります。

できるだけ多くの「_VertiPaq」演算子を確認するように努めることをお勧めします。これは、DAX コードの最適化に役立つすべての作業を単独で実行することを意味します。

LuckyTemplates の物理クエリ プラン

物理クエリ プランは、2 つのタイプのうち 2 番目に表示されます。これは、DAX クエリ フローの 4 番目のステップです。論理クエリ プランと同じツリー構造を持ちます。

論理クエリ プランが構築されると、実行されるために物理クエリ プランに送信されます。同じサンプル クエリを実行すると、同じ答えが得られます。

LuckyTemplates の DAX クエリ – 論理的および物理的なクエリ プラン

具体的には、DAX クエリ フローの 4 番目のステップは、物理クエリ プラン ツリーの構築です。

LuckyTemplates の DAX クエリ – 論理的および物理的なクエリ プラン

論理クエリ プランに似ているかもしれませんが、異なります。通常、物理的なクエリ プランをLuckyTemplatesの DAX クエリと一致させるのは困難ですが、これは単純なサンプル クエリであるため、プロセスに従うことができます。

物理クエリ プランの 3 つの演算子タイプは次のとおりです。

  • ルックアップPhyOp
  • InterPhyOp
  • スプールフィオプ

LookupPhyOp は、特定の行コンテキストでスカラー値を提供します。InterPhyOpは、テーブルのデータを行ごとに繰り返します。SpoolPhyOp はVertiPaq クエリから結果を受け取り、それを具体化してメモリに保存します。

クエリ プランの 4 行目には、クエリがストレージ エンジンに送信されることを意味する ProjectionSpool 演算子が表示されます。レコードの数に応じてクエリの結果を繰り返します。

クエリ プランに表示されるレコードの量は、回答を完了するために必要な最小限のレコードである必要があります。この単純なクエリの結果には 1 行しかないため、クエリ プランでは 1 つのレコードが返されます。

ProjectionSpool の SpoolPhyOp に対応するRecordsには、ストレージ エンジンから数式エンジンに送信されたデータの量が表示されます。したがって、レコードが多いほど、クエリは遅くなります。

DAX のパフォーマンスが遅い場合は、[レコード] 列から探し始めるとよいでしょう。



LuckyTemplates での DAX 計算:この新しいコースで DAX 関数を最適化するベスト プラクティス
LuckyTemplates DAX スキルを強化するための 5 つの戦略

結論

DAX クエリを実行すると、答えが得られるまでに一連の手順が実行されます。これらのステップのうちの 2 つは、論理クエリ プランと物理クエリ プランです。彼らは、計算に使用される式の段階的なプロセスと実行を担当します。

これらのクエリ プランについてさらに詳しく知りたい場合は、このチュートリアルを読んでから、DAX Studio を使用して実際に確認してみてください。


Python における Self とは: 実際の例

Python における Self とは: 実際の例

Python における Self とは: 実際の例

RでRDSファイルを保存してロードする方法

RでRDSファイルを保存してロードする方法

R の .rds ファイルからオブジェクトを保存および読み込む方法を学習します。このブログでは、R から LuckyTemplates にオブジェクトをインポートする方法についても説明します。

最初の N 営業日の再考 – DAX コーディング言語ソリューション

最初の N 営業日の再考 – DAX コーディング言語ソリューション

この DAX コーディング言語チュートリアルでは、GENERATE 関数の使用方法とメジャー タイトルを動的に変更する方法を学びます。

LuckyTemplates のマルチスレッド動的ビジュアル手法を使用したインサイトのショーケース

LuckyTemplates のマルチスレッド動的ビジュアル手法を使用したインサイトのショーケース

このチュートリアルでは、マルチスレッド動的ビジュアル手法を使用して、レポート内の動的データ視覚化から洞察を作成する方法について説明します。

LuckyTemplates のフィルター コンテキストの概要

LuckyTemplates のフィルター コンテキストの概要

この記事では、フィルター コンテキストについて説明します。フィルター コンテキストは、LuckyTemplates ユーザーが最初に学習する必要がある主要なトピックの 1 つです。

LuckyTemplates Online Service でアプリを使用する際の最良のヒント

LuckyTemplates Online Service でアプリを使用する際の最良のヒント

LuckyTemplates Apps オンライン サービスが、さまざまなソースから生成されたさまざまなレポートや分析情報の管理にどのように役立つかを示したいと思います。

時間の経過に伴う利益率の変化を分析する – LuckyTemplates と DAX を使用した分析

時間の経過に伴う利益率の変化を分析する – LuckyTemplates と DAX を使用した分析

LuckyTemplates でのメジャー分岐や DAX 数式の結合などの手法を使用して、利益率の変化を計算する方法を学びます。

DAX Studio でのデータ キャッシュのマテリアライゼーションのアイデア

DAX Studio でのデータ キャッシュのマテリアライゼーションのアイデア

このチュートリアルでは、データ キャッシュの具体化のアイデアと、それが結果を提供する際の DAX のパフォーマンスにどのように影響するかについて説明します。

LuckyTemplates を使用したビジネス レポート

LuckyTemplates を使用したビジネス レポート

これまで Excel を使用している場合は、ビジネス レポートのニーズに合わせて LuckyTemplates の使用を開始するのに最適な時期です。

LuckyTemplates ゲートウェイとは何ですか? 知っておくべきことすべて

LuckyTemplates ゲートウェイとは何ですか? 知っておくべきことすべて

LuckyTemplates ゲートウェイとは何ですか? 知っておくべきことすべて