Top 60 Oracle Blogs

Recent comments

October 2016

My session workload

My old website ( will be disappearing in a couple of weeks – but there are a couple of timeless articles on it that are worth saving and although the popularity of this one has probably been surpassed by Tanel Poder’s Snapper script, or other offerings by Tom Kyte or Adrian Billington, it’s still one of those useful little things to have around – it’s a package to takes a snapshot of your session stats.

The package depends on a view created in the SYS schema, and the package itself has to be installed in the SYS schema – which is why other strategies for collecting the information have become more popular; but if you want to have it handy, here are the two scripts:

Data denormalization … another take

I read an interesting article the other day about data modelling and data denormalization.

I’ll paraphrase the topic and requirement here (apologies to the original author for any omissions or excessive brevity).

We have a fictional application with chat rooms, people subscribing to those chat rooms, and posting messages in the chat rooms.  To satisfy this we have the following data model




EM13c Release 2 is here!

It’s been a long time coming, but finally we can announce than Enterprise Manager Cloud Control 13c Release 2 is here! So what are the main new features? Obviously I can’t cover them all in a single blog post, but here are the ones that are highlights to me.

Support for Transport Layer Security 1.2

For our security minded customers, this is functionality that people have been waiting a long time for. Communication between the agent and OMS, the agent and the targets, and in case of target types such as Oracle databases, between the OMS and the targets are now secured with TLS1.2 protocol.

Support for IPv6

Enterprise Manager 13cR2 can now be configured on pure IPv6 or dual IPv6/IPv4 stacks, and it can also be used to monitor and manage IPv6 enabled Exadata systems and IPv6 configurations with (RAC) databases.

Exadata Express – I’m in !

Jumping into 12.2 on Exadata Express is made easy with the packaging up of the client configuration files.  Here’s what I had to do to get SQL Plus going into the database

1) Download the client credentials file from the Service Console




2) Unzip the file into a folder


Upcoming Events and Speaking Engagements- Fall 2016

My sabbatical from speaking is about to end in another week and it will return with quite the big bang.

Oracle Database – Generating JSON in the Database using SQL/JSON operators

Oracle 12.2 is available, although still only in the Oracle Cloud via Oracle’s Exadata Express…

Kill CPU

My old website ( will be disappearing in a couple of weeks – but there are a couple of timeless articles on it that are worth saving and a method for soaking up all the CPU on your system with a simple SQL statement against a small data set is, surely, one of them. Here, then is a little script that I wrote (or, at least, formalised) 15 years ago to stress out a CPU:

Oracle Database Cloud (DBaaS) Performance Consistency - Part 4

This is the fourth part of this installment, comparing the performance consistency of the DBaaS cloud offering with a dedicated physical host. This time the previous read-only test was modified to be a 100% update read-write test. So every row read was updated in the following way:

    for rec in (
          select /*+

Singing The NoCOUG Blues

This is a re-post of an interview between myself and Iggy Fernandez, editor of the Journal of the Northern California Oracle Users Group (NoCOUG), Oracle ACE, OakTable member, blogger, and simply an amazing person.  The interview starts on page 4 of the August 2014 issue of the NoCOUG Journal, and demonstrates how a gifted interviewer can make someone being interviewed more interesting and coherent.

Singing The NoCOUG Blues

You are old, father Gorman (as the young man said) and your hair has become very white. You must have lots of stories. Tell us a story!

Generating random data

We all need to create random data every now and again. Most of the times I have resolved to simply using dbms_random to generate random strings and numbers. The problem with approach though, is that data does not look like "real" data, and indexing will not be realistic. The Alexandria library contains a package that has a few functions random_util_pkg, but it is limited in the type of data you can create, and I felt that there were a couple of more parameters where I needed a bit more control on the output.

So I have created RANDOM_NINJA which for now has the basic functions that I needed.

Just see the quick demo I have created below: