Ver Mensaje Individual
  #2  
Antiguo 16-08-2003
__cadetill __cadetill is offline
Miembro
 
Registrado: may 2003
Posts: 3.387
Reputación: 25
__cadetill Va por buen camino
Hola Marcelo

Ciertamente, las componentes que lanzan Querys (TQuery, TIBQuery, ....) no tienen ninguna propiedad para utilizar un indice u otro (como tienen los TTables,...), pero el lenguaje SQL sí que tiene una instrucción para ordenar las consultas, el order by. Es aqui donde interbienen los indices definidos en una tabla ya que, si hay un indice definido por las columnas que incluye el order by, el motor de acceso a bases de datos se encargara de utilizarlo (almenos en teoria) y, para tablas con muchos registros, la definicion de un indice (una buena definicion) incrementa sustancialmente la respuesta del SQL

Por bueno definicion me refiero a que, si se pone en el Order By dos campos (campo1 y campo2)

Código:
select *
from tabla
order by campo1, campo2
y tenemos definido un indice por campo1 y otro por campo2, no nos va a servir de mucho (o de nada). En este caso, se tendría que definir un indice por campo1+campo2

Con esto no quiere decir que se tenga que definir un indice por cualquier consulta que intentemos realizar, tambien dependera de si es una consulta muy usual o que se lanza una vez al año (en este caso, no creo que la definicion de un indice sea necesaria aunque la consulta tarde un poco mas sin él). Hay que valorar en que situaciones realizar dicho indice

Bueno, espero te sirva
Responder Con Cita