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:
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.
Respuesta Responder a este mensaje
#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:
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.
Respuesta Responder a este mensaje
#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:%
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:
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.




Respuesta Responder a este mensaje
#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:
ya probaste comparando con los simbolos <= >> FROM db_indicador Ind

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


"Alonzo" escribió en el mensaje
news:%
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:
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.








Respuesta Responder a este mensaje
#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:
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:
ya probaste comparando con los simbolos <= >>> FROM db_indicador Ind

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


"Alonzo" escribió en el mensaje
news:%
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:
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.












Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida