ブログ

Power BIのEVALUATEANDLOG関数とは?DAX Studioとの連携でパフォーマンスを可視化する方法を分かりやすく解説

#Power BI #連携 #可視化 #EVALUATEANDLOG #EVALUATEANDLOG関数 #DAX Studio

積極採用中
セミナー情報

Power BIで複雑なDAX式を扱っていると、
「このメジャー、なぜこんなに遅いのか?」
「どの部分がボトルネックになっているのか?」
といった悩みに直面することがあります。
そんなときに役立つのがEVALUATEANDLOG関数です。この関数を使うと、DAX式の内部処理を可視化し、どのステップに時間がかかっているのかを確認できます。

この記事では、EVALUATEANDLOG関数の基本構文から、DAX Studioを活用した実践的な分析方法までを分かりやすく解説します。

EVALUATEANDLOG関数とは?

関数の概要と役割

EVALUATEANDLOG関数は、DAXクエリの実行内容をログとして出力するための機能です。本来Power BI内部で行われている計算プロセスを「見える化」できるのが大きな特徴です。

構文は次の通りです。


<table>:評価したいDAXテーブル式
<log_message>(任意):出力ログに付与するメッセージ

 
たとえば、以下のように使います。

この式を実行すると、「Category別の売上集計」というメッセージ付きで処理内容がログに記録されます。

基本構文と動作イメージ

EVALUATEANDLOGは通常のEVALUATE文と似ていますが、クエリの結果に加えて「どの部分が評価されたか」というログを残します。ただしPower BI Desktop単体では、このログの中身を直接確認することはできません。
そこで登場するのが、DAX Studioです。

DAX Studioとの連携で何ができるのか

DAX Studioとは(外部ツール概要)


DAX Studioは、Power BIやAnalysis Servicesのモデルと接続し、DAXクエリを直接実行・検証できる無料の外部ツールです。

主な機能は以下の通りです。

Power BI Desktopのメニュー「外部ツール」からワンクリックで起動でき、接続したモデルをそのまま解析できます。

接続手順(Power BIからDAX Studioへの接続)

  1. Power BI Desktopを開き、対象レポートをロードします。
  2. 上部リボンの [外部ツール] → [DAX Studio] をクリック。
  3. DAX Studioが自動で起動し、現在のPower BIモデルに接続されます。

実行結果には、通常のデータ出力に加えて「ログ情報」タブが表示され、各処理ステップの所要時間やリソース消費を確認できます。DAX StudioはPower BIの公式外部ツールとして広く利用されています。
最新バージョンのダウンロードやドキュメントは以下より確認可能です。
🔗 DAX Studio 公式サイト

EVALUATEANDLOGの活用ステップ

ログを取得するDAXの実行例

DAX Studioで次のようなクエリを実行してみましょう。

実行後、結果タブには計算済みテーブルが表示され、同時に「Server Timings」タブで処理時間を確認できます。

ログ出力内容の確認方法

「Server Timings」では次の情報が表示されます。

この情報から「どのステップがボトルネックか」を特定できます。
たとえば、Formula Engineの処理が長ければDAX式の最適化が必要です。

「Server Timings」や「Query Plan」に関する詳細な見方は、Microsoft公式の以下ガイドが参考になります。https://learn.microsoft.com/ja-jp/power-bi/guidance/dax-performance-tuning-dax-studio

複雑なクエリを分解して性能を検証する方法

EVALUATEANDLOGは、長いDAX式を「部分ごとにログを出す」ことで性能を比較できます。
以下のように使うと効果的です。

これにより、「どのサブクエリが重いか」を分離して評価できます。

実務での活用シナリオ

Power BI開発の現場では、EVALUATEANDLOGは“問題解決ツール”として多面的に活用できます。
ここでは、代表的な3つのシーンを紹介します。

モデル最適化(遅いメジャーの特定)

レポートが重い場合、どのメジャーが遅いのかを感覚では判断できません。EVALUATEANDLOGを使うことで、処理ステップごとの実行時間を可視化し、「どこがボトルネックなのか」を定量的に特定できます。

