by Jerod Johnson | June 16, 2020

High Performance Drivers for Relational Databases

At CData, we are most commonly known for technologies that enable SQL access to SaaS, cloud, and other non-relational data sources. With application and data storage becoming increasingly distributed, solving the diverse connectivity needs of modern BI, ETL, and data integration has been a natural sweet spot for our technologies. A familiar 'database interface' dramatically simplifies how applications work with data, and our driver frameworks make it easy to drop in connectivity with just about any modern or legacy application.

As popular as SaaS and cloud integration has become, it is still a small fraction of relational database integration. Some form of relational database powers almost every application, and because of this, RDBMS integration technologies are ubiquitous and often freely available.

However, most of the free or open-source RDBMS drivers have not kept pace with modern innovation. Many of these drivers are either missing critical security features, performance tuning capabilities, server-side optimizations, or have been weighed down by restrictive licensing.

At CData, we invest heavily in fine-tuning our drivers to offer the industry's fastest and most comprehensive data connectivity - even for relational databases. Our drivers provide faster read access from relational databases by optimizing the use of client-side resources like CPU, system memory, and network utilization. In this post, we briefly compare the performance of our MySQL and SQL Server wire protocol Drivers to that of the native drivers and include links to more in-depth comparison articles with detailed data.

MySQL Driver Performance

For MySQL, we compared our JDBC and ODBC wire protocol Drivers to the native offerings. In addition to read performance and client-side resource usage, we also compared write speed, measuring the amount of time required to insert 1 million rows of data.

JDBC Read Performance

The CData JDBC Driver read large datasets from MySQL more than 20% faster than the native driver did.

JDBC Query Times by Company (in seconds)
Rows Queried CData Software Native
~10,000,000 171.09 (+20.7) 206.42

JDBC Client Resources

A side-by-side comparison of how each driver utilizes client-side resources reveals stark differences. These graphs show the CData Driver peaks at about 150 MB of heap usage, while the native driver dwarfs that, using increasingly more memory as the read progresses and ending at nearly 8 GB of heap usage.

* Note the change in scale for the Heap graph.

ODBC Read Performance

The CData ODBC Driver also read large datasets from MySQL more than 20% faster than the native driver did.

ODBC Query Times by Company (in seconds)
Rows Queried CData Software Native
~10,000,000 171.09 (+20.7) 206.42

ODBC Client Resources

Each ODBC driver uses about the same amount of available processing power (20 - 25%). The difference comes in the available network bandwidth used, where the CData Driver uses around 250Mbps compared to the 100Mbps used by the native driver.

Million Row Challenge

In addition to reading a large set of data, we took on the challenge of inserting 1 million rows into the MySQL database, where the CData Driver was able to insert data nearly 40% faster than the native driver.

Time (in Seconds) to Insert 1m Rows
CData JDBC Driver MySQL Connector/J
77.6 127.9

Read the Article

For more information, including a full description of the data queried, read the full comparison article in our Knowledge Base.

Continue to the MySQL Article »

SQL Server Driver Performance

For SQL Server, we compared our JDBC wire protocol Driver to the native offerings. In addition to read performance and client-side resource usage, we also compared write speed, measuring the amount of time required to insert 1 million rows of data.

JDBC Read Performance

The CData JDBC Driver read large datasets from SQL Server nearly 23% faster than the native driver did.

JDBC Query Times by Company (in seconds)
Rows Queried CData Software Native
~10,000,000 52.46 (+22.9%) 64.49

JDBC Client Resources

The side-by-side graphs show the CData Driver averages around 150 MB of heap usage, while the native driver averages around 100 MB of heap usage.

Million Row Challenge

In addition to reading a large set of data, we took on the challenge of inserting 1 million rows into the SQL Server database, where the CData Driver was able to insert data substantially faster than the native driver inserted the data.

Time (in Seconds) to Insert 1m Rows
CData JDBC Driver Native JDBC Driver
15.9 16.4

Read the Article

For more information, including a full description of the data queried, read the full comparison article in our Knowledge Base.

Continue to the SQL Server Article »

Free Trials & More Information

Thanks to the CData Drivers, relational database users can connect to live data faster than with any other connector. This speed enables ad-hoc querying of database data, saves users money (by reducing the amount of time required for high resource allocation), and allows for responsive reporting, dashboards, and more.

Check out our MySQL page and SQL Server page for more information on our relational database drivers, including popular integrations. Download a free, 30-day trial of any of our drivers to see the CData Difference for yourself.