Re: result set offset -limit que con una query no se encuentra

From: Emanuel Calvo Franco <postgres(dot)arg(at)gmail(dot)com>
To: Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>
Cc: Guido Barosio <gbarosio(at)gmail(dot)com>, Lista Postgres <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: result set offset -limit que con una query no se encuentra
Date: 2009-05-08 18:35:53
Message-ID: f205bb120905081135n3c2c6d5epf0700ff8c8661ae1@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

El día 8 de mayo de 2009 15:25, Alvaro Herrera
<alvherre(at)alvh(dot)no-ip(dot)org> escribió:
> Emanuel Calvo Franco escribió:
>
>> Alvaro:
>> - No hay indices.
>> - No hay actualizaciones desde otros clientes. Es una base local
>> corriendo en mi maquina.
>
> Autovacuum está activo?
>

Estaba. Pero lo desactive y volví a probar.
sucede lo mismo.

>> parapruebas=# explain analyze select oid, entero4, entero8 from datos
>> limit 10 offset 30100;
>>                                                     QUERY PLAN
>>
>> ----------------------------------------------------------------------------------------------------
>> ---------------
>>  Limit  (cost=719.06..719.29 rows=10 width=16) (actual
>> time=165.882..165.947 rows=10 loops=1)
>>    ->  Seq Scan on datos  (cost=0.00..4128.00 rows=172800 width=16)
>> (actual time=0.012..91.116 rows=30110 loops=1)
>>  Total runtime: 166.007 ms
>> (3 rows)
>>
>>                                                     QUERY PLAN
>>
>> ----------------------------------------------------------------------------------------------------
>> ----------------
>>  Limit  (cost=719.06..719.29 rows=10 width=16) (actual
>> time=187.856..187.920 rows=10 loops=1)
>>    ->  Seq Scan on datos  (cost=0.00..4128.00 rows=172800 width=16)
>> (actual time=0.050..111.205 rows
>> =30110 loops=1)
>>  Total runtime: 187.982 ms
>> (3 rows)
>>
>> Los explain son para la misma consulta 2 veces.
>
> ¿Qué tanto rato pasó entre un explain y el siguiente?  La única
> explicación que se me ocurre para que te entregue planes con
> estimaciones distintas es que se ejecutó ANALYZE entre medio
> (posiblemente autovacuum).
>

Inmediatamente.

parapruebas=# select oid, entero8 from datos limit 1 offset 10000;
oid | entero8
-------+--------------------
35498 | 193916708866014934
(1 row)

parapruebas=# select oid, entero8 from datos limit 1 offset 10000;
oid | entero8
-------+---------------------
44458 | -902052893157845017
(1 row)

las ejecuto ambas seguidas y siempre traen distintas.

--
Emanuel Calvo Franco
Sumate al ARPUG !
( www.arpug.com.ar)
ArPUG / AOSUG Member

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Guido Barosio 2009-05-08 19:10:24 Re: Diferencias de esquemas de replicacion
Previous Message Alvaro Herrera 2009-05-08 18:25:20 Re: result set offset -limit que con una query no se encuentra