Re: regular la carga de registros en una consulta.

From: Emanuel Calvo Franco <postgres(dot)arg(at)gmail(dot)com>
To: Manuel Diego <manuel(at)radiohead(dot)cl>
Cc: Yadira Lizama Mue <ylizama(at)uci(dot)cu>, Foro Postgres <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: regular la carga de registros en una consulta.
Date: 2009-11-21 05:42:35
Message-ID: f205bb120911202142q3e2680cby59718a5eadefa110@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

El día 20 de noviembre de 2009 07:32, Manuel Diego
<manuel(at)radiohead(dot)cl> escribió:
> Lo que deseas hacer es algo asi como una "paginación". Eso lo consigues
> agregando el OFFSET a tu consulta es decir:
> SELECT * FROM tabla LIMIT 100 OFFSET 0;
> Despues
> SELECT * FROM tabla LIMIT 100 OFFSET 100;
> Y asi:
> SELECT * FROM tabla LIMIT 100 OFFSET 200;
> El 20-11-2009, a las 0:12, Yadira Lizama Mue escribió:
>

Guarda con esto!

Recuerden que el synchronize_seqscan esta activado, por lo que si la
tabla es grande, a partir
de una cierta cantidad de registros esto devuelve no siempre los mismos valores.

CREATE TABLE muchos AS
SELECT i as entero,
random() as flotante
FROM generate_series(1,1000000) i(i);

SELECT * FROM muchos LIMIT 5 OFFSET 5000;
7961;0.165913014207035
7962;0.121883166953921
7963;0.16617708094418
7964;0.157062129117548
7965;0.104852370452136

SELECT * FROM muchos LIMIT 5 OFFSET 5000;
10921;0.214016762096435
10922;0.193961652927101
10923;0.321718231309205
10924;0.975195468403399
10925;0.748051355592906

Para que esto funcione como queres, tenés que hacer algo así (NO RECOMENDABLE):

SET synchronize_seqscans = off;
SELECT * FROM muchos LIMIT 5 OFFSET 5000;
5001;0.900254020001739
5002;0.546161777339876
5003;0.657537387683988
5004;0.729369143024087
5005;0.755969829391688

La otra manera es utilizando un ORDER BY para ordenar por la columna principal

--
Emanuel Calvo Franco
DBA at: www.siu.edu.ar
www.emanuelcalvofranco.com.ar

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Guido Barosio 2009-11-21 08:47:10 Re: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] Re: [arpug] Re: [arpug] Traducción al español del manual oficial
Previous Message Edwin Quijada 2009-11-20 22:11:28 [OT] Comunidad Cubana