Skip to Content
Author's profile photo Martin Maruskin

ABAP on HANA: How to check what tables are type of columnar?

Since HANA is already 2 years old and there is quite number customers who already adopted it in different fashions (NetWeaver ABAP based systems running on HANA DB, newly written native HANA’s XS engine powered apps, etc.). We hear a lot of media frenzy saying that HANA is in-memory that it does use columnar oriented tables etc. However not all tables in HANA are really columnar based. Actually HANA stores data in both row and column ways. By that combination of both storage approaches HANA is gaining its speed while performing operations in its DB. While you do migration of your NetWeaver ABAP based system (from your current DB to HANA DB) migration procedure would be switched only some tables to columnar type. The tables that would be converted are specifically determined by SAP as per SAP’s knowledge of usage of that table. Because columnar type makes sense and gains performance only for some tables. Typically tables that are used for OLAP applications are suitable candidates to be converted to columnar. On contrary tables used in OLTP applications are the best candidates to stay in row oriented type of storage. See nice blog with explanation here.

Now imagine that I migrated my NetWeaver ABAP based system (ECC, CRM, BW, etc.) to HANA DB. Of course I would be interesting what tables were migrated to columnar type of storage. Basically I can go to Database utility transaction (SE14) to find out that. Within that transaction on Storage Parameters screen there is a settings called show IS_COLUMN_TABLE shown. If it has value TRUE that that table is column based.

If I want to check that for several tables in one shot I can go to table DD09L where the column (or is it row? 🙂 ) ROWORCOLST is available. If it has value R means table is row oriented. Consequently if it is C then it is columnar oriented table.


More HANA experienced guys will certainly object that this information can be more easyli be obtained via HANA tables. Yes I can imagine that via SAP HANA Developer Studio I can browse technical HANA artifacts like monitoring view M_TABLES which has column IS_COLUMN_TABLE. It can have values: ‘TRUE’=table is columnar based or ‘FALSE’=row based. I’m just old fashioned ABAP guy; so initially I was looking to method to find that information through NetWeaver.

PS: Notice that I have only theoretical and therefore very limited knowledge of HANA. Also I do not have an access to any HANA based system yet. This blog post was written mostly on knowledge I gained while participating in “Introduction to Software Development on SAP HANA” course. That course was great initiative by and I’d like to thank whole team who delivered it. Especially Thomas Jung and Rich Heilman who were lecturers of the course.

PS2: Screenshot is courtesy of above mentioned course – week  “Extra knowledge” video: ABAP on HANA.

Assigned Tags

      You must be Logged on to comment or reply to a post.
      Author's profile photo Thorsten Schneider
      Thorsten Schneider

      Hi Martin,

      nice blog. Just one remark re. row vs column store: to my knowledge the rule of thumb is to put tables in the column store per default.

      If you have a lot of single record operations you might deliberately decide against it. Afaik the majority of the tables in Business Suite is column store.



      Author's profile photo Former Member
      Former Member

      I’m just old fashioned ABAP guy

      The feeling is mutual. With everyone chanting HANA all around, i feel outdated already!



      Author's profile photo Ashok Babu Kumili
      Ashok Babu Kumili

      Usefull info and very good point of view.      

      Author's profile photo Former Member
      Former Member

      Excellent post. Very informative... Keep blogging...

      Author's profile photo Panneer Selvam
      Panneer Selvam

      Hi Martin,

      Useful info.

      One Comment: OLTP applications on Column store is not a bad idea. HANA has the Delta store concept where the data is written into Delta store in  ROW format and this Delta store is merged with Main store periodically or can be merged manually.