Online Tutorials & Training Materials |
Register Login

Difference between Column store and Row store

03 Aug 2017 11:46 am || 1

Column Store vs Row Store

Row Store

Here the table records are stored in a sequence of rows. The first record goes into the first row, the next one in the second row and so on. The whole row is stored in contagious memory locations. It has the row based in-memory relational data engine that is optimized for high performance of write operations. Basically data is written using this row engine. Tables in the row based store are written at start up time.


  • When the appliation needs to only process a single record at one time then at that case we use row store engine.
  • If application needs to access the whole record then it's advantageous. If there is no aggregation required then row store is beneficial.


  • In case of analytic applications where aggregation is used and fast search processing is required, all the data in the row has to be read even if the requirement is just a few columns.

Column Store

It stores the table records in a sequence of columns, that is, the entries of the columns are stored in contagious memory locations. It has column based in-memory relational data engine parts of which originates from TREX (Text Retrieval and Extraction). Basically, data is read using this column engine.It takes the help of Logger to store, save and reference all the data committed in the SAP HANA database.


  • SAP HANA is particularly optimized for this column store. In this case the tables can either be loaded at the time of start up or on demand.
  • Data access is faster in this case with a significant increase of speed in data queries.
  • Columnar data storage allows highly efficient storage and has better parallel processing as well.

This table explains some basic differences between SAP HANA Column Store and SAP HANA Row Store.

Store Details
Column store
  • Column store is a column-wise organization
  • In column store, the data is stored in column main storage
  • Column values are stored in (deduplicated and sorted) dictionary where one integer value ID is assigned to each value.
  • Changes in the column store are recorded in column delta storage and regularly merged back into the main storage (Please check SAP Document 2057046)
  • Value ID vector is mostly compressed (Please check SAP Document 2112604)
  • Value ID vector maps value IDs (position of column value in dictionary) back to the row IDs (row number of record)
Row store
  • Row store is a row-wise organization
  • Row store comparable to classic relational databases


  • 04 Aug 2017 2:49 pm Helpful Answer

    Shared memory is used by the tables and the catalog of the row store whereas heap memory is used by the column store and other row store components like indexes.

    The row store is loaded in the memory at the time of startup and kept permanently therefore it is not possible to unload parts of the row store whereas the column store table columns are loaded while theare accessed or based on a reload algorithm therefore it can be unloaded when memory is required for other purposes