Performance Optimization of Client Copy and Deletion
This document is regarding performance issue of Client Copy and Client Deletion.
I promise that you will have the opportunity to meet this situation when you perform a project like HR Care-out, and you should never think it is easy to use SAP standard way like SCCL and SCC5.
So here you can get the instruction regarding how to do this and how to optimize performance for handling a huge client.
In fact, I never know how much performance we can get when using this instruction because the copy/deletion will never succeed if we don’t do some things……
Please be aware of that this instruction is only for the brainstorming not for detail.
Environment: SAP ERP 7.0 OS+Database: AIX + DB2 9.7.5
The example here is to copy a Client with 10 TB and with SAP_CUST profile. (please remember never ever to copy a huge Client with SAP_ALL which is always the disaster in any cases, instead to use an alternative way like system copy)
Step 1: Client copy with parallel processes.
To set the parallel processes, one RFC group in RZ12 needs to be set. And then set as many as number of processes as screen below. it is recommended to set to 2 processes per DB CPU core.
Step 2: Exclude huge tables for the client copy to be run
Always exclude huge tables in the standard client copy and leave them for later process. I don’t explain how to figure out the huge tables name here, actually it is not easy to do this.
SCCL -> Edit -> Expert setting
Step 3: run the client copy in background.
You can monitor the parallel client copy in SCC3, SM50, SM66…
Step 4: Continue those excluded tables copy on OS level using R3trans.
Create an R3trans control file on DB server like:
clientcopy source client = 400
target client = 210
select * from STXH
select * from STXL
select * from STXB
select * from PSTXH
select * from PSTXB
Run R3trans with this control file in background mode like:
nohup R3trans testcopy &
Client Deletion will be continued….
The Client Deletion is more complicated than Client Copy. In fact, we spent 2 months on Client copy and Deletion between DBA and SAP. Analysis, Execution, Communication, Re-Analysis, Re-Execution and Re-communication…….
Step 1: Deletion with parallel processes just like Client Copy (no introduction anymore)
Step 2: Exclude top N huge tables (as many as, in fact) just like Client Copy (no introduction anymore)
Step 3: Run standard SAP Client Deletion program with Step 1 and 2 in background mode.
Step 4: Delete those tables excluded on DB2 level. But before this, table analysis is the key:
4.1 Make sure all tables you selected for exclusion have the “Client” field like MANDT, MANDANT and DCLIENT….
4.2 Check those tables using the below select statement if they have the data only with source system Client number, or they also have the data with multiple Client number.
select * from SAPR3.VBAP where mandt<>’400′ fetch first 1 rows only
4.3 For the tables only have the data with Source system client number, run the truncate statement as the below.
truncate table SAPR3.VBAP immediate
4.4 For the tables have the data with other Client number, DB2 made a script as the below way.
– Create the copy of tables
– Only Select the data except Source Client number and insert to the table copy
– Drop original tables
– Rename the table copy to original table name
– Recreate indexes