Problema al consultar vista....

17/02/2004 - 20:52 por kno | Informe spam
Tengo una vista hecha sobre tres tablas, en total el
universo de registros es de 72000 reg. aprox. mi problema
esta en que al hacer una consulta sobre esta vista se
demora más de 30 minutos en ejecutarse. Las tablas todas
tienen indices ¿que debo revisar para que las consultas
sobre esta vista no demoren tanto?


Ipa..

Preguntas similare

Leer las respuestas

#1 Javier Loria
17/02/2004 - 21:54 | Informe spam
Hola:
Revisa la forma en que estan "unidas" las tabla en la vista.
Si haces la conexion incorrecta en el ON o en el WHERE, te van a dar mucho
mas de las 72,000 filas. Una opcion es antes de construir la vista hacer un
SELECT TOP 1000 para ver que efectivamente esta bien enlazada la vista.


Javier Loria
Costa Rica
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda.
kno escribio:
Tengo una vista hecha sobre tres tablas, en total el
universo de registros es de 72000 reg. aprox. mi problema
esta en que al hacer una consulta sobre esta vista se
demora más de 30 minutos en ejecutarse. Las tablas todas
tienen indices ¿que debo revisar para que las consultas
sobre esta vista no demoren tanto?


Ipa..
Respuesta Responder a este mensaje
#2 Maximiliano D. A.
17/02/2004 - 21:55 | Informe spam
Hmm que se demore puede ser que no tengas los Join bien puestos, porque no
envias el codigo de la vista?

Gracias


