Bom dia,

Envia um Explain Plan para se perceber melhor o que está a acontecer.

Fazer tunning de uma query, sem saber o seu tempo de execução, sem conhecer as 
tabelas, a quantidade de dados, a existência ou não de indíces, de chaves 
primárias /estrangeiras etc é duro! Tunning não é magia (ás vezes parece) , mas 
não podes chegar aqui , mostrar a tua query e dizer ..."senhores está lenta ... 
preciso de umas dicas"...  não tem resolução universal .. embora a gente te 
possa dar uma dicas ...

Por exemplo:

Existe um indíce sobre ordempromp.codigo ?
As colunas sobre as quais se faz JOIN estão indexadas ? (não é obrigatório)

Outra coisa ... qual é a sua versõa da base de dados ? como está o teu 
optimizer_mode ? as estatistícas estão a ser recolhidas ?? 

Um abraço

Rui Madaleno


-----Original Message-----
From: oracle_br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] On Behalf Of Romeu
Sent: quarta-feira, 16 de Agosto de 2006 20:35
To: ORACLE; [EMAIL PROTECTED]
Subject: [oracle_br] Query lenta

Senhores, mais uma vez, volto com a mesma query com algumas mudanças, se tiver 
alguma sugestão sera muito bem vinda.Já procurei alguma documentação sobre 
tunning de Query mas não tive muita informação .
Des de já
muito obrigado a todos.


SELECT  referenc2.codigo codreferencia,
        ordempro.codigo codop,
        estrutop.sequencia,
        rpad('10143.11',20) campofiltro,
        celulapd.centrocustos,
        celulapd.codigo codcelula,
        maquinas.codigo codmaquina,
        pessoafj.nome nomefornecedor,
        itrequis.dataprevisao datafinal,
        operapro.codigo codoperacao,
        (operacop.tempopreparo + operacop.tempoprevisto) totalprevisto,
         (SELECT SUM(horastrab + tempopreparo)
                FROM apontpro
               WHERE apontpro.operacaoop = operacop.operacaoop)
        totalgasto,
        centcust.descricao nomecentrocustos,
        celulapd.nome nomecelula,
        maquinas.nome nomemaquina,
        ordemproori.codigo codoporiginal,
        to_number((atendest.quantidadeprevista -atendest.quantidadeatendida) 
/(ordempro.quantidade + ordempro.quantidadefolga -ordempro.qtdeproduzida)) 
proporcao
 FROM   ordempro ordempromp,estrutop 
estrutopmp,matpriop,atendest,ordempro,ordempro ordemproori,necespro necespro2,
        referenc referenc2,estrutop,operacop,operapro,celulapd,centcust, 
