Un índice de una base de datos, según la Wikipedia es:
“una estructura de datos que mejora la velocidad de las
operaciones, permitiendo un rápido acceso a los registros de una tabla en una
base de datos”
Se suele crear un índice sobre una tabla del diccionario ABAP
cuando en uno de nuestros programas nos vemos obligados a hacer búsquedas de
información, pero el acceso a ésta no se realiza de acuerdo a campos claves de
dicha tabla.
Ejemplo
Imaginemos que deseamos extraer un listado de materiales de
nuestra base de datos. Para ello debemos ir a la tabla MARA que contiene toda la
información general de materiales de nuestra empresa. Lo ideal en este caso
sería hacer la búsqueda poniendo como condición de selección el campo número de
material (MARA-MATNR) que es el único campo clave de la tabla. Sin embargo,
nuestro caso es más complejo y se nos pide hacer una búsqueda de materiales a
partir del campo número de material anterior (MARA-BISMT) en un código como el
siguiente:
REPORT zprueba
NO STANDARD PAGE HEADING LINE-SIZE 255.
TABLES:
mara.
DATA: BEGIN OF t_mara OCCURS 0,
matnr LIKE mara-matnr,
bismt LIKE mara-bismt,
END OF t_mara.
SELECT-OPTIONS:
s_bismt FOR mara-bismt.
START-OF-SELECTION.
SELECT * FROM mara
INTO CORRESPONDING FIELDS OF TABLE t_mara
WHERE bismt IN s_bismt.
El rendimiento de un programa de este tipo se encuentra
penalizada ya que el campo de búsqueda no es clave en la tabla.
Solución
Crear un índice para el campo MARA-BISMT.
- Entramos en la tabla de diccionario MARA.
Herramientas / Workbench ABAP / Desarrollo / SE11 –
Diccionario ABAP
-
Marcamos el botón ‘Indices’ y “crear índice”.
-
Damos una codificación a nuestro índice, por ejemplo, Z1.
-
Lo identificamos con una descripción.
-
Dejamos la opción que nos da por defecto, índice no único en todos los sistemas de la base de datos.
-
Escribimos el campo por el cual vamos a indexar la base de datos. Es importante que uno de ellos sea siempre el campo mandante.
-
Ya podemos grabar y activar.
A partir de ahora, en principio debería mejorar el rendimiento
de nuestro programa.
Imagen inicial | Metagrrrl
Muchas gracias, es interesante y me ha sido de gran utilidad.
ResponderEliminarUn saludo.