SQL - Optimización de una consulta

 
Vista:

Optimización de una consulta

Publicado por Rubén (1 intervención) el 28/11/2006 12:20:13
Necesito optimizar esta consulta para que me tarde menos tiempo en ejecutarse, el objetivo es obtener los mismos resultados sin necesidad de tener que utilizar la clausula UNION:

(select FP.id as id_consejeria,
FA.id as id_presentacion_consj,
FP2.ID as id_agr_organizacion,

(Select MungoOrden.INTVALUE
from CM_Presentacion_FA_Mungo MungoOrden
where FA.id = MungoOrden.CS_OWNERID and MungoOrden.CS_ATTRID = 1108029858223) as ordenorgadscritos,

(Select Mungotitulo.TEXTVALUE
from CM_Presentacion_FA_Mungo Mungotitulo
where FA.id = Mungotitulo.CS_OWNERID and Mungotitulo.CS_ATTRID = 1108029853302) as titulo,

(Select Mungoorg.STRINGVALUE
from CM_Presentacion_FA_Mungo Mungoorg
where FA.id = Mungoorg.CS_OWNERID and Mungoorg.CS_ATTRID = 1109266172324) as tipoorganismo

from CM_Agrupador_FP FP,
CM_Agrupador_FP FP2,
CM_Agrupador_FPD FPD,
CM_Agrupador_FPD FPD2,
CM_Agrupador_FP_Group FPG,
CM_Agrupador_FP_Group FPG2,
CM_Agrupador_FP_Group FPG3,
CM_Presentacion_FA FA,
CM_Presentacion_FD FD,
CM_Presentacion_FA_Mungo FAM,
PAttributes PA,
AssetPublication AP,
Publication pub
where FPG.PARENTID = 1109266187254 AND -- idConsejeria
FPG.childtype = 'CM_Agrupador_FP' AND
FP.id = FPG.childid AND
FPD.NAME = 'Centro Directivo' AND
FPD.id = FP.FLEXGROUPTEMPLATEID AND
FPG3.PARENTID = FP.id AND
FPG3.childtype = 'CM_Agrupador_FP' AND
FPD2.name = 'Agrupador Organizacion' AND
FPD2.id = FP2.flexgrouptemplateid AND
FP2.id = FPG3.childid AND
FPG2.PARENTID = FP.id AND
FPG2.childtype = 'CM_Presentacion_FA' AND
FA.id = FPG2.childid AND
FD.NAME = 'PresentacionOrganismo' AND
FD.id = FA.FLEXTEMPLATEID AND
PA.NAME = 'TipoOrganismo' AND
FAM.CS_OWNERID = FA.id AND
FAM.CS_ATTRID = PA.ID AND
pub.name = 'ComunidadMadrid' AND
AP.pubid = pub.id AND
FP.id = AP.assetid AND
FP.status != 'VO' AND
FP.id NOT IN (select FAM.ASSETVALUE as valorasset
from CM_Agrupador_FP_Group FPG,
CM_Presentacion_FA FA,
CM_Presentacion_FD FD,
PAttributes PA,
CM_Presentacion_FA_Mungo FAM,
AssetPublication AP,
Publication pub
where FPG.PARENTID = 1109266187254 AND -- idConsejeria
FPG.CHILDTYPE = 'CM_Presentacion_FA' AND
FD.NAME = 'PresentacionViceconsejeria' AND
FA.id = FPG.CHILDID AND
FA.FLEXTEMPLATEID = FD.ID AND
FAM.CS_OWNERID = FA.id AND
PA.name = 'RelacionOrganismo' AND
PA.id = FAM.CS_ATTRID AND
pub.name = 'ComunidadMadrid' AND
AP.pubid = pub.id AND
FA.id = AP.assetid AND
FA.status != 'VO') AND
substr(FAM.STRINGVALUE, 1, LENGTH(FAM.STRINGVALUE)) != 'Variables.organosads' AND
FAM.STRINGVALUE != 'Variables.entidadessads')

UNION

(select FP.id as id_consejeria,
FA.id as id_presentacion_consj,
NULL as id_agr_organizacion,

(Select MungoOrden.INTVALUE
from CM_Presentacion_FA_Mungo MungoOrden
where FA.id = MungoOrden.CS_OWNERID and MungoOrden.CS_ATTRID = 1108029858223) as ordenorgadscritos,

(Select Mungotitulo.TEXTVALUE
from CM_Presentacion_FA_Mungo Mungotitulo
where FA.id = Mungotitulo.CS_OWNERID and Mungotitulo.CS_ATTRID = 1108029853302) as titulo,

(Select Mungoorg.STRINGVALUE
from CM_Presentacion_FA_Mungo Mungoorg
where FA.id = Mungoorg.CS_OWNERID and Mungoorg.CS_ATTRID = 1109266172324) as tipoorganismo

from CM_Agrupador_FP_Group FPG,
CM_Agrupador_FP FP,
CM_Agrupador_FPD FPD,
CM_Agrupador_FP_Group FPG2,
CM_Presentacion_FA FA,
CM_Presentacion_FD FD
where FPG.PARENTID = 1109266187254 AND -- idConsejeria
FPG.childtype = 'CM_Agrupador_FP' and
FPG.childid= FP.id and
FPD.NAME = 'Centro Directivo' AND
FPD.id = FP.FLEXGROUPTEMPLATEID AND
FPG2.PARENTID = FP.id AND
FPG2.childtype = 'CM_Presentacion_FA' AND
FA.id = FPG2.childid AND
FD.NAME = 'PresentacionViceconsejeria' AND
FD.id = FA.FLEXTEMPLATEID)
ORDER BY ordenorgadscritos
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder