Az adatbázis-szolgáltatások rendszerbe állítása után számos index létrehozására sor kerül, amely a DB2 rendszernél a nem megfelelő hozzáférési tervek választását eredményezi. Közvetlenül a rendszerbe állítás után és bármelyik adatbázis-szolgáltatás elindítása előtt végre kell hajtani néhány lépést a megfelelő hozzáférési tervek létrehozásának biztosításához.
A nem megfelelő hozzáférési tervek egyik tünete az, hogy az adatok nem jelennek meg a futásidejű és az előzmény-adatbázisban a nagyon hosszú lekérdezések miatt, amelyek a cél élettartam összetevő feladatait hajtják végre. Általában ehhez kapcsolódik DB2 folyamatai CPU-foglalásának növekedése is.
A probléma megoldásához hajtsa végre a következő lépéseket:
db2 connect to <Futásidejű_adatbázis>
db2 connect to <Futásidejű_adatbázis> user <Felhasználói_név>
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 <Előzmény_adatbázis>
db2 connect to <Előzmény_adatbázis> user <Felhasználói_név>
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