From: Alessandro V. <av...@sc...> - 2007-08-09 01:51:11
|
I have a fairly large collection with about 10k resources, and each contains about 100 elements. The queries I am running against this data are slower than what I would expect, and I'd like to see if there is anything that can be done to improve this. Let's start with the collection. You can create it with: xmldb:create-collection('/db','testing'), for $docIndex in 1 to 10000 return let $dummy := xmldb:store('/db/testing', concat('parameters-', $docIndex, '.xml'), element parameters { for $parameterIndex in 1 to 50 return element parameter { element name { concat('name-', ($docIndex * $parameterIndex) mod 100) }, element value { concat('value-', ($docIndex * $parameterIndex) mod 1000) } } } ) return () Let's consider this query: for $ps at $pos in /parameters let $p1 := $ps/parameter[name = 'name-1']/value let $p2 := $ps/parameter[name = 'name-2']/value let $p3 := $ps/parameter[name = 'name-3']/value (: order by $p3 :) return <tr> <td>{xs:string($p1)}</td> <td>{xs:string($p2)}</td> <td>{xs:string($p3)}</td> </tr> It returns one "line" (tr) with information about each one of the resources in the collection. So yes, this returns a good amount of data. But the query still does not return after 10 minutes. Is there anything that I can do to improve this? Notes: 1) I am using the latest code from SVN. 2) I enabled query rewrite in conf.xml. 3) I have the following in place in collection.xconf: <create path="/parameters/parameter/name" type="xs:string"/> <create path="/parameters/parameter/value" type="xs:string"/> Alex -- Orbeon Forms - Web 2.0 Forms, open-source, for the Enterprise http://www.orbeon.com/ -- View this message in context: http://www.nabble.com/Query-on-large-data-set-tf4240164.html#a12065108 Sent from the exist-open mailing list archive at Nabble.com. |