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
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 |