Hi, Thanks for your response. I have tried different ways but the result is the same. my cache records count is above 160,0000 var watchLINQQuery = System.Diagnostics.Stopwatch.StartNew(); var tmp= TestIcache.AsEnumerable().Where(tc=> string.Equals(tc.Value. CountryCode, CountryCode)).Select(tc => tc.Value); watchLINQQuery.Stop(); //0 or 1 Milliseconds var watchIQueryableToArray = System.Diagnostics.Stopwatch.StartNew();
var result = tmp.ToArray(); // 12354 milliseconds taken watchIQueryableToArray.Stop(); var result = tmp.ToArray(); taking similar time even if my query result returns 1 or 2 records. Please suggest to me how to improve this query performance. Regards, Charlin On Tue, 5 Nov 2024 at 19:01, Pavel Tupitsyn <ptupit...@apache.org> wrote: > 1. Check the generated SQL > > // Cast to ICacheQueryable > var cacheQueryable = (ICacheQueryable) query; > > // Get resulting fields query > SqlFieldsQuery fieldsQuery = cacheQueryable.GetFieldsQuery(); > > // Examine generated SQL > Console.WriteLine(fieldsQuery.Sql); > > > 2. Try EXPLAIN and other suggestions from > https://ignite.apache.org/docs/latest/SQL/sql-tuning > > 3. Is there an index on CountryCode? > > 4. Case-insensitive comparison might be inefficient. A better approach is > to store lower/uppercase value in cache, and then using lower/upper > criteria for search > > On Tue, Nov 5, 2024 at 1:08 PM Charlin S <charli...@hotelhub.com> wrote: > >> Hi Pavel, >> Thanks for your email. it reduces to 9 seconds after removing AsParallel. >> Please let me know if there are any more options to get good performance. >> >> Regards, >> Charlin >> >> On Tue, 5 Nov 2024 at 13:31, Pavel Tupitsyn <ptupit...@apache.org> wrote: >> >>> Hi, "AsParallel" is the problem, it causes the entire data set to be >>> loaded locally before filtering. >>> >>> Remove it so that the LINQ expression can be translated into Ignite SQL >>> and executed more efficiently. >>> >>> https://ignite.apache.org/docs/latest/net-specific/net-linq >>> >>> On Tue, Nov 5, 2024 at 8:58 AM Charlin S <charli...@hotelhub.com> wrote: >>> >>>> Hi All, >>>> >>>> I am trying Ignit.Net LINQ for the first time and seeing very slowness >>>> with my linq query taking 13-15 seconds. Test model having 550,000 records >>>> my query as below >>>> TestModel having index for CountryCode field. >>>> ICache<string, TestModel> cache = ignite.GetCache<string, >>>> TestModel>(CacheName); >>>> IQueryable<ICacheEntry<string, TestModel>> igniteQuerable = >>>> cache.AsCacheQueryable(); >>>> igniteQuerable.AsParallel() >>>> .Where(x=>string.Equals(x.Value.CountryCode, criteria. >>>> CountryCode, StringComparison.CurrentCultureIgnoreCase)) >>>> .Select(x => x.Key).ToList(); >>>> >>>> >>>> Regards, >>>> Charlin >>>> >>>>