DAX Studio で DAX コードのパフォーマンスを評価する

DAX Studio で DAX コードのパフォーマンスを評価する

このチュートリアルでは、 DAX Studioの [ベンチマークの実行] オプションを使用して DAX コードのパフォーマンスを評価する方法を学習します。

[ベンチマークの実行] オプションを使用すると、クエリ内のコールド キャッシュとウォーム キャッシュの実行数をカスタマイズできます。

DAX Studio で DAX コードのパフォーマンスを評価する

このオプションをクリックすると、ベンチマーク ウィザードが開きます。コールド キャッシュまたはウォーム キャッシュでクエリを実行する回数を指定できます。

DAX Studio で DAX コードのパフォーマンスを評価する

コールド キャッシュとは、 DAX Studio が最初にキャッシュをクリアしてから、指定された数値に基づいてクエリを実行することを意味します。一方、ウォーム キャッシュは、 DAX Studio がクエリの実行前にキャッシュをクリアしないことを意味します。

このチュートリアルでは、CallbackDataID を生成する以下のコードを使用します。

DAX Studio で DAX コードのパフォーマンスを評価する

[ベンチマークの実行] オプションを使用する前に、コードを実行してサーバー タイミングデータを表示してみましょう。

DAX Studio で DAX コードのパフォーマンスを評価する

コードの実行に 134 ミリ秒かかることがわかります。これにはCallbackDataIDも含まれます。

目次

DAX コードのパフォーマンスに対するベンチマークの実行オプションの使用

[ベンチマークの実行]オプションをクリックし、コールド キャッシュを 5 回実行してクエリを実行すると、ベンチマーク ウィザードの下部に進行状況バーが表示されます。キャッシュをクリアしてから、コードを 5 回実行します。

その後、結果ペインに 2 つのタブが開きます。最初のタブ [概要]には、キャッシュ タイプ、その統計、合計期間、および SE 期間に関する情報を含む表が表示されます。

コールド キャッシュとウォーム キャッシュのデータを比較すると、キャッシュをクリアしても実行時間に大きな違いがないことがわかります。

2 番目のタブ [詳細]には、DAX クエリのキャッシュに関するより包括的な情報が表示されます。

さまざまなキャッシュ期間

別のDAX コードを実行して、クエリのタイミングにどのような影響を与えるかを確認してみましょう。

キャッシュをクリアしてコードを実行するのに 13 ミリ秒しかかからないことがわかります。

次に、「ベンチマークの実行」オプションをクリックします。ボックスのチェックを外し、コールド キャッシュとウォーム キャッシュの両方に対して 10 回の実行を実行します。

DAX Studio で DAX コードのパフォーマンスを評価する

結果ペインでは、コールド キャッシュでの実行に 12.8 ミリ秒、ウォーム キャッシュでの実行に 3.9 ミリ秒かかることがわかります。

DAX Studio で DAX コードのパフォーマンスを評価する

クエリはデータ キャッシュ自体から応答されるため、ストレージ エンジンの継続時間はウォーム キャッシュでは測定できません。

[詳細] タブでは、合計 20 件の実行があることがわかります。寒いときは10、暖かいときは10です。コールド期間は常にウォーム期間よりも長くなります。

DAX Studio で DAX コードのパフォーマンスを評価する

一番右の列までスクロールすると、VertiPaq キャッシュの一致に、コールド キャッシュには 0、ウォーム キャッシュには 1 が含まれていることがわかります。

グラフを使用した DAX コードのパフォーマンスの比較

より洞察力のあるデータを取得するには、[ベンチマーク] オプションの結果から折れ線グラフを作成できます。10 の間隔を使用して比較を作成できます。つまり、コールド キャッシュとウォーム キャッシュの両方に対して 10、20、30 などを使用してベンチマークを実行します。、、およびに基づいてクエリの実行にかかる時間を理解するのに役立ちます。

小規模なデータベースから始めて、徐々により複雑なデータベースのコードを実行することもできます。次に、折れ線グラフを作成してコードのパフォーマンスを確認します。

これにより、DAX クエリの行数に対して期間が増加したか減少したかを識別しやすくなります。

結論

DAX コードのパフォーマンスを最適化することは重要です。コード行あたり 0.5 ミリ秒の違いは、あまり意味がないかもしれません。しかし、結果として 100 万行を生成する複数行のコードを扱う場合、この 0.5 ミリ秒は大きな違いになります。

[ベンチマークの実行] オプションを使用すると、コードの時間データを収集できます。これを使用して、コードの異なる行間を比較できます。これを使用して、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 ゲートウェイとは何ですか? 知っておくべきことすべて