Βελτίωση της απόδοσης μετά την υλοποίηση αντικειμένων μοντελοποίησης υπηρεσιών βάσης δεδομένων

Μετά την υλοποίηση αντικειμένων μοντελοποίησης υπηρεσιών δεδομένων, δημιουργούνται ορισμένοι δείκτες οι οποίοι προκαλούν το DB2 να επιλέξει ελλιπή σχέδια πρόσβασης. Πρέπει να εκτελέσετε μερικά βήματα αμέσως μετά την υλοποίηση και πριν ξεκινήσετε οποιονδήποτε εξυπηρετητή λειτουργικών τμημάτων υπηρεσιών δεδομένων για να διασφαλίσετε ότι δημιουργούνται ολοκληρωμένα σχέδια πρόσβασης.

Ένα σύμπτωμα ελλιπών σχεδίων πρόσβασης είναι ότι τα δεδομένα δεν εμφανίζονται πλέον στις βάσεις δεδομένων εκτέλεσης και ιστορικού λόγω των μακροσκελών ερωτημάτων που εκτελούν αρμοδιότητες λειτουργικού τμήματος του κύκλου ζωής προορισμού. Συνήθως αυτή η εμφάνιση συσχετίζεται επίσης με μια αύξηση της κατανομής της CPU από τις διεργασίες του DB2.

Εκτελέστε τα παρακάτω βήματα για να επιλύσετε το πρόβλημα αυτό:

Για τη βάση δεδομένων εκτέλεσης

  1. Συνδέστε με τη βάση δεδομένων εκτέλεσης χρησιμοποιώντας το εργαλείο ερωτημάτων της επιλογής σας.
    1. Αν εκτελείται τοπικά με το χρήστη υλοποίησης

      db2 connect to <Runtime_Database>

    2. Αν εκτελείται απομακρυσμένα

      db2 connect to <Runtime_Database> user <User_Name>

  2. Δημιουργήστε ένα αρχείο με την ονομασία createCCDindexesDrops.sql το οποίο να περιέχει το κείμενο που ακολουθεί:

    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%'

    ;

  3. Εκτελέστε τη δήλωση SQL που μόλις δημιουργήθηκε και επανακατευθύνετε τις πληροφορίες εξόδου σε ένα αρχείο.

    db2 -txf createCCDindexesDrops.sql > dropRuntimeCCDIndexes.sql

  4. Εξετάστε το αρχείο. Πρέπει να δείτε δηλώσεις του τύπου:

    DROP INDEX APP .CCDIX_CCD_45;

    DROP INDEX APP .CCDIX_CCD_6;

    DROP INDEX APP .CCDIX_CCD_7;

  5. Εκτελέστε το αρχείο που δημιουργήθηκε ως εξής:

    db2 -tvf dropRuntimeCCDIndexes

  6. Δημιουργήστε ένα αρχείο με την ονομασία createrebindDSRuntimeStoredProcedures.sql και προσθέσετε τα παρακάτω περιεχόμενα:

    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';

  7. Εκτελέστε το αρχείο.

    db2 -txf createrebindDSRuntimeStoredProcedures.sql > rebindDSRuntimeStoredProcedures.sql

  8. Εξετάστε το αρχείο που δημιουργήθηκε. Θα πρέπει να δείτε τα ακόλουθα:

    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');

  9. Εκτελέστε το αρχείο που δημιουργήθηκε για να επανασυνδέσετε τις αποθηκευμένες διαδικασίες DS μόλις αφαιρεθούν τα ευρετήρια.

    db2 -tvf rebindDSRuntimeStoredProcedures.sql

Για τη βάση δεδομένων ιστορικού

  1. Συνδέστε με τη βάση δεδομένων εκτέλεσης χρησιμοποιώντας το εργαλείο ερωτημάτων της επιλογής σας.
    1. Αν εκτελείται τοπικά με το χρήστη υλοποίησης

      db2 connect to <Historical_Database>

    2. Αν εκτελείται απομακρυσμένα

      db2 connect to <Historical_Database> user <User_Name>

  2. Δημιουργήστε ένα αρχείο με την ονομασία createCCDindexesDrops.sql το οποίο να περιέχει το κείμενο που ακολουθεί. Μπορείτε να επαναχρησιμοποιήσετε το αρχείο που δημιουργήθηκε για τη βάση δεδομένων εκτέλεσης:

    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%'

    ;

  3. Εκτελέστε τη δήλωση SQL που μόλις δημιουργήθηκε και επανακατευθύνετε τις πληροφορίες εξόδου σε ένα αρχείο.

    db2 -txf createCCDindexesDrops.sql > dropRuntimeCCDIndexes.sql

  4. Εξετάστε το αρχείο. Πρέπει να δείτε δηλώσεις του τύπου:

    DROP INDEX APP .CCDIX_CCD_45;

    DROP INDEX APP .CCDIX_CCD_6;

    DROP INDEX APP .CCDIX_CCD_7;

  5. Εκτελέστε το αρχείο που δημιουργήθηκε ως εξής:

    db2 -tvf dropRuntimeCCDIndexes

  6. Δημιουργήστε ένα όνομα με την ονομασία createrebindDSRuntimeStoredProcedures.sql, και προσθέστε τα παρακάτω περιεχόμενα:

    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';

  7. Εκτελέστε το αρχείο.

    db2 -txf createrebindDSRuntimeStoredProcedures.sql > rebindDSHistoryStoredProcedures.sql

  8. Εξετάστε το αρχείο που δημιουργήθηκε. Θα πρέπει να δείτε τα ακόλουθα:

    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');

  9. Εκτελέστε το αρχείο που δημιουργήθηκε για να επανασυνδέσετε τις αποθηκευμένες διαδικασίες DS μόλις αφαιρεθούν τα ευρετήρια.

    db2 -tvf rebindDSHistoryStoredProcedures.sql


Copyright IBM Corporation 2005, 2006. Με την επιφύλαξη παντός δικαιώματος.