When using Oracle I sigh often (from the perspective of a database developer).
Oracle have, by design, implemented instability into their execution plan costings. Again, and to repeat this, by design, and with numerous detrimental side effects.
Oracle-L is brimming with examples where informed and experienced developers, consultants with both an applied and theoretical bent, and DBA’s have to battle this design decision on a regular basis. An Oracle-L thread relating to this execution plan instability attracted my attention today. Again, to repeat a third time, Oracle have introduced plan instability, or as I prefer to think of it, plan lability (I have blogged on this previously, and plan lability is really is one of my buttons) into their products, and today it again causing more grief, no doubt with knock-on commercial implications. Dynamic adaptive and unpredictable behaviour embedded within the DBMS is even one of Oracle’s unique selling points/USP’s.
The proposed yet common solution to fix this execution plan lability problem is to change a hidden parameter to disable some feature of Oracle. The approach is bordering on being a backdoor to something internal to the Oracle database. The other common approach is to hint the query to coerce Oracle into choosing a different execution plan. Both approaches provide workarounds for a specific Oracle version, but more often than not cause other issues after a database version upgrade.
I am relieved to be well down the path of skilling-up in SQL Server. I have known for some years that I have backed the wrong horse with Oracle. The continual stream of evidence on bad design and bug after bug in Oracle, as demonstrated on Oracle-L today as well, reinforces my views.
I appreciate this isn’t a formal blog post – more of a gripe, brief opinion piece, or a note adding to the growing body of opinion on Oracle frustrations. The number of successful RDBMS implementations that compete with Oracle has grown considerably over the past two decades. I understand why. Fortunately for me, this time I am an observer to this snafu, not a participant in it, but it grates me that I didn’t jump ship earlier.
— Published by Mike, 13:54:52 11 Jan 2021 (GMT)
By Month: November 2022, October 2022, August 2022, February 2021, January 2021, December 2020, November 2020, March 2019, September 2018, June 2018, May 2018, April 2018
Apple, C#, Databases, Faircom, General IT Rant, German, Informatics, LINQ, MongoDB, Oracle, Perl, PostgreSQL, SQL, SQL Server, Unit Testing, XML/XSLT
Leave a Reply