December 2015

New Version Of XPLAN_ASH Utility

A new version 4.22 of the XPLAN_ASH utility is available for download.

As usual the latest version can be downloaded here.

This version primarily addresses an issue with 12c - if the HIST mode got used to pull ASH information from AWR in 12c it turned out that Oracle forgot to add the new "DELTA_READ_MEM_BYTES" columns to DBA_HIST_ACTIVE_SESS_HISTORY - although it got officially added to V$ACTIVE_SESSION_HISTORY in 12c. So now I had to implement several additional if/then/else constructs to the script to handle this inconsistency. It's the first time that the HIST view doesn't seem to reflect all columns from the V$ view - very likely an oversight rather than by design I assume.

Oracle 12 and latches, part 3

This post is about manually calling and freeing a shared latch. Credits should go to Andrey Nikolaev, who has this covered in his presentation which was presented at UKOUG Tech 15. I am very sorry to see I did miss it.

Essentially, if you follow my Oracle 12 and shared latches part 2 blogpost, which is about shared latches, I showed how to get a shared latch:

SQL> oradebug setmypid
Statement processed.
SQL> oradebug call ksl_get_shared_latch 0x94af8768 1 0 2303 16
Function returned 1

Which works okay, but leaves a bit of a mess when freed:

The Twelve Days of SQLT: Day Three: Just a Mess Without a Clue

P.O.I.S.E.D. is an acronym for a six-step performance tuning method; it stands for Problem, Observation, Interpretation, Solution, Execution, and Documentation. Every problem-solving exercise has these six stages, whether the exercise takes six minutes or six weeks.(read more)

The IT Blight of Working During Holidays

I’ve been thinking today about those people in IT who are going to have to either work or be on call during the festive period. Twitter has become a lot more quiet today and most of the activity is not-work-related. My blog traffic is now a trickle and there is a general feeling of doing more family, non-work things for a couple of days, which I think is good for all of us from time to time. Maybe more times than current working culture and practices allow for.

The endless daily grind - even at Christmas

The endless daily grind – even at Christmas

Merry Christmas

To the tune of “Let It Snow”

Well, the response of the app is frightful,
and users are getting spiteful.
They claim the database is slow,
“Make it go”, “Make it go”, “Make it go”

It doesn’t show signs of locking,
Yet the performance it still quite shocking,
The CPU is right down low,
but its slow, but its slow, but its slow.

When we finally trace the load,
The problem is rapidly found,
If you write lots of crappy code,
Then your app crumples to the ground

Now we write the application better,
The DB is no longer fettered,
So as long as we write good code,
It wont be slow, wont be slow, wont be slow.

Testing

This post is a 100% copy of a message that Tanel Poder sent to the Oracle-L mailing list in response to a thread about the performance of SSD. It’s not just a good answer to the question, it’s a wonderfully succinct insight into how to think about what you’re really testing and it displays the mind-set that should be adopted by everyone.

If you measure write performance on an idle Exadata machine without any other load going on, you are not comparing flash vs disk, you are comparing flash vs the battery-backed 512MB RAM cache in the “RAID” controllers within each storage cell!

Predicates

I received an email recently that started with the sort of opening sentence that I see far more often than I want to:

I have come across an interesting scenario that I would like to run by you, for your opinion.

It’s not that I object to being sent interesting scenarios, it’s just that they are rarely interesting – and this wasn’t one of those rare interesting ones. On the plus side it reminded me that I hadn’t vented one of my popular rants for some time.

Here’s the problem – see if you can work out the error before you get to the rant:

“I’ve got a table and a view on that table; and I’ve got a query that is supposed to use the view. Whether I use the table or the view in query the optimizer uses the primary key on the table to access the table – but when I use the table the query takes about 30 ms, when I use the view the query takes about 903 ms”.

Enterprise Manager Cloud Control 13c : First Steps

o-enterprisemgr-13c-clr-2769481Oracle Enterprise Manager Cloud Control 13c Release 1 (13.1.0.0.0) was released a few days ago. Does that have the acronym “oemcc13cr1”? :)

As usual, my first steps are to do some basic installations. The approach is pretty similar to the 12c installations, but it’s a little greedier now. :)

Enterprise Manager 13c Upgrade

My goodness me it’s been a long time since I updated here. As it’s nearly the season for New Years resolutions I thought I’d make one early and start updating again. This post is inspired by the release on Friday of Oracle Enterprise Manager 13c. Already there’s a nicely screenshotted How to Upgrade article by @gokhanatil . Step […]

Miserable Dark Days of Winter Relieved by Data

This post is all about my fascination with short day times and hits on my blog on the topic, it is not even to do with why the day time is so short in the UK, Europe & US right now. This is nothing to do with Oracle databases or working in IT – go elsewhere and look at eg XKCD or Dilbert now if that is your thing…