Amélioration des performances après le déploiement des artefacts de services de base de données

Après le déploiement des artefacts de servies de données, plusieurs index sont créés qui ne permettent pas à DB2 de choisir des plans d'accès efficaces. Afin de permettre la création de plans d'accès appropriés, vous devez effectuer certains étapes juste après le déploiement et avant le démarrage des serveurs de composant de services de données.

Lorsque les plans d'accès ne sont pas correctement définis, il arrive que les données ne s'affichent plus dans les bases de données d'exécution et d'historique en raison de très longues requêtes qui exécutent des tâches de composant de cycle de vie cible. Généralement, cette situation est également associée à une augmentation de l'affectation UC par les processus DB2.

Suivez les étapes ci-après pour remédier à cette situation :

Pour la base de données d'exécution

  1. Connectez-vous à la base de données d'exécution à l'aide de l'utilitaire d'interrogation de votre choix.
    1. Exécution en local avec l'utilisateur de déploiement

      db2 connect to <base_de_données_exécution>

    2. Exécution à distance

      db2 connect to <base_de_données_exécution> user <Nom_utilisateur>

  2. Creza un fichier nommé createCCDindexesDrops.sql et contenant le texte suivant :

    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. Exécutez l'instruction qui vient d'être créée; et redirigez la sortie dans un fichier.

    db2 -txf createCCDindexesDrops.sql > dropRuntimeCCDIndexes.sql

  4. Examinez le contenu du fichier. Il doit comporter des instructions similaires à ce qui suit :

    DROP INDEX APP .CCDIX_CCD_45;

    DROP INDEX APP .CCDIX_CCD_6;

    DROP INDEX APP .CCDIX_CCD_7;

  5. Exécutez le fichier généré comme suit :

    db2 -tvf dropRuntimeCCDIndexes

  6. Créez un fichier nommé createrebindDSRuntimeStoredProcedures.sql et ajoutez-y ce qui suit :

    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. Exécutez le fichier.

    db2 -txf createrebindDSRuntimeStoredProcedures.sql > rebindDSRuntimeStoredProcedures.sql

  8. Examinez le contenu du fichier généré. Il doit comporter ce qui suit :

    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. Exécutez le fichier généré afin de relier les procédure mémorisées DS une fois les index supprimés.

    db2 -tvf rebindDSRuntimeStoredProcedures.sql

Pour la base de données d'historique

  1. Connectez-vous à la base de données d'exécution à l'aide de l'utilitaire d'interrogation de votre choix.
    1. Exécution en local avec l'utilisateur de déploiement

      db2 connect to <base_de_données_historique>

    2. Exécution à distance

      db2 connect to <base_de_données_hstorique> user <nom_utilisateur>

  2. Creza un fichier nommé createCCDindexesDrops.sql et contenant le texte ci-après. Vous pouvez réutiliser le fichier créé pour la base de données d'exécution :

    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. Exécutez l'instruction qui vient d'être créée; et redirigez la sortie dans un fichier.

    db2 -txf createCCDindexesDrops.sql > dropRuntimeCCDIndexes.sql

  4. Examinez le contenu du fichier. Il doit comporter des instructions similaires à ce qui suit :

    DROP INDEX APP .CCDIX_CCD_45;

    DROP INDEX APP .CCDIX_CCD_6;

    DROP INDEX APP .CCDIX_CCD_7;

  5. Exécutez le fichier généré comme suit :

    db2 -tvf dropRuntimeCCDIndexes

  6. Créez un fichier nommé createrebindDSRuntimeStoredProcedures.sql, et ajoutez-y ce qui suit :

    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. Exécutez le fichier.

    db2 -txf createrebindDSRuntimeStoredProcedures.sql > rebindDSHistoryStoredProcedures.sql

  8. Examinez le contenu du fichier généré. Il doit comporter ce qui suit :

    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. Exécutez le fichier générés afin de relier les procédure mémorisée DS une fois les index supprimés.

    db2 -tvf rebindDSHistoryStoredProcedures.sql


Copyright IBM Corporation 2005, 2006. All Rights Reserved.