Problema com Hibernate + Mysql

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!

Ninguém? :roll: