Desempenho do Banco Sqlite

Ola amigos,

Estou com problema de desempenho…
Quando executo a sql :
Cursor c = db.rawQuery(“Select * from tabprecoi left join produto on tabprecoi.fk_produto=produto.id where tabprecoi.fk_tabpreco=? and produto.descricao like '%”+txtBusca + “%’”,params);

Supondo que digito algo para busca esta demorando muito para criar o cursor!

sendo que a tabprecoi tem 28000 registro
e produto 5000 registro

escoli o txtbusca para dar a resposta de 15 registros, mesmo assim demora uns 2 a 3 min para busca os registros.

Ja aconteceu com alguem?

Menpolo onde está rodando este código? qual o poder de processamento do dispositivo?

Isto irá provocar um “full table scan”. Em qualquer banco de dados isso é uma operação lenta.

To rodando no proprio emulador com micro i7!! e esta parando!
estranho preciso tomar uma atitude para resolver o problema!!
falaram algo sobre EXPLAIN mas nem sei o que é isso!! sou zero em banco de dados.

se eu tirar o like ajuda bem? quando executo o sql direto no postgres a resposta é muito rapido…

Se não me engano, o emulador é bem lento mesmo, é bom tentar rodar esse código em um dispositivo Android e ver se isso é lento também

Cara não deu certo ta demorado do mesmo jeito!!! ta muito ruim mesmo!!

to estudando viabilidade de melhor esse sql!!! o left join consigo fazer com o where mas o like errou

se alguem tiver alguma ideia!!

Galera! resolvi!! apenas tirei o left !!!

Pessoal que não manja sql é cruel kkkk

valeu!!!

Pequena ilustração do porque dessa melhora de peformance:

Imprime ai e cola na sua mesa :smiley:

Ao lado desta:

Mandou bem meu amigo!! ja estou imprimindo!!
valeu galera!!!