Ver Mensaje Individual
  #1 (permalink)  
Antiguo 12/05/2009, 10:01
garruc
 
Fecha de Ingreso: junio-2007
Mensajes: 28
Antigüedad: 17 años
Puntos: 0
table scan/index seek en procedimiento

Tengo una consulta dentro de un procedimiento que en principio es sencilla pero esta tardando mas de lo normal.
Al trazar el plan de ejecución del procedimiento me he dado cuenta que en vez de hacer un index seek está haciendo un table scan.
Los indices están bien creados.
Si ejecuto la consulta en el analizador con los mismos parámetros que recibe en el procedimiento hace un index seek.
En el entorno de desarrollo la consulta es casi inmediata y el plan de ejecucion es el correcto pero en el entorno de producción se ejecuta el plan de ejecución lento.

¿Alguien sabria decirme por que son estas diferéncias, por que no se ejecuta el plan correcto si ejecutando el mismo codigo fuera del procedimiento si que se ejecuta bien?¿pasa algo al estar dentro del procedimiento?

Al final he solucionado el problema añadiendo el índice a la hora de llamar a la tabla dentro de una clausula with "from tabla with(index(nombre_indice), nolock)" , pero me gustaría saber porqué me está ocurriendo este problema para solucionarlo de otra forma i asegurarme de que no vuelva a suceder ya que nos ha costado bastante llegar a verlo.

gracias por la atención