El indice
cluster (racimo) es el mas eficiente para acceso de lectura secuencial (en orden) y al azar (por la forma que trabajan los otros respeto a él).
El indice cluster usa un indice tipo Arbol B, donde los datos están en los nodos ordenados.
Si se procesa secuencialmente, el racimo recupera nodos que ya están ordenados, por lo que es muy rápido.
Los otros indices, en su hoja mas bajo nivel apuntan al cluster (no tienen otra, ya que físicamente, solo el acceso por el cluster garantiza encontrar los datos).
En casos extremos de requerimientos de tiempo de respuesta en consultas ordenadas, conviene que se indexe tipo racimo por un indice que responda al order by de las consultas.
Personalmente, no me gusta el esquema de indices cluster, porque no me parece eficiente al momento de insertar registros, es más, no crearía indices de ese tipo para tablas donde la cantidad de inserciones es muy alta en cantidad de registros y/o concurrencia.
En VFP y en tablas donde no hay indices de tipo racimo (que SQL Server llama montones), los datos agregados se meten en la última hoja, y los indices se acomodan en función de eso.
Cuando una hoja de datos de se llena, se agrega otra y hoja y sigue el proceso (creo que todas las hojas se llenan casi al máximo 100%).
Con un indice tipo racimo, cada registro debe ubicarse en la hoja que determina el orden del indice, si la hoja esta llena, tiene que crear otra hoja (miti y miti), y a su vez, los datos ordenarse dentro de la hoja, si hay muchas inserciones al azar, tendremos muchas hojas llenas solo en un 50% (que sería bastante desperdicio de disco).
En cada caso, y de acuerdo al funcionamiento que se le quiera dar, deberá analizarse cuales son los indices apropiados en cada circunstancia.
Saludos: Miguel, La Pampa (RA)