DAX クエリ最適化のテクニックとレッスン

DAX クエリ最適化のテクニックとレッスン

このチュートリアルでは、 DAXクエリ最適化の実践について説明します。VertiPaq がキャッシュを使用して DAX のパフォーマンスを向上させ、正確な結果を生成できることを学びます。

目次

DAX 計算における VertiPaq キャッシュ

最初のトピックは VertiPaq キャッシュです。計算に埋め込まれたキャッシュを他のユーザーが使用できない可能性があるため、クエリを実行する前に、まずキャッシュをクリアする必要があります。これにより、DAX の動作が速くなり、結果が得られます。

ベスト プラクティスの 1 つは、あらゆる種類の最適化を実行する前に、必ずキャッシュをクリアすることです。ウォーム キャッシュを使用してクエリを実行して、既存のキャッシュを利用するように変更できるかどうかを確認することもできます。そうすることで、クエリが何を行っているか、そしてクエリをどのように最適化できるかを正確に表現することができます。

ストレージ エンジンには、後で使用する結果をキャッシュする機能があります。フォーミュラ エンジンが同じデータをリクエストすると、ストレージ エンジンは以前のリクエストで使用されたものと同じキャッシュを自動的に使用します。これは、キャッシュ システムによってユーザーのパフォーマンスが向上することを示しています。

キャッシュをクリアするには、DAX Studio に移動します。左上隅にある「実行」をクリックし、「キャッシュのクリア」、「実行」の順に選択します。毎回実行する必要がないように、実行前に常にキャッシュをクリアするように設定できます。

DAX クエリ最適化のテクニックとレッスン

クエリを実行する前にキャッシュをクリアしたい場合は、[実行] ボタンの近くに [キャッシュのクリア] ボタンもあります。

DAX クエリ最適化のテクニックとレッスン

VertiPaq には、作業のやり直しや再スキャンを避けるために、クエリで使用されている同一の式を検出する機能があります。

これはサンプルクエリです。これは、Fact Sales テーブルを反復し、数量と現在の価格の積を取得する総売上の定義されたメジャーです。

DAX クエリ最適化のテクニックとレッスン

関数では、Total Sales が上記のMEASURE関数を参照します。Total Sales2 は、上記の 関数と同じ方法で記述されます。

クエリを実行すると、式は 1 回だけ表示されます。ストレージ エンジンは、2 つの同一の式が存在することを認識しています。これにより、クエリが同じ式で再処理されるのを防ぎます。

DAX クエリ最適化のテクニックとレッスン

DAX クエリの最適化

DAX を最適化するためにできる最も重要なことの 1 つは、ボトルネックを特定することです。これにより、どこから最適化を開始すべきかがわかり、パフォーマンスの問題に対する解決策を作成できるようになります。達成しようとしていることについて全体的な視点を持つことが重要です。つまり、物事を順番に開発し正確かつ迅速な結果を提供することです。

まず、データ モデルが正しく設定されていることを確認します。DAX は特定の方法で動作するように設定されているため、よりスムーズなエクスペリエンスを得るにはその流れに従う必要があります。

次に、最も問題を引き起こしている対策を見つけます。DAX Studio のサーバー タイミングでこれらを実行し、メジャーの計算の合計期間に影響を与える不要な行とコールバック データ IDを探します。

これらは、物理クエリ プランのレコード列にも表示されます。レコード数が最終出力の行数と等しいかそれに近いことを確認してください。これにより、クエリによって結果を得るのに十分なテーブルが確実に実体化されます。



LuckyTemplates のストレージ エンジン – LuckyTemplates でのVertiPaq オペレーターとクエリの測定: 最適化のヒントとテクニック
DAX Studio の VertiPaq Analyzer | LuckyTemplates チュートリアル

結論

DAX の最適化により、より高速なパフォーマンスと正確な回答が得られます。クエリで結果が生成されるまでに時間がかかる場合は、DAX を最適化する必要があります。これにより、計算に必要なプロセスのみを使用するため、メジャーの全体的なパフォーマンスが向上します。


Power Automate の文字列関数: Substring と IndexOf

Power Automate の文字列関数: Substring と IndexOf

Microsoft フローで使用できる 2 つの複雑な Power Automate String 関数、substring 関数とindexOf 関数を簡単に学習します。

LuckyTemplates でビジュアル ツールチップを作成する

LuckyTemplates でビジュアル ツールチップを作成する

LuckyTemplates ツールチップを使用すると、より多くの情報を 1 つのレポート ページに圧縮できます。効果的な視覚化の手法を学ぶことができます。

Power Automate で HTTP 要求を行う

Power Automate で HTTP 要求を行う

Power Automate で HTTP 要求を作成し、データを受信する方法を学んでいます。

LuckyTemplates で日付テーブルを作成する方法

LuckyTemplates で日付テーブルを作成する方法

LuckyTemplates で簡単に日付テーブルを作成する方法について学びましょう。データの分析と視覚化のための効果的なツールとして活用できます。

2 つの方法による SharePoint 列の検証

2 つの方法による SharePoint 列の検証

SharePoint 列の検証の数式を使用して、ユーザーからの入力を制限および検証する方法を学びます。

SharePoint リストを Excel または CSV ファイルにエクスポート

SharePoint リストを Excel または CSV ファイルにエクスポート

SharePoint リストを Excel ファイルおよび CSV ファイルにエクスポートする方法を学び、さまざまな状況に最適なエクスポート方法を決定できるようにします。

Power Automate のオンプレミス データ ゲートウェイ

Power Automate のオンプレミス データ ゲートウェイ

ユーザーがコンピューターから離れているときに、オンプレミス データ ゲートウェイを使用して Power Automate がデスクトップ アプリケーションにアクセスできるようにする方法を説明します。

DAX 数式での LASTNONBLANK の使用

DAX 数式での LASTNONBLANK の使用

DAX 数式で LASTNONBLANK 関数を使用して、データ分析の深い洞察を得る方法を学びます。

CROSSJOIN 関数の使用方法 – LuckyTemplates および DAX チュートリアル

CROSSJOIN 関数の使用方法 – LuckyTemplates および DAX チュートリアル

LuckyTemplates で予算分析とレポートを実行しながら、CROSSJOIN 関数を使用して 2 つのデータ テーブルをバインドする方法を学びます。

TREATAS 関数を使用して LuckyTemplates で仮想リレーションシップを作成する

TREATAS 関数を使用して LuckyTemplates で仮想リレーションシップを作成する

このチュートリアルでは、LuckyTemplates TREATAS を使用して数式内に仮想リレーションシップを作成する方法を説明します。