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