Necesito sus comentarios y conocimientos

01/06/2005 - 17:04 por JESUS | Informe spam
Buenas, gracias por leer este post, mi consulta es que tan efectivo es hacer
consultas de este tipo (lineas abajo), lo he pasado por el optimizador de
indices y no tengo recomendaciones, porque todos los indices necesarios ya
fueron creados, es una buena manera de hacer las cosas? o preferible es
separarlos y trabajar por separada la informacion. Mil gracias por sus
comentarios.

SELECT Tick_fech, TICKETS.cenc_codi, TICKETS.Line_codi,
sum(cant_paqu) Canti, sum(Cant_Paqu * MinProd) TotTiempo,
isnull(max(MinAsis),0) MinAsis
FROM TICKETS
inner join (select Esti_codi, Surt_codi, prendes_codi, sum(Tstd) MinProd
from EstiPlantSecu group by Esti_codi, Surt_codi, prendes_codi) Secu
on Secu.esti_codi = tickets.Esti_codi and secu.surt_codi = tickets.surt_codi
and secu.prendes_codi = tickets.prendes_codi
left join (select Asis.Fecha, Asig.Cenc_codi, Asig.Line_codi, sum(MinLabo +
MinExtr - MinFalta) MinAsis from AsignacionLinea Asig
inner join AsistenciaObrero Asis on Asis.Obre_codi = Asig.Obre_codi and
Asis.Fecha = Asig.Fecha group by Asis.Fecha, Asig.Cenc_codi, Asig.Line_codi)
TabAsis
on TabAsis.Fecha = Tickets.Tick_fech and TabAsis.Cenc_codi Tickets.Cenc_codi and TabAsis.Line_codi = tickets.Line_codi
WHERE TICK_FECH >= '01/03/05' and tick_fech <='31/03/05'
AND TICK_LEID = 1 and Oper_codi = 1 and bloq_codi = 2 and fami_codi = 1
group by tick_fech, TICKETS.Line_codi, TICKETS.cenc_codi, MinProd


ah la tabla de tickets tiene 1.5 millones de registros y los otros unos
miles, demora entre 40 segundos a 5 minutos, y el resultado solo son 85
lineas, los registros en ese intervalo de fecha son aproximadamente 30000
gracias por sus comentarios

Preguntas similare

Leer las respuestas

#1 Isaias Islas
01/06/2005 - 17:51 | Informe spam
Jesus

Antes de ejecutar tu script (en Query Analyzer), coloca la siguiente
instruccion:

SET STATISTICS IO ON

Ejecutas tu instruccion y revisas donde es que esta haciendo los MAYORES
READ's.

Eso te dara una idea de como atacar el problema.
Respuesta Responder a este mensaje
#2 JESUS
01/06/2005 - 20:09 | Informe spam
Disculpa la falta de conocimiento, mientras mas exploraciones tenga, es a
favor o en contra?.
Porque hice unas modificaciones al select, separando la informacion de las
dos primeras tablas a una tabla temporal y las otras siguientees lo mismo,
para poder insertar en otra tabla la informacion de ambos resultados.

Tabla 'AsignacionLinea'. Número de exploraciones 1, lecturas lógicas 671,
lecturas físicas 2, lecturas anticipadas 671.
Tabla 'AsistenciaObrero'. Número de exploraciones 1, lecturas lógicas 2087,
lecturas físicas 2, lecturas anticipadas 2099.
Tabla 'Tickets'. Número de exploraciones 1, lecturas lógicas 63076, lecturas
físicas 111, lecturas anticipadas 62747.
Tabla 'EstiPlantSecu'. Número de exploraciones 1, lecturas lógicas 287,
lecturas físicas 2, lecturas anticipadas 295.



otro resultado

Tabla 'EficaLineaTempoTicket'. Número de exploraciones 0, lecturas lógicas
18, lecturas físicas 0, lecturas anticipadas 0.
Tabla 'Tickets'. Número de exploraciones 1, lecturas lógicas 63076, lecturas
físicas 0, lecturas anticipadas 0.
Tabla 'EstiPlantSecu'. Número de exploraciones 1, lecturas lógicas 271,
lecturas físicas 0, lecturas anticipadas 0.

(8 filas afectadas)


(69 filas afectadas)

