WordPress 3.0.1 has been released. Happy upgrading…
Cheers
Tim…
Oracle related rants (and lots of off-topic stuff)…
I can see this post degenerating into a rant, so I would like to preemptively appologize to anyone involved in the production of this exam. I’m guessing it’s a real pain to develop these exams, especially when some ass like me starts moaning about them. Added to that, I’m guessing the word “Expert” means slightly different things to different people…
I’ve been barking on recently that in my opinion, the most important skill required by any PL/SQL developer is SQL, with knowledge of PL/SQL itself coming in second place. Having recently taken the “Oracle Database 11g: Advanced PL/SQL (1Z0-146)” exam (mentioned here), I thought it was a little hypocritical not to sit the “Oracle Database SQL Expert (1Z0-047)” exam as well, so this morning I did just that.
Here are some of my thoughts on the exam, in no particular order of importance:
I very quickly turned into a grumpy old man and started to rush through the exam, spending most of my time thinking about writing this blog post, rather than the exam itself. 🙂
In the end I got 96%, which I guess means I got 3 questions wrong out of the 70. Serves me right for rushing it so I could come home and bitch about it. 🙂
So I am now an “Oracle Database: SQL Certified Expert” as well as a grumpy old shite…
Cheers
Tim…
* Updated thanks to Pierre’s comment.
Turn Coat (book 11 of The Dresden Files) is another non-stop barrage of action and magic. It ties up some loose ends from previous books, but also leaves a few dangling. That is the last in the series (in paperback). These books are like catnip, so I’m planning to manage my withdrawal by reading Unseen Academicals, which is out in paperback now.
Cheers
Tim…
I was reading this article the other day and it reminded me of a conversation I had at ODTUG about mySQL. I know nothing about Oracle’s plans for mySQL and I’m only a casual user of mySQL (for about 6 years), so don’t consider this an inside scoop, it’s just some idle whittering…
If Oracle truly wanted to kill mySQL how should they do it? My answer was keep adding features. Why?
That’s what I would do. 🙂
Cheers
Tim…
I was doing some SQL tuning on mySQL today and I learned a few interesting things.
Let’s take an example of a simple query where we have an OR of two mutually exclusive conditions, each on indexed columns.
SELECT *
FROM t1
WHERE user_id = 1
OR location_id = 2;
In mySQL there is a feature called an Index Merge that, as the name suggests, runs a scan of the two indexes and merges the results together. Kinda neat.
I guess it’s not disimilar to what Oracle does with bitmap conversions, but it looks a little less scary in the middle of a massive plan than something like this. :).
-----------------------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
-----------------------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 20 | 260 | 6 (0)| 00:00:01 |
| 1 | TABLE ACCESS BY INDEX ROWID | T1 | 20 | 260 | 6 (0)| 00:00:01 |
| 2 | BITMAP CONVERSION TO ROWIDS | | | | | |
| 3 | BITMAP OR | | | | | |
| 4 | BITMAP CONVERSION FROM ROWIDS| | | | | |
|* 5 | INDEX RANGE SCAN | T1_LOCATION_ID_I | | | 1 (0)| 00:00:01 |
| 6 | BITMAP CONVERSION FROM ROWIDS| | | | | |
|* 7 | INDEX RANGE SCAN | T1_USER_ID_I | | | 1 (0)| 00:00:01 |
-----------------------------------------------------------------------------------------------------
As it turned out, the query I was tuning was too complicated to take advantage of an index merge, so I tried converting it to use a UNION ALL. Remember, the conditions are mutually exclusive, so there was no need to worry about duplicates. Taking the example of the previous query, it would look something like this.
SELECT *
FROM t1
WHERE user_id = 1
UNION ALL
SELECT *
FROM t1
WHERE location_id = 2;
The real query I was tuning performed much better with a UNION ALL, but I thought I better check to see if mySQL had any gotchas associated with UNION and UNION ALL. It turns out that both UNION and UNION ALL can create internal temporary tables to get the job done. I suppose it’s not that different to Oracle doing sorts in memory or pushing them out to disk, but it did kinda freak me out when I first read it. 🙂
Although I could never see myself devoting that much time to another engine, it is quite interesting seeing how they get the job done.
Cheers
Tim…
I didn’t come from a computer science background, so when I started working with computers I spent a lot of time asking questions. I knew nothing, so there was nothing to lose by asking others for directions. As my knowledge progressed I found myself less able to ask questions of others because of pride. I didn’t want people to know I didn’t know the answer. It took a few years before I was confident enough to say, “I don’t know”, and ask others for their opinions again. Looking back at it you have to laugh…
I was reminded of this issue recently when someone asked me some questions about storage best practices. The first thing I suggested was to speak with the storage vendor and ask what recommendations and whitepapers they have. Googling aside, this seemed like a pretty reasonable starting point to me. Their response was essentially, “I don’t want to look stupid in front of the vendor”. Sound familiar?
I’ve been there and know exactly how it feels. Hell, it’s still happening (here). Swallow your pride and start asking questions again. You’ll be surprised how well people respond when you do. Sometimes because you are stroking their ego, but mostly because they are genuinely interested in the technology and like to chat about it. We are geeks and geeks love to talk about geeky stuff.
Of course, remember to look for information from credible sources and always test what you’re told. If you can’t prove it, it isn’t real. 🙂
Cheers
Tim…
PS. As a result of the storage discussion I knocked up a quick overview of a couple of performance measuring tools from Oracle (here).
Small Favour (book 10 of The Dresden Files) is about as intense as they come. It’s like most of the elements of the previous 9 books have been thrown into a blender and produced a perfect cocktail. It’s just an endless onslaught of Fairie Queens, Fallen Angels, Gangsters and now Harry has the attention of an Archangel. It’s brilliant madness.
Cheers
Tim…
I went to the cinema with one of my friends, who is about 29 weeks pregnant. Needless to say it was her decision to watch Eclipse. It is being promoted as the “best so far” and the most “boyfriend friendly so far”, which are both true statements, but don’t let that fool you. It is complete toilet.
Pros:
Cons:
Interestingly enough, my pregnant mate thought the film was OK, but preferred Predators. 🙂
Cheers
Tim…
I was having a clean up yesterday and I killed my FriendFeed account because I don’t really use it. I was then notified by a couple if disgruntled followers that they were using it to follow my posts. 🙁
So I decided to resurrect my FriendFeed account. If you are into that sort of thing you can get it here:
Cheers
Tim…