Strangely enough, I recently benchmarked binding of variables and got some
strange results. They were 6 times slower than sending pure sql.
For more details, see:
http://php.weblogs.com/oracle_mysql_performance
Looking over your article, I noticed a couple of issues relating to Oracle.
It appears to me that you're comparing Oranges and Apples running this benchmark suite. There's a whole other flame war here - just refer to any flame on mySQL vs postgres :)
Short response: mySQL is built for speed and is pretty much does that right out of the box. Oracle is built for size. It's huge out of the box and it's designed to be very huge. Add to that, your application server, Intermedia, various Java/XML bolt-ons and you've got yerself a pretty big install. Add to that the fact that Oracle DBA's make money for a good reason - Oracle needs lots of tuning.
Sure Oracle is going to be generally slower than mySQL because it's a whole other beast - something you've already pointed out yourself.
A couple of other items spring to mind though. Obviously you connected through the listener over the network. How much faster is it if you go through the MTS Dispatcher?
While I note that Thies generally has a pretty good advantage spped-wise with his bound variables, our databases here generally show a much lower gain in performance. Possibly because our DBA has tuned the bejesus out of Oracle so queries run well generally.
How much faster is native Oracle functions over using ADOdb?
I usually don't get on my hobby horse about benchmarks. There are usually plenty of people to do it for me :) but in this case I feel I have to point out these inconsistencies.
I see Thies has provided some test code. How does this code benchmark?
Cheers,
Graeme