Forum Discussion
Refresh Performance with Snowflake
- 6 months ago
Hi manoj_0911 If your question is about improving the refresh performance in general, then you can check the below .
- Query folding -> ensure that your query is getting folded for each table
- Bring only necessary columns from the source
- Push the transformation to the Source side , avoid implementing transformations in the PQ layer / Dax layer e.g calculated columns
- Implement incremental refresh where ever possible
- If you can add the fact tables in Direct query mode and the create a user managed aggreagates (in incremental refresh)
- Take care of the normal design standards data type and precesions like keep data time as date if the time is not helpfull , use integer for joins etc
- enable large model in service and query scaling
Thanks
If this response was helpful in any way, I’d gladly accept a kudo.
Please mark it as the correct solution. It helps other community members find their way faster - 6 months ago
1. Push transformations to Snowflake
Try to keep Power Query as simple as possible and let Snowflake do the heavy work.
Good approach:
-
Use views or optimized SQL queries in Snowflake
-
Avoid complex transformations in Power Query
2. Use Incremental Refresh
For large tables, this is usually the biggest performance improvement.
Configure incremental refresh with parameters such as: "RangeStart", "RangeEnd"
3. Ensure query folding
Power BI should push filters and transformations back to Snowflake. In Power Query: "Right click step → View Native Query". If folding is broken early, Power BI may pull large datasets locally before processing.
4. Reduce imported data
Only import what you actually need:
-
remove unused columns
-
filter historical data
-
avoid importing high-cardinality text columns when unnecessary
Reducing data size improves both refresh time and model compression.
5. Avoid unnecessary table relationships during load
Large models with many relationships can slow processing.
-
prefer star schema
-
avoid complex many-to-many relationships
-
use surrogate keys when possible
-
Hi manoj_0911 If your question is about improving the refresh performance in general, then you can check the below .
- Query folding -> ensure that your query is getting folded for each table
- Bring only necessary columns from the source
- Push the transformation to the Source side , avoid implementing transformations in the PQ layer / Dax layer e.g calculated columns
- Implement incremental refresh where ever possible
- If you can add the fact tables in Direct query mode and the create a user managed aggreagates (in incremental refresh)
- Take care of the normal design standards data type and precesions like keep data time as date if the time is not helpfull , use integer for joins etc
- enable large model in service and query scaling
Thanks
If this response was helpful in any way, I’d gladly accept a kudo.
Please mark it as the correct solution. It helps other community members find their way faster