sql - SSAS 表格开发 DAX 与 SQL 性能
问题描述
我目前正在研究一个现有的表格模型,它有大约 150 万行。它由 SSMS DB 视图驱动并部署到 SSAS。
我的问题是哪种语言处理得更好/更快?
添加度量时,我可以case
在视图中创建 SQL 语句或将度量直接放在模型中。我刚刚开始这个项目,但数据增长相当稳定,我担心模型的长期性能会随着新的字段、度量和记录不断扩大。
解决方案
我使用以下经验法则:
- 计算 SQL 中的所有维度属性。切勿在 DAX 中使用任何计算列。
- 计算 SQL 中最复杂和最昂贵的指标。这些通常很少,例如所有计算的 2-5%。剩下的交给 DAX。
在后台,DAX 被翻译成 SQL 查询(您可以使用 DAX Studio 查看它们:https ://www.sqlbi.com/tools/dax-studio/ )。如果 DAX 编写正确,执行计划将与 SQL 一样高效。当然,如果您的 DAX 错误,它可能会转化为非常无效的 SQL,但这是意料之中的。
最后,只是为了正确设置期望:如果表格模型超过 10 亿条记录,则认为它是“大”的。100M - 1B 记录之间的模型被认为是中型的,可能需要一些优化(基本上,你必须知道你在做什么)。任何少于 100M 的记录都是一个小模型,如果你有性能问题,要么是你的数据模型是错误的,要么是你的 DAX 不正确/无效。
推荐阅读
- python - 如何设置 Sympy 预览输出颜色?
- python - 从 sqlite 为 pandas 数据框添加字幕并使用 Python 使用 Web 浏览器输出
- javascript - 将文本替换为 url 并向其添加 onClick 事件
- android - 如何在已经生成一个新的未签名 APK 文件后生成一个?
- excel - 将 Outlook 发件箱邮件中的表单字段导出到 Excel
- python - 当我尝试用拥抱的脸进行情绪分析时,我遇到了 BrokenPipeError
- node.js - 无法在 Loopback 3 中读取 null 的属性“连接器”
- android - 鸟不更新位置颤振
- python - 我如何在scrapy(python)中连接mongodb atlas和piplines?
- java - XSSFCellStyle.BORDER_THIN - poi 4.1.2 中的(BORDER_THIN 无法解析或不是字段)