Top 60 Oracle Blogs

Recent comments

Oakies Blog Aggregator

AMIS Query: A (hacking :) event with Oracle ACE Director Pete Finnigan

Zoals al aangekondigd in een eerdere blogpost heeft AMIS in samenwerking met Miracle Benelux, Masterclass trainingen, de mogelijkheid om vlak voor de twee daagse Masterclass in Utrecht van Oracle ACE Director en Oracle Security expert Pete Finnigan uit Engeland, een AMIS Query te organiseren. Beveiliging van je data en de focus hierop is vaak een ondergeschoven kindje. Iedereen is zich er waarschijnlijk wel van bewust dat data verlies via beveiligingslekken door bijvoorbeeld architectuur, programmatuur of onderliggende ondersteunende software, een gevoelig punt is in de organisatie. Het security gedachtengoed heeft echter ook impact op design en performance.

Een stukje van de sluier, van het beveiligings gedachtengoed, zal Pete Finnigan met ons delen tijdens de 25e Mei.

Hierbij de agenda voor de avond:

  • Vanaf 17:30/18:00 uur is iedereen welkom voor het diner.
  • Vanaf 19:00 uur “Oracle Database Security – (The True State?)“:
    • Focus op database security werk
    • Enkele realistische “hacking” demo’s / scenario’s
    • Discussie stuk t.a.v. de getoonde hacking demo’s
    • De correcte manier om data te beveiligen
  • Rond 21:00 uur afsluiting van de avond

Er is nog plaats maar meld je wel op tijd aan via deze pagina (Event Registration Form – Dutch) voor deze AMIS Query op 25ste Mei met Pete Finnigan.

Wil je je nog aanmelden voor de 2 daagse Masterclass van Pete Finnigan dan kan dat via de volgende pagina:


There was a news item in the UK last week about a man in Chideock, Dorset who staged a protest about the volume of heavy traffic that has to come through the village where he lives. A pedestrian crossing has recently been installed on the road, using traffic-light control. So one morning he decided to [...]


I’ve just received an email telling me that I’m a linchpin – according to this picture on Seth Godin’s website. Filed under: Uncategorized

Quiz Night

I have two queries designed to return the same result set in the same order. In outline they look like this (look carefully at the from clauses): select ... from tableA t1, tableB t2 where t1.filter = ... and t2.join = t1.join and t2.filter = ... order by ... select ... from tableA t1, tableB [...]

Filter Early

Yesterday, my 12 year-old son Alex was excited to tell me that he had learned a new trick that made it easier to multiply fractions. Here’s the trick:

The neat thing for me is that this week I’m working on my slides for ODTUG Kaleidoscope 2010 (well, actually, for the Performance Symposium that’ll occur on Sunday 27 June), and I need more examples to help encourage application developers to write code that will Filter Early. This “trick” (it’s actually an application of the Multiplicative Inverse Law) is a good example of the Filter Early principle.

Filter Early is all about throwing away data that you don’t need, as soon as you can know that you don’t need it. That’s what this trick of arithmetic is all about. Without the trick, you would do more work to multiply 4/7 × 3/4 = (4 × 3)/(7 × 4) = 12/28, and then you would do even more work again to figure out that 12 and 28 both share a factor of 4, which is what you need to know before you then divide 12/4 = 3 and then 28/4 = 7 to reduce 12/28 to 3/7. It’s smarter, faster, and more fun to use the trick. Multiplying fractions without the trick is a Filter Late operation, which is just dumb and slow.

Here are some other examples of the Filter Early pattern’s funnier (unless you’re the victim of it), sinister antipattern, Filter Late. You shouldn’t do these things:

  • Drop a dozen brass needles into a haystack, shuffle the haystack, and then try to retrieve the needles. (Why did I specifically choose brass? Two reasons. Can you guess?)
  • Pack everything you own into boxes, hire a moving company to move them to a new home, and then, after moving into your new home, determine that 80% of your belongings are junk that should be thrown away.
  • Return thousands of rows to the browser, even though the user only wants one or two.
  • To add further insult to returning thousands of rows to the browser, return the rows in some useless order. Make the user click on an icon that takes time to sort those rows into an order that will allow him to figure out which one or two he actually wanted.
  • Execute a database join operation in a middle-tier application instead of the database. I’m talking about the Java application that fetches 100,000 rows from table A and 350,000 rows from table B, and then joins the two result sets in a for loop, in an operation that makes 100,000 comparisons to figure out that the result set of the join contains two rows, which the database could have told you much more efficiently.
  • Slog row-by-row through a multimillion-row table looking for the four rows you need, instead of using an index scan to compute the addresses of those four rows and then access them directly.

Converting a Filter Late application into a Filter Early application can make performance unbelievably better.

One of my favorite features of the Oracle Exadata machine is that it applies the Filter Early principle where a lot of people would have never thought to try it. It filters query results in the storage server instead of the database server. Before Exadata, the Oracle Database passed disk blocks (which contain some rows you do need, but also some rows you don’t) from the storage server to the database. Exadata passes only the rows you need back to the database server (Chris Antognini explains).

How many Filter Early and Filter Late examples do you know?

Missing wait event

Oracle for Windows is out for some time. I’ve installed it on my 32-bit Windows XP machine because I like Windows – just to check that it’s actually working fine. Playing with TPC-H test using Hammerora I’ve noticed an anomaly in the way Oracle reports IO waits for some queries. Here is a test [...]

A blog to watch

I see that Nigel Noble has started blogging. I’ve spent some time at the company where he works, so I know how close he gets to the bleeding edge of Oracle technology – you might want to keep an eye on what he has to say. I’ve added his URL to the list of links [...]

Refreshing a Test Database using exp/imp

I’ve just taken a quick look at the Calendar and it appears to be 2010. However I’m still seeing, and being asked, to refresh a number of test databases using schema mode exports. This can present a challenge because there are a number of database objects that typically aren’t created by a schema mode import. [...]

Concatenated Bitmap Indexes Part II (Everybody’s Got To Learn Sometime)

A basic little post to conclude this discussion. The issues regarding whether to go for single column indexes vs. concatenated indexes are similar for Bitmap indexes as they are for B-Tree indexes.   It’s generally more efficient to access a concatenated index as it’s only the one index with less processing and less throwaway rowids/rows [...]

Philosophy – 10

The most significant question to ask when thinking about adding a new index: “Will the index eliminate significantly more work than it introduces (at the moments when it really matters) ?” A few examples of “moments that matter”: Bulk housekeeping Highly concurrent OLTP activity Frequent high-precision reporting Acceptance testing for side effects [Back to Philosophy [...]