_optimizer_ignore_hints is now optimizer_ignore_hints

I’m refreshing our Hands-On Lab for Oracle Database 18c. And as part of a performance evaluation I wanted to set an underscore parameter to ignore all hints my load test tool sets. But then I learned: This does not work anymore as _optimizer_ignore_hints is now optimizer_ignore_hints. We made the underscore obsolete in Oracle Database 18c. _optimizer_ignore_hints is now optimizer_ignore_hints Actually in Oracle Database 12.2.0.1 you can find a long list of obsolete parameters here: Obsolete Parameters in Oracle Database 12.2.0.1 (Nov 10, 2016) To be precise: We obsoleted159 parameters. In addition, in Oracle Database 18c we added an additional 8…

DBMS_OPTIM_BUNDLE Package in Oracle 12.2 and 18c

Yes, I did blog about the DBMS_OPTIM_BUNDLE package in earlier Oracle releases before. And I thought (and it was documented this way) that it will disappear in Oracle 12.2 and newer. But in fact you’ll find the DBMS_OPTIM_BUNDLE package in Oracle 12.2 and 18c. Most likely … This is a very interesting case and you may see also my previous blog posts: DBMS_OPTIM_BUNDLE – only available in Oracle 12.1.0.2 – or not? Fixes for Adaptive Features are included in Oracle 12.1.0.2 October 2017 BP Package Differences between Oracle 11.2.0.4 and 12.1.0.2? DBMS_OPTIM_BUNDLE Package in Oracle 12.2 and 18c First of…

Additional Info for Adaptive Features Fixes in Oracle 12.1.0.2

I blogged about the Adaptive Features fixes in the past several times. But following some of the comments readers had I believe there’s some additional info for Adaptive Feature Fixes in Oracle 12.1.0.2 necessary. What happened so far? We delivered the most important fixes not only for adaptive features but only for dynamic sampling and some other things with the Database Bundle Patch in October 2017 for Oracle Database 12.1.0.2. The fixes got delivered on MS Windows a bit earlier. Enabling Oracle 12.2 ADAPTIVE Features in Oracle 12.1.0.2 – BEFORE the patches got included in BPs Oracle 12.2 Adaptive Features…

Fixes for Adaptive Features are included in Oracle 12.1.0.2 October 2017 BP

Finally … the two most important fixes for Adaptive Features are included in Oracle 12.1.0.2 October 2017 BP (Bundle Patch). I’m absolutely happy about this. Almost all of my customer and many folks outside I’m dealing with on a regular basis had to request and wait for merge patches over and over again. And we all knew – also based on the experience of the Real World Performance Team – that these two patches are so important to stabilize Oracle 12.1.0.2 production systems. You may find this ALERT on MyOracle Support: MOS Note 2289719.1 ALERT: Oracle Recommended Adaptive Feature Configuration…

Oracle 12.2 Adaptive Features are enabled in Oracle 12.1.0.2 Windows BPs

Oracle 12.2 adaptive features are enabled in Oracle 12.1.0.2 Windows BPs already, This is quite a surprise to me. But thanks to Michael Pfautz. He alerted me today.as he was wondering why his database didn’t start up anymore after he applied the August 31 Bundle Patch on Windows. It complained about the parameter optimizer_adaptive_features in the SPFILE. Michael had to remove this parameter before he could startup his database again. Oracle 12.2 Adaptive Features are enabled in Oracle 12.1.0.2 Windows BPs We recommend to add two very important parameters to Oracle Database 12.1.0.2 installations. Enabling Oracle 12.2 Adaptive Features in…

DBMS_OPTIM_BUNDLE – only available in Oracle 12.1.0.2 – or not?

The DBMS_OPTIM_BUNDLE package got introduced with the April 2014 Exadata 11.2.0.4 Bundle Patch. And it got introduced for all Oracle 12.1.0.2 databases with the April 2017 Bundle Patch (BP). DBMS_OPTIM_BUNDLE is only available in Oracle 12.1.0.2. Addition March 6, 2018: See the updated blog post about DBMS_OPTIM_BUNDLE available in Oracle 12.2 and 18c onwards. https://mikedietrichde.com/2018/03/08/dbms_optim_bundle-package-oracle-12-2-18c/ For more information on this package on Exadata in Oracle 11.2.0.4 you may look at: MOS Note:1942966.1: Exadata: DBMS_OPTIM Package Philippe Fierens’ blog post from October 2014 Purpose of DBMS_OPTIM_BUNDLE package in Oracle 12.1.0.2 The package got introduced to enable module bug fixes which cause…

