Как я могу ускорить серию похожих запросов в хранилище данных activepivot?

В моем решении activepivot у меня есть магазин, содержащий стол и валюту для каждой сделки.

Например:

  • 1, евро, DeskA, 10
  • 2, евро, DeskB, 18
  • 3, фунтов стерлингов, DeskA, 17
  • 4, usd, DeskA, 54

У меня много запросов, где я хочу найти все записи, содержащие deskA и определенную, но меняющуюся валюту.

Чтобы выполнить эти три запроса:

  • DeskA, евро
  • DeskA, usd
  • DeskA, гбп

Я бы использовал подготовленное утверждение, чтобы избежать многократного разбора запроса. Есть ли какой-нибудь эквивалент в activepivot?

1 ответ

Вот как вы можете определить предварительно скомпилированный запрос

IRecordQuery query = new RecordQuery("storeName", Equal("attributeUsedForSearchHere").parametrized(0), Arrays.asList("attribute2", "attribute3", "attribute4"));
compiledQuery = datastore.getQueryManager().compile(query);

Вот как вы можете выполнить это

ICursor cursor = datastore.getQueryManager().execute(compiledQuery , new Object[] { valueOfAttributeUsedForSearchHere} );

в основном выше вы используете attributeUsedForSearchHere в качестве атрибута, который вы будете использовать для поиска на основе равных условий; Конечно, у вас может быть несколько атрибутов.

затем, когда запрос выполнен, вы можете прочитать другие атрибуты (attribute2, 3 и 4) следующим образом:

cursor.getRecord().read("attribute2")
Другие вопросы по тегам