Also there are additional optimizations for ‘in’ cases in higher versions, 
probably it will help.

  
>Среда, 31 мая 2023, 11:24 +03:00 от Charlin S <[email protected]>:
> 
>Hi,
>Already Field4 having index([QuerySqlField(IsIndexed = true)]), which is used 
>in where clause.  Do you mean index for all fields if yes how that will solve 
>this problem?
> 
>Thanks,
>Charlin  
>On Wed, 31 May 2023 at 13:38, Zhenya Stanilovsky via user < 
>[email protected] > wrote:
>>Hi, seems you need to build index over this field.
>>
>>
>>
>> 
>>>Hi All,
>>>I am having two nodes cluster grid and  cache model, which has 2126239 
>>>records and Ignite query with IN operator taking too long sometimes 17 - 18 
>>>seconds and another time around 40 seconds.
>>> 
>>>Expected result : 30000 to 40000 records.
>>> 
>>>ignite version: 2.10
>>>Ignite server hosted on linux box and C# .net 6 is the Ignite client
>>> 
>>>Ignite cache model class
>>> 
>>>public class TestModel : IBinarizable
>>>{
>>>
>>>[QuerySqlField()]
>>>public decimal? Field1 { get; set; }
>>>
>>>[QuerySqlField()]
>>>public string Field2 { get; set; }
>>>
>>>[QuerySqlField()]
>>>public string Field3 { get; set; }
>>>
>>>[QuerySqlField(IsIndexed = true)]
>>>public string Field4 { get; set; }
>>>
>>>[QuerySqlField()]
>>>public string Field5 { get; set; }
>>>
>>>public void ReadBinary(IBinaryReader reader)
>>>{
>>>if (reader != null)
>>>         {
>>>Field1 = reader.ReadDecimal("field1");
>>>Field2 = reader.ReadString("field2");
>>>Field3 = reader.ReadString("field3");
>>>Field4 = reader.ReadString("field4");
>>>Field5 = reader.ReadString("field5");
>>> }
>>>}
>>>
>>>public void WriteBinary(IBinaryWriter writer)
>>>{
>>>if (writer != null)
>>>         {
>>>writer.WriteDecimal("field1",Field1) ;
>>>writer.WriteString("field2",Field2) ;
>>>writer.WriteString("field3",Field3) ;
>>>writer.WriteString("field4",Field4) ;
>>>writer.WriteString("field5",Field5) ;
>>>}
>>>}
>>>
>>>Ignite query execution code
>>>string query = "select Field1,Field2,Field3,Field4 from TestModel where 
>>>Field4 in('1','2')";
>>>SqlFieldsQuery fieldsQuery = new SqlFieldsQuery(query);
>>>    ICache.Query(fieldsQuery);
>>> 
>>> 
>>>Regards,
>>>Charlin 
>> 
>> 
>> 
>>  
 
 
 
 

Reply via email to