Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Get Fabric Certified for FREE during Fabric Data Days. Don't miss your chance! Request now

Reply
PedroModa
Frequent Visitor

Complexity RLS - Help please!

Hi everyone, good evening! I need some help.

 

Recently, a user reached out saying he couldn’t use one of our Power BI reports. At first, I found it strange because he was the only one reporting issues — everyone else has always used the report normally. It’s a clean, well-optimized report following best practices, so it didn’t make sense that only he was experiencing such extreme slowness.

 

I did a video call with him and confirmed the issue: the report was practically unusable, nothing would load — and again, this happened only for him. Even worse, his slowness was consuming a huge amount of my Fabric capacity (I’m using Embedded).

 

I started investigating and found that the problem was related to the RLS roles he is assigned to. He is a manager, so he belongs to 25 different RLS roles, each one associated with a cost center. Currently, all these roles share the same particularity: each RLS rule contains two cost center codes (an old one and a new one due to a recent incorporation). For example:

 

  • Rule 1: Old Code 1 OR New Code 1
  • …and so on, up to the 25th rule.

 

 

After digging deeper, I noticed that using OR inside RLS significantly hurts performance — and it seems this is exactly what is breaking the report for this specific user.

 

I tested replacing OR with IN, but the performance was exactly the same, with no improvement at all.

 

My question is: how can I solve this?

 

I thought about switching to dynamic RLS using USERNAME(). However, two problems came up:

 

  1. Manual maintenance: I would constantly need to add and remove people from this table. And it would become a huge table, since we have almost 1,000 employees.
  2. Limited flexibility: this approach works well if I only need to filter by cost center. But if I need to hide information from another table (like “section”), I don’t think it would solve that (at least as far as I understand).

 

 

 

 

Questions:

 

  • Has anyone faced something similar?
  • Is there a more efficient way to handle multiple complex RLS roles?
  • Is there a modeling approach that avoids this performance drop, especially when a user belongs to many RLS roles?

 

 

Any help is greatly appreciated. Thank you!

1 REPLY 1
amitchandak
Super User
Super User

@PedroModa , When you use more than one role, they are treated as OR conditions. Therefore, we need to merge those roles into a single role. This means you must combine the conditions into one role if you want them to function as an AND condition

Share with Power BI Enthusiasts: Full Power BI Video (20 Hours) YouTube
Microsoft Fabric Series 60+ Videos YouTube
Microsoft Fabric Hindi End to End YouTube

Helpful resources

Announcements
November Power BI Update Carousel

Power BI Monthly Update - November 2025

Check out the November 2025 Power BI update to learn about new features.

Fabric Data Days Carousel

Fabric Data Days

Advance your Data & AI career with 50 days of live learning, contests, hands-on challenges, study groups & certifications and more!

FabCon Atlanta 2026 carousel

FabCon Atlanta 2026

Join us at FabCon Atlanta, March 16-20, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM.

Top Solution Authors