Tabla 'EficaLineaTempoAsist'. Número de exploraciones 0, lecturas lógicas
140, lecturas físicas 0, lecturas anticipadas 0.
Tabla 'AsignacionLinea'. Número de exploraciones 1, lecturas lógicas 627,
lecturas físicas 0, lecturas anticipadas 0.
Tabla 'AsistenciaObrero'. Número de exploraciones 1, lecturas lógicas 58,
lecturas físicas 0, lecturas anticipadas 0.

(71 filas afectadas)

Tabla 'EficaLineaFecha'. Número de exploraciones 1, lecturas lógicas 144,
lecturas físicas 0, lecturas anticipadas 0.

(8 filas afectadas)

Tabla 'EficaLineaFecha'. Número de exploraciones 0, lecturas lógicas 16,
lecturas físicas 0, lecturas anticipadas 0.
Tabla 'EficaLineaTempoTicket'. Número de exploraciones 1, lecturas lógicas
2, lecturas físicas 0, lecturas anticipadas 0.

(6 filas afectadas)

Tabla 'EficaLineaFecha'. Número de exploraciones 1, lecturas lógicas 2,
lecturas físicas 0, lecturas anticipadas 0.
Tabla 'EficaLineaTempoAsist'. Número de exploraciones 10, lecturas lógicas
20, lecturas físicas 0, lecturas anticipadas 0.

(63 filas afectadas)

Tabla 'EficaLineaFecha'. Número de exploraciones 69, lecturas lógicas 264,
lecturas físicas 0, lecturas anticipadas 0.
Tabla 'Worktable'. Número de exploraciones 1, lecturas lógicas 65, lecturas
físicas 0, lecturas anticipadas 0.
Tabla 'EficaLineaTempoAsist'. Número de exploraciones 1, lecturas lógicas 2,
lecturas físicas 0, lecturas anticipadas 0.

(59 filas afectadas)

Tabla 'EficaLineaFecha'. Número de exploraciones 1, lecturas lógicas 2,
lecturas físicas 0, lecturas anticipadas 0.


"Isaias Islas" escribió en el mensaje
news:
Jesus

Antes de ejecutar tu script (en Query Analyzer), coloca la siguiente
instruccion:

SET STATISTICS IO ON

Ejecutas tu instruccion y revisas donde es que esta haciendo los MAYORES
READ's.

Eso te dara una idea de como atacar el problema.


Respuesta Responder a este mensaje
#3 qwalgrande
01/06/2005 - 23:45 | Informe spam
Hola.

Lo de intentar dividir el problema en varios más pequeños a mí,
generalmente, me da buenos resultados. Vas por buen camino. Sigues teniendo
muchas lecturas en la tabla TICKETS, mira el plan de ejecución, evita los
recorridos. Y esas tablas temporales intermedias, recuerda que también
puedes indexarlas.

Si me aceptas una sugerencia, en la tabla tickets filtras entre dos fechas
(por el campo TICK_FECH). Un primer paso podría ser volcar a una tabla
temporal el rango de registros de la tabla TICKETS a una tabla temporal, con
un índice en la tabla TICKETS por este campo (y también en la tabla
temporal, luego usas este campo para vincular otras tablas).


qwalgrande

"De lo que ves créete la mitad, de lo que no ves no te creas nada"
V. del V.


"JESUS" escribió en el mensaje
news:%
Disculpa la falta de conocimiento, mientras mas exploraciones tenga, es a
favor o en contra?.
Porque hice unas modificaciones al select, separando la informacion de las
dos primeras tablas a una tabla temporal y las otras siguientees lo mismo,
para poder insertar en otra tabla la informacion de ambos resultados.

Tabla 'AsignacionLinea'. Número de exploraciones 1, lecturas lógicas 671,
lecturas físicas 2, lecturas anticipadas 671.
Tabla 'AsistenciaObrero'. Número de exploraciones 1, lecturas lógicas
2087,
lecturas físicas 2, lecturas anticipadas 2099.
Tabla 'Tickets'. Número de exploraciones 1, lecturas lógicas 63076,
lecturas
físicas 111, lecturas anticipadas 62747.
Tabla 'EstiPlantSecu'. Número de exploraciones 1, lecturas lógicas 287,
lecturas físicas 2, lecturas anticipadas 295.



