博客:www.jiaopengzi.com

焦棚子的文章目录
请点击下载附件

一、背景

最近在看DAX“圣经”第二版《The Definitive Guide to DAX (2nd ed.)》的时候,迭代函数并不慢。所以今天我们来用实验来验证一把。

二、实验过程

1、一个1000万的数据,数据好看出差异。

看到1000万行了吗?

还有一个维度表

关系

实验电脑配置

2、把度量写好。

//1、基础度量
total = SUM(data[NUM])
//2、SC
_sum_calculate =
CALCULATE ( SUM ( data[NUM] ), ‘dim’[DIM] = “A”, ‘data’[ID] < 50000001 )
//3、SCV
_sum_calculatetable_var =
VAR T1 =
CALCULATETABLE ( ‘dim’, ‘dim’[DIM] = “A” )
VAR T2 =
CALCULATETABLE ( ‘data’, ‘data’[NUM] < 5000001 )
VAR V =
CALCULATE ( SUM ( data[NUM] ), T1, T2 )
RETURN
V
//4、SF
_sum_filter =
CALCULATE (
SUM ( data[NUM] ),
FILTER ( ‘dim’, ‘dim’[DIM] = “A” ),
FILTER ( ‘data’, ‘data’[NUM] < 5000001 )
)
//5、SFV
_sum_filter_var =
VAR T1 =
FILTER ( ‘dim’, ‘dim’[DIM] = “A” )
VAR T2 =
FILTER ( ‘data’, ‘data’[NUM] < 5000001 )
VAR V =
CALCULATE ( SUM ( ‘data’[NUM] ), T1, T2 )
RETURN
V
//6、TC
_total_calculate =
CALCULATE ( ‘measure’[total], ‘dim’[DIM] = “A”, ‘data’[ID] < 50000001 )
//7、TCV
_total_calculatetable_var =
VAR T1 =
CALCULATETABLE ( ‘dim’, ‘dim’[DIM] = “A” )
VAR T2 =
CALCULATETABLE ( ‘data’, ‘data’[NUM] < 5000001 )
VAR V =
CALCULATE ( ‘measure’[total], T1, T2 )
RETURN
V
//8、TF
_total_filter =
CALCULATE (
‘measure’[total],
FILTER ( ‘dim’, ‘dim’[DIM] = “A” ),
FILTER ( ‘data’, ‘data’[NUM] < 5000001 )
)//9、TFV
_total_filter_var =
VAR T1 =
FILTER ( ‘dim’, ‘dim’[DIM] = “A” )
VAR T2 =
FILTER ( ‘data’, ‘data’[NUM] < 5000001 )
VAR V =
CALCULATE ( ‘measure’[total], T1, T2 )
RETURN
V

3、每个度量都拉到画布中,同时打开性分析器,测试了20组。(visual名称是度量首字母简写,难得写。)

4、把测试数据导出,得到我们要的实验数据。

5、同时我们看到了底层计算逻辑其实都一样,只有一点细微的差别。

6、数据导回PBI,我们看看最后的结果怎么样。

三、总结

1、加入测试:calculate第一参数用基础度量更快,还是用直接聚合更快;

2、无论是单纯的查询时间还是总的时间,calculate第一参数用基础度量会更快(如:TF,SF;TC,SC);

3、在查询中迭代函数的速度并不慢(如:TC,TF);

4、用var要比直接套用慢(如果:TF,TFV)

5、最后我们看到底层计算逻辑都是一样,还是有细微差别,在做pbi项目的时候,动辄上百个的度量,一点点效率的累计,最终会有很大的时效收益。

by焦棚子

焦棚子的文章目录

