Forum Discussion

Anonymous's avatar
Anonymous
Not applicable
7 years ago

Salesforce Objects direct connect with PowerBI will reduce Salesforce performance ?

Hi!
I have been using PowerBI to set up reports and dashboards connecting via the Salesforce Objects to overcome the limitation (2 000 rows max) of the API with Salesforce reports. In most cases it can be done in a straightforward way, ie identify the object, cut out the parts you don't need and then import it into PowerBI desktop to set up any relationships etc there. In some cases I have used the relationship columns but as a rule I try to avoid that since it will have a negative effect on loading and refresh times.


Since about 6 months it has become almost impossible to use the relationship columns, it will take like forever to update and in some cases it is not even possible to get a view in the Query editor.


Has someone else noticed this? Is there a way to improve performance?
What changes have been made? A while back we went


I really only use relationship columns where there is no other option but for some data I cannot get away from them so this is really causing problems!

5 Replies

  • v-yulgu-msft's avatar
    v-yulgu-msft
    Microsoft Employee

    Hi Anonymous ,

     

    Calculations that need to cross relationships, especially on large tables, will have a noticeable hit on performance. 

    • Avoid relationships on calculated columns and unique identifier columns.
    • Try setting “Assume Referential Integrity” on relationships – in many cases, this can significantly improve query performance. 
    • Avoid both-directional relationships if possible. 

     

    Reference:

    Power BI performance best practices

    What is the Direction of Relationship in Power BI?

     

    Best regards,

    Yuliana Gu

    • Anonymous's avatar
      Anonymous
      Not applicable

      Hi, 

       

      Thank you for the response. I think that I need to clarify a bit.

       

      My problem is focused on getting the data via the query editor. When accessing Salesforce Objects via the query editor theere is a choice to include so called "Relationship columns". These can then be expanded to show the columns and selecting the ones that are needed. 

       

      So there is no calculation involved.

       

      There is a huge difference. A Salesforce Object of 150 000 rows will load in 2-3 minutes. If I expand one of the relationship columns that load time will go to 15 minutes or even longer!

       

      What can I do to improve that?

  • Hi, I know this reply is very late lol, but were you able to find a solution? As a workaround, maybe you can try to test your connection with a 3rd party connector. I currently use windsor.ai's SF connector which is also compatible with objects and I don't have to deal with that 20,000 rows limitation. In case you wonder, to make the connection first search for the Salesforce connector in the data sources list:

     

     

    After that, just grant access to your Salesforce account using your credentials, then on preview and destination page you will see a preview of your Salesforce fields:

     

     

    There just select the fields you need. It is also compatible with custom fields and custom objects, so you'll be able to export them through windsor.  Finally, just select PBI as your data destination and finally just copy and paste the url on PBI --> Get Data --> Web --> Paste the url. 

     

  • I would recommend switching from Salesforce Objects to Salesforce Reports. Salesforce Reports connector is the most convenient way of extracting data into Power BI. It is most convenient because it has all the columns that you need in a single table. You can click "get data" and you will find it there.

     

    The connector only allows you to extract up to 2000 rows though. However, you can work around this limitation using third-party tools. Here is the approach that I would recommend: https://vidi-corp.com/connect-salesforce-reports-to-power-bi/

     
  • metrica's avatar
    metrica
    Post Prodigy

    Hello,

     

    The slowdown is probably related to expanding Salesforce relationship columns in Power Query.

     

    A base Salesforce object with 150K rows can load reasonably fast, but expanding relationship columns can become expensive because Power Query may need extra backend work or local processing to resolve related records. That explains why refresh can jump from a few minutes to 15+ minutes.

     

    I would avoid expanding relationship columns directly where possible. A better pattern is:

    1. Load the main Salesforce object with only the fields you need.

    2. Load the related Salesforce object as a separate query.

    3. Keep only key fields and required columns.

    4. Merge the tables in Power Query or model the relationship in Power BI.

    5. Filter early and avoid broad relationship trees.

    Power BI Connector for Salesforce by Metrica Software can help prepare a cleaner Salesforce dataset before it reaches Power BI: https://appexchange.salesforce.com/appxListingDetail?listingId=31526f0e-abd8-4cb5-bd1a-3bd56b5c0577

     

    It lets you select Salesforce objects and fields, apply filters, preview the output, and use SOQL mode when you need more control. This can help reduce unnecessary relationship expansion and create a more focused Power BI dataset.

     

    Docs and support:
    https://metricasoftware.com/docs/salesforce/
    https://metricasoftware.com/docs/salesforce/contact-support/

     

    Cheers,
    Metrica Team