Как я могу ускорить серию похожих запросов в хранилище данных 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")