最近,对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']
本文对比了在Jackrabbit 2.2.7环境下XPath与JCR-SQL2的查询性能。测试表明,尽管官方不再推荐使用XPath,但在相同的查询条件下,XPath的查询速度明显优于JCR-SQL2。
1426

被折叠的 条评论
为什么被折叠?



