pesquisa com %nnn% o melhor que vc pode obter normalmente é um range scan mesmo, não tem muito jeito , e o range vai ser BEM largo, vc TEM que procurar praticamente no índice todo , já que o % inicial significa qquer coisa antes do argumento... Será que REALMENTE não dá pra especificar sem o % inicial ?? Se realmente tiver que, pra um caso desses ou vc usa o CONTAINS num índice text, ou tem um índice de função que indexa só os caras que contém a chave de pesquisa, como mostrado em http://asktom.oracle.com/pls/ask/f? p=4950:8:::::F4950_P8_DISPLAYID:37336026927381 . Uma outra opção, se a pesquisa tiver que ser repetida várias vezes na mesma sessão, pode ser ao invés de se ter o sub-conjunto menor dos regs que atendem à chave de pesquisa indexados num índice de função, talvez possa ser te- los numa GTT populada pelo programa, se o custo pra resolver BOP_RG.ID_RG = BOP_RG_FONEMA.ID_RG não for tão alto...
[]s Chiappa --- Em oracle_br@yahoogrupos.com.br, "jorgedonato2001" <[EMAIL PROTECTED]> escreveu > > Tenho a seguinte situacão: > > SQL> VARIABLE b1 number; > SQL> VARIABLE b2 varchar2(85); > SQL> VARIABLE b3 number; > SQL> VARIABLE b4 number; > SQL> > SQL> EXECUTE :b1 := 9; > > PL/SQL procedure successfully completed. > > Elapsed: 00:00:00.01 > SQL> EXECUTE :b2 := 'MR'; > > PL/SQL procedure successfully completed. > > Elapsed: 00:00:00.00 > SQL> EXECUTE :b3 := 999; > > PL/SQL procedure successfully completed. > > Elapsed: 00:00:00.00 > SQL> EXECUTE :b4 := 1; > > PL/SQL procedure successfully completed. > > Elapsed: 00:00:00.01 > SQL> > SQL> SELECT BOP_RG_FONEMA.ID_RG, > 2 BOP_RG_FONEMA.FONEMA, > 3 BOP_RG.NM_NOME, > 4 BOP_RG.NM_MAE, > 5 BOP_RG.DT_NASCIMENTO > 6 FROM BOP_RG_FONEMA, > 7 BOP_RG > 8 WHERE BOP_RG_FONEMA.FONEMA LIKE '%'||:b2 ||'%' > 9 AND BOP_RG.ID_RG = BOP_RG_FONEMA.ID_RG; > > 577757 rows selected. > > Elapsed: 00:05:19.83 > > Execution Plan > ---------------------------------------------------------- > 0 SELECT STATEMENT Optimizer=CHOOSE (Cost=12848 Card=112467 By > tes=22718334) > > 1 0 HASH JOIN (Cost=12848 Card=112467 Bytes=22718334) > 2 1 INDEX (RANGE SCAN) OF 'IDX2_BOP_RG_FONEMA' (NON- UNIQUE) > (Cost=88 Card=112467 Bytes=2024406) > > 3 1 INDEX (FAST FULL SCAN) OF 'IDX5_BOP_RG' (NON-UNIQUE) (Co > st=6010 Card=2249333 Bytes=413877272) > > > > > > Statistics > ---------------------------------------------------------- > 0 recursive calls > 0 db block gets > 72271 consistent gets > 98716 physical reads > 0 redo size > 118090042 bytes sent via SQL*Net to client > 269853 bytes received via SQL*Net from client > 38519 SQL*Net roundtrips to/from client > 0 sorts (memory) > 0 sorts (disk) > 577757 rows processed > > > Tenho os seguintes índices > > CREATE INDEX EBOP.IDX5_BOP_RG ON EBOP.BOP_RG > (NM_NOME, ID_RG, NM_MAE, DT_NASCIMENTO) > Distinct Keys:2249329 > > CREATE INDEX EBOP.IDX2_BOP_RG_FONEMA ON EBOP.BOP_RG_FONEMA > (FONEMA, ID_RG) > Distinct Keys:2249330 > > Tabela BOP_RG: > 2249333 Linhas > > Tabela BOP_RG_FONEMA: > 2249330 Linhas > > > O tempo esta muito alto, alguma ídeia para melhorar essa query????? > > Att, > Jorge Donato > -------------------------------------------------------------------------------------------------------------------------- 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