💡 ポイント
「どのメジャーが遅いか」を“体感”ではなく“数値”で判断できるのが最大のメリットです。

検証ログの共有とレビュー効率化

EVALUATEANDLOGの出力結果は、DAX StudioのExport機能でCSV化できます。
これにより、チームで以下のような比較・レビューが可能です。

  • Before/Afterの実行時間を定量比較(例:200ms → 90ms)
  • 式の改修履歴をExcelで管理し、改善効果を共有
  • ボトルネック部分の可視化キャプチャを添付してレビュー

チーム開発時に「なぜ早くなったのか?」を客観的に説明できる資料としても有効です。

DAX学習・トレーニングでの活用

DAX Studio上でEVALUATEANDLOGを使うと、式がどの順序で実行されているかを視覚的に確認できます。これは教育現場や新人研修で非常に有効です。

  • DAXの構文理解に加え、「実行の流れ」を学べる
  • どの関数が重い処理を生むのかを実感できる
  • 「ブラックボックス化」しがちなDAXを透明化できる

教育担当者の声(実例)
「クエリの流れを見ながら説明できるので、受講者がDAXの“動作イメージ”をつかみやすくなった」と好評です。

注意点とベストプラクティス


EVALUATEANDLOGは強力な関数ですが、運用には注意が必要です。
ここでは、安定運用のための3つのポイントを整理しました。

本番環境ではログ出力を無効化する

ログ記録はあくまで検証目的です。本番環境で多用すると、処理が遅くなる・容量を圧迫する可能性があります。

推奨しない運用例

  • 定期更新レポートにEVALUATEANDLOGを含める
  • 自動実行スクリプトに常時ログ出力を設定する

クエリ単位でEVALUATEANDLOGを使いすぎない

EVALUATEANDLOGを全ての式に付けてしまうと、ログが膨大になり、逆に分析しづらくなります。

ポイントは“重点分析”

  • 遅延が疑われるメジャーに限定して使う
  • 問題が特定できたらEVALUATEANDLOGを削除する

ログ共有・保存の運用ルールを整備する

出力されたログには、モデル名・テーブル構造などのメタ情報が含まれます。
情報管理の観点から、以下のようなルール整備が重要です。

Tip:検証ログは“成果物”としても価値があります。
チューニングナレッジとして社内WikiやConfluenceに蓄積するのもおすすめです。

まとめ:EVALUATEANDLOGで「見えない処理」を見える化する


EVALUATEANDLOG関数は、Power BIのパフォーマンスを改善するうえで欠かせないDAX関数です。特にDAX Studioと組み合わせることで、クエリ実行時間やボトルネックの特定が容易になります。

Power BI Desktop単体でも関数の動作確認は可能ですが、実際のログ内容や処理時間を可視化するにはDAX Studioなどの外部ツールが必須です。内部処理を理解し、DAX式を最適化する第一歩として、EVALUATEANDLOGをぜひ活用してみてください。

補足:Power BI Desktopでの注意点
Power BI DesktopでもEVALUATEANDLOGを実行可能ですが、「どこで時間がかかったか」などのログ詳細は表示されません。クエリエディターで結果テーブルを確認できるのみで、詳細なパフォーマンス情報はDAX Studioで確認する必要があります。

<Power BIハンズオンセミナー>
弊社ではPower BIをはじめとするさまざまな無料オンラインセミナーを実施しています!
>>セミナー一覧はこちら

<Power BIの導入支援>
弊社ではPower BIの導入支援を行っています。ぜひお気軽にお問い合わせください。
>>Power BIの導入支援の詳細はこちら

<PowerBIの入門書を発売中!>
弊社ではPower BIの導入から基本的な使い方・活用方法の基礎などをわかりやすく解説した書籍も販売しています。
>>目次も公開中!書籍の詳細はこちら

CONTACT
お問い合わせ

ご相談やご依頼、病院マスタなどについてのお問い合わせはこちらのお問い合わせフォームから。

サービスなどについてのお問い合わせ 病院マスタについてのお問い合わせ

メールお問い合わせ