One more question: As I am trying to create a situation where the disk is accessed as least as possible (with a select distinct from X where a=1 and b>10 and c=true; In which a and b are indexes and c is not, and c is in the value which is evicted to disk)
Did I get it right - that if I use a hint on a, or a hint on b, or a hint on both, it will first do a select on the hinted, and ONLY THEN the others? Can anyone refer me to the code (where the 2 phase search occurs)? Where is the value finally loaded from disk? Thank you Roi -----Original Message----- From: Roi Apelker Sent: Tuesday, August 29, 2017 4:02 PM To: dev@geode.apache.org Subject: RE: Indxes and hints Thank you Jason :-) -----Original Message----- From: Jason Huynh [mailto:jhu...@pivotal.io] Sent: Monday, August 28, 2017 7:24 PM To: dev@geode.apache.org Subject: Re: Indxes and hints Hi Roi, Answers are below the questions... Question 1. Is it true to say, that the query as it is will load all the data values from the file, since the field C is part of the value, which is already persisted to file? Depending on if an index is used or not, if an index is used, the values that are part of the results will need to be loaded to actually return a result. If an index is not used, then the all the values would need to be loaded to actually have something to evaluate the filter criteria on. Question 2. If I add a hint on A and B, will it mean that there will be a "2 phase search", first the select on A and B, and then, only on the results, on the field C? (this way, not all records will be loaded from file, only those that suit the A and B condition) Depending on the query, it could use one, or more. If it's a query with only AND clauses, it should just choose one and then evaluate the other filters on the subset that is returned from the index. Question 3. Is it possible to define an index on a value field? (i.e. not from the key) - will it work exactly like defining one form the key or are three any limitations? (again, I am looking to overcome the situation, where as it seems, the records are loaded unnecessarily from disk) Yes, indexes can be defined on fields in the value. It will work the same. If you are sure you are already using an index in the query and still loading every value for every execution of that query, there may be something weird going on... On Sun, Aug 27, 2017 at 2:55 AM Roi Apelker <roi.apel...@amdocs.com> wrote: This message and the information contained herein is proprietary and confidential and subject to the Amdocs policy statement, you may review at https://www.amdocs.com/about/email-disclaimer <https://www.amdocs.com/about/email-disclaimer> This message and the information contained herein is proprietary and confidential and subject to the Amdocs policy statement, you may review at https://www.amdocs.com/about/email-disclaimer <https://www.amdocs.com/about/email-disclaimer>