Development > Utilities > Verifications > Database > Search index 

Sometimes for operational reasons, certain indexes of the Adonix X3 database are not created properly in a given folder. This may be the case, for example, if there is not enough space at a given time in the temporary table space under Oracle -- either when revalidating a folder, or when changing a table structure. From the database domain, these production errors trigger error log files, which should warn the person using the database.

Such errors do not prevent the ADONIX X3 software from working, but they may result in serious response time problems. Also, this utility was designed to be used to verify, in the case of a response time degradation, that the required indexes are actually there.

The tests made are the following:

  • first, check that the indexes described in the X3 data dictionary, (this is the principal test, and it is the result of this test that is important) and not disabled through an activity code, are actually present in the database.
  • the list of index that do not exist is given because the table is inactive in the current folder. There will not be any problem if the list is not empty. It is usually the case for the root folder where the functioning tables are displayed in the dictionary but are not validated for this folder.
  • the list of Adonix internal index are given. These are the indexes of Adonix internal tables that are not described in the dictionary. It is the case for the index of tables SYSBLBK et SYSCLBK indexes on Oracle, for instance.
  • in addition, the list of the indexes that exist without being described in the data dictionary must be provided. This list is not normally empty, but it does not cause problems in terms of response time. For example, found here are the tables arising from a previous major version of the Adonix X3 that have not been deleted automatically for security reasons, or table indexes de-activated by means of an activity code (in this case the table is created empty).
  • finally indexes where the name does not conform to the naming rules used by ADONIX (an index is called NOMTABLE_NOMINDEX) may be found. These indexes can be used perfectly well by other programs directly accessing the database.

This utility, which creates a log file, works with both the Oracle database and the SQLserver database. It automatically determines the current database type and identifies it in the log file.

A recap of the different cases encountered and corresponding index numbers is displayed at the end of the log file. This recap also displays the number of indexes linked to long objects (Clob/Blob) for an Oracle data base.

Screen management

This function is run by answering Yes to the confirmation box that is displayed. Next, the log file is displayed.

An example of a log file that can be generated is given below.

Example of a log file created by the function

 

List of the dictionary's indexes that do not exist on Oracle
********************************************************************************
Table       Index       Description
--------------------------------------------------------------------------------
AABREV      AAB1        MOT
ABANK       ABN0        CRY+BAN
--------------------------------------------------------------------------------

                                                                                                -

List of internal indexes on Oracle
********************************************************************************
Table Oracle             Index
--------------------------------------------------------------------------------
SYSBLBK                  SYSBLBK_IDX
SYSBLBK                  SYS_IL0000005817C00002$$
SYSCLBK                  SYSCLBK_IDX
SYSCLBK                  SYS_IL0000005821C00002$$
--------------------------------------------------------------------------------

                                                                                                -

Oracle Index not described in the dictionary
********************************************************************************
Table Oracle             Index
--------------------------------------------------------------------------------
TRCABX3                  IDX_TRCABX3
ZZVPO1                   INDEXTXT2_VPO1
ZZVPO1                   ZZVPO_VPO01
ZZVPO1                   SYS_IL0000009573C00047$$
--------------------------------------------------------------------------------

                                                                                                -

Oracle Index not complying to adonix norms
********************************************************************************
Table Oracle             Index
--------------------------------------------------------------------------------
TRCABX3                  IDX_TRCABX3
--------------------------------------------------------------------------------

                                                                                                -

Number of indexes described in the dictionary                    396
Number of indexes that do not exist because non active activity      -    0      ->  396
Number of indexes that do not exist because of inactive tables             -    0      ->  396
Number of indexes in the dictionary that do not exist                -    2      ->  394
Number of adonix internal indexes                              +    4      ->  398
Number of Oracle index non described in the dictionary      +    4      ->  402
Number of indexes for long objects (Clob/Blob)            +    3      ->  405
                                                              -----
Number of indexes found in the Oracle database                  =  405

                                                                                                -

Normal end of log file 27/03/06 15:15:15

Note: The indexes non described in the dictionary are not anomalous, but are identified for information. Also, Oracle creates internal indexes for all the tables containing long texts (clobs) or long objects (blobs) such as images.

Batch task

This function can be run in batch mode, but no dedicated standard task is delivered to run it.

Error messages

The only error messages are the generic ones.

Tables used

SEEREFERTTO Refer to documentation Implementation