Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Optimizar una Consulta

Estas en el tema de Optimizar una Consulta en el foro de SQL Server en Foros del Web. Hola, veran, tengo una pagina en ASP la cual recibe RecordSets de consultas de SQL, tengo un problema en un par de consultas que esta ...
  #1 (permalink)  
Antiguo 30/06/2008, 11:31
 
Fecha de Ingreso: mayo-2008
Mensajes: 15
Antigüedad: 16 años
Puntos: 0
Optimizar una Consulta

Hola, veran, tengo una pagina en ASP la cual recibe RecordSets de consultas de SQL, tengo un problema en un par de consultas que esta corriendo de una forma muy lenta.

Sucede que tengo una tabla con un historial de inventarios de los cuales debo traer el inventario mas reciente. Lo que hago es lo siguiente:

Select * from tickets where Area like '"&A&"' and Estado like '"&E&"' and Municipio like '"&M&"' and Cadena like '"&C&"'

A,E,M y C son valores que llegan de comboboxes definidos en la pagina (con valor % por default). y tickets es la tabla que tiene la totalidad de combinaciones de Area/Estado/Municipio y Cadena. esta tabla devuelve un campo ticket que es como el ID de la combinacion

Lo ke hago es Filtrar a partir de esos datos, obtener una lista de los tickets que pertenecen a los filtros establecidos y para cada uno localizar el valor mas reciente:

SELECT TOP 1 * FROM Inventarios WHERE id_consecutivo like '"&ticket&"' and Producto like '"&Producto&"' and milimetraje like '"&Milimetraje&"' and presentacion like '"&Presentacion&"' and Fecha BETWEEN '"&Fecha1&"' and '"&Fecha2&"' ORDER BY Producto, milimetraje, Presentacion, fecha DESC")

Con el Fecha DESC obtengo el valor mas reciente y es el que mando a imprimir, pero el problema de esto es que este metodo llega a ser muy tardado ya que ejecuta una consulta por cada valor que me devuelve la tabla de tickets, que a veces puede devolver demasiados valores.

Espero puedan ayudarme con esto, muchas gracias
  #2 (permalink)  
Antiguo 30/06/2008, 18:47
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 10 meses
Puntos: 180
Respuesta: Optimizar una Consulta

¿Hay INDICES definidos en tu tabla?,¿Que tipo de indice es?
  #3 (permalink)  
Antiguo 04/07/2008, 15:49
 
Fecha de Ingreso: julio-2008
Mensajes: 4
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Optimizar una Consulta

Hola, te aconsejo que generes estos index, pues seria una buena alternativa para mejorar el rendimiento de tu consulta.


CREATE UNIQUE CLUSTERED INDEX idxProducto ON Inventarios

CREATE UNIQUE CLUSTERED INDEX id_consecutivo ON Inventarios




Adicionalmente verifica si puedes optimizarla un poco mejor.



Saludos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:30.