Discover how a bimodal integration strategy can address the major data management challenges facing your organization today.
Get the Report →A Performance Comparison of Drivers for Salesforce.com
In this article, we compare the performance of the CData Drivers for Salesforce to the equivalent drivers produced by various vendors. We compare read performance, measuring the amount of time that it takes to query a Salesforce.com instance for data and process the result set in some way.
The test machine specifications are as follows:
Operating System: Windows 10
Processor: Intel® CoreTM 2 Quad CPU Q8400 @ 2.66GHz
Installed Memory (RAM): 6.00 GB
System type: 64-bit Operating System
Since the drivers are being compared side by side, the performance of the machine itself is relatively unimportant; what matters is how the drivers compare relative to one another.
The Data
For sample data, we populated a Salesforce sandbox with almost 600,000 accounts, to be read and processed by each of the drivers tested for the comparison. You can see the table details below:
Table | Number of Rows |
---|---|
Account | 593,919 |
Query
The main goal of this investigation was to compare the related performance of the drivers. We did this by running the same queries with each driver. To simulate actual processing of the data beyond simply reading from Salesforce, we stored the values of each row in an array (which was replaced for each row). For the tools that do not always use SQL, like the SSIS components, we configured the products to retrieve all of the available data from the Account table. In some cases, we limited the number of results using a LIMIT clause. You can see the exact queries sent by the drivers that communicate with SQL below.
- SELECT * FROM Account LIMIT 100000
- SELECT * FROM Account
Results
Below, you can see the performance of the various queries, based on the driver/platform.
SSIS Components
There are several vendors that provide components for connecting SQL Server with live Salesforce data. We compared those publicly available by requesting all data from the Account table and writing it to a text file. The times required for each product to process the results are in the table below.
SSIS Query Times by Company (in seconds) | |||||
---|---|---|---|---|---|
Query | CData Software | Company 1 | Company 2 | Company 3 | Company 4 |
~590,000 rows | 122.2 (+58.5% - +543.9%) | 193.7 | 328.4 | 378.2 | 786.9 |
As you can see above, the CData Software SSIS components are able to work with large result sets faster than any of the competing products, processing the account data at least twice as fast as most of the competing products while being 50% faster than the closest competitor.
The average runtime for the query is compared in the chart below:
Results for ~590,000 Rows
JDBC Drivers
CData Software and another Company (Competitor) provide JDBC drivers that allow you to connect to Salesforce data in Java applications and JDBC-compliant BI, reporting, and ETL tools. To compare the drivers, we used the queries described above, retrieving data from 100,000 accounts and data from approximately 590,000. The times required for each product to process the results are in the table below.
JDBC Query Times by Company (in seconds) | ||
---|---|---|
Query | CData Software | Competitor |
~100,000 rows | 20.3 (-2.3%) | 19.8 |
~590,000 rows | 47.5 (+87.8%) | 89.2 |
As can be seen in the results, the CData JDBC Driver was able to work with large result sets faster than the Competitor JDBC driver, processing the largest data set nearly twice as fast as the Competitor driver.
The average runtime for each query is compared in the charts below:
Results for 100,000 Rows
Results for ~590,000 Rows
Mulesoft Connectors
CData Software and Mulesoft provide connectors that allow you to connect to Salesforce data in Mule applications and related tools, like Anypoint Studio. To compare the connectors we used the queries described above, retrieving data from 100,000 accounts and data from approximately 590,000*. The times required for each product to process the results are in the table below.
Mulesoft Query Times by Company (in seconds) | ||
---|---|---|
Query | CData Software | Native Connector |
~100,000 rows | 30.3 (+64.9%) | 49.9 |
~590,000 rows* | 128.2 (+99.6%) | 256.0 |
* - The flows created made use of a Weave/Transform Message component. When we tried to use an Object to JSON transformer, we encountered Java heap space errors for the full data set with both connectors, highlighting a limitation of the transformer and not of the connectors themselves.
As can be seen in the results, the CData Mulesoft Connector for Salesforce was able to work with large result sets faster than the native connector, processing the largest data set about twice as fast.
The average runtime for each query is compared in the charts below:
Results for 100,000 Rows
Results for ~590,000 Rows
Conclusion
The CData Software drivers regularly prove to be faster than the competitors' equivalent products, particularly when dealing with large data sets. Our developers have spent countless hours optimizing the performance in processing the results returned by Salesforce to the point that the drivers seem to only be hindered by web traffic and server processing times.