Additional Blogs by Members
cancel
Showing results for 
Search instead for 
Did you mean: 

Introduction

 

Database tables of InfoCubes often contain several million records, so database operations of any nature are time-consuming for these tables. For such cases, the partitioning of an InfoCube tables is a very effective option to improve performance.

With portioning, the structure of a InfoCube table in database systems will basically be defined to use a partitioning field to physically divide it into several database areas (tables, blocks, etc.).

The partitioning of the tables has two advantages:

  • Instead of having one read process that searches the complete fact table for the required information, several read processes can be executed in parallel in the individual partitions.

 

  • When the read access to the partitioning characteristic is limited, a number of partitions may be possibly excluded from the read process, so the data base will be smaller and comprehensive data will be found and read significantly faster.

 

           

                            Figure 1:- Partitioning Logic

 

Steps for InfoCube Partitioning

Step 1:- Time Characteristics

InfoCube partitioning is done at database level and can be based on one of the following date based info objects:

  • Calendar Month (0CALMONTH) or
  • Fiscal Year/Period (0FISCPER)

Hence include either of these time characteristic in the InfoCube to be partitioned under the Time dimension as per the business requirement.

 

        

                   Figure 2:- 0CALMONTH & 0FISCPER Characteristic

 

Step 2:- Setup InfoCube Partitioning

To setup partitioning for an InfoCube, open the InfoCube in Edit Mode and choose Extras -> DB Performance -> Partitioning as per the below figure.

 

 

                        Figure 3:- InfoCube Partitioning

 

Step 3:- Determine Partitioning Condition

As per the business requirement, select either of the time characteristics 0CALMONTH (Calendar Year/Month) or 0FISCPER (Fiscal year/period) to partition the InfoCube.

 

                       Figure 4:- Partitioning Condition

If you use the Fiscal Year/period characteristic (0FISCPER) which is compounded with the fiscal year variant (0FISCVARNT) as the partition condition, then you need to use a special procedure when you partition an InfoCube using 0FISCPER.

Always set the Fiscal Year Variant (0FISCVARNT) to constant in “Provider-Specific properties” of the characteristic 0FISCVARNT as shown in the below figures.

Assign the Constant value (For Example: - K3 – Cal Year, 3 Special Periods) to the Fiscal Variant to enable the partitioning based on Fiscal Year/period.

 

             Figure 5:- Fiscal Year Variant (0FISCVARNT)

 

       

              Figure 6:- Constant of 0FISCVARNT                             

       

                Figure 7:- 0FISCVARNT Values

 

Step 4:- Value Range

Specify the value range in the form of From Date (von) and To Date (bis) for Calendar Year/Month and From Period (von) and To Period (bis) for Fiscal Year/Period.

                 

                           Figure 8:- Calendar year/month                                   

                    

                              Figure 9:- Fiscal year/period

 

Step 5:- Maximum No of Partitions

Once the value range is updated, an optional parameter called maximum no of partitions can be included. When activating the InfoCube, the fact table is created on the database with one of the number of partitions corresponding to the value range and maximum no. of partitions.

You can also determine how many partitions are created as a maximum on the database for the fact table of the InfoCube.

For Example:-

If you choose the partitioning criterion as 0CALMONTH and use the value range from 01.2005 to 12.2010, then maximum no of partitions can be calculated as given below.

      From Date (Von) = 01.2005

      To Date (bis) = 12.2010

      No of months between from and to date = (12.2010 – 01.2005) = 6 * 12 = 72 months

      Hence, No of partitions = 72 + 2 = 74 partitions

     (2 partitions for values that lay outside of the range, meaning<01.2005 or >12.2010).

 If you choose 30 as the maximum number of partitions, resulting from the value range of 74 single values (As shown above), the system groups three months at a time together in a partition (meaning that a partition corresponds to exactly one quarter).

 

In this way, 6 years * 4 partitions/year + 2 marginal partitions = 26 partitions are created on the database.

The performance gain is only gained for the partitioned InfoCube if the time dimension of the InfoCube is consistent. This means that all values of the 0CAL* characteristics of a data record in the time dimension must fit each other with a partitioning via 0CALMONTH.

Where necessary, limit the maximum number of partitions, the SAP recommended optimal maximum number of partitions is 30-40, so consider this when planning the range spilt. 

Summary

In BW 3.5 you had to setup partitions whilst the InfoCube was empty but this constraint has disappeared in BI 7.0 (for all database providers except for DB2). 

In 7.0 it is not only possible to partition whilst the InfoCube has data but also re-partition any existing groupings. 

Repartitioning can be useful if you have already loaded data to your InfoCube and you have loaded more data into your InfoCube than you had planned when you partitioned it, you did not choose a long enough period of time for partitioning or some partitions contain no data or little data due to data archiving over a period of time.

You can access repartitioning in the Data Warehousing Workbench using Administration, or in the context menu of your InfoCube.

2 Comments