maquinas,requserv,itrequis,itorccom,pedicomp, pessoafj
WHERE(ordempromp.empresa = 1
  AND ordempromp.filial =  0
                    AND (ordempromp.codigo = 0    OR ordempromp.codigo = 1016 OR
                         ordempromp.codigo = 1018 OR ordempromp.codigo = 1019 OR
                         ordempromp.codigo = 1021 OR ordempromp.codigo = 1023 
OR 
                         ordempromp.codigo = 1024 OR ordempromp.codigo = 1025 
OR 
                         ordempromp.codigo = 1026 OR ordempromp.codigo = 1028 OR
                         ordempromp.codigo = 1029 OR ordempromp.codigo = 1030 
OR 
                         ordempromp.codigo = 1032 OR ordempromp.codigo = 1033 
OR 
                         ordempromp.codigo = 1034 OR ordempromp.codigo = 1035 
OR 
                         ordempromp.codigo = 1038 OR ordempromp.codigo = 1039 
OR 
                         ordempromp.codigo = 1040 OR ordempromp.codigo = 1041 OR
                         ordempromp.codigo = 1042 OR ordempromp.codigo = 1044 OR
                         ordempromp.codigo = 1087 OR ordempromp.codigo = 1089 OR
                         ordempromp.codigo = 1090 OR ordempromp.codigo = 1091 
OR 
                         ordempromp.codigo = 1092 OR ordempromp.codigo = 1093 
OR  
                         ordempromp.codigo = 1094 OR ordempromp.codigo = 1095 
OR 
                         ordempromp.codigo = 1096 OR ordempromp.codigo = 1097 
OR 
                         ordempromp.codigo = 1098 OR ordempromp.codigo = 1099 OR
                         ordempromp.codigo = 1100 OR ordempromp.codigo = 1101 
OR  
                         ordempromp.codigo = 1102 OR ordempromp.codigo = 1104 
OR  
                         ordempromp.codigo = 1105 OR ordempromp.codigo = 1106 OR
                         ordempromp.codigo = 1108 OR ordempromp.codigo = 1109 OR
                         ordempromp.codigo = 1110 OR ordempromp.codigo = 1111 OR
                         ordempromp.codigo = 1112 OR ordempromp.codigo = 1114 OR
                         ordempromp.codigo = 1115 OR ordempromp.codigo = 1118 OR
                         ordempromp.codigo = 1119 OR ordempromp.codigo = 1120 OR
                         ordempromp.codigo = 1121 OR ordempromp.codigo = 1122 OR
                         ordempromp.codigo = 1123 OR ordempromp.codigo = 1125 OR
                         ordempromp.codigo = 1176 OR ordempromp.codigo = 1177 OR
                         ordempromp.codigo = 1178 OR ordempromp.codigo = 1179 OR
                         ordempromp.codigo = 1180 OR ordempromp.codigo = 1181 
OR  
                         ordempromp.codigo = 1183 OR ordempromp.codigo = 1184 
OR  
                         ordempromp.codigo = 1186 OR ordempromp.codigo = 1187 
OR 
                         ordempromp.codigo = 1189 OR ordempromp.codigo = 1190 
OR 
                         ordempromp.codigo = 1191 OR ordempromp.codigo = 1192 
OR 
                         ordempromp.codigo = 1193 OR ordempromp.codigo = 1194 
OR 
                         ordempromp.codigo = 1195 OR ordempromp.codigo = 1196 
OR 
                         ordempromp.codigo = 1198 OR ordempromp.codigo = 1199 
OR 
                         ordempromp.codigo = 1201 OR ordempromp.codigo = 1203 
OR 
                         ordempromp.codigo = 1204 OR ordempromp.codigo = 1205 
OR  
                         ordempromp.codigo = 1207 OR ordempromp.codigo = 1209 
OR 
                         ordempromp.codigo = 1210 OR ordempromp.codigo = 1212 
OR 
                         ordempromp.codigo = 1213 OR ordempromp.codigo = 1214 
OR 
                         ordempromp.codigo = 1215 OR ordempromp.codigo = 1216 
OR  
                         ordempromp.codigo = 1217 OR ordempromp.codigo = 1219 
OR 
                         ordempromp.codigo = 1220 OR ordempromp.codigo = 1221 
OR 
                         ordempromp.codigo = 1224 OR ordempromp.codigo = 1225 
OR 
                         ordempromp.codigo = 1227 OR ordempromp.codigo = 1228 
OR 
                         ordempromp.codigo = 1229 OR ordempromp.codigo = 1232 
OR 
                         ordempromp.codigo = 1234 OR ordempromp.codigo = 1236 
OR 
                         ordempromp.codigo = 1247 OR ordempromp.codigo = 1248 
OR 
                         ordempromp.codigo =   1249))
 AND (((((((((((((((((( ESTRUTOPMP.ORDEMPRODUCAO = ORDEMPROMP.ORDEMPRODUCAO )
 AND ( MATPRIOP.ESTRUTURA = ESTRUTOPMP.ESTRUTURA ) )
 AND ( ATENDEST.MATERIAPRIMAOP = MATPRIOP.MATERIAPRIMAOP 
       AND ATENDEST.QUANTIDADEPREVISTA > ATENDEST.QUANTIDADEATENDIDA ) )
 AND ( ORDEMPRO.ORDEMPRODUCAO = ATENDEST.ORDEMPRODUCAO
        AND (ORDEMPRO.INDSITUACAO = 3 OR ORDEMPRO.INDSITUACAO = 4) ) )
  AND ( ESTRUTOP.ORDEMPRODUCAO = ORDEMPRO.ORDEMPRODUCAO ) )
 AND ( OPERACOP.ESTRUTURA = ESTRUTOP.ESTRUTURA 
        AND ( ( OPERACOP.SITUACAO < 3) OR ( OPERACOP.SITUACAO IS NULL)) ) )
        AND ( OPERAPRO.OPERACAO = OPERACOP.OPERACAO ) )
AND ( CELULAPD.CELULA = OPERACOP.CELULA ) )
AND ( CENTCUST.EMPRESA = CELULAPD.EMPCCUSTOS 
        AND CENTCUST.FILIAL = CELULAPD.FILCCUSTOS 
        AND CENTCUST.CENTROCUSTOS = CELULAPD.CENTROCUSTOS ) )
 AND ( REFERENC2.REFERENCIA (+)= NECESPRO2.REFERENCIA ) )
 AND ( ORDEMPROORI.ORDEMPRODUCAO     (+)= ORDEMPRO.OPORIGINAL ) )
        AND ( NECESPRO2.NECESSIDADEPRO (+)= ORDEMPRO.NECESSIDADEPRO 
        AND (NECESPRO2.INDSITUACAO >5 or NECESPRO2.INDSITUACAO <5) ) )
         
 AND ( MAQUINAS.MAQUINA              (+)= OPERACOP.MAQUINA ) )
 AND ( REQUSERV.OPERACAOOP           (+)= OPERACOP.OPERACAOOP ) )
 AND ( ITREQUIS.EMPRESA              (+)= REQUSERV.EMPREQUISICAO 
 AND ITREQUIS.FILIAL                 (+)= REQUSERV.FILREQUISICAO 
        AND ITREQUIS.REQUISICAO      (+)= REQUSERV.REQUISICAO 
        AND ITREQUIS.SEQPRODUTO      (+)= REQUSERV.ITEMREQUISICAO ) )
 AND ( ITORCCOM.EMPRESA              (+)= ITREQUIS.EMPRESA 
        AND ITORCCOM.FILIAL          (+)= ITREQUIS.FILIAL 
        AND ITORCCOM.AUXREQUISICAO   (+)= ITREQUIS.REQUISICAO 
        AND ITORCCOM.AUXSEQITEMREQ   (+)= ITREQUIS.SEQPRODUTO
        AND ITORCCOM.PRODUTO         (+)= ITREQUIS.PRODUTO ) )
 AND ( PEDICOMP.EMPRESA              (+)= ITORCCOM.EMPRESA 
        AND PEDICOMP.FILIAL          (+)= ITORCCOM.FILIAL 
        AND PEDICOMP.PEDIDOCOMPRA    (+)= ITORCCOM.PEDIDOCOMPRA 
        AND PEDICOMP.LETRACOMPRA     (+)= ITORCCOM.LETRACOMPRA ) )
 AND ( PESSOAFJ.PESSOA               (+)= PEDICOMP.PESSOA 
 AND PESSOAFJ.EMPRESA                (+)= PEDICOMP.EMPPESSOA
 AND PESSOAFJ.FILIAL                 (+)= PEDICOMP.FILPESSOA ) ) 
 ORDER BY 4,1,2,3 



