ObjectDB ObjectDB

IMK Stall with certain query

#1

Hello,

I am experiencing constant IMK Stall notifications from Java when using certain query:

2015-09-01 16:53:15.785 java[3678:5217999] IMK Stall detected, *please Report* your user scenario in <rdar://problem/16792073> - (imkxpc_deadKeyStateWithReply:) block performed very slowly (4.63 secs)

i am sure it is linked with objectdb as these are thrown each time one particular query is used:

String param = "%"+begining+"%";
CriteriaBuilder cb = DataBase.em.getCriteriaBuilder();
CriteriaQuery<OrderData> query = cb.createQuery(OrderData.class);       
Root<OrderData> order = query.from(OrderData.class);
Predicate p1 = cb.like(cb.lower(order.get("buyerId")), param);
Predicate p2 = cb.like(cb.lower(order.get("buyerName")), param);
query.select(order);
query.where(cb.or(p1, p2));
List<OrderData> orders = DataBase.em.createQuery(query).getResultList();

Is it a known issue? Is there anything i can do?

Thanks.

edit
delete
#2

No such known issue. The query looks fine. It could be slow if you have many orders.

Indexes on buyerId (if not the PK) and buyerName may improve performance.

 

ObjectDB Support
edit
delete
#3

OK, yes quantity is very large, these entities have too many fields and yet worst contains many strings. Primary Key is separate so i can use indexes, thank you for the documentation on this topic, concise and clear as usual.

Thank you support

edit
delete

Reply

To post on this website please sign in.