Problema en sp con campo tipo fecha

28/07/2004 - 05:33 por José David Galviz M | Informe spam
Compañeros, tengo el siguiente problema, tengo este sp

CREATE PROCEDURE fw_Get_Resumen_Recaudos_prueba
AS
BEGIN
DECLARE
@Estacion INT,
@FechaI VARCHAR(10),
@FechaF VARCHAR(10),
@Financiera INT

SELECT @FechaI= '20040601', @FechaF= '20040601'


SELECT NomPunto Estacion, NomFinanciera, FecFechaEmiVen Fecha,
SUM(ValTotalCuota) ValTotalCuota, COUNT(0) Recaudos
FROM venventas V, venCreditos P, admPuntoComunicacion E, genFinanciera F
WHERE V.IdCredito = P.IdCredito AND
V.IdEstacion= E.IdPunto AND
P.IdFinanciera= F.IdFinanciera AND
V.ValTotalCuota > 0 AND
V.ValGranTotal > 0 AND
V.FecFechaEmiVen >= @FechaI AND -- esta
V.FecFechaEmiVen <= @FechaF --y esta
GROUP BY NomPunto, NomFinanciera, FecFechaEmiVen
ORDER BY FecFechaEmiVen, NomFinanciera, NomPunto
END

Al ejecutar el sp así como esta me devuelve los datos en 5 minutos, pero si
reemplazo en las dos lineas marcadas @fechaI y @fechaf por '20040601', me
retorna los datos en 9 segundos, alguna idea de porque sucede esto?

Gracias de antemano

ING. JOSE DAVID GALVIZ MUÑOZ
MCAD
DCE Tercera Estrella

Preguntas similare

Leer las respuestas

#1 Maxi
28/07/2004 - 14:25 | Informe spam
Hola amigo!!! hmm es como que no estaria usando los indices :(, podrias
copiar cada plan de ejecucion aqui? asi vemos que hace :-)

Un abrazo


Salu2
Maxi
Buenos Aires - Argentina
Desarrollador Microsoft 3 Estrellas .NET
Nunca consideres el estudio como una obligación sino como
una oportunidad para penetrar en el bello y maravillosos
mundo del saber.
- Albert Einstein



"José David Galviz M" escribió en el mensaje
news:OC%
Compañeros, tengo el siguiente problema, tengo este sp

CREATE PROCEDURE fw_Get_Resumen_Recaudos_prueba
AS
BEGIN
DECLARE
@Estacion INT,
@FechaI VARCHAR(10),
@FechaF VARCHAR(10),
@Financiera INT

SELECT @FechaI= '20040601', @FechaF= '20040601'


SELECT NomPunto Estacion, NomFinanciera, FecFechaEmiVen Fecha,
SUM(ValTotalCuota) ValTotalCuota, COUNT(0) Recaudos
FROM venventas V, venCreditos P, admPuntoComunicacion E, genFinanciera F
WHERE V.IdCredito = P.IdCredito AND
V.IdEstacion= E.IdPunto AND
P.IdFinanciera= F.IdFinanciera AND
V.ValTotalCuota > 0 AND
V.ValGranTotal > 0 AND
V.FecFechaEmiVen >= @FechaI AND -- esta
V.FecFechaEmiVen <= @FechaF --y esta
GROUP BY NomPunto, NomFinanciera, FecFechaEmiVen
ORDER BY FecFechaEmiVen, NomFinanciera, NomPunto
END

Al ejecutar el sp así como esta me devuelve los datos en 5 minutos, pero


si
reemplazo en las dos lineas marcadas @fechaI y @fechaf por '20040601', me
retorna los datos en 9 segundos, alguna idea de porque sucede esto?

Gracias de antemano

ING. JOSE DAVID GALVIZ MUÑOZ
MCAD
DCE Tercera Estrella







Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.722 / Virus Database: 478 - Release Date: 18/07/2004
Respuesta Responder a este mensaje
#2 José David Galviz M
28/07/2004 - 17:42 | Informe spam
Listo Maxi, ya te lo copio, aunque fue lo primero que recibí y en todos los
pasos está usando los índices.

ING. JOSE DAVID GALVIZ MUÑOZ
MCAD
DCE Tercera Estrella

"Maxi" escribió en el mensaje
news:
Hola amigo!!! hmm es como que no estaria usando los indices :(, podrias
copiar cada plan de ejecucion aqui? asi vemos que hace :-)

Un abrazo


Salu2
Maxi
Buenos Aires - Argentina
Desarrollador Microsoft 3 Estrellas .NET
Nunca consideres el estudio como una obligación sino como
una oportunidad para penetrar en el bello y maravillosos
mundo del saber.
- Albert Einstein



"José David Galviz M" escribió en el mensaje
news:OC%
> Compañeros, tengo el siguiente problema, tengo este sp
>
> CREATE PROCEDURE fw_Get_Resumen_Recaudos_prueba
> AS
> BEGIN
> DECLARE
> @Estacion INT,
> @FechaI VARCHAR(10),
> @FechaF VARCHAR(10),
> @Financiera INT
>
> SELECT @FechaI= '20040601', @FechaF= '20040601'
>
>
> SELECT NomPunto Estacion, NomFinanciera, FecFechaEmiVen Fecha,
> SUM(ValTotalCuota) ValTotalCuota, COUNT(0) Recaudos
> FROM venventas V, venCreditos P, admPuntoComunicacion E, genFinanciera F
> WHERE V.IdCredito = P.IdCredito AND
> V.IdEstacion= E.IdPunto AND
> P.IdFinanciera= F.IdFinanciera AND
> V.ValTotalCuota > 0 AND
> V.ValGranTotal > 0 AND
> V.FecFechaEmiVen >= @FechaI AND -- esta
> V.FecFechaEmiVen <= @FechaF --y esta
> GROUP BY NomPunto, NomFinanciera, FecFechaEmiVen
> ORDER BY FecFechaEmiVen, NomFinanciera, NomPunto
> END
>
> Al ejecutar el sp así como esta me devuelve los datos en 5 minutos, pero
si
> reemplazo en las dos lineas marcadas @fechaI y @fechaf por '20040601',


me
> retorna los datos en 9 segundos, alguna idea de porque sucede esto?
>
> Gracias de antemano
>
> ING. JOSE DAVID GALVIZ MUÑOZ
> MCAD
> DCE Tercera Estrella
>
>



Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.722 / Virus Database: 478 - Release Date: 18/07/2004


Respuesta Responder a este mensaje
#3 José David Galviz M
28/07/2004 - 18:15 | Informe spam
Maxi, olvide decirte, el problema lo reduje simplemente a esta consulta:

DECLARE @FechaI VARCHAR(10), @FechaF VARCHAR(10)

SELECT @FechaI= '20040601', @FechaF= '20040601'

SELECT NomPunto Estacion, NomFinanciera, FecFechaEmiVen Fecha,
SUM(ValTotalCuota) ValTotalCuota, COUNT(0) Recaudos
FROM venventas V, venCreditos P, admPuntoComunicacion E, genFinanciera F
WHERE V.IdCredito = P.IdCredito AND
V.IdEstacion= E.IdPunto AND
P.IdFinanciera= F.IdFinanciera AND
V.ValTotalCuota > 0 AND
V.ValGranTotal > 0 AND
V.FecFechaEmiVen >= '20040601' AND
V.FecFechaEmiVen <= '20040601'
GROUP BY NomPunto, NomFinanciera, FecFechaEmiVen
ORDER BY FecFechaEmiVen, NomFinanciera, NomPunto



ING. JOSE DAVID GALVIZ MUÑOZ
MCAD
DCE Tercera Estrella


"Maxi" escribió en el mensaje
news:
Hola amigo!!! hmm es como que no estaria usando los indices :(, podrias
copiar cada plan de ejecucion aqui? asi vemos que hace :-)

Un abrazo


Salu2
Maxi
Buenos Aires - Argentina
Desarrollador Microsoft 3 Estrellas .NET
Nunca consideres el estudio como una obligación sino como
una oportunidad para penetrar en el bello y maravillosos
mundo del saber.
- Albert Einstein



"José David Galviz M" escribió en el mensaje
news:OC%
> Compañeros, tengo el siguiente problema, tengo este sp
>
> CREATE PROCEDURE fw_Get_Resumen_Recaudos_prueba
> AS
> BEGIN
> DECLARE
> @Estacion INT,
> @FechaI VARCHAR(10),
> @FechaF VARCHAR(10),
> @Financiera INT
>
> SELECT @FechaI= '20040601', @FechaF= '20040601'
>
>
> SELECT NomPunto Estacion, NomFinanciera, FecFechaEmiVen Fecha,
> SUM(ValTotalCuota) ValTotalCuota, COUNT(0) Recaudos
> FROM venventas V, venCreditos P, admPuntoComunicacion E, genFinanciera F
> WHERE V.IdCredito = P.IdCredito AND
> V.IdEstacion= E.IdPunto AND
> P.IdFinanciera= F.IdFinanciera AND
> V.ValTotalCuota > 0 AND
> V.ValGranTotal > 0 AND
> V.FecFechaEmiVen >= @FechaI AND -- esta
> V.FecFechaEmiVen <= @FechaF --y esta
> GROUP BY NomPunto, NomFinanciera, FecFechaEmiVen
> ORDER BY FecFechaEmiVen, NomFinanciera, NomPunto
> END
>
> Al ejecutar el sp así como esta me devuelve los datos en 5 minutos, pero
si
> reemplazo en las dos lineas marcadas @fechaI y @fechaf por '20040601',


me
> retorna los datos en 9 segundos, alguna idea de porque sucede esto?
>
> Gracias de antemano
>
> ING. JOSE DAVID GALVIZ MUÑOZ
> MCAD
> DCE Tercera Estrella
>
>



Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.722 / Virus Database: 478 - Release Date: 18/07/2004


Respuesta Responder a este mensaje
#4 Manuel Etcheto
28/07/2004 - 18:19 | Informe spam
Hola
Con el permiso de Maxi, creo que al declarar @fechas como varchar lo estás
obligando a efectuar 2 conversiones en cada registro para comparar un campo
datetime contra un varchar...

Probá a declarar las variables como datetime

Suerte
Manuel



José David Galviz M escribió en el mensaje de noticias
OC#
Compañeros, tengo el siguiente problema, tengo este sp

CREATE PROCEDURE fw_Get_Resumen_Recaudos_prueba
AS
BEGIN
DECLARE
@Estacion INT,
@FechaI VARCHAR(10),
@FechaF VARCHAR(10),
@Financiera INT

SELECT @FechaI= '20040601', @FechaF= '20040601'


SELECT NomPunto Estacion, NomFinanciera, FecFechaEmiVen Fecha,
SUM(ValTotalCuota) ValTotalCuota, COUNT(0) Recaudos
FROM venventas V, venCreditos P, admPuntoComunicacion E, genFinanciera F
WHERE V.IdCredito = P.IdCredito AND
V.IdEstacion= E.IdPunto AND
P.IdFinanciera= F.IdFinanciera AND
V.ValTotalCuota > 0 AND
V.ValGranTotal > 0 AND
V.FecFechaEmiVen >= @FechaI AND -- esta
V.FecFechaEmiVen <= @FechaF --y esta
GROUP BY NomPunto, NomFinanciera, FecFechaEmiVen
ORDER BY FecFechaEmiVen, NomFinanciera, NomPunto
END

Al ejecutar el sp así como esta me devuelve los datos en 5 minutos, pero


si
reemplazo en las dos lineas marcadas @fechaI y @fechaf por '20040601', me
retorna los datos en 9 segundos, alguna idea de porque sucede esto?

Gracias de antemano

ING. JOSE DAVID GALVIZ MUÑOZ
MCAD
DCE Tercera Estrella


Respuesta Responder a este mensaje
#5 José David Galviz M
28/07/2004 - 18:31 | Informe spam
Lo probé y sucede exactamente lo mismo, esa fue una de mis primeras
sospechas.

ING. JOSE DAVID GALVIZ MUÑOZ
MCAD
DCE Tercera Estrella

"Manuel Etcheto" escribió en el
mensaje news:
Hola
Con el permiso de Maxi, creo que al declarar @fechas como varchar lo estás
obligando a efectuar 2 conversiones en cada registro para comparar un


campo
datetime contra un varchar...

Probá a declarar las variables como datetime

Suerte
Manuel



José David Galviz M escribió en el mensaje de


noticias
OC#
> Compañeros, tengo el siguiente problema, tengo este sp
>
> CREATE PROCEDURE fw_Get_Resumen_Recaudos_prueba
> AS
> BEGIN
> DECLARE
> @Estacion INT,
> @FechaI VARCHAR(10),
> @FechaF VARCHAR(10),
> @Financiera INT
>
> SELECT @FechaI= '20040601', @FechaF= '20040601'
>
>
> SELECT NomPunto Estacion, NomFinanciera, FecFechaEmiVen Fecha,
> SUM(ValTotalCuota) ValTotalCuota, COUNT(0) Recaudos
> FROM venventas V, venCreditos P, admPuntoComunicacion E, genFinanciera F
> WHERE V.IdCredito = P.IdCredito AND
> V.IdEstacion= E.IdPunto AND
> P.IdFinanciera= F.IdFinanciera AND
> V.ValTotalCuota > 0 AND
> V.ValGranTotal > 0 AND
> V.FecFechaEmiVen >= @FechaI AND -- esta
> V.FecFechaEmiVen <= @FechaF --y esta
> GROUP BY NomPunto, NomFinanciera, FecFechaEmiVen
> ORDER BY FecFechaEmiVen, NomFinanciera, NomPunto
> END
>
> Al ejecutar el sp así como esta me devuelve los datos en 5 minutos, pero
si
> reemplazo en las dos lineas marcadas @fechaI y @fechaf por '20040601',


me
> retorna los datos en 9 segundos, alguna idea de porque sucede esto?
>
> Gracias de antemano
>
> ING. JOSE DAVID GALVIZ MUÑOZ
> MCAD
> DCE Tercera Estrella
>
>


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