跳转到内容

XQuery/计时查询

来自维基教科书,开放的书籍,开放的世界

您想计时一个查询运行需要多长时间。

我们将在查询的开头和结尾添加两个 util:system-time() 函数。

我们要计时的示例查询如下

for $x in (1 to 10000)
return $x

为了计时这个查询,我们将在查询的开头和结尾插入 util:system-time()

let $query-start-time := util:system-time()

let $query := 
  for $x in (1 to 10000)
  return $x

let $query-end-time := util:system-time()

return
  ($query-end-time - $query-start-time) div xs:dayTimeDuration('PT1S')

这个查询的结果将类似于

0.005

这个值以秒为单位。

讨论与其他方法

[编辑 | 编辑源代码]

另一种使用高阶函数计时查询的方法在关于 计时斐波那契算法 的文章中讨论。

此外,eXist 支持一个用于计时查询的 XQuery pragma,它记录了完成查询所需的时间。

(解释为什么在示例中需要使用 util:system-time(),而 fn:current-time() 不起作用。)

华夏公益教科书