|
OK. Es decir el que toma o selecciona los �ndices ser�a el programa CL, no
el RPG? Es as�? -----Mensaje
original----- 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
