Forum Discussion

manoj_0911's avatar
manoj_0911
Kudo Commander
5 months ago
Solved

Refresh Performance with Snowflake

Are there recommended Power BI settings for optimizing refresh performance when importing large datasets from Snowflake?

  • Hi manoj_0911 If your question is about improving the refresh performance in general, then you can check the below .

    1. Query folding -> ensure that your query is getting folded for each table
    2. Bring only necessary columns from the source 
    3. Push the transformation to the Source side , avoid implementing transformations in the PQ layer / Dax layer e.g calculated columns 
    4. Implement incremental refresh where ever possible 
    5. If you can add the fact tables in Direct query mode and the create a user managed aggreagates (in incremental refresh)
    6. 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
    7. 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

  • 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

4 Replies

  • Hi manoj_0911 If your question is about improving the refresh performance in general, then you can check the below .

    1. Query folding -> ensure that your query is getting folded for each table
    2. Bring only necessary columns from the source 
    3. Push the transformation to the Source side , avoid implementing transformations in the PQ layer / Dax layer e.g calculated columns 
    4. Implement incremental refresh where ever possible 
    5. If you can add the fact tables in Direct query mode and the create a user managed aggreagates (in incremental refresh)
    6. 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
    7. 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

  • 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

  • v-ssriganesh's avatar
    v-ssriganesh
    Community Support

    Hi manoj_0911,

    Thank you for posting your query in the Microsoft Fabric Community Forum, and thanks to cengizhanarslan & Natarajan_M for sharing valuable insights.

     

    Could you please confirm if your query has been resolved by the provided solutions? This would be helpful for other members who may encounter similar issues.

     

    Thank you for being part of the Microsoft Fabric Community.

  • v-hashadapu's avatar
    v-hashadapu
    Community Support

    Hi manoj_0911 , Hope you are doing well. Kindly let us know if the issue has been resolved or if further assistance is needed. Your input could be helpful to others in the community.