vilmarbr
|
SAO PAULO SP - BRASIL
|
|
ENUNCIADA !
|
|
|
Postada em 25/11/2010 13:58 hs
Busca por CNPJ raiz ?? Alguém sabe explicar esta instrução abaixo, usada no local de SUBSTR, que deixa a query , pelo menos no PL/SQL mais rápida , conforme me falaram ... SELECT CODIGO, NOME FROM TABELA WHERE CNPJ between ? * 1000000 AND ? * 1000000 + 999999 Grato
http://www.vilmarbro.com.br
|
|
|
|
|
|
vilmarbr
|
SAO PAULO SP - BRASIL
|
|
ENUNCIADA !
|
|
|
Postada em 26/11/2010 09:17 hs
Bem, eu não entendi ainda a fundo como funciona a intrução PL/SQL DO ORACLE acima para fazer uma gambi de alto nível no lugar da função de string SUBSTR , mas sei que funciona muito bem, e é muito mais rápida !!
1) Demora alguns segundos "SELECT CODIGO, NOME FROM TABELA WHERE SUBSTR(COD_NRO_CGC_CPF,1,8) = '95942552'"
2) Demora menos de 1 segundo "SELECT CODIGO, NOME FROM TABELA WHERE CNPJ between 95942552 * 1000000 AND 95942552 * 1000000 + 999999"
OBS.: 95942552 É A RAIZ DE UM CNPJ, O QUAL É DIVIDO EM RAIZ, SUCURSAL/FILIAL E DÍGITO VERIFICADOR.

http://www.vilmarbro.com.br
|
|
|
|
PH1959
|
SÃO JOSÉ DOS CAMPOS SP - BRASIL
|
|
ENUNCIADA !
|
|
|
Postada em 26/11/2010 11:11 hs
Vilmar, nunca mexi com oracle... mas.... o q eu entendi é o seguinte no primeiro sql vc está buscando um texto e no segundo um número talvez seja porisso q a velocidade seja maior
|
|
|
|
vilmarbr
|
SAO PAULO SP - BRASIL
|
|
ENUNCIADA !
|
|
|
Postada em 26/11/2010 11:22 hs
PH1959, sim, é isto mesmo, operação direta com números facilita bem mais o trabalho do processador né, heheheehe. até me explicaram o esquema desta conta por aqui, mas ainda não ficou mastigado o conceito no cérebro ... pq ficando mastigadinho o entendimento, dá para usar o conceito para desenvolver mais coisas no futuro em cima da mesma idéia ... partindo daquele conceito que na vida, nada se cria, tudo se copia, heeheheh 
abç
http://www.vilmarbro.com.br
|
|
|
|
|