Me gustaría, si es posible, que alguien arrojase luz sobre este
asunto. En especial, considerando responder los siguientes apartados.

1- Qué es un indice y para que sirve?
2- Cómo elegir el campo indice?
3- Cuando usar un indice simple y cuando uno multiple?
4- Qué ocurre si nos equivocamos de indice (en que influye la indexación de
una tabla)?


Respuesta de CarCar:
====================
Hola:

> 1- Qué es un indice y para que sirve?

Un índice es un objeto asociado a una tabla que permite acceder MUCHO
más rapidamente a los datos de la tabla cuando se necesita acceder a
ella por ese índice.

Es decir, si tú en una tabla de clientes, creas un índice sobre el
campo "Nombre", cuando tengas que acceder, bien en un informe,
formulario o consulta y se necesite que los datos salgan clasificados
alfabéticamente, si existe un índice para ese campo, la consulta será
MUCHO más rápida y eficiente.

Los índices, por lo tanto, sirven fundamentalmente para acelerar el
proceso de las tablas cuando se necesita cierta ordenación. Sólo
comprobarás este aumento de velocidad en los equipos modernos cuando
tengas un número muy alto de registros en las tablas, para 100, 200 o
1000 registros te parecerá que la velocidad es la misma.

Además puedes hacer que los campos que componen un índice sean campos
clave de una tabla, en éste caso el índice te sirve para tener
identificados los registros y que sea el propio Access el que se
encargue de la comprobación de que los registro sean únicos por los
campos de clave.

> 2- Cómo elegir el campo indice?

Los índices no se componen de un campo, los índices están basados en
uno o más campos, según para lo que se deseen, no debes confundir el
concepto de "campo de clave" o "clave principal" con el concepto
índice, puedes tener perfectamente índices que no sean "claves" o
"campo índice".

Lo que te quiero decir es que parece que tienes un error de concepto y
confundes y mezclas índices y claves (o identificadores).

Todas las tablas suelen tener uno o varios campos por los que los
registros son únicos dentro de ellas y, habitualmente se crean índices
con esos campos.

> 3- Cuando usar un indice simple y cuando uno multiple?

Perogrullada al canto: Siempre que sea necesario.

Por ejemplo en una tabla de empleados en los que cada uno de ellos
tiene un NIF, puedes utilizar ese campo como campo clave único, y
crear un índice principal para él (Un índice principal no permite que
existan valores duplicados).

En unas tablas de Facturas de Clientes, es normal tener un campo Año
de factura y un campo Numero de factura, con ambos se identifica cada
una de las facturas, en ese caso deberías crear la clave principal de
esa tabla utilizando ambos campos.

Hay que tener en cuenta que desde el momento en que en Access defines
unos campos como clave principal automáticamente se crea un índice por
ellos, de ahí viene a veces confundir índices con campos de clave.

Las facturas suelen tener líneas de facturas y en esa tabla lo lógico
sería tener 3 campos de clave: Año, Número y Número de Lïnea (o código
de artículo).

Fíjate que dependiendo de las necesidades del programa, sería
interesante montar más índices en la tabla de Clientes... uno que sólo
tenga el campo "Nombre de Cliente" para informes alfabéticos, otro por
Provincia y Localidad (y sería un índice múltiple), si se va a
realizar algún tipo de informe por esos valores...

> 4- Qué ocurre si nos equivocamos de indice (en que influye la indexación de
> una tabla)?

La indexación de una tabla influye, por ejemplo, en los procesos de
adición de registros, cada vez que se añade un registro, Access tiene
que actualizar todos y cada uno de los índices para mantenerlos al
día, luego si existen 20 índices distintos creados en una tabla, este
proceso se ralentiza. (En los ordenadores actuales esto prácticamente
no tiene importancia, debido a la tremenda velocidad a la que trabajan
procesadores, líneas y discos duros).

También influye y es dónde se nota más, cuando haces un duplicado de
una tabla que contenga muchos registros (del orden de decenas o
cientos de miles) y muchos índices, al copiar los datos se deben de
regenerar los índices y éste proceso no es arítmetico, sino
geométrico, reconstruir un índice para una tabla del doble de
registros no tarda el doble, sino más, a veces bastante más.


====================================
OTRA RESPUESTA DE VICTOR DELGADILLO=
====================================

Los indices son una forma que tienen los administradores de database (DBM),
incluyendo Access, para buscar rapidamente valores de una tabla. Cuando los
usuarios alimentan informacion sobre una tabla, generalmente se hace en
forma aleatoria, y no en ningun orden especifico. Hay basicamente dos clases
de indices: el primario (que es el que identifica los registros de la tabla)
y generalmente es de entrada unica y los secundarios (que los crea el
usuario o el sistema segun sea necesario). Un ejemplo es una tabla de
clientes. El Numero de Cliente sera en este caso el indice primario (cada
cliente tiene su numero unico). Este indice primario es el que tambien se
utiliza para relacionar la informacion de otras tablas.  Pero tambien es
usual buscar clientes por apellido. En este caso, si se crea una consulta
donde se solicita un apellido en particular, Access crea un indice temporal
y busca los apellidos solicitados. Pero esta busqueda se hace mas rapida si
el indice ya existe! Por lo tanto, es util crear un indice secundario basado
en el Apellido & Nombre del cliente. Asi la busqueda evita tener que hacer
el indice temporal. Los indices tambien pueden abarcar mas de un solo campo.
Ejemplo es el del cliente, cuyo indice puede ser Apellido y Nombre (ambos en
un solo indice). Asi, es mas rapido buscar a Gonzalez, Juan y Gonzalez,
Pedro ya que ambos estan en el mismo indice.

Una vez creados los indices (primario y secundarios) Access (o cualquier
otro DBM) los mantiene automaticamente (generalmente, al ingresar un nuevo
registro, los indices se actualizan automaticamente).

Indices de poco uso es preferible crear temporales, ya que el mantenimiento
de los indices tambien absorbe tiempo de procesamiento. Por ejemplo, si se
desea un reporte en orden descendiente de cantidades. No seria practico
mantener un indice de estos valores. Hay que recordar que el tiempo que se
ahorra al generar reportes y consultas con indices previos, en parte se paga
al momento de actualizar los indices. Por eso hay que tambien evitar tener m
uchos indices en una tabla.

    Source: geocities.com/es/ensolva/Descargas/Documentos

               ( geocities.com/es/ensolva/Descargas)                   ( geocities.com/es/ensolva)                   ( geocities.com/es)