A database index has the following properties:
It can be considered an access path that helps the DBMS locate rows faster.
It can speed up searching and sorting as follows:
It reduces the need for full table scans or full column scans.
It reduces the need for non-unique indexes in SAP HANA to exceptional cases only.
It has no influence on the result of queries, only on how fast the result is returned.
It can slow down INSERT, UPDATE, and DELETE operations (especially non-unique indexes).
Coming up with a good balance of indexes is an iterative process.
SAP HANA: Why Indexes on Column Store?
- SAP HANA column store tables store keep column values together, not row values.
- Columns are stored as:
- Sorted dictionary of values
- (Bit-)Vector of value IDs
Are indexes necessary to speed up data access?
The following figure gives an example of when you would use indexes on a column store.

SAP HANA: Table Scan with Value ID
Value ID lookup is fast.
Binary search on sorted dictionary
- Row ID lookup can still involve full column scans.
- No issue for most value ID vectors, even less if sorted
- But may be slow for very large value ID vectors
The following figure gives an example of this type of scan.

SAP HANA: Inverted Index on Column Store
An inverted index can be reasonable in exceptional cases if column scan performance is not sufficient.
The following figure gives an example of this type of index.
