Hi,
   I got a strange thing.
   I execute a query with JDBC thin mode.
   But the performance and explain is very strange.
   The SQL is :
        SELECT FID,FNUMBER FROM "customerCache".CustomerIgniteInfo  WHERE 
FUSEDSTATUS = 3


   and explain is:
      SELECT
    __Z0.FID AS __C0_0,
    __Z0.FNUMBER AS __C0_1
FROM "customerCache".CUSTOMERIGNITEINFO __Z0
    /* "customerCache".CUSTOMERIGNITEINFO.__SCAN_ */
WHERE __Z0.FUSEDSTATUS = 3


    The entity like this(I have deleted the other fields):


     @Entity
@Table(name="t_customer")
public class CustomerIgniteInfo implements Serializable {
private static final long serialVersionUID = -8065741098718964203L;


@QuerySqlField(index = true, orderedGroups={@QuerySqlField.Group(
    name = "IX_T_BD_StatusFid", order = 1)})
private String FID;
@QuerySqlField( orderedGroups={@QuerySqlField.Group(
    name = "IX_T_BD_StatusFid", order = 2)})
private String FNUMBER;
@QuerySqlField(orderedGroups={@QuerySqlField.Group(
    name = "IX_T_BD_CUSTOMER", order = 1),@QuerySqlField.Group(
    name = "IX_T_BD_StatusFid", order = 0)})
private Integer FUSEDSTATUS;
/**********Getters and Setters******************/
@Id
    @GeneratedValue(generator = "personGenerator")
    @GenericGenerator(name = "personGenerator", strategy = "assigned")
@Column(name = "FID")
public String getFID() {
return FID;
}
        public void setFID(String id) {
this.FID = id;
}


@Column(name = "FNUMBER")
public String getFNUMBER() {
return FNUMBER;
}


public void setFNUMBER(String fNUMBER) {
FNUMBER = fNUMBER;
}


@Column(name = "FUSEDSTATUS")
public Integer getFUSEDSTATUS() {
return FUSEDSTATUS;
}


public void setFUSEDSTATUS(Integer fUSEDSTATUS) {
FUSEDSTATUS = fUSEDSTATUS;
}
}




      My ignite version is 2.3.
      Should  this be a full table scan? It took more time.


      1. I want to know why this happened.
      2. How can I create a correct index?
      
    Thanks.
    Lucky

Reply via email to