Ver Mensaje Individual
  #2 (permalink)  
Antiguo 21/04/2005, 18:48
Avatar de Neuron_376
Neuron_376
 
Fecha de Ingreso: abril-2005
Mensajes: 1.051
Antigüedad: 19 años, 1 mes
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!!