Hi, all! Query performance that involves operations with path is awfully bad. Performance of query execution without path element better but not acceptable too. My test results below.
About repository content. It is quite simple. Repository contains small articles (topics) in category hierarchy. Topic itself is node with properties and few subnodes. Hierarchy of categories has 3-5 levels. My tests was conducted on appr. 1000 topic nodes in appr. 40 categories. Categories are created by user so I can not know how much levels hierarchy has. Queries and execution times: 1. "/jcr:root/myContent/en/topics//*/my:topic" - 110 seconds. 2. "//topics/*/my:topic" - 43 seconds 3. "//element(my:topic)" - 12 seconds. If query contains some parameters times do not go much worse. There's almost no disk activity and processor load is 100% during query execution. Must be mentioned that repository reading by webdav browser is quite fast even in time of query execution. My quick and dirty function that just traverses all tree from /jcr:root/myContent/en/topics without any caching gives result in 120 ms first time and 30 ms next times. I tested SQL queries and performance approximately is between query #2 and #3. Should be said that SQL is quite buggy and cannot be used. I do not know what to do with such performance becuse my application useless with such time of execution. What causes this incredible slowness? If it is "famous" Lucene engine so there's no reason to jump to exo's JCR implementation. -- SY, Alex Lukin RIPE NIC HDL: LEXA1-RIPE
