então, o postgres se vira pra trazer o resultado da consulta utilizando o mesmo índice.
caso em alguma ocasião, a tabela precisar ser ordenada em uma determinada ordem descendente, então, o postgres encarregará de ordenar a tabela se for o caso?

 
On 10/30/06, Walter Cruz <[EMAIL PROTECTED]> wrote:
É isso aí Sebastian....

vc não se precisa se preocupar com a ordem.

Exemplo:

SELECT * FROM  tab_pessoas where pes_email like 'p%' ORDER by pes_email asc

Sort  (cost=1167.85..1181.08 rows=5289 width=304) (actual
time=120.521..127.710 rows=5035 loops=1)
Sort Key: pes_email
->  Seq Scan on tab_pessoas  (cost=0.00..840.76 rows=5289 width=304)
(actual time= 0.009..27.802 rows=5035 loops=1)
       Filter: ((pes_email)::text ~~ 'p%'::text)
Total runtime: 135.788 ms


CREATE INDEX ix_email ON tab_pessoas(pes_email varchar_pattern_ops)

SELECT * FROM  tab_pessoas where pes_email like 'p%' ORDER by pes_email asc

Sort  (cost=1116.51..1129.73 rows=5289 width=304) (actual
time=126.185..133.551 rows=5035 loops=1)
Sort Key: pes_email
->  Bitmap Heap Scan on tab_pessoas  (cost=63.27..789.42 rows=5289
width=304) (actual time= 6.005..26.411 rows=5035 loops=1)
       Filter: ((pes_email)::text ~~ 'p%'::text)
       ->  Bitmap Index Scan on ix_email  (cost=0.00..63.27 rows=5212
width=0) (actual time=5.740..5.740 rows=5035 loops=1)
             Index Cond: (((pes_email)::text ~>=~ 'p'::character
varying) AND ((pes_email)::text ~<~ 'q'::character varying))
Total runtime: 141.872 ms




SELECT * FROM  tab_pessoas where pes_email like 'p%' ORDER by pes_email desc


Sort  (cost=1116.51..1129.73 rows=5289 width=304) (actual
time=110.396..117.730 rows=5035 loops=1)
Sort Key: pes_email
->  Bitmap Heap Scan on tab_pessoas  (cost=63.27..789.42 rows=5289
width=304) (actual time= 3.919..20.294 rows=5035 loops=1)
       Filter: ((pes_email)::text ~~ 'p%'::text)
       ->  Bitmap Index Scan on ix_email  (cost=0.00..63.27 rows=5212
width=0) (actual time=3.560..3.560 rows=5035 loops=1)
             Index Cond: (((pes_email)::text ~>=~ 'p'::character
varying) AND ((pes_email)::text ~<~ 'q'::character varying))
Total runtime: 125.888 ms


Pode reparar que com um único índice, tanto a ordenação desc como asc
o utilizaram.

[]'s
- Walter
_______________________________________________
Grupo de Usuários do PostgreSQL no Brasil
Antes de perguntar consulte o manual
http://pgdocptbr.sourceforge.net/

Para editar suas opções ou sair da lista acesse a página da lista em:
http://pgfoundry.org/mailman/listinfo/brasil-usuarios



--
Atenciosamente,
Sebastian Selau Webber Colombo
_______________________________________________
Grupo de Usuários do PostgreSQL no Brasil
Antes de perguntar consulte o manual
http://pgdocptbr.sourceforge.net/

Para editar suas opções ou sair da lista acesse a página da lista em:
http://pgfoundry.org/mailman/listinfo/brasil-usuarios

Responder a