Databasen - Revisited

Peter Corlett abuse at cabal.org.uk
Wed Oct 18 23:59:16 BST 2006


On 18 Oct 2006, at 19:20, Matt Sergeant wrote:
[...]
> Sorry, but when it comes down to performance, squeezing out every  
> last drop is not a hack. Do you consider a schwarzian transform a  
> hack too?

Evidently your priorities are to squeeze as much as possible out of  
hardware that is clearly inadequate for the task. Now, while I  
appreciate tight code and a good hack, a line has to be drawn  
somewhere. I just happen to be of the opinion that the proffered  
technique crosses that line.

Anywhere that said that I had to compromise the database integrity  
because they were too cheap to buy a the right kit also falls under  
the list of companies I don't think I'd like to work for. It's not  
reducing bloat, it's sheer penny pinching.

>> Any RDBMS worth its salt will skip the index if it's clearly  
>> faster to do a
>> full table scan.
> You prefer to force the optimiser to have to examine its choices  
> than give it none?

"Examine" is probably too strong a word when it merely has to see  
that the search set is sufficiently small that O(N) is smaller than O 
(logN). It'll take a fraction of the time it took to parse the SQL in  
the first place, and that's only done once when you prepare the  
query. You do prepare queries rather than re-parse them every time,  
right?

> There's a reason databases provide extended syntaxes to ignore the  
> optimiser choices and force use of an index - optimisers aren't  
> that smart.

Nah, but sometimes they're still smarter than a DBA, just because the  
computer can exhaustively search the choices rather than rely on  
intuition. The DBA will probably wish to look at the optimiser's  
choices and nudge it if it's making bad ones, but again, it's often  
Good Enough if the schema was designed by a DBA rather than a rabid  
crack weasel.

> (and yes, this is another one of the reasons why I think ORMs are  
> bad).

I haven't really used them sufficiently to have a strong opinion on  
whether they're particularly optimal, but my limited experience of  
them suggests that they serve a definite need.

> It was a very specific example to try and get at very specific  
> knowledge (fitting a table into a page). If you can think of a  
> better way to get at that knowledge please let me know.

It's not useful knowledge - we're not using 4MB 68040-based boxes any  
more. The main performance drop-off occurs when your working set is  
larger than your RAM, rather than the CPU cache size or page size.

Even the usually-extortionate PC World will do you a gig of the stuff  
for 65 quid. How much DBA can you buy for 65 quid?




More information about the london.pm mailing list