[As partes desta mensagem que não continham texto foram removidas]



--------------------------------------------------------------------------------------------------------------------------
Atenção! As mensagens deste grupo são de acesso público e de inteira 
responsabilidade de seus remetentes.
Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ 
--------------------------------------------------------------------------------------------------------------------------__________________________________________________________________

OPORTUNIDADES DE TRABALHO, VAGAS, EMPREGOS PARA PROFISSIONAIS ORACLE VISITE: 
http://www.oraclebr.com.br/
__________________________________________________________________
Este Grupo recebe o apoio da SQL Magazine - www.devmedia.com.br/sqlmagazine  
Links do Yahoo! Grupos




 




--------------------------------------------------------------------------------------------------------------------------
Atenção! As mensagens deste grupo são de acesso público e de inteira 
responsabilidade de seus remetentes.
Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ 
--------------------------------------------------------------------------------------------------------------------------__________________________________________________________________

OPORTUNIDADES DE TRABALHO, VAGAS, EMPREGOS PARA PROFISSIONAIS ORACLE VISITE: 
http://www.oraclebr.com.br/
__________________________________________________________________
Este Grupo recebe o apoio da SQL Magazine - www.devmedia.com.br/sqlmagazine  
Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/oracle_br/

<*> Para sair deste grupo, envie um e-mail para:
    [EMAIL PROTECTED]

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
    http://br.yahoo.com/info/utos.html

 



Responder a