Salu2
Maxi
Buenos Aires Argentina
Desarrollador Microsoft 3 Estrellas .NET
[Maxi_accotto[arroba]speedy[punto]com[punto]ar
MSN:


"kno" escribió en el mensaje
news:1231901c3f58f$9f4e40a0$
Tengo una vista hecha sobre tres tablas, en total el
universo de registros es de 72000 reg. aprox. mi problema
esta en que al hacer una consulta sobre esta vista se
demora más de 30 minutos en ejecutarse. Las tablas todas
tienen indices ¿que debo revisar para que las consultas
sobre esta vista no demoren tanto?


Ipa..



Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.581 / Virus Database: 368 - Release Date: 09/02/2004
Respuesta Responder a este mensaje
#3 Adrian D. Garcia
18/02/2004 - 03:12 | Informe spam
Agregando a lo que dice Javier,
mas alla de los indices que tengas definidos hay que ver que indices esta
usando la consulta.
Podrias enviarnos el SELECT de la vista e indicarnos que indices hay
definidos sobre las 3 tablas?

Saludos
Adrian D. Garcia
MCSD
NDSoft Consultoria y Desarrollo

"Javier Loria" wrote in message
news:
Hola:
Revisa la forma en que estan "unidas" las tabla en la vista.
Si haces la conexion incorrecta en el ON o en el WHERE, te van a dar mucho
mas de las 72,000 filas. Una opcion es antes de construir la vista hacer


un
SELECT TOP 1000 para ver que efectivamente esta bien enlazada la


vista.


Javier Loria
Costa Rica
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda.
kno escribio:
> Tengo una vista hecha sobre tres tablas, en total el
> universo de registros es de 72000 reg. aprox. mi problema
> esta en que al hacer una consulta sobre esta vista se
> demora más de 30 minutos en ejecutarse. Las tablas todas
> tienen indices ¿que debo revisar para que las consultas
> sobre esta vista no demoren tanto?
>
>
> Ipa..


Respuesta Responder a este mensaje
#4 Kno
18/02/2004 - 12:46 | Informe spam
Este es el código de la vista:

CREATE VIEW TRA_TRAINPCCAF_ENT
as
SELECT
TRABAJADOR.REC_PERIODO,
TRABAJADOR.CON_RUT,
TRABAJADOR.CON_CORREL,
TRABAJADOR.RPR_PROCESO,
TRABAJADOR.NRO_COMPROBANTE,
TRABAJADOR.SUC_COD,
TRABAJADOR.USU_CODIGO,
ENTIDAD_PREVISIONAL.ENT_RUT,
ENTIDAD_PREVISIONAL.ENT_TIPO,
ENTIDAD_PREVISIONAL.ENT_CODIFICACION,
TRABAJADOR.TRA_REG_SAL,
TRABAJADOR.TRA_REG_PREV
FROM EMPRESA
INNER JOIN TRABAJADOR ON
EMPRESA.REC_PERIODO = TRABAJADOR.REC_PERIODO
AND EMPRESA.CON_RUT = TRABAJADOR.CON_RUT
AND EMPRESA.CON_CORREL = TRABAJADOR.CON_CORREL
AND EMPRESA.RPR_PROCESO = TRABAJADOR.RPR_PROCESO
AND EMPRESA.NRO_COMPROBANTE =
TRABAJADOR.NRO_COMPROBANTE
INNER JOIN TRA_INPCCAF ON
TRABAJADOR.REC_PERIODO = TRA_INPCCAF.REC_PERIODO
AND TRABAJADOR.CON_RUT = TRA_INPCCAF.CON_RUT
AND TRABAJADOR.CON_CORREL = TRA_INPCCAF.CON_CORREL
AND TRABAJADOR.RPR_PROCESO =
TRA_INPCCAF.RPR_PROCESO
AND TRABAJADOR.SUC_COD = TRA_INPCCAF.SUC_CODIGO
AND TRABAJADOR.TRA_RUT = TRA_INPCCAF.TRA_RUT
AND TRABAJADOR.NRO_COMPROBANTE =
TRA_INPCCAF.NRO_COMPROBANTE
AND TRABAJADOR.USU_CODIGO = TRA_INPCCAF.USU_CODIGO
INNER JOIN ENTIDAD_PREVISIONAL ON
TRA_INPCCAF.ENT_RUT = ENTIDAD_PREVISIONAL.ENT_RUT



Las tablas se relacionan de la siguiente manera:

Empresa --< Trabajador--< tra_inpccaf >--
Entidad_previsional


Debo mencinar que utilizo un cursor para obtener datos de
esta vista.

Lo más extraño es que tengo otra vista, identica a esta
(solo cambia
la tabla tra_inpccaf) y las consultas funcionan
rápidamente.

Hmm que se demore puede ser que no tengas los Join bien


puestos, porque no
envias el codigo de la vista?

Gracias


Salu2
-


-
Maxi
Buenos Aires Argentina
Desarrollador Microsoft 3 Estrellas .NET
[Maxi_accotto[arroba]speedy[punto]com[punto]ar
MSN:
-


-


"kno" escribió en


el mensaje
news:1231901c3f58f$9f4e40a0$
Tengo una vista hecha sobre tres tablas, en total el
universo de registros es de 72000 reg. aprox. mi problema
esta en que al hacer una consulta sobre esta vista se
demora más de 30 minutos en ejecutarse. Las tablas todas
tienen indices ¿que debo revisar para que las consultas
sobre esta vista no demoren tanto?


Ipa..



Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.581 / Virus Database: 368 - Release Date:


09/02/2004


.

Respuesta Responder a este mensaje
#5 Maximiliano D. A.
18/02/2004 - 13:34 | Informe spam
Hola, hay algo que no me cierra o te falto postiarme codigo:

Vos en esa vista solo estas usando campos de: TRABAJDOR y
ENTIDAD_PROVICIONAL, porque haces entonces los join con el resto de las
tablas? que sentido tiene eso si no lo estas usando ni como campos del
Select ni en el WHERE?

Otra cosa, porque no intentas con el Query analizer y su Asistente para
indices (seleccionando las tablas
que involucran a esta vista) ver si recomienda algun indice.

Luego yo tambien actualizaria las Estatisticas, (Revisa en el manual UPDATE
STATISTICS)

otro punto mas, el uso del cursor para que lo usas? que estas buscando?
seguro que ese cursor lo podemos reemplazar por otra cosa mucho mas efectiva


Salu2
Maxi
Buenos Aires Argentina
Desarrollador Microsoft 3 Estrellas .NET
[Maxi_accotto[arroba]speedy[punto]com[punto]ar
MSN:


"Kno" escribió en el mensaje
news:1283901c3f614$d91a3ca0$

Este es el código de la vista:

CREATE VIEW TRA_TRAINPCCAF_ENT
as
SELECT
TRABAJADOR.REC_PERIODO,
TRABAJADOR.CON_RUT,
TRABAJADOR.CON_CORREL,
TRABAJADOR.RPR_PROCESO,
TRABAJADOR.NRO_COMPROBANTE,
TRABAJADOR.SUC_COD,
TRABAJADOR.USU_CODIGO,
ENTIDAD_PREVISIONAL.ENT_RUT,
ENTIDAD_PREVISIONAL.ENT_TIPO,
ENTIDAD_PREVISIONAL.ENT_CODIFICACION,
TRABAJADOR.TRA_REG_SAL,
TRABAJADOR.TRA_REG_PREV
FROM EMPRESA
INNER JOIN TRABAJADOR ON
EMPRESA.REC_PERIODO = TRABAJADOR.REC_PERIODO
AND EMPRESA.CON_RUT = TRABAJADOR.CON_RUT
AND EMPRESA.CON_CORREL = TRABAJADOR.CON_CORREL
AND EMPRESA.RPR_PROCESO = TRABAJADOR.RPR_PROCESO
AND EMPRESA.NRO_COMPROBANTE TRABAJADOR.NRO_COMPROBANTE
INNER JOIN TRA_INPCCAF ON
TRABAJADOR.REC_PERIODO = TRA_INPCCAF.REC_PERIODO
AND TRABAJADOR.CON_RUT = TRA_INPCCAF.CON_RUT
AND TRABAJADOR.CON_CORREL = TRA_INPCCAF.CON_CORREL
AND TRABAJADOR.RPR_PROCESO TRA_INPCCAF.RPR_PROCESO
AND TRABAJADOR.SUC_COD = TRA_INPCCAF.SUC_CODIGO
AND TRABAJADOR.TRA_RUT = TRA_INPCCAF.TRA_RUT
AND TRABAJADOR.NRO_COMPROBANTE TRA_INPCCAF.NRO_COMPROBANTE
AND TRABAJADOR.USU_CODIGO = TRA_INPCCAF.USU_CODIGO
INNER JOIN ENTIDAD_PREVISIONAL ON
TRA_INPCCAF.ENT_RUT = ENTIDAD_PREVISIONAL.ENT_RUT



Las tablas se relacionan de la siguiente manera:

Empresa --< Trabajador--< tra_inpccaf >--
Entidad_previsional


Debo mencinar que utilizo un cursor para obtener datos de
esta vista.

Lo más extraño es que tengo otra vista, identica a esta
(solo cambia
la tabla tra_inpccaf) y las consultas funcionan
rápidamente.

Hmm que se demore puede ser que no tengas los Join bien


puestos, porque no
envias el codigo de la vista?

Gracias


Salu2
-


-
Maxi
Buenos Aires Argentina
Desarrollador Microsoft 3 Estrellas .NET
[Maxi_accotto[arroba]speedy[punto]com[punto]ar
MSN:
-


-


"kno" escribió en


el mensaje
news:1231901c3f58f$9f4e40a0$
Tengo una vista hecha sobre tres tablas, en total el
universo de registros es de 72000 reg. aprox. mi problema
esta en que al hacer una consulta sobre esta vista se
demora más de 30 minutos en ejecutarse. Las tablas todas
tienen indices ¿que debo revisar para que las consultas
sobre esta vista no demoren tanto?


Ipa..



Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.581 / Virus Database: 368 - Release Date:


09/02/2004


.






Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.581 / Virus Database: 368 - Release Date: 10/02/2004
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida