Я новичок в ArangoDB. Требуется некоторая помощь в повышении производительности запроса.
Технические характеристики: ArangoDb (3.6.2), Java 8 Springboot application (2.xx).
Я пытаюсь выполнить запрос, где он возвращает объект после объединения данных из нескольких графиков. Запрос выполняется бесконечно, когда я непосредственно возвращаю объект, где он работает быстрее (например, 75 секунд), когда я просто возвращаю элемент объекта.
for d in data
return d
Вывод:
[{
accntDtl:{ //account detials here
},
accntPrfl:{//accnt profile here
},
//few other parameters
}]
return d
- работает бесконечно.
, тогда как return d.accnt[0].accntDtl[0].accntId
- выполняется за 75 секунд.
Что может быть возможным решением для увеличения его производительности?
Примечание: Этот запрос возвращает около 2 миллионов записей.
В целях конфиденциальности я не могу опубликовать весь запрос здесь.
Заранее спасибо.
Обновления: включены AqlQueryOptions для потоковой передачи.
aqlQueryOptions.stream(true),aqlQueryOptions.batchSize(10000)
Потребляет то же самое:
while(cursor.hasNext()){
result = cursor.next();
//deserilize result as doc
resultList.add(doc)
..... processing the data
}
Но эта итерация происходит 1 к 1, а не в партии 10 000, как указано в параметре batchSize , Я уверен, что использование курсора не рекомендуется. Пожалуйста, предложите наилучший способ использования этих данных в пакете из 10000 на каждой итерации.