Lentitud en consulta con variables

06/05/2010 - 17:40 por Alonzo | Informe spam
Que tal señores. Estoy tratando de maximizar una consulta de una tabla de
aprox. 10 millones. La tabla tiene un campo Medida que a la vez es PK.

WHERE Ind.medida BETWEEN 1535 And 1590


WHERE Ind.medida BETWEEN @medidaini And medidafin
Medida.

¿Alguna explicacion porque la demora si aparentemente ambos son iguales?. No
creo que el motor del SQL se demore tanto en intrepretar y procesar un par
de variables sencillas.

Mi servidor es un WK2003 / SQL SERVER 2000.

Gracias por alguna sugerencia.

Preguntas similare

Leer las respuestas

#1 Cotzila
07/05/2010 - 09:39 | Informe spam
Podrias especificar mas donde esta esa consulta?? en un procedimiento
en una funcion por código??



http://tsqlafondo.blogspot.com/

On 6 mayo, 17:40, "Alonzo" wrote:
Mostrar la cita
#2 Alonzo
07/05/2010 - 16:49 | Informe spam
La consulta esta ubicada en una Procedimiento Almacenado. El contenido del
SP es una simple consulta:

SELECT <relacion de 7 campos numericos y 2 de varchar(15)>
FROM db_indicador Ind
WHERE Ind.medida BETWEEN @medidaini And medidafin

Levante otro servidor desde Cero y hice las pruebas y el resultado es el
mismo. Con variables se demora entre 15 a 20 seg. Pero si le pongo los
valores directo, se demora de 2 a 3 seg. Realmente estoy consternado con la
diferencia de tiempo.

Saludos.

"Cotzila" escribió en el mensaje
news:
Podrias especificar mas donde esta esa consulta?? en un procedimiento
en una funcion por código??



http://tsqlafondo.blogspot.com/

On 6 mayo, 17:40, "Alonzo" wrote:
Mostrar la cita
#3 Ele
07/05/2010 - 19:10 | Informe spam
ya probaste comparando con los simbolos <= >FROM db_indicador Ind

WHERE Ind.medida <= @medidafin And Ind.medida >= @medidaini


"Alonzo" escribió en el mensaje
news:%
Mostrar la cita
#4 Alonzo
07/05/2010 - 19:59 | Informe spam
Gracias por responder. Asi es tambien hice esa combinacion y el resultado es
el mismo. Es mas al activar el plan de ejecucion se nota claramente que el
motor ejecuta unos 4 pasos mas.



"Ele" escribió en el mensaje
news:
Mostrar la cita
#5 Victor Koch
07/05/2010 - 21:39 | Informe spam
Hola,

Si por casualidad esa llamada al SP la haces con una aplicación que se vale
de ADO para acceder a la base de datos y llamas al SP con el objeto
ADODB.Commad te dire que esa demora es propia del ADODB.Commad.

Por la forma de trabajar el objeto ADODB.Commad, para este tipo de
consultas, lo que hace es solicitar al servidor un conjunto de registros sin
importar los parámetros, luego obtenido ese conjunto de registros vuelve a
hacer una especie de SELECT, de ese conjunto de registros obtenidos, con los
parámetros que vos le pasas para así obtener el resultado final.

Esa es la razón de la demora.

Yo te aconsejaría que la aplicación arme el select final y mandes al
servidor la sentencia ya cocinada.

Un Saludo, Víctor Koch



"Alonzo" escribió en el mensaje
news:
Mostrar la cita
Ads by Google
Search Busqueda sugerida