Ver Mensaje Individual
  #1 (permalink)  
Antiguo 24/08/2011, 09:19
pedamarcos
 
Fecha de Ingreso: mayo-2009
Mensajes: 114
Antigüedad: 15 años
Puntos: 1
Consulta lenta - ¿índices?

Hola a todos,

Mi problema es el siguiente: imaginen la siguiente consulta:

SELECT TOP 1 * FROM Tabla WHERE Campo1 = 1049 AND FechaHora < '05/08/2011' AND Campo2 > 0 ORDER BY FechaHora DESC

La tabla Tabla dispone de un índice del tipo:
PK_Campo nonclustered located on PRIMARY FechaHora, Campo1, Campo2

Los valores del Campo1 se almacenan en otra tabla Tabla2.

Al principio, en Tabla2 sólo había valores de Campo1 de 1 a 100. La sentencia se ejecutaba rápidamente.
Hace unos meses se introducen valores de Campo1 de 1000 a 1100. La sentencia se ejecuta lentamente sólo para estos valores altos, para los valores de 1 a 100 sigue ejecutándose rápidamente.

Siendo la misma tabla Tabla y el mismo índice PK_Campo, pero obteniéndose distintos tiempos de respuesta, entiendo que el problema reside en que el índice no está "actuando" para los nuevos valores de Campo1.

Por favor, agradecería ayuda en este tema, saber qué opináis y qué solución puedo darle.

¿Hay alguna manera de saber cómo de bien está funcionando un índice de una tabla? Para saber si hay que recalcularlo o no.

Si necesitáis más datos o no entendéis alguna cosa, no dudéis en preguntarme.

Muchas gracias de antemano.