I use Tamino 4.1.4.4 and I’ve execute the same query in XQuery and in X-Query. The X-Query was very fast but the XQuery was very very slow. Here my queries:
I have changed the query but the XQuery is too slow. Is there another problem in my queries? I can’t find the reason or is the XQuery slower than X-Query?
In my database there 460.000 Values with an IndexSpace of 1GB and a DataSpace of 1,6GB
My XQuery uses 74584 ms and my X-Query uses 160 ms.
Here is my XQuery:
declare namespace tf='http://namespaces.softwareag.com/tamino/TaminoFunction'
count(
for $b in input()/sendung
where (tf:containsText($b/id, 'Unfall') or
tf:containsText($b/sendungsname, 'Unfall') or
tf:containsText($b/event, 'Unfall') or
tf:containsText($b/sparte, 'Unfall') or
$b/sdate="Unfall" or
tf:containsText($b/moderation, 'Unfall') or
tf:containsText($b/material, 'Unfall') or
tf:containsText($b/sen_tca, 'Unfall') or
tf:containsText($b/sen_tce, 'Unfall') or
$b/sen_dauer="Unfall" or
tf:containsText($b/maskentyp, 'Unfall') or
$b/tapenr="Unfall" or
$b/stand="Unfall" or
$b/beitrag/nr="Unfall" or
tf:containsText($b/beitrag/titel, 'Unfall') or
tf:containsText($b/beitrag/redakteur, 'Unfall') or
tf:containsText($b/beitrag/sendeform, 'Unfall') or
tf:containsText($b/beitrag/kamera, 'Unfall') or
tf:containsText($b/beitrag/btrg_tca, 'Unfall') or
tf:containsText($b/beitrag/btrg_tce, 'Unfall') or
$b/beitrag/btrg_dauer="Unfall" or
$b/beitrag/ton="Unfall" or
$b/beitrag/bq="Unfall" or
tf:containsText($b/beitrag/zfg, 'Unfall') or
tf:containsText($b/beitrag/bemerkung, 'Unfall') or
$b/beitrag/dokumentar="Unfall" or
$b/beitrag/erfassungsdatum="Unfall" or
tf:containsText($b/beitrag/bearbeitung, 'Unfall') or
$b/beitrag/bearbeitungsdatum="Unfall" or
tf:containsText($b/beitrag/agenturtext, 'Unfall') or
tf:containsText($b/beitrag/bilderquelle, 'Unfall') or
tf:containsText($b/beitrag/originaltext, 'Unfall') or
$b/beitrag/deskriptor="Unfall" or
$b/beitrag/abgleich="Unfall" or
$b/beitrag/btrg_status="Unfall" or
$b/beitrag/btrg_verweis="Unfall" or
tf:containsText($b/beitrag/rechte, 'Unfall') or
$b/beitrag/idnr="Unfall" or
tf:containsText($b/beitrag/sequenz/herkunft, 'Unfall') or
tf:containsText($b/beitrag/sequenz/land, 'Unfall') or
tf:containsText($b/beitrag/sequenz/stadt, 'Unfall') or
tf:containsText($b/beitrag/sequenz/seq_tca, 'Unfall') or
tf:containsText($b/beitrag/sequenz/seq_tce, 'Unfall') or
$b/beitrag/sequenz/seq_dauer="Unfall" or
tf:containsText($b/beitrag/sequenz/topic, 'Unfall') or
tf:containsText($b/beitrag/sequenz/seq_beschreibung, 'Unfall') or
$b/beitrag/sequenz/hdate="Unfall" or
tf:containsText($b/beitrag/sequenz/video_id, 'Unfall') or
tf:containsText($b/beitrag/sequenz/o_ton, 'Unfall') or
tf:containsText($b/beitrag/sequenz/seq_verweis, 'Unfall'))
return $b)
</pre><BR><BR>Here is my X-Query:<BR><pre class="ip-ubbcode-code-pre">
count(sendung[(
id~="Unfall" or
sendungsname~="Unfall" or
event~="Unfall" or
sparte~="Unfall" or
sdate="Unfall" or
moderation~="Unfall" or
material~="Unfall" or
sen_tca~="Unfall" or
sen_tce~="Unfall" or
sen_dauer="Unfall" or
maskentyp~="Unfall" or
tapenr="Unfall" or
stand="Unfall" or
beitrag/nr="Unfall" or
beitrag/titel~="Unfall" or
beitrag/redakteur~="Unfall" or
beitrag/sendeform~="Unfall" or
beitrag/kamera~="Unfall" or
beitrag/btrg_tca~="Unfall" or
beitrag/btrg_tce~="Unfall" or
beitrag/btrg_dauer="Unfall" or
beitrag/ton="Unfall" or
beitrag/bq="Unfall" or
beitrag/zfg~="Unfall" or
beitrag/bemerkung~="Unfall" or
beitrag/dokumentar="Unfall" or
beitrag/erfassungsdatum="Unfall" or
beitrag/bearbeitung~="Unfall" or
beitrag/bearbeitungsdatum="Unfall" or
beitrag/agenturtext~="Unfall" or
beitrag/bilderquelle~="Unfall" or
beitrag/originaltext~="Unfall" or
beitrag/deskriptor="Unfall" or
beitrag/abgleich="Unfall" or
beitrag/btrg_status="Unfall" or
beitrag/btrg_verweis="Unfall" or
beitrag/rechte~="Unfall" or
beitrag/idnr="Unfall" or
beitrag/sequenz/herkunft~="Unfall" or
beitrag/sequenz/land~="Unfall" or
beitrag/sequenz/stadt~="Unfall" or
beitrag/sequenz/seq_tca~="Unfall" or
beitrag/sequenz/seq_tce~="Unfall" or
beitrag/sequenz/seq_dauer="Unfall" or
beitrag/sequenz/topic~="Unfall" or
beitrag/sequenz/seq_beschreibung~="Unfall" or
beitrag/sequenz/hdate="Unfall" or
beitrag/sequenz/video_id~="Unfall" or
beitrag/sequenz/o_ton~="Unfall" or
beitrag/sequenz/seq_verweis~="Unfall")
])
Hello Bjorn, My experience with count() is about the same (i have collection of abt. 220.000 docs). I think the problem is, that Tamino first selects all the matching documents and counts them afterwards. If the size of the result set is big, the performance goes close to zero, this is my experience… Hope there will be some optimisation soon, i need it too to make some statistics…