Hi,

I have performance problem with this 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","art.
15","nosort")/../s:meta/s:classification/s:index

return $b

return

<result>
{for $i in distinct-values($tmp)
return
<section><name>{$i}</name><total>{count($tmp[.=$i])}</total></section>
}
</result>

Total time: 56500ms

I have also tried  this variant, but total time is always too high

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","art.
15","nosort")/../s:meta/s:classification/s:index

return $b

return

<result>
{for $sec in distinct-values($tmp)
return <section><name>{$sec}</name><total>{count($tmp intersect
index-scan("test",$sec,"EQ"))}</total></section>
}
</result>

Total time: 20453ms

Any suggestion ?

Thanks.

P.S.

This is the profile of the second query:

<profile xmlns="http://www.modis.ispras.ru/sedna";>
  <total-time>23.970</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="23.970" calls="1">
    <operation name="PPLet" position="4:5" time="23.968" calls="2">
      <produces>
        <variable descriptor="1" name="tmp"/>
      </produces>
      <operation name="PPReturn" position="4:17" time="2.272" calls="22341">
        <produces>
          <variable descriptor="0" name="b"/>
        </produces>
        <operation name="PPDDO" position="4:93" time="2.255" calls="22341">
          <operation name="PPAxisChild" step="child::element(s:index)"
position="4:93" time="2.109" calls="22341">
            <operation name="PPAxisChild"
step="child::element(s:classification)" position="4:76" time="1.986"
calls="22341">
              <operation name="PPAxisChild" step="child::element(s:meta)"
position="4:69" time="1.820" calls="22341">
                <operation name="PPAxisParent" step="parent::node()"
position="4:66" time="1.634" calls="22341">
                  <operation name="PPSeqChecker" mode="node" position="4:66"
time="1.460" calls="22341">
                    <operation name="PPFtIndexScan" position="4:23"
time="1.456" calls="22341">
                      <operation name="PPConst" type="xs:string"
value="ft_body" position="4:36" time="0.000" calls="2"/>
                      <operation name="PPConst" type="xs:string" value="art.
15" position="4:46" time="0.000" calls="2"/>
                      <operation name="PPConst" type="xs:string"
value="nosort" position="4:56" time="0.000" calls="2"/>
                    </operation>
                  </operation>
                </operation>
              </operation>
            </operation>
          </operation>
        </operation>
        <operation name="PPVariable" descriptor="0" variable-name="b"
position="6:8" time="0.004" calls="44680"/>
      </operation>
      <operation name="PPElementConstructor" element-name="result"
deep-copy="true" namespace-inside="false" position="10:1" time="23.968"
calls="2">
        <operation name="PPSequence" position="10:1" time="23.962"
calls="467">
          <operation name="PPSpaceSequence" doc-order="false"
position="11:1" time="23.962" calls="467">
            <operation name="PPReturn" position="11:6" time="23.962"
calls="467">
              <produces>
                <variable descriptor="2" name="sec"/>
              </produces>
              <operation name="PPFnDistinctValues" position="11:14"
time="3.207" calls="467">
                <operation name="PPVariable" descriptor="1"
variable-name="tmp" position="11:30" time="2.282" calls="22341"/>
              </operation>
              <operation name="PPElementConstructor" element-name="section"
deep-copy="false" namespace-inside="false" position="12:8" time="20.755"
calls="932">
                <operation name="PPSequence" position="12:8" time="20.752"
calls="1398">
                  <operation name="PPElementConstructor" element-name="name"
deep-copy="false" namespace-inside="false" position="12:17" time="0.006"
calls="932">
                    <operation name="PPSequence" position="12:17"
time="0.001" calls="932">
                      <operation name="PPSpaceSequence" doc-order="false"
position="12:23" time="0.001" calls="932">
                        <operation name="PPVariable" descriptor="2"
variable-name="sec" position="12:24" time="0.001" calls="932"/>
                      </operation>
                    </operation>
                  </operation>
                  <operation name="PPElementConstructor"
element-name="total" deep-copy="false" namespace-inside="false"
position="12:36" time="20.745" calls="932">
                    <operation name="PPSequence" position="12:36"
time="20.737" calls="932">
                      <operation name="PPSpaceSequence" doc-order="false"
position="12:43" time="20.736" calls="932">
                        <operation name="PPFnCount" position="12:44"
time="20.736" calls="932">
                          <operation name="PPIntersect" doc-order="false"
position="12:50" time="20.731" calls="22806">
                            <operation name="PPSXptr" position="12:50"
time="17.913" calls="10342429">
                              <operation name="PPVariable" descriptor="1"
variable-name="tmp" position="12:50" time="2.116" calls="10410906"/>
                            </operation>
                            <operation name="PPSXptr" position="12:65"
time="1.511" calls="487246">
                              <operation name="PPIndexScan"
index-scan-condition="EQ" position="12:65" time="0.222" calls="487266">
                                <operation name="PPConst" type="xs:string"
value="test" position="12:76" time="0.000" calls="932"/>
                                <operation name="PPVariable" descriptor="2"
variable-name="sec" position="12:83" time="0.000" calls="932"/>
                                <operation name="PPConst" type="xs:integer"
value="0" position="12:65" time="0.000" calls="0"/>
                              </operation>
                            </operation>
                          </operation>
                        </operation>
                      </operation>
                    </operation>
                  </operation>
                </operation>
              </operation>
            </operation>
          </operation>
        </operation>
      </operation>
    </operation>
  </operation>
</query>

All the tests was performed on a DELL PowerEdge 2009 (Quad-Core XEON
E5410, 4GB RAM, 3 x 750GB Raid SAS) with Debian Lenny (Kernel version
2.6.26-2-amd64) and Sedna 3.4.228
------------------------------------------------------------------------------
Colocation vs. Managed Hosting
A question and answer guide to determining the best fit
for your organization - today and in the future.
http://p.sf.net/sfu/internap-sfd2d
_______________________________________________
Sedna-discussion mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/sedna-discussion

Reply via email to