I started to use the managed ADO.NET provider (august release version 121010 or 18.104.22.168), but I quickly spotted some severe performance issues when running this provider under 64bit process. It behaves quite acceptable when running 32bit process, but I get around 50% lower performance under 64bits. Is this any known issue or is there any solution to such problem?
I got duration around 0.6s when running following code under 32bit environment and around 1.5s when running under 64bit:
var sw = Stopwatch.StartNew();
using (var conn = new OracleConnection(ConnectionString))
for (var i = 0; i < 100; i++)
using (var cmd = conn.CreateCommand())
cmd.CommandText = "select sysdate from dual";
var result = Convert.ToDateTime(cmd.ExecuteScalar());
I profiled the application using DotTrace profiler to see what's taking so long. Unfortunately it looks like almost every operation takes twice as much when running application in 64 bits. See the profiler screenshot below (32bit on left, 64bit on right). I can also provide full DotTrace snapshots if someone is interested.