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 open.sap.com 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.