Adpative Features Patches with Oracle Peoplesoft

I’ve met David Kurtz, an Oracle ACE Director working for Accenture’s Enkitec division in the UK earlier this year on the OUGN Conference‘s boat trip from Oslo to Kiel and return. We set across the table at dinner. And of course we started discussing “Oracle”. David went to my talk about “How to ensure Performance Stability” before. He did ask me questions about the adaptive features patches I was recommending in my talk: Enabling ADAPTIVE Features of Oracle 12.2 in 12.1 The Adaptive Feature Patches I explained to him that he will have to request these specific two fixes unfortunately…

Adaptive Execution Plans – not available in Oracle SE2

I received an interesting question on the blog the other day: “Are Adaptive Plans an Enterprise Edition only feature?” What does the License Guide say? The Oracle Database 12.2 License Guide says: What does www.oracle.com say? This is the link the customer came across – also saying that Adaptive Execution Plans are an Enterprise Edition only feature: What does this mean for SE2? That is the question Adam had. Does this impact SE2? Will I get an error or – even worse – a license violation if I have optimizer_adaptive_plans=TRUE – which is the default? No, none of it will…

Enabling Oracle 12.2 ADAPTIVE Features in Oracle 12.1.0.2

Oracle Database 12.2 introduces the new split-up adaptive parameters, OPTIMIZER_ADAPTIVE_PLANS and OPTIMITER_ADAPTIVE_STATISTICS. And the key trigger to cure potential and known performance issues in Oracle Database 12.1.0.2 is enabling Oracle 12.2 ADAPTIVE Features in Oracle 12.1.0.2 For more information please see: https://mikedietrichde.com/2016/11/22/optimizer_adaptive_features-obsolete-in-oracle-12-2/ https://blogs.oracle.com/optimizer/entry/optimizer_adaptive_features_in_the Enabling Oracle 12.2 ADAPTIVE Features in Oracle 12.1.0.2 But Oracle Database 12.2 on-premises is not out yet – so what should you do when upgrading to Oracle Database 12.1 – or struggling with some of the “adaptive” features in Oracle 12.1? MOS Note: 2187449.1 Oracle Highly Recommended Adaptive Feature Configuration Parameter Settings for 12.1.0.2.0 It recommends to…

OPTIMIZER_ADAPTIVE_FEATURES obsolete in Oracle 12.2

The Oracle Database 12.1 parameter OPTIMIZER_ADAPTIVE_FEATURES has been made OBSOLETE (i.e. must be removed from the SPFILE when upgrading) in Oracle Database 12.2. It gets replaced with two parameters of whom one is enabled, the other one is disabled by default: OPTIMIZER_ADAPTIVE_PLANS=TRUE by default OPTIMIZER_ADAPTIVE_STATISTICS=FALSE by default Nigel Bayliss, our “Optimizer” Product Manager has blogged about it already with way more detailed insights. https://blogs.oracle.com/optimizer/entry/optimizer_adaptive_features_in_the But as Oracle Database 12.2 on-premises is not available how should you deal with this feature in Oracle Database 12.1? Enabling ADAPTIVE Features of Oracle 12.2 in 12.1     –Mike .

Gather Fixed Objects Stats in PDBs as well?

Yesterday I received an interesting customer question: “Do we have to gather fixed objects stats inside a PDB as well or only in the CDB$ROOT?” The customer told me he couldn’t find anything in the documentation. Neither could I. And I did check also the usual suspects this morning “Best Practices for Gathering Statistics” – but it does not say anything about PDBs and CDBs. Therefore I did a short test: Create a PDB in my Oracle 12.1.0.2 CDB: SQL> create pluggable database PDB3 admin user adm identified by adm file_name_convert=( ‘/u02/oradata/CDB1/pdbseed’, ‘/u02/oradata/CDB1/pdb3’); Open the PDB: SQL> alter pluggable database…

