[oracle_br] Re: Pesquisa por nome

2009-01-30 Por tôpico jlchiappa
Colega, se a sua pesquisa é NNN% (ou seja, tudo que COMEÇA com NNN),
como está no exemplo, absolutamente NÂO FAZ SENTIDO o instr, a
pesquisa seria (em supondo-se que vc quer também pesquisa case
insensitive com UPPER) :

 WHERE upper(colunadatabela) LIKE 'NNN%' 

 e aí, claro, o UPPER na coluna indexada (tal como qquer função)
desabilita índices b*tree normais, vc teria que ter um índice b*tree
de função criado COM o upper, ok ?  Via de regra context indexes só
fazem sentido se a sua pesquisa é %NNN% (ie, vc NÂO SABE o começo da
chave, quer procurar por qquer posição), aí sim a busca direta via
índice não funcionaria, ele teria que fazer um table scan ou um index
scan, num caso desse é que pode ser indicado o context index.

 []s

  Chiappa
--- Em oracle_br@yahoogrupos.com.br, Mária Cristina Silva
mariancrist...@... escreveu

 Bom dia!
 Senhores estou precisando realizar uma busca por nome, e tentei
utilizar as
 formas abaixo, mas não tive muito sucesso, usando o like ele demora
muito a
 me dá o resultado pois as tabelas possuem mais de 4 milhoes de
registros..
 
 tentei dessa forma :
 
 ( instr(upper(reservanom0_.NOME_EMPRESA),upper('GAMA  CIA'))  0)   e
 dessa
 
 *
 
 and* CONTAINS(processovo0_.NOME_EMPRESA, 'ACADEMIA GENESIS%',1)  0
usando o
 Index mas usando o index ele não traz em algumas buscas...
 
 Alguém sabe se existe uma forma melhor de fazer essa busca?
 
 Agradeço atneção de todos.
 *
 
 
 *
 
 
 [As partes desta mensagem que não continham texto foram removidas]





Re: [oracle_br] Re: Pesquisa por nome

2009-01-30 Por tôpico Mária Cristina Silva
Entendi..
Obrigada a todos.

2009/1/30 jlchiappa jlchia...@yahoo.com.br

   Colega, se a sua pesquisa é NNN% (ou seja, tudo que COMEÇA com NNN),
 como está no exemplo, absolutamente NÂO FAZ SENTIDO o instr, a
 pesquisa seria (em supondo-se que vc quer também pesquisa case
 insensitive com UPPER) :

 WHERE upper(colunadatabela) LIKE 'NNN%'

 e aí, claro, o UPPER na coluna indexada (tal como qquer função)
 desabilita índices b*tree normais, vc teria que ter um índice b*tree
 de função criado COM o upper, ok ? Via de regra context indexes só
 fazem sentido se a sua pesquisa é %NNN% (ie, vc NÂO SABE o começo da
 chave, quer procurar por qquer posição), aí sim a busca direta via
 índice não funcionaria, ele teria que fazer um table scan ou um index
 scan, num caso desse é que pode ser indicado o context index.

 []s

 Chiappa
 --- Em oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.br,
 Mária Cristina Silva
 mariancrist...@... escreveu

 
  Bom dia!
  Senhores estou precisando realizar uma busca por nome, e tentei
 utilizar as
  formas abaixo, mas não tive muito sucesso, usando o like ele demora
 muito a
  me dá o resultado pois as tabelas possuem mais de 4 milhoes de
 registros..
 
  tentei dessa forma :
 
  ( instr(upper(reservanom0_.NOME_EMPRESA),upper('GAMA  CIA'))  0) e
  dessa
 
  *
 
  and* CONTAINS(processovo0_.NOME_EMPRESA, 'ACADEMIA GENESIS%',1)  0
 usando o
  Index mas usando o index ele não traz em algumas buscas...
 
  Alguém sabe se existe uma forma melhor de fazer essa busca?
 
  Agradeço atneção de todos.
  *
 
 
  *
 
 
  [As partes desta mensagem que não continham texto foram removidas]
 

 




-- 
Abraços,
Mária Cristina
Cel: 031-8883-5543
E-mail: mariancrist...@gmail.com
MSN:   mcristinasil...@hotmail.com
-- 
O começo é a parte mais importante do trabalho.
- Platão


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