Re: order by random?

From: Miguel <mmiranda(at)123(dot)com(dot)sv>
To: Alvaro Herrera <alvherre(at)commandprompt(dot)com>
Cc: manuel lamas <manuel3w(at)hotmail(dot)com>, pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: order by random?
Date: 2006-03-22 19:05:54
Message-ID: 4421A012.2050208@123.com.sv
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Alvaro Herrera wrote:

>Miguel escribió:
>
>
>
>>Manuel, el select no devolvera los primeros 75000 y luego los ordenara
>>aleatoriamente (o mas bien los desordenara) ?
>>
>>
>
>Pero hombre, examina el plan de ejecucion!
>
>alvherre=# create table foo (a serial);
>CREATE TABLE
>alvherre=# insert into foo default values;
>INSERT 0 1
>[n veces]
>
>alvherre=# select * from foo order by random() limit 4;
> a
>----
> 1
> 21
> 20
> 14
>(4 filas)
>
>
>Bien, veo que hay algunos valores altos y otros bajos. Miremos el plan
>de ejecucion:
>
>alvherre=# explain select * from foo order by random() limit 4;
> QUERY PLAN
>-------------------------------------------------------------------
> Limit (cost=155.13..155.14 rows=4 width=4)
> -> Sort (cost=155.13..160.48 rows=2140 width=4)
> Sort Key: random()
> -> Seq Scan on foo (cost=0.00..36.75 rows=2140 width=4)
>(4 filas)
>
>
>Aca veo que primero se recorre la tabla completa, _luego_ se ordena
>aleatoriamente, y finalmente se obtienen los primeros N valores de esa
>tabla "ordenada". Que era lo que querias.
>
>
>
Eso es precisamente lo que quiero , lo probare. Gracias Alvaro

>Ahora, si vas a _modificar_ esos registros tienes que aplicar FOR
>UPDATE, pero cuidado!
>

Yo solamente necesito el select, el saldo actual esta en otra tabla, con
lo primero basta,
gracias a todos nuevamente,

saludos
---

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Raul Caso 2006-03-22 19:31:46 Re: ayuda constraint check
Previous Message Pablo Braulio 2006-03-22 18:50:59 ¿Se puede poner condicionales a un insert?.