otro resultado

Tabla 'EficaLineaTempoTicket'. Número de exploraciones 0, lecturas lógicas
18, lecturas físicas 0, lecturas anticipadas 0.
Tabla 'Tickets'. Número de exploraciones 1, lecturas lógicas 63076,
lecturas
físicas 0, lecturas anticipadas 0.
Tabla 'EstiPlantSecu'. Número de exploraciones 1, lecturas lógicas 271,
lecturas físicas 0, lecturas anticipadas 0.

(8 filas afectadas)


(69 filas afectadas)

Tabla 'EficaLineaTempoAsist'. Número de exploraciones 0, lecturas lógicas
140, lecturas físicas 0, lecturas anticipadas 0.
Tabla 'AsignacionLinea'. Número de exploraciones 1, lecturas lógicas 627,
lecturas físicas 0, lecturas anticipadas 0.
Tabla 'AsistenciaObrero'. Número de exploraciones 1, lecturas lógicas 58,
lecturas físicas 0, lecturas anticipadas 0.

(71 filas afectadas)

Tabla 'EficaLineaFecha'. Número de exploraciones 1, lecturas lógicas 144,
lecturas físicas 0, lecturas anticipadas 0.

(8 filas afectadas)

Tabla 'EficaLineaFecha'. Número de exploraciones 0, lecturas lógicas 16,
lecturas físicas 0, lecturas anticipadas 0.
Tabla 'EficaLineaTempoTicket'. Número de exploraciones 1, lecturas lógicas
2, lecturas físicas 0, lecturas anticipadas 0.

(6 filas afectadas)

Tabla 'EficaLineaFecha'. Número de exploraciones 1, lecturas lógicas 2,
lecturas físicas 0, lecturas anticipadas 0.
Tabla 'EficaLineaTempoAsist'. Número de exploraciones 10, lecturas lógicas
20, lecturas físicas 0, lecturas anticipadas 0.

(63 filas afectadas)

Tabla 'EficaLineaFecha'. Número de exploraciones 69, lecturas lógicas 264,
lecturas físicas 0, lecturas anticipadas 0.
Tabla 'Worktable'. Número de exploraciones 1, lecturas lógicas 65,
lecturas
físicas 0, lecturas anticipadas 0.
Tabla 'EficaLineaTempoAsist'. Número de exploraciones 1, lecturas lógicas
2,
lecturas físicas 0, lecturas anticipadas 0.

(59 filas afectadas)

Tabla 'EficaLineaFecha'. Número de exploraciones 1, lecturas lógicas 2,
lecturas físicas 0, lecturas anticipadas 0.


"Isaias Islas" escribió en el mensaje
news:
Jesus

Antes de ejecutar tu script (en Query Analyzer), coloca la siguiente
instruccion:

SET STATISTICS IO ON

Ejecutas tu instruccion y revisas donde es que esta haciendo los MAYORES
READ's.

Eso te dara una idea de como atacar el problema.






Respuesta Responder a este mensaje
#4 JESUS
02/06/2005 - 17:06 | Informe spam
Ok muchas gracias por los comentarios a ambos, vere la manera de evitar las
lecturas a la tabla de tickets y les comentare como va en desarrollo todo,
muchas gracias a ambos y si hay alguien que guste agregar algo mas,
estaremos para recibir sus conocimientos. Muchas gracias nuevamente.
"qwalgrande" escribió en el mensaje
news:
Hola.

Lo de intentar dividir el problema en varios más pequeños a mí,
generalmente, me da buenos resultados. Vas por buen camino. Sigues


teniendo
muchas lecturas en la tabla TICKETS, mira el plan de ejecución, evita los
recorridos. Y esas tablas temporales intermedias, recuerda que también
puedes indexarlas.

Si me aceptas una sugerencia, en la tabla tickets filtras entre dos fechas
(por el campo TICK_FECH). Un primer paso podría ser volcar a una tabla
temporal el rango de registros de la tabla TICKETS a una tabla temporal,


con
un índice en la tabla TICKETS por este campo (y también en la tabla
temporal, luego usas este campo para vincular otras tablas).


qwalgrande

"De lo que ves créete la mitad, de lo que no ves no te creas nada"
V. del V.


