Busqueda por muchos campos

07/04/2005 - 15:38 por Luis Fernando Bedoya | Informe spam
Tengo una tabla con mas de 2 millones de registros , a la cual le quiero
hacer un select por varios conceptos

ejem

fecha,documento,cedula,articulo,cliente

estoy haciendo un form de consulta de transacciones, donde se puede hacer
por uno de los campos o varios o mezcla de ellos.

ejem

por fecha
por cedula, fecha
por cliente,documento,articulo

etc

cual seria la forma mas eficiente de establecer los indices de esa tabla,
para que al hacer el select , el sistema tenga que generar el minimo indice
temporal. y hacer mas rapida la consulta.

Gracias por sus sugerencias.
 

Leer las respuestas

#1 Luis María Guayán
07/04/2005 - 16:00 | Informe spam
Si vas a trabajar con sentencias SELECTs para hacer tus busquedas, deberias
tener solo un índice por campo:
fecha,documento,cedula,articulo,cliente

Luego en cada SELECT haces la combinación de campos que necesites.

Ej:
1. por cedula, fecha
SELECT * FROM MiTabla ;
WHERE Cedula = lcCedula AND Fecha = ldFecha

2. cliente,documento,articulo
SELECT * FROM MiTabla ;
WHERE Cliente = lcCliente AND ;
Documento = lcDocumento AND ;
Articulo = lcArticulo


Luis María Guayán
Tucumán, Argentina
________________________________
SysOp de www.PortalFox.com
Microsoft Visual FoxPro MVP
________________________________
La palabra imposible solo figura
en el diccionario de los tontos

"Luis Fernando Bedoya" escribió en el mensaje
news:
Tengo una tabla con mas de 2 millones de registros , a la cual le quiero
hacer un select por varios conceptos

ejem

fecha,documento,cedula,articulo,cliente

estoy haciendo un form de consulta de transacciones, donde se puede hacer
por uno de los campos o varios o mezcla de ellos.

ejem

por fecha
por cedula, fecha
por cliente,documento,articulo

etc

cual seria la forma mas eficiente de establecer los indices de esa tabla,
para que al hacer el select , el sistema tenga que generar el minimo


indice
temporal. y hacer mas rapida la consulta.

Gracias por sus sugerencias.





Preguntas similares