AW: [xml] extremely long xslt transformation times



<snip intro>

The compiled XPath is
SORT
    UNION
            COLLECT attrs all
            COLLECT nodes all

Now we see three different ways to improve performance in this case:

1) optimize the XPath compilation not to sort since the 
collected node sets
are already sorted and the union will not change that

  Err, in general the union operator will force a sort, this is a 
specific case which seems hard to generalize.

3) Avoid sorting a node set by adding a flag to the xmlXPathNodeSet
structure if the set is sorted already

  Okay but the merge operation of the union in general will 
require another
sort so, how do you compute that a priori

We'd like to ask the list what approache we should take for 
this case?

  2 sounds impossible technically, I don't want to change the format
of the in-memory representation. 1 and 3 are okay at an architectural
level but I don't see how to do this easilly in practice. But if you
know how to do this, feel free to work on it, I take patches !


Okay, so if the UNION operator sorts the result set that top level 
sort is not needed, right?

What about COLLECTS, they deliver sorted results as well? If so, maybe we
can optimize more?

Thomas



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]