Funcionamiento de los índices con varias partes en búsquedas entre límites

Base de conocimiento de la plataforma de desarrollo Velneo

Moderador: vCoaches

Responder
vBdC
vGuru
vGuru
Mensajes: 2
Registrado: 11 Oct 2005, 14:22

Funcionamiento de los índices con varias partes en búsquedas

Mensaje por vBdC » 30 Ene 2004, 01:00

Funcionamiento de los índices con varias partes en búsquedas entre límites

Categorías: Índice, Búsqueda, Editor

Palabras clave: Cruzar, Partes del índice, Componentes de Búsqueda

Enunciado:
Cuando trabajamos con índices, a la hora de realizar búsquedas cruzadas debemos distinguir entre el uso de un índice con varias partes para una búsqueda entre límites, o usar para esta última dos índices distintos, con un único componente.

Imagen

Desarrollo:
Para explicarlo vamos a usar un ejemplo: Tenemos una tabla FACTURAS, con el campo FECHA, que tiene como maestro la tabla CLIENTES. Por el hecho de enlazar las tablas, ya tenemos el índice CLIENTES, al que añadiremos el índice FECHA.
Ahora vamos a montar una búsqueda entre límites. Dependiendo del resultado que queramos obtener, tendremos que hacerla usando estos índices o creando uno distinto.

Si queremos buscar las facturas entre el 1 de Enero de 2001 y el 31 de Marzo de 2001, cuyos clientes tengan por código entre 1 y 100, hemos de crear una búsqueda con dos componentes, el primero con el índice CLIENTES, entre límites, y el segundo FECHA, también entre límites y con la opción Cruzar seleccionada. De esta manera, las facturas pertenecientes a los clientes determinados resultado de la búsqueda, serán cruzadas con aquellas cuya fecha corresponda al periodo definido y que resulten de la búsqueda. Se produce entonces una intersección de resultados.

No podemos esperar este mismo resultado usando un índice compuesto por ambas partes:
Creamos un índice compuesto por CLIENTES y FECHA. Usamos únicamente éste en la búsqueda entre límites. Este índice, ordenará los registros por el código del cliente y luego por la fecha de la factura.

Seleccionando de nuevo los mismos valores como rango en la búsqueda entre límites, la lista resultante será distinta. Se búscará el primer registro que cumpla la primera condición, es decir, que la factura sea del cliente con código 1 o mayor que uno y con fecha igual o mayor al 1 de Enero de 2001. El último registro de la lista será el último registro cuyo cliente tenga por código 100 o menos y con fecha igual o menor al 31 de Marzo de 2001.
Los registros que se encuentren entre ambos límites serán devueltos también como resultado. Qué quiere decir esto: como los registros están ordenados primero por código y luego por fecha, todos los registros de un cliente con código 1, 2, ... 99, aparecerían como resultado, sin embargo los del cliente 100 terminarían el 31 de Marzo de 2001.

Artículos relacionados
Funcionamiento de Búsqueda y Cargar lista en procesos en arquitectura Cliente/servidor
Última edición por vBdC el 30 Ene 2004, 01:00, editado 1 vez en total.

Responder