It’s just bad code or bad design … most of the time

Some years ago I wrote an article for the UKOUG magazine called “Want a faster database – Take a drive on the M25”.  For those not familiar with the United Kingdom, the M25 is one of its busiest roads (M = “motorway”) and because it moves so much traffic, and runs so close to capacity, it has often been referred to as “the world’s largest car park”.  Many people have probably spent a (more...)

Avoiding Lost Updates with ORA_ROWSCN

Applications today use "optimistic locking" to avoid lost updates. Tom Kyte thought of using ORA_ROWSCN for optimistic locking, then decided it didn't work (see ORA_ROWSCN for optimistic locking). I now think it does!

Modified PythonDBAGraphs to use datetime on X axis

I modified PythonDBAGraphs to use datetime objects on the X axis for all the reports except This lets you hover the mouse over a point and see the date and time for the point. Previously I was using text strings as labels with dates and times on the X axis and it was not obvious which point was for which date and time.

Here is a screenshot:

I have an example of a (more...)

I Am Speaking at OTN Yathra 2017

RSS content

The Oracle ACE directors and Oracle Volunteers  in the region are organizing their third evangelist event called ‘OTNYathra 2017’ during the month of June 2017 in a time period of 3 weeks. This yathra, managed by ACE directors and Oracle Volunteers of the region, is to travel across the country covering over six major IT focused cities (Chennai, Bangalore, Hyderabad,  Pune, Mumbai and Gurgaon) . It aims  to bring the Oracle community together, giving them awareness (more...)

EBS 12.1.3 Data masking issue with

I tried to data mask the EBS 12.1.3 data with database version but After i masked, I can’t open the application because of SYSADMIN and Guest user was missed. So I raised SR, As per support we need to upgrade database version to otherwise we need to do backport activity. If your database version is, you need to check with Oracle (more...)

Pushed out new version of PythonDBAGraphs

I pushed out a new version of PythonDBAGraphs. I got a new laptop at work so I am setting it up with the software that I need to do my job. I decided that instead of reinstalling Enthought Canopy I would go with the current version of Python 3 and install the packages that I need one at a time. This gives me a cleaner install and I’m on the most current version of Python (more...)

Index compression–quick tip

If you’re appropriately licensed and want to use advanced index compression, you can take advantage of the “db_index_compression_inheritance” parameter which will let you establish compression as a default at a nominated level in the database.  From the docs:



Indexes will be created with ADVANCED LOW compression if the tablespace they reside in has OLTP compression enabled as the default.


If the underlying table is OLTP compressed, the indexes on this table (more...)

OTN Yathra 2017

The amazing 6 city set of events is just around the corner, with all of the dates and details available at


Here are my thoughts on why you should be attending

Instrumentation … not just for debugging

Yeah I know.  You’re probably thinking “Here’s another blog post from someone telling us how important it is to instrument our code, so we can get better debugging, better performance, blah blah blah”.

If that is your sentiment, then I’m thrilled because it means the instrumentation message has got through to the extent that it is now considered just a statement of the obvious.  As many will know, my predecessor was a huge (more...)

X86-64 Assembly Book

I have written earlier blog posts about my diversion from studying Oracle to studying computer science. Here are some relevant posts: url1,url2,url3,url4. After finishing the math for computer science online class and book that I was working on I stared working through a book about assembly language programming. I bought the book in a frenzy of enthusiasm about studying computer science for fun. But then I had to decide (more...)

The village idiot

If you are not familiar with the term Village Idiot, then Wikipedia provides a sufficient definition from which I can base this blog post.

“The village idiot … is a person known for ignorance or stupidity”

Over the past couple of weeks I’ve been flying a bit.  First was OpenWorld and OracleCode in New Delhi in India, and from there, I was heading straight from there to Cleveland, Ohio for the (more...)

Finished reading the Snowflake database documentation

I just finished reading the Snowflake database documentation and I thought I would blog about my impressions. I have not spent a lot of time using Snowflake so I can not draw from experience with the product. But, I read all the online documentation so I think I can summarize some of the major themes that I noticed. Also, I have read a lot of Oracle database documentation in the past so I can compare (more...)



The post SQL FUNDAS appeared first on DBACLASS.

Did You Know #19 – Using LIKE

The LIKE operator is a very useful one. It is used to match strings with partial match while using the underscore (‘_’) as a single character wildcard and the percentage sign (‘%’) as multiple character wildcard. There are a few things you should know and some tricks you can use with the LIKE operator: The underscore … Continue reading Did You Know #19 – Using LIKE

Cedar’s Oracle Talent Acquisition Cloud Event / Team

Earlier this week Cedar held its Oracle Talent Acquisition Cloud event in Oracle’s London City office. We have a really strong team of UK-based Talent Acquisition specialists within our ranks:

Taleo Team 2 (plain background)

Jo, Prachi, Marc and Mel are all experts in the various aspects of Oracle Talent Aquisition Cloud – Taleo Recruit, Sourcing and Onboarding – and Cedar has multiple implementations under our belt covering all of the above products, so we were able to put on (more...)

Comparing Expression Lists (not tuples)

This post is a long-winded answer to a question Bryn Llewellyn asked me on Twitter about comparing expression lists.

Quick tip–identity columns

Lets say I’ve been reading about schema separation, and thus I am going to have a schema which owns all of my objects, which I’ll call APP_OWNER, which will have no connection privilege and a separate schema called APP_ADMIN which will take care of all of the DDL tasks.

Here’s my setup:

SQL> create user app_owner identified by app_owner;
User created.
SQL> grant
  2    create session,
  3    create any table,
  4    create any sequence,
  5   (more...)

DOAG Exaday 2017: a preview

I am quite excited to have been accepted to speak at the upcoming DOAG Exaday taking place June 20 in Frankfurt. It is the third time I have been lucky enough to present at the event, having spoken both in Frankfurt in Hamburg in previous years.

As you can probably imagine by looking at this weblog, I am a great supporter of the Oracle Engineered Systems community. My interest is not limited to Germany: I still remember (more...)

Session killin’ time

As developers, sometimes we set something running that we wish we hadn’t Smile  And naturally, we’d like to be good IT citizens and clean up the mess as quick as we can.  (For most of us, this means – cover our tracks before the phone rings about smoke coming out of the server).  But of course, getting an administrator to hand over the trigger to let you have the ALTER SYSTEM KILL SESSION (more...)

Submitted two abstracts for Oracle OpenWorld 2017

I submitted two abstracts for Oracle OpenWorld 2017. I have two talks that I have thought of putting together:

  • Python for the Oracle DBA
  • Toastmasters for the Oracle DBA

I want to do these talks because they describe two things that I have spent time on and that have been valuable to me.

I have given several recent talks about Delphix. Kyle Hailey let me use his slot at Oaktable World in 2015 which was at the same time (more...)