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?
  • Natarajan_M's avatar
    5 months ago

    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

  • cengizhanarslan's avatar
    5 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