If noone has benchmarks- can someone from the ODP team comment as to what our expectations for the managed driver should be?
Should we expect performance less than, equal to, or better than the unmanaged driver?
The answer is YMMV. Some managed ODP.NET apps will be faster and some will be slower. It depends on what your ODP.NET code does.
If ODP.NET were a car, it would be easier to provide a definitive performance measure. You drive the car in a straight line, which is generally how everyone operates a car.
ODP.NET is an API. There are many ways to use the API: how to retrieve data, data types, how much tuning is done, data characteristics, inserts/updates/selects, distributed transactions, etc. Some operations in certain code paths are faster. Some are slower. How fast your app is depends on which code paths it uses and how frequently. There is no benchmark that can provide a representative idea of what you will ultimately see in your own app unless your app is almost exactly like the benchmark, but I've never found that to be the case.
I have noticed SIGNIFICANT performance gains using Managed ODP.NET over Unmanaged - for my use cases. In particular, scenarios involving hundreds, or thousands of executions per second. This is due to not having to marshal back and forth between managed and unmanged code... I was literally blown away... also less idle connections to the DB which makes our DBAs happy, somehow the connection pooling seems better.