对于以下代码,我将得到完整的扩展树缓存:
xquery version "1.0-ml";
let $result :=
<root>{
cts:search(
fn:collection("metadata-search")/metadata,
cts:and-query((
cts:element-value-query(xs:QName('AssetID'), "*")
))
)/assetIdentifiers/assetIdentifier/AssetID
}</root>
let $path := "D:\Output\input.xml"
return
xdmp:save($path, $result,
<options xmlns="xdmp:save">
<method>xml</method>
</options>
)
但是,如果我在迭代模式下运行相同的代码,则效果很好:
xquery version "1.0-ml";
let $result :=
<root>{
for $data in cts:search(
fn:collection("metadata-search")/metadata,
cts:and-query((
cts:element-value-query(xs:QName('AssetID'), "*")
))
)
return $data/assetIdentifiers/assetIdentifier/AssetID
}</root>
let $path := "D:\Output\input.xml"
return
xdmp:save($path, $result,
<options xmlns="xdmp:save">
<method>xml</method>
</options>
)
数据库中有4500万个资产,并且要花10分钟才能运行,我想知道为什么其他代码构造可以正常工作而不是第一个可以正常工作?任何想法,请让我详细了解此代码的上下文?