Optimización de consulta

10/10/2007 - 09:15 por Alhambra Eidos Kiquenet | Informe spam
Hola a todos,

tengo una consulta SQL, que en el servidor de base de datos de desarrollo se
ejecuta rápidamente. En cambio, en el servidor de base de datos de producción
tarda más de 45 segundos.

No puedo utilizar ninguna herramienta (como profiler, planes de ejecución,
etc).

Así a simple vista, cómo podría optimizar esta consulta ??

Muchas gracias. Saludos.

La consulta es:

SELECT first 100
t.idtareasworkflow, t.tipotarea, t.fcinicio, t.tminicio, t.idencargo,
t.idvaloracion, t.nexpedval, t.iniusuario
, t.fcinischedule, t.tminischedule, t.clavecaja, t.clavetasa, t.fcentrega,
t.tmentrega, t.offset, t.fcprioridad

, mf.fcitem AS menu_fra_fcitem, (select fcitem from menu_fra mf2 where
t.tipoval = mf2.valor AND mf2.fcclave = 'X05' AND mf2.languaje = 1) AS
menu_fra_fcitem_abreviatura

,v.nombresol as valoracion_nombresol, v.ape1sol as valoracion_ape1sol,
v.ape2sol as valoracion_ape2sol

, tv.nombre as tasadorval_nombre, tv.apellidos as tasadorval_apellidos

, dv.iddirecval AS direcval_iddirecval, dv.codpos AS direcval_codpos,
dv.codbar AS
direcval_codbar, dv.poblacion AS direcval_poblacion

, dv.tipoviapublica AS direcval_tipoviapublica, dv.viapublica AS
direcval_viapublica, dv.numero AS direcval_numero, dv.bloque AS
direcval_bloque

, dv.escalera AS direcval_escalera, dv.planta AS direcval_planta, dv.puerta
AS direcval_puerta, dv.letra AS direcval_letra, dv.poligonoind AS
direcval_poligonoind

, (select fcitem from menu_fra where fcclave = 'B26' and languaje = 1 and
valor = dv.tipoviapublica) as direcval_descripciontipoviapublica

, tt.codigo as tipotarea_codigo, tt.nombre as tipotarea_nombre

, ter.idvaloracion AS terreno_idvaloracion,parcvivunif AS
terreno_parcvivunif, essolar AS terreno_essolar

FROM tareasworkflow t

LEFT JOIN menu_fra mf ON t.tipoval = mf.valor AND mf.fcclave = 'B36' AND
mf.languaje = 1

LEFT JOIN tasadorval tv on t.clavetasa = tv.clavetasa and t.idvaloracion =
tv.idvaloracion

LEFT JOIN (valoracion v LEFT JOIN direcval dv on v.idvaloracion =
dv.idvaloracion) on t.idvaloracion = v.idvaloracion

LEFT JOIN tipotarea tt on t.tipotarea = tt.codigo

LEFT JOIN terreno ter on t.idvaloracion = ter.idvaloracion

WHERE (tmfinal IS NULL)

ORDER BY t.fcprioridad
http://www.alhambra-eidos.es/web2005/index.html
www.kiquenet.net
www.trabajobasura.com/solusoft
 

Leer las respuestas

#1 Maxi
10/10/2007 - 14:34 | Informe spam
Hola, a simple vista no se ve nada raro, revise los indices en sus tablas,
peros usted debe saber que para este tipo de cosas es necesario ver los
planes de ejecucion, porque hay que ver como SQL en ese servidor esta
queriendo hacer la consulta!


-
Microsoft M.V.P en SQLServer
SQLTotal Consulting - Servicios en SQLServer
Email:
"Alhambra Eidos Kiquenet"
escribió en el mensaje
news:
Hola a todos,

tengo una consulta SQL, que en el servidor de base de datos de desarrollo
se
ejecuta rápidamente. En cambio, en el servidor de base de datos de
producción
tarda más de 45 segundos.

No puedo utilizar ninguna herramienta (como profiler, planes de ejecución,
etc).

Así a simple vista, cómo podría optimizar esta consulta ??

Muchas gracias. Saludos.

La consulta es:

SELECT first 100
t.idtareasworkflow, t.tipotarea, t.fcinicio, t.tminicio, t.idencargo,
t.idvaloracion, t.nexpedval, t.iniusuario
, t.fcinischedule, t.tminischedule, t.clavecaja, t.clavetasa, t.fcentrega,
t.tmentrega, t.offset, t.fcprioridad

, mf.fcitem AS menu_fra_fcitem, (select fcitem from menu_fra mf2 where
t.tipoval = mf2.valor AND mf2.fcclave = 'X05' AND mf2.languaje = 1) AS
menu_fra_fcitem_abreviatura

,v.nombresol as valoracion_nombresol, v.ape1sol as valoracion_ape1sol,
v.ape2sol as valoracion_ape2sol

, tv.nombre as tasadorval_nombre, tv.apellidos as tasadorval_apellidos

, dv.iddirecval AS direcval_iddirecval, dv.codpos AS direcval_codpos,
dv.codbar AS
direcval_codbar, dv.poblacion AS direcval_poblacion

, dv.tipoviapublica AS direcval_tipoviapublica, dv.viapublica AS
direcval_viapublica, dv.numero AS direcval_numero, dv.bloque AS
direcval_bloque

, dv.escalera AS direcval_escalera, dv.planta AS direcval_planta,
dv.puerta
AS direcval_puerta, dv.letra AS direcval_letra, dv.poligonoind AS
direcval_poligonoind

, (select fcitem from menu_fra where fcclave = 'B26' and languaje = 1 and
valor = dv.tipoviapublica) as direcval_descripciontipoviapublica

, tt.codigo as tipotarea_codigo, tt.nombre as tipotarea_nombre

, ter.idvaloracion AS terreno_idvaloracion,parcvivunif AS
terreno_parcvivunif, essolar AS terreno_essolar

FROM tareasworkflow t

LEFT JOIN menu_fra mf ON t.tipoval = mf.valor AND mf.fcclave = 'B36' AND
mf.languaje = 1

LEFT JOIN tasadorval tv on t.clavetasa = tv.clavetasa and t.idvaloracion > tv.idvaloracion

LEFT JOIN (valoracion v LEFT JOIN direcval dv on v.idvaloracion > dv.idvaloracion) on t.idvaloracion = v.idvaloracion

LEFT JOIN tipotarea tt on t.tipotarea = tt.codigo

LEFT JOIN terreno ter on t.idvaloracion = ter.idvaloracion

WHERE (tmfinal IS NULL)

ORDER BY t.fcprioridad
http://www.alhambra-eidos.es/web2005/index.html
www.kiquenet.net
www.trabajobasura.com/solusoft

Preguntas similares