Converting Virtual to Physical Indexes

In some situations, virtual indexes or sets may be used to conserve space in the database. The use of virtual indexes can result in slower data access. To enhance the performance of your system, it may be desirable to convert all indexes to physical indexes.

Future application releases may include virtual indexes or sets. You will need to run this procedure after each database reorganization to identify any newly introduced virtual indexes.

  1. Download the appropriate file for your Critical Update level (10 or 11) and database. Note the file name (DownloadedFileName) for use later in this procedure.
  2. Verify that there are no pending changes to the data dictionary:

    listprod -d prodLine or listdataareas -d dataArea

    If there are pending changes, do not continue with this procedure until they are resolved by running activatelandmark in order to perform a database reorganization.

  3. Verify that the data area is at a good starting point:

    dbverify -q dataArea

    Resolve any inconsistencies before proceeding. Verifying the Dictionary

  4. Programmatically modify the data area deployment file (%LASRCDIR%dict\dataArea.xml):

    changeda -I dataArea%LASRCDIR%\dataArea\DownloadedFileName

    See Changing Index Attributes Using changeda.

  5. Build a pending dictionary using the changes made to the data area deployment file:

    stagelandmark dataArea

  6. Establish the new indexes, capturing the output in a file.

    activatelandmark --all

    Caution: 

    If data exists in the data area the database reorganization could fail if there are duplicate keys when a new index is created.

    You can reset any index that fails to virtual:

    changeda -i indexed=no dataArea busClass index

    Repeat the previous two steps until it completes successfully.

  7. Verify that you are leaving the data area in a good state.

    dbverify -q dataArea