跳轉到內容

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() 不起作用。)

華夏公益教科書