Pipelined database operation performance redux with python-oracledb: very impressive
In Pipelined database operations with python-oracledb 2.4 I gave a simple benchmark showing the performance benefit of Oracle Database 23ai Pipelining. We now have results which are even more impressive.
The system testing team (thank you!) ran a performance evaluation with Python 3.12 and python-oracledb 2.4.1 using the same schema they had used for their ODP.NET Pipelining benchmark (discussed here).
The app used 100 threads that repeatedly executed different SELECT statements. The tests measured performance metrics over 20,000 iterations with pipelining enabled versus pipelining disabled:
- Pipelining runs finished 530% faster on average.
- Pipelining runs performed 529% more transactions per second.
- Pipelining runs performed 52% more transactions per second per processor.
I’m not sure I think that last stat is what it says it is, or that it is useful, but I include it for completeness with the ODP.NET results. Regardless the time and TPS figures are very significant!
One interesting, but obvious when you think about it, note is that client CPU usage increases with Pipelining because the client is able to be kept busy and do more work.