Hello to everyone,
while trying to trace the performance I could expect from my RestXQ app
I created a DB with something like 300/400k documents. For the test the
documents are rather homogenoeus and stored plainly in the DB root
collection.
I had two major objectives.
1) understand the behaviour of the query when run on a significant (even
if not huge) number of documents.
I've noticed that something like collection('db')/a[@att = 'xxx' and
b/text() = 'zzz']
on my laptop (Intel I7, 8 GB Ram and SSD) takes some 5 to 7 seconds. Is
this reasonable? I was expecting slightly better performance but I must
admit that the documents are rather similar thus maybe the indexing is
not very selective.
What I noticed and this is feeling strange is that the time is often
spent in rather similar proportion between query compilation and query
evaluation and in some runs (1 every 5) most of the time is spent in
compilation and only few msec in evaluation. But the query is rather
simple so I assume that time spent in opening large collections (or
accessing the indexes) is computed in the compilation phase. Is it like
that?
Is there a way to restructure my query to be somehow more selective
reducing the time of accessing the collection/index?
2) to measure the difference between the same query when run directly
and when run through xquery:eval.
Here I noticed that the difference between plain and xquery:eval()
execution is negligible when the time for the evaluation increases. So I
assume that the xquery:eval is using the indexing system even if this is
not reported in the info view of the GUI. Is it like that?
Thank you all.
Regards,
Marco.
_______________________________________________
BaseX-Talk mailing list
BaseX-Talk@mailman.uni-konstanz.de
https://mailman.uni-konstanz.de/mailman/listinfo/basex-talk