Hi,
there is a way to optimize this query ?
Could you add a new feature to create pre-ordered full-text/standard indexes
in this way I can query them directly without must order at runtime?
example:
create index "myindex" on {path} by {path} as {type} ORDERED BY {path}
or
create full-text index "myftindex" on {path} type "xml" with options
"type=native" ORDERED BY {path}
---QUERY---
declare namespace s="http://www.schemata.it/lml/1.0";
declare namespace l="http://www.schemata.it/lml/1.0/linker";
let $tmp := for $b in ftindex-scan("ft_body","legge","nosort")
let $date:=xs:date($b/../s:meta/s:info/s:date)
order by $date ascending
return $b
return subsequence($tmp,1,10)
&
total time: 9.999
profile:
<profile xmlns="http://www.modis.ispras.ru/sedna">
<total-time>12.065</total-time>
</profile><prolog xmlns="http://www.modis.ispras.ru/sedna">
<namespace prefix="l" uri="http://www.schemata.it/lml/1.0/linker"/>
<namespace prefix="s" uri="http://www.schemata.it/lml/1.0"/>
</prolog><query xmlns="http://www.modis.ispras.ru/sedna">
<operation xmlns="" name="PPQueryRoot" time="12.065" calls="1">
<operation name="PPLet" position="4:5" time="12.061" calls="11">
<produces>
<variable descriptor="5" name="tmp"/>
</produces>
<operation name="PPReturn" position="4:13" time="12.061" calls="11">
<produces>
<variable descriptor="3"/>
<variable descriptor="2"/>
</produces>
<operation name="PPOrderBy" stable="false" tuple-size="2"
position="6:1" time="12.061" calls="11">
<modifiers>
<modifier type="ascending empty least"/>
</modifiers>
<operation name="PPReturn" position="4:17" time="8.599"
calls="391301">
<produces>
<variable descriptor="0" name="b"/>
</produces>
<operation name="PPDDO" position="4:23" time="4.076"
calls="391301">
<operation name="PPFtIndexScan" position="4:23" time="0.915"
calls="391301">
<operation name="PPConst" type="xs:string" value="ft_body"
position="4:36" time="0.000" calls="2"/>
<operation name="PPConst" type="xs:string" value="legge"
position="4:46" time="0.000" calls="2"/>
<operation name="PPConst" type="xs:string" value="nosort"
position="4:54" time="0.000" calls="2"/>
</operation>
</operation>
<operation name="PPLet" position="5:5" time="4.332"
calls="782600">
<produces>
<variable descriptor="1" name="date"/>
</produces>
<operation name="PPCast" type="xs:date?" position="5:12"
time="3.292" calls="782600">
<operation name="PPAxisChild" step="child::element(s:date)"
position="5:40" time="2.600" calls="782600">
<operation name="PPAxisChild"
step="child::element(s:info)" position="5:33" time="2.081" calls="782600">
<operation name="PPAxisChild"
step="child::element(s:meta)" position="5:26" time="1.513" calls="782600">
<operation name="PPAxisParent" step="parent::node()"
position="5:23" time="0.868" calls="782600">
<operation name="PPSeqChecker" mode="node"
position="5:23" time="0.275" calls="782600">
<operation name="PPVariable" descriptor="0"
variable-name="b" position="5:20" time="0.118" calls="782600"/>
</operation>
</operation>
</operation>
</operation>
</operation>
</operation>
<operation name="PPSTuple" position="6:1" time="4.086"
calls="782600">
<operation name="PPVariable" descriptor="0"
variable-name="b" position="6:1" time="0.114" calls="782600"/>
<operation name="PPVariable" descriptor="1"
variable-name="date" position="6:1" time="3.537" calls="782600"/>
<operation name="PPVariable" descriptor="1"
variable-name="date" position="6:10" time="0.101" calls="782600"/>
</operation>
</operation>
</operation>
</operation>
<operation name="PPSLet" position="7:8" time="0.000" calls="21">
<produces>
<variable descriptor="4"/>
</produces>
<operation name="PPVariable" descriptor="2" position="7:8"
time="0.000" calls="0"/>
<operation name="PPVariable" descriptor="3" position="7:8"
time="0.000" calls="21"/>
</operation>
</operation>
<operation name="PPFnSubsequence" position="8:8" time="12.061"
calls="11">
<operation name="PPVariable" descriptor="5" variable-name="tmp"
position="8:20" time="12.061" calls="11"/>
<operation name="PPConst" type="xs:integer" value="1"
position="8:25" time="0.000" calls="2"/>
<operation name="PPConst" type="xs:integer" value="10"
position="8:27" time="0.000" calls="2"/>
</operation>
</operation>
</operation>
</query>
Many thanks.
------------------------------------------------------------------------------
Enable your software for Intel(R) Active Management Technology to meet the
growing manageability and security demands of your customers. Businesses
are taking advantage of Intel(R) vPro (TM) technology - will your software
be a part of the solution? Download the Intel(R) Manageability Checker
today! http://p.sf.net/sfu/intel-dev2devmar
_______________________________________________
Sedna-discussion mailing list
Sedna-discussion@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/sedna-discussion