Re: [xsl] Performance degraded with grouping and sorting.

Subject: Re: [xsl] Performance degraded with grouping and sorting.
From: Geert Josten <Geert.Josten@xxxxxxxxxxx>
Date: Sat, 30 Oct 2004 12:16:35 +0200
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

Current Thread