Pessoal, bom dia
Estou com o seguinte problema. Tenho uma pesquisa onde indico as datas de início/fim de um determinado processo. Quando seleciono a data inicial, tudo funciona. Quando coloco somente a data final ( e nenhum outro filtro da pesquisa), aí vem o problema.
Tenho uma demora monstra na pesquisa e a sessão do Ext cai. Meu banco possui cerca de 250 mil dados cadastrados até a presente data. Fiz o seguinte teste:
Selecionei datas referentes aos primeiros processos cadastrados e funcionou direitinho. Existe alguma forma de aprimorar essa busca?
Detalhe: executei a query que o hibernate gera e a pesquisa foi feita em 26seg.
Segue um trecho do meu método:
DetachedCriteria criteria = DetachedCriteria.forClass(tipo);
criteria.createAlias("sinistro", "sinistro");
criteria.createAlias("responsavel", "responsavel");
Seto os dados das propriedades… e
try {
setOrder(criteria);
List<Vistoria> retorno = null;
DetachedCriteria rowCountCriteria = (DetachedCriteria)SerializationHelper.clone(criteria);
int firstResult = 0;
int maximumResults = 0;
if (maxResults != null)
maximumResults = maxResults;
if (pageNumber != null)
firstResult = (pageNumber * maxResults);
criteria.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);
retorno = getHibernateTemplate().findByCriteria(criteria, firstResult, maximumResults);
rowCountCriteria.setProjection(Projections.rowCount());
List<Integer> results = getHibernateTemplate().findByCriteria(rowCountCriteria);
if (results == null || results.isEmpty())
rowCount = 0;
else
rowCount = results.get(0);
return retorno;
} catch (Exception e) {
logger.error("Error:", e);
throw new PersistenciaException();
}
}
A paginação está sendo feita. Sinceramente, não encontro justificativa para a demora.
Grato pela atenção!