We are busy evaluating Saxon EE for a project where we are converting and xml
file from one format to another using xQuery. I my view the xQuery am
relatively complicate and there are about 10,000 records contained in the xml
File. To do the conversion (using Saxon) takes about 49 minutes on my desktop
when using either the EE version or the non-EE version.
My question: Should there be a mark able difference in runtime between the CE
and EE version? If there are, any idea on where I might look?
Saxon-EE has a more powerful optimizer which will often dramatically improve
the execution time for this kind of query - it seems fairly clear from your
figures that there's probably some kind of join going on, and that's usually
where the Saxon-EE optimizer comes into its own. There are two possibilities
why you're not seeing an improvement. One is that your query isn't using any
of the coding patterns that the optimizer recognizes and can handle (for
example, it might be doing a non-equijoin); the second is that although you've
downloaded the Saxon-EE software, you haven't actually activated it properly,
which could be because it didn't find the license file, or something like
that. The easiest way to guard against the second possibility is to use
something (e.g. the -val option on the command line) that requires Saxon-EE to
If it's the first possibility - the optimizer isn't recognizing any
opportunities for optimization - then I'm happy to take a look at it; the only
way the optimizer improves is by adding to the set of coding patterns that it
recognizes and handles specially. Or I might be able to suggest a better way
of writing the query.
Log in to post a comment.