Olá boa noite, seguinte meu amigo, esse dias tive um problema parecido aqui na empresa, ha algum tempo eu fiz um relatório de comissão aqui para empresa, para vc ter idéia do tamanho da coisa, onde eu trabalho são faturadas umas 10.000 notas por semana, fim do mes esse numero quase dobra. resumindo o relatório que antes rodava em 6 minutos todo ajustado no 9i r2 nesta semana estava demorando mais de uma hora e nada.! bom o que fiz e normanente faço para ver como está o sql, dei uma mxida basica no sql de +- dois dias, ele voltou a fazer em menos de UM minuto no oracle 10G como que normalmente faço.
==>>pego bloco a bloco de meus sql e vou executando eles de forma separada, e faço um set autotrace traceonly para ver como que está a coisa, quando é algo mais complicado ai faço um tkprof pois ai sim vc sabe onde realmente está custando mais...!!!, outra coisa vi que seu sql vc está usando hints, detalhe por regra, o pessoal aqui da lista, Chiappa, Marcio, Reginaldo entre outros que sempre nos ajudam, assim como nos manuais da oracle sugere que vc trabalhe baseado em custo pois por regra se não me falhe a memoria são 15 e desde do oracle 8 não é dado mais suporte http://download-west.oracle.com/docs/cd/B10501_01/server.920/a96533/rbo.htm#721, ou seja, ai ja dá para vc mexer um pouco em seu sql, colocando hints de custo nele. ==> vc deve verificar a coleta de estatistica das tabela, estatistica do sistema, ver se não tem como vc tirar esses CASE, de dentro da soma, deixar para fazer esse tipo de coisa em um nivel acima, depois das informações agrupadas, verificar se ele está usando a area temporaria ou fazendo esse trabalho no disco, sendo assim tbm ajuda a ficar lento., uma outra coisa q normalmente faço é pegar um bloco que pode interferir e faço um insert as select, e depois trabalho com esses dados, claro que com isso vc pode ter mais problemas, tem q ter certos cuidados. bom normalmente é isso. espero ter ajudado att, Welvis Douglas da Silva Moretto msn - [EMAIL PROTECTED] Fone - (43)9917-1766 Tec. Processamento de Dados Pos - Engenharia de Software Pos - Banco de Dados Oracle Mestrando - Engenharia de Produção e Sistemas Areas de interesse - Estatistica - Banco de Dados - Java, Delphi. - Data Mining - Redes Neurais Artificiais. ----- Mensagem original ---- De: Marcelo <[EMAIL PROTECTED]> Para: oracle_br@yahoogrupos.com.br Enviadas: Quinta-feira, 30 de Agosto de 2007 15:42:03 Assunto: RES: Res: [oracle_br] Tuning SQL Fabio, Eu faria primeiro uma analise de cada subquery com seu plano de execução. Verifique a possibilidade de criar algum indice para melhorar o acesso a tabelas. Um detalhe que eu percebi é que você comentou a coluna REFERENCIA na segunda subquery. O UNION funciona se as colunas de todas as subquerys foram do mesmo tipo na mesma posicão. At. Marcelo Alberto Lauschner Tecnologia e Sistemas Auto Pratense Ltda ( - Fone: (0XX54) 3242-3615 ( - Fax: (0XX54) 3242-3648 * - E-mail: <blocked::mailto:[EMAIL PROTECTED] e.com.br> [EMAIL PROTECTED] e.com.br þ - WWW: www.autopratense. com.br <blocked::http://www.autoprat ense.com. br/> _____ De: [EMAIL PROTECTED] os.com.br [mailto:[EMAIL PROTECTED] os.com.br] Em nome de fabiopdb Enviada em: quinta-feira, 30 de agosto de 2007 14:34 Para: [EMAIL PROTECTED] os.com.br Assunto: Re: Res: [oracle_br] Tuning SQL Cara , a versão do meu banco é 10g e esta rodando em cima de windows(2003 server) essa consulta esta demorando 7hs o fluxo de dados e grande mais acho que tem alguma coisa de errado, a tabela nao tem nem 500 mil registros. Quem puder me ajudar eu agradeço... --- Em [EMAIL PROTECTED] <mailto:oracle_ br%40yahoogrupos .com.br> os.com.br, Welvis Douglas Silva Moreto <welvinho18@ ...> escreveu > > Cara qual a versão do seu banco???? > > > ----- Mensagem original ---- > De: fabiopdb <[EMAIL PROTECTED] .> > Para: [EMAIL PROTECTED] <mailto:oracle_ br%40yahoogrupos .com.br> os.com.br > Enviadas: Quinta-feira, 30 de Agosto de 2007 11:56:44 > Assunto: [oracle_br] Tuning SQL > > Amigos estou com um problema nessa consulta será alguem (iluminado) > pode me ajudar pois esta consulta esta demorando 7hs !!!! > Se alguem tiver alguma ideia eu agradeço muito. > > CREATE OR REPLACE VIEW VENDAS_INDIRETAS AS > SELECT /*+rule*/ cod_classe_extra, > ds_classe_extra, > cod_extra, > desc_ex, > COUNT(qtd_servico) qtd_servico, > SUM(VALOR) VALOR, > REFERENCIA, > GRUPO_INDIRETAS > > FROM ( > --Venda de Serviços Financiados > SELECT /*+rule*/tcex. COD_CLASSE_ EXTRA, > tcex.DS_CLASSE_ EXTRA, > tex.COD_EXTRA, > tex.DESC_EX, > COUNT(vpc.ident_ parc) qtd_servico, > SUM(vpc.TOTALDIV) VALOR, > to_date('01' || '/' || TO_CHAR(vpc. dt_parcelamento, > 'mm/yyyy'), 'dd/mm/yyyy' ) REFERENCIA, > > (case > when tcex.cod_classe_ extra in (1,2,3,8,9,10, 14) then > 'AGUA' > when tcex.cod_classe_ extra in (4,5) then > 'ESGOTO' > end) GRUPO_INDIRETAS > > FROM TAB_EXTRA tex, VEW_DS_PARCELAMENTO vpc, > TAB_CLASSE_EXTRA tcex > WHERE tex.COD_EXTRA = vpc.COD_EXTRA > AND tex.COD_CLASSE_ EXTRA = tcex.COD_CLASSE_ EXTRA > AND vpc.DT_CANCELADO IS NULL > AND vpc.cod_tipo_ parc = 2 > GROUP BY tcex.COD_CLASSE_ EXTRA, > tcex.DS_CLASSE_ EXTRA, > tex.COD_EXTRA, > tex.DESC_EX, > vpc.dt_parcelamento > > UNION > > --Venda de Serviços - NFA pagamento a vista > select /*+rule*/tc. cod_classe_ extra, > tc.ds_classe_ extra, > v.cod_extra, > te.desc_ex, > count(v.ident_ extra) qtd_servico, > sum(v.valor) VALOR, > -- to_char(v.data_ ref, 'dd/mm/yyyy' ) REFERENCIA, > v.data_ref REFERENCIA, > > (case > when tc.cod_classe_ extra in (1,2,3,8,9,10, 14) then > 'AGUA' > when tc.cod_classe_ extra in (4,5) then > 'ESGOTO' > end) GRUPO_INDIRETAS > > from vew_ds_faturamento_ detalhado v, > tab_extra te, > tab_classe_extra tc > where te.cod_extra = v.cod_extra > and tc.cod_classe_ extra = te.cod_classe_ extra(+) > and v.in_original = 1 > and v.ident_conta is not null > and v.cod_tipo_nf = 2 > group by tc.cod_classe_ extra, > tc.ds_classe_ extra, > v.cod_extra, > te.desc_ex, > v.data_ref) > > WHERE cod_classe_extra not in (6, 7, 11, 12, 13, 15, 16, 17, 19, 20) > GROUP BY cod_classe_extra, ds_classe_extra, cod_extra, > desc_ex,REFERENCIA, GRUPO_INDIRETAS > ORDER BY DS_CLASSE_EXTRA, DESC_EX > > > > > > Flickr agora em português. Você clica, todo mundo vê. > http://www.flickr. <http://www.flickr. com.br/> com.br/ > > [As partes desta mensagem que não continham texto foram removidas] > [As partes desta mensagem que não continham texto foram removidas] Flickr agora em português. Você clica, todo mundo vê. http://www.flickr.com.br/ [As partes desta mensagem que não continham texto foram removidas]