I've found that cts:element-values() is *much* faster when you don't use
a query to filter. For example,
cts:element-values (xs:QName("foo"), "a")
is 25x faster than
cts:element-values (xs:QName("foo"), "a",
cts:element-value-query(xs:QName("bar"), "baz"))
when every document indexed by foo in fact has bar=baz, ie when the
query is essentially a no-op.
Consequently, we're taking what used to be a bunch of large range
indexes and breaking them up into a lot of smaller range indexes, each
of which we can query independently (faster).
What I'm wondering is if anybody would care to speculate on whether
having a large number of small(er) indexes will pose some other
performance problem. Presumably at least some of the keys will be
shared across these indexes, but the values (the fragment/document
references) should not, so overall storage should be only slightly larger?
--
Michael Sokolov
Engineering Director
www.ifactory.com
_______________________________________________
General mailing list
[email protected]
http://developer.marklogic.com/mailman/listinfo/general