cancel
Showing results for 
Search instead for 
Did you mean: 

When to Store as "Row"Store Table & When to Store as 'Column" Based Store ??

pr_srinivas
Contributor
0 Kudos

HI

I am early bird on HANA , trying to catch up BASICS

Q1 :

We are trying to realize - SAP Business Application Accelerator powered by HANA.

Background : our ERP System is : ECC 6.0 Ehp6 - AIX - ORA 11.2.0.3

Query :

To successfully implement SAP Business Application Accelerator powered by HANA

Do i need to replicate the tables of ECC-  to HANA DB    as  a) Row Stored tables   [or]  b) Column Stored tables. 

What is my option  a or b , [or] any thing can be used ,

if both can be used - When to use Row Stored in HANA  - When to Use Column Stores in HANA.

Rgds

PR

Accepted Solutions (0)

Answers (2)

Answers (2)

former_member609795
Discoverer
0 Kudos

Its very Simple to Understand

We will go for row Storage, when u need top perform more read operations.

And when there is requirement for any calculation(Aggregation Function like MIN/MAX/AVG/COUNT/FIRST/LAST/TOP1) we will go for Column Storage.

Note : While using Aggregation Function, explicitly we need to use Group by Clause.... Else its will give syntax error

Warm regards

Ashish Yadav

Former Member
0 Kudos

If you replicate tables using SLT then SLT will take care of this for you. It will create Row tables for BASIS tables and Column tables for everything else.

Otherwise my advice is: only ever use Row-oriented tables if you really know what you are doing. For all other scenarios use Column-oriented tables.

Examples when you may want to use Row-oriented tables:

- Configuration tables where you want to do e.g. SELECT SINGLE *

- Message Queues e.g. qRFC

For all data tables including master data and transactional data you MUST always use column store objects.


John

pr_srinivas
Contributor
0 Kudos

Thanks for reply !!!

SO - When ABAP Code is trying to execute on  secondary DB Connection i.e on HANA, by the same program statments - there will not be any issue ?

like Current underlying DB have 'Row-STores' in Oracle

&

Seconday DB have " Coloumn Store" in HANA.

Can the same ABAP Code can run both from "Row" before & "Column"  after  .-

does it not require any chnage in ABAP Code ?

Rgds

PR

pr_srinivas
Contributor
0 Kudos

John~

Could u please confirm please

Rgds

PR

Former Member
0 Kudos

Correct, if you use SLT, it will use column store objects in HANA by default, despite being row store objects in Oracle.

No changes will be required in order for the code to run (and probably much faster). However, if your code was written for Oracle and you want to use HANA as a secondary database, you may find that your code benefits from further optimization.

This is because often, developers use SELECT * and Loops. This is not the correct approach for HANA - you need to push the query down into the database.

John

former_member182302
Active Contributor
0 Kudos

Hi Appleby,

Isn't the loading performance on the row tables is better than column tables?

I was justifying the statement as i see the .ctl file where we mention the row delimeter and expecting the loading to take place in row by row manner?

Why isn't there is a difference while loading into row table in comparison with column table?

Regards,

Krishna Tangudu

Former Member
0 Kudos

No. They are similar. You can bulk load into the column store.

Again: do not use the row store unless you know why you are using it. You lost most of the optimisations of HANA when you use the row store.

http://scn.sap.com/community/hana-in-memory/blog/2012/03/20/inside-sap-hana--optimising-data-load-pe...

former_member182302
Active Contributor
0 Kudos

Thanks Appleby.

Regards,

Krishna Tangudu