Hi,
I have set sqlIndexMaxInline size in cache configuration level as follows.
cacheCfg.setSqlIndexMaxInlineSize(100);
But still I am getting following warning message in log.
WARN o.a.i.i.p.q.h2.database.H2TreeIndex - <USER_ACCOUNT_CACHE> Indexed
columns of a row cannot be fully inlined into index what may lead to
slowdown due to additional data page reads, increase index inline size if
needed (use INLINE_SIZE option for CREATE INDEX command,
QuerySqlField.inlineSize for annotated classes, or QueryIndex.inlineSize
for explicit QueryEntity configuration) [cacheName=USERACCOUNTDATA,
tableName=USER_ACCOUNT_CACHE, idxName=USER_ACCOUNT_IDX4,
idxCols=(SUBSCRIPTIONID, UNITID, _KEY, AFFINITYID), idxType=SECONDARY,
curSize=10, recommendedInlineSize=83]
1) Is it necessary to set inline size using @QuerySqlField annotation?
2) How do I set inline size in case of group index in following case?
Do I need to set inline property inside each @QuerySqlField annotation?
public class Person implements Serializable {
/** Indexed in a group index with "salary". */
@QuerySqlField(orderedGroups={@QuerySqlField.Group(
name = "age_salary_idx", order = 0, descending = true)})
private int age;
/** Indexed separately and in a group index with "age". */
@QuerySqlField(index = true, orderedGroups={@QuerySqlField.Group(
name = "age_salary_idx", order = 3)})
private double salary;
}
Thanks,
Prasad