Skip to content

Oracle 12c

Invisible indexes: it’s online in 12c – even in Standard Edition

By Franck Pachot . Do you think that online operations are available only on Enterprise Edition? That changed in 12c, there is an operation that is online (without the need for the ONLINE keyword) and available in Standard Edition and a very important feature for performance tuning: invisible indexes. Example I’ll show it from the SCOTT schema where I’ve added… 

Oracle 12c duplicate in cluster fails with ORA-65500

I had to perform a duplicate database between 2 ODAs and was always facing an ORA-65500 at the begin of the RMAN operation. Looking a bit deeper in the log outputs pointed me out that it was due to some changes in the way RMAN makes the duplicate in 12c and cluster resources management. Basically up to 12c when RMAN… 

“FRA full” alerts flood the Alert Log

We discovered a strange behavior in the Alert Log when the Fast Recovery Area (FRA) is full and the database wants to write something inside it (for example an archivelog). This case concern Oracle 11.2.0.3 databases and higher. Here is a demo with a 12c database (12.1.0.2) : First, to reproduce the behavior, I set a very small size to the FRA :… 

OCM 12c preparation: Materialized View explain_rewrite

By Franck Pachot . When I passed the OCM 11g exam, I had to prepare the ‘Manage Materialized Views to improve rewrite’ topic. Now that I’m preparing the 12c upgrade I checked quickly what I’ve prepared… and it doesn’t work. This post is about query rewrite, a bug in 12c, how to understand why it doesn’t rewrite, and how rewrite… 

DataGuard broker properties – Part I: imported parameters

By Franck Pachot . When you are using the DataGuard Broker, you should always use the broker (with DGMGRL or OEM) to change the parameters that are managed, rather than changing them with ALTER SYSTEM. But do you know which parameters are concerned? I’ve divided the parameters in two parts. All are set by the broker, but only some of… 

Multitenant vs. schema based consolidation

By Franck Pachot . If you want to install multiple instances of a software, for example you host the ERP for several companies or subsidiaries, you have 3 solutions: have one database and multiple schema have multiple databases have one database and multiple pluggable databases Of course, this is exactly the reason for pluggable databases: multitenant. You have good isolation… 

Multithreaded 12c and ‘connect / as sysdba’

By Franck Pachot . In Oracle 12c you can run Oracle processes as operating system threads, lowering the number of OS processes. But you can’t use OS authentification: you need to provide a password. Here is a way to set an environment so that you can still ‘connect / as sysdba’ to a multithreaded instance. Windows I start with Windows… 

Parallel DML in 12c

By Franck Pachot . Following a question from Randolf Geist (who can imagine that there is something about parallel query that Randolf didn’t know?), I get back to some notes I’ve taken when 12c was out and I’ve tested them again on 12.1.0.2 – it’s about the ability to enable parallel DML at query level. Test case In 12.1.0.2 I… 

Can you have pending system statistics?

By Franck Pachot . Your system statistics seems to be wrong and you want to gather or set more relevant ones. But you don’t want to see all your application execution plans changing between nested loops and hash joins. For object statistics, we can gather statistics in a pending mode, test them in a few sessions, and publish them when… 

How to disable a SQL Plan Directive permanently

By Franck Pachot . In 12c you will see a lot of SQL Plan Directives. Some are useful to get better execution plans, but some will trigger too much Adaptive Dynamic Sampling and that can become a big overhead, especially in Standard Edition. Then you don’t want to drop them – or they will reappear. You can disable them, but… 

DBA_SQL_PLAN_DIRECTIVE.LAST_USED

By Franck Pachot . If you have read Matching SQL Plan Directives and queries using it then you know how to use the ‘+metrics’ format of dbms_xplan. 21:49:54 SQL> explain plan for select distinct * from DEMO_TABLE where a=0 and b=0 and c=0 and d=0; Explained. 21:50:01 SQL> select * from table(dbms_xplan.display(format=>’basic +rows +note +metrics’)); PLAN_TABLE_OUTPUT ———————————————————————————- Plan hash value:… 

Variations on 1M insert (6): CPU Flame Graph

By Franck Pachot . If you followed the 1M rows insert variations, you have seen how something simple brought me into an investigation with the latest tools available to see where the time is spent. When the time is CPU time, there is no wait event to get the detail of DB Time. I’ve used perf events in the previous post…