21/04/2005, 18:48
|
| | | Fecha de Ingreso: abril-2005
Mensajes: 1.051
Antigüedad: 19 años, 9 meses Puntos: 2 | |
Ok. EL problema es tu busqueda, empezamos por:
sSQL = "select * from catalogo
where part_number like '%"
& part_number & "%'
order by part_number"
Tendras que optimizar tu base de datos y tu consulta.
1. El orderBy no debe ser necesario si tienes un index sobre part_number.
2. select * , cambialo a select campo1, campo2, campo3, etc.
3. part_number like '%" & part_number & "%' ... part_number es una cadena ?... porque no es un numero, un ID, entiendo puede ser el codigo de una pieza, en lo cual, bien.
Rapidamente el codigo debe ser exacto, o por lo menos basarte en un punto de la cadena, algo como:
a) where part_number like '" & part_number & "%'
b) where part_number = part_number
Otra cosa, si tienes esto para una tienda, lo cual es lo mas seguro, entonces debes probar dividir en Departamentos - Familias - Tipos -etc., asi tu tabla tendria un indes general, algo como:
TablaProductos
- ID - Departamento - Familia - Tipo - Part_Number - [Otros campos]
index clustered sobre Departamento - Familia - Tipo - Part_Number
Entonces tu consulta seria:
sSQL = "select * from catalogo
where Departamento = 1
and Familia = 1
and Tipo = 1
and part_number like '%"
De esta manera el compilador busca en el index no renglon por renglon, sino que el sabe que tiene todo ordenado, y si en el renglon 2 k encuentra el departamento 1, entonces ahi comienza a buscar la familia, solo en el pedazo donde Departemento 1 existe, eso hace muy eficiente la consulta, pero como te digo, va desde como diseñas la base de datos.
Suerte!! |