125_Power BI 中 DAX 的性能测试相关推荐

  1. POWER BI 中DAX函数的应用

    POWER BI 中DAX函数的应用 什么是DAX函数 DAX 是公式或表达式中可用于计算并返回一个或多个值的函数.运算符或常量的集合. 简单来说,DAX 可帮助你通过模型中已有的数据来创建新信息. ...

  2. POWER BI 中DAX函数的应用(下篇)

    POWER BI 中DAX函数的应用(下篇) 任务:创建度量值公式 下载并打开 Contoso 销售示例 Power BI Desktop 文件. 在"报表"视图的字段列表中,右键 ...

  3. power bi dax_M语言和Power BI中的DAX之间的差异

    power bi dax Microsoft Power BI supports two different languages, M language and DAX (Data Analysis ...

  4. Power BI中使用DAX生动展现人员头像、动态标签——销售数据里的那些商业智能

    目录 背景介绍 主要内容 数据预览 实现方案 头像展示 动态标签 总结 背景介绍 Power BI 作为一款强大的.生动的.且非常友好的商业智能软件,能帮助用户快速了解和分析数据.报表是可视化组件有机 ...

  5. power bi函数_在Power BI中的行上使用聚合函数

    power bi函数 Aggregate functions are one of the main building blocks in Power BI. Being used explicitl ...

  6. power bi 中计算_Power BI中的期间比较

    power bi 中计算 Just recently, I've come across a question on the LinkedIn platform, if it's possible t ...

  7. bi power 两个日期挑较早的日期_功率 BI 中的时间智能:利用时间

    概述 了解时间智能功能在 Power BI 中的重要性 通过简单示例在 Power BI 中实现时间智能函数 介绍时间是企业的资产,就像资源.材料和资金一样.企业使用累积时间计算(年到日期.月到日期或 ...

  8. power bi指标呈现_在Power BI中使用关键绩效指标

    power bi指标呈现 In this article, we will learn Key Performance Indicators usage in Power BI and solve a ...

  9. 行级共享锁和行级排他锁_Power BI中的行级安全性简介

    行级共享锁和行级排他锁 Analyzing data with Power BI has always been fascinating to me. With ever-growing data c ...

最新文章

  1. 2022-2028年中国医学模拟教育产品市场供需现状及投资战略研究报告
  2. CentOS Linux内核升级全过程
  3. RTP(Robi改造计划)--- 觉得还是搞风火轮(leg-wheel)好
  4. python爬虫获取的网页数据为什么要加[0-[Python爬虫] 等待网页加载后再获取内容...
  5. 类型、值和变量(一)
  6. 上传文件时路径总是C:\fakepath\的问题
  7. 34.在排序数组中查找元素的第一个和最后一个位置--leetcode算法题解(带注释)
  8. 前端需要了解的http知识
  9. python excel 转json_Python办公自动化| word 表格转excel
  10. unity 获取预制体_Unity实战之道具系统
  11. 松柏先生: 做品牌自己挣钱不算什么, 能让1000名山区绣娘都挣钱才牛!
  12. 征途LINUX服务端脚本,征途【改版教程】-版本内脚本文件-转载于-喜欢玩网游单机站...
  13. Mac删除文件时显示“不能完成此操作,因为项目‘xxxx’正在使用中”(添加/删除新用户引发的问题)
  14. html语言单词背不下来,英语单词怎么都背不下来怎么办
  15. matlab画双曲线的四种方法
  16. c语言读取ascii文件,C++对ASCII文件的读写操作
  17. <论文阅读>用于 3D 点线和平面的视觉惯性里程计框架 A Visual Inertial Odometry Framework for 3D Points, Lines and Planes
  18. uni-app上传图片到腾讯云
  19. WLST 命令和变量
  20. jQuery.Deferred对象

热门文章

  1. Laravel-admin 使用表单动态地保存一个关联模型(源码探究到功能实现)
  2. Slowquery图形化显示MySQL慢日志工具搭建
  3. 搭建Android的jenkins持续集成环境
  4. 编写了一个文件编码转换器。
  5. html简单跨行跨列表格制作
  6. tar包bz2和gz的对比
  7. Visual Studio Code预览版Ver 0.3.0试用体验
  8. 手动安装lzop压缩工具 - JerryMo06的专栏 - 博客频道 - CSDN.NET
  9. Diskpart 磁盘管理实战演示
  10. CentOS上使用Docker安装Redis-Cluster (redis6.x)