To choose an index, the optimizer performs several stages. These stages determine whether an index can be used to process a restrict operation and, if there are multiple indexes to choose from, which index will be used:

  • Transform expressions in predicates
  • Generate a list of candidate indexes
  • Select an index to use