Hola estoy haciendo practicas y me han dado para optimizar un data base necesito saber el empleo de los indices en una consulta, cuando se debe utilizar un indice compuesto de dos o tres campos
Bueno primero necesitaría saber que tipo de base de datos utilizas pero por lo que veo me hablas de una de foxpro por lo de los indices Los indices no son más que niveles de ordenamiento entonces cuando utilizas un indice compuesto es porque deseas que tu base o consulta sea ordenada y priorizada para búsquedas dentro de la consulta por los campos que tu le asignas si utilizas 3 campos el orden se hará basado en esos 3 campos como por ejemplo: fecha, NoFactura Productos si ordenas así el orden se efectuara ordenando fechas primero luego por fecha cada NoFactura y luego por cada NoFactura ordenara los Productos creando así un index compuesto todo depende de lo que deseas hacer
Estoy lavorando con un data base oracle Por ejemplo tengo una query where id_impigato=b and nombre='Elena' and apellido='seijas' es conveniente tener un indice con los tres campos sera ventajoso para la velocidad de entrega de los datos o es mejor un indice conformado por un solo campo
Bueno mira con ORACLE no hay mucho problema en el procesamiento de información y aunque tengas muchísimos datos el no reparara mucho en un orden con tan solo agregar un "ORDER BY ID_IMPIGATO, NOMBRE, APELLIDO ASC" lograras el ordenamiento deseado y este se efectúa de una forma optima y rápida. Como has de saber al trabajar a través de SQL el resultado de cualquier consulta es optimizado por el manejador interno de la base y en el caso del SQL de ORACLE el manejador es muy potente y si el orden te lo piden así pues así hay que hacerlo ahora hay un detalle que veo y es que entre los datos que ordenas tienes un ID_IMPIGATO que podría ser la llave primaria y si lo que deseas es que la información salga por orden de la primera que entro hacia la ultima con que ordenes el ID_IMPIGATO seria suficiente pero insisto no alterara más que en fracción de milisegundos el que te presente la información en pantalla