Expand my Community achievements bar.

SOLVED

Query builder query Limitation in fetching results

Avatar

Community Advisor

I'm trying to understand the how many nodes I can traverse through Query builder query and fetch data from the repository without impacting AEM system performance?

 

1 Accepted Solution

Avatar

Correct answer by
Community Advisor

For AEM 6.0 - 6.2 versions, you can tune the threshold for node traversal via JVM parameters in the AEM start script to prevent large queries from overloading the environment. The recommended values are :

  • -Doak.queryLimitInMemory=500000
  • -Doak.queryLimitReads=100000

for the original post, you can find it here, https://experienceleaguecommunities.adobe.com/t5/adobe-experience-manager/the-query-read-more-than-5...

View solution in original post

5 Replies

Avatar

Correct answer by
Community Advisor

For AEM 6.0 - 6.2 versions, you can tune the threshold for node traversal via JVM parameters in the AEM start script to prevent large queries from overloading the environment. The recommended values are :

  • -Doak.queryLimitInMemory=500000
  • -Doak.queryLimitReads=100000

for the original post, you can find it here, https://experienceleaguecommunities.adobe.com/t5/adobe-experience-manager/the-query-read-more-than-5...

Avatar

Community Advisor

Hi @Anny0505 ,

     The recommended values are 

-Doak.queryLimitInMemory=500000

-Doak.queryLimitReads=100000

 

Kr,

Sanjay

Avatar

Employee Advisor

I think that the question requires 2 distinct answers.

First, the response by @BrianKasingli is somehow correct, because it describes the limit of queries. Actually not in terms of the number of response nodes read from the query, but from the number of nodes which are traversed. In the extreme case that's the same number, but in many cases you can fetch much less nodes from the query than indicated by these limits.

 

The 2nd part of the response is, that you should refine your query as good as you can. And trying to avoid to craft queries, which return very large result sets and traversing them completly. Because this could hit the limits (as outlined by Brian), on the other hand side because it's typically not really fast. And the performance can play a role, depending on the context of the query.