azure - 行级安全性是否总是会降低 Power BI 的性能

标签 azure azure-active-directory powerbi row-level-security

Row-level security (RLS) guidance in Power BI Desktop文章在报告中提到了潜在的负面绩效影响。那么,是否只有潜在的负面性能影响呢?是否也有可能对性能产生积极影响?

例如,如果表中有 10,000 行,但用户只能访问 1,000 行,那么 Power BI 是否会仅针对这 1,000 行运行所有查询?或者它是否使用额外的过滤器对 10,000 行运行查询,从而降低性能。

Avoid using RLS本文中的部分讨论了拆分模型并使用不同的工作区而不是 RLS。这里指出:

There are several advantages associated with avoiding RLS:

  • Improved query performance: It can result in improved performance due to fewer filters.

这让我认为我的假设示例中的所有 10,000 行都会被评估,因此性能不会提高,但我想联系并验证这一点。

最佳答案

RLS 会影响查询性能,因为它必须在典型的 RLS 设置中执行,获取用户信息,过滤引用表,然后过滤主数据表并返回结果。

在您的示例中,必须返回所有 10,000 行,返回与过滤条件匹配的数据,然后返回结果。

表格引擎将在某种程度上进行优化(通过索引查找数据,而不是扫描整个数据表),但它会对受 RLS 影响的文件管理器数据集产生一定程度的开销,而不仅仅是直接返回全部数据。在 10K 行的示例中,它将在毫秒范围内,但您可以使用 DAX Studio 等工具。或表格编辑器,或 Power BI Desktop 的内置工具,以查看对 RLS 性能的影响。

RLS 可以很快地处理数十百万行或数据,但最终报告性能通常取决于数据集的基数(这有助于数据索引)、它必须遍历的关系数量、复杂性视觉对象中使用的 DAX 的数量、返回到视觉对象的数据量以及报表页面本身上的视觉对象数量。

关于azure - 行级安全性是否总是会降低 Power BI 的性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72577948/

相关文章:

sql - Azure SQL 创建数据库范围的凭据

azure - 是否建议面向客户的应用程序使用 Azure Active Directory 进行身份验证?

azure - "Bot Channels Registration"所需的许可证

powerbi - Power BI API 限制

azure - Databricks Runtime 10.4 LTS - 升级后出现 AnalysisException : No such struct field id in 0, 1

sql - 通过 R 连接到 Azure SQL

azure - azure 中的 Virto Commerce 加密异常

c# - Azure AD B2C - 身份验证质询不触发身份验证

report - 在 Power BI 网站的报 TableView 中隐藏选项卡?

javascript - 打印/生成嵌入式 power bi 报告的 PDF