Search

OakieTags

Who's online

There are currently 0 users and 32 guests online.

Recent comments

Affiliations

April 2012

Udev Rules OK

Dear Linux Hackers, Have we not finished changing the 'best' way to have persistent naming and security attributes for disk devices? Seriously, just when we thought it was great to put the "uid", "gid" and "mode" specifications for disk devices into /etc/multipath.conf, then it gets once again deprecated in favour of udev. This push and […]

Chris Date

Just in from Peter Robson on the Oracle-L listserver:

Chris Date on Database Design and Relational Theory, Edinburgh, June 7/8 2012

I’m using the ‘good offices’ (thank you Mark) of the list to inform you all that Chris Date is making a rare appearance in the UK (he was last here two years ago) for a 2 day seminar on the above topic. It is planned that all delegates will receive a complimentary copy of his very latest book on the subject, just being published by O’Reilly. Two years ago people attended his seminar on SQL from as far away as Benelux and Spain, so lets agree that this posting could be of interest to anyone in Western Europe!

More details are here:  http://www.justsql.co.uk/chris_date/cjd_edin_june_2012.htm

Asynchronous I/O for people

Ok, I’ve wanted to write this blog entry for a long time – and now it’s time!

Most of my blog readers (thank you!) are performance-minded computer enthusiasts, who care about efficiency and optimization. You’ve been tuning SQL execution plans, instance and OS configuration so that your sessions would achieve the same results with less work and also with less waiting!

You probably know to appreciate why asynchronous I/O must be enabled for busy modern databases, so that your database sessions can do I/O (talk to the storage) without actually having to wait for the I/O operations to complete! You can increase the processing throughput, by not submitting every single I/O separately and waiting for it to complete, before being able to process the results and submit the next one. Asynchronous I/O is a crucial thing for good performance.

My COLLABORATE 12-IOUG sessions

If you are attending Collaborate 2012, you might be interested in my content-rich sessions below :

Session Number: 326
Session Title: SCAN, VIP, HAIP, and other RAC acronyms
Session Date/Time/Room: Tue, Apr 24, 2012 (10:45 AM – 11:45 AM) : Surf C

Session Number: 327
Session Title: Internals and Performance Boot Camp: Truss, pstack, pmap, and more
Session Date/Time/Room: Wed, Apr 25, 2012 (03:00 PM – 04:00 PM) : Palm A

Hope to see you there!

Update: I am uploading presentation files. Presentations are much more recent than the document :-)

gc buffer busy acquire vs release

Last week (March 2012), I was conducting Advanced RAC Training online. During the class, I was recreating a ‘gc buffer busy’ waits to explain the concepts and methods to troubleshoot the issue.

Definitions

Let’s define these events first. Event ‘gc buffer busy’ event means that a session is trying to access a buffer,but there is an open request for Global cache lock for that block already, and so, the session must wait for the GC lock request to complete before proceeding. This wait is instrumented as ‘gc buffer busy’ event.

From 11g onwards, this wait event is split in to ‘gc buffer busy acquire’ and ‘gc buffer busy release’. An attendee asked me to show the differentiation between these two wait events. Fortunately, we had a problem with LGWR writes and we were able to inspect the waits with much clarity during the class.

Drop Constraint

If you drop a unique or primary key constraint the index that supports it may be dropped at the same time – but this doesn’t always happen. Someone asked me recently if it was possible to tell whether or not an index would be dropped without having to find out the hard way by dropping the constraint. The answer is yes – after all, Oracle has to make a decision somehow, so if we can find out how it makes the decision we can predict the decision.

So here’s my best theory so far – along with the observations that led to it. First, run a trace while dropping a primary key constraint and see if this gives you any clues; on an instance running 10gR2 I noticed the following statement appearing in the trace file immediately after the delete from cdef$ (constraint definitions).

Fasthosts : Good Riddance…

It’s been a couple of weeks since I stopped hosting my website with Fasthosts. It’s too early to start singing the praises of the new hosting company, but so far so good.

As a parting shot, when I asked Fasthosts to cancel my hosting account I asked for a refund on the 8 months of outstanding service I had paid for. I got the answer back today and it was a definite no.

I’m not particularly surprised at this, but I thought as a good will gesture to a customer of 11 years they may do the decent thing and give me my money back. It’s not like I wanted to leave. I was forced to by their complete incompetence.

My advice to anyone considering using Fasthosts would be DONT!

Cheers

Tim…

Repairman Jack : Gateways…

Gateways is the seventh book in the Repairman Jack series by F. Paul Wilson.

Jack’s dad has an “accident” and is left in a coma. Jack goes to visit him and tries to find out what happened. Another brush with “The Otherness” inevitably follows.

As I’ve come to expect, the backdrop to the story is quite sinister, but it moves too fast for you to dwell on that. It’s more like a full on action story and much less bleak than some of the previous stories. Maybe I’m just getting acclimatized… :)

Cheers

Tim…

PS. Having this cold has certainly allowed me to motor through some of these books.

Shrinking Tables to Aid Full Scans

{This blog is about shrinking tables where the High Water Mark is higher than it needs to be. Prompted by one of the comments, I wrote a follow-up post on finding the High Water Mark and tables that consist mostly of empty space, which would be candidates for shrinking.}

This blog is about one of those things I do as almost an autonomous “not thinking about it” performance housekeeping task, one which I have been meaning to mention for ages.

There can be quite a lot to gain by checking out full scans on “small” tables and seeing if it is as efficient as it can be. Sometimes it is, sometimes it is not. Often it is “good enough”. Occasionally it is awful.

Recently I was just casting an eye over the “top 20″ SQL on a system for any code generating a lot of consistent gets. I came across the below:

Webinar Recording

So to wrap this up, the webinar recording (this time hosted on YouTube, the recording available from the webinar archive is hosted somewhere else) along with the webinar material for download is now officially available on AllThingsOracle.com.

I suggest that if you still have any questions regarding this webinar then you can comment on the post over there and I'll try to address them.

If you interested in more stuff like that, then stay tuned as there are more of them planned covering many of the aspects that I deliberately left out or mentioned only briefly in this basic introduction.