A teljesítmény javítása az adatbázis-szolgáltatások rendszerbe állítása után

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:

A futásidejű adatbázisnál

  1. Kapcsolódjon a futásidejű adatbázishoz a kívánt lekérdezőeszköz segítségével.
    1. Helyi végrehajtásnál a rendszerbe állító felhasználóval

      db2 connect to <Futásidejű_adatbázis>

    2. Távoli végrehajtásnál

      db2 connect to <Futásidejű_adatbázis> user <Felhasználói_név>

  2. Hozzon létre egy createCCDindexesDrops.sql nevű fájlt a következő tartalommal:

    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. Futtassa az imént létrehozott SQL utasítást, és a kimenetet irányítsa át egy fájlba.

    db2 -txf createCCDindexesDrops.sql > dropRuntimeCCDIndexes.sql

  4. Vizsgálja meg a fájlt. Ilyen utasításokat kell látnia:

    DROP INDEX APP .CCDIX_CCD_45;

    DROP INDEX APP .CCDIX_CCD_6;

    DROP INDEX APP .CCDIX_CCD_7;

  5. Futtassa az előállított fájlt az alábbiak szerint:

    db2 -tvf dropRuntimeCCDIndexes

  6. Hozzon létre egy createrebindDSRuntimeStoredProcedures.sql nevű fájlt a következő tartalommal:

    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. Futtassa a fájlt.

    db2 -txf createrebindDSRuntimeStoredProcedures.sql > rebindDSRuntimeStoredProcedures.sql

  8. Vizsgálja meg a kapott fájlt. A következőket kell látnia:

    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. Futtassa az előállított fájlt, amely a DS tárolt eljárások újbóli összerendelését hajtja végre az indexek eltávolítása után.

    db2 -tvf rebindDSRuntimeStoredProcedures.sql

Az előzmény-adatbázisnál

  1. Kapcsolódjon a futásidejű adatbázishoz a kívánt lekérdezőeszköz segítségével.
    1. Helyi végrehajtásnál a rendszerbe állító felhasználóval

      db2 connect to <Előzmény_adatbázis>

    2. Távoli végrehajtásnál

      db2 connect to <Előzmény_adatbázis> user <Felhasználói_név>

  2. Hozzon létre egy createCCDindexesDrops.sql nevű fájlt a következő tartalommal. Használhatja a futásidejű adatbázisnál létrehozott fájlt:

    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. Futtassa az imént létrehozott SQL utasítást, és a kimenetet irányítsa át egy fájlba.

    db2 -txf createCCDindexesDrops.sql > dropRuntimeCCDIndexes.sql

  4. Vizsgálja meg a fájlt. Ilyen utasításokat kell látnia:

    DROP INDEX APP .CCDIX_CCD_45;

    DROP INDEX APP .CCDIX_CCD_6;

    DROP INDEX APP .CCDIX_CCD_7;

  5. Futtassa az előállított fájlt az alábbiak szerint:

    db2 -tvf dropRuntimeCCDIndexes

  6. Hozzon létre egy createrebindDSRuntimeStoredProcedures.sql nevű fájlt a következő tartalommal:

    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. Futtassa a fájlt.

    db2 -txf createrebindDSRuntimeStoredProcedures.sql > rebindDSHistoryStoredProcedures.sql

  8. Vizsgálja meg a kapott fájlt. A következőket kell látnia:

    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. Futtassa az előállított fájlt, amely a DS tárolt eljárások újbóli összerendelését hajtja végre az indexek eltávolítása után.

    db2 -tvf rebindDSHistoryStoredProcedures.sql


Copyright IBM Corporation 2005, 2006. Minden jog fenntartva.