"JESUS" escribió en el mensaje
news:%
> Disculpa la falta de conocimiento, mientras mas exploraciones tenga, es


a
> favor o en contra?.
> Porque hice unas modificaciones al select, separando la informacion de


las
> dos primeras tablas a una tabla temporal y las otras siguientees lo


mismo,
> para poder insertar en otra tabla la informacion de ambos resultados.
>
> Tabla 'AsignacionLinea'. Número de exploraciones 1, lecturas lógicas


671,
> lecturas físicas 2, lecturas anticipadas 671.
> Tabla 'AsistenciaObrero'. Número de exploraciones 1, lecturas lógicas
> 2087,
> lecturas físicas 2, lecturas anticipadas 2099.
> Tabla 'Tickets'. Número de exploraciones 1, lecturas lógicas 63076,
> lecturas
> físicas 111, lecturas anticipadas 62747.
> Tabla 'EstiPlantSecu'. Número de exploraciones 1, lecturas lógicas 287,
> lecturas físicas 2, lecturas anticipadas 295.
>
>
>
> otro resultado
>
> Tabla 'EficaLineaTempoTicket'. Número de exploraciones 0, lecturas


lógicas
> 18, lecturas físicas 0, lecturas anticipadas 0.
> Tabla 'Tickets'. Número de exploraciones 1, lecturas lógicas 63076,
> lecturas
> físicas 0, lecturas anticipadas 0.
> Tabla 'EstiPlantSecu'. Número de exploraciones 1, lecturas lógicas 271,
> lecturas físicas 0, lecturas anticipadas 0.
>
> (8 filas afectadas)
>
>
> (69 filas afectadas)
>
> Tabla 'EficaLineaTempoAsist'. Número de exploraciones 0, lecturas


lógicas
> 140, lecturas físicas 0, lecturas anticipadas 0.
> Tabla 'AsignacionLinea'. Número de exploraciones 1, lecturas lógicas


627,
> lecturas físicas 0, lecturas anticipadas 0.
> Tabla 'AsistenciaObrero'. Número de exploraciones 1, lecturas lógicas


58,
> lecturas físicas 0, lecturas anticipadas 0.
>
> (71 filas afectadas)
>
> Tabla 'EficaLineaFecha'. Número de exploraciones 1, lecturas lógicas


144,
> lecturas físicas 0, lecturas anticipadas 0.
>
> (8 filas afectadas)
>
> Tabla 'EficaLineaFecha'. Número de exploraciones 0, lecturas lógicas 16,
> lecturas físicas 0, lecturas anticipadas 0.
> Tabla 'EficaLineaTempoTicket'. Número de exploraciones 1, lecturas


lógicas
> 2, lecturas físicas 0, lecturas anticipadas 0.
>
> (6 filas afectadas)
>
> Tabla 'EficaLineaFecha'. Número de exploraciones 1, lecturas lógicas 2,
> lecturas físicas 0, lecturas anticipadas 0.
> Tabla 'EficaLineaTempoAsist'. Número de exploraciones 10, lecturas


lógicas
> 20, lecturas físicas 0, lecturas anticipadas 0.
>
> (63 filas afectadas)
>
> Tabla 'EficaLineaFecha'. Número de exploraciones 69, lecturas lógicas


264,
> lecturas físicas 0, lecturas anticipadas 0.
> Tabla 'Worktable'. Número de exploraciones 1, lecturas lógicas 65,
> lecturas
> físicas 0, lecturas anticipadas 0.
> Tabla 'EficaLineaTempoAsist'. Número de exploraciones 1, lecturas


lógicas
> 2,
> lecturas físicas 0, lecturas anticipadas 0.
>
> (59 filas afectadas)
>
> Tabla 'EficaLineaFecha'. Número de exploraciones 1, lecturas lógicas 2,
> lecturas físicas 0, lecturas anticipadas 0.
>
>
> "Isaias Islas" escribió en el mensaje
> news:
>> Jesus
>>
>> Antes de ejecutar tu script (en Query Analyzer), coloca la siguiente
>> instruccion:
>>
>> SET STATISTICS IO ON
>>
>> Ejecutas tu instruccion y revisas donde es que esta haciendo los


MAYORES
>> READ's.
>>
>> Eso te dara una idea de como atacar el problema.
>>
>>
>
>


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida