Power Automate の文字列関数: Substring と IndexOf
Microsoft フローで使用できる 2 つの複雑な Power Automate String 関数、substring 関数とindexOf 関数を簡単に学習します。
このチュートリアルでは、LuckyTemplates の 2 つの DAX クエリ プランについて説明します。
クエリ プランは、貴重なデータを生成する際の DAX のパフォーマンスに影響します。また、レポートをより説得力のあるものにするDAX コードの最適化にも役立ちます。
これらは、数式エンジンによって生成される 2 つのクエリ プランです。
すべての DAX クエリは、これら 2 つのイベントをトリガーします。
目次
LuckyTemplates の論理クエリ プラン
これは DAX クエリ フローです。この部分では、3 番目のステップである論理クエリ プラン ツリーの単純化に焦点を当てます。
このクエリは、DAX クエリに似ています。DAX クエリを実行すると、論理クエリ プランの実行内容とほぼ一致します。
説明のために、サンプル クエリを次に示します。
これを実行すると、29,138 という結果が得られます。
DAX Studio でクエリを実行し、[クエリ プラン イベント] タブをオンにすると、クエリ プランが表示されます。2 つのタイプのうち、論理クエリ プランが最初に表示されます。
インデントされた各行は、相互に構築されたサブタスクです。最初の行は、DAX の最終結果です。他の行は、FactSales の Quantity 列を合計してスキャンします。
コロンの前の最初の単語は演算子と呼ばれます。
コロンの後の単語は、演算子の種類と呼ばれます。
演算子の種類には次の 2 種類があります。
RelLogOp はテーブル出力です。DAX は VertiPaq を使用して列をスキャンし、テーブルを作成します。一方、ScaLogOpはスカラー出力です。これは集計された数値であることを意味します。クエリ プランの 2 番目と最後の行を見ると、FactSales の数量を合計して数量を取得していることがわかります。
論理クエリ プランは、FactSales テーブルからの数量の合計を含む Total Quantity という 1 行のテーブルを作成します。
クエリ プランは単純な DAX クエリを使用するため、デコードが容易です。DAX が複雑になるほど、デコードは難しくなります。
できるだけ多くの「_VertiPaq」演算子を確認するように努めることをお勧めします。これは、DAX コードの最適化に役立つすべての作業を単独で実行することを意味します。
LuckyTemplates の物理クエリ プラン
物理クエリ プランは、2 つのタイプのうち 2 番目に表示されます。これは、DAX クエリ フローの 4 番目のステップです。論理クエリ プランと同じツリー構造を持ちます。
論理クエリ プランが構築されると、実行されるために物理クエリ プランに送信されます。同じサンプル クエリを実行すると、同じ答えが得られます。
具体的には、DAX クエリ フローの 4 番目のステップは、物理クエリ プラン ツリーの構築です。
論理クエリ プランに似ているかもしれませんが、異なります。通常、物理的なクエリ プランをLuckyTemplatesの DAX クエリと一致させるのは困難ですが、これは単純なサンプル クエリであるため、プロセスに従うことができます。
物理クエリ プランの 3 つの演算子タイプは次のとおりです。
LookupPhyOp は、特定の行コンテキストでスカラー値を提供します。InterPhyOpは、テーブルのデータを行ごとに繰り返します。SpoolPhyOp はVertiPaq クエリから結果を受け取り、それを具体化してメモリに保存します。
クエリ プランの 4 行目には、クエリがストレージ エンジンに送信されることを意味する ProjectionSpool 演算子が表示されます。レコードの数に応じてクエリの結果を繰り返します。
クエリ プランに表示されるレコードの量は、回答を完了するために必要な最小限のレコードである必要があります。この単純なクエリの結果には 1 行しかないため、クエリ プランでは 1 つのレコードが返されます。
ProjectionSpool の SpoolPhyOp に対応するRecords列には、ストレージ エンジンから数式エンジンに送信されたデータの量が表示されます。したがって、レコードが多いほど、クエリは遅くなります。
DAX のパフォーマンスが遅い場合は、[レコード] 列から探し始めるとよいでしょう。
LuckyTemplates での DAX 計算:この新しいコースで DAX 関数を最適化するベスト プラクティス
LuckyTemplates DAX スキルを強化するための 5 つの戦略
結論
DAX クエリを実行すると、答えが得られるまでに一連の手順が実行されます。これらのステップのうちの 2 つは、論理クエリ プランと物理クエリ プランです。彼らは、計算に使用される式の段階的なプロセスと実行を担当します。
これらのクエリ プランについてさらに詳しく知りたい場合は、このチュートリアルを読んでから、DAX Studio を使用して実際に確認してみてください。
Microsoft フローで使用できる 2 つの複雑な Power Automate String 関数、substring 関数とindexOf 関数を簡単に学習します。
LuckyTemplates ツールチップを使用すると、より多くの情報を 1 つのレポート ページに圧縮できます。効果的な視覚化の手法を学ぶことができます。
Power Automate で HTTP 要求を作成し、データを受信する方法を学んでいます。
LuckyTemplates で簡単に日付テーブルを作成する方法について学びましょう。データの分析と視覚化のための効果的なツールとして活用できます。
SharePoint 列の検証の数式を使用して、ユーザーからの入力を制限および検証する方法を学びます。
SharePoint リストを Excel ファイルおよび CSV ファイルにエクスポートする方法を学び、さまざまな状況に最適なエクスポート方法を決定できるようにします。
ユーザーがコンピューターから離れているときに、オンプレミス データ ゲートウェイを使用して Power Automate がデスクトップ アプリケーションにアクセスできるようにする方法を説明します。
DAX 数式で LASTNONBLANK 関数を使用して、データ分析の深い洞察を得る方法を学びます。
LuckyTemplates で予算分析とレポートを実行しながら、CROSSJOIN 関数を使用して 2 つのデータ テーブルをバインドする方法を学びます。
このチュートリアルでは、LuckyTemplates TREATAS を使用して数式内に仮想リレーションシップを作成する方法を説明します。