首页 > 解决方案 > SSAS 表格开发 DAX 与 SQL 性能

问题描述

我目前正在研究一个现有的表格模型,它有大约 150 万行。它由 SSMS DB 视图驱动并部署到 SSAS。

我的问题是哪种语言处理得更好/更快?

添加度量时,我可以case在视图中创建 SQL 语句或将度量直接放在模型中。我刚刚开始这个项目,但数据增长相当稳定,我担心模型的长期性能会随着新的字段、度量和记录不断扩大。

标签: sqldaxsql-server-data-toolsssas-tabularssms-2017

解决方案


我使用以下经验法则:

  • 计算 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 不正确/无效。


推荐阅读