Problema de performance consulta android

Bom dia a todos!

minha aplicação recebe dados de outra aplicação na qual eu não tenho acesso a base de dados, dentre esses dados eu recebo duas tabelas de banco na qual o codigo da tabela 1 é fk do codigo da tabela 2 eu fiz uma consulta para trazer informações das duas tabelas em uma lista no android porem a consulta ficou extremamente lenta pelo fato de o codigo da tabela 1 ter uma quantidade diferente de zero a esquerda do codigo (fk) da tabela 2 retornando resultados errados na consulta. eu tentei fazer um cast com numeric nos dois campos de código porem a consulta ficou extremamente lenta alguem já lidou com esse tipo de problema?

lembrando que não será possivel alterar isso na base de dados pois é de uma outra aplicação a qual eu não tenho acesso e as pessoas que possuem acesso afirmaram não alterar esse campo.

select 
		c.codigo,
		c.campo1,  
		c.campo2,
		not (select exists (select * from Tabela2 m where campo4 = 0 and m.codigo = c.codigo)),  // m.codigo = c.codigo --> nesse ponto eu coloquei o cast e no debaixo tb
		(select count(*) from Tabela2 m where campo4 = 0 and m.codigo = c.codigo) 
from Tabela1 c

Voce provavelmente vai ter que estudar como melhorar esse SELECT, inner queries geralmente são lentas.

o difícil é que quando os codigos estao corretos a consulta é extremamente rapida, agora quando dá essa divergencia de zero a esquerda entre os codigos (pk e fk) e vc faz um cast com numeric, nossa fica mto lenta no banco sqlite passa de 43 ms para 900ms dando uma diferença na aplicação de quase 15 segundos para abrir a tela.