|
Me imagino que te refieres a utilizar �ndices creados para que los administre el gestor de base de datos de DB/2, no a la forma "tradicional" de leerlos es un programa directamente. Nosotros utilizamos COBOL, pero imagino que ser� igual que con RPG. Estos lenguajes necesitan una "v�a de acceso" abierta para suministrar los registros al programa (estoy suponiendo que no es SQL embebido, eso es otro tema).
Un ejemplo:
Tenemos una TABLA1 no ordenada de 5.000 registros, es decir, sin claves y queremos leer todos los registros que el CAMPO1='BARCELONA'. Si no tenemos un �ndice (=l�gico) por ese campo el programa deber� leer los 5.000 registros secuencialmente para obtener los 15 (por ejemplo) que cumplen esta condici�n.
Supongamos que creamos un �ndice ordenado por ese campo.
En la manera tradicional, una vez creado el �ndice, se declara en el programa y se trabaja con �l normalmente. Te posicionas (creo recordar que en RPG era CHAIN) y lees hasta que cambie el valor del campo.
Si, por otro lado, lo que queremos es dejar al gestor de base de datos de DB/2 se busque la manera de entregar al programa �nicamente los registros que nos interesan, una vez creado el �ndice, lo que declaramos en el RPG es la tabla (=f�sico) y tratamos los TODOS los registros secuencialmente. Pero PREVIAMENTE debemos haber creado una "v�a de acceso" mediante "algo" que se ha encargado de filtrar la tabla dejando pasar solamente los registros que interesan. Ese "algo" suele ser en programaci�n tradicional del 400 (CL + RPG o COBOL) un OPNQRYF. El proceso en cuesti�n ser�a algo parecido a esto:
OVRDBF TABLA1 SHARE(*YES) /* esto permite compartir la v�a de datos con el RPG */ OPNQRYF TABLA1 QRYSLT(CAMPO1='BARCELONA') /* esto prepara los datos para el programa */ CALL PGM1 /* este es tu programa RPG */
Con esto, a tu programa, le entran solo los registros que quieres tratar y simplifica la l�gica del mismo.
Claro, el OPNQRYF realiza la selecci�n r�pidamente mediante una llamada al gestor de base de datos que le advierte que existe un �ndice id�neo para realizar la selecci�n y lo utilaza para acelerar la b�squeda y selecci�n. Suponiendo que existieran m�ltiples �ndices creados con diferentes ordenaciones y/o selecciones el gestor seleccionar�a el m�s indicado para satisfacer tus necesidades.
Como puedes ver esto es una gran utilidad ya que imagino que te das cuenta de la multitud de ventajas que proporciona en flexibilidad, administraci�n y simplificaci�n de l�gica de programaci�n.
Saludos, Ignacio Colado. Swiss Life (Espa�a), S.A.
-----Mensaje original-----
Disculpen la pregunta, pero me siento un poco confundido. Cuando trabajo en RPG y utilizo los l�gicos, supuestamente me acelera el trabajo. Cual es la ventaja de crear �ndices y como se utilizan??? Gracias.
|
Title: Indices?
- RE: �ndices? Colado Rodriguez Ignacio
- RE: �ndices? Dulanto, Cesar (Cifarma)
- RE: �ndices? Colado Rodriguez Ignacio
