Oracle Bitmap Index
.Bitmap index is used when data cardinality is low.
.Here, Gender has value with low cardinality. Values are may be Male, Female & others.
.So, if we create a binary tree for this 3 values while searching it will have unnecessary traverse.
.In bitmap structures, a two-dimensional array is created with one column for every row in the table being indexed. Each column represents a distinct value within the bitmapped index. This two-dimensional array represents each value within the index multiplied by the number of rows in the table.
.At row retrieval time, Oracle decompresses the bitmap into the RAM data buffers so it can be rapidly scanned for matching values. These matching values are delivered to Oracle in the form of a Row-ID list, and these Row-ID values may directly access the required information.
Function Based Index
.Function based index means, creating index based on a function.
.If in search (where clause), frequently any function is used, it's better to create index based on that function.
.Here, in the example, for search, Upper() function is being used. So, it's better to create index using upper function.