xsl-list
[Top] [All Lists]

Re: Performance degraded with grouping and sorting.

2004-10-30 03:16:35
Oh wait, why not predict the performance myself..

In the original code the grouping algorithm starts with picking the first of 
each ACCT_NBR:

  <xsl:for-each select="PROJECTION[count(. | key('group-by-accountnbr', ACCT_NBR)[1]) = 
1]">

Well, that is a *very* expensive operation. The index is accessed for _each_ 
PROJECTION elements, so
about 2000 times! And if each distinct ACCT_NBR 'contains' about 10 
PROJECTIONs, 9 out of 10 times
the predicate gives the same result. Very inefficient... :-(

Unfortunatily, I can't think of any other way of determining the first of a 
group other than
variations on this theme or performing sorting in a previous step and using the 
index on first items
I suggested.

Anyone good ideas?

Grtz,
Geert