Μετά την υλοποίηση αντικειμένων μοντελοποίησης υπηρεσιών δεδομένων, δημιουργούνται ορισμένοι δείκτες οι οποίοι προκαλούν το DB2 να επιλέξει ελλιπή σχέδια πρόσβασης. Πρέπει να εκτελέσετε μερικά βήματα αμέσως μετά την υλοποίηση και πριν ξεκινήσετε οποιονδήποτε εξυπηρετητή λειτουργικών τμημάτων υπηρεσιών δεδομένων για να διασφαλίσετε ότι δημιουργούνται ολοκληρωμένα σχέδια πρόσβασης.
Ένα σύμπτωμα ελλιπών σχεδίων πρόσβασης είναι ότι τα δεδομένα δεν εμφανίζονται πλέον στις βάσεις δεδομένων εκτέλεσης και ιστορικού λόγω των μακροσκελών ερωτημάτων που εκτελούν αρμοδιότητες λειτουργικού τμήματος του κύκλου ζωής προορισμού. Συνήθως αυτή η εμφάνιση συσχετίζεται επίσης με μια αύξηση της κατανομής της CPU από τις διεργασίες του DB2.
Εκτελέστε τα παρακάτω βήματα για να επιλύσετε το πρόβλημα αυτό:
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