SSAS 表格开发 DAX 与 SQL 性能

SSAS Tabular Development DAX versus SQL performance

我目前正在处理一个现有的表格模型,该模型有大约 150 万行。它由 SSMS 数据库视图驱动并部署到 SSAS。

我的问题是哪种语言处理 better/faster?

添加度量时,我可以在视图中创建 SQL case 语句或将度量直接放置在模型中。我刚刚开始这个项目,但数据增长相当稳定,我担心随着模型继续扩大新领域、措施和记录的长期表现。

我使用以下经验法则:

  • 计算SQL中的所有维度属性。切勿在 DAX 中使用任何计算列。
  • 计算 SQL 中最复杂和最昂贵的指标。这些通常很少,比如所有计算的 2-5%。剩下的交给 DAX。

在后台,DAX 被翻译成 SQL 查询(您可以使用 DAX Studio 查看它们:https://www.sqlbi.com/tools/dax-studio/) .如果正确编写 DAX,执行计划将与 SQL 一样高效。当然,如果你的 DAX 是错误的,它可能会转化为非常无效的 SQL,但这是可以预料的。

最后,为了正确设置预期:如果表格模型超过 10 亿条记录,则它被视为 "large"。 100M - 1B 记录之间的模型被认为是中型的,可能 需要一些优化(基本上,你必须知道你在做什么)。任何小于 100M 记录的都是小模型,如果你有性能问题,要么是你的数据模型有问题,要么是你的 DAX 是 incorrect/ineffective。