Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » PostgreSQL »

Consultar muestra millones de registros

Estas en el tema de Consultar muestra millones de registros en el foro de PostgreSQL en Foros del Web. Hola a todos tengo una base de datos con millones de registros, me gustaria poder seleccionar registros de 200 en 200 por ejemplo: registro 1, ...
  #1 (permalink)  
Antiguo 07/11/2014, 10:29
 
Fecha de Ingreso: mayo-2011
Mensajes: 7
Antigüedad: 12 años, 11 meses
Puntos: 0
Consultar muestra millones de registros

Hola a todos tengo una base de datos con millones de registros, me gustaria poder seleccionar registros de 200 en 200 por ejemplo: registro 1, registro 200, registro 400 y asi para traer una muestra del comportamiento y asi no tener que procesar todos los registros.

Gracias de antemano a todos
  #2 (permalink)  
Antiguo 07/11/2014, 10:45
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Consultar muestra millones de registros

Si tienes millones, y quieres recorrerlos de a cientos, ¿te das cuenta que necesitarás miles de ciclos de consulta?

Creo que deberías plantear hacer proceso almacenados que generen la tarea, y no paginar resultados para procesarlos en la aplicación.

En todo caso, sin ver las consultas que estás pensando, es difícil decirte qué te conviene hacer con ellas. No nos estás dando información para hacer un juicio fundado.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 07/11/2014, 11:42
 
Fecha de Ingreso: mayo-2011
Mensajes: 7
Antigüedad: 12 años, 11 meses
Puntos: 0
Respuesta: Consultar muestra millones de registros

bueno les explico, el sistema guarda información matematica cada segundo, y lo que les comento es una parte del sistema que genera un informe, son muchos registros, que busca todos los datos de una fecha dada.

es algo asi como select * from tabla where id=1 && fecha >010222233 && <012222233.

es tan sencilla como eso, lo que sucede es que lo minimo que trae una consulta son 84000 registros de un periodo de un dia para un solo id,

se hace un grafico y no hay problema porque el grafico trae una sola columna

pero a la hora de importar los datos en un excel trae mas de 12 columnas de la base de datos y generar un excel de 84000 lineas no tiene sentido.

entonces lo que se hace es pedir al usuario cuantos datos quiere en el informe y se procesan los registros para tomar una muestra de esos datos.

el problema es que igual se tarda mucho porque tiene que procesar todos los registros tomar que se cree relevante y guardarlo en el excel.

lo que se hace es si la persona quiere 150 datos en el informe se divide la totalidad de los resultados entre 150 y me va a dar mas o menos que muestras tomar pero lo ideal seria traer en la consulta solo los datos necesarios.

entonces si son 1000 datos y yo quiero una muestra de 10 datos quiero que la consulta me traiga la fila 100,200 .... 1000 y asi obtengo la muestra y no tengo que precesar todos los datos

Disculpa si no me explique bien y Gracias
  #4 (permalink)  
Antiguo 12/11/2014, 10:43
Avatar de drako_darpan  
Fecha de Ingreso: octubre-2008
Ubicación: Sinaloa
Mensajes: 617
Antigüedad: 15 años, 6 meses
Puntos: 58
Respuesta: Consultar muestra millones de registros

Hola que tal, bueno googleando un poco encontre esto:

http://elpoli.delphiaccess.com/postg...ts-resultsets/

El offset te serviria.
__________________
Your Code as a Crime Scene...
  #5 (permalink)  
Antiguo 12/11/2014, 10:57
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Consultar muestra millones de registros

La verdad es que complicaste demasiado la explicación, ya que según eso tu duda era simplemente cómo se pagina un resultado de X registros en bloques de N registros...

La respuesta a darte hubiera sido "usa LIMIT, segun lo que dice el manual".

Ahora bien, tu problema tiene dos partes:

- A nivel de PostgreSQL, es simplemente hacer las consultas paginando. Para eso usas LIMIT segun lo que necesites.

- Exportarlo en Excel es otro cantar. Por lo pronto es off topic en este foro, ya que sería en programación (leer las normas del foro, los temas de programacion van en el foro de cada lenguaje), pero por sobre todo tienes un problema serio a la hora de exportar N paginas de X registros, ya que el propio Excel tiene un límite de registros por hoja, y de cantidad de hojas por libro.
¿Tuviste en cuenta eso?
Esto último sin contar, además, que cualquier exportación de un libro demasiado grande (más de 80.000 registros) puede consumir mucho tiempo en la aplicación...

La verdad es que le veo complicaciones prácticas, mas alla de si se puede hcer o no. A mi me resulta algo ineficiente, pero tu sabrás.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: millones, muestra, postgreslq, registros
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 00:10.