_rowsets_enabled – Apply patch and use the default

I while back I blogged about issues with “rowsets“, a new Oracle 12c feature which unfortunately had two known wrong result (WQR) bugs: Switch off “_rowsets_enabled” in Oracle Database 12c UPDATE: _rowsets_enabled in Oracle Database 12c What does “rowsets” actually mean? I’d like to thank Sankar, our Development manager for providing this explanation which sheds some light on how important this feature actually is: “Rowsets is a SQL execution performance enhancement introduced in Oracle RDBMS release 12.1 and further extended in a future release of the Oracle Database. Prior to 12.1, data processing in the SQL layer were done on…

Global Temporary Tables – Change in Oracle 12c

A few weeks back I was copied on an email conversation about a important change with Global Temporary Tables (GTT) in Oracle Database 12c. Something you need to be aware of when using GTTs in Oracle Database 12.1.0.2: Prior to this release GTTs shared statistics between sessions. Statistics were SHARED between different sessions. Now since Oracle Database 12c this is different by default – statistics on GTTs are visible to the SESSION only. This can be changed and altered of course. And there are pros and cons. But as I’m not an optimizer expert I’m glad that my colleague Nigel…

What happened to the blog post about “12c parameters”?

Two weeks ago I published a blog post about Parameter Recommendations for Oracle Database 12.1.0.2. And I took it down a day later. Why that? I’ve got a lot of input from external sources for the “Parameter” blog post. And I’d like to thank everybody who contributed to it, especially Oracle ACE Ludovico Caldara. Generally there was a bit of a misunderstanding internally about whether we should “advertise” underscore parameters to cure some misbehavior of the database. In 99% of all cases I’d agree that underscores are not a good solution – especially when it comes to database upgrades as…

UPDATE: _rowsets_enabled in Oracle Database 12c

Please find a recent update here: _rowsets_enabled – Apply patch and use the default Last week I did post this entry with a strong recommendation to disable _rowsets_enabled in Oracle Database 12.1.0.2: Nov 10, 2015: Switch off _rowsets_enabled in Oracle Database 12c Today I can give you an update, more insight information and better workarounds. Credits go to our DWH and Optimizer people (thanks to Hermann, Angela, Nigel and Mohammed). When is the problem happening? When a hash join operation receives rowsets from its right input but then produces one row at a time as output. This explains why one…

Switch off “_rowsets_enabled” in Oracle Database 12c

Please find a recent update here: UPDATE: _rowsets_enabled in Oracle Database 12c and more important: _rowsets_enabled – Apply patch and use the default Twitter is a good thing. I get alerted on things I haven’t seen before. And sometimes some things are more than interesting. This one is actually proven by Jonathan Lewis – and you can read all the details in Jonathan’s blog post here: https://jonathanlewis.wordpress.com/2015/11/09/wrong-results/  There seems to be a realistic chance to get wrong query results displayed (regardless of using SQL*Plus or a JDBC or any other client – see the comment by Stefan Koehler below Jonathan’s…

New in Oracle 12c: _optimizer_gather_stats_on_load

Received an email from Roy last night with some performance issues a customer in the US encountered recently during their upgrade testing. One issue the customer encountered has to do with tons of parallel slaves creating a massive noise on the system when they are doing a CTAS (Create Table As Select) – and the same thing happens with an IAS (Insert Append Select). What caused this change? In this case the behavior change is well documented, even though not linked to the responsible underscore parameter. Oracle White Paper: Best Practices for Gathering Statistics – Page 13 (PDF: 15) http://www.oracle.com/technetwork/database/bi-datawarehousing/twp-bp-for-stats-gather-12c-1967354.pdf…

Things to consider BEFORE upgrading to Oracle 12.1.0.2 to AVOID poor performance and wrong results

Finally it got published on MyOracle Support (MOS) portal – one of the most helpful notes when we prep for an upgrade or a migration – and potentially the one with the longest title in MOS: MOS Note: 2034610.1 Things to consider BEFORE upgrading to Oracle Database 12.1.0.2 to AVOID poor performance and wrong results  One important note regarding these “Things to Consider” notes: They will only list issues where either a fix or a proven workaround is available. They don’t list all open issues nor do they recommend every given underscore which may cure one or the other misbehavior….

