I have been doing some tests and comparing the performance of Devart's dotConnect Universal to ODP.Net & Npgsql when accesing an Oracle & PostgreSQL database respectively and its pretty disapointing. In both cases, dotConnect Universal is a lot slower than the "native" providers for .NET.
For example, consider my simple test application (which can be found here with the database schema creation scripts). It counts the number of rows in a table then inserts 10,000 rows into that table using a stored procedure. The code has been written in such a way that the same C# code is being used for each of the 4 tests to eliminate it as the cause of the bad performance. Here are the results:
Count rows in table Insert Insert Insert
Connection Type (Oracle) Duration (ms) Duration(ms) Per Row(ms) Rows/sec
--------------------------------------------------- --------------------- --------------- --------------- --------
Oracle.ManagedDataAccess.Client.OracleConnection 34 6,741 0.674 1,483
Devart.Data.Universal.UniConnection(Oracle) 69 17,498 1.750 571
--------------------------------------------------- --------------------- --------------- --------------- --------
Difference 35 10,757 1.076 -912
Count rows in table Insert Insert Insert
Connection Type (PostgreSQL) Duration (ms) Duration(ms) Per Row(ms) Rows/sec
--------------------------------------------------- --------------------- --------------- --------------- --------
Npgsql.NpgsqlConnection 8 6,136 0.614 1,630
Devart.Data.Universal.UniConnection(PostgreSQL) 29 11,187 1.119 894
--------------------------------------------------- --------------------- --------------- --------------- --------
Difference 21 5,051 0.505 -736
This is the last result after a 3 runs, the table is truncated before each test run.
From a developer's point of view (i.e. IMHO), the dotConnect Universal is a brilliant product allowing me to target multiple databases from a single .NET code base with very little effort. But there always seems to be be a downside, no free lunch it seems and for dotConnect Universal it is its performance. So is this the price you pay for supporting multiple databases or is there something I am missing?
P.S. I have asked Devart for support on this but no response (yet) after a week.