XPath和JCR-SQL2性能比较

时间:2022-04-01 20:11:10

最近,对jackrabbit中Xpath和JCR-SQL2的查询性能做了一下比较,虽然JCR从2.0版本开始不再推荐使用XPath,但从查询性能上来讲,XPath似乎远高于JCR-SQL2

以下是查询比较结果

测试环境:

    Jackrabbit 2.2.7

    操作系统   Windows 2003

    内存       4G

    处理器     AMD Athlon(tm) II X4 640 3.01GHz

数据源:

1033条节点记录,包括917个文件和116个文件夹

查询比较:

测试记录

JCR-SQL2(毫秒)

Xpath(毫秒)

1

2328

187

2

2484

188

3

2500

188

4

2344

187

5

2328

203

6

2344

187

7

2484

203

8

2344

188

9

2343

203

10

2343

188

平均

2384

192

查询语句:

JCR-SQL2:

SELECT node.* FROM[krp:KNode] AS node

INNER JOIN [krp:KRPACL] asacl ON ISCHILDNODE(acl,node)

INNER JOIN [krp:KFolder] asparent ON ISCHILDNODE(node,parent)

WHERECONTAINS(acl.[krp:browse],'1')

AND ISSAMENODE(parent,'/KRP/KRepoGroup[2]/KRepository/KFolder')

ORDER BY node.[krp:folder] DESC

Xpath:

//KRP/KRepoGroup[2]/KRepository/KFolder/element(*,krp:KFolder)[KFolderACL/@krp:browse='1']