Optimizer Issue in Oracle 12.0.1.2: “Reduce Group By”

DBAs biggest fears I’d guess are Optimizer Wrong Query Results bugs as usually the optimizer does not write a message into the alert.log saying “Sorry, I was in a bad mood today …”. The Oracle Database Optimizer is a complex piece – and in Oracle 12c it delivers great performance results. Plus (my personal experience when you know what to do) it is more predictable which I like a lot when changing databases from one to another release. But due to its complexity sometimes we see issues – and sometimes it is necessary to switch off tiny little pieces until…

Is it always the Optimizer? Should you disable Group By Elimination in 12c?

I wouldn’t say it’s always the optimizer – but sometimes one or two tiny little things are broken making it necessary to turn off new functionality for a while. Please don’t misinterpret this posting! As far as I see (and I really do work with customers!) I’d state the Oracle Database 12.1.0.2 Optimizer is more stable, faster and predictable compared to 11.2.0.x. Our Optimizer Architects and Developers have done a great job. But with all the complexity involved sometimes it takes a few fixes or incarnations until a great new feature really matures. The Group-By-Elimination feature in Oracle Database 12c…

Avoid Poor Performance and Wrong Results in 11.2.0.4

One of the best notes in MOS got refreshed last night for Oracle Database 11.2.0.4. It has not only information about performance bugs but also about the worst and meanest category of issues, wrong query result bugs. Those are the ones I call the “sleeping beauties” as you as a DBA usually won’t recognize them. It is recognized at the application level when the result of a report is incorrect or instead of 4 rows just 3 rows get delivered in the output. Therefore you should be highly aware of those and add this note to your bookmarks. MOS Note…

Why you shouldn’t set OPTIMIZER_FEATURES_ENABLE

Roy today answered an interesting question on one of our internal mailing lists. And this reminds me to pick up that piece of information as we see this quite often on customer sites, especially after upgrades or migrations. People set OPTIMIZER_FEATURES_ENABLE (OFE) to revert the optimizer’s behaviour to another pre-current release. That’s what a lot of people think this parameter does. But in fact this is not true. Even though our documentation states it: OPTIMIZER_FEATURES_ENABLE acts as an umbrella parameter for enabling a series of optimizer features based on an Oracle release number. For example, if you upgrade your database from release 10.1…

New Slides – and a discussion about Dictionary Statistics

First of all we have just upoaded a new version of the Upgrade and Migration Workshop slides with some added information. So please feel free to download them from here.The slides have one new interesting information which lead to a discussion I’ve had in the past days with a very large customer regarding their upgrades – and internally on the mailing list targeting an EBS database upgrade from Oracle 10.2 to Oracle 11.2. Why are we creating dictionary statistics during upgrade? I’d believe this forced dictionary statistics creation got introduced with the desupport of the Rule Based Optimizer in Oracle…

Wrong statistics in AUX_STATS$ might puzzle the optimizer

We do recommend the creation of System Statistics under certain circumstances for quite a long time. Since Oracle 9i the optimizer works with a CPU and IO cost based model. And in order to give the optimizer some knowledge about the IO subsystem’s performance and throughput – once System Statistics are collected – they’ll get stored in AUX_STATS$. For this purpose in the old Oracle 9i days some default values had been defined – and you’ll still find those defaults in Oracle Database 11g Release 2 in AUX_STATS$. But these old values don’t reflect the performance of modern IO systems….

It’s always the Optimizer, isn’t it?! – Part 1

Wouldn’t you agree? My colleagues from the Optimizer Development might forgive me but a lot of people would say: “Everything went fine after upgrade – except for those tiny 3 queries!”. And I know, you have tested a lot. I’d like to tell you about a few issues we’ve seen post upgrade with 11.2.0.2. You have captured your plans in Oracle 10.2 pre-upgrade. You have moved these plans from your SQL Tuning Set into the SQL Plan Baseline in Oracle 11.2. But the optimizer doesn’t pick them although you have: (a) ACCEPTED and (b) FIXED them. Why? It might be…