【问题标题】:PowerBI reports run slowly in DirectQuery modePowerBI 报表在 DirectQuery 模式下运行缓慢
【发布时间】:2020-03-01 03:35:12
【问题描述】:

我有一份关于金融的 powerbi 报告。用户需要实时看到最新的数据,所以我不得不选择 DirectQuery。但是在这种模式下,某些功能,例如 DateAdd 和 DatesMtd 不能使用 (This DAX function is not supported for use in DirectQuery mode.),
所以我需要写一个很复杂的SQL语句来达到等价的效果,但这使得报表每次运行都很慢(超过10秒),而且我的数据模型中最大的表不到80000行。我试图优化 SQL 语句,但没有帮助。有什么解决办法吗?

(我用的是powerbi报表服务器和sqlserver企业版)

【问题讨论】:

  • 如何优化查询没有帮助?这是否意味着它们已经过优化,但报表执行时间没有改变?什么是数据库?发布您的数据库架构、查询和执行计划,然后我们才能讨论可能的优化。

标签: powerbi dax power-bi-report-server


【解决方案1】:

当然,在没有任何信息的情况下,我无法知道是什么花费了这么多时间,但为了了解正在发生的事情,您可以使用以下工具:

  1. PowerBI 性能分析器:这将告诉您哪个部分花费的时间最多。欲了解更多信息,请参阅MSDocsSQLBI
  2. 检查涉及的每个表的数据模型和存储方式(即:事实表、日历、客户等)。在查询源时,PBI 不会使用来自导入模式的表的过滤器(直接在查询中)。 (在网络上搜索“复合模型”)
  3. 限制对象的数量,对于仪表板中的每个对象,查询将被发送到数据源,限制对象的数量可能会有所帮助。 (请记住,对象会相互等待,因此一个加载缓慢的对象可能会导致您的问题)
  4. (即使您可能已经这样做了)查看查询执行计划,您还可以通过捕获它们来检查 PowerBI 自动创建的查询(最简单的方法是使用SQL Server Profiler

我认为只要使用 PowerBI 性能分析器,您就可以看到问题出在哪里,然后进行更准确的搜索。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-09-20
    • 2012-07-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-27
    • 2019-05-26
    相关资源
    最近更新 更多