Lists Home |
Date Index |
> I second Jeni's opinion. More than one of our developers has
> questioned the claim that optimizations based on schema based
> static & dynamic typing in XQuery et al will buy any
> significant gains perfromance-wise and in fact may hurt it in
> simple cases.
I've seen a few cases where schema information could be useful, but in
general I agree that the benefits are often overstated, at least in an
XSLT context where you're typically parsing the document once for each
XSLT execution. There are some things in the dynamically-typed nature of
XPath 1.0 that make optimization very difficult, for example the
overloading of , but in most cases you can do all the static
inferencing you need without a strongly-typed language.
In fact I would say that type inferencing is only a small part of the
analysis that an optimizer needs to do, far more important is analysing
the dependencies of expressions on the context and on variables, so that
subexpressions can be moved out of predicates, sort keys, etc.
The most obvious thing that an optimizer can get from a schema is the
graph of which elements can contain which others, but arguably that can
be built just as easily - and more accurately - on the fly while parsing
the source document.
Optimization in a typical XQuery scenario is of course very different:
you have a much wider choice of access paths based on pre-constructed
indexes. (But of course, there are some people who see XSLT 2.0 being
used as a database query language).