-
Improvement
-
Resolution: Done
-
Neutral
-
6.2.27
-
None
-
None
Steps to reproduce
- Go to https://nightly.magnolia-cms.com/.magnolia/admincentral#app:pages-app:browser
- Filter via page template dropdown
- Inspect/debug the constructed JCR query performance/timing
Original ticket description
A curious one (which we fully blame on JackRabbit) was the the jcrName wildcard query (ie '%nodename%). A comparison with the queries generated by Magnolia 5 revealed that adding a property existence query increased performance significantly. So the difference between one without and one without on our repository is really something:
SELECT * FROM [nt:base] AS t WHERE ISDESCENDANTNODE(t, [/]) AND (t.[jcr:primaryType] = 'mgnl:page' OR t.[jcr:primaryType] = 'mgnl:variants' OR t.[jcr:primaryType] = 'mgnl:variant') AND (LOWER(LOCALNAME(t)) LIKE '%test%' )
546 nodes returned in 19210ms
SELECT * FROM [nt:base] AS t WHERE ISDESCENDANTNODE(t, [/]) AND (t.[jcr:primaryType] = 'mgnl:page' OR t.[jcr:primaryType] = 'mgnl:variants' OR t.[jcr:primaryType] = 'mgnl:variant') AND (LOWER(LOCALNAME(t)) LIKE '%test%' OR t.['xxxx'] is not null)
546 nodes returned in 426ms
Results from discovery:
SELECT * FROM [nt:base] AS t WHERE ISDESCENDANTNODE(t, [/]) AND (t.[jcr:primaryType] = 'mgnl:page') AND LOWER(LOCALNAME(t)) LIKE '%test%' 14572 nodes returned in 6486ms
SELECT * FROM [nt:base] AS t WHERE ISDESCENDANTNODE(t, [/]) AND (t.[jcr:primaryType] = 'mgnl:page') AND (LOWER(LOCALNAME(t)) LIKE '%test%' OR t.['xxxx'] is not null) 14572 nodes returned in 798m
- split from
-
MAGNOLIA-8347 JcrQueryBuilder performance issues.
- Closed
1.
|
Implementation | Completed | Adam Siska | |||||||||
2.
|
Review | Closed | Antonín Juran | |||||||||
3.
|
Pre-int QA | Closed | Antonín Juran | |||||||||
4.
|
QA | Completed | Sang Ngo Huu |
|