Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Enhance your career with this limited time 50% discount on Fabric and Power BI exams. Ends August 31st. Request your voucher.

Reply
makbee
New Member

Power BI Data Load - How to set Memory Buffer size to fetch more number of rows per batch call

When trying to load tables from an ODBC Data Source into Power BI Desktop, I notice that Power BI fetches a different number of rows per batch/per call to the data source.

Wider tables with more columns fetch fewer rows per call resulting in higher number of calls to the data source - leading to extremely high load times.

A table with fewer columns loads 1250 rows per call whereas a wider table fetches only 117 rows per call during the data load process.

 

I have increased the MaxEvaluationWorkingSetInMB to 7385MB (max allowed) and yet, the fetch size per call to the Data Source remains unchanged for a given table.

 

I enabled tracing and I'm able to see a Mashup Engine Data Reader that processes data in Pages with a PageRowCount.

 

DataMashup.Trace Information: 24579 : {"Start":"2024-07-06T14:43:24.6805441Z","Action":"RemoteDocumentEvaluator/GetResult<Microsoft.Mashup.Engine.Interface.IDataReaderSource>","HostProcessId":"9200","identity":null,"evaluationID":"5","containerID":"1","PageRowCount1":"117","PageRowCount1":"117","ProductVersion":"2.105.923.0 (22.05)","ActivityId":"8c45147c-bd74-4ac5-b0d3-5b5e99a2c9db","Process":"msmdsrv","Pid":9200,"Tid":12,"Duration":"00:00:39.8562459"}

 

Using the same ODBC driver and Data Source with another ODBC client allows me to fetch the full table with 55500 rows in 28 seconds whereas Power BI ends up fetching 117 rows at a time and takes up over 12 minutes to load the same table.

 

I can imagine that the Stream Reader in PBI allocates a buffer to read a certain number of bytes per call (my best guess is 4MB), and uses the row width to dynamically determine the total number of rows to fetch in each call so it fits in the buffer.

Is there a way to increase the buffer size used to determine the number of rows to fetch in each call to the data source?

1 ACCEPTED SOLUTION
Anonymous
Not applicable

Hi @makbee,

AFAIK, current it does not exist the properties allow you to modify these settings. I'd like to suggest you submit an idea for add support with customized these parameters, or you can try to deploy a web service as the bridge to getting data from driver and buffering and processing these data. Then you can use power bi to getting records from web service to get processed data.

Regards,

Xiaoxin Sheng

View solution in original post

1 REPLY 1
Anonymous
Not applicable

Hi @makbee,

AFAIK, current it does not exist the properties allow you to modify these settings. I'd like to suggest you submit an idea for add support with customized these parameters, or you can try to deploy a web service as the bridge to getting data from driver and buffering and processing these data. Then you can use power bi to getting records from web service to get processed data.

Regards,

Xiaoxin Sheng

Helpful resources

Announcements
July PBI25 Carousel

Power BI Monthly Update - July 2025

Check out the July 2025 Power BI update to learn about new features.

Join our Fabric User Panel

Join our Fabric User Panel

This is your chance to engage directly with the engineering team behind Fabric and Power BI. Share your experiences and shape the future.

June 2025 community update carousel

Fabric Community Update - June 2025

Find out what's new and trending in the Fabric community.