Tenho uma consulta simples que uso para exibir dados do BD num gráfico de barras do JFreechart:
consulta="SELECT "+DescEixoX+",COUNT("+DescEixoX+") FROM "+nome_tabela+" GROUP BY "+DescEixoX+" HAVING COUNT("+DescEixoX+") >='"+minimo+"' AND COUNT("+DescEixoX+") <='"+maximo+"' ORDER BY COUNT("+DescEixoX+")";
Onde DescEixoX é o campo selecionado numa combo na interface do usuário, com minimo e maximo sendo valores digitado pelo usuário.
Até aí tudo bem, sem problemas o gráfico é gerado.
Só que as vezes, eu quero saber a fundo os registros que estão contidos nesse gráfico, aí faço:
String query_interna="SELECT "+DescEixoX+" FROM "+nome_tabela+" GROUP BY "+DescEixoX+" HAVING COUNT("+DescEixoX+") BETWEEN '"+minimo+"' AND '"+maximo+"' ";
atualizar_tabela="SELECT * FROM "+nome_tabela+" WHERE "+DescEixoX+" IN ("+query_interna+")";
Funcionava OK, quando o sistema tinha 20,30 ou 40 mil linhas.Com 500mil, trava direto, mesmo que só tenham 10 registros no retorno da consulta.Como otimizar essa contagem sem travar?