Java - Consulta retorna miles de datos

 
Vista:

Consulta retorna miles de datos

Publicado por Bryan (1 intervención) el 13/05/2009 03:13:54
Que tal! tengo un gran problema, resulta que tengo varias tables con millones de registros, cuando realizo una consulta la realizo en todas las tablas, por eso no hay problema ya que logre optimizar las consultas, mi problema es el retorno de los datos ya que cada consulta me devuelve alrededor de 1 millon de registros y estos los almaceno en un objeto List para luego mostrarlos en un DataTable de ICefaces, pero la busqueda no va ni a la mitad cuando la memoria se va hasta arriba, que formas existen para hacer este tipo de busquedas?
Que puedo hacer en este caso?

Muchas gracias por su ayuda! Saludos.....

Bryan..
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Consulta retorna miles de datos

Publicado por Francisco Villa Ramos (3 intervenciones) el 14/05/2009 00:29:02
1.- Lo primero seria preguntarte si la información que estas generando realmente sirve.

La verdad un reporte o algo de mas de 100 columnas se me hace poco practico (viendolo desde el lado del usuario)

Revisa si de verdad se va a utilizar toda esa informacion. Aunque lo paginaras, si son mas de 1 millon de registros y paginas a 1000 resultados entonces tienes la tremenda cantidad de 1,000 paginas!!!!

Yo como usuario preferiria un extracto de todo eso.

2.- Si no es posible negociar el punto 1. Entonces vas a tenerle que meter mas ideas al asunto e implementar unas solución de paginación pero que no traigas en memoria todos los resultados.

Esto lo logras teniendo el control de los resultados que tienes en pantalla y asi saber cuales son los resultados que siguen o los resultados anteriores.

Por ejemplo:

En mysql puedes traerte un segmento de una consulta utilizando:

SELECT * FROM tabla LIMIT 1, 100

lo que necesitas es que tu programa lleve el control de los datos que muestras para que en todo momento sepas los limites del query.

SELECT * FROM tabla limit inicio, fin

Googlea y encontraras muchos ejemplos de paginación.

Saludos
pacovr
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar