I’m facing a critical performance issue when using Power BI Desktop + DirectQuery (connected to Hologres/PostgreSQL-compatible) for ad-hoc analysis. The problem is NOT on the database side, but caused by Power BI auto-generated DAX and Formula Engine (FE).
Steps to Reproduce (No custom DAX at all)
- Use DirectQuery over a data warehouse table.
- Simply drag dimension fields into a Table visual: Date, Region, Warehouse, Delivery Method, Express, Province, City, etc.
- No measures, no complex calculations – just viewing details.
Issue
- Refresh time: ~58 seconds
- UI freezes completely
- Database SQL execution time: only ~1 seconds (returns 130k rows)
- 99% time spent on Power BI FE, not query
Root Cause (Proven by DAX Studio & ServerTimings)
- Power BI auto-generates heavy DAX:
- SUMMARIZECOLUMNS + ROLLUPADDISSUBTOTAL (forced subtotals/grand total)
- Full sorting across many fields + TOPN(1000001)
- DirectQuery pushes data warehouse-level aggregation to the single-threaded frontend FE
- Even with Totals turned off, the query remains too heavy for ad-hoc usage
User Impact (Common enterprise scenario)
- Business users drag fields flexibly for ad-hoc analysis
- No DAX, no modeling – just simple tables
- DirectQuery must support lightning-fast detail queries
Suggested Optimizations
- Optimize auto-generated DAX for detail tables
- Do NOT generate ROLLUP/ISSBTOTOTAL by default
- Reduce unnecessary sorting & nesting
- Lightweight DirectQuery for details
- Push down simple SELECT instead of heavy grouping
- Add pagination / row limit by default
- Isolate performance
- Separate detail table rendering from heavy FE computation
Please fix this issue so DirectQuery can support
fast, ad-hoc, drag-and-drop analysis for real business users.
Thank you!
servertimings
table