After the deployment of data services artifacts, several indices are created that cause DB2® to choose poor access plans. You must perform some steps immediately after the deployment and before you start any of the data-services component servers to ensure that good access plans are created.
One symptom of poor access plans is that data stops appearing in the Runtime and Historical databases because of very long queries that perform Target Life Cycle component duties. Normally this occurrence is also associated with a rise in CPU allocation by the DB2 processes.
Complete the following steps to solve this problem:
db2 connect to <Runtime_Database>
db2 connect to <Runtime_Database> user <User_Name>
SELECT 'DROP INDEX ' || CREATOR || '.' || NAME || ';'
FROM
SYSIBM.SYSINDEXES, WBIRMADM.RMMETADATA RM
WHERE
REPLACE(LTRIM(TBCREATOR) || '.' || LTRIM(TBNAME),' ','') = RM.TGT_RM_APP_STG_TAB_NAME
AND CREATOR='APP'
AND NAME LIKE 'CCD%'
;
db2 -txf createCCDindexesDrops.sql > dropRuntimeCCDIndexes.sql
DROP INDEX APP .CCDIX_CCD_45;
DROP INDEX APP .CCDIX_CCD_6;
DROP INDEX APP .CCDIX_CCD_7;
db2 -tvf dropRuntimeCCDIndexes
SELECT ' CALL SYSPROC.REBIND_ROUTINE_PACKAGE(''P'', ''' || TGT_RM_SPETL_NAME || ''', ''ANY'');'
FROM
WBIRMADM.RMMETADATA
WHERE
Service_Name='State to Runtime';
SELECT ' CALL SYSPROC.REBIND_ROUTINE_PACKAGE(''P'', ''' || TGT_RM_APP_PRUNE_SP_NAME || ''', ''ANY'');'
FROM
WBIRMADM.RMMETADATA
WHERE
Service_Name='State to Runtime';
db2 -txf createrebindDSRuntimeStoredProcedures.sql > rebindDSRuntimeStoredProcedures.sql
CALL SYSPROC.REBIND_ROUTINE_PACKAGE('P', 'WBIRMADM.WBIRMSP_10', 'ANY');
CALL SYSPROC.REBIND_ROUTINE_PACKAGE('P', 'WBIRMADM.WBIRMSP_14', 'ANY');
CALL SYSPROC.REBIND_ROUTINE_PACKAGE('P', 'WBIRMADM.WBIRMSP_47', 'ANY');
db2 -tvf rebindDSRuntimeStoredProcedures.sql
db2 connect to <Historical_Database>
db2 connect to <Historical_Database> user <User_Name>
SELECT 'DROP INDEX ' || CREATOR || '.' || NAME || ';'
FROM
SYSIBM.SYSINDEXES, WBIRMADM.RMMETADATA RM
WHERE
REPLACE(LTRIM(TBCREATOR) || '.' || LTRIM(TBNAME),' ','') = RM.TGT_RM_APP_STG_TAB_NAME
AND CREATOR='APP'
AND NAME LIKE 'CCD%'
;
db2 -txf createCCDindexesDrops.sql > dropRuntimeCCDIndexes.sql
DROP INDEX APP .CCDIX_CCD_45;
DROP INDEX APP .CCDIX_CCD_6;
DROP INDEX APP .CCDIX_CCD_7;
db2 -tvf dropRuntimeCCDIndexes
SELECT ' CALL SYSPROC.REBIND_ROUTINE_PACKAGE(''P'', ''' || TGT_RM_SPETL_NAME || ''', ''ANY'');'
FROM
WBIRMADM.RMMETADATA
WHERE
Service_Name='Runtime to Historical';
SELECT ' CALL SYSPROC.REBIND_ROUTINE_PACKAGE(''P'', ''' || TGT_RM_APP_PRUNE_SP_NAME || ''', ''ANY'');'
FROM
WBIRMADM.RMMETADATA
WHERE
Service_Name='Runtime to Historical';
db2 -txf createrebindDSRuntimeStoredProcedures.sql > rebindDSHistoryStoredProcedures.sql
CALL SYSPROC.REBIND_ROUTINE_PACKAGE('P', 'WBIRMADM.WBIRMSP_10', 'ANY');
CALL SYSPROC.REBIND_ROUTINE_PACKAGE('P', 'WBIRMADM.WBIRMSP_14', 'ANY');
CALL SYSPROC.REBIND_ROUTINE_PACKAGE('P', 'WBIRMADM.WBIRMSP_47', 'ANY');
db2 -tvf rebindDSHistoryStoredProcedures.sql