Table Scan

17/08/2005 - 00:54 por Walter | Informe spam
Hola

Como elimino un table scan de un campo de fecha, el query es el siguiente:

SELECT da.cod_item, MAX( ph.nro_endoso )
FROM di_datos_au da with (nolock), pv_header ph with (nolock), tgrupo_endo
te with (nolock) WHERE ph.nro_pol = 9000000001 AND ph.id_pv = da.id_pv
AND ph.cod_suc = 640 AND ph.cod_ramo = 40 AND (ph.cod_grupo_endo =
te.cod_grupo_endo) AND (sn_adicional = -1 or sn_poliza = -1 or sn_prorroga =
-1 or sn_renovacion_automatica = -1 or sn_renovacion_manual = -1 or
sn_rehabilitacion = -1 or sn_declaracion = -1 or sn_refacturacion_manual = -1
)
AND da.fec_vig_desde <= cast('20041106' as smalldatetime)
AND ph.id_pv NOT IN ( SELECT ph.id_pv_modifica FROM pv_header ph with
(nolock), tgrupo_endo tg with (nolock)
WHERE ph.cod_grupo_endo = tg.cod_grupo_endo And tg.sn_cancelacion_endoso = -1
AND ph.cod_suc = 640
AND ph.cod_ramo = 40
AND ph.nro_pol = 9000000001 )
GROUP BY da.cod_item order by da.cod_item

Gracias espero sus comentarios
 

Leer las respuestas

#1 Maxi
17/08/2005 - 01:02 | Informe spam
Hola, varias cosas:

1) No uses Where para unir tablas sino usa JOIN
2) Porque usas Nolock?

Ahora preguntas

1) Tienes indices no?
2) podrias en lugar de enviar la sentencia, enviarnos el plan de ejecucion
en modo texto?


Maxi - Buenos Aires - Argentina
Desarrollador 3 Estrellas

Msn_messager:
mail: Maxi.da[arroba]gmail.com

"Walter" escribió en el mensaje
news:
Hola

Como elimino un table scan de un campo de fecha, el query es el siguiente:

SELECT da.cod_item, MAX( ph.nro_endoso )
FROM di_datos_au da with (nolock), pv_header ph with (nolock), tgrupo_endo
te with (nolock) WHERE ph.nro_pol = 9000000001 AND ph.id_pv = da.id_pv
AND ph.cod_suc = 640 AND ph.cod_ramo = 40 AND (ph.cod_grupo_endo > te.cod_grupo_endo) AND (sn_adicional = -1 or sn_poliza = -1 or
sn_prorroga > -1 or sn_renovacion_automatica = -1 or sn_renovacion_manual = -1 or
sn_rehabilitacion = -1 or sn_declaracion = -1 or sn_refacturacion_manual
= -1
)
AND da.fec_vig_desde <= cast('20041106' as smalldatetime)
AND ph.id_pv NOT IN ( SELECT ph.id_pv_modifica FROM pv_header ph with
(nolock), tgrupo_endo tg with (nolock)
WHERE ph.cod_grupo_endo = tg.cod_grupo_endo And tg.sn_cancelacion_endoso
= -1
AND ph.cod_suc = 640
AND ph.cod_ramo = 40
AND ph.nro_pol = 9000000001 )
GROUP BY da.cod_item order by da.cod_item

Gracias espero sus comentarios

Preguntas similares