Not just a free lunch

When I first learned to drive, all our cars were automatics – and so that’s all I learned to drive. This never posed an issue to me until I married Rosalie who owns a manual. She tried to teach me, and I managed – kind of. It wasn’t until I had a chat with my uncle-in-law, who’s a mechanic, that it “clicked” with me. This is because he explained to me basically how the gear-change system works, which meant I now had a picture in my head of what was going on “under the hood” when I pushed the clutch in – it didn’t take long before I was smoothly changing gears and not making my passengers lurch forward and back like someone on a bucking bull.

I think that’s the way I learn things – I need to have a mental model of how a device is working internally before I can really use it effectively. To be useful the model doesn’t have to be greatly detailed or even perfectly accurate – it just has to be good enough that I can predict or guess what effect different actions will have on the equipment.

Today I enjoyed Richard Foote’s talk debunking a raft of common index-related myths today, followed by Penny Cookson sharing about bind peeking, and Connor McDonald giving some creative demos of RAC.

There was some material covered in part from recent articles on Richard’s blog but he explained clearly the mechanics of Oracle’s B-Tree and bitmap indexes, including how index statistics affect query plans. One highlight for me was the clear explanation of how the clustering factor (CF) is calculated, what it means and how to use it to diagnose why an index is not being used. I think I understand the CF much better than I did before because Richard explained it in a way similar to the way my uncle-in-law explained the clutch in a car – i.e. he explained how Oracle calculates it and uses it internally. He could have just said “a good CF is one that is close to the number of blocks, and a bad CF is one that is close to the number of rows”, but instead he explained how it works, which means this rule-of-thumb becomes more self-evident, and a whole lot more meaningful and useful.

Other highlights:

  • the mere existence of an index can change query plans dramatically, even if the index is not actually used by the query;
  • adding a ‘ ‘ (a string containing just a space) as the second column in an index on a nullable column means that all the nulls will be stored in the index; and
  • he’s a big fan of David Bowie (who knew?)

Penny gave a quick overview of the problems of bind variable peeking, including a good explanation of why many 8i-to-9i upgrade projects experienced initial performance problems. There were some excellent tips for those of us not yet blessed with 11g on how to resolve (or at least work around) the problem of sql plans lurking in the shared pool, intermittently messing with query performance.

When we returned from afternoon tea for Connor’s talk, confronted with a table ominously equipped with ropes, children’s toys, toilet paper and lollies, we were treated to a talk which, by Connor’s standards, was a raving endorsement of RAC – by which I mean he did allow that it could very well be of benefit at some Oracle shops. Certainly the FUD surrounding RAC seems to have been cleared a bit.

APEX, More APEX, a bit of PL/SQL, ACEs and Babbage

One of the worst times to get an ear infection, I learnt, is the night before you present at a conference. I hardly got any sleep and I’m deaf in one ear, making my voice echo in my head.

I survived relatively unscathed and there seemed to be a good level of interest in the room so that was encouraging. I knew that I had a lot more material than I had time to present, so I went pretty quickly, and in the end managed to get through about 80% of the slides and the bulk of what I felt was important.

If you would like a copy of the presentation you can download it from here [JeffKemp_Apex_Social_Networking.pdf]. You can also download an export of the sample application “Zample” [] if you want to play with it yourself.

After that I stayed to hear Scott Wesley talk about some creative uses for conditional compilation, and heard David Peake talk about the imminent Forms Conversion process in APEX 3.2. Personally I don’t see much potential for actual forms conversion projects, but that’s because every Forms application I’ve worked on has a lot of business logic in the triggers, and “creative” uses for all the features of Forms which will never translate into APEX. I can, however, see a use for this tool to take all the forms from a legacy app and expose all that logic in APEX for analysis. It could be used to document an existing system which may save some time when designing a replacement system in APEX/JDev/whatever.

It wasn’t just David who spoke on APEX, I enjoyed Penny Cookson/Eddie Harris’s talk “How Ugly is that APEX Report?” in which she gave a few options for making reports out of APEX page regions, and more options for those who are lucky enough to have BI Publisher. They also demonstrated what you can do with Cocoon. I haven’t dabbled in APEX reports at all (most of the time I’ve made APEX applications to avoid the need for printed reports) and hadn’t heard of Cocoon.

Tim Hall spoke on PL/SQL best practices for performance, which was pitched more at a mid-level PL/SQL programmer but good none-the-less. After that, another David Peake presentation revealed the roadmap for the future of APEX. I like what I’m hearing – version 4 will enable a number of Ajax-powered features declaratively, something I’ve been looking forward to. The standout, of course, is the enhancements to the Interactive Reports which allow users to edit the data in-place. His final presentation on UI presentation techniques focused primarily on the new Interactive Reports feature that is available now in 3.1.

I decided to end the day at Scott Hollow’s talk “Babbage vs Oracle” in which he compared/contrasted the lives and times of Charles Babbage (arguably the father of computers) and Larry Ellison. Scott has a passion for computer history and it showed.

There was a session mysteriously entitled “ACEbook” which wasn’t well attended, probably because it wasn’t clear what it was about. Turns out they got together a panel of Oracle ACEs and ACE Directors and discussed being an ACE, what the difference was between ACEs and ACE Directors, and advice on contributing to the Oracle community. I had a few questions but they ran out of time so I’ll ask them here:

  1. What killer new feature would you like to see in Oracle 12g? and
  2. What super power did you gain when you became an ACE/ACE Director?

AUSOUG Perth Conference

I’ve been in bed the last few days with a virus, but I should be ok in time for Monday. Had a look through the programme, and again it’s chocablock with very interesting titles. Quite a bit of Development Blue, but not so much DBA Cyan this time (unfortunately, in my opinion). There’s a lot of Apex sessions which I’m guessing reflects the growth of interest in Apex development here in Perth.

2008_Program_perth.pdf via

Highlights for me include:

  • 11g New Features for PL/SQL developers – Dr Timothy S Hall
  • Creative Conditional Compilation – Scott Wesley
  • What is coming in Oracle Application Express and SQL Developer – David Peake
  • How Ugly is that Apex Report? – Penny Cookson
  • Back to basics: Simple database web services without the need for SOA – Chris Muir
  • 11g features for developers – Connor McDonald
  • Boost performance with PL/SQL programming best practices – Dr Timothy S Hall
  • The SQL and PL/SQL Results Cache – Penny Cookson
  • Converting from Oracle Forms to Oracle Application Express – David Peake
  • Advanced UI Presentation Techniques – David Peake
  • Babbage vs Oracle – Scott Hollows

Unfortunately, I won’t be able to attend all the above sessions so I’ll have to make some hard decisions 🙂

I’m talking about APEX…

at the AUSOUG conference this year. First time for me, so please be gentle 🙂
The draft programme is out now.

Looks like a great line up again this year, with a mix of local and international speakers. Some highlights that jumped out at me include:
Timothy Hall – 11g New Features for PL/SQL developers
Chris Muir – Simple database web services without an application server
Penny Cookson – How Ugly is that APEX Report?
… and that’s just the first day.

There’s also a mysterious session on the second day entitled “What do you want from your local User Group?” on the second day. Well, it looks mysterious because of the green tinge.

AUSOUG Conference 2007 Day 2

I enjoyed today’s programme very much. John Garmany gave a very easy-to-understand intro to the world of Regular Expressions. Luie Matthee spoke about virtualised Oracle 10g instances on Red Hat Enterprise Linux 5, most of which went over my head but I’m learning.

Apparently my red Red Hat hat is in the mail, but I did get a Toad toad.

It croaks when it is dropped or bashed on something. It amused my 2.5 and 0.5 year olds for hours, which is something I can’t say for all the $50+ toys they’ve gotten over the years.

Unfortunately I missed Chris’ talk on load testing web applications, I’ll have to ask my colleagues who attended about that one. I was particularly interested to hear Duncan Mills talk about how to move Oracle to SOA, and I wasn’t disappointed. The surprise is how easy it is to consume web services even with Forms 6i, and the new event triggers in Forms 11 sound very exciting (i.e. no more polling the database to simulate asynchronous processing) – there’ll probably be some new triggers like when-event-raised and when-custom-event which can be used similarly to when-timer-expired, but perhaps without so much network overhead.

The day ended with a rather friendly debate over development tools. Chris Muir started well with good-natured jabs at Forms (hasn’t that gone the way of Cobol? and why are there hardly any talks on Forms anymore?), Apex (voted “Best Toy of 2007”), and .Net (who cares about MS at an Oracle conference anyway?). Scott Wesley pointed out the large installed base of Forms, it’s a mature product, no-one needs to talk about it because there aren’t any problems with it anymore. Penny Cookson extolled the simple power that is available to the Apex developer. David Shields made a valiant attempt to influence a roomful of Oracle developers to give MS a chance, but I think the odds were stacked against him 🙂 Some probing questions from the audience prompted discussion of the various tools’ virtues for newbie developers, for integration with SOA, and for maintaining legacy apps. In the end I think it was decided that the winner is the “best tool for the job at hand”, in other words, everyone won (except perhaps for .Net 😉

My thanks to the AUSOUG committee for their hard work and dedication to bring off another excellent conference, and good luck in Melbourne!

Not an OpenWorld post: AUSOUG Conference Day 1

A great start to the Perth conference, great to catch up with old and not-so-old friends.

Listened to Tim Armitage from Oracle talk about database independence and why it’s just not needed due to the range of features Oracle provides for no extra cost.

Snuck into Penny Cookson’s demo of an Apex application she’s been working on for UWA. Quite a few tricks I hadn’t heard of, some of which will solve some niggling issues I’ve had on my applications. One simple one is the use of an application item to hold the previous page, to support reverse navigation from a page which has multiple entry points.

This afternoon will be time to stretch my knowledge a bit: Collin Klepfer on “Database Growth: Problems and Solutions”, and Gilbert Standen on “JVM Cutover for Oracle Forms” which I’m sure will mostly go over my head but I’ll pick up something about the replacement for JInitiator.

I suspect there’s a bit of “OpenWorld Envy” going on. It seems Penny wasn’t able to make it to SF and in her talk pointed out the fact that most blog references to Chris Muir at OW were about beer, specifically the consumption of it at various pubs.

I’m sure this tension will make for a spectacular show tomorrow evening with “The Great Oracle Development Tools Debate” featuring Penny and Chris, as well as David Shields, Vinod Patel (a current colleague of mine) and Scott Wesley (a former colleague of mine).

AUSOUG Conference 2006 over

Another enjoyable conference. I’ve attended it every year since 2000 and this year’s was packed with presentations. Over 300 attendees spread over up to six presentations meant less crowding, I think; although as always there were a few packed sessions.

Highlights for me were:

  • Connor’s “live demo” of 11g in Being a successful developer with Oracle
  • Learning that cancelling a cursor is a good thing, but finding it can’t be done in PL/SQL – Anjo Kolk, The life of a cursor and its impact on the shared pool
  • Trace Analysis on Steroids – Dave Moore’s talk was an eye-opener, not about performance-enhancing drugs (caffeine’s usually enough for me), but about Trace Analyzer. I thought this would be just another “if you’re not buying our product you’re wasting your time” talk, but in fact this is a totally free, open-source (PL/SQL!) tool that not only collates all the data from a trace file (as tkprof does), but also digs into your database to correlate the trace info with the data dictionary and present it all beautifully in HTML. Downloading and trying out this tool is definitely on my to-do list.
  • Connor again, Odds and ends – an odd but arguably the best session to end the conference with. A number of tricks I’ll want to experiment with once I get a copy of the powerpoints (e.g. I wasn’t aware that contexts can be made “globally accessible”).

Thanks to the AUSOUG committee for another well-organised event.

AUSOUG 2006 Perth Conference update

Noticed that the final conference programme is now available. Unfortunately I don’t have a laptop so I can’t attend some of the hands-on sessions.

I’m planning to at least attend the following:

  • Future of Database Technology (Barry Matthews)
  • How Can I Tune It When I Can’t Change the Code (Penny Cookson)
  • Being a Successful Developer (Connor McDonald)
  • Next-Gen Self-Managing Database (Barry Matthews)
  • Next-Gen Oracle Database Availability (Barry Matthews)
  • Odds and Ends (Connor McDonald)

Unfortunately, the schedule precludes me from Systematic Oracle Performance Tuning (Guy Harrison).

From the Delegate Program:

“…a smattering of such features and/or techniques Connor has encountered over the years, that he has either created himself, read about, or simply stolen from someone smarter.” (Odds and Ends, McDonald)

– plagiarism is the sincerest form of flattery… 🙂

“Oracle recently announced the future obsolescence of SQL*Plus GUI version… [SQL Developer] allows easier access for less technical users… The session will include basic SQL syntax training so that End Users can utilise the product to access their data.” (SQL Developer Hands-on Workshop, Kate Marshall)

– I personally have never come across any end-users who currently use SQL*Plus; I have, however, worked with some business analysts who can customise simple SQL using a helper like Discoverer; perhaps they’d be the kind of person who would benefit from this session. Looks like Chris Muir is giving a similar talk in Melbourne, although for some reason it’s in the “Applications” stream.

“Since Oracle introduced the shared pool in the Oracle kernel, it has been causing problems… these problems are because of Oracle bugs, …This presentation will have a closer look at what application developers do wrong.” (The Life of a Cursor and Its Impact on the Shared Pool, Anjo Kolk)

– hey, why should we expect presenters to sugar coat their topics?

Most interesting presentation title: Guaranteed Project Failure
Runner-up: Make Money Fast and Improve Your Love Life with Oracle…
Most boring presentation title: Off shoring Oracle Support: Alcoa’s journey …but the presentation itself will be interesting I’m sure 🙂

AUSOUG National Conference 2006

Just read the latest draft timetable, looks like there’s going to be some very interesting presentations this year. It looks a lot bigger than before, mainly because of the merger with Apps. I’m particularly looking forward to:

  • “The future of database technology from Oracle Development” (Mark Townsend, Oracle)
  • “Being a successful developer with Oracle” (Connor McDonald)
  • “Systematic Oracle performance tuning” (Guy Harrison, Quest)
  • “The next-generation self-managing database: a sneak preview” (Mark Townsend, Oracle)
  • “Next generation Oracle database availability: a sneak preview” (Mark Townsend, oracle)
  • “Odds and ends” (Connor McDonald)

My curiosity has been piqued on these ones as well:
  • “Adding wings to your SQL development” (Howard Ong, Aurora Consulting)
  • “AP Imaging – remaining a step ahead” (Jacinta Savage, Uni of Melbourne)
  • “Guaranteed project failure” (Julie Harris, DFEEST)

Buzzword alert! 😉
  • “Accelerating the journey to Fusion” (Roland Slee, Oracle)
  • “Web Services, SOA & BPEL – a primer” (Basheer Khan – Innowave Technologies)
  • “Understanding the Fusion technology stack: preparing for the future” (Tim Blake, Oracle)

Townsend features a bit more this year, and I’m sure McDonald’s presentations will be entertaining as usual. Penny’s only doing one session this year, however – mind you, that one could be a fairly involved hands-on session with Application Express.