Your Power BI dataset uses DirectQuery to an Azure SQL Database. Users complain that the report is slow. You need to improve query performance without changing the data source. What should you do?
Trap 1: Add more visuals to the report to distribute the load.
Adding more visuals does not spread the query workload; it multiplies it, because each visual issues its own DirectQuery query and Power BI may run them concurrently against Azure SQL. This can create connection pool contention and increase CPU and I/O on the source database, making performance worse, not better. To reduce load, you should consolidate visuals or use fewer, not add more.
Trap 2: Increase the scheduled refresh frequency.
DirectQuery does not use scheduled refresh—the dataset is not cached and every interaction queries Azure SQL live, so refreshing an Import-mode cache has no bearing on DirectQuery query performance. Increasing refresh frequency would only matter if you had switched to Import mode, and even then it updates cached data, not the speed of queries against it. For DirectQuery, the lever is reducing source-side work (indexes, query folding), not refresh cadence.
- A
Reduce the number of columns and rows retrieved by the report visuals.
Each DirectQuery visual translates to a query sent to the Azure SQL database, so reducing the columns selected and rows filtered at the source directly cuts the data scanned, transferred, and processed. Pruning columns (avoiding SELECT *) and applying filters or page-level slicers lets the engine push down more work to SQL Server via query folding, which lowers load and improves visual response time. This is the foundational DirectQuery optimization.
- B
Add more visuals to the report to distribute the load.
Why wrong: Adding more visuals does not spread the query workload; it multiplies it, because each visual issues its own DirectQuery query and Power BI may run them concurrently against Azure SQL. This can create connection pool contention and increase CPU and I/O on the source database, making performance worse, not better. To reduce load, you should consolidate visuals or use fewer, not add more.
- C
Switch the dataset to Import mode.
Switching the dataset to Import mode would eliminate DirectQuery queries during report interaction because data is cached in memory, but that is an architectural change rather than a DirectQuery tuning technique; it abandons the real-time querying that DirectQuery provides and introduces separate refresh scheduling and potential data freshness staleness. In a question focused on improving DirectQuery performance, the goal is to optimize the live queries, not replace the connectivity mode.
- D
Increase the scheduled refresh frequency.
Why wrong: DirectQuery does not use scheduled refresh—the dataset is not cached and every interaction queries Azure SQL live, so refreshing an Import-mode cache has no bearing on DirectQuery query performance. Increasing refresh frequency would only matter if you had switched to Import mode, and even then it updates cached data, not the speed of queries against it. For DirectQuery, the lever is reducing source-side work (indexes, query folding), not refresh cadence.