Pipelined database operation performance redux with python-oracledb: very impressive

Christopher Jones
1 min readSep 12, 2024

--

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.

Photo by Matt Paul Catalano on Unsplash

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.

Resources

--

--

Christopher Jones

Oracle Database Product Manager for language drivers including Python python-oracledb, Node.js node-oracledb, PHP OCI8 and more! On Mastodon: @cjbj@phpc.social