Ssas 如何解决行级安全性能影响

Ssas 如何解决行级安全性能影响,ssas,dax,ssas-tabular,azure-analysis-services,Ssas,Dax,Ssas Tabular,Azure Analysis Services,我有一个带有事实表和相关维度表的星型模式 我有行级安全性,它同时应用于事实表和维度表。重要的是,最终用户不能在维度表中看到他们不允许看到的值,许多度量值是基于事实表中的外键计算的,因此这里需要安全性来确保一致的结果 这对性能的影响是巨大的,因为任何查询任何单个表的查询都需要根据RLS谓词筛选模型中的每个表,并在返回结果之前进行联接,即使对于查询中未包含的表也是如此 是否有任何已知的方法可以提高性能或允许筛选只应用于查询中包含的表,而不是处理每个表/联接?我没有遇到RLS所面临的问题,尽管我也从未

我有一个带有事实表和相关维度表的星型模式

我有行级安全性,它同时应用于事实表和维度表。重要的是,最终用户不能在维度表中看到他们不允许看到的值,许多度量值是基于事实表中的外键计算的,因此这里需要安全性来确保一致的结果

这对性能的影响是巨大的,因为任何查询任何单个表的查询都需要根据RLS谓词筛选模型中的每个表,并在返回结果之前进行联接,即使对于查询中未包含的表也是如此


是否有任何已知的方法可以提高性能或允许筛选只应用于查询中包含的表,而不是处理每个表/联接?

我没有遇到RLS所面临的问题,尽管我也从未尝试将RLS应用于事实表

理想情况下,您只能通过维度内的选择访问事实数据表中的数据。当用户访问报告时,他们将只能看到满足RLS标准的维度记录,然后这些维度记录将根据模型中的具体关系过滤事实表。因为RLS处理的是一个小得多的维度表,所以RLS过滤器不会花费很长时间,并且生成的DAX查询也会很好地执行到事实表中

通过将过滤器直接应用于事实表,您需要在每次查询时处理事实表,而不是利用预处理和优化的关系


我认为解决您的问题的唯一方法是重新考虑您的设计,这样您就不需要将RLS应用于事实表,因为这绝对是一个坏主意。

我没有经历过您在使用RLS时面临的问题,尽管我也从未尝试将RLS应用于事实表

理想情况下,您只能通过维度内的选择访问事实数据表中的数据。当用户访问报告时,他们将只能看到满足RLS标准的维度记录,然后这些维度记录将根据模型中的具体关系过滤事实表。因为RLS处理的是一个小得多的维度表,所以RLS过滤器不会花费很长时间,并且生成的DAX查询也会很好地执行到事实表中

通过将过滤器直接应用于事实表,您需要在每次查询时处理事实表,而不是利用预处理和优化的关系


我认为解决您的问题的唯一方法是重新考虑您的设计,这样您就不需要将RLS应用于事实表,因为这绝对是个坏主意。

当然,这是非常有意义的。听起来我太谨慎了。我会测试一下。当然,这很有道理。听起来我太谨慎了。我会测试一下。