Cria uma view materializada com a opção query rewrite, caso esses dados não sejam atualizados com frequência. Ai podes fazer o refresh uma vez por dia (ou talvez o refresh on commit). Com a view, essa query vai executar instantaneamente.
Em 15 de fevereiro de 2013 17:23, Vitor Jr. <vitorj...@gmail.com> escreveu: > ** > > > Concordo... especialmente pra tuning, onde envolva view, depois tem que > ficar analisando o código de cada uma pra ver onde tá a PORRA do gargalo... > isso é preguiça criar esse monte de views... rsrsrsrsrs > > -----Mensagem original----- > De: oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br] Em > nome de angelo > Enviada em: sexta-feira, 15 de fevereiro de 2013 17:22 > Para: oracle_br@yahoogrupos.com.br > > Assunto: Re: [oracle_br] SQL Tunning > > que bom que resolveu, mas você faz Join com uma view. > > Essa view (me refiro ao codigo fonte dela) ao executar a query para > criá-la, também faz join com mais alguém, ou acessa outra view dentro dela? > De inicio, minha pergunta pode parecer hilária, cretina ou sem lógica, mas > é um absurdo que algumas pessoas cometem e ainda acham que tá fazendo > certo... sem querer se cria uma cadeia de views... Já vi isso acontecer > varias vezes... e em determinados momentos ficar muito pesado e a galera > depois fica batendo cabeça.... Uma view que acessa outra view para criar a > propria view...alegando que não dá pra fazer diferente... bem como nessas > views ainda tem Unions, Unions all... fica uma "cangalha de balão" enorme > no > final... > > Até que ponto isso é saudável, pergunto eu? > > 2013/2/15 Rafael Mendonca raffaell.t...@yahoo.com> > > > ** > > > > > > Pessoal, consegui encontrar o problema. Na view "vw_produtos_tabela" a > > coluna cod_prod está como NUMBER, enquanto as outras está como > > VARCHAR2, na hora do JOIN ele faz uma conversao implicita dificultando > > o desempenho da query, mudei para varchar2 e agora está muito rápido, > > obrigado a todos que colaboraram. > > > > > > ________________________________ > > De: Eduardo Rodrigues oraedua...@gmail.com> > > Para: oracle_br@yahoogrupos.com.br > > Enviadas: Sexta-feira, 15 de Fevereiro de 2013 16:42 > > > > Assunto: Re: [oracle_br] SQL Tunning > > > > > > > > Rafael me desculpe pela sintaxe, não consegui testar, mas acredito que > > faltou "as" após a tabela, fica assim: > > > > WITH produto_loja as > > > > Veja se consegue mudar sua query para retirar o distinct, ele não é > > performático. > > > > *Att.* > > *Eduardo Rodrigues* > > > > Em 15 de fevereiro de 2013 15:30, Rafael Mendonca > > raffaell.t...@yahoo.com>escreveu: > > > > > ** > > > > > > > > > Eduardo, obrigado pela ajuda, como nao tenho experiencia com WITH > > > queria saber como devo proceder, deu esse erro aqui: > > > > > > ORA-32039: A cláusula WITH recursiva deve ter a lista de apelidos de > > coluna > > > > > > ________________________________ > > > De: Eduardo Rodrigues oraedua...@gmail.com> > > > Para: oracle_br@yahoogrupos.com.br > > > Enviadas: Sexta-feira, 15 de Fevereiro de 2013 16:07 > > > > > > Assunto: Re: [oracle_br] SQL Tunning > > > > > > > > > > > > Mais ou menos assim: > > > > > > WITH produto_loja > > > (SELECT MIN(pl.val_preco_venda) AS precomin_prod_sem_tabela, > > > MAX(pl.val_preco_venda) AS precomax_prod_sem_tabela FROM > > > produto_loja pl) SELECT DISTINCT me.cod_prod codigo_produto, > > > vw.codigo_planilha, vw.percentual_desconto, vw.valor_desconto, > > > vw.ind_acesso, vw.descricao_completa, vw.preco_min, vw.preco_max, > > > me.codigo_automacao, pl.precomin_prod_sem_tabela, > > > pl.precomax_prod_sem_tabela FROM multipla_embl me LEFT OUTER JOIN > > > vw_produtos_tabela vw ON (vw.codigo_produto = me.cod_prod) LEFT > > > OUTER JOIN produto_loja pl ON pl.cod_prod = me.cod_prod WHERE > > > me.cod_prod = :1 ORDER BY me.cod_prod, me.codigo_automacao; > > > > > > *Att.* > > > *Eduardo Rodrigues* > > > > > > > > > Em 15 de fevereiro de 2013 15:01, Eduardo Rodrigues > > > oraedua...@gmail.com>escreveu: > > > > > > > Rafael tenta usar o with para consulta da tabela produto_loja. > > > > > > > > *Att.* > > > > *Eduardo Rodrigues* > > > > > > > > > > > > > > > Em 15 de fevereiro de 2013 14:54, Rafael Mendonca > > > raffaell.t...@yahoo.com > > > > > escreveu: > > > > > > > > ** > > > > > > >> > > > >> > > > >> Milton, mas existe uma cláusula where fazendo o JOIN. > > > >> > > > >> Rodrigo, existe sim. > > > >> > > > >> A coluna cod_prod tanto na tabela "PRODUTO_LOJA" como na tabela > > > >> "multipla_embl" são indexadas > > > >> > > > >> ________________________________ > > > >> De: Rodrigo Mufalani rodr...@mufalani.com.br> > > > >> Para: oracle_br@yahoogrupos.com.br > > > >> Enviadas: Sexta-feira, 15 de Fevereiro de 2013 15:49 > > > >> Assunto: Re: [oracle_br] SQL Tunning > > > >> > > > >> > > > >> > > > >> > > > >> Existe algum indice na tabela produto_loja para as colunas usadas? > > > >> Comece por ai!!! > > > >> > > > >> Enviado por Samsung Mobile > > > >> > > > >> -------- Mensagem original -------- De : Rafael Mendonca > > > >> raffaell.t...@yahoo.com> > > > >> Data: > > > >> Para: oracle_br@yahoogrupos.com.br > > > >> Assunto: [oracle_br] SQL Tunning > > > >> > > > >> Pessoal, boa tarde. > > > >> Estou com um problema de desempenho no sql abaixo: > > > >> > > > >> http://nopaste.dk/p20777 > > > >> > > > >> Segue o plano de execução: > > > >> > > > >> http://nopaste.dk/p20779 > > > >> > > > >> Existe algo nessa query que eu possa modificar para evitar o > > > >> TABLE > > > ACCESS > > > >> FULL? > > > >> > > > >> [As partes desta mensagem que não continham texto foram > > > >> removidas] > > > >> > > > >> [As partes desta mensagem que não continham texto foram > > > >> removidas] > > > >> > > > >> [As partes desta mensagem que não continham texto foram > > > >> removidas] > > > >> > > > >> > > > >> > > > > > > > > > > > > > > [As partes desta mensagem que não continham texto foram removidas] > > > > > > [As partes desta mensagem que não continham texto foram removidas] > > > > > > > > > > > > > [As partes desta mensagem que não continham texto foram removidas] > > > > [As partes desta mensagem que não continham texto foram removidas] > > > > > > > > [As partes desta mensagem que não continham texto foram removidas] > > ------------------------------------ > > ---------------------------------------------------------- > ---------------------------------------------- > >Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de > inteira > responsabilidade de seus remetentes. > Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ > ---------------------------------------------------------- > ---------------------------------------------- > >Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package » > >Procedure » Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU PROPRIO > >ESPAÇO! VISITE: http://www.oraclebr.com.br/ > ---------------------------------------------------------- > -------------------------------------------- Links do Yahoo! Grupos > > > -- ***Fabrício Pedroso Jorge.* Administrador de Banco de Dados Oracle 11g Certified SQL Expert Oracle 11g Certified Associate Oracle 11g Certified Professional Linux Professional Institute Certified Level I (LPIC-I) certificacaodb.com.br *Resumo Profissional:* http://br.linkedin.com/in/fabriciojorge *Contatos:* + 55 91 88991116 / + 55 11 82223651 fpjb...@gmail.com [As partes desta mensagem que não continham texto foram removidas] ------------------------------------ -------------------------------------------------------------------------------------------------------------------------- >Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de inteira >responsabilidade de seus remetentes. Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ -------------------------------------------------------------------------------------------------------------------------- >Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package » Procedure » >Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE: >http://www.oraclebr.com.br/ ------------------------------------------------------------------------------------------------------------------------ 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: oracle_br-unsubscr...@yahoogrupos.com.br <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html