Skip site navigation (1) Skip section navigation (2)

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 (view raw or flat)
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

pgsql-es-ayuda by date

Next:From: Guido BarosioDate: 2009-11-21 08:47:10
Subject: Re: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] Re: [arpug
Previous:From: Edwin QuijadaDate: 2009-11-20 22:11:28
Subject: [OT] Comunidad Cubana

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group