前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Power BI: 分析DAX查询计划

Power BI: 分析DAX查询计划

作者头像
Exploring
发布2023-11-13 21:08:49
2630
发布2023-11-13 21:08:49
举报

文章背景: 最近在学习DAX权威指南第19章,介绍了DAX查询引擎的组件,解释了如何使用DAX Studio获取与特定DAX表达式相关的查询计划和性能计数器的信息。这些知识是优化任何DAX公式的基础。

1 捕获DAX查询2 DAX查询计划介绍3 收集查询计划

1 捕获DAX查询

收集报表生成的查询是优化DAX查询的第一步。可以通过DAX Studio来捕获和分析DAX查询。

打开要分析的Power BI Desktop文件,使用DAX Studio选择对应的文件名称可以连接这个Power BI模型,如下图所示。

连接成功后,激活Home功能区的Traces选项卡中的All Queries按钮,DAX Studio就可以开始捕获发送到表格模型引擎中的所有查询,如下图所示。

此时,客户端中执行的每个操作都可能产生一个或多个查询。例如,Power BI为页面中的每一个视觉对象生成至少一个DAX查询。下图显示了在大洲切片器中选择欧洲(Europe)时捕获的查询。

你可以很容易地发现第一个查询的持续时间约为3s。剩余的所有查询都非常快,因此不必花精力去关注。DAX Studio可以让你快速发现最慢的查询,然后将注意力集中在这些查询上。

当你双击All Queries列表中的某一列时,该查询将被复制到编辑器窗口中。当你按Home选项卡上高亮显示的Format Query按钮时,查询会使用DAX Formatter提供的Web服务格式化代码。

一旦按照这些步骤识别出慢速查询,就可以在DAX Studio中多次执行该查询。在这个过程中,可以分析它的查询计划和其他相关指标来评估瓶颈,并尝试执行可以提高性能的操作。

2 DAX查询计划介绍

查询计划是一组信息的通用定义,其中包括两种不同类型的查询计划(逻辑查询计划和物理查询计划),以及由物理查询计划使用的存储引擎查询的列表。除非另有说明,否则通用术语查询计划指的是所有关于查询计划的详细信息。

DAX查询引擎由两层组成:公式引擎(FE)和存储引擎(SE)。每个查询结果都是通过执行以下步骤生成的:

  1. 构建表达式树;
  2. 构建逻辑查询计划;
  3. 构建物理查询计划;
  4. 执行物理查询计划。

第1步和性能分析无关。第2和第3步涉及公式引擎,而第4步还涉及存储引擎。

3 收集查询计划

DAX查询会生成逻辑查询计划和物理查询计划。这些计划详细描述了查询引擎的操作。

观察下面这个在DAX Studio中执行的简单查询:

代码语言:javascript
复制
EVALUATE
{ SUM (Sales[Quantity])}

结果是一个单行单列(列名为Value)的表,其中填充了销售表所有行在Quantity列的和。

DAX Studio会收集在其内部执行的一个或多个查询所产生的跟踪事件,并显示有关查询和存储引擎的相关信息。

在使用DAX Studio分析查询之前,必须要在Traces选项卡中启用Query Plan和Server Timings选项,如下图所示。

Query Plan窗格显示了查询生成的两个查询计划,如下图所示。

你可以在窗格的上半部分看到物理查询计划,在下半部分看到逻辑查询计划。对于物理查询计划,列表中还提供了一个列,其中包含spool操作迭代的记录数(spool操作是由公式引擎执行的迭代,通常在数据缓存上执行)。

Server Timings窗格显示了与存储引擎查询相关的信息,以及执行时间是如何在公式引擎和存储引擎之间分配的。

在Server Timings窗格的左侧,可以看到各种指标;中间的列表显示了执行的存储引擎查询,在右侧可以看到在中间列表中选择的存储引擎查询对应的代码。

DAX Studio使寻找DAX查询瓶颈的过程变得更加高效。其本身并不优化DAX,但它简化了优化任务。

视频讲解:

参考资料:

[1] DAX权威指南(https://www.powerbigeek.com/definitive-guide-to-dax-cn/

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2023-11-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数据处理与编程实践 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1 捕获DAX查询
  • 2 DAX查询计划介绍
  • 3 收集查询计划
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档