LuckyTemplates のストレージ エンジン – VertiPaq オペレーターとクエリ

LuckyTemplates のストレージ エンジン – VertiPaq オペレーターとクエリ

このチュートリアルでは、LuckyTemplates のVertiPaq オペレーターとストレージ エンジン クエリについて説明します。計算の背後で演算子がどのように機能するか、またストレージ エンジンが DAX コードのパフォーマンスの最適化にどのように役立つかを学びます。

VertiPaq オペレーターとクエリを使用すると、各コードの実行を監視して、必要に応じてコードを改善できます。

目次

VertiPaq オペレーター

VertiPaq には、単純なクエリを計算する機能があります。DAX コードを実行して答えを得る論理演算子が含まれています。

これらは VertiPaq 論理演算子です。

  • スキャン
  • GroupBy
  • フィルター
  • マックス
  • カウント
  • 個別の数
  • 平均
  • Stdev.S
  • Stdev.P
  • 変数S
  • Var.P

これらは、サンプル クエリによって生成された論理クエリ プランと物理クエリ プランです。

LuckyTemplates のストレージ エンジン – VertiPaq オペレーターとクエリ

行に_Vertipaq がある場合は、VertiPaq エンジンが単独で作業を行っていることを意味します。Logical Query Planを見ると、 Sum_VertipaqScan_Vertipaqがあることがわかります。これら 2 つの演算子は、FactSales の数量をスキャンして合計し、回答を生成します。

物理クエリ プランには、ProjectionSpoolを使用するSum_Vertipaqも表示されます。これは、クエリがストレージ エンジンに送信され、データ キャッシュ内の数式エンジンに返されることを意味します。また、レコードが 1 つしかないことにも気づきます。

レコード」列には、ストレージ エンジンから数式エンジンに具体化される行の数が表示されます。効率的に動作するにはレコードが 1 つだけ必要です。複数のレコードがある場合、クエリが完了するまでに時間がかかります。

ストレージ エンジンがリクエストを実行できない場合は、フォーミュラ エンジンが引き継ぎます。フォーミュラ エンジンは要求をすべて実行できますが、処理速度は非常に遅くなります。

ストレージ エンジンのクエリ

これは、ストレージ エンジンのクエリと、それを読み取って理解する方法についての紹介です。これらの情報を使用して DAX クエリを最適化し、パフォーマンスを向上させることができます。ストレージ エンジンから数式エンジンに返されるデータ キャッシュは非圧縮形式であることに常に注意してください。

これは使用されるサンプルクエリです。

LuckyTemplates のストレージ エンジン – VertiPaq オペレーターとクエリ

これを実行して [Physical Query Plan] タブを開くと、ProjectionSpool Operator が表示されます。結果を生成するために計算のバックグラウンドでどのように動作するかを理解する必要があります。

LuckyTemplates のストレージ エンジン – VertiPaq オペレーターとクエリ

ストレージ エンジンのクエリは、 xmSQLと呼ばれる疑似 SQL 言語で表現されます。それは本物のプログラミング言語ではありません。これは、エンジンがバックグラウンドで何を行っているかを視覚的に表現したものです。

DAX Studio でサンプル クエリを実行すると、xmSQL が表示されます。これは、クエリがSalesData の数量を選択し、Sales Dataテーブルからそれを合計することを示しています。

LuckyTemplates のストレージ エンジン – VertiPaq オペレーターとクエリ

クエリ内のテーブル名が xmSQL とは異なることがわかります。DAX は名前として Fact または DIM を使用することを好まないため、xmSQL はテーブル名としてFactSalesではなくSales Dataを使用します。

DAX のパフォーマンスを高速化するには、ストレージ エンジンを可能な限り動作させる必要があります。データをスキャンする際に、単純な計算と集計を実行できます。サンプル クエリではのみが使用されるため、計算はストレージ エンジンで行われました。

最良の最適化手法は、ストレージ エンジンがほとんどの作業を実行し、数式エンジンが残りの部分だけを実行するように最適なセットを見つけ出すことです。


マルチスレッド環境の VertiPaq ストレージ エンジン
LuckyTemplates の VertiPaq 圧縮とストレージ
LuckyTemplates Desktop の DAX Studio とは

結論

ストレージ エンジンは、DAX の動作を高速化する役割を果たします。論理および物理クエリ プランを使用して、計算全体の背後にあるプロセスを確認できます。どのプロセスが全体のパフォーマンスを低下させているかを追跡し、それを最適化できます。

VertiPaq の仕組みについて詳しく知りたい場合は、このチュートリアルを利用して DAX コードの最適化を練習してください。


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 ゲートウェイとは何ですか? 知っておくべきことすべて