As it is known, in the HANA system, there is a limit of two billion records in the tables. In other words, it is impossible to access a table with two billion rows of records. Especially the main tables such as MATDOC, ACDOCA, CDPOS are the tables that are most at risk in this case. For example, if you have two billion records in the ACDOCA table, it means that you will no longer be able to create accounting documents on the system, which means that the SAP system in general cannot be used.
So, is software like SAP something that you throw away when you get to a table with more than two billion rows? Of course not. As a solution, Hana Table partition is offered. Table partitioning means eliminating the two billion problem by dividing an existing table in the database into sub-tables, creating a more manageable table structure. The system starts to behave as if there are not 1 table in the database, but how many tables are divided into the related table. The question may come to mind immediately whether there is a performance loss in writing or reading. There was no measurable performance loss that I observed. When we drew the same reports with the same criteria before and after the process, the report working times were very close to each other. After dividing the table, you will see the parts of the partitioned tables in operation codes such as DBACKOCKPIT.
There are multiple methods when partitioning tables, you can choose the one that suits your company and processes. To explain without going into too much technical detail:
Hash Partitioning: It is the recommended method to be used if the table is to be equally distributed to the table partitions. If the table has key fields, the fields you will split by hash must be one of these key fields. In our company, we also partitioned the ACDOCA table from the BELNR field as Hash.
Range Partitioning: It is a method of splitting the table according to certain field values. The column that you will divide with the Range method must still be the table key. Again, to give an example for ACDOCA, you can divide the table on the basis of the Fiscal Year ( GJAHR ) field with the range method. Since the number of your registrations will change on a yearly basis, the division process made with this method will be asymmetrical. So there will be different number of records for different parts.
Round Robin Partitioning: It is used to create partitions with equal number of records without specifying a colon. Although it is very similar to hash splitting, it has some disadvantages.
If you need to get started with the Hana Table Partition process, I recommend reading the SAP Administration Guide on this topic.
There is also a Multi-Level Partitioning option to meet more complex table partitioning needs. This topic is also detailed in the Guide above.