Usa o Sql tuning advisor.
Rodrigo Em 25 de julho de 2011 10:05, Ana Cássia Japiassu Diniz < anajapia...@gmail.com> escreveu: > ** > > > Olá Pessoal, bom dia. > > A query abaixo está muito lenta, acredito que o problema esteja no uso do > translate. > > O problema é o seguinte... temos um campo para o usuário digitar: rua, > bairro, cidade, estado e a medida q ele vai digitando, consultas vão sendo > realizadas,, como a consulta demora um pouco, as requisições vão se > atropelando (eu acho) e acaba q a aplicação perde a conexão com o banco. > Segue a query exemplo para vocês darem uma olhada. > > Desde já agradeço. > > Ana Cássia > > SELECT logradouro.TLO_TX, > logradouro.LOG_NO, > bairro.BAI_NO, > localidade.LOC_NO, > logradouro.UFE_SG, > logradouro.CEP > FROM LOG_LOGRADOURO logradouro, > LOG_BAIRRO bairro, > LOG_LOCALIDADE localidade > WHERE bairro.BAI_NU = logradouro.BAI_NU_INI > AND localidade.LOC_NU = logradouro.LOC_NU > AND ( > lower(translate(logradouro.LOG_NO, > 'ÁÃÀÄÂáãàäâÉÈËÊéèëêÍÌÎÏìîïíÓÒÔÕÖóòôõöÚÙÜÛúûüùÇçÑñ', > 'AAAAAaaaaaEEEEeeeeIIIIiiiiOOOOOoooooUUUUuuuuCcNn')) LIKE > translate('%pinheiros%', > 'ÁÃÀÄÂáãàäâÉÈËÊéèëêÍÌÎÏìîïíÓÒÔÕÖóòôõöÚÙÜÛúûüùÇçÑñ', > 'AAAAAaaaaaEEEEeeeeIIIIiiiiOOOOOoooooUUUUuuuuCcNn') > OR > lower(translate(logradouro.TLO_TX || ' ' || logradouro.LOG_NO, > 'ÁÃÀÄÂáãàäâÉÈËÊéèëêÍÌÎÏìîïíÓÒÔÕÖóòôõöÚÙÜÛúûüùÇçÑñ', > 'AAAAAaaaaaEEEEeeeeIIIIiiiiOOOOOoooooUUUUuuuuCcNn')) LIKE > translate('%pinheiros%', > 'ÁÃÀÄÂáãàäâÉÈËÊéèëêÍÌÎÏìîïíÓÒÔÕÖóòôõöÚÙÜÛúûüùÇçÑñ', > 'AAAAAaaaaaEEEEeeeeIIIIiiiiOOOOOoooooUUUUuuuuCcNn') > ) > AND bairro.BAI_NU = bairro.BAI_NU > AND lower(translate(bairro.BAI_NO, > 'ÁÃÀÄÂáãàäâÉÈËÊéèëêÍÌÎÏìîïíÓÒÔÕÖóòôõöÚÙÜÛúûüùÇçÑñ', > 'AAAAAaaaaaEEEEeeeeIIIIiiiiOOOOOoooooUUUUuuuuCcNn')) LIKE > translate('%jardim%', 'ÁÃÀÄÂáãàäâÉÈËÊéèëêÍÌÎÏìîïíÓÒÔÕÖóòôõöÚÙÜÛúûüùÇçÑñ', > 'AAAAAaaaaaEEEEeeeeIIIIiiiiOOOOOoooooUUUUuuuuCcNn') > AND localidade.LOC_NU = logradouro.LOC_NU > AND lower(translate(localidade.LOC_NO, > 'ÁÃÀÄÂáãàäâÉÈËÊéèëêÍÌÎÏìîïíÓÒÔÕÖóòôõöÚÙÜÛúûüùÇçÑñ', > 'AAAAAaaaaaEEEEeeeeIIIIiiiiOOOOOoooooUUUUuuuuCcNn')) LIKE translate('%são > paulo%', 'ÁÃÀÄÂáãàäâÉÈËÊéèëêÍÌÎÏìîïíÓÒÔÕÖóòôõöÚÙÜÛúûüùÇçÑñ', > 'AAAAAaaaaaEEEEeeeeIIIIiiiiOOOOOoooooUUUUuuuuCcNn') > AND logradouro.UFE_SG = 'SP'; > > [As partes desta mensagem que não continham texto foram removidas] > > > -- At. [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